,*) ' ttyinlim='ZCPR2 HEX,Z2PATMD ASM/ ZCPRHDR LIB9wþREAD ME °Z2PATMD HEX¸READ ME º ÿ write(8,*) ' returning fromÿttyinlim' return ÿ endif C C ERROÿ write(8,*) ' ttyinlim eÿror.' CALL SYS$EXIT( %VA:10DC0000C382DCC382DC434F4D0124242420202026 :07DC100020205355420000E3 :10DC4B00164449522080E04C4953544DE1545950ED :10DC5B004551E1474F20208EE24552412015E153BB :10DC6B00415645C3E152454E2046E2474554203DBF :10DC7B00E34A554D5089E23100FAC5791F1F1F1F2A :10DC8B00E60F3293DFCD14DECDDCDD32ADDCC179B6 :10DC9B00E60F328EDFC4E1DDCD19DECDD5DD110906 :10DCAB00DC3E00B7C4FBDD32ADDC2A00FA7EFE039E :10DCBB002803B7203B3100FACD64DD3A8EDFC64135 :10DCCB00CD75DD3A93DFB72812FE0A3809D60AF56F :10DCDB003E31CD75DDF1C630CD75DD2104FA220064 :10DCEB00FA3600E5CD35DEE17EFE3B28C8B728C508 :10DCFB003100FA7EFE3B2004232200FA22FEE27E54 :10DD0B00CD2ADE7723B720F7CDA0DF2023112DDD21 :10DD1B00D53E00B7C293E2CD5AE0C293E27E2366B2 :10DD2B006FE9CD8DDFCDA0DF3A2BDCFE20CAB5DC51 :10DD3B00CD64DD2100007EFE213806CD75DD231874 :10DD4B00F5CDBDDDBFCD8DDFCD03DEC3C0DCCDBAE0 :10DD5B00DD4E6F2046696CE5C93E0DCD75DD3E0A83 :10DD6B0018080E01CD0500C32ADED90E025FCD05C2 :10DD7B0000D9C9F53E00B72806F1D90E0518EEF10A :10DD8B00F5CD75DDF1FE0AC0E5214BDC35201236F1 :10DD9B00163E00FE50280AC5CD09F2C1FE03CA2D5E :10DDAB00DDE1C9112ADC0E14C5CD0500C1B7C9CD03 :10DDBB0064DDE3CDC3DDE3C97E23B7C8F5E67FCDD4 :10DDCB0075DDF1F818F20E1918091180000E1A18EA :10DDDB00020E0DC305005F0E0E18F8AF324ADC11B0 :10DDEB002ADC0E0FCD05003CC90E1018F7112ADCEA :10DDFB000E1118F00E1218EC21ADDC7EB7C83600F0 :10DE0B001109DC0E1318CC3EFF5F0E2018C5CD1286 :10DE1B00DEE60F87878787218EDFB6320400C9E6DF :10DE2B007FFE61D8FE7BD0E65FC93AADDCB72845F3 :10DE3B001109DCD5CDEDDDD1283B3A18DC3D32297B :10DE4B00DCCDB1DD202F1103FA21800001C800EDDC :10DE5B00B02117DC360023351109DCCDF4DD281594 :10DE6B003E24CD75DD2104FACDC3DDCD9BDEC0CDC7 :10DE7B0003DEC3C0DCCD03DE3E3ECD75DD0E0A11E5 :10DE8B0002FACD05002103FA7E23CDE1DE3600C96F :10DE9B00D9CD06F2B7C409F2FE13CC09F2D9FE03B1 :10DEAB00C91AB7C8FE21381BFE3DC8FE5FC8FE2E3F :10DEBB00C8FE3AC8FE2CC8FE3BC8FE3CC8FE3EC896 :10DECB00FE3BC9AFC9ED5B00FA1AB7C8FE3BC8CD24 :10DEDB00ACDEC01318F3856FD024C9CDA0DF21357C :10DEEB00DC060B7E2BFE20200410F81804FE4828BD :10DEFB0035212BDC0100117EFE202822FE3A281E44 :10DF0B0023D630FE0A301957790738140738110712 :10DF1B00380E81380B8138088238054F10D979C9F2 :10DF2B00C33BDDCDA0DF212BDC110000060B7EFEF9 :10DF3B0020282DFE482829D63038E5FE0A3806D68B :10DF4B0007FE1030DB234F7A07070707E6F0577BF6 :10DF5B00070707075FE60FB2577BE6F0B15F10CEFE :10DF6B00EB7DC921800081CDE1DE7EC9AF322ADC99 :10DF7B003E00B720043A8EDF3C3DCDE1DD3E00C3D1 :10DF8B0014DE3E00CDE1DD3E00C314DECDA0DFF597 :10DF9B00CD77DFF1C9212ADCAF327CDF77321DDD93 :10DFAB003A93DF3289DFCDD0DEED533FDD060B2810 :10DFBB005ED5CDACDEFE413804FE513808FE30385C :10DFCB000AFE3A300613CDACDE18F2D1FE3A202908 :10DFDB00321DDD1AFE413811D640FE03D23BDD3235 :10DFEB007CDF77131AFE3A280FE5EBCDFFDEEBE172 :10DFFB00FE20D23BDD3289DF13AF3228E00608CD9D :10E00B002BE006031AFE2E200613CD2BE01803CDB2 :10E01B004CE00604AFCD4EE0ED5300FA3E00B7C91D :10E02B00CDACDE281C23FE2A2007363FCD53E0184B :10E03B00077713FE3FCC53E010E6CDACDEC81318C8 :10E04B00F93E20237710FCC9E52128E034E1C921F2 :10E05B004CDC0E0979B7281B112BDC06041ABE20E9 :10E06B000A132310F81AFE202004C92310FD2323C2 :10E07B000D20E50CC9CD97DF212BDC7EFE20CC0DCE :10E08B00E1CDD0DE0680280C0601FE412805FE53AB :10E09B0020020513ED5300FA78320BE11E00D5CDAB :10E0AB00F8DD2006CD59DDAFD1C9CDFCE0281ED15E :10E0BB007B1CD5E6032005CD64DD1808CDBDDD2026 :10E0CB00207C20A0060178CD6EDFCDE7E0CD9BDE76 :10E0DB002805CDFFDD20D3D13EFFB7C90608CDF310 :10E0EB00E03E2ECD75DD06037E23CD75DD0520F8D4 :10E0FB00C93D0F0F0FE6604F3E0ACD6EDFE680EE97 :10E10B0000C9060B363F2310FBC9CD97DFCDD0DE00 :10E11B00322CE1280113EB2200FA0601CDA3E0C853 :10E12B003E00FE562015CDBADD4F4B20746F2045B7 :10E13B0072617365BFCD6DDDFE59C0112ADCCD0E4A :10E14B00DEC93EFF1801AF3280DDCD97DFC23BDD6C :10E15B00CDD0DE329DDD280113ED5300FACDE6DD87 :10E16B00CA3BDDCD64DD3E17324BDC01800079FE0E :10E17B0080380EE5C5CDAEDDC1E120370E00218024 :10E18B00007EE67FFE1AC8FE0D280EFE0A280AFE48 :10E19B0009280DCD7EDD041812CD7EDD0600180B8F :10E1AB003E20CD7EDD0478E60720F50C23CD9BDEEB :10E1BB00C818BB3DC8C33BDDCDE6DE6F2600E5CD01 :10E1CB0015E20E16CDEFDDE1283AAF324ADCCDD0A9 :10E1DB00DE13FE5328021B29ED5300FA1100017CBC :10E1EB00B528182BE521800019E5CDD8DD112ADCE7 :10E1FB000E15CDB3DDD1E1200B18E4112ADCCDF4E3 :10E20B00DD3C2003CDEEE3C3D5DDCD97DFC23BDD97 :10E21B00CDF8DD112ADCC8D5CDBADD457261736549 :10E22B00A0212BDCCDE7E03E3FCD75DDCD6DDDD103 :10E23B00FE59C250DDD5CD0EDED1C9CD15E23A7CEB :10E24B00DFF5212ADC113ADC011000EDB0CDD0DE78 :10E25B002826ED5300FACDA0DF201DF147217CDFEE :10E26B007EB72803B8201170AF322ADC112ADC0EDE :10E27B0017CDEFDDC0CD59DDC33BDDC330DDCD2E7A :10E28B00DF184721000118423A2BDCFE2020203AF0 :10E29B001DDDB7C83A89DFFE10D23BDD3293DFCDEF :10E2AB0077DF3A7CDFB728043D328EDFC319DE11EE :10E2BB0033DC1AFE20C23BDD2106DC010300EDB08E :10E2CB00210001E53EFFCD49E3E12232E3CDA0DFA2 :10E2DB00217CDFE57E322ADC213ADCCDA3DFE17E37 :10E2EB00323ADCAF324ADC115C00212ADC0121001E :10E2FB00EDB02104FA7EB7280BFE3B2807FE202841 :10E30B00032318F106001181007E12B7280BFE3B88 :10E31B00280504231318F2AF122200FA783280007A :10E32B00CD64DDCDD5DDCD0001CDD5DDCD8DDFC30C :10E33B00B5DCCD2EDFE5CDA0DFE1C23BDDAF326436 :10E34B00E322CFE33E01320BE1CD77DFCDF8DD21C8 :10E35B00400020657EB720303E00B7CA3BDDE5AFFD :10E36B003264E32AFEE22B362022FEE22200FA215F :10E37B0087E3112ADC010C00EDB0183700434D4444 :10E38B0052554E2020434F4DFE2420043A8EDF3C45 :10E39B00327CDF3E01320BE1237E23E5E67FFE2458 :10E3AB0020033A93DF3289DF2FE6802003320BE123 :10E3BB00CD77DFCDF8DDE1289BE5CDFCE0E12894BE :10E3CB00CDE6DD2100013EDBBC3818E5EBCDD8DD19 :10E3DB00112ADCCDB1DDE120061180001918E73DD3 :10E3EB00CA8DDFCDBADD46756CECCD8DDFC3C0DCDD :0000000000 ; ; PATCH: Z2PATCH.ASM ; AUTHOR: Richard Conn ; NOTE: This is a Patch to the MicroDecision BIOS (Ver 1.3) ; which implements the following extended features of ; ZCPR2 on the MicroDecision -- ; External Paths for Command Search ; Multiple Command Line Buffer ; ZCPR2 External Stack ; ; ; ZCPR2 Equates ; zcpr2 equ 0dc00h ;Base Address of ZCPR2 Itself gocpm equ 0f2a0h ;GOCPM Entry Point in BIOS z2stack equ 0f9d0h ;Bottom of ZCPR2 External Stack z2tos equ z2stack+48 ;Top of ZCPR2 External Stack mclbuf equ z2tos ;Beginning of Multiple Command Line Buffer path equ 40h ;Base Address of External Path patch equ 0fca8h ;Patch Begins Here ; ; Patch -- ; org patch ; lxi h,clbase ;init command line lxi d,mclbuf ;copy into buffer mvi b,40 ;40 chars call move ; lxi h,pathbase ;init default path lxi d,path mvi b,10 ;10 bytes call move ; lxi h,zcpr2 ;set pointer jmp gocpm ; ; Move Routine ; move: mov a,m ;get stax d ;put inx h ;pt to next inx d dcr b ;count down jnz move ret ; ; Default Values ; clbase: dw mclbuf+4 ;pt to first char db 200 ;200 chars db 0 db 'STARTUP' ;default command db 0 pathbase: db 'A'-'@',0 ;goto A0 db 0 ; ; End of Patch ; end  ************************************************************************* * * * Z C P R 2 -- Z80-Based Command Processor Replacement, Version 2.0 * * * * Copyright (c) 1982 by Richard Conn * * All Rights Reserved * * * * ZCPR2 is Copyright (c) 1982 by Richard Conn, who assumes no respons- * * ibility or liability for its use. ZCPR2 is released to the public * * domain for non-commercial use only. * * * * The public is encouraged to freely copy and use this program for * * non-commercial purposes. Any commercial use of ZCPR2 is prohibited * * unless approved by the author, Richard Conn, in writing. * * * * This is the RELEASE VERSION of ZCPR2. * * * ************************************************************************* ; ; Module: ZCPRHDR ; Author: Richard Conn ; Module Used By: ZCPR2 Version 2.x ; Note: ZCPRHDR contains the key customization equates for ZCPR2. These ; equates allow the user to select various ZCPR2 options and do an ; extensive amount of tailoring of ZCPR2 to the user's desires. ; Note: This is the RELEASE VERSION of ZCPR2 ; ; ; The following equates may be used to customize this CPR for the user's ; system and integration technique. The following constants are provided: ; ; REL - TRUE if integration is to be done via MOVCPM ; - FALSE if integration is to be done via DDT and SYSGEN ; ; 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) ; ; CPRLOC - Base Page Address of CPR; this value can be obtained by running ; the BDOSLOC program on your system, or by setting the ; MSIZE and BIOSEX equates to the system memory size in ; K-bytes and the "extra" memory required by your BIOS ; in K-bytes. BIOSEX is zero if your BIOS is normal size, ; and can be negative if your BIOS is in PROM or in ; non-contiguous memory. ; REL EQU FALSE ;SET TO TRUE FOR MOVCPM INTEGRATION ; BASE EQU 0 ;BASE OF CP/M SYSTEM (SET FOR STANDARD CP/M) ; IF REL CPRLOC EQU 0 ;MOVCPM IMAGE ELSE ; ; If REL is FALSE, the value of CPRLOC may be set in one ; of two ways. The first way is to set MSIZE and BIOSEX ; as described above using the following three lines: ; ;MSIZE EQU 56 ;SIZE OF MEM IN K-BYTES ;BIOSEX EQU 0 ;EXTRA # K-BYTES IN BIOS ;CPRLOC EQU 3400H+(MSIZE-20-BIOSEX)*1024 ;CPR ORIGIN ; ; The second way is to obtain the origin of your current ; CPR using BDSLOC or its equivalent, then merely set CPRLOC ; to that value as as in the following line: ; CPRLOC EQU 0DC00H ;FILL IN WITH BDOSLOC SUPPLIED VALUE ; ; Note that you should only use one method or the other. ; Do NOT define CPRLOC twice! ; ; The following gives the required offset to load the CPR into the ; CP/M SYSGEN Image through DDT (the Roffset command); Note that this ; value conforms with the standard value presented in the CP/M reference ; manuals, but it may not necessarily conform with the location of the ; CPR in YOUR CP/M system; several systems (Morrow Designs, P&T, Heath ; Org-0 to name a few) have the CPR located at a non-standard address in ; the SYSGEN Image ; ;CPRR EQU 0980H-CPRLOC ;DDT LOAD OFFSET CPRR EQU 1100H-CPRLOC ;DDT LOAD OFFSET FOR MORROW DESIGNS ENDIF ; ; The following equate identifies the location of the BIOS. This equate ; (as provided in the release copy of ZCPR2HDR) assumes the standard sizes ; of 800H for ZCPR2 and 0E00H for BDOS and does not need to be modified if ; the user is running a standard CP/M configuration. ; BIOS EQU CPRLOC+800H+0E00H ;ADDRESS OF BIOS ; ; 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 ZCPR2 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' ;FILE TYPE OF COMMAND FILE ENDM SUBTYP MACRO DB 'SUB' ;FILE TYPE OF INDIRECT COMMAND FILE ENDM ; ; The following flag enables or disables the ability of ZCPR2 to process ; SUBMIT files (command files of the form $$$.SUB). If SUBON is TRUE, then ; ZCPR2 will process such files like CP/M's CCP normally does; if SUBON is ; FALSE, ZCPR2 will not process such files (ignore them). In such a case, ; only indirect command file facilities like ZEX will work. ; SUBON EQU TRUE ;SET TO TRUE TO ENABLE PROCESSING OF $$$.SUB ; ; The following flag allows ZCPR2 to accept commands of the form "du:cmnd". ; If DRVPREFIX is TRUE, this form is accepted; if FALSE, this form is not ; accepted. This flag has the additional side effect of automatically ; selecting files in the current disk/current user if the command ; is of the form "cmnd". The DRVPFATT determines the attributes of the ; selected files if DRVPREFIX is TRUE. ; DRVPREFIX equ TRUE ;ENABLE PREFIX ; ; The following flag allows the user to select the attributes of the files ; in the current disk/current user to be examined if the DRVPREFIX flag ; is TRUE. The following values are defined: ; ; DRVPFATT Files Selected ; 0 System ; 80H Directory ; 1 Both System and Directory ; DRVPFATT equ 1 ;SELECT BOTH SYSTEM AND DIRECTORY ; ; The following flag enables or disables the ability to switch user areas. ; For a more secure system, it is recommended that this ability be disabled and ; the CD.COM facility be employed instead. ; USERON equ TRUE ;ENABLE USER SPECIFICATION ; ; The following flags enable or disable various ZCPR2-resident commands. ; The user may invoke these as desired, but should keep in mind the size ; of the resulting ZCPR2 and make sure it does not exceed the required ; limits. ; DIRON equ TRUE ;DIR LTON equ TRUE ;LIST, TYPE GOON equ TRUE ;GO ERAON equ TRUE ;ERA SAVEON equ TRUE ;SAVE RENON equ TRUE ;REN GETON equ TRUE ;GET JUMPON equ TRUE ;JUMP ; ; 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 ZCPR2 is to be used, then INTPATH should be equated to TRUE, ; which selects the PATH located just after the MEMLOAD routine. If the ; external PATH is to be used, then INTPATH should be equated to FALSE and ; and equate for the address of the PATH should be provided. ; 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 ; NOTE: If DRVPREFIX is TRUE, then current disk/user is automatically ; searched, and including it in the command search path causes it to be ; searched twice, wasting time (and space in the path). Since many environs ; will run with DRVPREFIX = TRUE, then a good command search path would not ; include the current disk/user. ; INTPATH equ FALSE ;EXTERNAL ZCPR2 PATH SELECTED IF NOT INTPATH ;External Path Selected ; ; This equate defines the base address of the external path ; PATH equ 40H ;External ZCPR2 PATH at CBIOS Buffer Area ELSE ;Internal Path Selected ; ; The following macro defines the n-element internal path ; IPATH MACRO db 'A'-'@',0 ;Disk A, User 0 db 0 ;End of Path -- MUST be here ENDM ; ENDIF ; ; The following equate causes ERA to confirm on 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 TRUE ;SET TO TRUE FOR PROMPT ; ; 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. ; ERAV equ TRUE ;ENABLE VERIFY OPTION ERDFLG equ 'V' ;SET OPTION LETTER ; ; The following equate enables the appearance of the current disk/user ; in the ZCPR2 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>'. ; DUPRMPT equ TRUE ;ENABLE D> OR DN> FORM ; ; 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 ZCPR2 at the indicated address of CLBASE. ; MULTCMD equ TRUE ;Multiple Commands on one line permitted IF MULTCMD CMDSEP equ ';' ;Command Separator CLBASE equ 0FA00H ;Base address of buffer BUFLEN equ 200 ;200 Bytes in Input Buffer ENDIF ; ; The Wheel equate table enables the WHEEL facility of ZCPR2. 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. ; WHLADR equ 3BH ;Address of Byte to Examine 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 Change) WHEEL equ WERA OR WREN OR WLT OR WGO OR WSAVE OR WGET OR WJUMP OR WDU ; ; The INTSTACK equate is used to specify if the stack is internal or ; external to ZCPR2. Naturally, quite a bit of space is saved if the ; stack is placed external to ZCPR2. If such is the case, the user ; should set the STKBASE equate to the beginning of the stack area ; (bottom of the stack). NOTE: THIS IS THE BOTTOM OF THE STACK, NOT THE ; TOP OF THE STACK. ; ; If INTSTACK is TRUE, the stack is internal to ZCPR2. If INTSTACK is ; FALSE, the stack is external to ZCPR2, and the base of the stack ; (bottom of the stack) is located at STKBASE. ; INTSTACK equ FALSE ;Enable or Disable Internal Stack IF NOT INTSTACK STKBASE equ 0F9D0H ;Address of Bottom of External Stack STACK equ STKBASE+48 ;Address of Top of Stack ;Stack Size should be at least 48 bytes ENDIF ;NOT INTSTACK ; ;*** TERMINAL AND 'TYPE' CUSTOMIZATION EQUATES ; NLINES EQU 24 ;NUMBER OF LINES ON CRT SCREEN WIDE EQU TRUE ;TRUE IF WIDE DIR DISPLAY FENCE EQU '|' ;SEP CHAR BETWEEN DIR FILES ; PGDFLT EQU TRUE ;SET TO FALSE TO DISABLE PAGING BY DEFAULT PGDFLG EQU 'P' ;FOR TYPE COMMAND: PAGE OR NOT (DEP ON PGDFLT) ; THIS FLAG REVERSES THE DEFAULT EFFECT ; ;*** MISCELLANEOUS EQUATES ; MAXUSR EQU 31 ;MAXIMUM USER NUMBER ACCESSABLE MAXDISK EQU 2 ;MAXIMUM NUMBER OF DISKS ACCESSABLE ; SYSFLG EQU 'A' ;FOR DIR COMMAND: LIST $SYS AND $DIR ; SOFLG EQU 'S' ;FOR DIR COMMAND: LIST $SYS FILES ONLY ; SUPRES EQU TRUE ;SUPRESSES USER # REPORT FOR USER 0 ; SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND CPRMPT EQU '>' ;CPR PROMPT INDICATING USER COMMAND ;... THE MSB IS SET (+80H) FOR ZEX ; NUMBASE EQU 'H' ;CHARACTER USED TO SWITCH FROM DEFAULT ; NUMBER BASE ; SECTFLG EQU 'S' ;OPTION CHAR FOR SAVE COMMAND TO SAVE SECTORS ; CURIND EQU '$' ;SYMBOL FOR CURRENT DISK OR USER ; COMMENT EQU ';' ;LINES BEGINNING WITH THIS CHAR ARE COMMENTS ; ; CPR COMMAND NAME TABLE ; EACH TABLE ENTRY IS COMPOSED OF THE 4-BYTE COMMAND AND 2-BYTE ADDRESS ; 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 ; ENDM ; ; This equate determines if the ZCPR2 FCB is located internal to or external ; to ZCPR2. If EXTFCB is TRUE, FCBADR defines where it is located. By ; placing the ZCPR2 FCB external to ZCPR2, more space is freed up for other ; uses within ZCPR2. ; EXTFCB equ FALSE ; Allow External FCB if EXTFCB FCBADR equ 0FFD0H ; Address of External FCB endif ; ; CMDRUN -- ZCPR2 Extended Command Processing Facility ; ; This equate enables the ZCPR2 CMDRUN facility. If CMDRUN is TRUE, then ; another stage of command processing is invoked should ZCPR2 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 ZCPR2 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 TRUE ; 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 ; ; END OF CUSTOMIZATION SECTION ; This disk contains ZCPR2 for the Morrow Designs MicroDecision The following are the key files: ZCPRHDR.LIB - Header for ZCPR2 UNIQUE to MicroDecision Z2PATCH.ASM - BIOS Patch (1.3 ROM) ZCPR2 must be installed on a 64K CP/M for the MicroDecision. Note that unused space in the BIOS is employed and no additional space is required for ZCPR2 buffers. Hence, the ZCPR2 is the SAME SIZE as a normal CP/M 2.2 system on the MicroDecision. The installation sequence is: SYSGEN A <-- Get OS from A B <-- Put OS on B ^C SAVE 46 CPM64.SYS DDT CPM64.SYS F980 117F 0 IZCPR.HEX R2D80 IZ2PATMD.HEX R2D80 ^C SAVE 46 ZCPR64.SYS SYSGEN <-- No Source A <-- Destination is A B <-- Destination is B ... Unique addresses for MicroDecision version of ZCPR2: Multiple Command Line Buffer = FA00H External Path = 40H NO Memory-Based Named Dir NO Disk-Based Named Dir 2 Disks, 31 User Areas Enjoy! Rick Conn 8 July 83 :10FCA80021CDFC1100FA0628CDC4FC21D9FC114055 :10FCB80000060ACDC4FC2100DCC3A0F27E12231387 :10FCC80005C2C4FCC904FAC80053544152545550E3 :04FCD8000001000027 :0000000000 This disk contains ZCPR2 for the Morrow Designs MicroDecision The following are the key files: ZCPR2.HEX - HEX file of ZCPR2 ZCPRHDR.LIB - Header for ZCPR2 UNIQUE to MicroDecision Z2PATMD.ASM - BIOS Patch (1.3 ROM) Z2PATMD.HEX - HEX file of BIOS Patch ZCPR2 must be installed on a 64K CP/M for the MicroDecision. Note that unused space in the BIOS is employed and no additional space is required for ZCPR2 buffers. Hence, the ZCPR2 is the SAME SIZE as a normal CP/M 2.2 system on the MicroDecision. The installation sequence is: SYSGEN A <-- Get OS from A B <-- Put OS on B ^C SAVE 46 CPM64.SYS DDT CPM64.SYS F980 117F 0 IZCPR2.HEX R2D80 IZ2PATMD.HEX R2D80 ^C SAVE 46 ZCPR64.SYS SYSGEN <-- No Source A <-- Destination is A B <-- Destination is B ... Unique addresses for MicroDecision version of ZCPR2: Multiple Command Line Buffer = FA00H External Path = 40H NO Memory-Based Named Dir NO Disk-Based Named Dir 2 Disks, 31 User Areas Enjoy! Rick Conn 8 July 83