1d 0 3c 17200 * N Z C P R 206- Z80-Based Command Processor Replacement, Version 2.06 * . 16c 24427 * * * This is DIF file Mod 0.6 to be combined with mod 0.1 VERS of ZCPR2. * * To obtain the full file do: * * SSED ZCPR2.ASM NZCPR206.ASM * * * * 11 MAR 1983 = VERS 2.06 ; BY PETER PINCHIS, TORONTO, ONT. * * All mods from ZCPR22.ASM by Rich Conn included . * * BREAK routine futher changed to run proprely. * * ERROR routine has new features: * * -When DIR or TYPE is interrupted by ^C in the midle * * of a multiple cmd line ,the user is prompted to abort* * or not the rest of the cmd line. * * -When ^C is typed during a submit file, the user is * * prompted to continue or not with the next cmd in the * * submit file. * * -When a file is not found during a submit file, the * * user is prompted to abort or not the submit file. * * -Note that in the last two cases when you answer 'Y', * * to the 'Abort?' prompt the rest of the cmd line is * * ignored. In order to avoid that you should answer 'N'* * and to type ^C after each cmd in the submit file. * * Use module NZCPRHDR.LIB ver 2.02 to compile this file.* * * * 28 FEB 1983 = VERS 2.05 ; BY PETER PINCHIS, TORONTO, ONT. * * - Major bug fixed: in the original ZCPR2 mod 0.1 every * * time when a wrong command is issued in the multiple * * command line ( i.e : a file not found or a wild card * * in the save or ren cmd ) ,the ZCPR stops and the rest * * of the command line is ignored. * * Example of cmd line before the change: * * B1>type xxxxx.xxx;pip a:=b:yy.zz;dir * * ; xxxxx.xxx not found..... * * B1>XXXXX.XXX;PIP A:=B:YY.ZZ;DIR? * * B1> * * The present fix solves this problem : in the above * * example the execution continues with PIP and DIR... * * ERROR routine modified as follows: * * If a file is not found by the load,TYPE,REN,DIR,GET or* * ERA command then the file name is printed after * * "No File" prompt. * * If other commands follow the ofending one, then an * * other prompt "Abort?" is displayed. * * The user could abort or not the execution of the rest * * of command line. * * Example of cmd line after the change: * * B1>asmbl myprog a;type yyy;dir b5:xxx.com * * ;...asmbl and yyy not present * * ;...b5: empty * * B1>No File ASMBL MYPROG A * * B1>Abort?n * * B1>No file YYY * * B1>Abort?n * * B1>No File B5:XXX.COM * * B1> * * Other example: * * B1>era qqq.com;ren pp.txt=rr.txt * * ;..qqq.com not present; pp.txt exist'g * * B1>No File QQQ.COM * * B1>Abort?n * * B1>Erase PP .TXT?y * * B1>No File RR.TXT * * B1> * * Use module NZCPRHDR.LIB ver 2.02 to compile this file.* * * * 25 FEB 1983 = VERS 2.04 ; BY PETER PINCHIS, TORONTO, ONT. * * Included in vers 2.05 * * * * 23 FEB 1983 = VERS 2.03 ; BY PETER PINCHIS, TORONTO, ONT. * * Included in vers 2.05 * * * * 18 FEB 1983 = VERS 2.02 ; BY PETER PINCHIS, TORONTO, ONT. * * - DIR routine has been changed to provide user select- * * able number of columns for DIR and ERA display. * * DIR and ERA shall now page at each full screen. * * - CONOUT routine modified to ignore Form feeds. * * - ERAV has a new meaning : when FALSE the user is always* * prompted except when ERDFLG is present in the command * * line. * * - The module ZCPRHDR.LIB has been changed and renamed * * NZCPRHDR.LIB. * * Only this module shall be used to compile NZCPR202 * . 100,101c 41637 ; NZCPR206 -- CP/M Z80 Command Processor Replacement (ZCPR) Version 2.06 . 169c 44423 MACLIB NZCPRHDR . 173a 57200 ff equ 0ch ;form feed . 662c 8582 call prnnf ;no file message . 666,668c 37082 MOV A,M ;GET CHAR from current token of cmd line shld nxtchr ;set pointer if multcmd cpi cmdsep ;is a cmd separator ? jrz err3 ;yes , print abort msg endif ;multcmd cpi ' ' ;is less than ? jrc err2 ;yes , is the end of cmd line . 679,691c 34419 err2: if subon lda rngsub ;is a submit file active ? ora a jrz rstcpr ;if not goto next cmd, otherwise print prompt else jr rstcpr ;if not submit facility goto next cmd endif ;subon err3: if multcmd call printc ;abort message db 'Abort','?'+80H exx ;save regs call conin ;get reply exx ;restore regs cpi 'Y' ;yes? jrnz rstcpr ;if not, goto next cmd endif ;multcmd IF SUBON ;IF SUBMIT FACILITY IS ON CALL SUBKIL ;TERMINATE ACTIVE $$$.SUB IF ANY ENDIF ;SUBON jmp restrt ;abort command line . 709c 10914 DB 'No File',' '+80H . 727,728c 44137 MVI C,1 ;INPUT CHAR CALL BDOS ;GET INPUT CHAR WITH ^S PROCESSING AND ECHO JMP UCASE ;CAPITALIZE . 732,734c 58191 EXX ;SAVE CHAR cpi ff ;is a form feed ? jrz skipff ;skip char MVI C,2 . 739,740c 49989 skipff: EXX . 754,756c 33412 EXX ;SAVE REGS MVI C,5 . 790c 32648 PUSH B ;SAVE REG . 990,992c 11990 RNZ ;IF NO ^C, RETURN TO CALLER AND RUN ; CALL SUBKIL ;KILL $$$.SUB IF ABORT JMP rstcpr ;RESTART CPR . 1016c 18213 ; CHECK FOR ANY CHAR FROM USER CONSOLE; RET W/ZERO SET IF ^C TYPED . 1019,1025c 25191 exx ;save regs mvi c,11 ;check con status call bdos ora a ;set flags cnz conin ;input char exx ;restore regs cpi 'C'-'@' ;is ^C ? ret . 1493,1496d 63615 1544,1545c 45856 MVI E,nrcol-1 ;SET COLUMN COUNTER TO ZERO PUSH D ;SAVE COLUMN COUNTER (E) mvi a,nlines sta pagcnt . 1550,1553c 38718 ; CALL PRNNF ;PRINT NO FILE MSG; REG A NOT CHANGED ; XRA A ;SET ZERO FLAG POP D ;RESTORE DE jmp error ; RET . 1564,1566c 64924 INR a cpi nrcol jrnz dir3a xra a dir3a: mov e,a PUSH D ;SAVE IT ; ANI 03H ;OUTPUT IF all ENTRIES PRINTED IN LINE . 1573a 13207 push b call pager pop b . 1602c 24755 JRZ dir8 . 1609a 29946 dir8: pop d jmp err3 . 1687,1689c 11390 ; If ERAV is FALSE, verification is always requested, except when ; V flag is present in the command line ,in wich case ; the user will not be prompted. . 1703c 12907 IF ERAOK ;OK? ENABLED? . 1712,1714d 21084 1714,1718c 9842 ; RZ ;ABORT IF NO FILES . 1719,1720c 48582 IF ERAV ;if ERAV is true then JRNZ ERA2 ;do not skip prompt if ERDFLG prezent else ;if ERAV is false then jrz era2 ;skip prompt if ERDFLG prezent . 1860,1868c 48640 CALL BREAK ;CHECK FOR ABORT jz err3 ;RESTART IF SO JR TYPE2 . 1967c 52528 JNZ rstcpr ;RESTART AS ERROR IF NO . 2025,2026c 22671 ;REN3: ; CALL PRNNF ;PRINT NO FILE MSG . $a 6338 .