mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
273 lines
8.0 KiB
Plaintext
273 lines
8.0 KiB
Plaintext
; 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
|
||
;*
|
||
|