;DATA ;************************************************************ ; ; COMMON TABLES AND DATA AREAS ; 09/15/82 ;************************************************************ ; ; FIXED DATA TABLES FOR FOUR-DRIVE SYSTEM ; ; floppy disk parameter headers ; DISK PARAMETER HEADER FOR DISK 00 DPBASE: DW TRANS,0000H DW 0000H,0000H DW DIRBF,DPSD1XBK DW CHK00,ALL00 ; DISK PARAMETER HEADER FOR DISK 01 DW TRANS,0000H DW 0000H,0000H DW DIRBF,DPSD1XBK DW CHK01,ALL01 ; DISK PARAMETER HEADER FOR DISK 02 DW TRANS,0000H DW 0000H,0000H DW DIRBF,DPSD1XBK DW CHK02,ALL02 ; DISK PARAMETER HEADER FOR DISK 03 DW TRANS,0000H DW 0000H,0000H DW DIRBF,DPSD1XBK DW CHK03,ALL03 ; IF PRIAM ; ; hard disk disk parameter headers ; disk parameter header for lun 4 DW 0001H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDPRIAMBK DW CHK04,ALL04 ; DISK PARAMETER HEADER FOR lun 5 DW 0001H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDPRIAMBK DW CHK05,ALL05 ; DISK PARAMETER HEADER FOR lun 6 DW 0001H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDPRIAMBK DW CHK06,ALL06 ENDIF IF SHUGART ; ; hard disk disk parameter headers ; disk parameter header for lun 4 DW 0000H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDSHUGARTBK DW CHK04,ALL04 ENDIF IF QUANTUM ; ; hard disk disk parameter headers ; disk parameter header for lun 4 DW 0000H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDQUANTUMBK DW CHK04,ALL04 ; DISK PARAMETER HEADER FOR lun 5 DW 0000H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDQUANTUMBK DW CHK05,ALL05 ; DISK PARAMETER HEADER FOR lun 6 DW 0000H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDQUANTUMBK DW CHK06,ALL06 ; DISK PARAMETER HEADER FOR lun 7 DW 0000H,0000H ; sectran = 0001 = use skew DW 0000H,0000H DW DIRBF,HDQUANTUMBK DW CHK07,ALL07 ENDIF ; SINGLE DENSITY SECTOR TRANSLATE VECTOR TRANS: DB 1,7,13,19 ;SECTORS 1,2,3,4 DB 25,5,11,17 ;SECTORS 5,6,7,8 DB 23,3,9,15 ;SECTORS 9,10,11,12 DB 21,2,8,14 ;SECTORS 13,14,15,16 DB 20,26,6,12 ;SECTORS 17,18,19,20 DB 18,24,4,10 ;SECTORS 21,22,23,24 DB 16,22 ;SECTORS 25,26 IF SKEW ; skew TRANS5: DB 1,4,7,10,13,16,3,6,9,12,15,2,5,8,11,14 TRANS5M: DB 1,6,2,7,3,8,4,9,5,10 IF OLDQ TRANSQ: DB 1,7,13,3,8,14,4,9,15,5,10,16,6,12,2,11 ELSE TRANSQ: DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 ENDIF ; if oldq ENDIF ; if skew ; ;*************************************************************** ;* MINISKEW is used by deblocking to determine whether disk ;* is skewed or not and how many tracks to consider unskewed ;* for the operating system. (8" = 2, Mini = 3) ;* 0100$0000 = MINI 0000$1000 = SKEWED DISK ;* 1000$0000 = SKEW AFTER DBLOCK (SAVES TABLE SPACE) ;*************************************************************** ; ; ;**************************************************************** ; ; COMMON DATA AREA ; ;**************************************************************** ; ; SCRATCH RAM AREA FOR BDOS USE ; ; COMDATA: ; CURDISK: DB 00 NEWDISK: DB 00 OLDISK: DB 00 LASTFLOP: DB 00 SECTK0: DB 00 SECTK1: DB 00 SECCOUNT: DB 00 WBSPT: DW 0000 ; CPMSPT: DB 00 DSKSPT: DW 0000 ;CPM SECTORS/BLOCK HSTBLS: DB 00 ;CPM SECTORS/TRACK SECMSK: DB 00 ;SECTOR MAPPING MASK SECSHF: DB 00 ;SECTOR SELECTION MASK BYTSEC: DW 0000 ;SECTOR SIZE IN BYTES MINISKEW DB 00 ;MINI AND SKEW MASK, MINI 10H, SKEW 04H TRANSTBL: DW 0000 ;ADDRESS OF TRANSLATE TABLE ; HSTACT: DB 00 ;HOST ACTIVE UNACNT: DB 00 ;UNALLOCATED COUNT HSTWRT: DB 00 ;HOST WRITTEN HSTTRK: DW 0000 ;DBLOCK TRACK HSTSEC: DW 0000 ;DBLOCK SECTOR HSTDMA: DW 0000 ;DBLOCK DMA ; TRK: DB 00,00 ;CURRENTLY SELECTED TRACK. SECT: DB 00,00 ;CURRENTLY SELECTED SECTOR. DMAADD: DB 00,00 ;CURRENT READ/WRITE ADDRESS. TRTAB: DB 00,00,00,00 ;TRACK TABLE FOR FLOP DFLAGS: DB 00,00,00,00 ;DENSITY AND LOGIN TABLE ; IF MINI48 OR MINI96 OR MAXI8 ALL00: DS 64 ;ALLOCATION VECTOR 0 ALL01: DS 64 ;ALLOCATION VECTOR 1 IF PRIAM OR SHUGART OR QUANTUM ALL02: DS 0 ;ALLOCATION VECTOR 2 ALL03: DS 0 ;ALLOCATION VECTOR 3 ELSE ALL02: DS 64 ALL03: DS 64 ENDIF CHK00: DS 64 ;CHECK VECTOR 0 CHK01: DS 64 ;CHECK VECTOR 1 IF PRIAM OR SHUGART OR QUANTUM CHK02: DS 0 ;CHECK VECTOR 2 CHK03: DS 0 ;CHECK VECTOR 3 ELSE CHK02: DS 64 CHK03: DS 64 ENDIF ENDIF IF PRIAM OR QUANTUM OR SHUGART ALL04: DS 256 ; hard disk allocation vector ENDIF IF SMS10 OR SHUGART ALL05: DS 0 ALL06: DS 0 ALL07: DS 0 ENDIF IF SMS20 ALL05: DS 256 ALL06: DS 0 ALL07: DS 0 ENDIF IF SMS30 OR PRIAM ALL05: DS 256 ALL06: DS 256 ALL07: DS 0 ENDIF IF SMS40 ALL05: DS 256 ; hard disk allocation vector ALL06: DS 256 ; hard disk allocation vector ALL07: DS 256 ENDIF IF PRIAM OR SHUGART OR QUANTUM CHK04: DS 0 ; no check vectors for hard disk CHK05: DS 0 CHK06: DS 0 CHK07: DS 0 ENDIF ;******************************************************* ;* ;* COMMON SRATCH AREA FOR BIOS USE ;* ;******************************************************* ; ; SCRATCH RAM AREA FOR BDOS USE ; ENDCOMDATA EQU $ COMLENGTH EQU ENDCOMDATA-COMDATA ; IF MMPM ; ;************************************************************************ ;* ;* COMMON BASE M / P M 2 . 1 ;* ;************************************************************************ ; COMMONBASE: ; JMP COLDSTART ; SWTUSER: ; JMP $-$ ; SWTSYS: ; JMP $-$ ; PDISP: ; JMP $-$ ; XDOS: ; JMP $-$ ; SYSDAT: ; DW $-$ ; ; COLDSTART: ; WARMSTART: ; MVI C,0 ; JMP XDOS ; ; ENDIF ; ;***************************************************************** ;* ;* DISK DRIVE PARAMETER TABLES ;* ;***************************************************************** ; ; cp/m 1.4 double density 128 byte/sector single sided disk prameters ; PARAMTBL: ; IF MAXI8 DB 0DDH ; flag DB 0000$0001B ; internal code DPDD1NBK: ;2D/128 1.4 CP/M DISK PARAMETER BLOCK DW 51 ;SECTORS PER TRACK - SPT DB 4 ;BLOCK SHIFT FACTOR - BSH DB 15 ;BLOCK MASK - BLM DB 0 ;EXTENT MASK DW 238 ;DISK SIZE IN BLOCKS - DSM DW 95 ;DIRECTORY MAX ENTRIES - DLM DB 0C0H ;DIR. ALLOC. MASK - AL0 DB 0 ;DIR. ALLOC. MASK - AL1 DW 32 ;DIR. CHECK SIZE - CKS DW 2 ;TRACK OFFSET - OFF DB NSECTS ; ccp + bdos length in sectors DB 25 ; number of sectors on track 0 +1 DB 51 ; number of sectors on track 1 +1 DW 51 DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 ; ; cp/m 2.2 double density 128 byte/sector double sided disk prameters ; DB 090H ; flag DB 0000$0101B ; internal code DPDS1XBK: ;CPM 2.2 2D/128 DISK PARAMETER BLOCK DW 51 ;SECTORS PER TRACK - SPT DB 4 ;BLOCK SHIFT FACTOR - BSH DB 15 ;BLOCK MASK - BLM DB 0 ;EXTENT MASK DW 238*2+6 ;DISK SIZE IN BLOCKS - DSM DW 127 ;DIRECTORY MAX ENTRIES - DLM DB 0C0H ;DIR. ALLOC. MASK - AL0 DB 0 ;DIR. ALLOC. MASK - AL1 DW 32 ;DIR. CHECK SIZE - CKS DW 2 ;TRACK OFFSET - OFF DB NSECTS ; ccp + bdos length in sectors DB 25 ; number of sectors on track 0 +1 DB 51 DW 51 ; number of sectors on track 1 +1 DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 ; IF DBLOCK IF F256 ; cp/m 2.2 256 byte per sector double density ; DB 11H ; flag DB 0000$0001B ; internal code DPDS2XBK: DW 52 ;26 - 256 BYTE SECTORS/TRACK - SPT DB 4 ;BLOCK SHIFT FACTOR - BSH DB 15 ;BLOCK MASK - BLM DB 1 ;EXTENT MASK DW 245 ;DISK SIZE IN BLOCKS - DSM DW 127 ;DIRECTORY MAX ENTRIES - DRM DB 0C0H ;DIR. ALLOC. MASK - AL0 DB 0 ;DIR. ALLOC. MASK - AL1 DW 32 ;DIR. CHECK SIZE - CKS DW 2 ;TRACK OFFSET - OFF DB NSECTS ;CPM SYSTEM SIZE (FOR WMBOOT) DB 25 ;number of sectors on trk 0 DB 52 ;number of sectors on trk 1 DW 26 ; physical sects trk 1 DB 2048/128 ; cpm block size/cpm sector size DB 256/128-1 ; disk sector size/cpm sector size DB 1 ; logical to phisical sector map (1 = 2 phys sec.) DW 256 ; bytes per sector DB 0000$0000B ; miniskew mask DW 0000 ; address of translate table ; cp/m 2.2 256 byte per sector double density DOUBLE SIDED ; DB 91H ; flag DB 0000$0101B ; internal code DPDDDS2XBK: DW 52 ;26 - 256 BYTE SECTORS/TRACK - SPT DB 4 ;BLOCK SHIFT FACTOR - BSH DB 15 ;BLOCK MASK - BLM DB 0 ;EXTENT MASK DW 495 ;DISK SIZE IN BLOCKS - DSM DW 127 ;DIRECTORY MAX ENTRIES - DRM DB 0C0H ;DIR. ALLOC. MASK - AL0 DB 0 ;DIR. ALLOC. MASK - AL1 DW 32 ;DIR. CHECK SIZE - CKS DW 2 ;TRACK OFFSET - OFF DB NSECTS ;CPM SYSTEM SIZE (FOR WMBOOT) DB 25 ;number of sectors on trk 0 DB 52 ;number of sectors on trk 1 DW 26 ; physical sects trk 1 DB 2048/128 ; cpm block size/cpm sector size DB 256/128-1 ; disk sector size/cpm sector size DB 1 ; logical to phisical sector map (1 = 2 phys sec.) DW 256 ; bytes per sector DB 0000$0000B ; miniskew mask DW 0000 ; address of translate table ENDIF ; f256 IF SKEW IF F512 ; ; cp/m 2.2 512 byte sector double density ; DB 1AH ; code byte DB 0000$0001B ; internal code DPDS5XBKSK: DW 64 ;16 - 512 BYTE SECTORS/TRACK DB 5 ; DB 31 ; DB 3 ;EXTENT MASK DW 149 ; DW 127 ; DB 128 ; DB 0 ; DW 32 ; DW 2 ; DB NSECTS ;CP/M BLK SIZE DB 25 ; 128 type sects on tk 0 DB 64 ; 128 type sects on tk 1 DW 16 ; physical sect trk 1 DB 4096/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to physical sector map (1 = 2 phys sec.) DW 512 DB QSKEWBIT ; miniskew mask DW TRANS5 ; translate table ; ; cp/m 2.2 512 byte sector double density, double sided SKEW ; DB 9AH ; code byte DB 0000$0101B ; internal code DPDD5XBKSK: DW 64 ;16 - 512 BYTE SECTORS/TRACK DB 5 ; DB 31 ; DB 1 ;EXTENT MASK DW 303 ; DW 127 ; DB 80H ; DB 0 ; DW 32 ; DW 2 ; DB NSECTS ; nsects to read on a re-boot DB 25 ; 128 type sects tk 0 DB 64 ; 512 type sects tk 1 DW 16 ; physical sects trk 1 DB 4096/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to physical sector map (1 = 2 phys sec.) DW 512 ; bytes per sect DB QSKEWBIT ; miniskew mask DW TRANS5 ; translate table ENDIF ; f512 ENDIF ; skew ENDIF ; dblock ENDIF ; maxi8 IF MINI48 ; cp/m double density 128 byte/sector single sided mini drive 48 TPI ; DB 050H ; flag DB 0000$0001B ; internal code DPSD1MBK: ;1D/128 DISK PARAMETER BLOCK - MINI DW 30 ;SECTORS PER TRACK DB 3 ;BLOCK SHIFT FACTOR DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 137 ;DISK SIZE-1 DW 63 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 30 ; number of sectors on track 1 DW 30 DB 1024/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 ; ; cp/m double density 128 byte/sector double sided mini drive 48 TPI ; DB 0D0H ; flag DB 0000$0101B ; internal code DPDD1MBK: ;1D/128 DISK PARAMETER BLOCK - MINI DW 30 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 1 ;NULL MASK DW 143 ;DISK SIZE-1 DW 63 ;DIRECTORY MAX DB 128 ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 30 ; number of sectors on track 1 DW 30 DB 2048/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 IF SKEW IF F512 IF DBLOCK ; ; cp/m double density 512 byte/sector single sided mini drive 48 tpi ; DB 5AH ; flag DB 0000$0001B ; internal code DP512M48SNGBK: ;1D/128 DISK PARAMETER BLOCK - MINI DW 40 ;SECTORS PER TRACK DB 3 ;BLOCK SHIFT FACTOR DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 184 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 240 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 40 ; DW 40 ; number of sectors on track 1 DB 1024/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to phisical sector map (1 = 2 phys sec.) DW 512 ; bytes per sector DB 0C0H ; mini + skew DW TRANS5M ; 10 sector skew ; ; cp/m double density 512 byte/sector double sided mini drive 48 tpi ; DB 0DAH ; flag DB 0000$0101B ; internal code DP512M48DBL: ;1D/128 DISK PARAMETER BLOCK - MINI DW 40 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 1 ;NULL MASK DW 191 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 40 ; DW 40 ; number of sectors on track 1 DB 2048/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to phisical sector map (1 = 2 phys sec.) DW 512 ; bytes per sector DB 0C0H ; DW TRANS5M ; ENDIF ; if dblock ENDIF ; if 512 ENDIF ; if skew ENDIF ; if mini48 IF MINI96 ; ; cp/m double density 128 byte/sector single sided mini drive 96 tracks per in. ;96 DB 054H ; flag DB 0000$0001B ; internal code DP128M96SGLBK: ;1D/128 DISK PARAMETER BLOCK - MINI DW 30 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 0 ;NULL MASK DW 142 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 30 ; number of sectors on track 1 DW 30 DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 ; ; cp/m double density 128 byte/sector double sided mini drive 96 tpi ; DB 0D4H ; flag DB 0000$0101B ; internal code DP128M96DBL: ;1D/128 DISK PARAMETER BLOCK - MINI DW 30 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 0 ;NULL MASK DW 287 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 30 DW 30 ; number of sectors on track 1 DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 IF SKEW IF F512 IF DBLOCK ; ; cp/m double density 512 byte/sector single sided mini drive 96 tpi ; DB 05EH ; flag DB 0000$0001B ; internal code DP512M96SNGL: ;1D/128 DISK PARAMETER BLOCK - MINI DW 40 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 1 ;NULL MASK DW 184 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 40 ; DW 40 ; number of sectors on track 1 DB 2048/512 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to phisical sector map (1 = 2 phys sec.) DW 512 ; bytes per sector DB 0C0H ; DW TRANS5M ; ; ; cp/m double density 512 byte/sector double sided mini drive 96 tpi ; DB 0DEH ; flag DB 0000$0101B ; internal code DP512M96DBL: ;1D/128 DISK PARAMETER BLOCK - MINI DW 40 ;SECTORS PER TRACK DB 4 ;BLOCK SHIFT FACTOR DB 15 ;BLOCK MASK DB 0 ;NULL MASK DW 376 ;DISK SIZE-1 DW 127 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 32 ;CHECK SIZE DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 17 ; number of sectors on track 0 DB 40 ; DW 40 ; number of sectors on track 1 DB 2048/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to phisical sector map (1 = 2 phys sec.) DW 512 ; bytes per sector DB 0C0H ; DW TRANS5M ; ENDIF ; dblock ENDIF ; 512 ENDIF ; skew ENDIF ; mini96 IF PRIAM ; cp/m hard disk 128 byte/sector 104 sectors/track DB 20H ;CODE BYTE DB 0FFH ;DUMMY HDPRIAMBK: DW 104 ;SECTORS PER TRACK DB 5 ;BLOCK SHIFT FACTOR (4 k blocks) DB 31 ;BLOCK MASK DB 1 ;NULL MASK DW 1821 ;DISK SIZE-1 DW 511 ;DIRECTORY MAX DB 0F0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 0 ;CHECK SIZE (fixed media no check) DW 1 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 103 ; number of sectors on track 0 +1 DB 103 ; number of sectors on track 1 +1 DW 104 DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 ENDIF IF SHUGART ; cp/m hard disk 256 byte/sector 26 sectors/track DB 25H ;CODE BYTE DB 0FFH ;DUMMY HDSHUGARTBK: DW 52 ;SECTORS PER TRACK DB 5 ;BLOCK SHIFT FACTOR (4 k blocks) DB 31 ;BLOCK MASK DB 1 ;NULL MASK DW 2047 ;DISK SIZE-1 DW 511 ;DIRECTORY MAX DB 240 ;ALLOC 0 DB 0 ;ALLOC 1 DW 0 ;CHECK SIZE (fixed media no check) DW 2 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 52 ; number of sectors on track 0 DB 52 ; number of sectors on track 1 DW 26 DB 4096/128 ; cpm block size/cpm sector size DB 256/128-1 ; disk sector size/cpm sector size DB 1 ; logical to physical sector map (1 = 2 phys sec.) DW 256 ; bytes per sector DB HDBIT ; DB 00,00 ; ENDIF ; IF QUANTUM ; cp/m hard disk 512 byte/sector 128 sectors/track DB 26H ;CODE BYTE DB 0FFH ;DUMMY HDQUANTUMBK: DW 64 ;SECTORS PER TRACK DB 5 ;BLOCK SHIFT FACTOR (4 k blocks) DB 31 ;BLOCK MASK DB 1 ;NULL MASK DW 2042 ;DISK SIZE-1 DW 511 ;DIRECTORY MAX DB 240 ;ALLOC 0 DB 0 ;ALLOC 1 DW 0 ;CHECK SIZE (fixed media no check) DW 3 ;TRACK OFFSET DB NSECTS ; ccp + bdos length in sectors DB 64 ; number of sectors on cyl 0 DB 64 ; number of sectors on cyl 1 (physical) DW 16 ; cpm sectors on trk 1 DB 4096/128 ; cpm block size/cpm sector size DB 512/128-1 ; disk sector size/cpm sector size DB 2 ; logical to physical sector map (1 = 2 phys sec.) DW 512 ; bytes per sector DB QSKEWBIT+HDBIT ; special Quantum code DW TRANSQ ; trans ENDIF ; ; cp/m single density 128 byte/sector single sided IBM STANDARD ; this is the default prameter block and end of table marker. ; NOTE: THIS TABLE MUST NOT BE REMOVED: ; TBLSTART: EQU $ DB 0E5H ; flag DB 0000$0010B ; internal code DPSD1XBK: ;1D/128 DISK PARAMETER BLOCK - IBM STANDARD DW 26 ;SECTORS PER TRACK DB 3 ;BLOCK SHIFT FACTOR DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 242 ;DISK SIZE-1 DW 63 ;DIRECTORY MAX DB 192 ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 2 ;TRACK OFFSET NSECTPOS EQU $-DPSD1XBK DB NSECTS ; ccp + bdos length in sectors DB 25 ; number of sectors on track 0 +1 DB 26 ; number of sectors on track 1 +1 DW 26 ; cpm sectors per track DB 128/128 ; cpm block size/cpm sector size DB 128/128-1 ; disk sector size/cpm sector size DB 0 ; logical to phisical sector map (1 = 2 phys sec.) DW 128 ; bytes per sector DB 00,00,00 TBLEND: EQU $ ; IF MLDR or XMLDR DIRBF: DS 128 IF DBLOCK HSTBUF: DS MAXHST ENDIF ; ENDSYS: EQU $ ; to make dsysgen happy ENDSYS1: DW ENDSYS ; ENDIF ; if mpmldr ; ;**************************************************************** ; ; END OF COMMON DATA AND TABLE AREA ; ;**************************************************************** ;