; 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