mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
- Refined sd, ide, and ppide drivers to improve hardware compatibility - Improved BPBIOS build process
226 lines
6.5 KiB
Plaintext
226 lines
6.5 KiB
Plaintext
; Z3BASE - Dynamic Configuration
|
||
;
|
||
; ZCPR33 is copyright 1987 by Echelon, Inc. All rights reserved. End-user
|
||
; distribution and duplication permitted for non-commercial purposes only.
|
||
; Any commercial use of ZCPR33, defined as any situation where the duplicator
|
||
; recieves revenue by duplicating or distributing ZCPR33 by itself or in
|
||
; conjunction with any hardware or software product, is expressly prohibited
|
||
; unless authorized in writing by Echelon.
|
||
;
|
||
; This is a special version of Z3BASE, inspired by Joe Wright's Z3BASE
|
||
; for Z-Com. All segment addresses are automatically derived when the
|
||
; CCP equate is set. The benefit of this is that reconfiguration of the
|
||
; system after initial installation is greatly eased.
|
||
;
|
||
; Although this version of Z3BASE is being distributed with ZCPR 3.3, any
|
||
; previous version of Z3BASE can be used to assemble the Z33 Command
|
||
; Processor. No new symbols are needed. So, if you have an existing
|
||
; Z3BASE, go ahead and use it.
|
||
;
|
||
; Instructions:
|
||
;
|
||
; The user should first design the ZCPR3 memory usage using the chart
|
||
; below. (Echelon recommends the chart be filled out, even though it is
|
||
; not read by the assembler, so that your system will be self-documenting.)
|
||
; Then set the CCP equate for the beginning address of ZCPR3. Next, examine
|
||
; and change the SEGn equates which follow in the file to ensure that the
|
||
; system segments and buffers are placed at the proper addresses.
|
||
;
|
||
; This file has been customized for use with AMPRO hard disk systems. The
|
||
; target configuration has support for hard disks up to 49 Meg, extended
|
||
; IOP support, and 28-entry NDR.
|
||
;
|
||
;****************************************************************
|
||
;* *
|
||
;* Z3BASE.LIB -- Base Addresses for ZCPR 3.3/Z-System *
|
||
;* *
|
||
;* Segments: *
|
||
;* *
|
||
;* Segment Function *
|
||
;* ------- -------- *
|
||
;* ZRDOS Echelon Z80 Replacement Disk Operating *
|
||
;* System, Version 1.7 (Public ZRDOS Plus) *
|
||
;* CBIOSZ Ampro-compatible BIOS with additional *
|
||
;* ZCPR3 initialization routines *
|
||
;* ZCPR3 Echelon Z80 Command Processor *
|
||
;* Replacement, Version 3.3 (ZCPR3) *
|
||
;* *.ENV All Environment Descriptors *
|
||
;* *.FCP All Flow Command Packages *
|
||
;* *.NDR All Named Directory Definition Files *
|
||
;* *.RCP All Resident Command Packages *
|
||
;* *.IOP All Input/Output Packages *
|
||
;* *
|
||
;* *
|
||
;* Memory Map of System (for CCP EQU 0BC00H): *
|
||
;* *
|
||
;* Address Range Size Function *
|
||
;* ------------- ------- -------- *
|
||
;* 0 - FF 256 b Standard CP/M Buffers except *
|
||
;* 100 - C3FF ~49 K Transient Program Area *
|
||
;* BC00 - C3FF 2K ZCPR 3.3 Command Processor *
|
||
;* C400 - D1FF 3.5 K ZRDOS *
|
||
;* D200 - EAFF 6.25K Ampro BIOS w/hard disk buffers *
|
||
;* EB00 - F2FF 2 K Resident Command Package *
|
||
;* F300 - F8FF 1.5 K Input/Output Package *
|
||
;* F900 - FAFF .5 K Flow Command Package *
|
||
;* FB00 - FB7F 128 b ZCPR3 Shell Stack *
|
||
;* FB80 - FBCF 80 b ZCPR3 Message Buffers *
|
||
;* FBD0 - FBF3 36 b ZCPR3 External FCB *
|
||
;* FBF4 - FBFE 11 b ZCPR3 External Path *
|
||
;* FBFF 1 b Wheel Byte *
|
||
;* FC00 - FDFF .5 K Memory-Based Named Directory *
|
||
;* FE00 - FEFF 256 b Environment Descriptor *
|
||
;* Bytes 00H-7FH: Z3 Parameters *
|
||
;* Bytes 80H-FFH: Z3 TCAP *
|
||
;* FF00 - FFCF 208 B Multiple Command Line Buffer *
|
||
;* FD00 - FFFF 48 b ZCPR3 External Stack *
|
||
;****************************************************************
|
||
|
||
FALSE equ 0
|
||
TRUE equ NOT FALSE
|
||
|
||
Z3REV EQU 33 ; ZCPR3 REV NUMBER
|
||
MSIZE EQU 54 ; SIZE OF CPM SYSTEM
|
||
|
||
BASE EQU 0
|
||
|
||
CCP EQU 0BC00H ; ZCPR3 COMMAND PROCESSOR
|
||
|
||
seg1 equ CCP+2F00h ; 11.75k from CCP to here (adding 2k ZCPR,
|
||
; 3.5k DOS, and 6.25k BIOS).
|
||
|
||
;
|
||
; RCP definition. Set RCPS to 0 to eliminate RCP
|
||
;
|
||
|
||
RCPS EQU 16 ; 16 128-byte Blocks (2K bytes)
|
||
|
||
IF RCPS NE 0
|
||
RCP EQU seg1 ; RESIDENT COMMAND PACKAGE
|
||
ELSE
|
||
RCP EQU 0
|
||
ENDIF
|
||
|
||
seg2 equ seg1+[rcps*128]
|
||
|
||
;
|
||
; IOP definition. Set IOPS to 0 to eliminate IOP
|
||
;
|
||
IOPS EQU 12 ; 12 128-byte Blocks (1.5K bytes)
|
||
|
||
IF IOPS NE 0
|
||
IOP EQU seg2 ; REDIRECTABLE I/O PACKAGE
|
||
ELSE
|
||
IOP EQU 0
|
||
ENDIF
|
||
|
||
seg3 equ seg2+[iops*128]
|
||
|
||
;
|
||
; FCP definition. Set FCPS to 0 to eliminate FCP
|
||
;
|
||
|
||
FCPS EQU 4 ; 4 128-byte Blocks (0.5K bytes)
|
||
|
||
IF FCPS NE 0
|
||
fcp equ seg3
|
||
ELSE
|
||
fcp equ 0
|
||
ENDIF
|
||
|
||
seg4 equ seg3+[fcps*128]
|
||
|
||
;
|
||
; Shell Stack definition. Set SHSTKS to 0 to eliminate Shell Stack
|
||
;
|
||
|
||
SHSTKS EQU 4 ; NUMBER OF SHSIZE-BYTE SHELL STACK ENTRIES
|
||
SHSIZE EQU 32 ; SIZE OF A SHELL STACK ENTRY
|
||
; (STACK SIZE = SHSTKS * SHSIZE)
|
||
IF SHSTKS NE 0
|
||
SHSTK EQU seg4
|
||
ELSE
|
||
SHSTK EQU 0
|
||
ENDIF
|
||
|
||
seg5 equ seg4+[shstks*shsize]
|
||
|
||
;
|
||
; The ZCPR3 Message Buffers are mandatory for ZCPR 3.3.
|
||
;
|
||
Z3MSG EQU seg5 ; ZCPR3 MESSAGE BUFFER
|
||
|
||
seg6 equ seg5+80
|
||
|
||
;
|
||
; The ZCPR3 External FCB is mandatory for ZCPR 3.3.
|
||
;
|
||
|
||
EXTFCB EQU seg6 ; ZCPR3 EXTERNAL FCB
|
||
|
||
seg7 equ seg6+36
|
||
|
||
;
|
||
; The Path is mandatory for ZCPR 3.3. No more than 5 path elements can be
|
||
; used with this Z3BASE.LIB file.
|
||
;
|
||
|
||
EXPATH EQU seg7 ; EXTERNAL PATH
|
||
EXPATHS EQU 5 ; 5 2-byte Path Elements
|
||
; (PATH SIZE = EXPATHS*2 + 1)
|
||
|
||
seg8 equ seg7+[expaths*2]+1
|
||
|
||
;
|
||
; The ZCPR3 Wheel Byte is mandatory for ZCPR 3.3.
|
||
;
|
||
|
||
Z3WHL EQU seg8 ; WHEEL BYTE ADDRESS
|
||
|
||
seg9 equ seg8+1
|
||
|
||
;
|
||
; ZCPR3 Named Directory Buffer definition. Set Z3NDIRS to 0 to eliminate
|
||
; the named directory buffer. If Z3NDIRS is changed, also change the seg10
|
||
; equate below.
|
||
;
|
||
Z3NDIRS EQU 28 ; 28 18-byte Named Directory Elements permitted
|
||
; (NDIR SIZE = Z3NDIRS*18 + 1 for trailing 0)
|
||
IF Z3NDIRS NE 0
|
||
Z3NDIR EQU seg9 ; ZCPR3 NAMED DIRECTORY AREA
|
||
ELSE
|
||
Z3NDIR EQU 0
|
||
ENDIF
|
||
|
||
seg10 equ seg9+512 ; add 512 for 28-entry NDR
|
||
; add 256 for 14-entry NDR ("standard")
|
||
; add 0 if Z3NDIRS is set to 0
|
||
|
||
;
|
||
; The ZCPR3 External Environment Descriptor is mandatory for ZCPR 3.3.
|
||
; Echelon recommends you work this out so that your ENV begins at address
|
||
; FE00h, but this is only a recommendation and not mandatory.
|
||
;
|
||
|
||
Z3ENV EQU seg10 ; ENVIRONMENT DESCRIPTORS
|
||
Z3ENVS EQU 2 ; SIZE OF ENVIRONMENT DESCRIPTOR IN 128-BYTE BLOCKS
|
||
|
||
seg11 equ seg10+[z3envs*128]
|
||
|
||
;
|
||
; The ZCPR3 External Command Line Buffer is mandatory for ZCPR 3.3.
|
||
;
|
||
|
||
Z3CL EQU seg11 ; ZCPR3 COMMAND LINE BUFFER
|
||
Z3CLS EQU 208 ; SIZE OF COMMAND LINE BUFFER
|
||
|
||
seg12 equ seg11+z3cls
|
||
|
||
;
|
||
; The ZCPR3 External Stack is mandatory for ZCPR 3.3.
|
||
;
|
||
|
||
EXTSTK EQU seg12 ; ZCPR3 EXTERNAL STACK
|
||
|
||
; end of Z3BASE.LIB
|
||
|