home *** CD-ROM | disk | FTP | other *** search
- Summary of the New Features of ZCPR
- The ZCPR Command Hierarchy Search
- ZCPR-Resident Command DIR
- ZCPR-Resident Command ERA
- ZCPR-Resident Command LIST
- ZCPR-Resident Command TYPE
- ZCPR-Resident Command SAVE
- ZCPR-Resident Command REN
- ZCPR-Resident Command USER
- ZCPR-Resident Command DFU
- ZCPR-Resident Command JUMP
- ZCPR-Resident Command GO
- ZCPR-Resident Command GET
- ZCPR Error Messages
- :Summary of the New Features of ZCPR
- ZCPR (Z80 Command Processor Replacement) is a replacement of
- the CP/M CCP which is designed to run as part of CP/M on Z80-
- based microcomputers. In most cases it is upward-compatible to
- the original CP/M Version 2.2 CCP.
-
- ZCPR, however, provides many extensions over the CP/M CCP.
- Included in these extensions are:
-
- . The TYPE function can be made to page or not page its
- output at the user's discretion
-
- . A LIST function is available which sends its output
- to the CP/M LST: Device and does NOT page
-
- . The DIR command has been extended to allow the dis-
- play of the system files or all files
-
- . The ERA command now prints out the names of the files
- it is erasing
-
-
- . The current user number may be included as part of
- the command prompt; if the user is under a number other than 0,
- the prompt is of the form 'du>' (like 'A2>' or 'B10>'), and, if
- the user is under 0, the prompt may be 'd>' or 'd0>' as per his
- choice
-
- . The SUBMIT facility has been changed in two basic
- ways:
- - the prompt changes to 'du$' or 'd$' when the
- SUBMIT command is printed
- - the $$$.SUB is executed from drive A: only (note
- that the original SUBMIT problem now exists, but the new SUB.COM
- facility corrects it); Indirect Command Files now perform
- according to the basic philosophy that any command sequence that
- can be input from the console may be used in an Indirect Command
- File as well; the ZCPR.DOC file also gives details as to how to
- patch SUBMIT.COM if SUB.COM is not available
-
-
- . A command-search hierarchy is now implemented which
- is executed as follows:
- - the user's command is checked against the CPR-
- resident commands and executed immediately if a match is found
- - failing that, the current user number on the
- current disk is scanned for the COM file; the COM file is loaded
- and executed if found
- - failing that, a default user number (initially 0
- but can be reset with the DFU CPR-resident command) on the cur-
- rent disk is scanned for the COM file; the COM file is loaded and
- executed if found
- - finally, failing that, the default user number
- on disk A: is scanned for the COM file; the COM file is loaded
- and executed if found or an error message (COMMAND?, when COMMAND
- was the user's command name) is printed
-
-
- . The numeric argument for the SAVE CPR-resident com-
- mand (viz the number of 256-byte pages to save) can be input in
- HEX rather than decimal
-
- . A GET command which loads a file at a specified
- memory address and a JUMP command which "calls" the subroutine at
- a specified memory address have been added; a GO command which
- "calls" the subroutine starting at 100H is also added (this is
- redundant with JUMP 100H)
-
-
- :The ZCPR Command Hierarchy Search
- The first, and most basic thing, to learn about ZCPR is the
- order in which it searches for a COM file for execution or a file
- specified by the GET command. Under the CP/M 2.2 CCP, if the
- specified COM file command was not found on the current drive in
- the current user area, the CCP aborted with an error message.
- ZCPR, however, continues searching from this point a maximum of
- two more levels. This command hierarchy search was outlined
- above and is described here in further detail.
-
- 1. If the command is of the form 'COMMAND' and NOT
- 'd:COMMAND', the CPR-resident command list is searched for a
- match. If the match is found, the CPR-resident command is
- immediately processed. If the match is not found or the command
- is of the form 'd:COMMAND', the next step is taken. Note that
- the 'd:COMMAND' form is good for executing a COM file which has
- the same name as a CPR-resident command (such as SAVE or DIR).
-
-
- 2. If the command is of the form 'd:COMMAND', disk
- drive 'd:' is temporarily logged in for the purpose of the
- command search. Otherwise, the currently logged-in drive is
- used.
-
- 3. Now the file named COMMAND.COM is searched for. If
- found, it is loaded into memory starting at 100H and executed.
- If not, proceed to step 4.
-
- 4. Now that the first search for COMMAND.COM has
- failed, the CPR checks to see if the user is under the current
- Default User Number. The Default User Number may be that set by
- the DEFUSR equate in the CPR or that set by the user via the DFU
- command. DEFUSR is in effect if DFU has not been issued since
- the last Warm or Cold Boot, and DFU is in effect if it was issued
- since the last Warm or Cold Boot. If the user is NOT under the
- current Default User Number, ZCPR temporarily logs him into it
- and searches the directory. If COMMAND.COM is found, it is
- loaded as described above and executed. If not, ZCPR proceeds to
- the next step.
-
- 5. The user is now in the Default User Number, and at
- this point, ZCPR checks to see if the user is on disk drive A:.
- If not, it temporarily logs into A: and searches the default user
- number of A: for COMMAND.COM. If found, it is loaded as
- described above and executed. If not, ZCPR prints the command
- name as an error message and returns to command input mode,
- aborting the SUBMIT file if COMMAND came from it.
-
- In all cases of the search above, if COMMAND.COM is found,
- after it is loaded into memory, ZCPR resets the user to his
- original disk drive and user number. Hence, the files referenced
- by the user by default are obtained from this environment.
-
-
- To illustrate this command hierarchy search, consider the
- following examples:
-
- Example 1: DEFUSR equ 0 {default user number is 0}
-
- B10> <-- User is on Drive B:, User Number 10
- B10>ASM TEST.BBZ <-- User wishes to assemble TEST.ASM in
- Drive B:, User 10
- <-- At this point, ZCPR looks on B:/10 for ASM.COM, fails,
- looks on B:/0, fails, and finally looks on A:/0; it
- finds ASM.COM here and goes back to B:/10 for the file
-
-
-
-
- Example 2: DEFUSR equ 0 and DFU issued
-
- B10> <-- User is on Drive B:, User Number 10
- B10>DFU 5 <-- User Selects User 5 as default
- B10>ASM TEST.BBZ <-- As above
- <-- At this point, ZCPR looks on B:/10 for ASM.COM, fails,
- look on B:/5, fails, and finally looks on A:/5; it
- fails here also and prints ASM? as an error message
-
- Example 3: DEFUSR equ 0
-
- B> <-- User is on Drive B:, User Number 0
- B>ASM TEST.BBZ <-- As above
- <-- At this point, ZCPR looks on B:/0 for ASM.COM, fails,
- looks on A:/0, fails, and prints error message
-
-
-
- Example 4: DEFUSR equ 0
-
- A10> <-- User is on Drive A:, User Number 10
- A10>ASM TEST.AAZ <-- As above, but file on A:
- <-- At this point, ZCPR looks on A:/10 for ASM.COM, fails,
- looks on A:/0, fails, and prints error message
-
- :ZCPR-Resident Command DIR
- Command: DIR
- Function: To Display a listing of the names of the files on disk
- Forms:
- DIR <afn> <-- Displays $DIR files
- DIR <afn> S <-- Displays $SYS files
- DIR <afn> A <-- Displays both $DIR and $SYS files
- Examples:
- DIR *.ASM <-- All $DIR .ASM files
- DIR *.COM S <-- All $SYS .COM files
- DIR *.COM A <-- All .COM files
- Notes:
- If a file is scanned for and no such name exists on disk,
- the 'No Files' message will appear. However, if a file is
- scanned for and the name exists as a $SYS file and $DIR files are
- being scanned for, no file name is displayed but the 'No Files'
- message does NOT appear. For example, if TEST.COM is a $SYS file
- and 'DIR TEST.COM' is issued, no message appears. If 'DIR
- TEXT.COM' is issued and TEXT.COM does not exist on disk, the 'No
- Files' message is displayed.
- :ZCPR-Resident Command ERA
- Command: ERA
- Function: To Erase the specified $R/W files from disk
- Forms:
- ERA <afn> <-- Erase both $DIR and $SYS files
- Examples:
- ERA *.ASM <-- Erase all .ASM files
- ERA *.* <-- Erase all files
- Notes:
- If a $R/O file is encountered, a BDOS error message will be
- displayed and the procedure is stopped. The user is unsure at
- this time as to which files have been erased and which have not
- and should check. Sorry for this problem! The ERASE command (to
- be given to SIG/M by RLC in the near future) is a solution to
- this problem.
- :ZCPR-Resident Command LIST
- Command: LIST
- Function: To Print the specified file on the CP/M LST: device
- Forms:
- LIST <ufn> <-- Print the file (no paging)
- Examples:
- LIST TEST.TXT <-- Print TEST.TXT on LST:
- Notes:
- If the file has a $SYS attribute, it will be found as well
- as those with $DIR attributes.
- :ZCPR-Resident Command TYPE
- Command: TYPE
- Function: To Print the specified file on the CP/M CON: device
- Forms:
- TYPE <ufn> <-- Print the file with the paging deflt
- TYPE <ufn> P <-- Print the file with the paging deflt
- negated
- Examples:
- TYPE TEST.TXT
- TYPE TEST.TXT P
- Notes:
- When the display pauses during paging, type any char to
- continue or ^C to abort. ^S also works.
- :ZCPR-Resident Command SAVE
- Command: SAVE
- Function: To Copy the TPA starting at 100H to disk
- Forms:
- SAVE <Number of Pages> <ufn> <-- <Number of Pages> in DEC
- SAVE <Number of Pages>H <ufn> <-- <Number of Pages> in HEX
- SAVE <Number of Sectors> <ufn> S <-- <Number of Sectors>
- in DEC
- SAVE <Number of Sectors>H <ufn> S <-- <Number of Sectors>
- in HEX
- Examples:
- SAVE FH MYFILE.TXT <-- 15 pages saved
- SAVE 15 MYFILE.TXT <-- 15 pages saved
- SAVE 10H MYFILE.TXT S <-- 16 sectors (8 pages) saved
- Notes:
- The error message 'Delete File?' is printed if <ufn> already
- exists. To go ahead and SAVE, type Y or y to erase the file and
- proceed with the SAVE.
-
- :ZCPR-Resident Command REN
- Command: REN
- Function: To Change the name of a disk file
- Forms:
- REN <ufn new>=<ufn old>
- Examples:
- REN NEWFILE.TXT=OLDFILE.TXT
- Notes:
- The error message 'Delete File?' is printed if the <ufn new>
- already exists. To go ahead and complete the REN, type Y or y to
- erase the current <ufn new> file and then <ufn old> will be
- renamed to <ufn new>.
-
- :ZCPR-Resident Command USER
- Command: USER
- Function: To Change the current user number
- Forms:
- USER <User Number> <-- <User Number> in DEC
- USER <User Number>H <-- <User Number> in HEX
- Examples:
- USER 15
- USER FH
- USER 0
- USER <-- Same as USER 0
- Notes:
- -None-
- :ZCPR-Resident Command DFU
- Command: DFU
- Function: To Temporarily Change the default user number for the
- command hierarchy search
- Forms:
- DFU <User Number> <-- <User Number> in DEC
- DFU <User Number>H <-- <User Number> in HEX
- Examples:
- DFU 15
- DFU 0
- DFU FH
- DFU <-- Same as DFU 0
- Notes:
- -None-
- :ZCPR-Resident Command JUMP
- Command: JUMP
- Function: To "call" the subroutine at the specified page address
- Forms:
- JUMP <Address> <Cmd Parms> <-- <Address> in HEX
- Examples:
- JUMP E000 or JUMP E000H <-- Jump to E000H
- JUMP 100 <-- Jump to 100H
- JUMP 0 <-- Jump to 000H
- JUMP <-- Same as JUMP 0
- Notes:
- JUMP performs a subroutine "call", so the called routine may
- return to the ZCPR by either a RET or a Warm Boot.
- :ZCPR-Resident Command GO
- Command: GO
- Function: To "call" the subroutine at address 100H
- Forms:
- GO <Cmd Parms> <-- Routine at 100H
- Examples:
- GO *.ASM <-- Execute TPA-resident prog
- with *.ASM passed
- Notes:
- This is identical in function to JUMP 100H.
- :ZCPR-Resident Command GET
- Command: GET
- Function: To load a file from disk into memory starting at the
- specified page
- Forms:
- GET <Address> <ufn> <-- <Address> in HEX
- Examples:
- GET 8000 TEST.80 <-- Load TEST.80 starting at 8000H
- GET 100 TEST.80 or GET 100H TEST.80 <-- Load TEST.80 start-
- ing at 100H
- GET 0 TEST.80 <-- Load TEST.80 starting at 000H
- Notes:
- GET searches for the specified file according to the same
- command hierarchy search employed by the ZCPR command scanner.
- Hence, if the user is on B:/10 and the file is on A:/0 with the
- current default user number at 0, GET will search from B:/10 to
- B:/0 to A:/0 in looking for the file.
- :ZCPR Error Messages
- The following are the error messages issued by ZCPR and
- their meanings.
-
- Message Meaning
-
- ? Printed after a command or an argument means that such
- was invalid
-
- No File From DIR, this means that DIR did not locate any files
- Also from ERA with the same meaning
-
- All? Issued in response ERA *.*, asks the user is he really
- wants to erase all the files. Unlike under the
- original CP/M 2.2 CCP, single character input is
- required (Y or y for yes and anything else for no)
- with NO <CR> to end the line
-
-
- Message Meaning
-
- Full From SAVE, means that there is not enough space on
- disk
- From GET or command load by CPR, means that there
- is not enough space in memory
-
- Delete File?
- From REN or SAVE, means that the file specified already
- exists on disk and the user may type Y or y to erase
- it and continue with the procedure or any other
- character to abort
-
-