IMD 1.16: 8/06/2007 14:19:04 ebmmug.022 eastbay micromate users' group new dirz's, lbrdisk, zcpr-ccp+, forsale, nulu11.com disk issued: june 6, 1985 -EBMMUG 022 CCP+ LBR-DBL14 LBR[ DIRZ DOC DIRZ MAC DIRZ1 COMDIRZ1 MAC  DIRZ2 COM!"DIRZ2 MAC #$%&'()*+DIRZ3 COM,-DIRZ3 MAC ./0123456DIRZ4 COM78DIRZ4 MAC 9:;<=>?@AFORMATHDASMxBCDEFGHIFORSALE JLBRDSK23LBRKLMNOPQRNULU11 COMxSTUVWXYZS COMX[\]^_`VDO24-25LBRabcdefghijklmnopVDO24-25LBRqrstuvwxyz{|}~VDO24-25LBRVOLUME 022 DESCRIPTION: NUMBER SIZE NAME COMMENTS -EBMMUG .022 CONTENTS OF EBMMUG VOL. 022 022. 1 6K CCP+ .LBR ZCPR CCP+ FOR RCPM's 022. 2 12K DBL14 .LBR PRINTS DUMP 2 PAGES SIDE BY SIDE-A PAPER SAVER 022. 3 2K DIRZ .DOC DOCUMENTATION FOR THE NEW DIR's 022. 4 18K DIRZ .MAC REDIRECT OUTPUT TO LST IF COM LINE HAS sp>LST: 022. 5 4K DIRZ1 .COM DIR FOR ALL FILES USER 0 (SYSTEM FILES ALSO) 022. 6 18K DIRZ1 .MAC SOURCE CODE FOR ABOVE 022. 7 4K DIRZ2 .COM DIR FOR ALL SYSTEM FILES IF EXT IS NOT * OR ??? 022. 8 18K DIRZ2 .MAC SRC FOR ABOVE 022. 9 4K DIRZ3 .COM DIR FOR ALL USERS ALL FILES (USER # IN EXT) 022.10 18K DIRZ3 .MAC SRC FOR ABOVE 022.11 4K DIRZ4 .COM DIR FOR ALL ERASED FILES 022.12 18K DIRZ4 .MAC SRC FOR ABOVE 022.13 16K FORMATHD.ASM DISASSEMBLY OF PCM's FORMATHD.COM 022.14 2K FORSALE . ITEMS OF HARDWARE & SOFTWARE FOR SALE IN JUNE 022.15 16K LBRDSK23.LBR EXT OF RSX TO ALLOW LBR's & ARCH's B LOGICAL DV 022.16 16K NULU11 .COM A NEW NULU - FEB 3, 1985 - CHECK IT OUT 022.17 12K S .COM A NEW NSWEEP WITH CRCK's 022.18 82K VDO24-25.LBR VIDEO DISPLAY ORIENTATED FULL-SCREEN EDITOR LBR TATION FOR THE NEW DIR's 022. 4 18K DIRZ .MAC REDIRECT OUTPUT TO LST IF COM LINE HAS sp>LST: 022. 5 4K DIRZ1 .COM DIR FOR ALL FILES USER 0 (SYSTEM FILES ALSO) 022. 6 18K DIRZ1 .MAC SOURCE CODE FOR ABOVE 022. 7 4K DIRZ2 .COM DIR FOR ALL SYSTEM FILES IF EXT IS NOT * OR ??? 022. 8 18K DIRZ2 .MAC SRC FOR ABOVE 022. 9 4K DIRZ3 .COM DIR FOR ALL USERS ALL FILES (USER # IN EXT) 022.10 18K DIRZ3 .MAC SRC FOR ABOVE 022.11 4K DIRZ4 .COM DIR FOR ALL ERASED FILES 022.12 18K DIRZ4 .MAC SRC FOR ABOVE 022.13 16K FORMATHD.ASM DISASSEMBLY OF PCM's FORMATHD.COM 022.14 2K FORSALE . ITEMS OF HARDWARE & SOFTWARE FOR SALE IN JUNE 022.15 16K LBRDSK23.LBR EXT OF RSX TO ALLOW LBR's & ARCH's B LOGICAL DV 022.16 16K NULU11 .COM A N +CCP+ DOC(bCCP101 UPD*l CCP+ is a CP/M Plus CCP replacement. It is a result of dissasembling the CCP supplied with CP/M Version 3.0 and modifying the resultant source code for use in an RCP/M system. Because most of the code is copyright by Digital Research, only registered users of CP/M Plus may use this CCP replacement. This CCP includes the following changes: 1. All built-in commands have been removed. None are needed since Digital Research supplies the equivalent transient commands with CP/M 3. The user number is changed by entering u: at the system prompt, where u is the new user number. 2. It is not necessary for .COM and .SUB files to have the SYS attribute to be accessable from other user areas. The CCP searches user 0 (if the current user number is non-zero) after the current user number is searched for each drive in the command search path. 3. Commands of the form du:command or ud:command or u:command are allowed. 4. The display of the user/drive in the system prompt has been reversed to be consistent with ZCPR. 5. If the command or submit file to be executed is password protected and the correct password is not supplied or the default password does not match, a "Password:" prompt appears and the user is given one chance to enter the correct password. 6. The time (in the format [HH:MM]) is displayed at the system prompt. This can optionally be turned off. 7. The CCP checks for the presence of a BYE RSX, and if BYE is active, stop/start scroll support is turned off. All RCPM listing utilities monitor ^S input, so the BDOS should not monitor console input during console output in an RCPM system. The CCP uses function 60 (RSX function 4) to test for BYE active. My version of BYE returns 0 in register A. If this function reaches the BDOS, 0FFH is returned. Checking for BYE active can optionally be turned off. 8. The CCP uses offset +9 in the System Control Block to pass the user number of the file to load in conjunction with function 59. The value passed is user number+1, with 0 = current user number. The Loader resets this value to 0. Transient programs can set SCB+9 to load files from different user numbers. 9. Because of the extra code to select the user number of the load file, the loader RSX is 1 page longer. 10. If a .COM or .SUB file cannot be found, the message "command not found" is displayed. 11. Named directories are implemented (similar to ZCPR). If directory names were loaded via SETDIR, the name of the drive/user is displayed. The CCP also calls any active LBR RSX's to display their Library names. The display of directory names can be turned on or off by using the DIRNAME utility. The directory name file (ROOT.DIR) can be created using your favorite editor. Use the sample supplied for syntax. The CCP supports password protected directories. To log into a named directory, simply enter its name as a command with an optional password, and if it is password protected, and the correct password was not supplied, a password will be prompted. 12. Full support of the ZCPR wheel byte is implemented including MAXDRIVE, MAXUSER, and WHEEL. If the wheel byte is set, access is allowed to any named directory without regard to password protection or the settings of max drive and user. If the wheel byte is zero, access is denied to out-of-bounds drive and user areas as determined by MAXDRIVE and MAXUSER. To log into an out-of-bounds area when the wheel byte is zero, you must enter the name of the target directory, then if it is password protected, supply the correct password. If this is successfull, the MAXDRIVE and MAXUSER locations are modified to reflect the extended access. The following options can be selected by using SID and changing the following locations: 103H 0 = display time at system prompt non-zero = don't display time 104H 0 = check for BYE active and disable ^S/^Q support if BYE is active. non-zero = don't check for BYE active. ^S/^Q support is always enabled. I have been using the CCP in the Meadowlark RCPM for over 1 year. It offers ZCPR-like capabilities which most callers are used to, and also allows the Sysop and privaleged users to easily use password protected commands. If you make use of CCP+, and have any comments or suggestions, call the above RCPM at 403-484-5981 @ 300/1200 baud. Feb 3, 1985 Jim Lopushinsky Edmonton, Alberta, Canada CCP+ version 1.01 update notes. 02/20/85 Jim Lopushinsky 1. The comparison of the ZCPR variable MAXDRV is now properly adjusted. Previous versions assumed 1=A, 2=B, etc. It has now been corrected so that 0=A, 1=B. 2. On cold boot, the ZCPR variables are initialized as follows: MAXDRV = 15 (Drive P:) MAXUSR = 16 (User 15) WHEEL = 0FFH (enabled)  ^S/^Q support if BYE is active. non-zero = don't check for BYE active. ^S/^Q support is always enabled. I have been using the CCP in the Meadowlark RCPM for over 1 year. It offers ZCPR-like capabilities which most callers are used to, and also allows the Sysop and privaleged users to easily use password protected commands. If you DBL14 ASMShDBL14 COMT\ *TITLE 'DBL.ASM AS OF FEB 14, 1984' ***************************************** * * * Double page printer * * By: Alan W Warren * * 866 Williamsbury #168 * * Pontiac, MI 48054 * * * * Date: Dec 29, 1983 * * * * Revisions: * * Off set start added * * Feb 14, 1984 (AWW) * * * * A>DBL FILENAME.TYP * * A>DBL FILENAME.TYP P25 * * * ***************************************** FALSE: EQU 0 TRUE: EQU NOT FALSE ;Printer in use TEST: EQU FALSE ;True for testing on console ANADEX: EQU FALSE ;True for 'Anadex DP 9501' GEMINI: EQU FALSE ;True for 'Gemini Star 10' & 'Epson RX-80' PROWRT: EQU FALSE ;True for 'C. Itoh Prowriter & Etc.' MT140: EQU TRUE ;True for 'Mannesman Tally MT 140 S' ;Printer parameters IF TEST HGT: EQU 4 ;4" high screen WDT: EQU 80 ;8" wide screen LPINCH: EQU 6 ;6 lines per inch CPINCH: EQU 100 ;10 characters per inch GAP: EQU 3 ;3 character center gap LMRG: EQU 1 ;No left margin RMRG: EQU 1 ;No right margin TMRG: EQU 0 ;No top margin BMRG: EQU 0 ;No bottom margin ENDIF IF ANADEX HGT: EQU 11 ;11" paper WDT: EQU 140 ;14" wide paper LPINCH: EQU 6 ;Lines per inch CPINCH: EQU 125 ;12.5 characters per inch GAP: EQU 8 ;Center gap LMRG: EQU 8 ;Left margin RMRG: EQU 8 ;Right margin TMRG: EQU 3 ;3 line top margin BMRG: EQU 3 ;3 line bottom margin ENDIF IF GEMINI HGT: EQU 11 ;11" paper WDT: EQU 85 ;8.5" wide LPINCH: EQU 6 ;6 lines per inch CPINCH: EQU 167 ;16.7 characters per inch GAP: EQU 8 ;Center gap LMRG: EQU 8 ;Left margin RMRG: EQU 8 ;Right margin TMRG: EQU 3 ;3 line top margin BMRG: EQU 3 ;3 line bottom margin ENDIF IF PROWRT HGT: EQU 11 ;11" paper WDT: EQU 85 ;8.5" wide LPINCH: EQU 6 ;6 lines per inch CPINCH: EQU 170 ;17 characters per inch GAP: EQU 8 ;Center gap LMRG: EQU 8 ;Left margin RMRG: EQU 8 ;Right margin TMRG: EQU 3 ;3 line top margin BMRG: EQU 3 ;3 line bottom margin ENDIF IF MT140 HGT: EQU 11 ;11" paper WDT: EQU 85 ;8.5" wide LPINCH: EQU 6 ;6 lines per inch CPINCH: EQU 200 ;20 characters per inch GAP: EQU 8 ;Center gap LMRG: EQU 8 ;Left margin RMRG: EQU 8 ;Right margin TMRG: EQU 3 ;3 line top margin BMRG: EQU 3 ;3 line bottom margin ENDIF BDOS: EQU 5 FCB: EQU 5CH ESC: EQU 27 ;K.N. ADDED FOR PROWRT ES: EQU 36 EF: EQU 26 CR: EQU 13 FF: EQU 12 LF: EQU 10 TB: EQU 09 LIST: SET 5 IF TEST LIST: SET 2 ENDIF WIDE: EQU (((CPINCH*WDT)/100)-(GAP+LMRG+RMRG))/2 LINES: EQU ((HGT*LPINCH)-(TMRG+BMRG+2)) ; ;Start up ; ORG 100H JMP START ;Printer control strings ;Each string is 15 bytes IF TEST ENDPG: DB CR,LF,ES DS 118H-$ CPRESS: DB ES DS 130H-$ NORMAL: DB ES DS 148H-$ ENDIF IF ANADEX ENDPG: DB FF,ES ;End of page DS 118H-$ CPRESS: DB 25,ES ;Compressed mode DS 130H-$ NORMAL: DB 18,ES ;Normal mode DS 148H-$ ENDIF IF GEMINI ENDPG: DB FF,ES DS 118H-$ CPRESS: DB 15,143,ES DS 130H-$ NORMAL: DB 18,146,ES DS 148H-$ ENDIF IF PROWRT ENDPG: DB FF,ES DS 118H-$ CPRESS: DB ESC,'Q',ES DS 130H-$ NORMAL: DB ESC,'N',ES DS 148H-$ ENDIF IF MT140 ENDPG: DB FF,ES DS 118H-$ CPRESS: DB ESC,'[','3','w',ES DS 130H-$ NORMAL: DB ESC,'[','0','w',ES DS 148H-$ ENDIF ;Set stack START: LXI H,0 DAD SP SHLD OLD LXI SP,STAK ;Set top of memory LDA BDOS+2 DCR A STA MEMTOP ;Check for page option LXI D,0 LDA FCB+17 CPI 'P' JNZ FNDPGN ;Option set - get page number LXI H,FCB+18 ;Check range GETPG: MOV A,M CPI '0' JC FNDPGN CPI '9'+1 JNC FNDPGN ;Byte is a decimal digit ANI 15 ;Force ascii digit to binary PUSH H ;Multiply 16 bit accumulator by 10 MOV H,D MOV L,E DAD H! DAD H ;*4 DAD D! DAD H ;*10 ;Add new digit MOV E,A MVI D,0 DAD D ;+ new digit ;Point to next possible digit XCHG POP H INX H JMP GETPG ;Set page number to find FNDPGN: XCHG SHLD FPAGE ;Open file XRA A  STA FCB+32 LXI D,FCB MVI C,15 CALL BDOS LXI H,NOFI INR A JZ FINIS ;Set up printer & fill memory LXI H,CPRESS CALL STRING LXI D,DBUFER CALL FILLER ;Find start page LHLD FPAGE MOV A,L ORA H JZ FINDPG ;Printing should start on an odd page DCX H ;Back up to start on the page MOV A,L ;Get low end ANI 11111110B ;Force next lowest even page MOV L,A ;Reset ORA H ;At start of file? JZ FINDPG ;Yes INR H ;Need to exit on zero flag ;Instead of carry or minus ;Find end of page number in hl FSTPG: MVI C,LINES PATCHF: EQU $-1 PUSH H ;Get byte & check for error FDNXL: CALL GNB CPI EF JZ SIGNO ;Check for end of line CPI LF JNZ FDNXL ;Decrement lines left on page DCR C JNZ FDNXL ;End of page occurred CALL BMPNUM ;Increment page number in footing POP H DCR L JNZ FSTPG DCR H JNZ FSTPG ;Find start of even page FINDPG: MVI A,LINES PATCH1: EQU $-1 STA LCOUNT LHLD CURENT SHLD ODDPAG MOV B,A FINDEV: CALL GNB CPI EF JZ NULINE CPI LF JNZ FINDEV DCR B JNZ FINDEV ;Set pointers for new line NULINE: LHLD CURENT SHLD EVENPG LHLD ODDPAG SHLD CURENT ;Check for end of file MOV A,M CPI EF JZ ENDIT ;Print line from odd page CALL PRTLIN JC ENDIT ;Set pointers for mid sheet LHLD CURENT SHLD ODDPAG LHLD EVENPG SHLD CURENT ;End check LDA NDFLAG ORA A JNZ LNFEED ;Middle gap LDA BCOUNT SBI (WIDE + GAP) PATCH2: EQU $ CMA MOV C,A CALL SPACES ;Print the even page line CALL PRTLIN LNFEED: CALL CRLF JNZ NULINE ;Finish the page ENDIT: CALL CRLF LDA LCOUNT CPI 255 JNZ ENDIT ;Do the odd page number MVI C,((WIDE-PGWD)/2) PATCH3: EQU $ CALL PRTNUM ;Now the even page number MVI C,(GAP +WIDE -PGWD) PATCH4: EQU $ CALL PRTNUM CALL WAIT ;Finish the sheet LXI H,ENDPG CALL STRING ;Check for end of file LHLD EVENPG MOV A,M CPI EF JNZ FINDPG ;At the end of the file EOF: LXI H,NORMAL CALL STRING ;Sign off SIGNO: LXI H,GOOD FINIS: MVI A,6 STA OBYTE CALL STRING LHLD OLD SPHL RET ************************* * * * SUBROUTINES * * * ************************* ;Print the line PRTLIN: LXI H,LBUFER XRA A MOV M,A ;Set the start of the line STLINE: MVI C,WIDE PATCH5: EQU $-1 XRA A STA BCOUNT ;Get a byte & check for end GETBYT: CALL GNB CPI EF JZ PRTND CPI TB JZ TABBER CPI LF JZ EOL CPI CR JZ GOTCR ;Ignore controls CPI ' ' JC GETBYT ;Put byte in line buffer CALL TOLIN JNZ GETBYT ;Line is too long FNDEOL: CALL GNB ORA A CPI EF JZ PRTND CPI CR JZ GOTCR CPI LF JNZ FNDEOL ;Got the end of line - ; print whats in line buffer EOL: PUSH PSW LXI H,LBUFER MOV A,M STA BCOUNT ;Is there anything to print? MOV D,A XRA A MOV M,A CMP D JZ NOPRT ;Print the line PRTBUF: INX H MOV A,M CPI ' ' CNC PCHAR DCR D JNZ PRTBUF NOPRT: POP PSW RET ;Expand tabs TABBER: PUSH D LDA BCOUNT ANI 0111B MOV D,A MVI A,8 SUB D MOV D,A ;Move spaces to buffer TABLUP: MVI A,' ' CALL TOLIN JZ TABEND DCR D JNZ TABLUP XRA A INR A TABEND: POP D JZ FNDEOL JMP GETBYT ;Got a carriage return ; reset line length GOTCR: CALL SETLIN JMP STLINE ;Get line length SETLIN: LDA BCOUNT LXI H,LBUFER CMP M RC MOV M,A RET ;Got an end of file marker PRTND: STA NDFLAG CALL SETLIN JMP EOL ;Move a byte to the line buffer TOLIN: INX H MOV M,A LDA BCOUNT INR A STA BCOUNT DCR C RET ;Get a byte from the file buffer GNB: PUSH B! PUSH D! PUSH H ;Check for quick kill MVI E,255 MVI C,6 CALL BDOS CPI 32 JNZ CURCHK ;Kill is on LHLD EVENPG MVI M,EF JMP ENDIT ;Check current position CURCHK: LHLD CURENT CALL COMP CZ FILMEM ;Point to byte & getit LHLD CURENT MOV A,M CPI EF JZ GNBRET INX H SHLD CURENT GNBRET: POP H! POP D! POP B RET ;Fill memory FILMEM: LHLD ODDPAG MVI L,0 LXI D,DBUFER ;Move odd page to low end of disk buffer MOVER: MVI C,128 ;Move one block at a time MEMOV: MOV A,M STAX D INX H! INX D DCR C JNZ MEMOV CALL COMP JNZ MOVER ;Read disk to de FILLER: PUSH D MVI C,26 CALL BDOS LXI D,FCB MVI C,20 CALL BDOS ;Check for end of disk file POP H MVI C,128 CPI 0 JZ FILTER ;Fill rest of memory with eof id SETEND: MVI M,EF INX H DCR C JNZ SETEND ; JMP SETPTR ;Filter out high order bits FILTER: MOV A,M ANI 7FH MOV M,A INX H DCR C JNZ FILTER CALL COMP XCHG JNZ FILLER ;Reset pointers to new addresses SETPTR: LHLD ODDPAG LXI D,DBUFER MOV A,H SUB D MOV H,D SHLD ODDPAG CALL REPLA SHLD EVENPG LHLD CURENT CALL REPLA SHLD CURENT RET ;Subtract a from h REPLA: PUSH D PUSH PSW MOV D,A MOV A,H SUB D MOV H,A POP PSW POP D RET ;Compare h to top of tpa COMP: MVI A,0 MEMTOP: EQU $-1 CMP H RET ;Print number of spaces in c SPACES: MVI A,' ' CALL PCHAR DCR C JNZ SPACES RET ;Carriage return & line feed CRLF: MVI A,CR CALL PCHAR MVI A,LF CALL PCHAR ;Decrement lines left on page LDA LCOUNT DCR A STA LCOUNT RET ;Print the byte in a PCHAR: PUSH B! PUSH D! PUSH H MOV E,A MVI C,LIST OBYTE: EQU $-1 CALL BDOS POP H! POP D! POP B RET ;Move over & print page number PRTNUM: CALL SPACES LXI H,PGNUMB CALL STRING ;Increment the page number BMPNUM: LXI H,DIGIT NXTNUM: INR M MOV A,M CPI ':' RNZ ;Number to big MVI M,'0' DCX H MOV A,M CPI '[' RZ ;Check for blank CPI ' ' JNZ NXTNUM MVI M,'1' RET ;Print string at hl STRING: MOV A,M INX H CPI ES RZ CALL PCHAR JMP STRING ;Wait for input WAIT: EQU $ IF TEST NOP ENDIF IF NOT TEST RET ENDIF MVI E,255 MVI C,6 CALL BDOS ORA A JZ WAIT RET ************************* * * * MESSAGES * *  * ************************* GOOD: DB CR,LF,'finished',CR,LF,LF,ES NOFI: DB CR,LF,'No File',CR,LF,LF,ES PGNUMB: DB 'Page: [ ' DIGIT: DB '1]',ES PGWD: EQU $-(PGNUMB+2) ************************* * * * VARIABLES * * * ************************* FPAGE: DB 0,0 CURENT: DW DBUFER ODDPAG: DW DBUFER EVENPG: DW DBUFER OLD: DB 0,0 LCOUNT: DB 0 NDFLAG: DB 0 BCOUNT: DB 0 LBUFER: EQU $ DBUFER: EQU ((LBUFER/256)+2)*256 STAK: EQU DBUFER-2 END H $$$!9"E1:=2:mP…!n~0څ:҅bk)))_#g"=2|\!#:2G*?"AG *?"C*A"?~5r5*?"A*C"?:H/:IQ/Oʹr;;:G5F!*C~!0!>2*E!JwI2I  ʲ  }}  Ÿ!J~2IWw#~ :IW>W> <ʟ}w:I!Jw2Hò#w:I<2I  )*C65*?ͰC*?~?#"?*A.~# MͰK\{6# qË~w# {Ͱ[*A|b"Aͧ"C*?ͧ"?W|g>>  ´> > :G=2G_ʹ!0!:4~:60+~[ 61~#$ finished $ No File $Page: [ 1]$UNT: DB 0 LBUFER: EQU $ DBUFER: EQU ((LBUFER/256)+2)*256 STAK: EQU DBUFER-2 END H $$$!9"E1:=2:mP…!n~0څ:҅bk)))_#g"=2|\!#:2G*?"AG *?"C*A"?~5r5*?"A*C"?:H/:IQ/Oʹr;;:G5F!*C~!0!>2*E!JwI2I  ʲ  }}  Ÿ!J~2IWw#~ :IW>W> <ʟ}w:I!Jw2H DIRZ.DOC This is XDIR modified by Rich Harrington to work on CP/M 3.0. The original program used FUNCTION 27 (Get addr ALLOC) which may not work in 3.0. See CP/M PROGRAMMER'S GUIDE. The modification counts the size of all files on the disk and subtracts them from the disk capacity. ENHANCEMENT If your input line includes "sp>LST:" the output of DIRZ will go to the LST: device and the continue message is suppressed. EXAMPLE DIRZ *.MAC >LST: More: DIRZ1 displays all files for user 0 (system files) DIRZ2 displays sys files if EXT is not * or ??? DIRZ3 displays all users all files (user number in EXT) DIRZ4 displays all erased files Good luck Rich Harrington 31 Blade Way Walnut Creek, CA 94595   ʲ  }}  Ÿ!J~2IWw#~ :IW>W> <ʟ}w:I!Jw2HTITLE DIRZ.MAC 07-19-84 01:55:00 .Z80 ASEG ORG 0100H DBUF EQU 80H DFCB EQU 5CH L0000 EQU 00H L0001 EQU 01H L0002 EQU 02H L000B EQU 0BH L000D EQU 0DH L000F EQU 0FH L0010 EQU 10H L005D EQU 5DH L006C EQU 6CH LC22 EQU 16H LC23 EQU 17H MULTKK EQU 100AH LD HL,L0000 ADD HL,SP LD (L09D0),HL LD HL,STACK LD SP,HL LD HL,LC23 LD (LINTCT),HL LD DE,SIGNON LD C,9 CALL 5 ; ; *************************************** ; ; REDIRECT OUTPUT TO LST: IF COMMAND LINE ; CONTAINS sp>LST: ON THE END. ; ; ************************************** ; LD HL,80H LOOP1: LD A,(HL) CP '>' ; DO WE REDIRECT JP Z,REDIR OR A JP Z,NOLST ; NO INC HL JP LOOP1 REDIR: LD DE,LSTM LD B,5 ; MATCH 5 CHAR LOOP2: LD A,(DE) CP (HL) JP NZ,NOLST INC HL INC DE DEC B JP NZ,LOOP2 ; MORE TO CHECK ; LD (LSTF),A ; IF NON ZERO PRINT ; NOLST: ; FILL FCB FROM INPUT CALL L01E2 ; GET DIR ENTRIES & CK FOR MATCH CALL L0292 LD A,0 LD DE,L09CD CALL L0877 OR L JP Z,L013C LD A,1 LD HL,L09CD CALL L0882 JP NC,L0139 CALL L033F L0139: CALL L04F4 L013C: LD A,0 LD DE,L09CB CALL L0877 OR L JP Z,L014B CALL L05B6 L014B: CALL TELSIZ LD HL,(L09D0) LD SP,HL RET SIGNON: DB 0DH,'$ D.M.M.Software' L0164: DB 4 ; PRINT CR LF & MESSAGE IF REQUIRED PCRLFM: LD C,0DH CALL CHRCON LD C,0AH CALL CHRCON LD A,(LSTF) ; PRINT CONTINUE MESS OR A RET NZ ; NO LD HL,(LINTCT) DEC HL LD (LINTCT),HL LD A,L OR H RET NZ LD DE,MESS1 ; PRINT MESSAGE RET TO CONTINUE LD C,9 CALL 5 ; WAIT FOR CHAR FROM CON: LD C,1 CALL 5 LD DE,SIGNON LD C,9 CALL 5 LD HL,LC22 LD (LINTCT),HL RET LINTCT: DW 0C9D1H MESS1: DB 'Return to continue- $' L01AC: LD HL,L09FB LD (HL),0 L01B1: RET ; CODE FROM HERE TO 1E1 NOT WORKING NOP ; BUT IF REMOVED PROGRAM DOES NOT WORK NOP LD H,0 LD BC,L006C ADD HL,BC LD A,(HL) SUB '$' ADD A,0FFH SBC A,A PUSH AF LD A,0AH LD HL,L09FB SUB (HL) SBC A,A CPL POP BC LD C,B AND C RRA JP NC,L01D7 L01D0: LD HL,L09FB INC (HL) JP L01B1 L01D7: LD A,(L09C6) RRA RET NC LD HL,L0164 LD (HL),5 RET L01E2: CALL L01AC LD A,(DFCB) CP 0 JP Z,L01F9 LD A,(DFCB) DEC A LD E,A LD D,0 ; SEL DISK LD C,0EH CALL 5 L01F9: LD A,(L005D) CP ' ' JP NZ,L020C LD C,0BH PUSH BC LD E,'?' LD BC,L005D CALL L08AD L020C: LD A,(L09C8) RRA JP NC,L021B L0213: LD HL,L09D3 LD (HL),'?' JP L0226 L021B: LD DE,0FFH ; GET USER # LD C,' ' CALL 5 LD (L09D3),A L0226: LD C,0BH PUSH BC LD DE,L09D4 LD BC,L005D CALL L08A2 LD C,0DH PUSH BC LD E,'?' LD BC,DFCB CALL L08AD LD BC,L000F PUSH BC LD DE,L0000 ; GET DISK PARM BLOCK LD C,1FH CALL 5 LD B,H LD C,L LD DE,DPBSTO ; MOVE DPB CALL L08A2 LD HL,STACK LD (L09F9),HL LD HL,(DPBDRM) INC HL INC HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD (L09F7),HL LD HL,(DPBBLM) LD H,0 INC HL LD C,7 CALL L084A LD (L09DF),HL LD HL,(DPBDRM) INC HL LD (DIRLFT),HL LD C,0AH LD HL,L09DF CALL RRCTIM LD (SUSIZE),HL LD A,0FFH LD HL,DPBDSM CALL L0882 SBC A,A LD (LGSMFS),A RET L0292: LD DE,DFCB LD C,11H CALL 5 LD (DRETCD),A L029D: LD A,(DRETCD) CP 0FFH RET Z LD A,(DRETCD) AND 3 ; MULT BY 32 TO GET FILE NAME ADD A,A ; RETURNED BY CPM ADD A,A ADD A,A ADD A,A ADD A,A ADD A,80H LD L,A LD H,0 LD (FILEPT),HL LD A,(HL) ; ERASED FILE GET NEXT FILE CP 0E5H JP Z,L0331 LD HL,(DIRLFT) DEC HL LD (DIRLFT),HL ; ; ************************************ ; ; FIX FILES REMAINING ; LD HL,(FILEPT) LD BC,10H ADD HL,BC LD B,H LD C,L CALL CTFLPR PUSH HL LD HL,(DFILEU) POP BC ADD HL,BC LD (DFILEU),HL ; ; ********************************** ; LD HL,(FILEPT) LD B,H LD C,L ; DOES FILE MATCH WHAT WE ARE LOOKING FOR CALL L07DC RRA ; NO MATCH JP NC,L0331 LD BC,L0010 LD HL,(FILEPT) ADD HL,BC LD B,H LD C,L CALL CTFLPR LD BC,L000D PUSH HL LD HL,(L09F7) ; GET USER # ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B LD HL,(FUSED) ADD HL,BC LD (FUSED),HL LD L,0BH PUSH HL LD HL,(FILEPT) INC HL LD B,H LD C,L LD HL,(L09F7) EX DE,HL POP HL L02FB: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L02FB LD HL,(FILEPT) LD BC,L000B PUSH HL LD HL,(L09F7) ADD HL,BC POP DE LD A,(DE) LD (HL),A LD HL,(L09CD) INC HL LD (L09CD),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09F7) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD DE,L0010 LD HL,(L09F7) ADD HL,DE LD (L09F7),HL L0331: LD DE,L0000 LD C,12H CALL 5 LD (DRETCD),A JP L029D L033F: LD HL,L0A08 LD (HL),1 LD HL,L0001 LD (L0A0B),HL LD HL,(L09CD) LD (L0A23),HL L0350: LD A,0 LD HL,L0A08 CP (HL) RET NC LD HL,(L0A08) LD H,0 LD BC,L0A09 ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A00),HL DEC BC LD A,(BC) LD C,A LD B,0 LD HL,L0A21  ADD HL,BC ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A02),HL LD A,(L0A08) DEC A LD (L0A08),A L0380: LD BC,L0A02 LD DE,L0A00 CALL L086A JP NC,L0350 LD HL,(L0A00) LD (L09FC),HL LD HL,(L0A02) LD (L09FE),HL EX DE,HL LD HL,(L0A00) ADD HL,DE LD C,1 CALL L0854 ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A04),HL L03AF: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L045A L03BB: LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD C,(HL) INC HL LD B,(HL) LD HL,(L0A04) EX DE,HL CALL L07C2 CP 0FFH JP NZ,L03DD LD HL,(L09FC) INC HL LD (L09FC),HL JP L03BB L03DD: LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(L0A04) LD B,H LD C,L CALL L07C2 CP 0FFH JP NZ,L0400 LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03DD L0400: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L03AF LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A06),HL LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A06) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L09FC) INC HL LD (L09FC),HL LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03AF L045A: LD BC,L0A00 LD DE,L09FE CALL L086A LD BC,L09FC LD DE,L0A02 PUSH HL CALL L086A POP DE CALL L0863 JP NC,L04B4 LD BC,L0A02 LD DE,L09FC CALL L086A JP NC,L04AB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L09FC) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L0A02) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04AB: LD HL,(L09FE) LD (L0A02),HL JP L0380 L04B4: LD BC,L09FE LD DE,L0A00 CALL L086A JP NC,L04EB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L0A00) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L09FE) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04EB: LD HL,(L09FC) LD (L0A00),HL JP L0380 L04F4: LD HL,L0000 LD (L0A39),HL LD (L0A3B),HL L04FD: LD BC,L09CD LD DE,L0A3B CALL L086A JP C,L0510 LD HL,(L0A39) LD (L09CB),HL RET L0510: LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A39) INC HL LD (L0A39),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B L0533: LD BC,L09CD LD DE,L0A3B CALL L086A SBC A,A PUSH AF LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A3B) LD BC,L0002 ADD HL,HL ADD HL,BC EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) POP HL LD C,(HL) INC HL LD B,(HL) CALL L07C2 SUB 0 SUB 1 SBC A,A POP BC LD C,B AND C RRA JP NC,L04FD LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A3D),HL LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,(L09F7) ADD HL,BC LD DE,L0A3D CALL L082B LD BC,L000D PUSH HL LD HL,(L09F7) ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B JP L0533 L05B6: LD HL,L09CF LD (HL),1 L05BB: LD A,(L0164) LD HL,L09CF CP (HL) JP C,L05F3 LD BC,L0943 CALL STRCON LD A,(L09C6) CPL RRA JP NC,L05D9 LD BC,L094F CALL STRCON L05D9: LD HL,L0164 LD A,(L09CF) CP (HL) JP NC,L05E9 LD BC,L0956 CALL STRCON L05E9: LD A,(L09CF) INC A LD (L09CF),A JP NZ,L05BB L05F3: LD HL,L0001 LD (L0A3F),HL CALL PCRLFM CALL L0623 L05FF: LD DE,L09CB LD BC,L0A3F CALL L086A RET C LD A,(L09CF) INC A LD (L09CF),A LD C,A LD A,(L0164) CP C JP NC,L0631 CALL PCRLFM LD HL,L09CF LD (HL),1 JP L0637 L0623: LD B,'M' LD C,'-' L0627: PUSH BC CALL CHRCON POP BC DEC B JP NZ,L0627 RET L0631: LD BC,L095A CALL STRCON L0637: LD HL,(L0A3F) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,L0A41 LD (HL),0 L064C: LD A,0AH LD HL,L0A41 CP (HL) JP C,L0670 LD HL,(L0A41) LD H,0 EX DE,HL LD HL,(L09F7) ADD HL,DE LD A,7FH AND (HL) LD C,A CALL CHRCON LD A,(L0A41) INC A LD (L0A41),A JP NZ,L064C L0670: LD A,(L09C6) CPL RRA JP NC,L0694 LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,5 CALL PTDEC LD C,'K' CALL CHRCON L0694: LD DE,L0001 LD HL,(L0A3F) ADD HL,DE LD (L0A3F),HL JP NC,L05FF RET TELSIZ: LD HL,(DPBDSM) INC HL LD (FCAP),HL LD (L0A4A),HL LD (L0A4C),HL LD HL,(DPBALO) ; DIR RESERVED BLOCKS LD (AL0AL1),HL L06B5: LD A,0 LD DE,AL0AL1 CALL L0877 OR L ; IF NO DIR SPACE USED JP Z,L06DF LD A,(AL0AL1) RRA JP NC,L06CF LD HL,(FCAP) DEC HL LD (FCAP),HL L06CF: LD C,1 LD HL,AL0AL1 CALL RRCTIM EX DE,HL DEC HL LD (HL),E INC HL LD (HL),D JP L06B5 L06DF: LD HL,L0A4E LD (HL),0 LD DE,L0000 LD C,1BH CALL 5 LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A LD HL,(L0A4C) INC HL LD (L0A42),HL L06FD: LD HL,(L0A42) DEC HL LD (L0A42),HL LD A,0 CALL L0860 OR L JP Z,L0743 LD A,(L0A4F) RLCA LD (L0A4F),A RRA JP NC,L071F LD HL,(L0A4A) DEC HL LD (L0A4A),HL L071F: LD A,(L0A4E) INC A LD (L0A4E),A LD C,A LD A,7 CP C JP NC,L06FD LD HL,L0A4E LD (HL),0 LD HL,(L0A44) INC HL LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A JP L06FD L0743: CALL PCRLFM CALL PCRLFM LD HL,(L09CB) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L095E CALL STRCON LD HL,(FUSED) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0970 CALL STRCON LD HL,(FCAP) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L097C CALL STRCON LD HL,(DIRLFT) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0995 CALL STRCON LD HL,(DFILEU) EX DE,HL LD HL,(FCAP) ; FIX FILES REMAINING OR A ; NO CARRY SBC HL,DE EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L09AD CALL STRCON LD DE,L0000 LD C,19H CALL 5 ADD A,'A' LD C,A CALL CHRCON LD BC,MESS2 ; ':',0DH,0AH,0 JP STRCON L07C2: LD L,0CH L07C4: LD A,(DE) AND 7FH LD H,A LD A,(BC) AND 7FH SUB H JP NZ,L07D6 INC DE INC BC DEC L JP NZ,L07C4 RET L07D6: LD A,0FFH RET C LD A,1 RET L07DC: LD HL,L09D3 LD E,0CH L07E1: LD A,(HL) CP '?' JP Z,L07EF LD D,A LD A,(BC) AND 7FH CP D LD A,0 RET NZ L07EF: INC BC INC HL DEC E JP NZ,L07E1 LD A,(L09C7) OR A RET NZ DEC BC DEC BC LD A,(BC) CPL RLCA AND 1 RET ; COUNT FILE PARTS RET COUNT IN HL CTFLPR: LD HL,L0000 LD A,(LGSMFS) OR A JP NZ,L081A LD E,10H L080E: LD A,(BC) OR A JP Z,L0814 INC HL L0814: INC BC DEC E JP NZ,L080E RET L081A: LD E,8 L081C: LD A,(BC) LD D,A INC BC LD A,(BC) OR D JP Z,L0825 INC HL L0825: INC BC DEC E JP NZ,L081C RET L082B: LD C,(HL) INC HL LD B,(HL) LD A,(DE) ADD A,C LD L,A INC DE LD A,(DE) ADC A,B LD H,A RET MULT: LD B,H LD C,L LD HL,L0000 LD A,10H L083D: ADD HL,HL EX DE,HL ADD HL,HL EX DE,HL JP NC,L0845 ADD HL,BC L0845: DEC A JP NZ,L083D RET L084A: ADD HL,HL DEC C JP NZ,L084A RET ; RR HL C TIMES RRCTIM: LD E,(HL) INC HL LD D,(HL) EX DE,HL L0854: LD A,H ; FILL MSB WITH ZERO OR A RRA LD H,A LD A,L RRA LD L,A ; RR C TIMES DEC C JP NZ,L0854 RET L0860: LD E,A LD D,0 L0863: LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET L086A: LD L,C LD H,B LD C,(HL) INC HL LD B,(HL) LD A,(DE) SUB C LD L,A INC DE LD A,(DE) SBC A,B LD H,A RET ; SUB A FROM (DE) RET HL L0877: LD L,A LD H,0 LD A,(DE) SUB L LD L,A INC DE LD A,(DE) SBC A,H LD H,A RET L0882: LD E,A LD D,0 LD A,E SUB (HL) LD E,A LD A,D INC HL SBC A,(HL) LD D,A EX DE,HL RET STRCON: LD A,(BC) CP 0 RET Z PUSH BC LD C,A CALL CHRCON POP BC INC BC JP STRCON CHRCON: LD E,C LD A,(LSTF) OR A JP Z,USECON ; LD C,5 ; TO LST: JP 5 USECON: LD C,2 JP 5 L08A2: POP HL EX (SP),HL L08A4: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L08A4 RET L08AD: POP HL EX (SP),HL LD A,E L08B0: LD (BC),A INC BC DEC L JP NZ,L08B0 RET PTDEC: LD HL,L0A52 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LD HL,(L0A50) PUSH HL LD E,6 LD BC,L0A55 CALL L090B LD (L0A54),A INC A LD (L0A53),A L08D2: LD A,(L0A52) LD HL,L0A53 CP (HL) JP C,L08E8 LD C,' ' CALL CHRCON LD HL,L0A53 INC (HL) JP L08D2 L08E8: LD HL,L0A53 LD (HL),0 L08ED: LD A,(L0A54) DEC A LD HL,L0A53 CP (HL) RET C LD HL,(L0A53) LD H,0 LD BC,L0A55 ADD HL,BC LD C,(HL) CALL CHRCON LD HL,L0A53 INC (HL) JP NZ,L08ED RET L090B: POP HL EX (SP),HL LD D,1 LD A,0 PUSH AF INC SP L0913: DEC E JP Z,L0924 INC D CALL L0930 ADD A,'0' PUSH AF INC SP LD A,L OR H JP NZ,L0913 L0924: LD E,D DEC E L0926: DEC SP POP AF LD (BC),A INC BC DEC D JP NZ,L0926 LD A,E RET L0930: PUSH BC LD BC,MULTKK  XOR A L0935: ADD HL,HL RLA CP C JP C,L093D SUB C INC HL L093D: DEC B JP NZ,L0935 POP BC RET L0943: DB 'File Typ',0 L094F: DB ' Size',0 L0956: DB ' ',0 L095A: DB ' : ',0 L095E: DB ' Files Occupying ',0 L0970: DB ' Kbytes of ',0 L097C: DB ' Kbytes Drive Capacity',0DH,0AH,0 L0995: DB ' Directory Entries and ',0 MESS2: DB ':',0DH,0AH,0 LSTM: DB '>LST: ' LSTF: DB 0 L09AD: DB ' Kbytes Remain on drive ',0 DFILEU: DW 0 ; FIX FILES REMAINING L09C6: DB 0 L09C7: DB 0 L09C8: DB 0 FUSED: DB 0,0 L09CB: DB 0,0 L09CD: DB 0 L09CE: DB 0 L09CF: DB '2' L09D0: DB 'S',0AH DRETCD: DB ':' L09D3: DB 'R' L09D4: DB 0AH,'!S',0AH,0BEH,0DAH,0E8H L09DB: DB 8,0EH,' ',0CDH L09DF: DB 9CH,8 DIRLFT: DB '!S' SUSIZE: DB 0AH,'4' LGSMFS: DB 0C3H FILEPT: DW L08D2 DPBSTO: DW 5321H DB 0AH DPBBLM: DB '6',0 DPBDSM: DW 543AH DPBDRM: DW 3D0AH DPBALO: DB '!S' DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' ' STACK: DB ';',0AH L0A71: DB 0,0,'L0A3B',0,0,0,0,5,0C0H,' ' END !9"2 ! !"w !~>*=# =#/2 ͻ>/ `>!/ ]}2>- o*2 $ D.M.M.Software  : *+"} w !"Return to continue- $!] 6&l ~$> !] /H!] 4:( !6:\":\=_:] 5 ?] :* D!5 6?O 25  6 ] ?\ DMJ ! "[ *Q ##)*[ "Y *M &#͓"A *Q #"C  !A ͙"E >!O 2G \24 :4 :4 ƀo&"H ~o*C +"C *H  DMK*& "& *H DM!o*H DMK *Y q#p*+ "+ . *H #DM*Y -9*H  *Y w*/ #"/ )*[ *Y s#r*Y "Y 24 !j 6!"m */ " >!j *j &k ) ^#V"b O! ^#V"d :j =2j d b ͳҎ*b "^ *d "` *b ͝)*[ ^#V"f ` ^ ͳژ*^ )*[ N#F*f *^ #"^ *` )*[ ^#V*f DM>*` +"` ` ^ ͳ*^ )*[ ^#V"h *` )*[ *^ )*[ N#Fq#p*` )*[ *h s#r*^ #"^ *` +"` b ` ͳ^ d ͳͬd ^ ͳ:j <2j O!k *^ s#r*j & ) *d s#r*` "d þ` b ͳ):j <2j O!k *b s#r*j & ) *` s#r*^ "b þ!" " /  ͳN* "- * #" )*[ * #" )*[ N#Fq#p/  ͳ* )*[ * ) *[ ^#VN#FH;* #" )*[ ^#V"Y  *Y ^#V" * )*[ ^#V"Y *Y  t *Y q#pq!1 6:!1 1 :( / !:1 ' :1 <21 !" ͉a-  ͳ:1 <21 O:o͉!1 6uM-e * )*[ ^#V"Y ! 6> ! ڮ* &*Y >O: <2 Š:( / *Y ^#V*E DM K* " =*O #" " " *S " > :  * +" ! ͙+s#r! 6" * ~2 * #" * +" >ͩʁ: 2 ]* +" : <2 O>;! 6* #" * ~2 ;͉͉*- DM  *+ *E DM  * *E DM  *C DM  *& * R*E DM  AO . g - >>!5  ~?4W > #&:) /!:G c ]#W W n#eN#FogDM!>))Ҏ =†) “^#V|g}o _{ozgi`N#Fogo&og_{_z#W OY:  -{- ! s+p+q*  ` 2 <2 : ! =  ! 4' ! 6: =! * & N! 4B >3y ͅ 03}h Z;{ { )ڒ #Š File Typ Size : Files Occupying Kbytes of Kbytes Drive Capacity Directory Entries and : >LST: Kbytes Remain on drive 2S :R !S  ͜!S 4' !S 6:T =!S * &U NL0400  L0A06X cL08638V L04B4 L04AB L04EB[ 9 L0A39 ; L0A3B NL0400  L0A06X  * +" ! ͙+s#r! 6" * ~2 * #" * +" >ͩʁ: 2 ]* +" : <2 O>;! 6* #" * ~2 ;͉͉*- DM  *+ *E DM  * *E DM  *C DM  *& * R*E DM  AO . g - >>!5  ~?4W > #&:) /!:G c ]#W W n#eN#FogDM!>))Ҏ =†) “^#V|g}o _{ozgi`N#Fogo&og_{_z#W OY:  -TITLE DIRZ1.MAC 04-28-85 20:43:00 .Z80 ASEG ORG 0100H DBUF EQU 80H DFCB EQU 5CH L0000 EQU 00H L0001 EQU 01H L0002 EQU 02H L000B EQU 0BH L000D EQU 0DH L000F EQU 0FH L0010 EQU 10H L005D EQU 5DH L006C EQU 6CH LC22 EQU 16H LC23 EQU 17H MULTKK EQU 100AH LD HL,L0000 ADD HL,SP LD (L09D0),HL LD HL,STACK LD SP,HL LD HL,LC23 LD (LINTCT),HL LD DE,SIGNON LD C,9 CALL 5 ; ; *************************************** ; ; REDIRECT OUTPUT TO LST: IF COMMAND LINE ; CONTAINS sp>LST: ON THE END. ; ; ************************************** ; LD HL,80H LOOP1: LD A,(HL) CP '>' ; DO WE REDIRECT JP Z,REDIR OR A JP Z,NOLST ; NO INC HL JP LOOP1 REDIR: LD DE,LSTM LD B,5 ; MATCH 5 CHAR LOOP2: LD A,(DE) CP (HL) JP NZ,NOLST INC HL INC DE DEC B JP NZ,LOOP2 ; MORE TO CHECK ; LD (LSTF),A ; IF NON ZERO PRINT ; NOLST: ; FILL FCB FROM INPUT CALL L01E2 ; GET DIR ENTRIES & CK FOR MATCH CALL L0292 LD A,0 LD DE,L09CD CALL L0877 OR L JP Z,L013C LD A,1 LD HL,L09CD CALL L0882 JP NC,L0139 CALL L033F L0139: CALL L04F4 L013C: LD A,0 LD DE,L09CB CALL L0877 OR L JP Z,L014B CALL L05B6 L014B: CALL TELSIZ LD HL,(L09D0) LD SP,HL RET SIGNON: DB 0DH,'$ D.M.M.Software' L0164: DB 4 ; PRINT CR LF & MESSAGE IF REQUIRED PCRLFM: LD C,0DH CALL CHRCON LD C,0AH CALL CHRCON LD A,(LSTF) ; PRINT CONTINUE MESS OR A RET NZ ; NO LD HL,(LINTCT) DEC HL LD (LINTCT),HL LD A,L OR H RET NZ LD DE,MESS1 ; PRINT MESSAGE RET TO CONTINUE LD C,9 CALL 5 ; WAIT FOR CHAR FROM CON: LD C,1 CALL 5 AND 7FH ; CH FOR CTRL C CP 3 JP Z,0 ; IF CTRL C EXIT LD DE,SIGNON LD C,9 CALL 5 LD HL,LC22 LD (LINTCT),HL RET LINTCT: DW 0C9D1H MESS1: DB 'Return to continue- $' L01AC: LD HL,L09FB LD (HL),0 L01B1: RET ; CODE FROM HERE TO 1E1 NOT WORKING NOP ; BUT IF REMOVED PROGRAM DOES NOT WORK NOP LD H,0 LD BC,L006C ADD HL,BC LD A,(HL) SUB '$' ADD A,0FFH SBC A,A PUSH AF  LD A,0AH LD HL,L09FB SUB (HL) SBC A,A CPL POP BC LD C,B AND C RRA JP NC,L01D7 L01D0: LD HL,L09FB INC (HL) JP L01B1 L01D7: LD A,(L09C6) RRA RET NC LD HL,L0164 LD (HL),5 RET L01E2: CALL L01AC LD A,(DFCB) CP 0 JP Z,L01F9 LD A,(DFCB) DEC A LD E,A LD D,0 ; SEL DISK LD C,0EH CALL 5 L01F9: LD A,(L005D) CP ' ' JP NZ,L020C LD C,0BH PUSH BC LD E,'?' LD BC,L005D CALL L08AD L020C: LD A,(L09C8) RRA JP NC,L021B L0213: LD HL,L09D3 LD (HL),'?' JP L0226 L021B: LD DE,0FFH ; GET USER # LD C,' ' CALL 5 LD (L09D3),A L0226: LD C,0BH PUSH BC LD DE,L09D4 LD BC,L005D CALL L08A2 LD C,0DH PUSH BC LD E,'?' LD BC,DFCB CALL L08AD LD BC,L000F PUSH BC LD DE,L0000 ; GET DISK PARM BLOCK LD C,1FH CALL 5 LD B,H LD C,L LD DE,DPBSTO ; MOVE DPB CALL L08A2 LD HL,STACK LD (L09F9),HL LD HL,(DPBDRM) INC HL INC HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD (L09F7),HL LD HL,(DPBBLM) LD H,0 INC HL LD C,7 CALL L084A LD (L09DF),HL LD HL,(DPBDRM) INC HL LD (DIRLFT),HL LD C,0AH LD HL,L09DF CALL RRCTIM LD (SUSIZE),HL LD A,0FFH LD HL,DPBDSM CALL L0882 SBC A,A LD (LGSMFS),A RET L0292: LD DE,DFCB LD C,11H CALL 5 LD (DRETCD),A L029D: LD A,(DRETCD) CP 0FFH RET Z LD A,(DRETCD) AND 3 ; MULT BY 32 TO GET FILE NAME ADD A,A ; RETURNED BY CPM ADD A,A ADD A,A ADD A,A ADD A,A ADD A,80H LD L,A LD H,0 LD (FILEPT),HL LD A,(HL) ; ERASED FILE GET NEXT FILE CP 0E5H JP Z,L0331 LD HL,(DIRLFT) DEC HL LD (DIRLFT),HL ; ; ************************************ ; ; FIX FILES REMAINING ; LD HL,(FILEPT) LD BC,10H ADD HL,BC LD B,H LD C,L CALL CTFLPR PUSH HL LD HL,(DFILEU) POP BC ADD HL,BC LD (DFILEU),HL ; ; ********************************** ; LD HL,(FILEPT) LD B,H LD C,L ; DOES FILE MATCH WHAT WE ARE LOOKING FOR CALL L07DC RRA ; NO MATCH JP NC,L0331 LD BC,L0010 LD HL,(FILEPT) ADD HL,BC LD B,H LD C,L CALL CTFLPR LD BC,L000D PUSH HL LD HL,(L09F7) ; GET USER # ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B LD HL,(FUSED) ADD HL,BC LD (FUSED),HL LD L,0BH PUSH HL LD HL,(FILEPT) INC HL LD B,H LD C,L LD HL,(L09F7) EX DE,HL POP HL L02FB: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L02FB LD HL,(FILEPT) LD BC,L000B PUSH HL LD HL,(L09F7) ADD HL,BC POP DE LD A,(DE) LD (HL),A LD HL,(L09CD) INC HL LD (L09CD),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09F7) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD DE,L0010 LD HL,(L09F7) ADD HL,DE LD (L09F7),HL L0331: LD DE,L0000 LD C,12H CALL 5 LD (DRETCD),A JP L029D L033F: LD HL,L0A08 LD (HL),1 LD HL,L0001 LD (L0A0B),HL LD HL,(L09CD) LD (L0A23),HL L0350: LD A,0 LD HL,L0A08 CP (HL) RET NC LD HL,(L0A08) LD H,0 LD BC,L0A09 ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A00),HL DEC BC LD A,(BC) LD C,A LD B,0 LD HL,L0A21 ADD HL,BC ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A02),HL LD A,(L0A08) DEC A LD (L0A08),A L0380: LD BC,L0A02 LD DE,L0A00 CALL L086A JP NC,L0350 LD HL,(L0A00) LD (L09FC),HL LD HL,(L0A02) LD (L09FE),HL EX DE,HL LD HL,(L0A00) ADD HL,DE LD C,1 CALL L0854 ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A04),HL L03AF: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L045A L03BB: LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD C,(HL) INC HL LD B,(HL) LD HL,(L0A04) EX DE,HL CALL L07C2 CP 0FFH JP NZ,L03DD LD HL,(L09FC) INC HL LD (L09FC),HL JP L03BB L03DD: LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(L0A04) LD B,H LD C,L CALL L07C2 CP 0FFH JP NZ,L0400 LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03DD L0400: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L03AF LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A06),HL LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A06) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L09FC) INC HL LD (L09FC),HL LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03AF L045A: LD BC,L0A00 LD DE,L09FE CALL L086A LD BC,L09FC LD DE,L0A02 PUSH HL CALL L086A POP DE CALL L0863 JP NC,L04B4 LD BC,L0A02 LD DE,L09FC CALL L086A JP NC,L04AB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L09FC) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08)  LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L0A02) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04AB: LD HL,(L09FE) LD (L0A02),HL JP L0380 L04B4: LD BC,L09FE LD DE,L0A00 CALL L086A JP NC,L04EB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L0A00) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L09FE) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04EB: LD HL,(L09FC) LD (L0A00),HL JP L0380 L04F4: LD HL,L0000 LD (L0A39),HL LD (L0A3B),HL L04FD: LD BC,L09CD LD DE,L0A3B CALL L086A JP C,L0510 LD HL,(L0A39) LD (L09CB),HL RET L0510: LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A39) INC HL LD (L0A39),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL  LD (HL),C INC HL LD (HL),B L0533: LD BC,L09CD LD DE,L0A3B CALL L086A SBC A,A PUSH AF LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A3B) LD BC,L0002 ADD HL,HL ADD HL,BC EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) POP HL LD C,(HL) INC HL LD B,(HL) CALL L07C2 SUB 0 SUB 1 SBC A,A POP BC LD C,B AND C RRA JP NC,L04FD LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A3D),HL LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,(L09F7) ADD HL,BC LD DE,L0A3D CALL L082B LD BC,L000D PUSH HL LD HL,(L09F7) ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B JP L0533 L05B6: LD HL,L09CF LD (HL),1 L05BB: LD A,(L0164) LD HL,L09CF CP (HL) JP C,L05F3 LD BC,L0943 CALL STRCON LD A,(L09C6) CPL RRA JP NC,L05D9 LD BC,L094F CALL STRCON L05D9: LD HL,L0164 LD A,(L09CF) CP (HL) JP NC,L05E9 LD BC,L0956 CALL STRCON L05E9: LD A,(L09CF) INC A LD (L09CF),A JP NZ,L05BB L05F3: LD HL,L0001 LD (L0A3F),HL CALL PCRLFM CALL L0623 L05FF: LD DE,L09CB LD BC,L0A3F CALL L086A RET C LD A,(L09CF) INC A LD (L09CF),A LD C,A LD A,(L0164) CP C JP NC,L0631 CALL PCRLFM LD HL,L09CF LD (HL),1 JP L0637 L0623: LD B,'M' LD C,'-' L0627: PUSH BC CALL CHRCON POP BC DEC B JP NZ,L0627 RET L0631: LD BC,L095A CALL STRCON L0637: LD HL,(L0A3F) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,L0A41 LD (HL),0 L064C: LD A,0AH LD HL,L0A41 CP (HL) JP C,L0670 LD HL,(L0A41) LD H,0 EX DE,HL LD HL,(L09F7) ADD HL,DE LD A,7FH AND (HL) LD C,A CALL CHRCON LD A,(L0A41) INC A LD (L0A41),A JP NZ,L064C L0670: LD A,(L09C6) CPL RRA JP NC,L0694 LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,5 CALL PTDEC LD C,'K' CALL CHRCON L0694: LD DE,L0001 LD HL,(L0A3F) ADD HL,DE LD (L0A3F),HL JP NC,L05FF RET TELSIZ: LD HL,(DPBDSM) INC HL LD (FCAP),HL LD (L0A4A),HL LD (L0A4C),HL LD HL,(DPBALO) ; DIR RESERVED BLOCKS LD (AL0AL1),HL L06B5: LD A,0 LD DE,AL0AL1 CALL L0877 OR L ; IF NO DIR SPACE USED JP Z,L06DF LD A,(AL0AL1) RRA JP NC,L06CF LD HL,(FCAP) DEC HL LD (FCAP),HL L06CF: LD C,1 LD HL,AL0AL1 CALL RRCTIM EX DE,HL DEC HL LD (HL),E INC HL LD (HL),D JP L06B5 L06DF: LD HL,L0A4E LD (HL),0 LD DE,L0000 LD C,1BH CALL 5 LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A LD HL,(L0A4C) INC HL LD (L0A42),HL L06FD: LD HL,(L0A42) DEC HL LD (L0A42),HL LD A,0 CALL L0860 OR L JP Z,L0743 LD A,(L0A4F) RLCA LD (L0A4F),A RRA JP NC,L071F LD HL,(L0A4A) DEC HL LD (L0A4A),HL L071F: LD A,(L0A4E) INC A LD (L0A4E),A LD C,A LD A,7 CP C JP NC,L06FD LD HL,L0A4E LD (HL),0 LD HL,(L0A44) INC HL LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A JP L06FD L0743: CALL PCRLFM CALL PCRLFM LD HL,(L09CB) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L095E CALL STRCON LD HL,(FUSED) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0970 CALL STRCON LD HL,(FCAP) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L097C CALL STRCON LD HL,(DIRLFT) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0995 CALL STRCON LD HL,(DFILEU) EX DE,HL LD HL,(FCAP) ; FIX FILES REMAINING OR A ; NO CARRY SBC HL,DE EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L09AD CALL STRCON LD DE,L0000 LD C,19H CALL 5 ADD A,'A' LD C,A CALL CHRCON LD BC,MESS2 ; ':',0DH,0AH,0 JP STRCON L07C2: LD L,0CH L07C4: LD A,(DE) AND 7FH LD H,A LD A,(BC) AND 7FH SUB H JP NZ,L07D6 INC DE INC BC DEC L JP NZ,L07C4 RET L07D6: LD A,0FFH RET C LD A,1 RET L07DC: ; ENTER WITH BC POINTING TO ENTRY LD HL,L09D3 ; HL = ADDRESS OF MATCH STRING LD E,0CH ; DO USER FN FT L07E1: LD A,(HL) CP '?' JP Z,L07EF LD D,A LD A,(BC) AND 7FH CP D LD A,0 RET NZ L07EF: LD A,(BC) ; MASK MSB OF FILE AND 7FH ; SO WE CAN SEE IT LD (BC),A ; IF IT HAS MSB SET INC BC INC HL DEC E JP NZ,L07E1 LD A,(L09C7) OR A RET NZ DEC BC DEC BC LD A,(BC) CPL RLCA AND 1 RET ; COUNT FILE PARTS RET COUNT IN HL CTFLPR: LD HL,L0000 LD A,(LGSMFS) OR A JP NZ,L081A LD E,10H L080E: LD A,(BC) OR A JP Z,L0814 INC HL L0814: INC BC DEC E JP NZ,L080E RET L081A: LD E,8 L081C: LD A,(BC) LD D,A INC BC LD A,(BC) OR D JP Z,L0825 INC HL L0825: INC BC DEC E JP NZ,L081C RET L082B: LD C,(HL) INC HL LD B,(HL) LD A,(DE) ADD A,C LD L,A INC DE LD A,(DE) ADC A,B LD H,A RET MULT: LD B,H LD C,L LD HL,L0000 LD A,10H L083D: ADD HL,HL EX DE,HL ADD HL,HL EX DE,HL JP NC,L0845 ADD HL,BC L0845: DEC A JP NZ,L083D RET L084A: ADD HL,HL DEC C JP NZ,L084A RET ; RR HL C TIMES RRCTIM: LD E,(HL) INC HL LD D,(HL) EX DE,HL L0854: LD A,H ; FILL MSB WITH ZERO OR A RRA LD H,A LD A,L RRA LD L,A ; RR C TIMES DEC C JP NZ,L0854 RET L0860: LD E,A LD D,0 L0863: LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET L086A: LD L,C LD H,B LD C,(HL) INC HL LD B,(HL) LD A,(DE) SUB C LD L,A INC DE LD A,(DE) SBC A,B LD H,A RET ; SUB A FROM (DE) RET HL L0877: LD L,A LD H,0 LD A,(DE) SUB L LD L,A INC DE LD A,(DE) SBC A,H LD H,A RET L0882: LD E,A LD D,0 LD A,E SUB (HL) LD E,A LD A,D INC HL SBC A,(HL) LD D,A EX DE,HL  RET STRCON: LD A,(BC) CP 0 RET Z PUSH BC LD C,A CALL CHRCON POP BC INC BC JP STRCON CHRCON: LD E,C LD A,(LSTF) OR A JP Z,USECON ; LD C,5 ; TO LST: JP 5 USECON: LD C,2 JP 5 L08A2: POP HL EX (SP),HL L08A4: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L08A4 RET L08AD: POP HL EX (SP),HL LD A,E L08B0: LD (BC),A INC BC DEC L JP NZ,L08B0 RET PTDEC: LD HL,L0A52 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LD HL,(L0A50) PUSH HL LD E,6 LD BC,L0A55 CALL L090B LD (L0A54),A INC A LD (L0A53),A L08D2: LD A,(L0A52) LD HL,L0A53 CP (HL) JP C,L08E8 LD C,' ' CALL CHRCON LD HL,L0A53 INC (HL) JP L08D2 L08E8: LD HL,L0A53 LD (HL),0 L08ED: LD A,(L0A54) DEC A LD HL,L0A53 CP (HL) RET C LD HL,(L0A53) LD H,0 LD BC,L0A55 ADD HL,BC LD C,(HL) CALL CHRCON LD HL,L0A53 INC (HL) JP NZ,L08ED RET L090B: POP HL EX (SP),HL LD D,1 LD A,0 PUSH AF INC SP L0913: DEC E JP Z,L0924 INC D CALL L0930 ADD A,'0' PUSH AF INC SP LD A,L OR H JP NZ,L0913 L0924: LD E,D DEC E L0926: DEC SP POP AF LD (BC),A INC BC DEC D JP NZ,L0926 LD A,E RET L0930: PUSH BC LD BC,MULTKK XOR A L0935: ADD HL,HL RLA CP C JP C,L093D SUB C INC HL L093D: DEC B JP NZ,L0935 POP BC RET L0943: DB 'File Typ',0 L094F: DB ' Size',0 L0956: DB ' ',0 L095A: DB ' : ',0 L095E: DB ' Files Occupying ',0 L0970: DB ' Kbytes of ',0 L097C: DB ' Kbytes Drive Capacity',0DH,0AH,0 L0995: DB ' Directory Entries and ',0 MESS2: DB ':',0DH,0AH,0 LSTM: DB '>LST: ' LSTF: DB 0 L09AD: DB ' Kbytes Remain on drive ',0 DFILEU: DW 0 ; FIX FILES REMAINING L09C6: DB 0 L09C7: DB 0 L09C8: DB 0 FUSED: DB 0,0 L09CB: DB 0,0 L09CD: DB 0 L09CE: DB 0 L09CF: DB '2' L09D0: DB 'S',0AH DRETCD: DB ':' L09D3: DB 'R' L09D4: DB 0AH,'!S',0AH,0BEH,0DAH,0E8H L09DB: DB 8,0EH,' ',0CDH L09DF: DB 9CH,8 DIRLFT: DB '!S' SUSIZE: DB 0AH,'4' LGSMFS: DB 0C3H FILEPT: DW L08D2 DPBSTO: DW 5321H DB 0AH DPBBLM: DB '6',0 DPBDSM: DW 543AH DPBDRM: DW 3D0AH DPBALO: DB '!S' DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9'  DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' ' STACK: DB ';',0AH L0A71: DB 0,0,'L0A3B',0,0,0,0,5,0C0H,' ' END L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' !9"6 ! !"w !~>*=# =#/2 >3 `>!3 ]̈́9>1 o*6 $ D.M.M.Software  : *+"} w !"Return to continue- $!a 6&l ~$> !a /H!a 4:, !6:\):\=_:] < ?] :. K!9 6?V 29  : ] ?\ DMN ! "_ *U ##)*_ "] *Q &#͗"E *U #"G  !E ͝"I >!S 2K \28 :8 :8 ƀo&"L ~v*G +"G *L  DMO** "* *L DM(v*L DMO *] q#p*/ "/ . *L #DM*] -@*L  *] w*3 #"3 )*_ *] s#r*] "] 28 !n 6!"q *3 " >!n *n &o ) ^#V"f O! ^#V"h :n =2n h f ͷҕ*f "b *h "d *f ͡)*_ ^#V"j d b ͷڟ*b )*_ N#F*j "*b #"b *d )*_ ^#V*j DME*d +"d "d b ͷ*b )*_ ^#V"l *d )*_ *b )*_ N#Fq#p*d )*_ *l s#r*b #"b *d +"d f d ͷb h ͷͰh b ͷ:n <2n O!o *b s#r*n & ) *h s#r*d "h d f 0:n <2n O!o *f s#r*n & ) *d s#r*b "f !" " 3  ͷU* "1 * #" )*_ * #" )*_ N#Fq#p3  ͷ* )*_ * ) *_ ^#VN#FHB* #" )*_ ^#V"]  *] ^#V" * )*_ ^#V"] *]  x *] q#px!5 6:!5 8 :, / !:5 . :5 <25 !" ͉h1  ͷ:5 <25 O:v͉!5 6|M-l * )*_ ^#V"] ! 6> ! ڵ* &*] >O: <2 ‘:, / *] ^#V*I ̓DM K* " D*S #" " " *W " > $: * +" ! ͝+s#r! 6" * ~2 * #" * +" >ͭʈ: 2 d* +" : <2 O>B! 6* #" * ~2 B͉͉*1 DM  */ *I ̓DM  * *I ̓DM  *G DM  ** * R*I ̓DM  AO . g "->>!9  ~?<W >#-:- /!:K g a#[ W r#iN#FogDM!>))Ғ =Š) —^#V|g}o ¡_{ozgi`N#Fogo&og_{_z#W OY:  -{- ! s+p+q*  d 2 <2 : ! A  ! 4+ ! 6: =! * & N! 4F >3} ͉ 03}l Z; { )ږ #Ž File Typ Size : Files Occupying Kbytes of Kbytes Drive Capacity Directory Entries and : >LST: Kbytes Remain on drive 2S :R !S  ͜!S 4+ !S 6:T =!S * &U NL0400  L0A06X cL08638V L04B4 L04AB L04EB[ 9 L0A39 ; L0A3B NL0400  L0A06X$: * +" ! ͝+s#r! 6" * ~2 * #" * +" >ͭʈ: 2 d* +" : <2 O>B! 6* #" * ~2 B͉͉*1 DM  */ *I ̓DM  * *I ̓DM  *G DM  ** * R*I ̓DM  AO . g "->>!9  ~?<W >#-:- /!:K g a#[ W r#iN#FogDM!>))Ғ =Š) —^#V|g}o ¡_{ozgi`N#Fogo&og_{_z#W OY:  TITLE DIRZ2.MAC 04-28-85 21:03:00 .Z80 ASEG ORG 0100H DBUF EQU 80H DFCB EQU 5CH L0000 EQU 00H L0001 EQU 01H L0002 EQU 02H L000B EQU 0BH L000D EQU 0DH L000F EQU 0FH L0010 EQU 10H L005D EQU 5DH L006C EQU 6CH LC22 EQU 16H LC23 EQU 17H MULTKK EQU 100AH LD HL,L0000 ADD HL,SP LD (L09D0),HL LD HL,STACK LD SP,HL LD HL,LC23 LD (LINTCT),HL LD DE,SIGNON LD C,9 CALL 5 ; ; *************************************** ; ; REDIRECT OUTPUT TO LST: IF COMMAND LINE ; CONTAINS sp>LST: ON THE END. ; ; ************************************** ; LD HL,80H LOOP1: LD A,(HL) CP '>' ; DO WE REDIRECT JP Z,REDIR OR A JP Z,NOLST ; NO INC HL JP LOOP1 REDIR: LD DE,LSTM LD B,5 ; MATCH 5 CHAR LOOP2: LD A,(DE) CP (HL) JP NZ,NOLST INC HL INC DE DEC B JP NZ,LOOP2 ; MORE TO CHECK ; LD (LSTF),A ; IF NON ZERO PRINT ; NOLST: ; FILL FCB FROM INPUT CALL L01E2 ; GET DIR ENTRIES & CK FOR MATCH CALL L0292 LD A,0 LD DE,L09CD CALL L0877 OR L JP Z,L013C LD A,1 LD HL,L09CD CALL L0882 JP NC,L0139 CALL L033F L0139: CALL L04F4 L013C: LD A,0 LD DE,L09CB CALL L0877 OR L JP Z,L014B CALL L05B6 L014B: CALL TELSIZ LD HL,(L09D0) LD SP,HL RET SIGNON: DB 0DH,'$ D.M.M.Software' L0164: DB 4 ; PRINT CR LF & MESSAGE IF REQUIRED PCRLFM: LD C,0DH CALL CHRCON LD C,0AH CALL CHRCON LD A,(LSTF) ; PRINT CONTINUE MESS OR A RET NZ ; NO LD HL,(LINTCT) DEC HL LD (LINTCT),HL LD A,L OR H RET NZ LD DE,MESS1 ; PRINT MESSAGE RET TO CONTINUE LD C,9 CALL 5 ; WAIT FOR CHAR FROM CON: LD C,1 CALL 5 AND 7FH ; CH FOR CTRL C CP 3 JP Z,0 ; IF CTRL C EXIT LD DE,SIGNON LD C,9 CALL 5 LD HL,LC22 LD (LINTCT),HL RET LINTCT: DW 0C9D1H MESS1: DB 'Return to continue- $' L01AC: LD HL,L09FB LD (HL),0 L01B1: RET ; CODE FROM HERE TO 1E1 NOT WORKING NOP ; BUT IF REMOVED PROGRAM DOES NOT WORK NOP LD H,0 LD BC,L006C ADD HL,BC LD A,(HL) SUB '$' ADD A,0FFH SBC A,A PUSH AF  LD A,0AH LD HL,L09FB SUB (HL) SBC A,A CPL POP BC LD C,B AND C RRA JP NC,L01D7 L01D0: LD HL,L09FB INC (HL) JP L01B1 L01D7: LD A,(L09C6) RRA RET NC LD HL,L0164 LD (HL),5 RET L01E2: CALL L01AC LD A,(DFCB) CP 0 JP Z,L01F9 LD A,(DFCB) DEC A LD E,A LD D,0 ; SEL DISK LD C,0EH CALL 5 L01F9: LD A,(L005D) CP ' ' JP NZ,L020C LD C,0BH PUSH BC LD E,'?' LD BC,L005D CALL L08AD L020C: LD A,(L09C8) RRA JP NC,L021B L0213: LD HL,L09D3 LD (HL),'?' JP L0226 L021B: LD DE,0FFH ; GET USER # LD C,' ' CALL 5 LD (L09D3),A L0226: LD C,0BH PUSH BC LD DE,L09D4 LD BC,L005D CALL L08A2 LD C,0DH PUSH BC LD E,'?' LD BC,DFCB CALL L08AD LD BC,L000F PUSH BC LD DE,L0000 ; GET DISK PARM BLOCK LD C,1FH CALL 5 LD B,H LD C,L LD DE,DPBSTO ; MOVE DPB CALL L08A2 LD HL,STACK LD (L09F9),HL LD HL,(DPBDRM) INC HL INC HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD (L09F7),HL LD HL,(DPBBLM) LD H,0 INC HL LD C,7 CALL L084A LD (L09DF),HL LD HL,(DPBDRM) INC HL LD (DIRLFT),HL LD C,0AH LD HL,L09DF CALL RRCTIM LD (SUSIZE),HL LD A,0FFH LD HL,DPBDSM CALL L0882 SBC A,A LD (LGSMFS),A RET L0292: LD DE,DFCB LD C,11H CALL 5 LD (DRETCD),A L029D: LD A,(DRETCD) CP 0FFH RET Z LD A,(DRETCD) AND 3 ; MULT BY 32 TO GET FILE NAME ADD A,A ; RETURNED BY CPM ADD A,A ADD A,A ADD A,A ADD A,A ADD A,80H LD L,A LD H,0 LD (FILEPT),HL LD A,(HL) ; ERASED FILE GET NEXT FILE CP 0E5H JP Z,L0331 LD HL,(DIRLFT) DEC HL LD (DIRLFT),HL ; ; ************************************ ; ; FIX FILES REMAINING ; LD HL,(FILEPT) LD BC,10H ADD HL,BC LD B,H LD C,L CALL CTFLPR PUSH HL LD HL,(DFILEU) POP BC ADD HL,BC LD (DFILEU),HL ; ; ********************************** ; LD HL,(FILEPT) LD B,H LD C,L ; DOES FILE MATCH WHAT WE ARE LOOKING FOR CALL L07DC RRA ; NO MATCH JP NC,L0331 LD BC,L0010 LD HL,(FILEPT) ADD HL,BC LD B,H LD C,L CALL CTFLPR LD BC,L000D PUSH HL LD HL,(L09F7) ; GET USER # ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B LD HL,(FUSED) ADD HL,BC LD (FUSED),HL LD L,0BH PUSH HL LD HL,(FILEPT) INC HL LD B,H LD C,L LD HL,(L09F7) EX DE,HL POP HL L02FB: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L02FB LD HL,(FILEPT) LD BC,L000B PUSH HL LD HL,(L09F7) ADD HL,BC POP DE LD A,(DE) LD (HL),A LD HL,(L09CD) INC HL LD (L09CD),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09F7) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD DE,L0010 LD HL,(L09F7) ADD HL,DE LD (L09F7),HL L0331: LD DE,L0000 LD C,12H CALL 5 LD (DRETCD),A JP L029D L033F: LD HL,L0A08 LD (HL),1 LD HL,L0001 LD (L0A0B),HL LD HL,(L09CD) LD (L0A23),HL L0350: LD A,0 LD HL,L0A08 CP (HL) RET NC LD HL,(L0A08) LD H,0 LD BC,L0A09 ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A00),HL DEC BC LD A,(BC) LD C,A LD B,0 LD HL,L0A21 ADD HL,BC ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A02),HL LD A,(L0A08) DEC A LD (L0A08),A L0380: LD BC,L0A02 LD DE,L0A00 CALL L086A JP NC,L0350 LD HL,(L0A00) LD (L09FC),HL LD HL,(L0A02) LD (L09FE),HL EX DE,HL LD HL,(L0A00) ADD HL,DE LD C,1 CALL L0854 ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A04),HL L03AF: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L045A L03BB: LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD C,(HL) INC HL LD B,(HL) LD HL,(L0A04) EX DE,HL CALL L07C2 CP 0FFH JP NZ,L03DD LD HL,(L09FC) INC HL LD (L09FC),HL JP L03BB L03DD: LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(L0A04) LD B,H LD C,L CALL L07C2 CP 0FFH JP NZ,L0400 LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03DD L0400: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L03AF LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A06),HL LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A06) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L09FC) INC HL LD (L09FC),HL LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03AF L045A: LD BC,L0A00 LD DE,L09FE CALL L086A LD BC,L09FC LD DE,L0A02 PUSH HL CALL L086A POP DE CALL L0863 JP NC,L04B4 LD BC,L0A02 LD DE,L09FC CALL L086A JP NC,L04AB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L09FC) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08)  LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L0A02) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04AB: LD HL,(L09FE) LD (L0A02),HL JP L0380 L04B4: LD BC,L09FE LD DE,L0A00 CALL L086A JP NC,L04EB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L0A00) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L09FE) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04EB: LD HL,(L09FC) LD (L0A00),HL JP L0380 L04F4: LD HL,L0000 LD (L0A39),HL LD (L0A3B),HL L04FD: LD BC,L09CD LD DE,L0A3B CALL L086A JP C,L0510 LD HL,(L0A39) LD (L09CB),HL RET L0510: LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A39) INC HL LD (L0A39),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL  LD (HL),C INC HL LD (HL),B L0533: LD BC,L09CD LD DE,L0A3B CALL L086A SBC A,A PUSH AF LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A3B) LD BC,L0002 ADD HL,HL ADD HL,BC EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) POP HL LD C,(HL) INC HL LD B,(HL) CALL L07C2 SUB 0 SUB 1 SBC A,A POP BC LD C,B AND C RRA JP NC,L04FD LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A3D),HL LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,(L09F7) ADD HL,BC LD DE,L0A3D CALL L082B LD BC,L000D PUSH HL LD HL,(L09F7) ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B JP L0533 L05B6: LD HL,L09CF LD (HL),1 L05BB: LD A,(L0164) LD HL,L09CF CP (HL) JP C,L05F3 LD BC,L0943 CALL STRCON LD A,(L09C6) CPL RRA JP NC,L05D9 LD BC,L094F CALL STRCON L05D9: LD HL,L0164 LD A,(L09CF) CP (HL) JP NC,L05E9 LD BC,L0956 CALL STRCON L05E9: LD A,(L09CF) INC A LD (L09CF),A JP NZ,L05BB L05F3: LD HL,L0001 LD (L0A3F),HL CALL PCRLFM CALL L0623 L05FF: LD DE,L09CB LD BC,L0A3F CALL L086A RET C LD A,(L09CF) INC A LD (L09CF),A LD C,A LD A,(L0164) CP C JP NC,L0631 CALL PCRLFM LD HL,L09CF LD (HL),1 JP L0637 L0623: LD B,'M' LD C,'-' L0627: PUSH BC CALL CHRCON POP BC DEC B JP NZ,L0627 RET L0631: LD BC,L095A CALL STRCON L0637: LD HL,(L0A3F) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,L0A41 LD (HL),0 L064C: LD A,0AH LD HL,L0A41 CP (HL) JP C,L0670 LD HL,(L0A41) LD H,0 EX DE,HL LD HL,(L09F7) ADD HL,DE LD A,7FH AND (HL) LD C,A CALL CHRCON LD A, (L0A41) INC A LD (L0A41),A JP NZ,L064C L0670: LD A,(L09C6) CPL RRA JP NC,L0694 LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,5 CALL PTDEC LD C,'K' CALL CHRCON L0694: LD DE,L0001 LD HL,(L0A3F) ADD HL,DE LD (L0A3F),HL JP NC,L05FF RET TELSIZ: LD HL,(DPBDSM) INC HL LD (FCAP),HL LD (L0A4A),HL LD (L0A4C),HL LD HL,(DPBALO) ; DIR RESERVED BLOCKS LD (AL0AL1),HL L06B5: LD A,0 LD DE,AL0AL1 CALL L0877 OR L ; IF NO DIR SPACE USED JP Z,L06DF LD A,(AL0AL1) RRA JP NC,L06CF LD HL,(FCAP) DEC HL LD (FCAP),HL L06CF: LD C,1 LD HL,AL0AL1 CALL RRCTIM EX DE,HL DEC HL LD (HL),E INC HL LD (HL),D JP L06B5 L06DF: LD HL,L0A4E LD (HL),0 LD DE,L0000 LD C,1BH CALL 5 LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A LD HL,(L0A4C) INC HL LD (L0A42),HL L06FD: LD HL,(L0A42) DEC HL LD (L0A42),HL LD A,0 CALL L0860 OR L JP Z,L0743 LD A,(L0A4F) RLCA LD (L0A4F),A RRA JP NC,L071F LD HL,(L0A4A) DEC HL LD (L0A4A),HL L071F: LD A,(L0A4E) INC A LD (L0A4E),A LD C,A LD A,7 CP C JP NC,L06FD LD HL,L0A4E LD (HL),0 LD HL,(L0A44) INC HL LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A JP L06FD L0743: CALL PCRLFM CALL PCRLFM LD HL,(L09CB) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L095E CALL STRCON LD HL,(FUSED) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0970 CALL STRCON LD HL,(FCAP) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L097C CALL STRCON LD HL,(DIRLFT) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0995 CALL STRCON LD HL,(DFILEU) EX DE,HL LD HL,(FCAP) ; FIX FILES REMAINING OR A ; NO CARRY SBC HL,DE EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L09AD CALL STRCON LD DE,L0000 LD C,19H CALL 5 ADD A,'A' LD C,A CALL CHRCON LD BC,MESS2 ; ':',0DH,0AH,0 JP STRCON L07C2: LD L,0CH L07C4: LD A,(DE) AND 7FH LD H,A LD A,(BC) AND 7FH SUB H JP NZ,L07D6 INC DE INC BC DEC L JP NZ,L07C4 RET L07D6: LD A,0FFH RET C LD A,1 RET L07DC: ; ENTER WITH BC POINTING TO ENTRY LD HL,L09D3 ; HL = ADDRESS OF MATCH STRING LD E,0CH ; DO USER FN FT L07E1: LD A,(HL) CP '?' JP Z,L07EF LD D,A LD A,(BC) AND 7FH LD (BC),A ; SEE SYS FILES CP D LD A,0 RET NZ L07EF: INC BC INC HL DEC E JP NZ,L07E1 LD A,(L09C7) OR A RET NZ DEC BC DEC BC LD A,(BC) CPL RLCA AND 1 RET ; COUNT FILE PARTS RET COUNT IN HL CTFLPR: LD HL,L0000 LD A,(LGSMFS) OR A JP NZ,L081A LD E,10H L080E: LD A,(BC) OR A JP Z,L0814 INC HL L0814: INC BC DEC E JP NZ,L080E RET L081A: LD E,8 L081C: LD A,(BC) LD D,A INC BC LD A,(BC) OR D JP Z,L0825 INC HL L0825: INC BC DEC E JP NZ,L081C RET L082B: LD C,(HL) INC HL LD B,(HL) LD A,(DE) ADD A,C LD L,A INC DE LD A,(DE) ADC A,B LD H,A RET MULT: LD B,H LD C,L LD HL,L0000 LD A,10H L083D: ADD HL,HL EX DE,HL ADD HL,HL EX DE,HL JP NC,L0845 ADD HL,BC L0845: DEC A JP NZ,L083D RET L084A: ADD HL,HL DEC C JP NZ,L084A RET ; RR HL C TIMES RRCTIM: LD E,(HL) INC HL LD D,(HL) EX DE,HL L0854: LD A,H ; FILL MSB WITH ZERO OR A RRA LD H,A LD A,L RRA LD L,A ; RR C TIMES DEC C JP NZ,L0854 RET L0860: LD E,A LD D,0 L0863: LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET L086A: LD L,C LD H,B LD C,(HL) INC HL LD B,(HL) LD A,(DE) SUB C LD L,A INC DE LD A,(DE) SBC A,B LD H,A RET ; SUB A FROM (DE) RET HL L0877: LD L,A LD H,0 LD A,(DE) SUB L LD L,A INC DE LD A,(DE) SBC A,H LD H,A RET L0882: LD E,A LD D,0 LD A,E SUB (HL) LD E,A LD A,D INC HL SBC A,(HL) LD D,A EX DE,HL RET STRCON: LD A,(BC) CP 0 RET Z PUSH BC LD C,A CALL CHRCON POP BC INC BC JP STRCON CHRCON: LD E,C LD A,(LSTF) OR A JP Z,USECON ; LD C,5 ; TO LST: JP 5 USECON: LD C,2 JP 5 L08A2: POP HL EX (SP),HL L08A4: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L08A4 RET L08AD: POP HL EX (SP),HL LD A,E L08B0: LD (BC),A INC BC DEC L JP NZ,L08B0 RET PTDEC: LD HL,L0A52 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LD HL,(L0A50) PUSH HL LD E,6 LD BC,L0A55 CALL L090B LD (L0A54),A INC A LD (L0A53),A L08D2: LD A,(L0A52) LD HL,L0A53 CP (HL) JP C,L08E8 LD C,' ' CALL CHRCON LD HL,L0A53 INC (HL) JP L08D2 L08E8: LD HL,L0A53 LD (HL),0 L08ED: LD A,(L0A54) DEC A LD HL,L0A53 CP (HL) RET C LD HL,(L0A53) LD H,0 LD BC,L0A55 ADD HL,BC LD C,(HL) CALL CHRCON LD HL,L0A53 INC (HL) JP NZ,L08ED RET L090B: POP HL EX (SP),HL LD D,1 LD A,0 PUSH AF INC SP L0913: DEC E JP Z,L0924 INC D CALL L0930 ADD A,'0' PUSH AF INC SP  LD A,L OR H JP NZ,L0913 L0924: LD E,D DEC E L0926: DEC SP POP AF LD (BC),A INC BC DEC D JP NZ,L0926 LD A,E RET L0930: PUSH BC LD BC,MULTKK XOR A L0935: ADD HL,HL RLA CP C JP C,L093D SUB C INC HL L093D: DEC B JP NZ,L0935 POP BC RET L0943: DB 'File Typ',0 L094F: DB ' Size',0 L0956: DB ' ',0 L095A: DB ' : ',0 L095E: DB ' Files Occupying ',0 L0970: DB ' Kbytes of ',0 L097C: DB ' Kbytes Drive Capacity',0DH,0AH,0 L0995: DB ' Directory Entries and ',0 MESS2: DB ':',0DH,0AH,0 LSTM: DB '>LST: ' LSTF: DB 0 L09AD: DB ' Kbytes Remain on drive ',0 DFILEU: DW 0 ; FIX FILES REMAINING L09C6: DB 0 L09C7: DB 0 L09C8: DB 0 FUSED: DB 0,0 L09CB: DB 0,0 L09CD: DB 0 L09CE: DB 0 L09CF: DB '2' L09D0: DB 'S',0AH DRETCD: DB ':' L09D3: DB 'R' L09D4: DB 0AH,'!S',0AH,0BEH,0DAH,0E8H L09DB: DB 8,0EH,' ',0CDH L09DF: DB 9CH,8 DIRLFT: DB '!S' SUSIZE: DB 0AH,'4' LGSMFS: DB 0C3H FILEPT: DW L08D2 DPBSTO: DW 5321H DB 0AH DPBBLM: DB '6',0 DPBDSM: DW 543AH DPBDRM: DW 3D0AH DPBALO: DB '!S' DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' ' STACK: DB ';',0AH L0A71: DB 0,0,'L0A3B',0,0,0,0,5,0C0H,' ' END  DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' '!9"K ! !"w !~>*=# =#/2% >H `>!H ]̈́9>F o*K $ D.M.M.Software  :% *+"} w !"Return to continue- $!v 6&l ~$> !v /H!v 4:A !6:\):\=_:] < ?] :C K!N 6?V 2N  O ]  ?\ DMc  ! "t *j ##)*t "r *f &#ͬ"Z *j #"\  !Z Ͳ"^ >!h 2` \2M :M :M ƀo&"a ~v*\ +"\ *a  DMd*? "? *a DM(v*a DMd *r q#p*D "D . *a #DM*r -@*a  *r w*H #"H )*t *r s#r*r "r 2M ! 6!" *H " >! * & ) ^#V"{ O! ^#V"} : =2 } { ҕ*{ "w *} "y *{ Ͷ)*t ^#V" y w ڟ*w )*t N#F* "*w #"w *y )*t ^#V* DME*y +"y "y w *w )*t ^#V" *y )*t *w )*t N#Fq#p*y )*t * s#r*w #"w *y +"y { y w } } w : <2 O! *w s#r* & ) *} s#r*y "} y { 0: <2 O! *{ s#r* & ) *y s#r*w "{ !" " H  U* "F * #" )*t * #" )*t N#Fq#pH  * )*t * ) *t ^#VN#FHB* #" )*t ^#V"r  *r ^#V" * )*t ^#V"r *r  ͍ *r q#px!J 6:!J 8 :A / !:J . :J <2J !" ͉hF  :J <2J O:v͉!J 6|M-l * )*t ^#V"r ! 6> ! ڵ* &*r >O: <2 ‘:A / *r ^#V*^ ͘DM% K* " D*h #" " " *l " > $: * +" ! Ͳ+s#r! 6" * ~2 * #" * +" >ʈ: 2 d* +" : <2 O>B! 6* #" * ~2 B͉͉*F DM%  *D *^ ͘DM%  * *^ ͘DM%  *\ DM%  *? * R*^ ͘DM% & AO . g "->>!N  ( 0W> ŁOz~?LW > #>:B /!:` | v#p W ʇ#~N#FogDM!>))ҧ =Ÿ) ¬^#V|g}o ¶_{ozgi`N#Fogo&og_{_z#W OY: %  - {- ! s+p+q*  y 2 <2 : ! V  ! 4@ ! 6: =! * & N! 4[ >3ʒ ͞ 03} Z;” { )ګ #£ File Typ Size : Files Occupying Kbytes of Kbytes Drive Capacity Directory Entries and : >LST: Kbytes Remain on drive 2S :R !S  ͜!S 4@ !S 6:T =!S * &U NL0400  L0A06X cL08638V L04B4 L04AB L04EB[ 9 L0A39 ; L0A3B NL0$: * +" ! Ͳ+s#r! 6" * ~2 * #" * +" >ʈ: 2 d* +" : <2 O>B! 6* #" * ~2 B͉͉*F DM%  *D *^ ͘DM%  * *^ ͘DM%  *\ DM%  *? * R*^ ͘DM% & AO . g "->>!N  ( 0W> ŁOz~?LW > #>:B /!:` | v#p W ʇ#~N#FogDM!>))ҧ =Ÿ) ¬^#V|g}o ¶_{ozgi`N#Fogo&og_{_z#W OY:TITLE DIRZ3.MAC 04-30-85 19:16:00 .Z80 ASEG ORG 0100H DBUF EQU 80H DFCB EQU 5CH L0000 EQU 00H L0001 EQU 01H L0002 EQU 02H L000B EQU 0BH L000D EQU 0DH L000F EQU 0FH L0010 EQU 10H L005D EQU 5DH L006C EQU 6CH LC22 EQU 16H LC23 EQU 17H MULTKK EQU 100AH LD HL,L0000 ADD HL,SP LD (L09D0),HL LD HL,STACK LD SP,HL LD HL,LC23 LD (LINTCT),HL LD DE,SIGNON LD C,9 CALL 5 ; ; *************************************** ; ; REDIRECT OUTPUT TO LST: IF COMMAND LINE ; CONTAINS sp>LST: ON THE END. ; ; ************************************** ; LD HL,80H LOOP1: LD A,(HL) CP '>' ; DO WE REDIRECT JP Z,REDIR OR A JP Z,NOLST ; NO INC HL JP LOOP1 REDIR: LD DE,LSTM LD B,5 ; MATCH 5 CHAR LOOP2: LD A,(DE) CP (HL) JP NZ,NOLST INC HL INC DE DEC B JP NZ,LOOP2 ; MORE TO CHECK ; LD (LSTF),A ; IF NON ZERO PRINT ; NOLST: ; FILL FCB FROM INPUT CALL L01E2 ; GET DIR ENTRIES & CK FOR MATCH CALL L0292 LD A,0 LD DE,L09CD CALL L0877 OR L JP Z,L013C LD A,1 LD HL,L09CD CALL L0882 JP NC,L0139 CALL L033F L0139: CALL L04F4 L013C: LD A,0 LD DE,L09CB CALL L0877 OR L JP Z,L014B CALL L05B6 L014B: CALL TELSIZ LD HL,(L09D0) LD SP,HL RET SIGNON: DB 0DH,'$ D.M.M.Software' L0164: DB 4 ; PRINT CR LF & MESSAGE IF REQUIRED PCRLFM: LD C,0DH CALL CHRCON LD C,0AH CALL CHRCON LD A,(LSTF) ; PRINT CONTINUE MESS OR A RET NZ ; NO LD HL,(LINTCT) DEC HL LD (LINTCT),HL LD A,L OR H RET NZ LD DE,MESS1 ; PRINT MESSAGE RET TO CONTINUE LD C,9 CALL 5 ; WAIT FOR CHAR FROM CON: LD C,1 CALL 5 AND 7FH ; CH FOR CTRL C CP 3 JP Z,0 ; IF CTRL C EXIT LD DE,SIGNON LD C,9 CALL 5 LD HL,LC22 LD (LINTCT),HL RET LINTCT: DW 0C9D1H MESS1: DB 'Return to continue- $' L01AC: LD HL,L09FB LD (HL),0 L01B1: RET ; CODE FROM HERE TO 1E1 NOT WORKING NOP ; BUT IF REMOVED PROGRAM DOES NOT WORK NOP LD H,0 LD BC,L006C ADD HL,BC LD A,(HL) SUB '$' ADD A,0FFH SBC A,A PUSH AF  LD A,0AH LD HL,L09FB SUB (HL) SBC A,A CPL POP BC LD C,B AND C RRA JP NC,L01D7 L01D0: LD HL,L09FB INC (HL) JP L01B1 L01D7: LD A,(L09C6) RRA RET NC LD HL,L0164 LD (HL),5 RET L01E2: CALL L01AC LD A,(DFCB) CP 0 JP Z,L01F9 LD A,(DFCB) DEC A LD E,A LD D,0 ; SEL DISK LD C,0EH CALL 5 L01F9: LD A,(L005D) CP ' ' JP NZ,L020C LD C,0BH PUSH BC LD E,'?' LD BC,L005D CALL L08AD L020C: LD A,(L09C8) RRA JP NC,L021B L0213: LD HL,L09D3 LD (HL),'?' JP L0226 L021B: LD DE,0FFH ; GET USER # LD C,' ' CALL 5 LD (L09D3),A L0226: LD C,0BH PUSH BC LD DE,L09D4 LD BC,L005D CALL L08A2 LD C,0DH PUSH BC LD E,'?' LD BC,DFCB CALL L08AD LD BC,L000F PUSH BC LD DE,L0000 ; GET DISK PARM BLOCK LD C,1FH CALL 5 LD B,H LD C,L LD DE,DPBSTO ; MOVE DPB CALL L08A2 LD HL,STACK LD (L09F9),HL LD HL,(DPBDRM) INC HL INC HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD (L09F7),HL LD HL,(DPBBL M) LD H,0 INC HL LD C,7 CALL L084A LD (L09DF),HL LD HL,(DPBDRM) INC HL LD (DIRLFT),HL LD C,0AH LD HL,L09DF CALL RRCTIM LD (SUSIZE),HL LD A,0FFH LD HL,DPBDSM CALL L0882 SBC A,A LD (LGSMFS),A RET L0292: LD DE,DFCB LD C,11H CALL 5 LD (DRETCD),A L029D: LD A,(DRETCD) CP 0FFH RET Z LD A,(DRETCD) AND 3 ; MULT BY 32 TO GET FILE NAME ADD A,A ; RETURNED BY CPM ADD A,A ADD A,A ADD A,A ADD A,A ADD A,80H LD L,A LD H,0 LD (FILEPT),HL LD A,(HL) ; ERASED FILE GET NEXT FILE CP 0E5H JP Z,L0331 LD HL,(DIRLFT) DEC HL LD (DIRLFT),HL ; ; ************************************ ; ; FIX FILES REMAINING ; LD HL,(FILEPT) LD BC,10H ADD HL,BC LD B,H LD C,L CALL CTFLPR PUSH HL LD HL,(DFILEU) POP BC ADD HL,BC LD (DFILEU),HL ; ; ********************************** ; LD HL,(FILEPT) LD B,H LD C,L ; DOES FILE MATCH WHAT WE ARE LOOKING FOR CALL L07DC RRA ; NO MATCH JP NC,L0331 LD BC,L0010 LD HL,(FILEPT) ADD HL,BC LD B,H LD C,L CALL CTFLPR LD BC,L000D PUSH HL LD HL,(L09F7) ; GET USER # ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B LD HL,(FUSED) ADD HL,BC LD (FUSED),HL LD L,0BH PUSH HL LD HL,(FILEPT) INC HL LD B,H LD C,L LD HL,(L09F7) EX DE,HL POP HL L02FB: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L02FB LD HL,(FILEPT) LD BC,L000B PUSH HL LD HL,(L09F7) ADD HL,BC POP DE LD A,(DE) LD (HL),A LD HL,(L09CD) INC HL LD (L09CD),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09F7) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD DE,L0010 LD HL,(L09F7) ADD HL,DE LD (L09F7),HL L0331: LD DE,L0000 LD C,12H CALL 5 LD (DRETCD),A JP L029D L033F: LD HL,L0A08 LD (HL),1 LD HL,L0001 LD (L0A0B),HL LD HL,(L09CD) LD (L0A23),HL L0350: LD A,0 LD HL,L0A08 CP (HL) RET NC LD HL,(L0A08) LD H,0 LD BC,L0A09 ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A00),HL DEC BC LD A,(BC) LD C,A LD B,0 LD HL,L0A21 ADD HL,BC ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A02),HL LD A,(L0A08) DEC A LD (L0A08),A L0380: LD BC,L0A02 LD DE,L0A00 CALL L086A JP NC,L0350 LD HL,(L0A00) LD (L09FC),HL LD HL,(L0A02) LD (L09FE),HL EX DE,HL LD HL,(L0A00) ADD HL,DE LD C,1 CALL L0854 ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A04),HL L03AF: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L045A L03BB: LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD C,(HL) INC HL LD B,(HL) LD HL,(L0A04) EX DE,HL CALL L07C2 CP 0FFH JP NZ,L03DD LD HL,(L09FC) INC HL LD (L09FC),HL JP L03BB L03DD: LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(L0A04) LD B,H LD C,L CALL L07C2 CP 0FFH JP NZ,L0400 LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03DD L0400: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L03AF LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A06),HL LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A06) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L09FC) INC HL LD (L09FC),HL LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03AF L045A: LD BC,L0A00 LD DE,L09FE CALL L086A LD BC,L09FC LD DE,L0A02 PUSH HL CALL L086A POP DE CALL L0863 JP NC,L04B4 LD BC,L0A02 LD DE,L09FC CALL L086A JP NC,L04AB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L09FC) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08)  LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L0A02) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04AB: LD HL,(L09FE) LD (L0A02),HL JP L0380 L04B4: LD BC,L09FE LD DE,L0A00 CALL L086A JP NC,L04EB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L0A00) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L09FE) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04EB: LD HL,(L09FC) LD (L0A00),HL JP L0380 L04F4: LD HL,L0000 LD (L0A39),HL LD (L0A3B),HL L04FD: LD BC,L09CD LD DE,L0A3B CALL L086A JP C,L0510 LD HL,(L0A39) LD (L09CB),HL RET L0510: LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A39) INC HL LD (L0A39),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL   LD (HL),C INC HL LD (HL),B L0533: LD BC,L09CD LD DE,L0A3B CALL L086A SBC A,A PUSH AF LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A3B) LD BC,L0002 ADD HL,HL ADD HL,BC EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) POP HL LD C,(HL) INC HL LD B,(HL) CALL L07C2 SUB 0 SUB 1 SBC A,A POP BC LD C,B AND C RRA JP NC,L04FD LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A3D),HL LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,(L09F7) ADD HL,BC LD DE,L0A3D CALL L082B LD BC,L000D PUSH HL LD HL,(L09F7) ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B JP L0533 L05B6: LD HL,L09CF LD (HL),1 L05BB: LD A,(L0164) LD HL,L09CF CP (HL) JP C,L05F3 LD BC,L0943 CALL STRCON LD A,(L09C6) CPL RRA JP NC,L05D9 LD BC,L094F CALL STRCON L05D9: LD HL,L0164 LD A,(L09CF) CP (HL) JP NC,L05E9 LD BC,L0956 CALL STRCON L05E9: LD A,(L09CF) INC A LD (L09CF),A JP NZ,L05BB L05F3: LD HL,L0001 LD (L0A3F),HL CALL PCRLFM CALL L0623 L05FF: LD DE,L09CB LD BC,L0A3F CALL L086A RET C LD A,(L09CF) INC A LD (L09CF),A LD C,A LD A,(L0164) CP C JP NC,L0631 CALL PCRLFM LD HL,L09CF LD (HL),1 JP L0637 L0623: LD B,'M' LD C,'-' L0627: PUSH BC CALL CHRCON POP BC DEC B JP NZ,L0627 RET L0631: LD BC,L095A CALL STRCON L0637: LD HL,(L0A3F) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,L0A41 LD (HL),0 L064C: LD A,0AH LD HL,L0A41 CP (HL) JP C,L0670 LD HL,(L0A41) LD H,0 EX DE,HL LD HL,(L09F7) ADD HL,DE LD A,7FH AND (HL) LD C,A CALL CHRCON LD A,(L0A41) INC A LD (L0A41),A JP NZ,L064C L0670: LD A,(L09C6) CPL RRA JP NC,L0694 LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,5 CALL PTDEC LD C,'K' CALL CHRCON L0694: LD DE,L0001 LD HL,(L0A3F) ADD HL,DE LD (L0A3F),HL JP NC,L05FF RET TELSIZ: LD HL,(DPBDSM) INC HL LD (FCAP),HL LD (L0A4A),HL LD (L0A4C),HL LD HL,(DPBALO) ; DIR RESERVED BLOCKS LD (AL0AL1),HL L06B5: LD A,0 LD DE,AL0AL1 CALL L0877 OR L ; IF NO DIR SPACE USED JP Z,L06DF LD A,(AL0AL1) RRA JP NC,L06CF LD HL,(FCAP) DEC HL LD (FCAP),HL L06CF: LD C,1 LD HL,AL0AL1 CALL RRCTIM EX DE,HL DEC HL LD (HL),E INC HL LD (HL),D JP L06B5 L06DF: LD HL,L0A4E LD (HL),0 LD DE,L0000 LD C,1BH CALL 5 LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A LD HL,(L0A4C) INC HL LD (L0A42),HL L06FD: LD HL,(L0A42) DEC HL LD (L0A42),HL LD A,0 CALL L0860 OR L JP Z,L0743 LD A,(L0A4F) RLCA LD (L0A4F),A RRA JP NC,L071F LD HL,(L0A4A) DEC HL LD (L0A4A),HL L071F: LD A,(L0A4E) INC A LD (L0A4E),A LD C,A LD A,7 CP C JP NC,L06FD LD HL,L0A4E LD (HL),0 LD HL,(L0A44) INC HL LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A JP L06FD L0743: CALL PCRLFM CALL PCRLFM LD HL,(L09CB) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L095E CALL STRCON LD HL,(FUSED) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0970 CALL STRCON LD HL,(FCAP) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L097C CALL STRCON LD HL,(DIRLFT) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0995 CALL STRCON LD HL,(DFILEU) EX DE,HL LD HL,(FCAP) ; FIX FILES REMAINING OR A ; NO CARRY SBC HL,DE EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L09AD CALL STRCON LD DE,L0000 LD C,19H CALL 5 ADD A,'A' LD C,A CALL CHRCON LD BC,MESS2 ; ':',0DH,0AH,0 JP STRCON L07C2: LD L,0CH L07C4: LD A,(DE) AND 7FH LD H,A LD A,(BC) AND 7FH SUB H JP NZ,L07D6 INC DE INC BC DEC L JP NZ,L07C4 RET L07D6: LD A,0FFH RET C LD A,1 RET L07DC: ; ENTER WITH BC POINTING TO ENTRY LD HL,L09D3 ; HL = ADDRESS OF MATCH STRING LD E,11 ; DO USER FN FT ; LD A,(BC) ; GET USER FROM DIR ENTRY OR A ; IS IT ZERO JR Z,USER0 ; OR 30H ; IT IS NOT USER 0 MAKE IT ASCII LD D,A XOR A LD (BC),A ; MAKE ENTRY USER ZERO ; LD A,11 ; OFFSET TO END OF TYPE PUSH BC ADD A,C LD C,A LD A,D LD (BC),A ; PLACE USER NO POP BC USER0: ; L07E1: LD A,(HL) CP '?' JP Z,L07EF LD D,A LD A,(BC) AND 7FH CP D LD A,0 RET NZ L07EF: LD A,(BC) AND 7FH LD (BC),A ; SEE ALL FILES INC BC INC HL DEC E JP NZ,L07E1 INC BC LD A,(L09C7) OR A RET NZ DEC BC DEC BC LD A,(BC) CPL RLCA AND 1 RET ; COUNT FILE PARTS RET COUNT IN HL CTFLPR: LD HL,L0000   LD A,(LGSMFS) OR A JP NZ,L081A LD E,10H L080E: LD A,(BC) OR A JP Z,L0814 INC HL L0814: INC BC DEC E JP NZ,L080E RET L081A: LD E,8 L081C: LD A,(BC) LD D,A INC BC LD A,(BC) OR D JP Z,L0825 INC HL L0825: INC BC DEC E JP NZ,L081C RET L082B: LD C,(HL) INC HL LD B,(HL) LD A,(DE) ADD A,C LD L,A INC DE LD A,(DE) ADC A,B LD H,A RET MULT: LD B,H LD C,L LD HL,L0000 LD A,10H L083D: ADD HL,HL EX DE,HL ADD HL,HL EX DE,HL JP NC,L0845 ADD HL,BC L0845: DEC A JP NZ,L083D RET L084A: ADD HL,HL DEC C JP NZ,L084A RET ; RR HL C TIMES RRCTIM: LD E,(HL) INC HL LD D,(HL) EX DE,HL L0854: LD A,H ; FILL MSB WITH ZERO OR A RRA LD H,A LD A,L RRA LD L,A ; RR C TIMES DEC C JP NZ,L0854 RET L0860: LD E,A LD D,0 L0863: LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET L086A: LD L,C LD H,B LD C,(HL) INC HL LD B,(HL) LD A,(DE) SUB C LD L,A INC DE LD A,(DE) SBC A,B LD H,A RET ; SUB A FROM (DE) RET HL L0877: LD L,A LD H,0 LD A,(DE) SUB L LD L,A INC DE LD A,(DE) SBC A,H LD H,A RET L0882: LD E,A LD D,0 LD A,E SUB (HL) LD E,A LD A,D INC HL SBC A,(HL) LD D,A EX DE,HL RET STRCON: LD A,(BC) CP 0 RET Z PUSH BC LD C,A CALL CHRCON POP BC INC BC JP STRCON CHRCON: LD E,C LD A,(LSTF) OR A JP Z,USECON ; LD C,5 ; TO LST: JP 5 USECON: LD C,2 JP 5 L08A2: POP HL EX (SP),HL L08A4: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L08A4 RET L08AD: POP HL EX (SP),HL LD A,E L08B0: LD (BC),A INC BC DEC L JP NZ,L08B0 RET PTDEC: LD HL,L0A52 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LD HL,(L0A50) PUSH HL LD E,6 LD BC,L0A55 CALL L090B LD (L0A54),A INC A LD (L0A53),A L08D2: LD A,(L0A52) LD HL,L0A53 CP (HL) JP C,L08E8 LD C,' ' CALL CHRCON LD HL,L0A53 INC (HL) JP L08D2 L08E8: LD HL,L0A53 LD (HL),0 L08ED: LD A,(L0A54) DEC A LD HL,L0A53 CP (HL) RET C LD HL,(L0A53) LD H,0 LD BC,L0A55 ADD HL,BC LD C,(HL) CALL CHRCON LD HL,L0A53 INC (HL) JP NZ,L08ED RET L090B: POP HL EX (SP),HL LD D,1 LD A,0 PUSH AF INC SP L0913: DEC E JP Z,L0924 INC D CALL L0930 ADD A,'0' PUSH AF INC SP LD A,L OR H JP NZ,L0913 L0924: LD E,D DEC E L0926: DEC SP POP AF LD (BC),A INC BC DEC D JP NZ,L0926 LD A,E RET L0930: PUSH BC LD BC,MULTKK XOR A L0935: ADD HL,HL RLA CP C JP C,L093D SUB C INC HL L093D: DEC B JP NZ,L0935 POP BC RET L0943: DB 'File Typ',0 L094F: DB ' Size',0 L0956: DB ' ',0 L095A: DB ' : ',0 L095E: DB ' Files Occupying ',0 L0970: DB ' Kbytes of ',0 L097C: DB ' Kbytes Drive Capacity',0DH,0AH,0 L0995: DB ' Directory Entries and ',0 MESS2: DB ':',0DH,0AH,0 LSTM: DB '>LST: ' LSTF: DB 0 L09AD: DB ' Kbytes Remain on drive ',0 DFILEU: DW 0 ; FIX FILES REMAINING L09C6: DB 0 L09C7: DB 0 L09C8: DB 0 FUSED: DB 0,0 L09CB: DB 0,0 L09CD: DB 0 L09CE: DB 0 L09CF: DB '2' L09D0: DB 'S',0AH DRETCD: DB ':' L09D3: DB 'R' L09D4: DB 0AH,'!S',0AH,0BEH,0DAH,0E8H L09DB: DB 8,0EH,' ',0CDH L09DF: DB 9CH,8 DIRLFT: DB '!S' SUSIZE: DB 0AH,'4' LGSMFS: DB 0C3H FILEPT: DW L08D2 DPBSTO: DW 5321H DB 0AH DPBBLM: DB '6',0 DPBDSM: DW 543AH DPBDRM: DW 3D0AH DPBALO: DB '!S' DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' ' STACK: DB ';',0AH L0A71: DB 0,0,'L0A3B',0,0,0,0,5,0C0H,' ' END  DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0  !9"D ! !"w !~>*=# =#/2 >A `>!A ]ͅ:>? o*D ERASED FILES $   : *+"} w !"Return to continue- $!o 6&l ~$> !o /H!o 4:: !6:\*:\=_:] = ?] :< L!G 6?W 2G  H ]  ?\ DM\ ! "m *c ##)*m "k *_ &#ͥ"S *c #"U  !S ͫ"W >!a 2Y \2F :F :F ƀo&"Z ~*U +"U *Z  DM]*8 "8 *Z DM)w*Z DM] *k q#p*= "= . *Z #DM*k -A*Z  *k w*A #"A )*m *k s#r*k "k 2F !| 6!" *A " >!| *| &} ) ^#V"t O! ^#V"v :| =2| v t Җ*t "p *v "r *t ͯ)*m ^#V"x r p ڠ*p )*m N#F*x #*p #"p *r )*m ^#V*x DMF*r +"r #r p *p )*m ^#V"z *r )*m *p )*m N#Fq#p*r )*m *z s#r*p #"p *r +"r t r p v ;v p :| <2| O!} *p s#r*| & ) *v s#r*r "v r t 1:| <2| O!} *t s#r*| & ) *r s#r*p "t !" " A  V* "? * #" )*m * #" )*m N#Fq#pA  * )*m * ) *m ^#VN#FHC* #" )*m ^#V"k  *k ^#V" * )*m ^#V"k *k  ͆ *k q#py!C 6:!C 9 :: / !:C / :C <2C !" ͊i?  :C <2C O:w͊!C 6}M-m * )*m ^#V"k ! 6> ! ڶ* &*k >O: <2 ’:: / *k ^#V*W ͑DM K* " E*a #" " " *e " > %: * +" ! ͫ+s#r! 6" * ~2 * #" * +" >ͻʉ: 2 e* +" : <2 O>C! 6* #" * ~2 C͊͊*? DM  *= *W ͑DM  * *W ͑DM  *U DM  *8 * R*W ͑DM  AO . g #->>!G  (>w~?JW >#;:; /!:Y u o#i W ʀ#wN#FogDM!>))Ҡ =˜) ¥^#V|g}o ¯_{ozgi`N#Fogo&og_{_z#W OY:   - {- ! s+p+q*  r 2 <2 : ! O  ! 49 ! 6: =! * & N! 4T >3ʋ ͗ 03}z Z; { )ڤ #œ File Typ Size : Files Occupying Kbytes of Kbytes Drive Capacity Directory Entries and : >LST: Kbytes Remain on drive 2S :R !S  ͜!S 49 !S 6:T =!S * &U NL0400  L0A06X cL08638V L04B4 L04AB L04EB[ 9 L0A39 ; L0A3B NL0400%: * +" ! ͫ+s#r! 6" * ~2 * #" * +" >ͻʉ: 2 e* +" : <2 O>C! 6* #" * ~2 C͊͊*? DM  *= *W ͑DM  * *W ͑DM  *U DM  *8 * R*W ͑DM  AO . g #->>!G  (>w~?JW >#;:; /!:Y u o#i W ʀ#wN#FogDM!>))Ҡ =˜) ¥^#V|g}o ¯_{ozgi`N#Fogo&og_{_z#W OY:  TITLE DIRZ4.MAC 04-29-85 23:57:00 .Z80 ASEG ORG 0100H DBUF EQU 80H DFCB EQU 5CH L0000 EQU 00H L0001 EQU 01H L0002 EQU 02H L000B EQU 0BH L000D EQU 0DH L000F EQU 0FH L0010 EQU 10H L005D EQU 5DH L006C EQU 6CH LC22 EQU 16H LC23 EQU 17H MULTKK EQU 100AH LD HL,L0000 ADD HL,SP LD (L09D0),HL LD HL,STACK LD SP,HL LD HL,LC23 LD (LINTCT),HL LD DE,SIGNON LD C,9 CALL 5 ; ; *************************************** ; ; REDIRECT OUTPUT TO LST: IF COMMAND LINE ; CONTAINS sp>LST: ON THE END. ; ; ************************************** ; LD HL,80H LOOP1: LD A,(HL) CP '>' ; DO WE REDIRECT JP Z,REDIR OR A JP Z,NOLST ; NO INC HL JP LOOP1 REDIR: LD DE,LSTM LD B,5 ; MATCH 5 CHAR LOOP2: LD A,(DE) CP (HL) JP NZ,NOLST INC HL INC DE DEC B JP NZ,LOOP2 ; MORE TO CHECK ; LD (LSTF),A ; IF NON ZERO PRINT ; NOLST: ; FILL FCB FROM INPUT CALL L01E2 ; GET DIR ENTRIES & CK FOR MATCH CALL L0292 LD A,0 LD DE,L09CD CALL L0877 OR L JP Z,L013C LD  A,1 LD HL,L09CD CALL L0882 JP NC,L0139 CALL L033F L0139: CALL L04F4 L013C: LD A,0 LD DE,L09CB CALL L0877 OR L JP Z,L014B CALL L05B6 L014B: CALL TELSIZ LD HL,(L09D0) LD SP,HL RET SIGNON: DB 0DH,0AH,'ERASED FILES',0DH,0AH,'$ ' L0164: DB 4 ; PRINT CR LF & MESSAGE IF REQUIRED PCRLFM: LD C,0DH CALL CHRCON LD C,0AH CALL CHRCON LD A,(LSTF) ; PRINT CONTINUE MESS OR A RET NZ ; NO LD HL,(LINTCT) DEC HL LD (LINTCT),HL LD A,L OR H RET NZ LD DE,MESS1 ; PRINT MESSAGE RET TO CONTINUE LD C,9 CALL 5 ; WAIT FOR CHAR FROM CON: LD C,1 CALL 5 AND 7FH ; CH FOR CTRL C CP 3 JP Z,0 ; IF CTRL C EXIT LD DE,SIGNON LD C,9 CALL 5 LD HL,LC22 LD (LINTCT),HL RET LINTCT: DW 0C9D1H MESS1: DB 'Return to continue- $' L01AC: LD HL,L09FB LD (HL),0 L01B1: RET ; CODE FROM HERE TO 1E1 NOT WORKING NOP ; BUT IF REMOVED PROGRAM DOES NOT WORK NOP LD H,0 LD BC,L006C ADD HL,BC LD A,(HL) SUB '$' ADD A,0FFH SBC A,A PUSH AF LD A,0AH LD HL,L09FB SUB (HL) SBC A,A CPL POP BC LD C,B AND C RRA JP NC,L01D7 L01D0: LD HL,L09FB INC (HL) JP L01B1 L01D7: LD A,(L09C6) RRA RET NC LD HL,L0164 LD (HL),5 RET L01E2: CALL L01AC LD A,(DFCB) CP 0 JP Z,L01F9 LD A,(DFCB) DEC A LD E,A LD D,0 ; SEL DISK LD C,0EH CALL 5 L01F9: LD A,(L005D) CP ' ' JP NZ,L020C LD C,0BH PUSH BC LD E,'?' LD BC,L005D CALL L08AD L020C: LD A,(L09C8) RRA JP NC,L021B L0213: LD HL,L09D3 LD (HL),'?' JP L0226 L021B: LD DE,0FFH ; GET USER # LD C,' ' CALL 5 LD (L09D3),A L0226: LD C,0BH PUSH BC LD DE,L09D4 LD BC,L005D CALL L08A2 LD C,0DH PUSH BC LD E,'?' LD BC,DFCB CALL L08AD LD BC,L000F PUSH BC LD DE,L0000 ; GET DISK PARM BLOCK LD C,1FH CALL 5 LD B,H LD C,L LD DE,DPBSTO ; MOVE DPB CALL L08A2 LD HL,STACK LD (L09F9),HL LD HL,(DPBDRM) INC HL INC HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD (L09F7),HL  LD HL,(DPBBLM) LD H,0 INC HL LD C,7 CALL L084A LD (L09DF),HL LD HL,(DPBDRM) INC HL LD (DIRLFT),HL LD C,0AH LD HL,L09DF CALL RRCTIM LD (SUSIZE),HL LD A,0FFH LD HL,DPBDSM CALL L0882 SBC A,A LD (LGSMFS),A RET L0292: LD DE,DFCB LD C,11H CALL 5 LD (DRETCD),A L029D: LD A,(DRETCD) CP 0FFH RET Z LD A,(DRETCD) AND 3 ; MULT BY 32 TO GET FILE NAME ADD A,A ; RETURNED BY CPM ADD A,A ADD A,A ADD A,A ADD A,A ADD A,80H LD L,A LD H,0 LD (FILEPT),HL LD A,(HL) ; ERASED FILE GET NEXT FILE CP 0E5H JP Z,CKERAS LD HL,(DIRLFT) DEC HL LD (DIRLFT),HL ; ; ************************************ ; ; FIX FILES REMAINING ; LD HL,(FILEPT) LD BC,10H ADD HL,BC LD B,H LD C,L CALL CTFLPR PUSH HL LD HL,(DFILEU) POP BC ADD HL,BC LD (DFILEU),HL ; ; ********************************** ; CKERAS: LD HL,(FILEPT) LD B,H LD C,L ; DOES FILE MATCH WHAT WE ARE LOOKING FOR CALL L07DC RRA ; NO MATCH JP NC,L0331 LD BC,L0010  LD HL,(FILEPT) ADD HL,BC LD B,H LD C,L CALL CTFLPR LD BC,L000D PUSH HL LD HL,(L09F7) ; GET USER # ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B LD HL,(FUSED) ADD HL,BC LD (FUSED),HL LD L,0BH PUSH HL LD HL,(FILEPT) INC HL LD B,H LD C,L LD HL,(L09F7) EX DE,HL POP HL L02FB: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L02FB LD HL,(FILEPT) LD BC,L000B PUSH HL LD HL,(L09F7) ADD HL,BC POP DE LD A,(DE) LD (HL),A LD HL,(L09CD) INC HL LD (L09CD),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09F7) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD DE,L0010 LD HL,(L09F7) ADD HL,DE LD (L09F7),HL L0331: LD DE,L0000 LD C,12H CALL 5 LD (DRETCD),A JP L029D L033F: LD HL,L0A08 LD (HL),1 LD HL,L0001 LD (L0A0B),HL LD HL,(L09CD) LD (L0A23),HL L0350: LD A,0 LD HL,L0A08 CP (HL) RET NC LD HL,(L0A08) LD H,0 LD BC,L0A09 ADD HL,HL ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A00),HL DEC BC LD A,(BC) LD C,A LD B,0 LD HL,L0A21 ADD HL,BC ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A02),HL LD A,(L0A08) DEC A LD (L0A08),A L0380: LD BC,L0A02 LD DE,L0A00 CALL L086A JP NC,L0350 LD HL,(L0A00) LD (L09FC),HL LD HL,(L0A02) LD (L09FE),HL EX DE,HL LD HL,(L0A00) ADD HL,DE LD C,1 CALL L0854 ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A04),HL L03AF: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L045A L03BB: LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD C,(HL) INC HL LD B,(HL) LD HL,(L0A04) EX DE,HL CALL L07C2 CP 0FFH JP NZ,L03DD LD HL,(L09FC) INC HL LD (L09FC),HL JP L03BB L03DD: LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) LD HL,(L0A04) LD B,H LD C,L CALL L07C2 CP 0FFH JP NZ,L0400 LD HL,(L09FE) DEC HL LD (L09FE),HL JP L 03DD L0400: LD DE,L09FE LD BC,L09FC CALL L086A JP C,L03AF LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A06),HL LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L09FC) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B LD HL,(L09FE) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A06) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L09FC) INC HL LD (L09FC),HL LD HL,(L09FE) DEC HL LD (L09FE),HL JP L03AF L045A: LD BC,L0A00 LD DE,L09FE CALL L086A LD BC,L09FC LD DE,L0A02 PUSH HL CALL L086A POP DE CALL L0863 JP NC,L04B4 LD BC,L0A02 LD DE,L09FC CALL L086A JP NC,L04AB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L09FC) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L0A02) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04AB: LD HL,(L09FE) LD (L0A02),HL JP L0380 L04B4: LD BC,L09FE LD DE,L0A00 CALL L086A JP NC,L04EB LD A,(L0A08) INC A LD (L0A08),A LD C,A LD B,0 LD HL,L0A09 ADD HL,BC ADD HL,BC PUSH HL LD HL,(L0A00) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D LD HL,(L0A08) LD H,0 LD BC,L0A21 ADD HL,HL ADD HL,BC PUSH HL LD HL,(L09FE) EX DE,HL POP HL LD (HL),E INC HL LD (HL),D L04EB: LD HL,(L09FC) LD (L0A00),HL JP L0380 L04F4: LD HL,L0000 LD (L0A39),HL LD (L0A3B),HL L04FD: LD BC,L09CD LD DE,L0A3B CALL L086A JP C,L0510 LD HL,(L0A39) LD (L09CB),HL RET L0510: LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A39) INC HL LD (L0A39),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE EX (SP),HL LD C,(HL) INC HL LD B,(HL) POP HL LD (HL),C INC HL LD (HL),B L0533: LD BC,L09CD LD DE,L0A3B CALL L086A SBC A,A PUSH AF LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE PUSH HL LD HL,(L0A3B) LD BC,L0002 ADD HL,HL ADD HL,BC EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) POP HL LD C,(HL) INC HL LD B,(HL) CALL L07C2 SUB 0 SUB 1 SBC A,A POP BC LD C,B AND C RRA JP NC,L04FD LD HL,(L0A3B) INC HL LD (L0A3B),HL ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L0A3D),HL LD HL,(L0A39) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,(L09F7) ADD HL,BC LD DE,L0A3D CALL L082B LD BC,L000D PUSH HL LD HL,(L09F7) ADD HL,BC POP BC LD (HL),C INC HL LD (HL),B JP L0533 L05B6: LD HL,L09CF LD (HL),1 L05BB: LD A,(L0164) LD HL,L09CF CP (HL) JP C,L05F3 LD BC,L0943 CALL STRCON LD A,(L09C6) CPL RRA JP NC,L05D9 LD BC,L094F CALL STRCON L05D9: LD HL,L0164 LD A,(L09CF) CP (HL) JP NC,L05E9 LD BC,L0956 CALL STRCON L05E9: LD A,(L09CF) INC A LD (L09CF),A JP NZ,L05BB L05F3: LD HL,L0001 LD (L0A3F),HL CALL PCRLFM CALL L0623 L05FF: LD DE,L09CB LD BC,L0A3F CALL L086A RET C LD A,(L09CF) INC A LD (L09CF),A LD C,A LD A,(L0164) CP C JP NC,L0631 CALL PCRLFM LD HL,L09CF LD (HL),1 JP L0637 L0623: LD B,'M' LD C,'-' L0627: PUSH BC CALL CHRCON POP BC DEC B JP NZ,L0627 RET L0631: LD BC,L095A CALL STRCON L0637: LD HL,(L0A3F) ADD HL,HL EX DE,HL LD HL,(L09F9) ADD HL,DE LD E,(HL) INC HL LD D,(HL) EX DE,HL LD (L09F7),HL LD HL,L0A41 LD (HL),0 L064C: LD A,0AH LD HL,L0A41 CP (HL) JP C,L0670 LD HL,(L0A41) LD H,0 EX DE,HL LD HL,(L09F7) ADD HL,DE LD A,7FH AND (HL) LD C,A CALL CHRCON LD A,(L0A41) INC A LD (L0A41),A JP NZ,L064C L0670: LD A,(L09C6) CPL RRA JP NC,L0694 LD BC,L000D LD HL,(L09F7) ADD HL,BC LD E,(HL) INC HL LD D,(HL) LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,5 CALL PTDEC LD C,'K' CALL CHRCON L0694: LD DE,L0001 LD HL,(L0A3F) ADD HL,DE LD (L0A3F),HL JP NC,L05FF RET TELSIZ: LD HL,(DPBDSM) INC HL LD (FCAP),HL LD (L0A4A),HL LD (L0A4C),HL LD HL,(DPBALO) ; DIR RESERVED BLOCKS LD (AL0AL1),HL L06B5: LD A,0 LD DE,AL0AL1 CALL L0877 OR L ; IF NO DIR SPACE USED JP Z,L06DF LD A,(AL0AL1) RRA JP NC,L06CF LD HL,(FCAP) DEC HL LD (FCAP),HL L06CF: LD C,1 LD HL,AL0AL1 CALL RRCTIM EX DE,HL DEC HL LD (HL),E INC HL LD (HL),D JP L06B5 L06DF: LD HL,L0A4E LD (HL),0 LD DE,L0000 LD C,1BH CALL 5 LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A LD HL,(L0A4C) INC HL LD (L0A42),HL L06FD: LD HL,(L0A42) DEC HL LD (L0A42),HL LD A,0 CALL  L0860 OR L JP Z,L0743 LD A,(L0A4F) RLCA LD (L0A4F),A RRA JP NC,L071F LD HL,(L0A4A) DEC HL LD (L0A4A),HL L071F: LD A,(L0A4E) INC A LD (L0A4E),A LD C,A LD A,7 CP C JP NC,L06FD LD HL,L0A4E LD (HL),0 LD HL,(L0A44) INC HL LD (L0A44),HL LD HL,(L0A44) LD A,(HL) LD (L0A4F),A JP L06FD L0743: CALL PCRLFM CALL PCRLFM LD HL,(L09CB) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L095E CALL STRCON LD HL,(FUSED) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0970 CALL STRCON LD HL,(FCAP) EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L097C CALL STRCON LD HL,(DIRLFT) LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L0995 CALL STRCON LD HL,(DFILEU) EX DE,HL LD HL,(FCAP) ; FIX FILES REMAINING OR A ; NO CARRY SBC HL,DE EX DE,HL LD HL,(SUSIZE) CALL MULT LD B,H LD C,L LD E,1 CALL PTDEC LD BC,L09AD CALL STRCON LD DE,L0000 LD C,19H CALL 5  ADD A,'A' LD C,A CALL CHRCON LD BC,MESS2 ; ':',0DH,0AH,0 JP STRCON L07C2: LD L,0CH L07C4: LD A,(DE) AND 7FH LD H,A LD A,(BC) AND 7FH SUB H JP NZ,L07D6 INC DE INC BC DEC L JP NZ,L07C4 RET L07D6: LD A,0FFH RET C LD A,1 RET L07DC: ; ENTER WITH BC POINTING TO ENTRY LD HL,L09D3 ; HL = ADDRESS OF MATCH STRING LD E,0CH ; DO USER FN FT ; LD A,(BC) ; CK FOR ERASED FILES CP 0E5H JR Z,MAKER LD A,01 ; MAKE FILE NON-READABLE LD (BC),A JR L07E1 ; MAKER: XOR A LD (BC),A LD (HL),A ; L07E1: LD A,(HL) CP '?' JP Z,L07EF LD D,A LD A,(BC) AND 7FH LD (BC),A ; SEE SYS FILES CP D LD A,0 RET NZ L07EF: INC BC INC HL DEC E JP NZ,L07E1 LD A,(L09C7) OR A RET NZ DEC BC DEC BC LD A,(BC) CPL RLCA AND 1 RET ; COUNT FILE PARTS RET COUNT IN HL CTFLPR: LD HL,L0000 LD A,(LGSMFS) OR A JP NZ,L081A LD E,10H L080E: LD A,(BC) OR A JP Z,L0814 INC HL L0814: INC BC DEC E JP NZ,L080E RET  L081A: LD E,8 L081C: LD A,(BC) LD D,A INC BC LD A,(BC) OR D JP Z,L0825 INC HL L0825: INC BC DEC E JP NZ,L081C RET L082B: LD C,(HL) INC HL LD B,(HL) LD A,(DE) ADD A,C LD L,A INC DE LD A,(DE) ADC A,B LD H,A RET MULT: LD B,H LD C,L LD HL,L0000 LD A,10H L083D: ADD HL,HL EX DE,HL ADD HL,HL EX DE,HL JP NC,L0845 ADD HL,BC L0845: DEC A JP NZ,L083D RET L084A: ADD HL,HL DEC C JP NZ,L084A RET ; RR HL C TIMES RRCTIM: LD E,(HL) INC HL LD D,(HL) EX DE,HL L0854: LD A,H ; FILL MSB WITH ZERO OR A RRA LD H,A LD A,L RRA LD L,A ; RR C TIMES DEC C JP NZ,L0854 RET L0860: LD E,A LD D,0 L0863: LD A,E SUB L LD L,A LD A,D SBC A,H LD H,A RET L086A: LD L,C LD H,B LD C,(HL) INC HL LD B,(HL) LD A,(DE) SUB C LD L,A INC DE LD A,(DE) SBC A,B LD H,A RET ; SUB A FROM (DE) RET HL L0877: LD L,A LD H,0 LD A,(DE) SUB L LD L,A INC DE LD A,(DE) SBC A,H  LD H,A RET L0882: LD E,A LD D,0 LD A,E SUB (HL) LD E,A LD A,D INC HL SBC A,(HL) LD D,A EX DE,HL RET STRCON: LD A,(BC) CP 0 RET Z PUSH BC LD C,A CALL CHRCON POP BC INC BC JP STRCON CHRCON: LD E,C LD A,(LSTF) OR A JP Z,USECON ; LD C,5 ; TO LST: JP 5 USECON: LD C,2 JP 5 L08A2: POP HL EX (SP),HL L08A4: LD A,(BC) LD (DE),A INC BC INC DE DEC L JP NZ,L08A4 RET L08AD: POP HL EX (SP),HL LD A,E L08B0: LD (BC),A INC BC DEC L JP NZ,L08B0 RET PTDEC: LD HL,L0A52 LD (HL),E DEC HL LD (HL),B DEC HL LD (HL),C LD HL,(L0A50) PUSH HL LD E,6 LD BC,L0A55 CALL L090B LD (L0A54),A INC A LD (L0A53),A L08D2: LD A,(L0A52) LD HL,L0A53 CP (HL) JP C,L08E8 LD C,' ' CALL CHRCON LD HL,L0A53 INC (HL) JP L08D2 L08E8: LD HL,L0A53 LD (HL),0 L08ED: LD A,(L0A54) DEC A LD HL,L0A53 CP (HL) RET C LD HL,(L0A53) LD H,0 LD BC,L0A55 ADD HL,BC LD C,(HL) CALL CHRCON LD HL,L0A53 INC (HL) JP NZ,L08ED RET L090B: POP HL EX (SP),HL LD D,1 LD A,0 PUSH AF INC SP L0913: DEC E JP Z,L0924 INC D CALL L0930 ADD A,'0' PUSH AF INC SP LD A,L OR H JP NZ,L0913 L0924: LD E,D DEC E L0926: DEC SP POP AF LD (BC),A INC BC DEC D JP NZ,L0926 LD A,E RET L0930: PUSH BC LD BC,MULTKK XOR A L0935: ADD HL,HL RLA CP C JP C,L093D SUB C INC HL L093D: DEC B JP NZ,L0935 POP BC RET L0943: DB 'File Typ',0 L094F: DB ' Size',0 L0956: DB ' ',0 L095A: DB ' : ',0 L095E: DB ' Files Occupying ',0 L0970: DB ' Kbytes of ',0 L097C: DB ' Kbytes Drive Capacity',0DH,0AH,0 L0995: DB ' Directory Entries and ',0 MESS2: DB ':',0DH,0AH,0 LSTM: DB '>LST: ' LSTF: DB 0 L09AD: DB ' Kbytes Remain on drive ',0 DFILEU: DW 0 ; FIX FILES REMAINING L09C6: DB 0 L09C7: DB 0 L09C8: DB 0 FUSED: DB 0,0 L09CB: DB 0,0 L09CD: DB 0 L09CE: DB 0 L09CF: DB '2' L09D0: DB 'S',0AH DRETCD: DB ':' L09D3: DB 'R' L09D4: DB 0AH,'!S',0AH,0BEH,0DAH,0E8H L09DB: DB 8,0EH,' ',0CDH L09DF: DB 9CH,8 DIRLFT: DB '!S' SUSIZE: DB 0AH,'4' LGSMFS: DB 0C3H FILEPT: DW L08D2 DPBSTO: DW 5321H DB 0AH DPBBLM: DB '6',0 DPBDSM: DW 543AH DPBDRM: DW 3D0AH DPBALO: DB '!S' DW 0BE0AH DW 2AD8H L09F7: DW L0A53 L09F9: DB '&' L09FA: DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: DB 0EBH L0A50: DB 4,0 L0A52: DB 0 L0A53: DB 'L' L0A54: DB '0' L0A55: DB '4EB',0F9H,'[',0,0,5,0C0H,' 9' DB 0AH,0,0,'L0A39',0 L0A69: DB 0,0 L0A6B: DB 0,5,0C0H,' ' STACK: DB ';',0AH L0A71: DB 0,0,'L0A3B',0,0,0,0,5,0C0H,' ' END : DB 0 L09FB: DB 1 L09FC: DB 'U',0AH L09FE: DB 9,'N' L0A00: DB 4,0 L0A02: DB 0,'L' L0A04: DB '04' L0A06: DB '00' L0A08: DB 0 L0A09: DB 0 L0A0A: DB 0 L0A0B: DB 0,5,0C0H,' ',6,0AH,0,0,'L0A06' DB 0F9H,'X',0,0,5,0C0H,' ' L0A1F: DB 'c',8 L0A21: DB 0,0 L0A23: DB 'L' L0A24: DB '08638V',0,0 L0A2C: DB 5,0C0H,' ',0B4H,4,0,0,'L04B4' DB 0 L0A39: DB 0,0 L0A3B: DB 0,5 L0A3D: DB 0C0H,' ' L0A3F: DB 0ABH,4 L0A41: DB 0 L0A42: DB 0,'L' L0A44: DB '04' AL0AL1: DB 'AB' FCAP: DB 0,0 L0A4A: DB 0,0 L0A4C: DB 5,0C0H L0A4E: DB ' ' L0A4F: ; ; DISASSEMBLY OF FORMATHD.COM ; from PMC ; 5/1/85 Goal: modify to work with ; other controllers ; ORG 0100H ; ; BDOS EQU 05H COMLINEBUFF EQU 80H ; ; PORT ADDRESSES ; HADATA EQU 10H HACTRL EQU 11H HASTAT EQU 12H ; ; SCSI CONTROL AND STATUS EQUATES ; SELECT EQU 40H ;asserts SEL to get ;controller on bus ; ; returned status bytes ; BSYBIT EQU 08H ;LUN is busy ERROR EQU 02H ;error in last operation ; ; status register bit equates ; REQ EQU 80H ;SCSI REQ line IO EQU 40H ;SCSI IO line MSG EQU 20H ;SCSI MSG line 1=asserted CD EQU 10H ;SCSI C/D line 1=command BUSY EQU 08H ;SCSI BUSY line 1=asserted ; ; MOSTLY UNKNOWN DATA BUFFERS ; L141F EQU 141FH L1420 EQU 1420H L1421 EQU 1421H L1422 EQU 1422H L1424 EQU 1424H L1426 EQU 1426H COMMBUFF EQU 1427H L1429 EQU 1429H ERRCODE EQU 142AH L142C EQU 142CH L1472 EQU 1472H L1473 EQU 1473H ; ; ; 0100 JP L017E 0103 DB 'FORMATHD Copyright (C), 1983' 011F DB 9,'Personal Micro Computers, ' 013A DB 'Inc. 475 Ellis St. Mountain ' 0156 DB 'View, CA 94304 version 3.0 ' 0172 DB '07 FEB. 1984' L017E: 017E LD SP,L1472 0181 LD A,0 0183 LD (L1421),A 0186 LD (L1426),A 0189 LD A,(FORMSTR2) ;C16h 018C RES 4,A 018E RES 3,A 0190 RES 2,A 0192 SET 1,A 0194 RES 0,A 0196 LD (FORMSTR2),A 0199 LD HL,L0C1F ;addr of end 0's 019C LD (L1424),HL 019F LD HL,2B08H 01A2 LD (L1422),HL 01A5 CALL INIHDP ;04CCH 01A8 LD HL,COMLINEBUFF 01AB LD A,(HL) 01AC OR A 01AD JP Z,PRTSIGNON ;if no extra on command line 01B0 LD B,A ;# of chars EATBLNK: 01B1 INC HL ;eat command line blanks 01B2 LD A,(HL) 01B3 CP 'A' 01B5 JR NC,RDCOMMLN ;if >= ascii 'A' 01B7 DJNZ EATBLNK 01B9 JP PRTSIGNON RDCOMMLN: 01BC AND 5FH ;convert to upper 01BE CP 'S' 01C0 JR NZ,L01D0 01C2 CALL INIHDP8 ;04D9H (8" sasi setup?) L01C5: 01C5 INC HL ;more blank eating 01C6 LD A,(HL) 01C7 CP 'A' 01C9 JR NC,L01D0 01CB DJNZ L01C5 01CD JP PRTSIGNON L01D0: 01D0 RES 5,A 01D2 LD (L1420),A ;store drive name to ... 01D5 LD (DRVNAMEBB),A 01D8 LD (DRIVENAMERDY),A 01DB LD (DRVREDOBIOS),A 01DE LD (WARNING2),A 01E1 CP 'M' 01E3 JP C,PRTSIGNON ;if < 'M' 01E6 CP 'Q' 01E8 JP NC,PRTSIGNON ;if >= 'Q' 01EB DEC A 01EC AND 3 ;if 'M,N,O,P' then... 01EE LD HL,L141F 01F1 BIT 1,A 01F3 LD (HL),1 01F5 JR Z,LUNADJ 01F7 LD (HL),2 LUNADJ: 01F9 AND 1 01FB JP NZ,L0223 01FE LD HL,RDCAP2 0201 RES 5,(HL) 0203 LD HL,RQSNS2 0206 RES 5,(HL) 0208 LD HL,VRFY2 020B RES 5,(HL) 020D LD HL,XXLUNX 0210 RES 5,(HL) 0212 LD HL,TRNSLT2 0215 RES 5,(HL) 0217 LD HL,FORMSTR2 ;0C16h 021A RES 5,(HL) 021C LD HL,STUPSTR2 ;0BFAh 021F RES 5,(HL) 0221 JR L0246 L0223: 0223 LD HL,RDCAP2 0226 SET 5,(HL) 0228 LD HL,RQSNS2 022B SET 5,(HL) 022D LD HL,VRFY2 0230 SET 5,(HL) 0232 LD HL,XXLUNX 0235 SET 5,(HL) 0237 LD HL,TRNSLT2 023A SET 5,(HL) 023C LD HL,FORMSTR2 ;0C16h 023F SET 5,(HL) 0241 LD HL,STUPSTR2 ;0BFAh 0244 SET 5,(HL) L0246: 0246 LD HL,WARNING1 0249 CALL PRINTSTR 024C LD A,1 024E CALL CONBUFFRD 0251 AND 5FH 0253 CP 'Y' 0255 LD HL,ABORTFORMAT 0258 JP NZ,ERREXIT L025B: 025B LD HL,SETMODEMSG 025E CALL PRINTSTR 0261 LD HL,SETUPSTR 0264 CALL DRIVER ;03AAh 0267 LD A,(L1429) 026A OR A 026B JP NZ,L0334 026E LD HL,FORMATTING 0271 CALL PRINTSTR 0274 LD HL,FORMATSTR 0277 CALL DRIVER 027A LD A,(L1429) 027D OR A 027E JP NZ,L0339 0281 LD HL,RDCAPSTR 0284 CALL DRIVER 0287 LD A,(L1429) 028A OR A 028B JP NZ,L033E 028E LD HL,L0BC9 0291 LD D,(HL) 0292 INC HL 0293 LD E,(HL) 0294 LD (L1422),DE 0298 LD HL,L0BE2 029B LD (HL),D 029C INC HL 029D LD (HL),E 029E LD DE,00 02A1 LD HL,L0BDF 02A4 LD (HL),D 02A5 INC HL 02A6 LD (HL),E L02A7: 02A7 LD HL,VERIFYING 02AA CALL PRINTSTR 02AD LD HL,VRFYSTR 02B0 CALL DRIVER ;03AAh 02B3 LD A,(L1421) 02B6 OR A 02B7 JR Z,L02C3 02B9 LD A,(L1429) 02BC OR A 02BD JP NZ,L032A 02C0 JP L02F3 L02C3: 02C3 LD A,(L1429) 02C6 OR A 02C7 JP NZ,L02E7 02CA LD A,(L1426) 02CD OR A 02CE JP Z,L02F3 02D1 LD A,(FORMSTR2) ;0C16h 02D4 SET 4,A 02D6 SET 3,A 02D8 SET 2,A 02DA RES 0,A 02DC LD (FORMSTR2),A 02DF LD A,1 02E1 LD (L1421),A 02E4 JP L025B L02E7: 02E7 LD HL,L1426 02EA INC (HL) 02EB CALL L0379 02EE CALL L035E 02F1 JR L02A7 L02F3: 02F3 LD HL,SEEK0 02F6 CALL PRINTSTR 02F9 LD HL,SEEK0STR 02FC CALL DRIVER 02FF LD A,(L1429) 0302 OR A 0303 JP NZ,L0325 0306 LD A,(L1426) 0309 LD HL,BADBLOCKS 030C CALL L04AE 030F LD HL,CRLFLF 0312 CALL PRINTSTR 0315 LD A,(L1426) 0318 CP 6 031A LD HL,CRLFREADY 031D JP C,ERREXIT 0320 LD HL,L0A2C 0323 JR ERREXIT  L0325: 0325 LD HL,ERRSEEK 0328 JR ERREXIT L032A: 032A LD HL,ERROR2NDPASS 032D JR ERREXIT 032F LD HL,ERDRIVELETT 0332 JR ERREXIT L0334: 0334 LD HL,ERMODE 0337 JR ERREXIT L0339: 0339 LD HL,ERRFORMAT 033C JR ERREXIT L033E: 033E LD HL,ERCAPACITY ERREXIT: 0341 CALL PRINTSTR 0344 JP WARMSTART PRTSIGNON: 0347 LD HL,SIGNON1 034A CALL PRINTSTR 034D CALL PRESSRET 0350 LD HL,ENTERDRIVE 0353 CALL PRINTSTR 0356 LD A,1 0358 CALL CONBUFFRD 035B JP L01D0 L035E: 035E LD HL,L142C 0361 LD D,(HL) 0362 INC HL 0363 LD E,(HL) 0364 INC DE 0365 LD HL,L0BDF 0368 LD (HL),D 0369 INC HL 036A LD (HL),E 036B XOR A 036C LD HL,(L1422) 036F SBC HL,DE 0371 EX DE,HL 0372 LD HL,L0BE2 0375 LD (HL),D 0376 INC HL 0377 LD (HL),E 0378 RET L0379: 0379 LD HL,L142C 037C LD D,(HL) 037D INC HL 037E LD E,(HL) 037F LD HL,L0BED 0382 LD (HL),D 0383 INC HL 0384 LD (HL),E 0385 LD HL,TRNSLTSTR 0388 CALL DRIVER ;03AAh 038B LD HL,L0BF1 038E LD DE,(L1424) 0392 LD BC,8 0395 LDIR 0397 LD (L1424),DE 039B LD HL,L0C1E 039E INC (HL) 039F INC (HL) 03A0 INC (HL) 03A1 INC (HL) 03A2 INC (HL) 03A3 INC (HL) 03A4 INC (HL) 03A5 INC (HL) 03A6 RET NC 03A7 DEC HL 03A8 INC (HL) 03A9 RET DRIVER: 03AA PUSH AF 03AB PUSH BC 03AC PUSH DE 03AD PUSH HL 03AE LD (COMMBUFF),HL L03B1: 03B1 CALL WAKEUP 03B4 LD HL,(COMMBUFF) 03B7 CALL SEND 03BA CALL WAITRQ 03BD IN A,(HASTAT) 03BF AND CD 03C1 JP NZ,L03D4 03C4 IN A,(HASTAT) 03C6 AND IO 03C8 JP Z,L03D1 03CB CALL READ 03CE JP L03D4 L03D1: 03D1 CALL WRITE L03D4: 03D4 CALL STATUS 03D7 JP C,L03B1 03DA JP Z,L03F7 03DD CALL WAKEUP 03E0 LD HL,RQSNSTR 03E3 CALL SEND 03E6 CALL WAITRQ 03E9 LD HL,ERRCODE 03EC CALL READ 03EF CALL STATUS 03F2 LD A,0FFH 03F4  LD (L1429),A L03F7: 03F7 POP HL 03F8 POP DE 03F9 POP BC 03FA POP AF 03FB RET ;.PROBABLY THE WAKEUP ROUTINE WAKEUP: 03FC PUSH AF L03FD: 03FD IN A,(HASTAT) 03FF AND BUSY 0401 JP NZ,L03FD 0404 LD A,(L141F) 0407 OUT (HADATA),A 0409 OUT (HASTAT),A 040B LD A,SELECT 040D OUT (HACTRL),A L040F: 040F IN A,(HASTAT) 0411 AND BUSY 0413 JP Z,L040F 0416 LD A,0 0418 OUT (HACTRL),A 041A POP AF 041B RET SEND: 041C PUSH AF L041D: 041D CALL WAITRQ 0420 IN A,(HASTAT) 0422 AND CD 0424 JP Z,L0437 0427 IN A,(HASTAT) 0429 AND IO 042B JP NZ,L0437 042E LD A,(HL) 042F OUT (HADATA),A 0431 OUT (HASTAT),A 0433 INC HL 0434 JP L041D L0437: 0437 POP AF 0438 RET READ: 0439 PUSH AF 043A PUSH HL L043B: 043B CALL WAITRQ 043E IN A,(HASTAT) 0440 AND CD 0442 JP NZ,L044E 0445 IN A,(HADATA) 0447 OUT (HASTAT),A 0449 LD (HL),A 044A INC HL 044B JP L043B L044E: 044E POP HL 044F POP AF 0450 RET WRITE: 0451 PUSH AF 0452 PUSH HL L0453: 0453 CALL WAITRQ 0456 IN A,(HASTAT) 0458 AND CD 045A JP NZ,L0466 045D LD A,(HL) 045E OUT (HADATA),A 0460 OUT (HASTAT),A 0462 INC HL 0463 JP L0453 L0466: 0466 POP HL 0467 POP AF 0468 RET STATUS: 0469 CALL WAITRQ 046C IN A,(HADATA) 046E OUT (HASTAT),A 0470 LD (L1429),A 0473 CALL WAITRQ 0476 IN A,(HADATA) 0478 OUT (HASTAT),A 047A LD A,(L1429) 047D AND BUSY 047F JP Z,L0486 0482 SCF 0483 JP L048A L0486: 0486 LD A,(L1429) 0489 AND A L048A: 048A RET WAITRQ: 048B PUSH AF L048C: 048C IN A,(HASTAT) 048E AND 80H 0490 JP Z,L048C 0493 POP AF 0494 RET CONBUFFRD: 0495 LD DE,L1472 0498 LD (DE),A 0499 LD C,0AH 049B CALL BDOS 049E LD HL,L1473 04A1 LD A,(HL) 04A2 OR A 04A3 RET Z 04A4 INC HL 04A5 LD A,(HL) 04A6 RET PRINTSTR: 04A7 EX DE,HL 04A8 LD C,9 04AA CALL BDOS 04AD RET L04AE: 04AE PUSH BC 04AF OR A 04B0 LD B,A 04B1 LD C,1 04B3 LD A,0 04B5 JR Z,L04BB L04B7: 04B7 ADD A,C 04B8 DAA 04B9 DJNZ L04B7 L04BB: 04BB POP BC 04BC PUSH AF 04BD RRCA 04BE RRCA 04BF RRCA 04C0 RRCA 04C1 CALL L04C5 04C4 POP AF L04C5: 04C5 AND 0FH 04C7 ADD A,'0' 04C9 LD (HL),A 04CA INC HL 04CB RET INIHDP: 04CC PUSH BC 04CD PUSH DE 04CE PUSH HL 04CF LD A,10H 04D1 LD B,11H 04D3 LD C,12H 04D5 LD D,12H 04D7 JR L04EA INIHDP8: 04D9 PUSH BC 04DA PUSH DE 04DB PUSH HL 04DC LD HL,8INSASI 04DF CALL PRINTSTR 04E2 LD A,'E' 04E4 LD B,'F' 04E6 LD C,'D' 04E8 LD D,'D' L04EA: 04EA LD (L0408),A 04ED LD (L0430),A 04F0 LD (L0446),A 04F3 LD (L045F),A 04F6 LD (L046D),A 04F9 LD (L0477),A 04FC LD A,D 04FD LD (L040A),A 0500 LD (L0432),A 0503 LD (L0448),A 0506 LD (L0461),A 0509 LD (L046F),A 050C LD (L0479),A 050F LD A,B 0510 LD (L040E),A 0513 LD (L0419),A 0516 LD A,C 0517 LD (L03BE),A 051A LD (L03C5),A 051D LD (L03FE),A 0520 LD (L0410),A 0523 LD (L0421),A 0526 LD (L0428),A 0529 LD (L043F),A 052C LD (L0457),A 052F LD (L048D),A 0532 POP HL 0533 POP DE 0534 POP BC 0535 RET PRESSRET: 0536 LD HL,PRESSMSG 0539 CALL PRINTSTR 053C LD A,1 053E CALL CONBUFFRD 0541 CP 3 0543 RET NZ 0544 LD HL,ABORTFORMAT 0547 JP ERREXIT SIGNON1: 054A DB 0DH,0AH,0AH,' ' 055B DB ' -PMC 101- Hard Disk Format ' 0579 DB 'Utility -Ver3.0-SU',0AH,0AH 058D DB 0DH,0AH,' This utility is ' 05A2 DB 'used to prepare a new Hard ' 05BD DB 'Drive to accept information ' 05D9 DB ' or',0DH,0AH,'to re-prepare ' 05EC DB 'an old Hard Drive that may ' 0607 DB 'have a blown format.',0AH 061C DB 0DH,0AH,' The drive letters ' 0632 DB 'M: through P: are assigned ' 064D DB 'to Hard Drives. M: is the' 0667 DB 0DH,0AH,'first Hard Drive and ' 067E DB 'N: is an optional second Hard ' 069C DB 'Drive.',0AH,0DH,0AH,' Formatting ' 06B2 DB ' a Hard Drive will erase ' 06CC DB 'all information currently ' 06E6 DB 'stored on',0DH,0AH,'that ' 06F7 DB 'drive and then automatically ' 0714 DB 'Verify the drive integrity.' 072F DB 0AH,0DH,0AH,' If a bad block ' 0743 DB 'is found while verifying, ' 075D DB 'it is marked and verifying' 0777 DB 0DH,0AH,'continues. Once the ' 078E DB 'whole drive is verified it ' 07A9 DB 'is re-formatted, locking' 07C1 DB 0DH,0AH,'out all of the bad ' 07D6 DB 'blocks found.',0AH,0DH,0AH 07E6 DB ' If more than 6 bad blocks ' 0802 DB 'are found on the drive, the ' 081E DB 'BIOS must be ',0DH,0AH,'modified ' 0836 DB 'and re-assembled to compensate ' 0855 DB 'for the locked out blocks. ' 0870 DB ' See',0DH,0AH,'your Hard Disk ' 0885 DB 'user''s guide.',0AH,0AH,0AH 0895 DB '$',0DH,0AH,'Home$' SETMODEMSG: 089D DB 0DH,0AH,'Setting Mode$' SEEK0: 08AC DB 0DH,0AH,'Seeking 0$' FORMATTING: 08B8 DB 0DH,0AH,'Formatting...$' VERIFYING: 08C8 DB 0DH,0AH,'Verifying...$' ENTERDRIVE: 08D7 DB 0DH,0AH,0AH,'Enter Drive to ' 08E9 DB 'Format (M-N): $' ERROR2NDPASS: 08F8 DB 0DH,0AH,0AH,'ERROR: Cannot ' 0909 DB 'Verify on Second Pass. ' 0923 DB ' Possible Bad drive.$' ERDRIVELETT: 093B DB 0DH,0AH,0AH,'ERROR: Drive letter ' 0952 DB 'is out of Range.$' ERMODE: 0963 DB 0DH,0AH,0AH,'ERROR: Mode Command ' 097A DB 'Error.$' ERRFORMAT: 0981 DB 0DH,0AH,0AH,'ERROR: Format ' 0992 DB 'Command Error.$' ERCAPACITY: 09A1 DB 0DH,0AH,0AH,'ERROR: Capacity ' 09B4 DB 'Command Error.$' ERRSEEK: 09C3 DB 0DH,0AH,0AH,'ERROR: Seek Command ' 09DA DB 'Error.$' CRLFLF: 09E1 DB 0DH,0AH,0AH BADBLOCKS: 09E4 DB '?? Bad Blocks were found on ' 0A00 DB 'drive ' DRVNAMEBB: 0A06 DB 'x: .$' CRLFREADY: 0A0B DB 0DH,0AH,0AH,'Drive ' DRIVENAMERDY: 0A14 DB 'x: is now ready to use.$' L0A2C: 0A2C DB 0DH,0AH,0AH,'Drive ' DRVREDOBIOS: 0A35 DB 'x: has too many bad blocks, ' 0A51 DB 'if you want to use it you ' 0A6B DB 'will have to ',0DH,0AH,'modify ' 0A81 DB 'the the DRVTBL.ASM file and ' 0A9D DB 're-assemble your BIOS.',0DH 0AB4 DB 0AH,'Refer to the MicroMate ' 0ACC DB 'Hard Drive Manual.$' WARNING1: 0ADF DB 0DH,0AH,0AH,' Any information ' 0AF3 DB 'contained on drive ' WARNING2: 0B06 DB 'x: WILL BE ERASED.',0DH,0AH 0B1A DB ' Do you wish to proceed? ' 0B35 DB '(Y/N) $' ABORTFORMAT: 0B3C DB 0DH,0AH,0AH,' Hard Disk Formatting' 0B55 DB ' Aborted.',0DH,0AH,'$' 8INSASI: 0B61 DB 0DH,0AH,0AH,' Using 8 inch/SASI ' 0B78 DB 'interface.',0DH,0AH,'$' PRESSMSG: 0B85 DB 0DH,0AH,'Press to ' 0B99 DB 'continue or control C <^C> ' 0BB4 DB 'to abort$' RDCAPSTR: 0BBD DB 25H RDCAP2: 0BBE DB 0,0,0,0,0,0,0,0,0,0,0 L0BC9: 0BC9 DB 0,0,0,0,0,0 RQSNSTR: 0BCF DB 3 RQSNS2: 0BD0 DB 0,0,0,0,0 SEEK0STR: 0BD5 DB 0BH,0,0,0,0,0 VRFYSTR: 0BDB DB 2FH VRFY2: 0BDC DB 0,0,0 L0BDF: 0BDF DB 0,0,0 L0BE2: 0BE2 DB 2BH,8,0,1 XXLUNX: 0BE6 DB 0,0,0,0,0 TRNSLTSTR: 0BEB DB 0FH TRNSLT2: 0BEC DB 0 L0BED: 0BED DB 0,0,0,0 L0BF1: 0BF1 DB 0,0,0,0,0,0,0,0 SETUPSTR: 0BF9 DB 15H STUPSTR2: 0BFA DB 0,0,0,16H,0,0,0,0,8,0,0,0,0 0C07 DB 0,0,4,0,1,1,32H,4,1,32H,1,0 0C13 DB 2DH,2 FORMTSTR: 0C15 DB 4 FORMSTR2: 0C16 DB 2,0E5H,0,1,0,0,0,0 L0C1E: 0C1E DB 0 L0C1F: 0C1F DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C2D DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C3B DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C49 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C57 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C65 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C73 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0 0C81 END  **** F O R S A L E ******* F O R S A L E ******* F O R S A L E **** JUNE 1985 JUNE 1985 JUNE 1985 JUNE 1985 JUNE 1985 ************************************************************************* PMC MICROMATE WITH DUAL DRIVE ADD-ON QUME 108 - PROGRAMMABLE KEYS AN UPGRADE FROM THE 102 TERMINAL PANASONIC PRINTER - DOT MATRIX 80 COLUMN SOFTWARE: T/MAKER III, ELECTRIC WEBSTER, C BASIC & WS W/FOREIGN LANGUAGES PRICE: $1,000 DOUG SISKIN PH:232-4165 ************************************************************************* TERMINALS: 1. TELEVIDEO 920 $325 2. ADM-1A $100 TERRY LUKE W (415) 829-1381 ************************************************************************* PRINTER: MPI MODEL 88 2K BUFFER GRAPHICS OPTION INSTALLED SERIAL AND PARALLEL OPTIONS FRICTION & TRACTOR FEED $200 DAVE THOMPSON 405 CALDERON AVE., #5, MT. VIEW 94041 W (408) 980-0242 EXT. 4166 H (415) 965-9717 *************************************************************************  JUNE 1985 JUNE 1985 ************************************************************************* PMC MICROMATE WITH DUAL DRIVE ADD-ON QUME 108 - PROGRAMMABLE KEYS AN UPGRADE FROM THE 102 TERMINAL PANASONIC PRINTER - DOT MATRIX 80 COLUMN SOFTWARE: T/MAKER III, ELECTRIC WEBSTER, C BASIC & WS W/FOREIGN LANGUAGES PRICE: $1,000 DOUG SISKIN PH:232-4165 ************************************************************************* TERMINALS: 1. TELEVIDEO 920 $325 2. ADM-1A $100 TERRY LUKE W (415) 829-1381 ************************************************************************* PRINTER: MPI MODEL 88 2K BUFFER GRAPHICS OPTION INSTALLED SERIAL AND PARALLEL OPTIONS FRICTION & TRACTOR FEED $200 DAVE THOMPSON 405 CALDERON AVE., #5, MT. VIEW 94041 W (408) 980- UCREATE COM .;LBRDISK2DQC LBRDISK2NQT" LBRDSK23COME;,LBRDSK23NQT, LBRDSK23SQT5DSETRSX11COM=&V1  7CREATE requires CP/M 2.0 or higherCREATE Library/Archive Ver 2.0 Copyright (c) 1984 Jim Lopushinsky 03/05/84 :¸Use: CREATE [du:]filename.LBR/ARC!\#}ʒ!]~ ʒ!eʦ!e’Allow how many entries: >   !~ʑG#0 ґT])))7,>7|g}oN""!<!>pEL!>E:GLÅInvalid entryoe!<!>ELoCREATE complete~#_#:[<=_ \\<No Directory spaceDžo$~# <w# E\Out of Disk space\<Can't close fileLBRARCDIR ->-,- - -;-!̤ -w+e l-Ow+e ʸ- -+6#?^  Í: ]0 AGyO+~#<I+q#45 w   *w#6?#!k045#%a{<_ɯw# WW W p# W ^ ^ .,:;[]=<>|  vvLBRDISK2.DOCU  !"#$%&'()*+,-.o/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST9agGQj(ڴ5y6a\\=>=஻Ö\s)r?IP9/ >SN*cH~9w)'n82 #"=஻ >\#'Qgk V#cD9J`DHc(N9G@V#]?D"/h4FjYa;ssIG02F0l*FQpE5F\m8 җƑ1k#Js:Ũ3T:Cm~5|>D rZ헋qu8< إ/6ƄdKXiEN˷Onx_3-џ#nD ϊ4t" ŨdW A6 -n-9Vrt`g>yN7pEX?-BX9y9GTPl)#pE`~G4,לλv7ra1,"4Ƣ>\ɖ>Αz`dKQc*Z+z$ 'Qc*WW(37Gq%hM rVWG:lvvbLX={9.@F1SfH@m+:[M0 !JQl)'nu@O2]nD\r;ss8RY 4QЖ-Dzr5yWuP##xNuO:B䑓u%Rr ΜPsM%[ 0GsK"F:ȐN&ΑFk rQ"|sm iTG9a7',~Ρ-[(` KM]N929WӍ:|[N9aw3T?@ABCDEFGHIJKLMNOZFFj~,%Oۏ%L{}%%VBl'*DUgj~B0"%{yet{,%p+F}, R;$PreS% AcHMl'`BL{WOZ %ߟ7nw*af;[p`kLVB0s>أ5{Jv+Nu:J +9)^VCIһ$Vɍ=wg>Xj 4ҫ9?KZ@IBU͢[oD_CƦ1?J^W})LX-uQn+8j֘)ɴ/D_㴒=aT0/dګ n;A+!!Bja{7$NuV£L ܊ۻM$A rCS(7V'Z +4iۻMܯ7KɴǻvB?81s!c#jj iܟ7ݒˍKS/HܬddګM\/?~^.7ݒˍK?@ABo_rx8_3}hHF2EOBvKl ; lNx Θ I̱zfM&!D!(Hbe)|8*p#)3ay[n>_O4m#^;Y- <O$a\6CF%v$:G&E /Tk9<bóQ8' #j?.3)C #63B3 &2d+3'gp6qa[хFGRlc!$ vggrɄ[}#Gb';,/X /I NZP+Dp^OkxZ CFapaGMj9̯t~w1ۑFF9Cgy4!*|>j9H4mm5/8aLHJ7H4uд\@}-`Lha+QN3$6}h Ǝ= 3<ؑh`cVK-'xeL_NT *|+"||v *r|=  >M o *p~@Q >͊"p+ #_M >͊"p*r+"r+   )vA=LBRDSK23.SETD  !"#o$%&'()*+,-./0123456789:;<=>?@ABCk/" 9=eֈ}]A3^o_e3btU;"OFV (vN9y3-H僶`~Kj{ cA*C[WkĀzmO8I5T>h dT @P$V\ zY e0#cW^C7|nfԻomWQ#4# S5,Yh ?b@vXqb{D"#VP0k!5&2b@Ibw+e3*14^U?Ibw+A ן'Hpw\'HPQ5YbpyF*75P|A*1 pjzW!5!nQέrXlX956=sfE8b{\j{Xc~K\c=61 63YTm'dc://yIjblfԻ!U[^+.,C7lfԻ!U[Ib!mDC7̨w[[&T:W8{Fka=[%`=|k5U9}?k4߯ibnfԻoNۑS>͊ _*(~^#V" *~ !"w#wT!!^#V"|))+*r >&1:  ?This version of SETRSX requires CP/M 2.x|*"ͷ*}X$.>:ʕ=}Not on page boundaryInsufficient memory*.^#V#*#N#Fr+sq#p#*s#r*.45. fú.RSX removed2;~#_# ɹRSX _A}>#N#F:= ڪ++ ڪW$ͮZcxʐ {ƒ~#o}oҌrʣb.;;>x~# î_A}>#N#F:= ڪ++ ڪW$ͮZcxʐ {ƒ~!RSX y; zqze*|>*G >k xVs#r+#r+6.""**#s#r*D`.45. F.~u. ^#Vx>`. s#rzu.""u1*"q* .:OD @H$0 *RSX LBRFILE LBR ARCDIR2*w# '* V 010  m͞ This version of LBRDISK requires CP/M 2.x|?͞ LBRDISK version 2.21 Copyright (c) 1984 Jim Lopushinsky 02/13/85 >2 8͏͞ RSX manager not loaded. Use SETRSX to load.. ~2  22"22:@͏]͞ No Library RSX to remove. Use LBRDISK ? for help..6. f.6.w+~͞ Library RSX removed*: ڻ.~ʵ».ͭ µ=. fÒ!#:͞ Invalid Library user numberE_:J@͏J͞ Library RSX already active. Use LBRDISK with no command tail to remove.Y *"2*$"(!!\ #}M͞ Syntax error. Enter LBRDISK ? for help.E͞ Examples: B>LBRDISK C:=* <--- Build C0: = Libraries/Archives from B0: B>LBRDISK C1:=LIB1,FOOBAR <--- C1: = LIB1 and FOOBAR B>LBRDISK <--- Remove the last LBR RSX B>LBRDISK C:=*,1:=1:*,2:=3:*,2:* <--- C0: = All libraries from B0:, C1: = All libraries from B1:, C2: = All libraries from B3: and B2: B>LBRDISK B:=A6:*,B4:FUM <--- B0: = All libraries from A6:, and FUM from B4: *.6:]?ʘ+|i"&!]~ i+~=p:2+~<}:"<=2#!:=͞ Invalid Library drive. Must be between :@͞ : and :@͞ :E:=ڏͽ*&~ #!\ #}i+"&!]~ T+~B:2*."(:w*.*0K *(K "("BK*.| :ʞ***,K *(K "("BK**| :W*K *.6#6 #t#6.w#w.!@< ;."*(K  ͞ Too many Libraries/Archives specifiedK "  `i":2:#2: 2!*2! < :G:2*$}d $.͟ =† ͞ Not on page boundary͞ Insufficient memory~#_Þ  O~#ʰ ![4:" 5~wW #~ :#N#F:=  ++  W$ Zcx { ~#o}o   b. ;;>x~#  +6#u ͔ V V D 5 : V ʓ 0 w GyO +~#< M  +q#  45  w V   I *N w#6?#N ! f 45#[ a{r _ɯw# ͍ ͍  ͍  p#   ʔ ʔ .,:;[]=<>| V   I *N w#6?#N ! f 45#[ a{r _ɯw# ͍ Z1LBR : y y)  !R͊~#foq AT x      a    a o$ 2 22!"n:­=22ͭ*("p!"*:$ʆ2r*"t!t!`7t^#V"|!*|+"||tt!~d"z*p~ẃ+V+^##s#r# "p**#"**.*zʄ~ ͊~_ _5ʮy O_!_>͊y O_COMOBJ|}}o|g=!y 2 :""!9"^:!21ZoD]%$]"z:A2A> CP/M Error on : :{av̋ ̝1>Read-only Disk>Read-only File>File Exists>? in Filename ?´>& **"r*("p*r|=+"r*p?:G~# 7+>͊"p*s#r#:w###{'28{<2{z_>W"~#_ >"T!_  "z:! _ :>{2ʆ:_{2  ͱʜ&"~*s#r#> ͊ _++V+^*> ͊~#6#6#>> ͊~w**~#Sgp M ~6g??%: >?} * _:?^2^:  !>?^#R(͝ *r}q} >&i*r#"r:ʮ?*r+"r*p"p2a!ږw4*n*p~ ># _>͊>##~!>w ww͒ g?:!ʵڵÖ!ږõ !~>&*<& @*<ͫ gp !~! >&! F!~>&h R*z} ҝ*xMe."z*! ~wրw! 4~!##~!w*z} p ! n M*z} @*! ~w րw! 4!w*z} ͱ>& &"~:'G:*# hx*"H *%>͊s#r++w+w+!%N#Fp+q>͊w#w#wͫ *~Ü  ͳ!w ͳ>&*ʤ & *  sͫ g: :o  ͳ &*#Sͫ gp ͨ R*!!N#Fyyx! w!> ##~!w! w*z}շ: *~#fo|\ }\ *ze."z*z} p !!^#VM** ~#fo@ͱʣ & N#F!!q#p#wg :&:- :,!>&*(**"r*r|, +"r@H ! **#"p*.J J "**pɯ=:-*!~!~#fo"x!N#F*x DM!~#fo>%͊q#p! !~#fo#S>͊ _*(~^#V" *~ !"w#wT!!^#V"|))+*r >&!>M + T *|+"||v *r|=  >M o *p~@Q >͊"p+ #_M >͊"p*r+"r+   )!"w#w_ *r|¦ >M *p~@ʺ >͊"pÔ # _+F+N##^#V#"z +s#r#>*z͊"p*r+"r” T *r|  !  *("p!"r**"|*||@> *r#"r*|+"|!+  M " )T  ! ~<> &>2*("p**"r2!pt_!tp_!N#F!!^#V`i>&&)))))))! ~͊"x!^#V###N#F! "!" q#p*ɷ *xy͊* ~#fo* N#F * N#F`i" s#r*>͊s#r~w_  UUUUUU@DHH$I $ $@@@ "$ HH$$D "@$ @ @"H!$D I$B@B$$DH@ DHI$ BB"HA$$$!$D@D$" $I$I D$@$D H I !$II$ @D HHI $$@ I"$"HI"HDI@$$$H I$A "$HB$@ @I"!!$ $D "@I$I !  ""!F NULU 1.1 (02/03/85) Copyright (C) 1984, 1985 by Martin MurrayUPPFD!9"2*L&###:MO *<"!9*ODM) "<+ã-OWORK-LBR.$$$ NCF NOF LBR Add membersBrief toggleClose the libraryDelete membersExtract membersFilesweep modeGet filespecKrunch libraryList membersMenuRename membersOpen a libraryPrint membersUnsqueeze membersReplace membersReplace/Add membersDrive/User changeView membersExit NULUDisk directoryZap disk filesRedirect inputRedirect outputREADYNext memberPrevious memberClose libraryDelete memberExtract memberFind memberLog new drive/userMass operationsOpen new libraryPrint memberUnsqueeze memberRename memberTag memberUntag memberView memberWildcard renameExit NULUDisk directoryNULU command modeMenu?DIJKMNOSUVXdktsambiguity errordisk fullinvalid drivechecksum errorCRC errornot enough memoryuser cancelNULU is READ ONLYcan't make filefile not foundCP/M 2.x or higher requiredseek to unwritten sectorno library directorylibrary directory CRC errorsqueeze decode tablebad syntaxundefined <".=}1-<:I!"{_Tm<k V>VI2*#"<"!r+s22ͺ0!N#=_< 6!"5>2yʛ:2S͂" Û2&2l*5>u!I͞2$%;$>2$%!313 <>D4:<2*313 closed. 2:<Į*~-#~Gx<*6élS! -!3Console input to be received from >OͿ'ʎ:2,2*ZéI6l:*ēIV! !3Console output to be sent to ͮ*2̈́9*3>KͿ'Iʔ2:<2<ͩ!7l!S1>UI!",!3Press ^C to stop...ͮ*:\!- = ,:*\*+̀.u!3Deleting: ͵->PD16*,#",6l*5% :Hʜ\I%I͂8I!3Undeleting...͏% !3 ͧ%%*%*%*%..%"%"% 13 cannot be undeleted--name existsþ &þ8~(#>);6 +6>2H:X jX x<6:S2S> ͦ;2 2 Iz } !܆3~;>܆3# y½ >=2 *3>2 Õ 13 | Õ ͽ21M2:R;=*3/*3M2ú0e#?!:2H<2ɗ2[ l̈́9**5>͚9I*5"J*"P!"̀/!"4 >O2# :*8:*;$yʷ`i#" " ͂8@ͽ<͏% s#r#6 #ͧ%:=P7s#r#ÿ ͂8@8!"*4  *3! yʷ͸: "4 <"D 2v <"U *3!F13.>4!4&-.."5!m 4>  7>k2s 13 : C3O5ABCDEFLMOPQRTUVWXYZ? x y;!1:*4 # *4 +} * ð Á 13elete?2- *D Õ ͧ%!3Deleting: %:>OI> &13xtract to: \- 6 - 13ind what? \- O >*w#w#w%- ͏%BK͸:K *  13Log drive/user: \ʁ "5͹Á >*!3Delete, Extract, Print, Unsqueeze, or View (DEPQV) Enter one: C32+ O5EQDPV- y;# !3Destination drive/user? \\b,I- ->:;#6H >D7 # 4&.."5$ # :+ Dʕ - 13Library name: \ʁ "5SÁ - 13Unsqueeze to: \- - 13ename to: \- <Õ 5* >*"22 13 Tagged = F>k;æ 5 :> - !3Old filespec: \- <<O_<"5!3New filespec: ë a Á I8!"5!"̀- >!/45C3O5LOXYZ?y?{ { ͥNULU Filesweep Menu>͆32 2C>28 !\%> 2 No members. g÷No library open. g'313+9 !" 2$!#" ͸:<>2 #N#F<*4 ##~" #<**5"]*<"5*͇5!"5*>"#;}6#"?O:# ʂ2y2# 5BCFKLMXY>y5'":;HJʂ:ͩÂ" ͩÂI3 lͩSͮ*921Insert disk containing !3 and press RETURN̈́9͚9!="5"!~6‚>!3-::# ʟ5ABCDEFGKLMNOPQRTUVXYZ<>?O!͚7͓75(5â;> ;b>:\313:>>X*5::*|&n5]7 Â!͇5"*528>*7:"͕"!+" } ͷ3!" !" 6:,2&>D4O*5> Hw# C͔>4&2͚9ͳclosed. 2!ó7!3CONOUT file 13l!3 Krunching...* ̈́9;$`i""͂8ͽ<͏%4&#x<͂88G+!-!<͓7Vͮ*D1>͆3!-13will be krunched to >W\3>͆3*3ʎ!"ͧ%"\"!!V1!"."%!<":}"*%}:13 CRC ERROR-Continue?2}!}+"!3 Copying: !#" &#!x<"$_<-ͧ% s#r###"`&M+>5+͡(5+y*!"!!"IMŸ*,DM!"\>Oq)}*,"(.4ʟI&2* ̈́913Krunch aborted...reopening old library>K2# *5!"5S"5ͩ8*I}*,DM*\>Oq)}\D1G+!>:;#>.5 213 krunched.ͩ8!"I*3IL% >N!͆32>-2C>28m!%>?2'3313 >͆313Sͮ*M2͘2ͺ0é2>/*>G+*<-V1Cannot find !3Replace it and press RETURNʤ1®*:# 5KOX©!3NO LIBRARY OPENéSͮ*! $ʲ213 open. (Buffer size: *,* ,:>͖:F13 sectors)ͩUI:>UI!<> 5(513 not found. To make it, enter the number of entries to allow.!"!3 Press RETURN now to abort making the library. Allow how many entries: I~~<~#(5É!> /4ʑ}4}>NI͸:ڪ͸:ҼDM!=;6#D<"l33> b3*5% :H 33I!3Library '322'3O>?>4B*3>;y;> ;(5#:222+:<2<*3(52;*D4ʚ*5͇55~:Úͩ*6" :*ē*3>M2>2:.=1m<*P ͓7*2</<!"*P D<2}.q͓7*2bk.s#r.l*5% *<͸:>sI:HB$I>Oó>Ró:>OIé!3Brief now O:2š>N;73FF:<2<:# 5'":BHIJLMOUY<>>>?2# G+*<-> 5(5͂" >7 5'":;ABCDEFGHJKLMNOPQRTUVXYZ<>?:*͠&n>*u3.z6 i O5n<Sgb? a 6  \ S u { :CV )(G8G0*<  "\b,:ͥ:"))j&*!;>PͿ'>2<͇:͸:'*}+ !.͋&" *+6s#r*+",&*$M¹<ͽ<>KD1*&>M ͺ02"!3Library: ̈́*!3Name Index Size KiloBytes CRC2$%>!%"<͏%,ͧ% xͶ>͆3!3DIRECTORY >͆3Û*3%>3ͭ>3ͭ>3:=P7ͭ>3:<>2<*%<4>0 7(52<Û"<*U%jͶ*f%ͶͶ>͆3!3Active sectors !3Unused !3Total <2$%>͆3ͳ(5<4> 72w:+2^'՗%<͂8< =b,%\BKJ.%ͮ*!3Extracting...!H'"{/:^'*:%͏%$. <8!3 ͧ%*%-\13 to `&<͡(`I&!H'"͏***"L'*+ "I'><´."I'tIô*+:"(!<̓<**:>tI!*/"͠&÷&:^'**,*%}:>KI\b,BK! =J.I&\92͵-!<->K;Ϳ'I* ̈́9:<&%*,>͖:!DMq)(G+ͷ1921M2ë%!3Deleting...͏%<ͧ%!3 %y–> &͞p> &p*%+">2< *+"!6A !3Active entries: *N%F13, Deleted: *_%F13, Free: *\&F13, Total: *%F13.ɗ2<>OͿ'!"Z&"^&"\&(~ #~ P###<<"&))j&"%"!9" ͚9;*<>Ϳ'>m:͸:!"+{DM>O!(*+",%{:>kI*+ ~B& x:+ >M&>d̈́9&%:+2^':͏%͡(g I!H'"{/" !͏***"L'*+ ."I'Ž tIû *+:"(13---> !<(5**:>tI!*/" !o!:!>͆3!3^C=abort,^X=next file,L=next line,=next page>3>2*!*3!!! !I; >=2*!o!A!:2*!> b3C35 LA!!V!:`!e!j!<`!>,!>,! :<2" =b,! ="<+!*$-!",}2":>#!"$2$%#>#*,#", =!*$ ,6#̓<=$!!*$>.;#$!Õ!!"$#*3%1"<"$$1">Oc"Rc"%13 already exists--not added.Õ!:"Rc" =͵-13 not in library--not replacedÕ! =Ͷ.Җ"͵-13: Cannot add an 8 megabyte file!Õ!"#$> &<$͏%"ͧ%"#*#:¤"L#*#>D"13No room for:  =͵-< #*\&}>f #13No directory space for: "*$"#*%:L#*#$> &•!2"IÕ!*,+}>U>2$%!\"<+$e#13Replacing: t#13Adding: "# &! =͓7̓<͵- q#p###"## =1*,DM!"#>5+͡(5+#¹<"<*#>Oq)"#*#"##õ#!> &q#p<$͏%ͧ%͸:#"$#!+|#ͧ%!'$.7LBR!<%% =b,\J.%͂8!3Renaming...͏%$!3 ͧ%*%! =J.*%*%`i..%"%"%$-13 can't be renamed--new name existsq$<2<-13 to ! _<-q$%8͞<2m%\b,ͽ^%!#"N%!"U%l%!#"_%!"f%&%s#r#&%"%DM"%y>U!|+"%!^#V#"%!:<*,DM"a&4&"%<~ <<<"%"d&"g&%-*+ " &6#6*,DM;"4&>2<~!Z&&&<##&^#Vr+swB&+>͇:*+!Z&Q&<##G&4W!A9 p9~<͠&7#|&xʝ&~͠&ʞ&# Ì&<͏***w:<&**+|&''<*+#"+<<&>&͏*<'< ':***;''2+͝+*+8<<*+DM͙.G+*+s20>D¹*͡(*+ "I'͏***"L'>*H'¹<>*+DMͧ' '*ʤ'!Ì'#"+*+͸:>Rڽ'*+ ~ɿ2^("D(`i>ͥ:>͇:"'(:+**+:NG~'#'>F:N<*;*94PY: (>͖:>͇:$(>$($(>MDM:1(BK*<*+s#r`i" ,͝+!:^(=$xe-*+* ,*+͂8*G+!$>;:+*>2+:<2<* ,DM*+ɷʷ("("(`i"(!",{*,!>O("(*(:"(U+M¹<+")"8)!"1)OM+PY* ,:L)>͖:|>Mg)DM*+s2G+!#")̓21Q)_+g2!#"1)!+"8)|c) x^))>Rg)>X*)+")d)>Md)͖:|>L)DM*+s2G+!#")̓2 1)g2!#")!+")|) x)â)>R)>D*)+"))>L)<*<*+:DM*)*)#!"+*!"F*͏***>͖:|>Mu:NO+*< ͂8+*+O:N+>B+!+ "+!++ "+<"+4 "+!"?,!s2b,<͘22\,3,<ʷ2O!+"?,}1,y!O #b,><÷2:<2Y-> 2<2<20-22S-! >  ;_<>:;,6#}4ʸ,|¸,:Rg}Ҹ,2S-~,6#ʹ,@O:Q$-y,1 ~#*,.,-,?y->,,x, ,+-?-2< -20-x+->I,-=>C-> ?bk#;y2;!#>w>2<7#ͰPD11Kʒ-2-1>Mʱ-1!<-(5ɗ-> !<->:;#5(5͘2:<> 2<2o&1@w#4D< 6:#x<6.#x<62<÷2# >._<~> 2z.#~?h.?g.2z.~=T.#PYx<>?< #~?ʒ.<….<`i|g}oҫ.# ."<1͘2#<# .+V+^<ý2<v͸: /2t/22/<"/!"a/<͓7 <͸:$/"//ɗ/>t/!]/>>/=22/>m/Y/m/P/>==22/:O>„/ʾ/O>=2t/yO!ғ/##^#Vzs/y2q/zʭ/{/*a/:>ʾ/>J<1@2/@@0<13Drive : Total *=]T*=#zW{_0+/:=0)= 0F13k, Used :F13k, Free F13k<<:.=1{0*<*͖:<ͺ0<*=#ڗ0W+|ʦ0ʌ0zÒ0`i:=ʵ0)=°0D÷2͘2!s2<<÷2<<<͘2<<>S÷2͘2<<>U÷2͘2\$_< _<mx<\<<>U÷2=w:%<<_:Qc2<<<<*< s2"<<<͘2!!s#r#6ý2222!#~2~w"2ý22>2!w <<_ <<1<13 (y/n) C3N3Y3;>͆3>2R;*313*313 (5(5:ð7<<*<#" ;3:<2 ; 4*L4++"L4D4##"L4O:L!=#6+qY4w <^#6{<<4(5՗24D<42"54: ;> ;T55:<5G:R;55> ;> ;55~#;)5+ͽ5"5=~ʮ5ʬ5#Ͳ5ʕ5ͽ5y~5 #Ͳ5½5<7O;U~̰Mڡ8*9*O:¦8>TDM#"9*!9 w#s#r9ͽ<" 9: 9"88!|!#~#09~;9͸:##9++~<2V9~>2h9bk"^9<>=2V9!##"^9><<;*9}: :<*9:ڕ9"9<>M!"9շ9_29DM99ʱ9W:929ñ9!9>՗2:>x:xGyO99!:4)=9:>y"Q:}|B:3333xD:՗yOxG{_zW:z[:}o|g!"Q::*Q:<`i͇:DM`i͖:DM͇:}/o|/g#ɷ}o|g=È:|g}o=×:|g}oҳ:#=æ:PY:}o|g>7<>N~w# x:<_ <<<y;͑< ;;_:<< Q; Q; U;Q; <:R;= GU;>G:J^;x2R;< _~;͓;:;=ʁ;o;͕; ʍ; >2; ><2;:<<W:K ʽ;ڼ;ҭ;ý; y>?!" ,",Ͷ ͖PDrive :,A+:,<>*+>?=_o&12,: !" ,#"*,",,U!;,J}+5#" ,C*,+" ,#b",!",".,"0,1;:,29,* ,#}ˆ No files.͈XʱLSwM*,b͈G!M!~ȸ#ʬ##ß^#V:,_:,_1ͷ*,,K in # files. **,K free. B BB_XSwDgTUVyPnE8LCM A R#FEWY?wQE *,#",* , M!",M*,|+",M* ,",M Which drive? :AMQM :,GA2,PU**,K remaining on drive A+>:+x2,PM Which flags (1-4,R,S,A)? !k, 6#!~M#"=,*=,ͬ#"=,W!\k, Q#D,>,>Ï 1234zzzzRSA Delete file? ͈YM*,͋Mb]2\ >6>_^:e R/O. Delete? ͈Y:e2e\\* ,*,{ozg))))x#~# x* ,+" ,*, +", Erase Tagged or Untagged files (T/U)? ͈TqUMT>y2 , Do you wish to be prompted (Y/N/A)? ͈MAMNY>|23,!",b~G: ,3 Deleting ---> :3,$ Delete (Y/N/A)? ͈AGY3͘P͋5#* ,#}G+ !",M!",U ~6v#*0,"0,*.,".,*.,K (*0,K).ͧ*,bYB Tagged files = ͧ*,bvB~6#*0,>"0,*.,>"., New drive/user/mask? !~M#"=,ͬ:\,:,<=2,::,E:*>E:,2,:] ]!]^ 6?>!\, >ü2,~ʄV#v2, Illegal drive code.Mq:,2:,:,28,~0چ:AچQ҆A28,#~:ȷ*0:'G#~:0602:,x 2:,>2:, !^#6#p#~Gw" Copy to drive/user? !~M P#͢:C,:9,G::,s:8,G:, Can't copy to same drive and user.M*,b2D,E, >~29, Copy to (filespec)? !~M#"=,ͬ*=,q:] !E,] ~# :\=28,!E,] e!]E, 怶w#( !\j, >ʹ M Squeeze, Unsqueeze or Reverse (S,U,R)? ͈2,Sʉ Uʉ RM>Ï 2C,:,29,ʥ -!b~+F< x29,:C, :,G:8, :9,G::,  Skipping, same drive & user --> < :C,, C  Copying --> W  SQ/USQ --> W  Setting -->  to :C, !k, ~ģ #t !s, ~̺  ~ĺ #‘  ~+#© è 1 2 3 4 R/W R/O SYS ARC :8,A+::, :9,o&  >:+:,  with CRC.:C,3 m ͺ 6 3 6͘U #* , Ҩ j  --- Aborted ---MD, >~6>29,!E,k, ~ww#” D,!E, >6 !b~  Retagging --> > +Y#* , Ҹ M(~# + )~ +## ",͸n *,"!,*,¬ v f *,:,U R ì *,:,Rv Uʬ !.`!*,¬ !D,j, 6>!s,~ £ 6Q#6Q#6Q(!k,# >.+# )%*,͸!D,v%9!.  Not a SQ file."=,"A,::,͜2:,!\j,6 >%!ͺ 5 _! *A, 9 ERROR - Checksum error in file ssgon  Premature EOF on file... aborted.Mú ͸ :8,G:, :9,G::,ȸ͸!D,j, >2j,!"?,%*,"4,D,"4,*6,  :, Verifying --> !v,w,6>j, b> +Yý#* ,  b]> ~?#*,b ~29, New name, or *? !"=,!lͯ#~ M ?ʶ#a::,v:9,w*,b͹. P*,* ,#" ,C*,+" ,", M!",M:,28,\2\ >:e:e2e:u2u\::,_:9,_!mE, >2D,ͫD,*,J}R Destination file exists! PM::,bG:9,Š:9,_\_!m >:9,_!\D, >ͫ2D,>?2P,*,D,J}}",ͫD,!mE, >ͫD,!)))))*, P,>D,<0P,>:R,2R,D,*,+",}#>.} Directory full.M<h!=!o >*6, Ҟ OUT OF MEMORY?  ~29, to Ͳ!m͹G:t2t#* , >. PÍ~ʯ F: ,ʜ?ʨG># œɯ/k,m> ?~#=º::,:9,:,A+ n&}  >:+y > +`>.+`*,#. #~#> +K : [*[#y+~+#`>2<,2<,<22,Press ^X to abort, L to advance a line, cr to advance a page. >2;,*,b͸{ v !s*,"!,!. ! *,"!,"ͤuu{suu_ 4:2,<22,:;,O:<,:2,G:͐Lklkuu22,:2,=22,M͐ Gͤʐ́GX!P,Q,6>D,2D, >~ͫ29,*,"!,",D,< Can't open file!M_:8,_::,_ :,_:9,*,"%,"#,"',j,:s,2s,Ͳ<~:s,w:s,2s,ͲͲ< Destination disk directory full.M!v,w,6>D,< Can't close file!MͲj,j,<:M,:s,2s,j,*',*#,G x1w#"#,9*#,*%, j,*#, I*%,"#,*,*!, ʇ~#"!,*,"!,", D,º*,",•s*!,*, s=* ,!;;:\=2,:m?>2,!,~ ,6? >~4# >~##~#~  x>9'* ,",+|*,|ȯ|g}o",b#",* ,+}o|g",!",*,",*,*,",ʰڰ*,*,}o|g",ʰ*,#",*, My*,b" ,*,b", ~O##* ,*,Fwx# |}!",",#",* ,",]/}F*,",#",*,+",|#*,b* ,>*,#",*,b" ,*,b", #s* ,~ʵ F, xҵ:,ʢ?ʮG># ¢ɷ!",,* ,#}!;*,,",, x'  d } y00> +=% ; |1{0+ }0ҟ*.#*.~.vg xʇ|-q#m}o|g:),ʛ)=Ó"*,:,_.*:GxG|g}o ¹Û^)))))#~&o))))o$#:),8)}>o}}o}}o}#~#>a{_:,_.>:.2),".k&&* ,ͧvk&*=,ͬ!\w=&!\*=,ͬ:, O0O::,&xy"py2:,͑L#*<6?>w+͑SB#6 L.|͑|#*l6?nw[͑ʃr#6 |#6…"=, =_.:;<> ì!,!yg)>g>!or$s%# »:,~# *?,O!, ~W$^"?,  ~#+ _{>F>L_!O! ~#G~>#T)))); NSWEEP - Version 2.05 04/11/1984 (c) Dave Rand, 1983, 1984 Edmonton, Alberta $ A - Retag files | Q - Squeeze/Unsqueeze tagged files B - Back one file | R - Rename file(s) C - Copy file | S - Check remaining space D - Delete file | T - Tag file for transfer E - Erase T/U files | U - Untag file F - Find file | V - View file L - Log new disk/user | W - Wildcard tag of files M - Mass file copy | Y - Set file status. P - Print file | ? - Display this help X - Exit to CP/M | cr, sp - Forward one file $"V!"X!!9"k A!v;!>2R!2U!A!"\!*V!s{ Gp#j  A!"^!;!A >*X!"Z!|q A!s#r#A!s#r#*Z!+F 1>*V!*\!a{_USQ section (C) 1983, 1984 by Dave Rand (403) 484-4114!9"k :U! =2U!:T! >==2U!:T!2T!:S!O:R! !sj O>=2R!yO*X!!##^#Vz y2S!z>8!{/|}sj sj go>2)" *!9"`*1`** *}o>k)")"*"*)2)5)¡!>n%v͆)¯!>n%}2)(|!A)"!)!#45"~6!G+~(!">(<(""#4~¼!>(~6(:)2)(ü!:)/">(<(**^#V#N#zJ"#4">n%~**w#s#r#q#")>2)#^#V#N#~#2*{":)G**#͌)ڔ"####}"y2*ð"*)y2* }O|GT]+͵)+:*w#s#r#:*w*)####"):)<2)b":)!`("45"""#"!_(p2*2*J(g2)2)<2*2*$>2*!))͙)ڰ$2*!):*k):*Nw:*/<$G:*$4x2*$!*)ͪ)!):*k)~2*:*$w:*#!))ͪ)#>2*:_(!*4$>2*#~!)k)~2*ü$!)b*2)*)))>k))")!")!)p)~w6#w#w#wp)b*!)b**)*)͆)>n%*`**):)%""*!9"`*1`*!v&*)&!)")*"*#~ ʶ%&#¨%>.&xk)~ %&#%&*)&))*)~&#z%2)2)>2)A)T&A)]&!)7-T&~6(&G+~ͣ&&T&>ͬ&<ͬ&T&T~%>ͬ&~6ͬ&:)2)ͣ&%:)o&>ͬ&<ͬ&>_)###ͱ&:)ʎ&G:)†&&>2)*)|>ž&*`*¬&ͬ&_)F#^#V:)O{_zW:) &&2)»&y2)}&|:*'':)*)*)G:)Os#r#}' z'>''")")y2)!)4~>'2)!)~w:_(=GN'>n%:*\':*‚$!_(p:*#2*2*#_):)w#*)+2))͵)!")"))!)C+)!)p):)!*k)4!)5:*'*)6:)O}'7zW{_~'A+~+}' '~''s#r*)/w#6#")}!)4>_)###!'(u'*)>+w+)կͪ))Â*((x!)4#4#4#4(((o&))**4#4#4ɯGO**w#w#w#q#  )!)w#w#w#w#!))ͪ)!")A)oA)gsI)*)k)")!)4#4#4**Gk)xk)xo$շ#s)}o|g|}##~+~+~H + Ÿ)x ~#ê)x ~+õ)yxX+G]T~w+r*kb n*x%+"*+",+Hi&)))#"2+!5+<+Aw#¡*!5+".+!<+"0+*,+A#º*!+A**+~w#*!2+5*#5%+*.+A~w#*y24+*0+DM*.+*,+#:4+=24+*?**.+*0+".+"0+*7&+*.+xH "+!+ "+i`)))#"+A!+6#b+A*++~wn+kbA+~wy+Ҙ+*+!+Aw#Ž+!+5j+#455j+:H8=!:== %"#=+!z8>̀,:Jz+_.:d92.8:H8s,:-8`,8:-8>!*86͚,ͤ,2'8!386,ͫ,8?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^ 0_`abcdefghijklmnopqrstuvwxyz4>VEu:=;63+]/,{|}~.-&I<9821TMFA)('%%vȄ[< _{^| WxbkW;Kj~A^8}|慛O~eLO#Az8d9ԮvEcHן[YhzECw/UՎW =\^ן^n5+C//;2Xo,_7&X6@y*&m¹Up峍8Զ ׿\%o\R*8_6F ~Ҷʮ??o1.jjZ!hˋ7.TE[*tQ(L]) TSR=xk׿TL&ylJLPQP+Kd&$V48xnqeq}VgІU }\UfeJ-n{3|ڋCW^{kq}=[yz2Z0zh;ЕRʚ؀\z]Lme+Ffwǝb±x }wOňP,mڡWۄqеC-z}X;m)cGI3tI-,İصYcȎC&(cJڴ9& @4j , Fv//{ԣR>:T) =BIڶBI]4#_+6r ciGP-z2AgdeҘ z4С jeUOemsA1Vqd&8PEӕz*& K sTNPGzկf%¹ ,U$\ b sG?xE!6a,f Fwj1zGO3:('\h3ģM#Lzc6ʮZ,xkc^%čG=< C26GOcڌ<.hŲ=\h3ģӄClME9H`mV4B`jS8z=h;ѳ?tc,]X{\އQ-XO[ F-8s3<=L3 ˱\$TMAP-TSTKd aC:MJlGO&8yܬ Y32,ɴ;(= СT"˚ذp}p/JƹUpY0O,Zht 0o:epsl$^{-U܃:E,MFc%6񌌠Ųxm,emzX6*{x 64Faq/J>RV-}hN2GfЉa%삋+xEۿzC(삋+#TLJYe0V|\$܋OСT- C -: ̡Hz.rcY0t/Kmɴ HO\$@4ڌSTL](n!cxIn!tUoCK"Y]¹;UUqQp Hȍ1dG=ypHHVpo/eG""=^[i4@O&茲Lsd(0t/DžwMY&C w@貋Kr cb_n|3| Qi(eY/ -H:oi3"lf.h^ӇxIna0t/COc-h,BئM`#ɃnԎdECY}<+*CہFna0MӘ[d"y\}CJqw8:CA4CEYzOpѝ Z cȎS1gUTǍJtGy>e v%삋pm ""Y]¹;xȮJXP .z*&4 Hȍ1dGVCe6ZSLun>GOS JP-dJ jCyqxc[(#4Xq!HV4 .6roCSf8{=AOEsGwܜj[=A}B-pS1Fc#J p;c_jVbZG v%삋Cv $XaRzsGw~8; Ų ="bnF]GڴPsT0t/ eejEU=@5^4# iC ]8C '*06=@OE 3.*N0tȅ+`J<&Ð=)z*&9 ep4󐉇c LUlL Z8~6'fw[>?p{p1I**r}B/RX1bZ 3*E'\$ ]Ȇ<*qB+yh;Xz2Fn -H}|0t۴B'" *7k %WBzӹ?}ܻɹ1-EW=x ypN =qy6߼zɹ1-͡Xb%@:21.T3uL (iB6 v1 .Q k3i|#;(&BG(٦d .ZtF.k3bHF =qy6Ϯ<<|8_q scZ FJI84J>P0tH1A&Y#L J"a%`\#KQC&Rv=)Q¹ON>8(+#J6G0P6hV2] pA0RY#BOc4J>A6j.̃tV4)XǨYesl@|Ŏ6J6$&;X`n= cUq1*!]q1 ΋a =1\qܬVXm1t$1,eB84R22aGBl삋6l1tQǔߡ.a#@cG=}h;w"'k3- X̶+ .T LBEB7-x YJZԮvW' 1,v+OSVjwܬVX !KE,,r@(JLXެ].;U* ǛTӯ<>Ƶ{ڝɛ8jW*v;zqn 97Ÿ91+{jcuF`Cb#0t?`eL9vtTsئ7y<=Ë3СT- C -: ̡Hz.rcY0t/K1.*">!"i͗*>"_!%4!ѯ2%!$4G!:w:G:%_:G:$_Ó:G:$_:G:%_! 2%2$G!!~#_VCT1Kaypro, no hilite  =ER@) Tab stop (2,4,8,16): !!~0 0 W{__#{((( (> 2/=21,ͮ>2/_ɯ!hw#Ϳ\<(+\ & ( (#w+|(7 6 _!\l !'l\Ϳ\<(*~͒~ > ͒# \<>2/>2/(\͗) VDO24 Ln Cl Insert FC Space f:$:%>2$>2%G[:*d#ͮ> 2%G*;&#ͮ>B2%G`iͮ>42%G*[R#ͮ2%2$G>2%2$G:\( @>:!]~ (#!e>.~# :%> 0> N#F#>0 0<330 z0= (F(((w# 0 @>^>(+~!%5 05G> > 55G6*+6 *%6 +6 "+"!"*",BDM[*"S[*"S*R[R0 [R[R*DM*m**DMm*DM*++m 0(ͨ 0(!"d*͎*">2=*w*> G(##"P*[R|(DM*> hSd ͉( ͉ !8ɷͨ ͉ ͨ ͉( H  ͨ 0 >2=D  0(ͨ :;_y8 ͨ (t  58>2= 0 *> (##" 58(P*KBDMx7*d+"d*++> (*"##">22͆͗Ͳ+22͆Ͳ+) Find: !.) Replace with: !) Ignore U/L case? =((>Y>Y5>20!.~(w#>N520) Backwards? =( >N5>21>Y5>21:2(3d:/[!.>(#S[!~(#S>2=:0G:1.(*+ͳ(+8"͎*#ͳ(#ͥ0+w>2/>2/O~#ͳ+a{_= :323>,2%2$G:3(!4!7~# c*~#" ͋ :;OX /H :;OX  H *~#͉( ( ( ͉(~#+":;OX /c 0 ͨ *ͨ 0 "ͻ2%>2$G; Y *"**",*,|( **|(R8>2/7*R8#͎[R[+w***,| >2/ͺ P͟ ͘ *,[*RB8>2/*[*R8*[,R0F>2/**[R[*,[*RDM** "**, ",[Sͺ [**,RDM[#Sͺ P* :/[*R8 *,RR ͺ P͟ *,ͺ **"Pc) Erase all (Y/N)=_Y*+"*#"c2\ !]6 # f~#5>2= 0 ( (>2/ [*#R0 GO2:ͱ8~# ::<2:t ::<8 2$y2;xP8ͦ k 2%GxMW>2<*> #~#t x82%GGͱ8~#5:%X /!$52%G52%<2$Gͮ2%<2$G*Y ɯ2%<2$Gͻ2%>2$GD ; Y *ͱ0*ͥ~# > ͱ0*ͥ~# 5 ( 8   : :$<2$:%2%Gͻ2%>2$G; Y 2%2$Gk > 2. 2. k :3 ͨ 0  * ͘ (c*#":.w>2/ ( :;O5X :$ / H > 5ͮH X *d#"d*~ # "*ͥ~# 5:<(2<2%*> ##GY *[RDM+|*[R[~ k #"S 7*[+R* k +w"S 7~# :=>2=ͮO2%<2$G*ͱ0*ͥ~#5:$ O/ ( 8h> h: >^h@h G:%Px:/") Abandon changes? (Y/N)=_YI:/ ;:>2=c8* >2/0>2/*"#͎c:] T:/*+*͎8*w I:/ **#**#8>2/: \!f !\) Filename: !!~(b > :: ~@2##2~.( (# (+#~(.# ~(#!\ >2/) Printer Setup codes: !!~(Ͱ#* > Ͱ: Ͱ > Ͱ x F#^#V## ^#V## ͗) ^K Commands S Save/continue X save/eXit Q abandon Z Zap file B mark Block start K mark block end C Copy block V moVe block Y delete block W Write block R Read file P Print file 4=6 X    w ͗) ^Q Commands R top of file C bottom of file F find a string A find-and-replace B find block start K find block end T change tab stop 4=6X,yh O 0 >^5@5) ) While editing, these Control codes may be used: ^A word right ^F Word left ^G delete char ^Y delete line ^T delete word DEL destruct/BS ^C page down ^R page up ^V toggle insert ^U repeat find ^P enter printer code ^N insert C/R ^K block cmd menu ^Q Quick cmd menu Selection: ͮL:] (;N H =63 + t  3 3   _ /  NY:/(͗) Error: :/o&@~_#~W ) Press ESCAPE to continue2/= BAKon offTamFile too bigInvalid keyInput/Output FailureString not foundDisk fullBlock not markedBlock staddles cursorBlock too bigIllegal tab stopoonpput/Output Failur4/25/85 I have taken the liberty of providing VINST10A.OBJ, which is identical to VINST10.OBJ except that it was compiled for a TPA terminating at B000, which allows ZCPR3 users or others with TPA constrictions to use the program - VINST10 will trash the source AND destination files under such conditions, so use VINST10A to be sure. Bruce Morgenrogram - VINST10 will trasͫCopyright (C) 1984 BORLAND IncAKaypro-4, old styledP= ER~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!d1+Ͳå.VDO24!!5z "R͐b*#!߰Ͳ!!߰ m5zd "!߰*!߰*n&(s*#6 !߰ !Ͳ! }2ٰVINSTALL*!5` }2԰*ٰ&*԰&|g}o}2ٰ*!"*VINSTALLm͛E !"*ٰ&}2ڰ*ڰ&!e"а*аn&} *аs!!5z_!"ΰ*а*ΰn&}2Ͱ*Ͱ&} }2Ͱ*а*ΰ*Ͱ&s*ΰ#!!!5zʣ!"ΰ*а *ΰ+*а *ΰ+n&} s*ΰ#j!*а'*а'n&} s*а(*а(n&} s*а)*а)n&} s!!5z2""ΰ*а**ΰ+*а**ΰ+n&} s*ΰ#!!!5zv""ΰ*а1*ΰ+*а1*ΰ+n&} s*ΰ#="!!5zʺ""ΰ*а8*ΰ+*а8*ΰ+n&} s*ΰ#Á"!!5z""ΰ*а?*ΰ+*а?*ΰ+n&} s*ΰ#"!!5zB#"ΰ*аF*ΰ+*аF*ΰ+n&} s*ΰ# #!KͲR͐bR!bŔ ** Error - !K !q́. **͐bR͐b!5!% =!5z5!aE# source file !%  not foundC#o$!5U!NE/$ source file !%  emptyC#o$!5U!P͛Eo$ source file !%  too largeC#!5U"!5!*kb!5Sb!5! =!5z5!NEC%R͐bŔDestination file ! !q́ exists. Overwrite(Y/N)? b!8!b*&(!YaE-%C%!5\b!5! =!5yb!5!*gb!5Sb!ɱ VTERM.DAT=!ɱd5!aE%terminal definition file  VTERM.DAT not foundC#+&!ɱU!NE+&terminal definition file  VTERM.DAT is emptyC#!"!ɱA}oEʁ&!ɱ8!eͳb !*+))))))!ed*!"1&*!R"}*}!ͯE"'*}!!5z"'"!*+))))))!s!*+)))))) *#ñ&"9ŔVDO Installation Module vers. ́1.0bŔ# James Whorton * Terminal Menu *͐bR͐b!! 5zC)"R*!@́ b!*+))))))n&!͛E4(!!5z1("!*+))))))*n&Rb*#'](!!5z]("R! b*#?(Ŕ bR*! !@́ b!*! +))))))n&!͛E)!!5z)"!*! +))))))*n&Rb*#(1)!!5z1)"R! b*#)R͐b*#á'R͐bR͐bŔ= Press the letter of the terminal desired or RETURN to quit: b!*9s#r!8!b*&! NE)!*9s#r?**&(!@R"*!͛**}͇}oE)***9s#rR*&(͐b?*!*9s#rR!b*9^#V!t*9^#V*}͇}oEʦ)"3VCT1m!R"!*3s#r!*!*R5zP+"*3^#V!NEG+!Ͳ**!5z+"! !*+n&e.!Ͳ*#*! VCT1\EG+**!*3s#r*#í**3^#V!NEʤ+ source file !%  invalid, cannot be installedC#*y"!*+!*{+))))))n&s*!"!!5z8,"!*+!*{+))))))*n&s*!"*#+!!5zʓ,"!*+!*{+)))))) *+n&s*!"*#C,!*+!*{+))))))'n&s*!"!*+!*{+))))))(n&s*!"!*+!*{+)))))))n&s*!"!!5zʓ-"!*+!*{+))))))**+n&s*!"*#C-!!5z-"!*+!*{+))))))1*+n&s*!"*#Þ-!!5zI."!*+!*{+))))))8*+n&s*!"*#-!!5zʤ."!*+!*{+))))))?*+n&s*!"*#T.!"ŔVDO Installation Module vers. ́1.0bŔ James Whorton * Setup *͐bR͐bg%R͐bŔ0Enter the source filename to be installed : b!%+._b!%  !%ͲŔ0Enter the destination file name to be written : b!+._b!  !Ͳ͝#!yh*!{#'R͐b*{!NE/ŔYou have selected terminal *{!@́ - b!!5zʀ0"!*{+))))))*n&Rb*#B0R!.͐bŔ5Are you SURE you want to install this terminal(Y/N)? b!8!b*&(!YaE0/Ŕ Installing !% !q́... bͥ+͓$R͐bŔFile installed as ! !q!.͐b!YaEacxŔ IͫCopyright (C) 1984 BORLAND IncAKaypro-4, old styledP= ER~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!d1Ͳå.VDO24!!5z "ŃR͐b*Ń#!Ͳ!! m5zd "P!*P!*Pn&(s*P#6 ! !Ͳ! }2VINSTALL*E!5` }2*&*&|g}o}2*E!"E*EVINSTALLm͛E !"E*&}2*&!+"*n&} *s!!5z_!"**n&}2*&} }2***&s*#!!!5zʣ!"* *+* *+n&} s*#j!*'*'n&} s*(*(n&} s*)*)n&} s!!5z2""***+***+n&} s*#!!!5zv""*1*+*1*+n&} s*#="!!5zʺ""*8*+*8*+n&} s*#Á"!!5z""*?*+*?*+n&} s*#"!!5zB#"*F*+*F*+n&} s*# #!ͲR͐bR!bŔ ** Error - ! !q́. **͐bR͐b!! =!z5!aE# source file !  not foundC#o$!U!NE/$ source file !  emptyC#o$!U!P͛Eo$ source file !  too largeC#!U"G!!|*Gkb!Sb!!ۃ =!z5!NEC%R͐bŔDestination file !ۃ !q́ exists. Overwrite(Y/N)? b!8!Sb*S&(!YaE-%C%!\b!!ۃ =!yb!!|*Ggb!Sb! VTERM.DAT=!d5!aE%terminal definition file  VTERM.DAT not foundC#+&!U!NE+&terminal definition file  VTERM.DAT is emptyC#!"P!A}oEʁ&!8!+ͳb !T*P+))))))!+d*P!"P1&*P!R"C*C!ͯE"'*C!!5z"'"N!T*N+))))))!s!T*N+)))))) *N#ñ&"ŔVDO Installation Module vers. ́1.0bŔ# James Whorton * Terminal Menu *͐bR͐b!! 5zC)"PR*P!@́ b!T*P+))))))n&!͛E4(!!5z1("N!T*P+))))))*Nn&Rb*N#'](!!5z]("JR! b*J#?(Ŕ bR*P! !@́ b!T*P! +))))))n&!͛E)!!5z)"N!T*P! +))))))*Nn&Rb*N#(1)!!5z1)"JR! b*J#)R͐b*P#á'R͐bR͐bŔ= Press the letter of the terminal desired or RETURN to quit: b!*s#r!8!Sb*S&! NE)!*s#r?**S&(!@R"P*P!͛*P*C͇}oE)**P*s#rR*S&(͐b?*!*s#rR!b*^#V!t*^#V*C͇}oEʦ)"VCT1m!R"J!*s#r!*G!*JR5zP+"P*^#V!NEG+!˃Ͳ*P*P!5z+"N!˃ !|*N+n&e.!˃Ͳ*N#*!˃ VCT1\EG+*P*J!*s#r*P#í**^#V!NEʤ+ source file !  invalid, cannot be installedC#*?"L!|*L+!T*A+))))))n&s*L!"L!!5z8,"J!|*L+!T*A+))))))*Jn&s*L!"L*J#+!!5zʓ,"J!|*L+!T*A+)))))) *J+n&s*L!"L*J#C,!|*L+!T*A+))))))'n&s*L!"L!|*L+!T*A+))))))(n&s*L!"L!|*L+!T*A+)))))))n&s*L!"L!!5zʓ-"J!|*L+!T*A+))))))**J+n&s*L!"L*J#C-!!5z-"J!|*L+!T*A+))))))1*J+n&s*L!"L*J#Þ-!!5zI."J!|*L+!T*A+))))))8*J+n&s*L!"L*J#-!!5zʤ."J!|*L+!T*A+))))))?*J+n&s*L!"L*J#T.!"EŔVDO Installation Module vers. ́1.0bŔ James Whorton * Setup *͐bR͐bg%R͐bŔ0Enter the source filename to be installed : b!+._b!  !ͲŔ0Enter the destination file name to be written : b!ۃ+._b!ۃ  !ۃͲ͝#!?h*!A#'R͐b*A!NE/ŔYou have selected terminal *A!@́ - b!!5zʀ0"P!T*A+))))))*Pn&Rb*P#B0R!.͐bŔ5Are you SURE you want to install this terminal(Y/N)? b!8!Sb*S&(!YaE0/Ŕ Installing ! !q́... bͥ+͓$R͐bŔFile installed as !ۃ !q!.͐b!YaEacxŔ I dW(/*$3#`v'!s<( %",nstallvinstalTVINSTAllWRsSTALLLINSTALWINSTAWVINSTALLVINSTALLVINSTALLVINSTALLVINQ( 5<$&n$=5$l> ": $llvinstallviVSTALLVinRO|LLVINITALLVIUTALLVRSTALLVINSTALLVINSTALLVINSTALLVINSTAO(%+!!:$l}vinstallvinstallvinstZLVINStaMWkINSTAVLVINSTZ LVINSOLLVINSTALLVINSTALLVINSTALLVINSTALLVM(2.$ 8?'+set||vinstallvinstall(FNSTALLVI0BTALLV7\STALL(SNSTAL2EINSTALLVINSTALLVINSTALLVINSTALLVINSQ( -63%:::$l %9<: allvinstallvinH[ALLVInsUZ]LVINSO]LLVINHNALLVIU@TALLVINSTALLVINSTALLVINSTALLVINSTALJ(,/!y%)1%+!t{{~stallvinstaWVINSTalLMtNSTALVVINSTAW VINSTZLVINSTALLVINSTALLVINSTALLVINSTALLVII(1 >a +48$>l ~gpllvinstallvRSTALLviOHiALLVIUyTALLVR STALLMNSTALLVINSTALLVINSTALLVINSTALLVINSTI():,8:0$#lox||ms|co{nstallvinsOLLVINst@WqVINST[LLVINSOLLVINHALLVINSTALLVINSTALLVINSTALLVINSTALL_(!!&.;l ~fqllvinstallvinstalWINSTAllVRsSTALLLINSTALWINSTAWVINSTALLVINSTALLVINSTALLVINSTALLVINY($"%"!nstallvinstallvinstallviUTALLVinROLLVINHALLVIUTALLVRSTALLVINSTALLVINSTALLVINSTALLVINSTAG(?++! 8llvinstallvinstallvinstZLVINStaMWkINSTAVLVINSTZ LVINSOLLVINSTALLVINSTALLVINSTALLVINSTALLVE(*'$ldcdn~|ff}cdallvinstallMNSTALlvHUnTALLVRdSTALLM NSTALWINSTALLVINSTALLVINSTALLVINSTALLVINSJ(allvinstallvinstallvinstallvinSTALLVIITUALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALVINSTALLVINSTALLVINSTALLVINSJ(allvinstallvinstallvinstallvinSTALLVIITUALLVINSTALLVINSTALLVINSTALLVINSTAL _VDO25 COM6VDO25 MQN8h:VDO25 NOT VINST11 COMlVTERM DAT}VDO25 MQN8VDO25 NOT8 1*"g!"22:P===2͏ʹ:_*g"_!N4!S!ѯ2N!M4d!^!:]”:\G:N_:[G:M_ð:[G:M_:\G:N_!f!2N2Md!n~ ͩ!!v~ ͩ!!~~ !!~ !~#_VCT2VDO25 Kaypro, no hilite P =ER(:(!:( !4 (^V r s~ ~ V^sr 4 4~5 5^ V r s ~ ~ V^s r 4 4~5 5$ Tab stop (2,4,8,16): !E!~0 0 W{__#{((( (> 2X=21>2X_ɯ!hw#\<(;\ 0 \ )Ͳ ( (#w+|(7 6 _!\l !Pl\\<(*~~ > # \<>2X>2X(\Ͳʹ$ VDO25 Ln Cl Insert FC Space ͩr :M:N>2M>2Nd[c*#>$2Nd*d&#>F2Nd8`i>82Nd*[R#2N2Md > 2N2Md:\( @;>:;!]~ (;#!e>.;~# :N0> ; """"0"> ;N#F#>0 0<330 z0; (F(((w# 0 @>^;;>(+~!N5 05d> ;> ;55d6*+6 *%6 +6 "+"!"S"UBDM.[*"S#[*"S*R[R0 [R[R*DM*ø**DMø*DM*++ø0(:n :M> ͩ> O;0"(:v :P=G:M> ͩ> A O!"**" ͩ* *> :P=_> (##" * [R|(DM* > S (  !8ɷ;  ; (A ͗ :G;0 ͩZO0(;:d_y8;(y:G8ͩ0 O*> (##" :P= ==_8(* KBDMx7*+"* ++> (*" ##" >2[ - H 2[ H $ Find: !E$ Replace with: !E$ Ignore U/L case? ((>Y>YN>2Y!~([ w#>NN2Y$ Backwards? ( >NN>2Z>YN>2Z:[(3 :X[!>(#S[!~(#Sͩ:YG:Z(*+G (+8"͜*#G (#0+͜>2X>2XO~[ #G +a{_:\2\>02N2Md:\(!]!`~;# +ͮ*~#" ͐:dOnLA :dOn͗ A *~# ( ( ( (~#+":dOnLͮ0 ;*;0 "2N:P=2Md=^*"S:̯*"U:̯*U|( *S|(R8>2X7*R8#[R[+*S*U| >2X` ͜E ͮ*U[SRB8>2X*R8*R0F>2X*S[R[*U[SRDM*S "S*U "U[S` ͜[S*URDM[#S` ͜*͞ :X[SR8 *URRm ` ͜E *U` *S"ͮ͜$ Erase all (Y/N)_Y*+"*#"ͮ2\ !]6 # ͩ~#:PG:M  N  ʹ [Hit any key to continue]$ͩ 0 ( (>2X[ *#R0 GO2c8~# :c<2cy:c<:PG82My2dxP8ͦ ́2NdxMW>2e *> #~#yx82NGd8~#N:NnL!M52Nd2N<2Md2N<2Md* ^ɯ2N<2Md2N:P=2MdZ=^* 0*~# :P== 0*~# N ( 8   : :P=G:M<2M:N2Nd2N:P=2Md=^2N2Md́> 2W2W ́:\ ;0 * ͮ(ͮ*#":Ww>2X ( :dONn:M:P=G:M LA > NA n*#"* ~ # " *~# N:e(2e2N *> ##d^*[RDM+|*[R[~ ́#"S 7*[+R* ́+w"S 7~# :fͯO2N<2Md* 0*~#N:PG:M OL ( 8́> ́: >^́@́ G:N:QGx;Ͳ:̴:X&$ Abandon changes? (Y/N)_Y:X pͩͮ88* >2X0>2X*"#ͮ:] ͊:X*+*+8*O͇ :X *S##*S#8O>2Xp \!ͩ !\$ Filename: !E!~(b > :: ~[ @2##2~[ .( (# (+#~(.# ~([ #!\ >2X$ Printer Setup codes: !E!~(#+*  > :  >  x ʹ$ Currently logged drive is :Á$ : Set drive to: [ A8Q0́A2 :_ʹ$ Disk directory for :Á  8 >1́ 0́$ : : óx(=G o&"բ($ { $ $ |  ;́x(  >.́G> $ *~ ʹ$ Available help levels are: 1 Expert | 2 Normal | 3 Novice Help level is currently set at :0́$ Set help level to: 184002ʹa:N ʹ :N ʹN ʹ:N >2fɯ2f$ Selection: >^;:Lɯ2N2Md:N2:M2:2N:2Mͩ0F#^#V## ^#V## :Gʹ :Nʹ>K;F ' 6  = m  oÏ:ͯ:d> ;> ;> ;:ʹa:Nʹ>Q;  sÏ: ʹ:Nʹ>J; {i  Ï 0 >^N@N:($ $ - Basic editing functions - ^A Word left ^F Word right ^G Delete char ^Y Delete line ^T Delete word DEL Destruct/BS ^C Page down ^R Page up ^V Toggle insert ^L Repeat find ^P Enter printer code ^N Insert C/R ^K Block cmd menu ^Q Quick cmd menu $ ^Q Commands [Quick Menu] R Top of file C Bottom of file F Find a string A Find and replace B Find block start K Find block end T Change tab stop $ ^K Commands [Block Menu] S Save/continue X Save/exit Q Abandon Z Zap file B Mark block start K Mark block end C Copy block V Move block Y Delete block W Write block R Read file P Print file L Set logged drive F Show disk directory $ ^J Commands [Help Menu] H Adjust Help level K Block menu Q Quick menu J Help menu M Basic editing menu ͗:] (QA ;, 'gE2} , ,    j d , :X(ʹ$  Error: :Xo&i~_#~W $ Press ESCAPE to continue2X BAKOn Off}File too bigInvalid keyInput/Output FailureString not foundDisk fullBlock not markedBlock staddles cursorBlock too bigIllegal tab stopRRQ(((???????????NvAVDO25.MAN`  !"#$%&'()o*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ؼ??9ŎBq9^xkϻw_{J1uV@jwV;P 6g6gu~j9uԺ滈j ﵮZW"|Q[nna } jj+l泚j}!Ȅ2'55l:W 6פvy[("m!ONVu}M 2t/jNb̾p~r:nqN8GO0U[]Ng Q_V]=BN2)_T[6u!iIH=4np_}bwD'}﹦q/՗Շ"Ϳ6~PI{iW]an, hky=nwQC s7 wo3;Jjj }^.&7wjjjjjjjjjjjjjjjjjjjj;555555lޟbG!q 8v_*vCoS\<×'j+pcQ\)l)3@)2v1E \zqs_0I)y)>sE5b?Vp+o= K(xiIL iS,F ˗maX {ߗC"p A{$BG YMuc`O e^F<F~%xZBe6g'(R {*^KGZ9Ҫ\ӨQ `p%q#%;;gs x 5z{'LZBejRMMMMM 'QH#.k>r y5>zO ?FnXAyf_S ON԰9;?9%3 ; x-޲xn@A5"'KA#@rY/!jLG;BLDf/ HTcnPQ2:S =Up#P,X {)TiA :7(`K$ sjX B3jjd(ȲEɼ@&",C$ A--e&W$aq;B)V7న$R34QḻGr y5>zO ?FnX_G$dR԰9hĞ-{@7$dRVW\>A?zuCx x)\'z /[ ǴC ='49JN@asvu BGKY{w(1SzaV!^vnI UYMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmjjjjjjؼ??9ŎBq9^xkϻw_{J1uqp^Ғ8ȑPsMjjh;;g/H1 HK GJګg?_Yyx{:*yǞ+U f5n)'0=QM@39'Oo!W ;\Ӌ{RLfӨv3S@'pF512S]mc)԰9"fp#0=exЎ2z/eA7 j؜q玀4G;lc)zY1Bj؜FS3d%Ԯׅ8' ^*A2$@IM 1 [ ,Fq7hpL@LS jCBL@R!&LRlc^c"x>&xjC't̓wL!=hfLOF3QM 12@(1!$ Ԯ@BLB\73RxnIɳw@BL M !IPSu y pU7$p#Ԙ x`Z7$a5K%2:ϿeGF@7$i@ռb^2GXX ,"C2R.H)B>αRlep#tCHwTdBQL7BQF }F'CfH7; (1 u p#c:v^V+gK8F%s51*d O%5EֱNQMMMMMMMMMMMMMMMMMMMMm~S(5Go\?{q#^7 ,YMMM~m=פE##J{ ^ (%/ey J ۨxBx# x# GOy6\|Ajy |bwT4oC=tXm#7H&ӎfļ#^v1 !I 5NʌYR(1)㟆2]}{;JF膐$=0d7SԮ=%p#tCH n0KG5oxG F膐$#Lu95 ԰9 bBH1!y"K|x1]}{ ;JF膐$#L@B&p#t⤆7BH1!y"K|1]} x)M"Xf8ļ y& `zʣ6g-& qy 0sWJ@!D_ x9LLA D:y_Slc)t$Ck1Isng&!LCQ(%zv՛'j؜mc)@ x:"NXd6u@bKA9br5l@sd/oTzȀ^ߨ`kb5l#5PJ1Wp||>R'6g๢Ȗ:OB<;. +eQm|ONq"15P0հ9F膐$`9Jx" sR?>y||A Slc)("GL* =!$ %q<׍S5=8ļFF`z 25lz!$ `7g̒"G\Qc/FHC2Z 3<7B1! c!|M6Yi.+Vlc)2UHc^as6K%jjWc7MxG굄c>$FGշv43mnY1a!Hb^C&,2tMbG i'<0UL԰9F`kb$1G55lӟn9ļN@'=C!WC }0'5lyU`p@Q:]Sz_=assWJ1=8ļ|/px(}&55l."R^pdRn^j'  HŎPhG8z<l#7 Q'ިiIH4odRn^\2uX*ΤƂÑ*EcHwD'}&sY 3gdk,&G>(?#&8u%C&p#0=e`=cyn|([=)kkl#7tGYj#-v }A"3ɼ@&p#tG<͙3!$ B0K%S3{`nY'2]<>Ɏ{8RžHw !$ %EE#T}YLˎ* ="'̒"G\L !IFj؜Pcy&\ !I@LwT nI 3n^vT;S^FM1yQtĎBd7 8sO0B{Ԯ^',W@&Y<n)+p#tC๪asr8S,8dɨ1/.#xRzB;9R6rb= {u p#5lΦXSlc)t$L[LPF555jGjjjjjjؼ??9ŎBq9^xkϻw_{J1uԮ^~=Wɘb!y^S Xχ\(%,2 [5l<|J:A^Pc:bG!E 2B̘b!x da5l|c[wdy%p#Le. PdY qG@L\| xFĄ9H?3ULndڪasVCXPd=]yM1ˎ t$f: Di t@5w\Qd nL[ԘL#ON('p#ԘHKb걧ImCטbtX%7Bt*[@^c^1BYsE]k8XH@<dBZSc9'o_wjËW/F5555555555555555555555555555555555555j;555555lޟbG! :HK GR4+n1̀7%fb$Q2< y2$4Ш(^{R!1QMMhTfQF(3vT๢s(9՘ h!Q@LFs~f$QQhGR TGFYx(}﹢{xqzrbz$ڶQ%5X+<LШv{^uCH@Bk`)zw&3(9!NF`kb$1ytTG5Ƿ/wA2ųe21' jLGxనc>;}oN/Np!$le833Ǽc_;Bf Q2-vM-? 1E#X'T'E#{`xHwT\ÑBʿ#UH@@"&!J {`Ȥƍ/G5Nū''Wp!$lepXb^}̢9QF !I:Ͽ{B)V7¾HwĶQ:׀^v1鎣wwx_q!$le$bydc=˜@ȠVYz?=O?=O/˷h2-ёrMj'n$6gN^}pכ\ѓGpM.O|^7 ,YMMMMMMMMMMMMMMMMMMMMmZa6ONF\}ryݗk|~x$d555# }^.&VS0I)y %! ,b[L@C%}MAȂKdZx -ȤN^B&ܭV~ߨp̄GV,! ;psi](ɧGj+y._V..V||ѓ/j+ [|:|wqO %^qsѓG#lNϔiӴ ϞRѓ'y''x_''8%f{mImJwf/iScJS/I;e 13JLIf>p0V+rL V+l]M James H. Whorton 11. Error Handling VDϠ ha editin er VDO vers. 2.5 04/28/85 (c)1985 James H. Whorton Revision notes... This is revision 2.5 of the Video Display Oriented full-screen editor. Several major improvements have been accomplished in this version. They include: - Support for terminals not featuring line insert/delete. - Expanded terminal definitions. - Default drive logging. - Default drive directory display. - Revised menu structure. - Adjustable help level and help menus. - Added support for hiliting, for terminals that support it. A 128 byte type-ahead buffer has also been implemented, which should add to the utility of this program. See VDO25.MAN for future plans as regards to features, etc. ********************************************************************* Attention: In the manual, in the Installation section, the procedure for creating a custom version has one discrepancy. Instead of running up DDT after exiting VDO, go ahead and do a SAVE 27 VDO.COM as SOON as you leave the editor. ********************************************************************* If you have any questions, comments, suggestions, etc. please direct them to me on one of the systems listed below. Enjoy! James Whorton SysOp - OBBS Omaha, NE (402) 346-4206 April 28, 1985 DRBBS Omaha, NE (402) 896-3537 Address messages to James Whorton on this system. ͫCopyright (C) 1984 BORLAND IncAKaypro, old styletedP= ER~7#~=% o&ͦoͦܐԩͣ}!!"8~#(}:$= +*!Z!*B!!:(=2!Z: <2!!!:O::O:!*B! !45(!.+/ 0y0( d!kZ!{Z͈͈o&  :(y ͠|( *"x2y( >28!?"9!!>2 :D]SXN]D [ (!e}̈́A8Q0G: x@!\w# (   yV. V!h6# (*(.(!8}(*(̈́w#>?> w#a{ |͒}͛Ɛ'@'7||}>"C"6# ""͐ͩ*B"[R5*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#E͊w}8uRB0 >R@RR!+ͨ z R!+ͨ z <!+ͨ z <!+ͨ z <!#ͨ z <!+ͨ z T]KB!z> S>))0 = |JJDMgo>jB0 7?= H\<z5+)+<z {0Gɯgo||H}||/g}/o#}o&K[xAJSJDM!b"!6J"DM'ͬͬdͬ ͬ} wͦWͧ _}8(8J`9{T]=o`9y w >uJ u` }>(; xQ }} ˸T}ٕ(0D=C ,= ( [ 0%D , 7 ͏ ?(8u x O - ; 8˸x X ,-xG}; }م 9; .>#n0[ D = - nx P ,-(-˸G,-; }ٕ? 9.>͏ 8u ?= u+-(>O 0u O 8͏ ?x P , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨ xx(ͼ ?}ٽÏ }ց; <(; 7D = |٤g{٣_z٢Wy١Ox٠GD u J }x>uu}ƀ/ƀo; -J }0W-J W,}l˸ͨ 8 ; ` x( -ͨ 8J -ͨ 8,J }l8;*!` ! >u` ` u--- J ,,,-xGg?+2n*8t z~,->uxua}.; OJ , ; !U >,k- o&0%,` }g; }؉}颋.:}8c~I$I~L*kٷx˸; }0G,͙<},-(-J ! >0 a` o8 Oþ >um.`1pF,t6|!wS<.z}[|%FXc~ur1}Oٯx(<˸ͨ 8; !~Jͨ 0O!><ͨ 8 =  7 <` O ; 7 0 W-J OT0 j oD,:j !I}袋.}8c~I$I~L!>u` ` 77 ` = O nf^VNF!DLT\I!!53!r1!\!> x #-= o˸xO(- }(x>8(C ,C `iM!>u|; |J>| )=|(DMbo˸ͦ88ͦx(0 8> Mx(>-Ͳ{(ay(Ͱͦ \z(>.Ͳ (Ͱ ~ͦ{>EͲ>+|(|Dg>-Ͳ|/ 0:p# ~# +>0w#,-  60#J˸}րogM| .(C = ~> x0w#xG%P %P ZJDM%P = _~65i+~hìx-Sx9?+{Η@}|C C gZJDM0D ,7}o˸  #yO!@9i&   # w# /w# w#!9! E9!!9~(+F͊!"9!(#>2*Ͳ"|>" :( ͆ *6#w*6#6 !\$![ (̈́( #:~CONTRMKBDLSTAUXUSR>2$*#~ Ͷ$*:> >w###6  #6++p>2S-$Ͷ:*6###ww#w$w#w: ##N#F*B> w#w#[s#r>2S$Ͷ$*6 #-Nw#Fwq#p#6#w#w#w* :( ͒: *^ F* < >26"~͟*-w#ww#͟"~ <@*Ͳ!\  <ʮ!\$> >2*|>! * \$\<(!: [1Á\!(f"> 2:!<"F( #~#6e>!["N>!~8>O6*"w (=(&("( :(N 8y(~#x+% (6*#~[*#~ *~(h#"b=  8 J= B== ͯ}8= ͵}/ͭ !*###~-_~(4Q6*>2>*##w:>*##~*#~(E[ ( ( ( !][ ( ( ((w#(6!]~-#8~>7  [>OkͼMs #rkͼpX á[ [ (( #w(q*#~[ (  *##~6͜O$*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46͡> *:4^q}Ò*|(M|( M6-#͐ͦ[R8 (G> ͒C~͒#*ͦC!h !lTRUEFALSEͦ!9^#(~#(G~͒#> ͒> Ò "F![(#RR0*4#4> RR *4 #4(>>2$*V(/˖:(#~+ x y2!͵( =( X:(R*:(###~-_-͌X> :("͟"*^˞*V˖0 SRѷR8A* N#F#s#r$ 0})jS\*###w* N#FB ͟r+s> !T]>)j)0 0= UR!#U*^#V#N#F#^#V>">!2DM"~x(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>> SRѷR* s#r$ s#r"S"! N#FB(^x * 6#[<(H*! Kq#p##K[! *! 4 #4! x *$ *>w""{_!"*nf}(HR0nf" ^VMDnfutqp*s#r*s#r"* 5KB!>u~#fo{_"*R0RnfR0KqputsrNF( ^VNF^V*SutKqp R*R(~w~wnf ut"6# * *!""*NFy(* "*B0Cnf* [R*"*RS[s#r^#VS>O"w2x2!"" @*>2"!"""!\Ͳ*: !~6go(\R*s#r_2x( s x(T]DMR0 -a%}̈́o*!~6o&͠|ͣ}%^C User break1:% I/O% Run-time% error ͒%, PC=[R"͍% Program aborted*1!͍!6yͲL3VDO25!!5z "zR͐b*z#!vzͲ!!vz m5zd "}!vz*}!vz*}n&(s*}#6 !vz !zͲ!z }2pzVINSTALL*|!5` }2kz*pz&*kz&|g}o}2pz*|!"|*|VINSTALLm͛E !"|*pz&}2qz*qz&!{"gz*gzn&} *gzs!!5z_!"ez*gz*ezn&}2dz*dz&} }2dz*gz*ez*dz&s*ez#!*gz*gzn&} s*gz*gzn&} s!!5z!"ez*gz*ez+*gz*ez+n&} s*ez#Ü!*gz"*gz"n&} s*gz#*gz#n&} s*gz$*gz$n&} s!!5zd""ez*gz%*ez+*gz%*ez+n&} s*ez#+"!!5zʨ""ez*gz-*ez+*gz-*ez+n&} s*ez#o"!!5z""ez*gz5*ez+*gz5*ez+n&} s*ez#ó"!!5z0#"ez*gz=*ez+*gz=*ez+n&} s*ez#"!!5zt#"ez*gzE*ez+*gzE*ez+n&} s*ez#;#!!5zʸ#"ez*gzM*ez+*gzM*ez+n&} s*ez##!!5z#"ez*gzU*ez+*gzU*ez+n&} s*ez##!!5z@$"ez*gz]*ez+*gz]*ez+n&} s*ez#$!!5zʄ$"ez*gze*ez+*gze*ez+n&} s*ez#K$!yͲR͐bR!bŔ ** Error - !y !q́. **͐bR͐b!{!z =!{z5!aE2% source file !z  not foundͅ$ñ%!{U!NEq% source file !z  emptyͅ$ñ%!{U!P͛Eʱ% source file !z  too largeͅ$!{U"|!{!|*|kb!{Sb!{!z =!{z5!N!z !z o}oEʸ&R͐bŔDestination file !z !q́ exists. Overwrite(Y/N)? b!8! }b* }&(!YaEʒ&ŔNo͐bø&ŔYes͐b!{\b!{!z =!{yb!{!|*|gb!{Sb!D| VTERM.DAT=!D|y5!aEM'terminal definition file  VTERM.DAT not foundͅ$à'!D|U!NEʠ'terminal definition file  VTERM.DAT is emptyͅ$!"}!D|A}oE'!D|8!{ͳb ! }*}+))))))!{y*}!"}æ'*}!R"|*|!'ͯEʩ(*|!!'5zʩ("}! }*}+))))))!s! }*}+)))))) *}#,("y!*ys#rŔVDO Installation Module vers. ́1.1bŔ% by James Whorton * Terminal Menu *͐bR͐b!! 5z+"}*}R!! b! }*}+))))))n&!͛E)!!5z)"}! }*}+))))))*}n&Rb*}#Ê))!!5z)"}R! b*}#)Ŕ b*}! R!! b! }*}! +))))))n&!͛Eʬ*!!5zʩ*"}! }*}! +))))))*}n&Rb*}#_**!!5z*"}R! b*}#÷*Ŕ b*}!R!! b! }*}!+))))))n&!͛Eʇ+!!5zʄ+"}! }*}!+))))))*}n&Rb*}#:+ð+!!5zʰ+"}R! b*}#Ò+R͐b*}#4)R͐bR͐bŔ< Enter the number of the terminal desired (RETURN to quit): b!}+_b*}!NEF,!*ys#rÉ,*}!͛*}*|͇}oEs,*}*ys#rÉ,!*ys#rR!b*y^#V!t*y^#V*|ͯ}oEʼ("yVCT2m!R"}!*ys#r!*|!*}R5zʠ-"}*y^#V!NEʗ-!zͲ*}*}!5ze-"}!z !|*}+n&e.!zͲ*}#1-!z VCT2\Eʗ-*}*}!!*ys#r*}#,*y^#V!NE- source file !z  invalid, cannot be installedͅ$*|"}!|*}+! }*|+))))))n&s*}!"}!!5zʔ."}!|*}+! }*|+))))))*}n&s*}!"}*}#?.!|*}+! }*|+))))))n&s*}!"}!|*}+! }*|+))))))n&s*}!"}!|*}+!s*}!"}!!5zʌ/"}!|*}+! }*|+))))))*}+n&s*}!"}*}#6/!|*}+! }*|+))))))"n&s*}!"}!|*}+! }*|+))))))#n&s*}!"}!|*}+! }*|+))))))$n&s*}!"}!!5zʤ0"}!|*}+! }*|+))))))%*}+n&s*}!"}*}#N0!!5z1"}!|*}+! }*|+))))))-*}+n&s*}!"}*}#ï0!!5zf1"}!|*}+! }*|+))))))5*}+n&s*}!"}*}#1!!5z1"}!|*}+! }*|+))))))=*}+n&s*}!"}*}#q1!!5z(2"}!|*}+! }*|+))))))E*}+n&s*}!"}*}#1!!5zʉ2"}!|*}+! }*|+))))))M*}+n&s*}!"}*}#32!!5z2"}!|*}+! }*|+))))))U*}+n&s*}!"}*}#Ô2!!5zK3"}!|*}+! }*|+))))))]*}+n&s*}!"}*}#2!"|ŔVDO Installation Module vers. ́1.1bŔ by James Whorton * Setup *͐bR͐b&R͐bŔ0Enter the source filename to be installed : b!z+._b!z  !zͲR͐bŔDEntering RETURN to the next question will overwrite the source file.͐bR͐bŔ0Enter the destination file name to be written : b!z+._b!z  !zͲ!z \E4!z !zͲ$!|Ͳ,!|ͪ(R͐b*|!NE+5ŔYou have selected terminal *|!́ - b!!5zʰ5"}! }*|+))))))*}n&Rb*}#l5R!.͐bŔ5Are you SURE you want to install this terminal(Y/N)? b!8! }b* }&(!YaE%65Ŕ Installing !z !q́... b-%R͐bŔFile installed as !z !q!.͐b!YaEacxŔ Installing !z !q́... b-%R͐bŔFile installed as !z !yWu/*$3#`v'!s<( %",nstalTQNSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLTu/*$3#l! :;t)% ?=+stalTQNSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSO|WxNSO}WyNSTALLVINSTALLVINSTALLVINSTALLVINSTALLUu=1;3")vxnstallvinstalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLRu/)1-8%8,nbaq|lvinstalT7ASTALLVINS*PLLVINS*SLLVINS*[LLVINS*RLLVINS*XLLVINS*^LLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLSu/)1-8%8,n'1>%"instalTRASTALLVinROPLLVINSO]LLVINSO[LLVINSORLLVINSO^LLVINSOXLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLPu+2&l%3."6&a d|ctalTRSTALLVinSO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLQu+2&l%3."6&a d}btalTRSTALLVinRO|LLVINSOkLLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALL^u+?17%(3&njescudyajfalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALL_u!!&.;l ~fqllvinstalTRSTALLVinSO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALL\u+==5$lvinstallvinstalTRSTALLVinROLLVINSOLLVINSO LLVINSO LLVINSO0LLVINSO1LLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALL]u'11385vinstallvinstalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLZu7 1a{x~c{s||yz~ctalTRSTALLVinRO|LLVINSOkLLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALL[u > ;/l 3'+%5allvinstalDRSTALLVinRO|LLVINSOkLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLXu=1;3")v 667allvinstalTRSTALLVinRO|LLVINSOLLVINSOLLVINSOLLVINSO#WeVINSO%WdVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLYu a~|y{{|gqllvinstalTRSTALLVinSOLLVINSXALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLFu ax|y~stallvinstalTRSTALLVinSOLLVINSXALLVINSO LLVINSO-LLVINSZALLVINS[ALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLGu a%3>><=/8agnstalTRSTALLVinROLLVINSXALLVINSTALLVINSTALLVINS[ALLVINSZALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLDu;>1allvinstallvinstalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLEu!!;"l}dya$1 )v |alTRSTALLVinRO|LLVINSOkLLVINSTALLVINSTALLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLBu!!;"l"3>n>;%) %instalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLCu' ! ldy~stallvinstalTR6STALLVinROLLVINSO7LLVINSO LLVINSO LLVINSOrLLVINSOuLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLBuinstallvinstallvinstalZ@INSTALLVAFRTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLINSTALLBuinstallvinstaLLVINSTALLVINSTALLVINSTALLVINSTALLYu a~|y{{|gqllvinstalTRSTALLVinSOLLVINSXALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLFu ax|y~stallvinstalTRSTALLVinSOLLVINSXALLVINSO LLVINSO-LLVINSZALLVINS[ALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLGu a%3>><=/8agnstalTRSTALLVinROLLVINSXALLVINSTALLVINSTALLVINS[ALLVINSZALLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLDu;>1allvinstallvinstalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLEu!!;"l}dya$1 )v |alTRSTALLVinRO|LLVINSOkLLVINSTALLVINSTALLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLBu!!;"l"3>n>;%) %instalTRSTALLVinRO|LLVINSNALLVINSOLLVINSOLLVINSOhLLVINSOiLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLCu' ! ldy~stallvinstalTR6STALLVinROLLVINSO7LLVINSO LLVINSO LLVINSOrLLVINSOuLLVINSTALLVINSTALLVINSTALLVINSTALLVINSTALLBuinstallvinsta  !!""##$$%%&&''