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.
226 lines
6.5 KiB
226 lines
6.5 KiB
; 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
|
|
|