I've just finished off disassembling the Cirtech CP/M plus (V1) implementation for a 128K Apple //e and it supports any Apple ProDOS hard drive upto 32Mb in size.
Sadly it uses eight 512 byte sectors per track for its geometry. I have a feeling that going to 24 (It needs 12K of boot sector) or 32 sectors per track would improve the seek performance given the way CP/M handles computing blocks -> tracks.
However if I do decide to alter the way it auto computes a geometry I can't also help but feel that it's being a bit stingy with directory entries.
The comments I did while disassembling (shown below) and working things out show most of the time you didn't get that many, you're probably going to run out of directory entries before you run out of blocks on a 32Mb drive.
Was there any guidance from DRI on this?
Note: There is a V2 from Cirtech that might be a bit more generous, and supports sharing the drive with ProDOS I haven't dug into that code yet as it fails to detect a Z80 card even with my original Cirtech hardware so I've been concentrating on getting V1 running with a Softcard under emulation.
Sadly it uses eight 512 byte sectors per track for its geometry. I have a feeling that going to 24 (It needs 12K of boot sector) or 32 sectors per track would improve the seek performance given the way CP/M handles computing blocks -> tracks.
However if I do decide to alter the way it auto computes a geometry I can't also help but feel that it's being a bit stingy with directory entries.
The comments I did while disassembling (shown below) and working things out show most of the time you didn't get that many, you're probably going to run out of directory entries before you run out of blocks on a 32Mb drive.
Was there any guidance from DRI on this?
; Size |Blocks | BSze | EXM | AL0 | CKS | DirEntries
; -----|-------|------|-----|-----|-----|-----------
; 800K | $03FF | 4K | 3 | $80 | $20 | $80
; 1MB | $07FF | 4K | 1 | $80 | $20 | $80
; 2MB | $0FFF | 4K | 1 | $80 | $20 | $80
; 4MB | $1FFF | 4K | 1 | $C0 | $40 | $100
; 8MB | $3FFF | 8K | 3 | $80 | $40 | $100
; 16MB | $7fff | 8K | 3 | $80 | $40 | $100
; 32MB | $ffff | 8K | 3 | $C0 | $80 | $200
Note: There is a V2 from Cirtech that might be a bit more generous, and supports sharing the drive with ProDOS I haven't dug into that code yet as it fails to detect a Z80 card even with my original Cirtech hardware so I've been concentrating on getting V1 running with a Softcard under emulation.