rd CP/M has a base of 0, but some CP/M systems (such as for the TRS-80 Model I and Heath/Zenith H89/Z89) start physical RAM memory at a higher address; equate BASE to the starting RAM memory address of your system CCPLOC This is the starting address of CCPZ; set the second CCPLOC equate to the address you obtain from BDOSLOC RAS This is an equate which masks out selected CCPZ command functions for security purposes on Remote Access Systems such as Bulletin Boards; the masked out functions currently include SAVE, ERA, REN, JUMP, GO, and GET; set RAS to TRUE to mask these out or FALSE to leave them in SUBA This is an equate which determines the drive onto which CCPZ will look for an executing Indirect Command File. If the basic philosophy of the Indirect Command File described above is to be maintained, this symbol should be set to TRUE (look on drive A: for the $$$.SUB file); if not, this symbol should be set to FALSE (look on the default drive from the $$$.SUB file). To review, the basic philosophy of the Indirect Command File is that any sequence of commands which may be issued from the console (within reason, which means NOT to erase a $$$.SUB file) may also be issued from within an Indirect Command File, and the resultant execution should be identical (same functions performed). CLEVEL3 This equate enables or disables extended Command Leveì ³ Processing® Iæ seô tï TRUE¬ extended Command Level 3 Processing is enabled and the user command line is automatically capitalized, the terminatinç ze:/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, CCPZ 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, CCPZ 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, CCPZ looks on A:/10 for ASM.COM, fails, looks on A:/0, fails, and prints error message Another Example: Foò  example¬  iæ thå useò ió loggeä intï Drivå  Bº  iî Useò Areá 10¬ thå Defaulô Useò Numbeò ió 0¬ anä thå followinç COÍ fileó arå presenô aó indicateä -- WM.COM on Drive A: in User 0 MBASIC.COM on Drive A: in User 0 and on Drive B: in User 0 TEST.COM on Drive B: in User 10 and Drive B: in User 0 theî  thå  followinç  happenó wheî  thå  followinç  commandó  arå issued from the console (or Indirect Command File): B10>WM TEST2.TXT \ \ \__ File to be edited \ \__ Invoke the WM.COM file (Word Master editor) \__ User is on Drive B: in User Area 10 Results: CCPÚ searcheó Bº  Useò 10¬ Bº Useò 0¬ anä Aº Useò ° foò WM.COM»  iô findó WM.COÍ iî Aº  Useò 0¬  loadó it¬  logó thå useò back into B: User 10, and executes it. B10>MBASIC \ \__ Invoke the MBASIC.COM file (MBASIC Interpreter) \__ User is on Drive B: in User Area 10 Results: CCPÚ searcheó Bº  Useò 1° anä Bº Useò ° foò MBASIC.COM» iô findó MBASIC.COÍ iî Bº Useò 0¬ sï iô doesn'ô botheò tï looë oî Aº  Useò 0®  MBASIC.COÍ ió theî loadeä anä executeä aó describeä in the previous example. B10>TEST \ \__ Invoke the TEST.COM file (TEST program) \__ User is on Drive B: in User Area 10 Results: CCPÚ  searcheó  Bº  Useò  1°  foò  TEST.COM»  iô  findó TEST.COÍ iî Bº  Useò 0¬  sï iô doesn'ô botheò tï looë furtheò (iæ iô had¬  iô woulä havå founä TEST.COÍ iî Bº Useò 0)® TEST.COÍ ió then loaded and executed as described above. B10>TEST2 \ \__ Invoke the TEST2.COM file (TEST2 program) \__ User is on Drive B: in User Area 10 Results: CCPÚ searcheó Bº  Useò 10¬ Bº Useò 0¬ anä Aº Useò ° foò TEST2.COM»  iô  doesn'ô finä it¬  sï iô issueó thå erroò  messagå 'TEST2?', which says it couldn't find TEST2.COM. Š The CCPZ-Resident Commands Thå  followinç  pageó describå thå  CCPZ-Residenô  Commands® Theså  arå commandó locateä withiî CCPÚ itselæ whicè arå executeä froí withiî CCPZ® Thå phraseó <-- Displays $DIR files DIR S <-- Displays $SYS files DIR A <-- Displays both $DIR and $SYS files Customization Variables: WIDE SYSFLG SOFLG FENCE Examples: DIR *.ASM <-- All $DIR .ASM files DIR *.COM S <-- All $SYS .COM files DIR *.COM A <-- All .COM files Notes: Iæ  á  filå ió scanneä foò anä nï sucè namå existó oî  disk¬ thå  'Nï  Files§ messagå wilì appear®  However¬  iæ  á  filå  ió scanneä foò anä thå namå existó aó á $SYÓ filå anä $DIÒ fileó arå beinç  scanneä for¬  nï filå namå ió displayeä buô thå 'Nï Files§ messagå doeó NOÔ appear® Foò example¬ iæ TEST.COÍ ió á $SYÓ filå anä  'DIÒ  TEST.COM§ ió issued¬  nï  messagå  appears®  Iæ  'DIÒ TEXT.COM§ ió issueä anä TEXT.COÍ doeó noô exisô oî disk¬  thå 'Nï Files' message is displayed. Command: ERA Function: To Erase the specified $R/W files from disk Forms: ERA <-- Erase both $DIR and $SYS files Customization Variables: WIDE FENCE Examples: ERA *.ASM <-- Erase all .ASM files ERA *.* <-- Erase all files Notes: Iæ á $R/Ï filå ió encountered¬  á BDOÓ erroò messagå wilì bå displayeä  anä thå procedurå ió stopped®  Thå useò ió unsurå  aô thió  timå aó tï whicè fileó havå beeî eraseä anä whicè havå  noô anä shoulä check® Sorrù foò thió problem¡ Thå ERASÅ commanä (tï bå  giveî  tï SIG/Í bù RLÃ iî thå neaò future© ió á  solutioî  tï this problem. Command: LIST Function: To Print the specified file on the CP/M LST: device Forms: LIST <-- Print the file (no paging) Customization Variables: -None- Examples: LIST TEST.TXT <-- Print TEST.TXT on LST: Notes: Iæ  thå filå haó á $SYÓ attribute¬  iô wilì bå founä aó welì as those with $DIR attributes. Command: TYPE Function: To Print the specified file on the CP/M CON: device Forms: TYPÅ P <-- Print the file with the paging deflt negated Customization Variables: NLINES PGDFLT PGDFLG Examples: TYPE TEST.TXT TYPE TEST.TXT P Notes: Wheî  thå  displaù pauseó durinç paging¬  typå anù  chaò  tï continue or ^C to abort. ^S also works. Command: SAVE Function: To Copy the TPA starting at 100H to disk Forms: SAVE <-- in DEC SAVE H <-- in HEX SAVE S <-- Number of sectors SAVE H S <-- Number of sectors Customization Variables: NUMBASE RAS Examples: SAVE 15 MYFILE.TXT <-- 15 pages saved SAVE FH MYFILE.TXT <-- 15 pages saved SAVE 10H MYFILE.TXT S <-- 16 sectors (8 pages) saved Notes: -None- Command: REN Function: To Change the name of a disk file Forms: REN = Customization Variables: RAS Examples: REN NEWFILE.TXT=OLDFILE.TXT Notes: -None- Command: USER Function: To Change the current user number Forms: USER <-- in DEC USER H <-- in HEX Customization Variables: -None- Examples: USER 15 USER FH USER 0 USER <-- Same as USER 0 Notes: -None- Command: DFU Function: To Temporarily Change the default user number for the command hierarchy search Forms: DFU <-- in DEC DFU H <-- in HEX Customization Variables: -None- Examples: DFU 15 DFU FH DFU 0 DFU <-- Same as DFU 0 Notes: See above for explanation. Command: JUMP Function: To "call" the subroutine at the specified page address Forms: JUMP
<--
in HEX Customization Variables: NUMBASE RAS Examples: JUMP E000 or JUMP E000H <-- Jump to E000H JUMP <-- Jump to 000H JUMP 0 <-- Jump to 000H Notes: JUMÐ performó á subroutinå "call"¬ sï thå calleä routinå maù return to the CCPZ by either a RET or a Warm Boot. Command: GO Function: To "call" the subroutine starting at 100H Forms: GO <-- Execute reentrant at 100H Customization Variables: RAS Examples: GO *.ASM <-- Assuming XDIR is loaded, gives directory of *.ASM Notes: This command is identical in function to JUMP 100H. Command: GET Function: To load a file from disk into memory s TITLE 'CCPZ Version 4.1' ; ; CP/M CONSOLE COMMAND PROCESSOR (CCP) Revision 4.1 ; FOR Z80-BASED CP/M 2.X SYSTEMS ; ; ORIGINAL CCP DISASSEMBLED BY ???? ; ORIGINAL CCP DISASSEMBLED FURTHER BY RLC ; ORIGINAL CCP COMMENTED BY RLC ; CUSTOMIZED FOR ARIES-II BY RLC ; FURTHER MODIFIED BY RGF AS V2.0 ; FURTHER MODIFIED BY RLC AS V2.1 ; FURTHER MODIFIED BY KBP AS V2.2 ; FURTHER MODIFIED BY RLC AS V2.4 (V2.3 skipped) ; FURTHER MODIFIED BY RLC AS V2.5 ; FURTHER MODIFIED BY RLC AS V2.6 ; FURTHUR MODIFIED BY SBB AS V2.7 ; FURTHER MODIFIED BY RLC AS V2.8 ; FURTHER MODIFIED BY RLC AS V2.9 ; FURTHER MODIFIED BY RLC AS V3.0 ; FURTHER MODIFIED BY RLC AS V3.1 ; FURTHER MODIFIED BY RLC AS V4.0 ; SBB V4.1 11/27/81 ; ;******** Refer to CCPZ-Vxx.NOT File for Revision History ******** ; ;******** Structure Notes ******** ; ; This CCP is divided into a number of major sections. The following ; is an outline of these sections and the names of the major routines ; located therein. ; ; Section Function/Routines ; ------- ----------------- ; ; -- Opening Comments, Equates, and Macro Definitions ; ; 0 JMP Table into CC