; Z3BASE - Minimum Configuration
; Offset:  4100H

;****************************************************************
;*                                                              *
;*  Z3BASE.LIB -- Base Addresses for ZCPR3 System               *
;*      by Richard Conn                                         *
;*                                                              *
;*      These addresses are used by the following System        *
;* Segments:                                                    *
;*                                                              *
;*      Segment         Function                                *
;*      -------         --------                                *
;*      ABOOTFD         Boot System from Floppy Disk            *
;*      ABOOTHD         Boot System from Hard Disk              *
;*      BDOSZ           Customized BDOS                         *
;*      CBIOSZ          Customized BIOS                         *
;*      ZCPR3           ZCPR3 Command Processor                 *
;*      *.ENV           All Environment Descriptors             *
;*      *.FCP           All Flow Command Packages               *
;*      *.IOP           All Input/Output Packages               *
;*      *.NDR           All Named Directory Definition Files    *
;*      *.RCP           All Resident Command Packages           *
;*                                                              *
;*                                                              *
;* Memory Map of System:                                        *
;*                                                              *
;*      Address Range     Size  Function                        *
;*      -------------   ------- --------                        *
;*          0 -   FF    256 b   Standard CP/M Buffers except    *
;*         40 -   4A     11 b    for ZCPR3 External Path        *
;*         4B             1 b   Wheel Byte                      *
;*        100 - CFFF     ~52  K TPA                             *
;*       D000 - D7FF       2  K ZCPR3 Command Processor         *
;*       D800 - E5FF       3.5K BDOSZ                           *
;*       E600 - F3FF       3.5K CBIOSZ with Buffers             *
;*       F400 - F4FF    256 b   Environment Descriptors         *
;*                              Bytes 00H-7FH:  Z3 Parameters   *
;*                              Bytes 80H-FFH:  Z3 Terminal Cap *
;*       F500 - F57F    128 b   ZCPR3 Shell Stack               *
;*       F580 - F5CF     80 b   ZCPR3 Message Buffers           *
;*                              Byte 0:  Error Flag (Z/NZ)      *
;*                              Byte 1:  IF (8 Levels)          *
;*                              Byte 2:  IF Active (8 Levels)   *
;*                              Byte 3:  Z3 Cmd Status          *
;*                                      00B - Normal            *
;*                                      01B - Shell             *
;*                                      10B - Error             *
;*                              Bytes 4&5: Error Address if 10B *
;*                              Byte 6: Program Error Code      *
;*                              Byte 7: ZEX Message Byte        *
;*                                      00B - Normal            *
;*                                      01B - Z3 Prompt         *
;*                                      10B - Suspend Intercept *
;*                              Byte 8: ZEX Running Flag (0=No) *
;*                              Bytes 9-10: Address of Next     *
;*                                      Char for ZEX to Return  *
;*                              Bytes 11-12: Address of First   *
;*                                      Char in ZEX Memory-     *
;*                                      Based File Buffer       *
;*                              Byte 13: SH Control Byte        *
;*                                      Bit 0: Enable SHCMT     *
;*                                      Bit 1: Enable SHECHO    *
;*                                      Bit 7: Enable Shell     *
;*                                              Entry Wait      *
;*                              Bytes 14-15: Shell Scratch      *
;*                              Bytes 10H-2FH: Error Cmd        *
;*                              Bytes 30H-39H: Registers        *
;*                              Bytes 3AH-3FH: Reserved         *
;*                              Bytes 40H-4FH: User-Defined     *
;*       F5D0 - F5FF     48 b   ZCPR3 External FCB              *
;*       F600 - F6FF    256 b   Memory-Based Named Directory    *
;*       F700 - F7CF    208 b   Multiple Command Line Buffer    *
;*       F7D0 - F7FF     48 b   ZCPR3 External Stack            *
;*       F800 - FBFF       1  K Disk Controller EPROM           *
;*       FC00 - FFFF       1  K Disk Controller RAM             *
;*                                                              *
;****************************************************************

;
;  True and False
;
FALSE   equ     0
TRUE    equ     NOT FALSE


;*
;*  ZCPR3 BASE EQUATES
;*

;
;  1. VERSION NUMBERS, MEMORY SIZE, and CP/M BASE ADDRESS
;
;       The following equates define the version numbers of the ZCPR3
; Command Processor and the CBIOSZ.  They also explicitly state the size
; of the TPA for inclusion in the CBIOSZ header printed at Cold Boot.
;
Z3REV   EQU     30      ; ZCPR3 REV NUMBER
CBREV   EQU     41      ; CBIOSZ REV NUMBER
MSIZE   EQU     52      ; SIZE OF TPA
;
;    BASE - Base Address of user's CP/M system (normally 0 for DR version)
;           This equate allows easy modification by non-standard CP/M (eg,H89)
;
BASE    EQU     0

;
;  2. PROCESSOR SELECTION
;
;       The following equate selects the use of the 8080/8085 micro or
; the Z80 micro for the target for ZCPR3.  Note that selecting the
; 8080/8085 should be done ONLY if you have an 8080 or 8085.  If you have
; a Z80, by all means select this one since the code is much smaller and
; you can cram more features into the system as a result.
;       If the processor is an 8080 or 8085, set this equate to TRUE.
; If the processor is a Z80, set it to FALSE.
;
I8080   EQU     FALSE

;
;  3. EXTERNAL PATH
;
;       The following equates define the address of the ZCPR3 External
; Path and the number of two-byte elements contained in this path (maximum).
; If there is no ZCPR3 External Path, both of these values should be set to 0.
;
EXPATH  EQU     40H     ; EXTERNAL PATH
EXPATHS EQU     5       ; 5 2-byte Path Elements
                       ;  (PATH SIZE = EXPATHS*2 + 1)

;
;  4. WHEEL BYTE
;
;       The following equate defines the address of the ZCPR3 Wheel Byte.
; If there is no ZCPR3 Wheel Byte, this value should be set to 0.
;
Z3WHL   EQU     4BH     ; WHEEL BYTE ADDRESS


;
;  5. CCP LOCATION
;
;       The following equate defines the address of the ZCPR3 Command
; Processor.  This address MUST be supplied.
;
CCP     EQU     0D000H  ; ZCPR3 COMMAND PROCESSOR


;
;  6. RCP LOCATION
;
;       The following equates define the address of the ZCPR3 Resident
; Command Package and its size in 128-byte blocks.  If there is no
; ZCPR3 Resident Command Package, both of these values should be 0.
;
RCP     EQU     00000H  ; RESIDENT COMMAND PACKAGE
RCPS    EQU     00      ; 00 128-byte Blocks (0K bytes)


;
;  7. IOP LOCATION
;
;       The following equates define the address of the ZCPR3 Input/Output
; Package and its size in 128-byte blocks.  If there is no ZCPR3 Input/Output
; Package, both of these values should be 0.
;
IOP     EQU     00000H  ; REDIRECTABLE I/O PACKAGE
IOPS    EQU     00      ; 00 128-byte Blocks (0K bytes)


;
;  8. FCP LOCATION
;
;       The following equates define the address of the ZCPR3 Flow Command
; Package and its size in 128-byte blocks.  If there is no ZCPR3 Flow Command
; Package, both of these values should be 0.
;
FCP     EQU     00000H  ; FLOW COMMAND PACKAGE
FCPS    EQU     0       ; 0 128-byte Blocks (0K bytes)


;
;  9. ENV LOCATION
;
;       The following equates define the address of the ZCPR3 Environment
; Descriptor and its size in 128-byte blocks.  If there is no ZCPR3 Environment
; Descriptor, both of these values should be 0.
;
Z3ENV   EQU     0F400H  ; ENVIRONMENT DESCRIPTORS
Z3ENVS  EQU     2       ; SIZE OF ENVIRONMENT DESCRIPTOR IN 128-BYTE BLOCKS


;
; 10. SHELL STACK
;
;       The following equates define the address of the ZCPR3 Shell Stack,
; the number of entries permitted in the ZCPR3 Shell Stack, and the size
; of each entry in the Shell Stack in terms of bytes.  If there is no ZCPR3
; Shell Stack, all three values should be 0.
;
SHSTK   EQU     0F500H  ; ZCPR3 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)


;
; 11. ZCPR3 MESSAGES
;
;       The following equate defines the address of the ZCPR3 Message Buffer.
; This buffer is always 80 bytes long.  If there is no ZCPR3 Message Buffer,
; this address should be 0.
;
Z3MSG   EQU     0F580H  ; ZCPR3 MESSAGE BUFFER


;
; 12. EXTERNAL FCB
;
;       The following equate defines the address of the ZCPR3 External FCB.
; This buffer is always 36 bytes long.  If there is no ZCPR3 External FCB,
; this address should be 0.
;
EXTFCB  EQU     0F5D0H  ; ZCPR3 EXTERNAL FCB


;
; 13. NAMED DIRECTORY BUFFER
;
;       The following equates define the address and size (in terms of 18-byte
; entries) of the ZCPR3 Named Directory Buffer.  If there is no such buffer,
; both of these values should be 0.
;
Z3NDIR  EQU     0F600H  ; ZCPR3 NAMED DIRECTORY AREA
Z3NDIRS EQU     14      ; 14 18-byte Named Directory Elements permitted
                       ;   (NDIR SIZE = Z3NDIRS*18 + 1 for trailing 0)


;
; 14. COMMAND LINE
;
;       The following equates define the address and size (in terms of bytes)
; of the ZCPR3 Command Line Buffer (formerly called the Multiple Command Line
; Buffer under ZCPR2).  If there is no such buffer, both of these values should
; be 0.
;
Z3CL    EQU     0F700H  ; ZCPR3 COMMAND LINE BUFFER
Z3CLS   EQU     200     ; SIZE OF COMMAND LINE BUFFER


;
; 15. EXTERNAL STACK
;
;       The following equate defines the address of the ZCPR3 External Stack.
; This stack is always 48 bytes in size.  If there is no such stack, this
; value should be 0.
;
EXTSTK  EQU     0F7D0H  ; ZCPR3 EXTERNAL STACK


;
; 16. USER EQUATES
;
;       The following equates are available for the implementer's target
; system.  These are implementation-defined.
;
DJEPROM EQU     0F800H  ; EPROM BASE ADDRESS


;*
;*  END of ZCPR3 BASE EQUATES
;*