mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
328 lines
8.6 KiB
328 lines
8.6 KiB
;======= Hard Disk Parameter Blocks =======
|
|
|
|
; The B/P BIOS DPB's contain prefix information that provide data on the
|
|
; logical format. This table contains only DPB Data on Hard Disk Partitions.
|
|
; See DPB.LIB for definitions of bit equates used in all DPB files.
|
|
|
|
; NOTE: For simplicity, the code always assumes a logical 16 512-byte sectors
|
|
; per track for SCSI interface. Translate the actual 17 or 18 sectors
|
|
; to an increased track count of 16 sector tracks.
|
|
|
|
;.....
|
|
; Format Type Byte 0 (Fixed Disk Subset)
|
|
; ------------------
|
|
; D D D D D D D D
|
|
; 7 6 5 4 3 2 1 0
|
|
; | | | | | +-+-+----- Disk Size 000 = Fixed Disk, remainder unused
|
|
; +-+-+-+-+----------- (unused)
|
|
|
|
; All DPBs use the equate: FIXDSK EQU 00000000B from DPB.LIB
|
|
|
|
; Format Type Byte 1 (Fixed Disk Subset)
|
|
; ------------------
|
|
; D D D D D D D D
|
|
; 7 6 5 4 3 2 1 0
|
|
; | | | | | +-+-+----- Sector Size: 010 = 512 bytes assumed in driver
|
|
; | | +-+-+----------- Allocation Size: 000=1K, 001=2K, 010=4K, 011=8K, 100=16K
|
|
; | +----------------- (reserved)
|
|
; +------------------- 1 = High Speed. (0 Not Used)
|
|
|
|
; Information in this byte is not used in the SCSI driver, but is simply
|
|
; maintained for future use and compatibility with other DPB access routines.
|
|
|
|
; NOTE: No Skew Table is needed since Hard Disk Format is locked
|
|
|
|
;.....
|
|
; Partition A. HBIOS Disk 0, Slice 0
|
|
|
|
IF DRV_E
|
|
DEFB 'HBDSK0:0 ','A'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor (== Only the +/- sign used)
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ0 EQU 2048 ; # of blocks in first Partition (1024 trks)
|
|
|
|
;
|
|
;
|
|
DPB50: DEFW 64 ; Sctrs/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ0-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check Size
|
|
DEFW 16 ; Trk Offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition B. HBIOS Disk 0, Slice 1
|
|
|
|
IF DRV_F
|
|
DEFB 'HBDSK0:1 ','B'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ1 EQU 2048 ; # of blocks in Second Partition (1024 trks)
|
|
|
|
;
|
|
;
|
|
DPB51: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ1-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 1056 ; Track offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition C. HBIOS Disk 0, Slice 2
|
|
|
|
IF DRV_G
|
|
DEFB 'HBDSK0:2 ','C'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ2 EQU 2048 ; # of blocks in third Partition (1024 tracks)
|
|
|
|
;
|
|
;
|
|
DPB52: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ2-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 2096 ; Track offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition D. HBIOS Disk 0, Slice 3
|
|
|
|
IF DRV_H
|
|
DEFB 'HBDSK0:3 ','D'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ3 EQU 2048 ; # of blocks in Fourth Partition (1024 tracks)
|
|
|
|
;
|
|
;
|
|
DPB53: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ3-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 3136 ; Track offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition A. HBIOS Disk 1, Slice 0
|
|
|
|
IF DRV_I
|
|
DEFB 'HBDSK1:0 ','E'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor (== Only the +/- sign used)
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ4 EQU 2048 ; # of blocks in first Partition (1024 trks)
|
|
|
|
;
|
|
;
|
|
DPB54: DEFW 64 ; Sctrs/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ4-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check Size
|
|
DEFW 16 ; Trk Offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition B. HBIOS Disk 1, Slice 1
|
|
|
|
IF DRV_J
|
|
DEFB 'HBDSK1:1 ','F'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ5 EQU 2048 ; # of blocks in Second Partition (1024 trks)
|
|
|
|
;
|
|
;
|
|
DPB55: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ5-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 1056 ; Track offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition C. HBIOS Disk 1, Slice 2
|
|
|
|
IF DRV_K
|
|
DEFB 'HBDSK1:2 ','G'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ6 EQU 2048 ; # of blocks in third Partition (1024 tracks)
|
|
|
|
;
|
|
;
|
|
DPB56: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ6-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 2096 ; Track offset
|
|
ENDIF
|
|
|
|
;.....
|
|
; Partition D. HBIOS Disk 1, Slice 3
|
|
|
|
IF DRV_L
|
|
DEFB 'HBDSK1:3 ','H'+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ7 EQU 2048 ; # of blocks in Fourth Partition (1024 tracks)
|
|
|
|
;
|
|
;
|
|
DPB57: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ7-1 ; Disk Size-1
|
|
DEFW 511 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 3136 ; Track offset
|
|
ENDIF
|
|
|
|
;<<< --- Drive M is used for RAM Drive --- >>>
|
|
|
|
IF DRV_N
|
|
DEFB 'ROM ',' '+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC2K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ8 EQU HB_ROMBLKS
|
|
|
|
DPB58: DEFW 64 ; Scts/Trk
|
|
DEFB 4 ; Blk Shf Fctr
|
|
DEFB 15 ; Block Mask
|
|
IF ((HSIZ8 - 1) < 256)
|
|
DEFB 1 ; Extent Mask
|
|
ELSE
|
|
DEFB 0 ; Extent Mask
|
|
ENDIF
|
|
DEFW HSIZ8-1 ; Disk Size-1
|
|
DEFW 255 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 0 ; Track offset
|
|
ENDIF
|
|
|
|
IF DRV_O
|
|
DEFB 'RAM ',' '+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC2K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ9 EQU HB_RAMBLKS
|
|
|
|
DPB59: DEFW 64 ; Scts/Trk
|
|
DEFB 4 ; Blk Shf Fctr
|
|
DEFB 15 ; Block Mask
|
|
IF ((HSIZ9 - 1) < 256)
|
|
DEFB 1 ; Extent Mask
|
|
ELSE
|
|
DEFB 0 ; Extent Mask
|
|
ENDIF
|
|
DEFW HSIZ9-1 ; Disk Size-1
|
|
DEFW 255 ; Dir Max
|
|
DEFB 0F0H,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 0 ; Track offset
|
|
ENDIF
|
|
|
|
IF DRV_P
|
|
DEFB ' ',' '+80H ; Id - 10 bytes
|
|
DEFB FIXDSK ; Format type byte 0
|
|
DEFB SPEED8+SEC512+ALC4K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 1 ; Starting sector number
|
|
DEFB 16 ; Logical Sectors per track
|
|
DEFB 0 ; Physical tracks/side (No Meaning in HD)
|
|
|
|
HSIZ10 EQU 2762 ; Number of blocks in Fourth Logical Drive
|
|
|
|
DPB60: DEFW 64 ; Scts/Trk
|
|
DEFB 5 ; Blk Shf Fctr
|
|
DEFB 31 ; Block Mask
|
|
DEFB 1 ; Extent Mask
|
|
DEFW HSIZ10-1 ; Disk Size-1
|
|
DEFW 1023 ; Dir Max
|
|
DEFB 0FFH,0 ; Alloc 0,1
|
|
DEFW 0 ; Check size
|
|
DEFW 2 ; Track offset
|
|
ENDIF
|
|
|
|
;----------- End of Hard Disk DPBs -------------
|
|
|