Files
RomWBW/Source/Images/hd0/s0/u15/Z3HDR2.LIB
2016-09-30 18:07:16 -07:00

609 lines
19 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
; Z3HDR - Minimum Configuration
; Offset: 4100H
*************************************************************************
* *
* Z C P R 3 -- Z80-Based Command Processor Replacement, Version 3.0 *
* *
* Copyright (c) 1984 by Richard Conn *
* Copyright Pending, US Government *
* All Rights Reserved *
* *
* ZCPR3 was written by Richard Conn, who assumes no responsibility *
* or liability for its use. ZCPR3 is released to the CP/M user *
* community for non-commercial use only. *
* *
* All registered users of CP/M are encouraged to freely copy and use *
* ZCPR3 and its associated utilities on their registered systems for *
* non-commercial purposes. *
* *
* Any commercial use of ZCPR3 is prohibited unless approved by the *
* author, Richard Conn, or his authorized agent, Echelon, Inc, in *
* writing. *
* *
* This is the RELEASE VERSION of ZCPR3. *
* *
*************************************************************************
;
; Module: Z3HDR
; Author: Richard Conn
; Module Used By: ZCPR3 Version 3.x
; Note: Z3HDR contains the key customization equates for ZCPR3. These
; equates allow the user to select various ZCPR3 options and do an
; extensive amount of tailoring of ZCPR3 to the user's desires.
;
;
; 1. BASIC SYSTEM DEFINITIONS
;
; The following equates may be used to customize this CPR for the user's
; system and integration technique. The following equate are provided:
;
; REL - TRUE if integration is to be done via MOVCPM
; - FALSE if integration is to be done via DDT and SYSGEN
;
; CPRLOC - Base Page Address of CPR; this value can be obtained by running
; the CCPLOC program on your system, and if REL is FALSE, this
; value is supplied through the Z3BASE.LIB CCP equate
;
REL EQU FALSE
;
IF REL
CPRLOC EQU 0
ELSE
CPRLOC EQU CCP ;VALUE PROVIDED IN Z3BASE.LIB
ENDIF
;
; 2. DEFAULT FILE TYPES
;
; The following macros define the file types of the command object files
; (COM files under CP/M 2.2) to be loaded when a non-resident ZCPR3 command
; is given and of the indirect command files (SUB files under CP/M 2.2) to
; be used to extract commands from when the indirect command facility is
; invoked.
;
COMTYP MACRO
DB 'COM'
ENDM
SUBTYP MACRO
DB 'SUB'
ENDM
;
; 3. SUBMIT FILE PROCESSING
;
; The following flag enables the ability of ZCPR3 to process
; SUBMIT files (command files of the form $$$.SUB). If SUBON is TRUE, then
; ZCPR3 will process such files like CP/M's CCP normally does; if SUBON is
; FALSE, ZCPR3 will not process such files (ignore them). In such a case,
; only indirect command file facilities like ZEX will work. Much code is
; saved inside of the ZCPR3 Command Processor if SUBON is set to FALSE,
; but this rather useful facility is lost.
;
SUBON EQU TRUE
;
; 4. COMMAND PREFIX
;
; The following flag allows ZCPR3 to accept commands of the form
; "du:command params" or "dir:command params". If DRVPREFIX is TRUE,
; this form is accepted; if FALSE, this form is not accepted.
;
DRVPREFIX equ TRUE
;
; 5. COMMAND ATTRIBUTES
;
; The following equate allows the user to select the attributes of the
; COM files which are selected for execution. The ZCPR3 Command Processor
; can be made to execute only COM files with the System attribute set, with
; the Directory (non-System) attribute set, or with either attribute set.
; The following values are defined for this equate:
;
; COMATT Files Selected
; 0 System
; 80H Directory
; 1 Both System and Directory
;
COMATT equ 01H
;
; 6. ZCPR3 RESIDENT COMMAND ACTIVATION AND WHEEL FACILITY
;
; The following equates enable various ZCPR3-resident commands.
; The user may invoke these as desired, but should keep in mind the size
; of the resulting ZCPR3 and make sure it does not exceed the required
; limits.
;
DIRON equ FALSE ;DIR COMMAND
LTON equ TRUE ;LIST, TYPE COMMANDS
GOON equ TRUE ;GO COMMAND
ERAON equ TRUE ;ERA COMMAND
SAVEON equ FALSE ;SAVE COMMAND
RENON equ FALSE ;REN COMMAND
GETON equ FALSE ;GET COMMAND
JUMPON equ FALSE ;JUMP COMMAND
NOTEON equ TRUE ;NOTE COMMAND
;
; The Wheel equate table enables the WHEEL facility of ZCPR3. With this
; facility, a WHEEL BYTE, which exists somewhere in memory, is examined
; before a set of installer-selected commands are executed.
; If this byte is not zero, then the command proceeds. If it is zero,
; then the command is not allowed to proceed and is exited with an error
; message.
;
; The following set of equates make each of the indicated commands
; selectable to respond to the Wheel Byte or not. For instance, if
; WERA=TRUE, then it responds to the Wheel Byte; if WERA=FALSE, it does not.
;
IF Z3WHL NE 0 ;IF A WHEEL BYTE ADDRESS IS DEFINED
WERA equ FALSE ;Make ERA a Wheel-Oriented Command
WREN equ FALSE ; " REN " " " "
WLT equ FALSE ; " L/T " " " " (LIST/TYPE)
WGO equ FALSE ; " GO " " " "
WSAVE equ FALSE ; " SAVE " " " "
WGET equ FALSE ; " GET " " " "
WJUMP equ FALSE ; " JUMP " " " "
WDU equ FALSE ; " DU: " " " " (DU/DIR Change)
WHEEL equ WERA OR WREN OR WLT OR WGO OR WSAVE OR WGET OR WJUMP OR WDU
ENDIF ;Z3WHL
;
; 7. ZCPR3 RESIDENT COMMAND TABLE
;
; This table consists of the names of the various ZCPR3-resident
; commands and their addresses. The NCHARS equate defines how many
; characters long each name may be, and all table entries must be exactly
; the indicated number of characters (trailing spaces are used to fill
; out shorter names).
;
; Each table entry is structured as follows:
;
; DB 'CMND' ;Name of Command (NCHARS long)
; DB CMNDADR ;Address of Command within ZCPR3
;
; The installer should only change the names of the commands as
; desired and should not, as a rule, touch the address definition since
; this is fixed within the body of ZCPR3.
;
NCHARS EQU 4 ;NUMBER OF CHARS/COMMAND
CTABLE MACRO
;
IF DIRON
DB 'DIR '
DW DIR ;DIRECTORY DISPLAY COMMAND
ENDIF
;
IF LTON
DB 'LIST'
DW LIST ;LIST FILE ON PRINTER COMMAND
DB 'TYPE'
DW TYPE ;TYPE FILE ON CONSOLE COMMAND
ENDIF
;
IF GOON
DB 'GO '
DW GO ;EXECUTE CURRENT TPA COMMAND
ENDIF
;
IF ERAON
DB 'ERA '
DW ERA ;ERASE FILES COMMAND
ENDIF
;
IF SAVEON
DB 'SAVE'
DW SAVE ;SAVE TPA COMMAND
ENDIF
;
IF RENON
DB 'REN '
DW REN ;RENAME FILES COMMAND
ENDIF
;
IF GETON
DB 'GET '
DW GET ;LOAD FILE INTO TPA COMMAND
ENDIF
;
IF JUMPON
DB 'JUMP'
DW JUMP ;JUMP TO ANY MEMORY LOCATION COMMAND
ENDIF
;
IF NOTEON
DB 'NOTE'
DW NOTE ;NOTE - NULL COMMAND (NOP)
ENDIF
;
ENDM
;
; 8. CONTROLS ON ZCPR3 RESIDENT COMMANDS
;
; The following sets of equates provide special controls and
; parameters on various ZCPR3-resident commands.
;
;
; The following equates set the width of the spacing between the
; file names for the DIR command and the character used to separate file
; names from one another on the same line.
;
; Assuming that FENCE is set to the character '|', If WIDE is TRUE,
; then the output will look like:
;
; filename.typ__|__filename.typ ...
;
; while if WIDE is FALSE, the output will look like:
;
; filename.typ_|_filename.typ ...
;
; (underscore represents a space)
;
WIDE EQU TRUE
FENCE EQU '|'
;
; The following equates define two flags which are used in
; conjunction with the DIR command on the command line. SYSFLG is
; the character used to indicate to DIR that all files, both System
; and Non-System, are to be displayed. SOFLG is the character used
; to indicate to DIR that only the System files are to be displayed.
; By default, DIR displays non-System files.
;
; For example, if SYSFLG is set to 'A' and SOFLG is set to
; 'S', then:
; DIR *.COM A
;
; displays all COM files with both System and non-System attributes
; while:
; DIR *.COM S
;
; displays only COM files with the System attribute. Naturally:
;
; DIR *.COM
;
; displays only COM files with the non-System attribute.
;
SYSFLG EQU 'A'
SOFLG EQU 'S'
;
; The following equate causes ERA to confirm the files to be erased
; before it goes ahead and erases them. If ERAOK is TRUE, then the user
; will be prompted each time; if it is FALSE, then the user will not be
; prompted.
;
ERAOK equ FALSE
;
; If ERAOK is TRUE, the following equate adds a Verify option to the
; ERA command which causes the user to be prompted only if the Verify
; option letter, defined by ERDFLG, is given after the file name. If
; ERAV is TRUE, then the user will be asked to verify only when ERDFLG
; is contained in the command line; if ERAV is FALSE, the user will always
; be asked to verify.
;
; For example, if ERAOK is TRUE, ERAV is TRUE, and ERDFLG is 'V',
; then the command:
; ERA *.* V
; will result in the file names being displayed and the user being asked
; for verification. If the V option were not given, the user would not
; be asked for verification.
;
ERAV equ FALSE
ERDFLG equ 'V'
;
; The following equates set the paging parameters for the TYPE
; command.
;
; PGDFLT determines if TYPE pages by default. If PGDFLT is TRUE,
; then:
; TYPE FILE.TXT
;
; will be paged. If PGDFLT is FALSE, the above command will not be paged.
;
; PGDFLG defines the option character in the TYPE command line which
; is used to toggle the default set by PGDFLT. Assuming that PGDFLG is set
; to 'P', then:
; TYPE FILE.TXT P
;
; will page the file listing if PGDFLT is FALSE and not page it if PGDFLT is
; TRUE.
;
PGDFLT EQU TRUE
PGDFLG EQU 'P'
;
; The following equate defines the number of lines on the user's CRT
; screen for use by the TYPE command when it is paging. This value is usually
; 24.
;
NLINES EQU 24
;
; The following equate defines the option letter used with the
; SAVE command to indicate that the associated number is 128-byte sectors
; as opposed to 256-byte pages. For example, if SECTFLG is set to 'S', then:
;
; SAVE 25 FILE.BIN S
;
; save 25 128-byte sectors starting at location 100H into the file named
; FILE.BIN. IF the S option was not present, SAVE would have saved 25
; 256-byte blocks starting at location 100H into the file named FILE.BIN.
;
SECTFLG EQU 'S'
;
; 9. PATH DEFINITION
;
; The following equate specifies the address of the PATH to be followed
; for the PATH command-search if the PATH is to be initialized by the BIOS
; and set by the user via a PATH.COM program. The value of PATH should
; be the address of the PATH data area in memory. If the internal PATH
; provided by ZCPR3 is to be used, then PATHBASE should be equated to 0,
; which selects the PATH located just after the MEMLOAD routine. If the
; external PATH is to be used, then PATHBASE should be set to the address
; of the external path.
;
; A PATH is a series of byte-pairs, terminated by a binary 0. The first
; byte of each pair is the disk number (1-16 for disks A-P), and the second
; byte of each pair is the user number (0-31). The special character '$'
; indicates the current user or current disk. For example, the path
; from current disk/current user to current disk/user 0 to disk A/user 0
; is selected by the following sequence:
;
; DB '$$' ;current disk/user
; DB '$',0 ;current disk/user 0
; DB 1,0 ;disk A/user 0
; DB 0 ;end of path
;
IF EXPATH NE 0 ;External Path Selected
;
; This equate defines the base address of the external path
;
PATH equ EXPATH ;External ZCPR3 PATH at CBIOS Buffer Area
ELSE ;Internal Path Selected
;
; The following macro defines the n-element internal path
;
IPATH MACRO
db 'A'-'@','$' ;Disk A, Current User
db 'A'-'@',0 ;Disk A, User 0
db 0 ;End of Path -- MUST be here
ENDM
;
ENDIF
;
; The following flag enables ZCPR3 to perform an optimized path
; search when it is searching along a path for a file. If this equate
; is TRUE, ZCPR3 will build a path in memory of absolute entries (A1, B7, etc)
; from the symbolic path (one containing '$') which is the path it would
; otherwise use. This new path would contain no duplicate path elements,
; where a symbolic path analysis may. For example, if the path is:
;
; db 'A'-'@','$' ;disk A, current user
; db 'A'-'@',15 ;disk A, user 15
; db 0
;
; then if the user is logged into A15, setting the below equate to TRUE
; would allow ZCPR3 to build the path:
;
; db 'A'-'@',15 ;only one entry
; db 0
;
; in the analysis of this symbolic path, while with this equate FALSE,
; ZCPR3 may log into A15 as many as three times (once for the default
; and twice more for the symbolic path) in looking for a file which is
; not found before it gives up. Using this minimum path facility costs
; some code in ZCPR3, but it speeds up processing noticably in some cases.
;
; Enable this equate if MINIMUM PATH SEARCH is to be employed.
;
MINPATH EQU TRUE
;
; In searching for a file along a path, ZCPR3 can be commanded
; to always look in the current logged-in directory before beginning
; the path search. This equate controls this feature. If SCANCUR
; is set to TRUE, the current directory need never be referenced in
; a symbolic path expression (DB '$','$') since SCANCUR insures that
; the current directory is scanned.
;
; Enable this equate if the current DU is always to be scanned.
;
SCANCUR EQU TRUE
;
; 10. DU AND DIR CONTROLS
;
;
; The following equate enables the appearance of the current disk/user
; in the ZCPR3 prompt. If set to FALSE, the prompt appears as '>' (assuming
; > is the current value of CPRMPT). If set to TRUE, the prompt appears
; as 'd>' or 'dn>'. (see INCLNDR below)
;
INCLDU equ TRUE
;
; The following equate allows ZCPR3 to accept the DU: prefix or
; login form for input. Set this to TRUE if DU: prefix is to be allowed.
;
; Setting this equate to TRUE allows the following forms:
;
; A>B1:
; A>TYPE B4:FILE.TXT
; A>B:
; A>1:
;
ACCPTDU EQU TRUE
;
; This equate enables ZCPR3 to process DIR: forms internally
; through the memory-based named directory buffer. This equate and
; the NDBASE address should be TRUE (non-zero) in order to enable
; ZCPR3 to process named directories.
;
; If NDINCP is TRUE, the following forms are allowed:
;
; A>ROOT:
; A>TYPE TEXT:FILE.TXT
;
; if the other associated equates (below) are set correctly.
;
NDINCP EQU TRUE
;
; The following equate will cause the name of the current directory
; to be displayed as part of the prompt along with the DU form if enabled.
; (see INCLDU above)
;
; For example, if INCLNDR is TRUE, the prompt would look like:
;
; B7:TEXT> -- if INCLDU is also TRUE
; TEXT> -- if INCLDU is FALSE
;
INCLNDR EQU TRUE
;
; The following equate allows ZCPR3 to accept the DIR: prefix or
; login form for input. Set this to TRUE if DIR: prefix is to be allowed.
;
; Setting this equate to TRUE allows the following forms:
;
; A>ROOT:
; A>TYPE TEXT:FILE.TXT
;
ACCPTND EQU TRUE
;
; The following equate determines the hierarchy of DU:/DIR: evaluation.
; Set this to TRUE if DU: is to be tested for before DIR: or set this to
; FALSE if DIR: is to be tested for before DU:. If this is FALSE, named
; directories like C: (standing for C work area - NOT disk C) are permitted.
;
; Assuming that a directory for C programs, named 'C', and a root
; directory, named 'ROOT', exist, then if DUFIRST is set to FALSE:
;
; A>C: -- logs the user into the directory named 'C'
; A>ROOT: -- logs the user into the directory named 'ROOT'
;
; while if DUFIRST is set to TRUE:
;
; A>C: -- logs the user into disk C: (dir C can't be accessed)
; A>ROOT: -- logs the user into the directory named 'ROOT'
;
DUFIRST EQU FALSE
;
; Enable password check on named directory references. If a named
; directory is referenced and has a password associated with it, ZCPR3
; will ask the user for this password and approve the reference only
; if he gives a valid response. One and only one try is permitted.
; Setting this equate to TRUE will enable the password check facility.
;
PWCHECK EQU FALSE
;
; 11. COMMAND LINE BUFFER CONTROL
;
; The MULTCMD equate enables the feature of having more than
; one command on the same line, separated by a separation char
; which is defined by the CMDSEP equate. If this feature is
; enabled, the command line buffer and buffer pointers are
; moved outside of ZCPR3 at the indicated address of Z3CL.
;
; MULTCMD indicates if the ability to have more than one command
; on a line is to be enabled, and CMDSEP is the character used to separate
; these commands. For example, if CMDSEP is ';' and MULTCMD is TRUE, then
; commands like this are possible:
;
; ERA *.BAK;DIR
;
IF Z3CL NE 0
MULTCMD equ TRUE
ELSE
MULTCMD equ FALSE
ENDIF
CMDSEP equ ';'
;
; 12. CMDRUN -- ZCPR3 EXTENDED COMMAND PROCESSING FACILITY
;
; This equate enables the ZCPR3 CMDRUN facility. If CMDRUN is TRUE, then
; another stage of command processing is invoked should ZCPR3 fail to find
; a COM file when the user gives a command. This stage involves invoking
; the COM file specified by CMDFCB and giving it the current command line
; as an argument. In this way, if, say, M80 PROG2 fails as a command,
; a new command like LRUNZ M80 PROG2, SUB M80 PROG2, or ZEX M80 PROG2 may
; be processed. If the new command fails, an appropriate error message is
; given.
;
; The ROOTONLY option causes ZCPR3 to only look at the Root (bottom of
; path) for the Extended Command Processor if it is set to TRUE. If it
; is set to FALSE, the path is searched for the Extended Command Processor.
; The tradeoff here is that ROOTONLY = TRUE is less flexible but somewhat
; faster than ROOTONLY = FALSE.
;
CMDRUN equ FALSE ; Enable the Facility
if CMDRUN
ROOTONLY equ TRUE ; TRUE if look at Root Only for Extended
; Command Processor, FALSE if look along
; path
CMDFCB MACRO
db 0
db 'CMDRUN ' ;Name of Program
db 'COM' ;File Type
ENDM
endif ;CMDRUN
;
; 13. FLOW COMMAND FACILITY
;
; This equate enables ZCPR3 to respond to IF processing.
; ZCPR3 simply flushes commands if a FALSE IF is currently engaged.
; FCPs must be enabled for IFON to work correctly.
;
IFON EQU FALSE
;
; 14. MISCELLANEOUS EQUATES
;
MAXUSR EQU 31 ;MAXIMUM USER NUMBER ACCESSABLE
MAXDISK EQU 4 ;MAXIMUM NUMBER OF DISKS ACCESSABLE
SUPRES EQU TRUE ;SUPRESSES USER # REPORT FOR USER 0
SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND
CPRMPT EQU '>' ;CPR PROMPT INDICATING USER COMMAND
NUMBASE EQU 'H' ;CHAR USED TO SWITCH FROM DEFAULT NUMBER BASE
CURIND EQU '$' ;SYMBOL FOR CURRENT DISK OR USER
COMMENT EQU ';' ;LINES BEGINNING WITH THIS CHAR ARE COMMENTS
;
; END OF ZCPR3 CUSTOMIZATION SECTION
;