Amstrad CP/M (and +3DOS) has an eXtended Disc Parameter Block (XDPB): DEFW spt ;Number of 128-byte records per track DEFB bsh ;Block shift. 3 => 1k, 4 => 2k, 5 => 4k.... DEFB blm ;Block mask. 7 => 1k, 0Fh => 2k, 1Fh => 4k... DEFB exm ;Extent mask, see later DEFW dsm ;(no. of blocks on the disc)-1 DEFW drm ;(no. of directory entries)-1 DEFB al0 ;Directory allocation bitmap, first byte DEFB al1 ;Directory allocation bitmap, second byte DEFW cks ;Checksum vector size, 0 or 8000h for a fixed disc. ;No. directory entries/4, rounded up. DEFW off ;Offset, number of reserved tracks DEFB psh ;Physical sector shift, 0 => 128-byte sectors ;1 => 256-byte sectors 2 => 512-byte sectors... DEFB phm ;Physical sector mask, 0 => 128-byte sectors ;1 => 256-byte sectors, 3 => 512-byte sectors... ; ; (Amstrad extension starts here) ; DEFB sidedness ;Bits 0-1: 0 => Single sided ; 1 => Double sided, flip sides ; ie track 0 is cylinder 0 head 0 ; track 1 is cylinder 0 head 1 ; track 2 is cylinder 1 head 0 ; ... ; track n-1 is cylinder n/2 head 0 ; track n is cylinder n/2 head 1 ; 2 => Double sided, up and over ; ie track 0 is cylinder 0 head 0 ; track 1 is cylinder 1 head 0 ; track 2 is cylinder 2 head 0 ; ... ; track n-2 is cylinder 2 head 1 ; track n-1 is cylinder 1 head 1 ; track n is cylinder 0 head 1 ;Bit 6 set if the format is for a high-density disc ; (This is an extension in PCW16 CP/M, BIOS ; 0.09+. It is not an official part of the spec.) ;Bit 7 set if the format is double track. DEFB tracks/side DEFB sectors/track DEFB first physical sector number DEFW sector size, bytes DEFB uPD765A read/write gap DEFB uPD765A format gap DEFB MFM/Multitrack flags byte ;Bit 7 set => Multitrack else Single track ;Bit 6 set => MFM mode else FM mode ;Bit 5 set => Skip deleted data address mark DEFB freeze flag ;Set to nonzero value to force this format ;to be used - otherwise, attempt to determine ;format when a disc is logged in. |