home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
ZSYS
/
SIMTEL20
/
ZCPR3
/
Z3HDR2.LQB
/
Z3HDR2.LIB
Wrap
Text File
|
2000-06-30
|
19KB
|
609 lines
; 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
;