Files
RomWBW/Source/BPBIOS/icfg-ww.z80
Wayne Warthen 32228eb89c BPBIOS Updates
- Removed concept of BPBIOS internal proxy (configuration N).
2021-10-07 15:56:54 -07:00

218 lines
9.7 KiB
Z80 Assembly
Raw 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.
;::::::::::::::::::::::::::::::::::::::::::********************************
; I/O Configuration Area ****** Hardware Specific ******
; - Retro-Brew Computers w/ HBIOS- ********************************
;
; 1.4 - 29 Nov 16 - Updated for HBIOS version 2.8 WW
; 1.3 - 17 Jan 14 - N8VEM Initial Test release WW+LN
; 1.2 - 22 Aug 01 - Cleaned up for GPL release. HFB
; 1.1 - 18 Apr 97 - Modified to Add GIDE Definitions. HFB
; 1.0 - 27 Jan 97 - Initial Release for P112. HFB
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
;*** * * * * * * * * * * W A R N I N G ! ! ! * * * * * * * * * * * * ***
;*** Do NOT alter any of the ordering or sizing of the following data ***
;*** locations or utilities will probably NOT function correctly! ***
;*** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ***
CSEG
; Form Option Byte 1
OPT1 DEFL [BANKED AND 1] ; Bit 0 = unbanked/banked
OPT1 DEFL OPT1+[INROM AND 2] ; Bit 1 = Bank in RAM/Bank in ROM
OPT1 DEFL OPT1+[AUTOSL AND 4] ; Bit 2 = DPB Fixed/DPB Assignable
OPT1 DEFL OPT1+[BANKED AND ZSDOS2 AND 8] ; Bit 3 = ALV/CSV in Banked RAM
; Bit 7 is "Lock" flag for system loads
; If set to 1, LDSYS will not load a
; new system over the running one.
DEFB 'B/P-WW' ; Six-char string for Text ID Matching
CONFIG:
;IOBYT: DEFB 10010100B ; LST:=PIO, AUX:=COM2, CON:=COM1
IOBYT: DEFB 11111100B ; LST:=Null, AUX:=Null, CON:=COM1
SYSDRV: DEFB 2 ; System drive (a=0, b=1...)
OPTF1: DEFB OPT1 ; Option flags
UABNK: DEFB BNKU ; Beginning of User Bank(s) if Banked System
; (Ending Bank denoted by SYSBNK-1)
TPABNK: DEFB BNK0 ; TPA Bank Number if Banked System
SYSBNK: DEFB BNK2 ; Beginning of System Bank(s) if Banked System
; (Ending Bank denoted by RAMBNK-1)
RAMBNK: DEFB BNK3 ; Base Bank Number for Ram Disk
MAXBNK: DEFB BNKM ; Highest permissible Bank Number
HICOMM: DEFB 80H ; Page address of start of high Common Memory
DPBSZ: DEFB DPBSIZ ; Size of DPB
NUMDPB:
IF BANKED
DEFB 0 ; Number of DPBs in Common RAM
DEFB NRDPB ; Number of Banked DPBs
ELSE
DEFB NRDPB ; Number of DPBs in Common RAM
DEFB 0 ; Number of Banked DPBs
ENDIF
DPBADR:
IF BANKED
DEFW 0 ; Pointer to dirst Common RAM XDPB
DEFW DPB ; Pointer to first XDPB in Alternate Bank
ELSE
DEFW DPB ; Pointer to first Common RAM XDPB
DEFW 0 ; Pointer to first XDPB in Alternate Bank
ENDIF
AUTOCMD: AUTOCL ; Startup command for Z3
;AUTOCMD: DEFB 8,'startupf',0 ; Startup command for Z3
ENVADR: DEFW Z3ENV ; Pointer to the Environment Descriptor
;------------ Banked User Area Control Information ---------------
; An existing User Area cannot exist in Bank 0 by decree. The User Area
; can therefore be used as a flag to determine whether such an area exists.
; The Bank Number is set in DEF-xx.LIB. To keep Page 0 equivalent free in
; the user bank, we offset values to 80H (it's just a good number). The
; top of each User Bank is 7FFFH as with all of the switched banks in
; a B/P Bios System. Banked applications should chain themselves together
; sequentially so that the end can be determined and space managed.
UADAT: DEFB BNKU ; Flag for Banked User Area (0 if None)
DEFW 0080H ; Pointer to Start of User area in Bank
;---------------- CPU Configuration Information ------------------
SPEED: DEFB MHZ ; Set to processor speed value in Configuration
WAITS: DEFB 00010010B ; Number of additional Memory & IO Wait states
; ||||++++--- # of IO Wait States (bits 3-0, only 1 & 0 used)
; ++++------- # of Memory Wait States (bits 7-4, only 5 & 4 used)
RELOD0: DEFW 2560*MHZ ; 16-bit constant for counter/timer refresh
; based on 50 mS Interrupts to Down Timer.
; Use 2560 for 12.288/18.432MHz etc. Crystals,
; 2500 for 16.000MHz Crystals.
;-------- Physical Floppy Disk Configuration Information ---------
; The Physical Drive table consists of 5 bytes for each of 4 Floppy Drives
; thereby providing all necessary data to all types of controllers.
;
; 1 - Drive Characteristics Bits. The Bits have the following meanings:
; D D D D D D D D
; 7 6 5 4 3 2 1 0
; | | | | | +-+-+---- Disk Size 000=Fixed; 001=8"; 010=5.25"; 011=3.5" (*)
; | | | | +---------- Single-Sided (0); Double-Sided (1)
; | | | +------------ (Reserved for Double-Step(1) in XDPH)
; | | +-------------- Drive Motor Control (1); Motor Always On (0)
; | +---------------- Max Speed is 5.25" (0); 8" & Hard Disk & Hi-Dens (1)
; +------------------ (Reserved for Single(1)/Double(0) Density in XDPH)
; (*) - 3.5" and 5.25" drives are treated the same for many formats with
; the drive bits being reduced to 010B in the BIOS code.
; 2 - Drive Step Rate (1 to 16 in increments of 1) in milliseconds
; 3 - Head Load Time (2 to 254 in increments of 2) in milliseconds
; 4 - Head Unload Time (16 to 240 in increments of 16) in milliseconds
; 5 - Number of Physical Tracks on Drive
FDCSPEC: DEFB 6BH,4,24,240,80 ; #1 (3"DSHD,4 mS Step,24mS HLT,240 mS HUT,80t)
DEFB 2AH,4,24,240,40 ; #2 (5"DS,4 mS Step,24mS HLT,240 mS HUT,40t)
DEFB 2AH,4,24,240,80 ; #3 (5"DS,4 mS Step,24mS HLT,240 mS HUT,80t)
DEFB 6AH,4,24,240,80 ; #4 (3"DS,4 mS Step, 24mS HLT,240 mS HUT,80t)
MONTIM: DEFB 100 ; Motor On Time (1 to 255) in tenths-of-seconds
SPINUP: DEFB 8 ; Spinup delay (1 to 255) in tenths-of-seconds
MXRTRY: DEFB 4 ; Maximum Number of retries on Floppy Opns
;IVCT: DEFW INTTBL ; Pointer to interrupt vectors - WW
IVCT: DEFW 0 ; Pointer to interrupt vectors
;-------- Physical Hard Drive Configuration Information ----------
; Hard Disk data begins w/Controller Type, followed by data for 3 drives.
; BPCNFG only supports 3 devices. Originally BPBIOS systems used a SCSI
; interface that could support up to 7 physical drives. Thus the hard disk
; data begins w/ controller type (read SCSI type). Later the GIDE adapter
; became available. It supported only two drives. IDE drives usually have
; much larger capacity and so more drives were never needed with the IDE.
; In the extended DPH the drive associated with each logical CPM drive is
; specified. In ver 2.8 of HBIOS, disk devices are discovered dynamically,
; in the order RAM, ROM, IDE then SD and assigned at that time a
; device number. So the ROM drive is usually device 1, the IDE or HDSK0 is
; device 2 and the SD or HDSK1 is device 3. In this situation, the hard
; disk data below seems redundant. To maintain compatibility it will be
; retained but mostly not used. Controller type will be set GIDE and the
; rest of the data will be set to describe a generic 8 mB drive. The data
; for each drive consists of a byte containing bit codes for Device and a
; bit indicating whether or not the drive is physically connected to the
; system. The configuration should match that contained in DPHHD-xx.LIB
; for Hard Drive partitions, i.e. the unit specified in DPHHD-NH will be
; used in the hard disk driver. The byte for Hard Drive partitions
; contains the following bit fields
;.
; Bit 7 6 5 4 3 2 1 0
; | | | | | | | |
; | | | | | +-+-+-- Physical Device Number (0..6, 7 = Host)
; | | | | +-------- (reserved)
; | | | +---------- 1 = Drive Active, 0 = No Drive
; +-+-+------------ Logical Unit Number (usually 0 or 1
; i.e. master or slave for IDE)
;.....
; The Controller Type Byte contains information needed to dictate the specific
; bytes to be used to communicate to a BPBIOS-connected Hard Drive.
; Additional bytes will be defined as needed, so please coordinate any
; extensions with the Authors to insure the generality of tools. Note that
; this byte is not used since HBIOS presents a unified interface to BPBIOS.
; Also note that BPCNFG only knows about the first ten controller types,
; Second IDE and HBIOS are "Unknown" devices to BPCNFG but it will accept
; these types if input.
CNTRLR: DEFB 80H ; Controller Types recognized are:
; 0 = Owl
; 1 = Adaptec ACB4000a
; 2 = Xebec 1410A, Shugart 1610-3
; 3 = Seagate SCSI
; 4 = Shugart 1610-4 (Minimal SCSI)
; 5 = Conner SCSI
; 6 = Quantum SCSI
; 7 = Maxtor SCSI
; 8 = Syquest SCSI
; 80H = First IDE
; 81H = Second IDE
; 90H = HBIOS Disk IO
; First drive (Generic HBIOS drive configuration)
BITS DEFL HB_HDDEV0 ; First HBIOS Hard Disk Drive
BITS DEFL BITS+[UNIT_0 AND 10H] ; If active, set Bit 4
HDRV0: ; used to convert logical to physical sector addressing
DEFB BITS ; Set Device, Unit, and Active bits
DEFW 520 ; # Cylinders - nuf for 8 8mB partitions
DEFB 16 ; Number of Heads
DEFW 16 ; IDE - Number of Sectors Per Track
DEFW 0000 ; Cylinder # to start precompensation
DEFB 0 ; Step Rate (0=3ms, 1=28us, 2=12us)
; Second drive (Generic HBIOS drive configuration)
BITS DEFL HB_HDDEV1 ; Second HBIOS Hard Disk Drive
BITS DEFL BITS+[UNIT_1 AND 10H] ; If active, set Bit 4
HDRV1: DEFB BITS ; Set Device, Unit, and Active bits
DEFW 520 ; Number of Cylinders
DEFB 16 ; Number of Heads
DEFW 16 ; IDE - Number of Sectors Per Track
DEFW 0000 ; Cylinder # to start precompensation
DEFB 0 ; Step Rate (0=3ms, 1=28us, 2=12us)
; Third drive (Generic HBIOS drive configuration)
BITS DEFL HB_HDDEV2 ; Third HBIOS Hard Disk Drive
BITS DEFL BITS+[UNIT_2 AND 10H] ; If active, set Bit 4
HDRV2: DEFB BITS ; Set Device, Unit, and Active bits
DEFW 520 ; Number of Cylinders
DEFB 16 ; Number of Heads
DEFW 16 ; IDE - Number of Sectors Per Track
DEFW 0000 ; Cylinder # to start precompensation
DEFB 0 ; Step Rate (0=3ms, 1=28us, 2=12us)
DEFB 0,0,0,0,0 ; (Reserved)
;======= End of Fixed Config ======== Device Config follows ========