Files
Pegasys-RomWBW/Source/BPBIOS/dphhd.lib
Wayne Warthen 0bac6f32ea Update BPBIOS Disk Reference Lookup
- Modified BPBIOS to implement proper physical/logical disk unit lookups.
2024-01-12 15:22:13 -08:00

262 lines
7.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; Additional Disk Parameter Headers (DPH) for Hard Drives Generic File
; (MUST be in Common Memory)
; This data must match information contained in the DPB table for Hard Drives.
;
; 1.3 - 04 Sep 16 - Mods for HBIOS V 2.8 WW+LN
; 1.2 - 24 Mar 14 - Initial N8VEM test release WW+LN
; 1.1 - 28 Aug 01 - Made generic module for GPL release. HFB
; 1.0 - 31 Aug 92 - General Release. HFB
; 0.1 - 3 Jan 92 - Initial release. HFB
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; The Logical Drive Number byte (XDPH+3) is simply an index into the
; BPBIOS physical drive table as specified in the ICFG-xx.Z80 file.
; BPBIOS supports exactly three logical drives which
; are defined in that section, the first byte of which defines the
; Physical Unit (HBIOS Disk Unit)
; and a flag bit to specify whether or not the drive is physically present.
; See ICFG-xx.Z80 for a definition of the data.
CSEG
;<<< --- Drive A is for RAM Drive --- >>>
XDPH90: DEFB TRUE ; Format lock flag (Lock RAM Drive)
DEFB FIXDSK ; Disk Drive Type
DEFB 3 ; Driver ID = Treat as Hard Drive
DEFB HB_MDRAM ; Physical Drive Number
DPH$90: DEFW 0 ; Skew Table pointer
DEFW 0,0,0 ; Scratch area
DEFW DIRBUF ; Directory buffer pointer
DEFW DPBRAM ; Pointer to DPB for RAM Drive
DEFW 0 ; No Wacd for RAM drive
DEFW ALV$90 ; Alloc vector for RAM Drive
;
;<<< --- Drive B is for ROM Drive --- >>>
XDPH91: DEFB TRUE ; Format lock flag (Lock ROM Drive)
DEFB FIXDSK ; Disk Drive Type
DEFB 3 ; Driver ID = Treat as Hard Drive
DEFB HB_MDROM ; Physical Drive Number
DPH$91: DEFW 0 ; Skew Table pointer
DEFW 0,0,0 ; Scratch area
DEFW DIRBUF ; Directory buffer pointer
DEFW DPBROM ; Pointer to DPB for ROM Drive
DEFW 0 ; No Wacd for ROM drive
DEFW ALV$91 ; Alloc vector for ROM Drive
;
IF DRV_C
XDPH50: DEFB TRUE ; Format lock flag (Lock First Hard Drive)
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$50: DEFW 0 ; Skew table pointer
DEFW 0,0,0 ; Scratch area
DEFW DIRBUF ; Directory buffer pointer
DEFW DPB50 ; Pointer to DPB for first partition/drive
DEFW 0 ; No Wacd for hard drive
DEFW ALV$50 ; Alloc vector for first Partition
ENDIF
;
IF DRV_D
XDPH51: DEFB TRUE ; --- Second Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$51: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB51 ; Pointer to DPB for second Partition/Drive
DEFW 0
DEFW ALV$51 ; Alloc vector for second Partition/Drive
ENDIF
;
IF DRV_E
XDPH52: DEFB TRUE ; --- Third Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Physical drive [0..2] for this Partition
DPH$52: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB52 ; Pointer to DPB for third Partition/Drive
DEFW 0
DEFW ALV$52 ; Alloc vector for third Partition/Drive
ENDIF
;
IF DRV_F
XDPH53: DEFB TRUE ; --- Fourth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$53: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB53 ; Pointer to DPB for fourth Partition/Drive
DEFW 0
DEFW ALV$53 ; Alloc vector for fourth Partition/Drive
ENDIF
;
IF DRV_G
XDPH54: DEFB TRUE ; --- Fifth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$54: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB54 ; Pointer to DPB for fifth Partition/Drive
DEFW 0
DEFW ALV$54 ; Alloc vector for fifth Partition/Drive
ENDIF
;
IF DRV_H
XDPH55: DEFB TRUE ; --- Sixth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$55: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB55 ; Pointer to DPB for sixth Partition/Drive
DEFW 0
DEFW ALV$55 ; Alloc vector for sixth Partition/Drive
ENDIF
;
IF DRV_I
XDPH56: DEFB TRUE ; --- Seventh Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$56: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB56 ; Pointer to DPB for seventh Partition/Drive
DEFW 0
DEFW ALV$56 ; Alloc vector for seventh Partition/Drive
ENDIF
;
IF DRV_J
XDPH57: DEFB TRUE ; --- Eighth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 0 ; Logical drive [0..2] for this Partition
DPH$57: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB57 ; Pointer to DPB for eighth Partition/Drive
DEFW 0
DEFW ALV$57 ; Alloc vector for eighth Partition/Drive
ENDIF
;
IF DRV_K
XDPH58: DEFB TRUE ; --- Ninth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 1 ; Logical drive [0..2] for this Partition
DPH$58: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB58 ; Pointer to DPB for ninth Partition/Drive
DEFW 0
DEFW ALV$58 ; Alloc vector for ninth Partition/Drive
ENDIF
;
IF DRV_L
XDPH59: DEFB TRUE ; --- Tenth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 1 ; Logical drive [0..2] for this Partition
DPH$59: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB59 ; Pointer to DPB for tenth Partition/Drive
DEFW 0
DEFW ALV$59 ; Alloc vector for tenth Partition/Drive
ENDIF
;
IF DRV_M
XDPH60: DEFB TRUE ; --- Eleventh Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 1 ; Logical drive [0..2] for this Partition
DPH$60: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB60 ; Pointer to DPB for eleventh Partition/Drive
DEFW 0
DEFW ALV$60 ; Alloc vector for eleventh Partition/Drive
ENDIF
;
IF DRV_N
XDPH61: DEFB TRUE ; --- Twelveth Hard Drive/Partition
DEFB FIXDSK ; Disk drive type
DEFB 2 ; Driver ID - 2=hard drive
DEFB 1 ; Logical drive [0..2] for this Partition
DPH$61: DEFW 0
DEFW 0,0,0
DEFW DIRBUF
DEFW DPB61 ; Pointer to DPB for eleventh Partition/Drive
DEFW 0
DEFW ALV$61 ; Alloc vector for eleventh Partition/Drive
ENDIF
; Allocation BitMap Buffers. Each MUST be # Alloc Blks/8 Bytes at Minimum.
; Each Logical Drive MUST have an Allocation BitMap Buffer.
COMMON /RESVD/ ; Reserve space for BPBUILD
ALV$90: DEFS MSIZR/8+1 ; Space for RAM Drive Alloc Blocks
;
ALV$91: DEFS MSIZO/8+1 ; Space for ROM Drive Alloc Blocks
;
IF DRV_C
ALV$50: DEFS HSIZ0/8+1 ; Space for First Logical Drive Alloc Blocks
ENDIF
;
IF DRV_D
ALV$51: DEFS HSIZ1/8+1 ; Space for Second Logical Drive Alloc Blocks
ENDIF
;
IF DRV_E
ALV$52: DEFS HSIZ2/8+1 ; Space for Third Logical Drive Alloc Blocks
ENDIF
;
IF DRV_F
ALV$53: DEFS HSIZ3/8+1 ; Space for Fourth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_G
ALV$54: DEFS HSIZ4/8+1 ; Space for Fifth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_H
ALV$55: DEFS HSIZ5/8+1 ; Space for Sixth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_I
ALV$56: DEFS HSIZ6/8+1 ; Space for Seventh Logical Drive Alloc Blocks
ENDIF
;
IF DRV_J
ALV$57: DEFS HSIZ7/8+1 ; Space for Eighth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_K
ALV$58: DEFS HSIZ8/8+1 ; Space for Nineth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_L
ALV$59: DEFS HSIZ9/8+1 ; Space for Tenth Logical Drive Alloc Blocks
ENDIF
;
IF DRV_M
ALV$60: DEFS HSIZ10/8+1 ; Space for Eleventh Logical Drive Alloc Blocks
ENDIF
;
IF DRV_N
ALV$61: DEFS HSIZ11/8+1 ; Space for Twelveth Logical Drive Alloc Blocks
ENDIF
;======================= End of DPHHD.LIB =========================