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.
140 lines
5.0 KiB
140 lines
5.0 KiB
;================ Disk Parameter Blocks, Fixed Formats ====================
|
|
; Generic File.
|
|
;
|
|
; 1.1 - 04 Sep 16 - Mods for HBIOS V 2.8 LN+WW
|
|
; 1.0 - 31 Aug 92 - General Release. HFB
|
|
; 0.1 - 3 Jan 92 - Initial Release. HFB
|
|
;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
|
; This file is used to define a fixed format for physical drives when No
|
|
; Autoselection is desired. Select the format(s) to remain resident in the
|
|
; executable code, delete the remaining to save space, and modify the DPH.LIB
|
|
; file to associate the drive DPHs to the DPB format data contained here.
|
|
|
|
; The B/P BIOS DPB's contain prefix information that furnish
|
|
; information on the format. Since there is no "Native" format,
|
|
; each format MUST have these headers.
|
|
|
|
; FORMAT TYPE BYTE 0
|
|
; ------------------
|
|
; D D D D D D D D
|
|
; 7 6 5 4 3 2 1 0
|
|
; | | | | | +-+-+--- Disk Size: 000=Fixed Disk, 001=8", 010=5.25", 011=3.5"
|
|
; | | +-+-+--------- Track Type: 000 = Single-Sided 001 = (reserved)
|
|
; | | 010 = Sel by Sctr, Cont 011 = Sel by Sctr, Sec # Same
|
|
; | | 100 = S0 All, S1 All 101 = S0 All,S1 All Rev
|
|
; | | 110 = Sel by Trk LSB 111 = (reserved)
|
|
; | +--------------- Track 0 Side 0: 0 = Double-Density, 1 = Single-Density
|
|
; +----------------- 0 = Double-Density, 1 = Single-Density
|
|
|
|
FIXDSK EQU 00000000B
|
|
DSK8 EQU 00000001B
|
|
DSK5 EQU 00000010B
|
|
DSK3 EQU 00000011B
|
|
SS EQU 00000000B
|
|
TSBSC EQU 00010000B ; Side Select by Sector Number, Cont Sect #
|
|
TSBSS EQU 00011000B ; Side Select by Sector Number, Same Sect #
|
|
TSBTM EQU 00100000B ; Side Select by Track - S0 All, S1 All
|
|
TSBTMR EQU 00101000B ; Side Select by Track - S0 All, S1 All Rev
|
|
TSBTL EQU 00110000B ; Side Select by Track LSB
|
|
T0S0SD EQU 01000000B
|
|
DD EQU 00000000B
|
|
SD EQU 10000000B
|
|
|
|
; Format Type Byte 1
|
|
; ------------------
|
|
; D D D D D D D D
|
|
; 7 6 5 4 3 2 1 0
|
|
; | | | | | +-+-+--- Sector Size: 000=128, 001=256, 010=512, 011=1024 bytes
|
|
; | | +-+-+--------- Alloc Size: 000=1K, 001=2K, 010=4K, 011=8K, 100=16K
|
|
; | +--------------- (reserved)
|
|
; +----------------- 0 = Normal 5.25" Speed, 1 = 8" or Hi-Density Floppy
|
|
|
|
SEC128 EQU 00000000B
|
|
SEC256 EQU 00000001B
|
|
SEC512 EQU 00000010B
|
|
SEC1K EQU 00000011B
|
|
ALC1K EQU 00000000B
|
|
ALC2K EQU 00001000B
|
|
ALC4K EQU 00010000B
|
|
ALC8K EQU 00011000B
|
|
ALC16K EQU 00100000B
|
|
SPEED5 EQU 00000000B
|
|
SPEED8 EQU 10000000B
|
|
|
|
; Notes on Skew Factors: Sector Skew may be calculated or may be looked
|
|
; up using a Lookup Table. This is an Assembly-time Option. The Format
|
|
; routines, however, need to have a Skew Factor entry for the purpose of
|
|
; formatting. If this Skew Factor is Negative, This indicates that the
|
|
; Sector Numbers on the Disk are to be Skewed by ABS(Skew) at format time.
|
|
; When calculating Skew for Read/Write, a Negative Number indicates the
|
|
; Sectors are to be Read without Skew Translation.
|
|
|
|
CSEG
|
|
;.....
|
|
; DS/QD AMPRO/SB180/ON
|
|
|
|
DEFB 'Ampro DSQ','D'+80H ; Id - 10 bytes
|
|
DEFB DSK5+DD+TSBTL ; Format type byte 0
|
|
DEFB SPEED5+SEC1K+ALC2K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 17 ; Starting sector number
|
|
DEFB 5 ; Physical sectors per track
|
|
DEFB 80 ; Physical tracks/side
|
|
|
|
DPBRA: DEFW 40 ; Sectors per track
|
|
DEFB 4 ; Block shift factor
|
|
DEFB 15 ; Block mask
|
|
DEFB 0 ; Extent mask
|
|
DEFW 394 ; Disk size-1
|
|
DEFW 255 ; Directory max
|
|
DEFB 0F0H, 0 ; Alloc 0,1
|
|
DEFW 64 ; Check size
|
|
DEFW 2 ; Track offset
|
|
IF NOT CALCSK
|
|
; NOTE: Sectors are Physical Size, Not 128 Byte record size
|
|
; 00 01 02 03 04 05 06 07 ; Logical Sector
|
|
DEFB 17,18,19,20,21,00,00,00 ; Physical sector
|
|
; 08 09 10 11 12 13 14 15 ; Logical Sector
|
|
DEFB 00,00,00,00,00,00,00,00 ; Physical sector
|
|
; 16 17 18 19 20 21 22 23 ; Logical Sector
|
|
DEFB 00,00,00,00,00,00,00,00 ; Physical sector
|
|
; 24 25 ; Logical Sector
|
|
DEFB 00,00 ; Physical sector
|
|
ENDIF
|
|
|
|
DPBSIZ EQU $-DPB ; Total size of one DPB
|
|
DPHDSZ EQU DPBRA-DPB ; DPB header size
|
|
|
|
;.....
|
|
; DS/DD AMPRO/SB180/ON
|
|
|
|
DEFB 'Ampro DSD','D'+80H ; Id - 10 bytes
|
|
DEFB DSK5+DD+TSBTL ; Format type byte 0
|
|
DEFB SPEED5+SEC512+ALC2K ; Format type byte 1
|
|
DEFB -2 ; Skew factor
|
|
DEFB 17 ; Starting sector number
|
|
DEFB 5 ; Physical sectors per track
|
|
DEFB 80 ; Physical tracks/side
|
|
|
|
DPBRB: DEFW 40 ; Sectors per track
|
|
DEFB 4 ; Block shift factor
|
|
DEFB 15 ; Block mask
|
|
DEFB 0 ; Extent mask
|
|
DEFW 194 ; Disk size-1
|
|
DEFW 127 ; Directory max
|
|
DEFB 0C0H, 0 ; Alloc 0,1
|
|
DEFW 32 ; Check size
|
|
DEFW 2 ; Track offset
|
|
IF NOT CALCSK
|
|
; NOTE: Sectors are Physical size, Not 128 Byte Record Size
|
|
; 00 01 02 03 04 05 06 07 ; Logical Sector
|
|
DEFB 17,18,19,20,21,22,23,24 ; Physical sector
|
|
; 08 09 10 11 12 13 14 15 ; Logical Sector
|
|
DEFB 25,26,00,00,00,00,00,00 ; Physical sector
|
|
; 16 17 18 19 20 21 22 23 ; Logical Sector
|
|
DEFB 00,00,00,00,00,00,00,00 ; Physical sector
|
|
; 24 25 ; Logical Sector
|
|
DEFB 00,00 ; Physical sector
|
|
ENDIF
|
|
;======================= End of DPBRAM.LIB ===========================
|
|
|