[Coco] Using that 16/32/64 MB RamDrive.

Robert Gault robert.gault at worldnet.att.net
Fri Feb 6 08:31:17 EST 2004


Paul T. Barton wrote:

> Mark,
> 
> Gee, I don't know. I'll try and dsave
> my biggest partition to /r0 and see.
> 
> Formatting is really a pain. For now
> I have 15.9MB and formatting counts
> from $000 to $3DF. iIt takes about
> 3-4 minutes. The actual dsave-copy is
> pretty fast.
> 
> I wish that I had another version of FORMAT
> just for this ramdrive that wouldn't print
> the sector #'s and "run faster".
> 
> ---
> 
> Robert, could you give a detailed analysis
> of the stack math that you're doing. Maybe
> I can do it faster keeping it all in registers
> (and maybe not).
> 
> 
 ><snip>

Here is some data on a 16Meg RAM disk, the largest one I can currently 
try out. Also it is being tested as emulation on J.Collyer's emulator as 
I don't have a Nocan16 board.

1) Format on v1.71 (both 60 &15K sync on) took several seconds. I have 
not tried it in DOS mode with sync-lock on.
2) Allocation map is $1C sectors but only because it is 1 bit per 
sector. A modified format could compress this.
3) The descriptors supplied with this new rammer are set for NO VERIFY. 
If format pays attention to this then no verification would be 
attempted. In fact, the rammer.dr does not request a sector for a 
verification buffer so no verification is possible.
4) I think Paul is running the 6309 version and if so, all sector 
transfers use tfm (fast). The slowest section of code could be the 
calculation of the MMU block and offest required for the LSN requested. 
This is a good bit of bit shifting and could be made slightly faster on 
a 6309 by using regD instead of regA and regB.

  pshs  b,x        LSN of needed sector; 24 bit address
  lsl   2,s       lsn*8/$10=lsn/$20; 32 sectors per MMU block
  rol  1,s
  rol  ,s
  lsl  2,s
  rol  1,s
  rol  ,s
  lsl  2,s
  rol  1,s
  rol  ,s
  lda  2,s             get MMU offset; /8*$100 for offset
  lsra
  lsra
  lsra
  clrb
  tfr  d,x
  ldd  ,s
  inca                make it past the 2megs of os-9
  leas  3,s
  ldy   pd.buf,y       get sector buffer address
  rts





More information about the Coco mailing list