home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-13 | 63.1 KB | 5,082 lines |
- ; NSWP VERS 2.05.26 as of 03/02/86
- ; BY DISZILOG 12/03/85 (VER .21,.22 LOST)
- ;
- .Z80
- ;
- CR EQU 0DH
- LF EQU 0AH
- ;
- BDOS EQU 5
- RSTDSK EQU 13 ; RESET DISK SYSTEM (HERE: RESET DMA)
- SELDSK EQU 14 ; SELECT DISK
- FOPEN EQU 15 ; OPEN FILE
- FCLOSE EQU 16 ; CLOSE FILE
- SFIRST EQU 17 ; SEARCH FOR FIRST
- SNEXT EQU 18 ; SEARCH FOR NEXT
- FDELT EQU 19 ; FILE DELETE
- FREAD EQU 20 ; FILE READ
- FWRIT EQU 21 ; FILE WRITE
- FMAKE EQU 22 ; MAKE FILE
- FRENAM EQU 23 ; RENAME FILE
- GETDRV EQU 25 ; GET DRIVE
- SETDMA EQU 26 ; SET DMA ADDRESS
- SETATT EQU 30 ; SET ATTRIBUTE
- GSUSER EQU 32 ; GET/SET USER
- ;
- TDOS EQU 50H
- SABORT EQU 8 ; SET ABORT ADDRESS
- GETSER EQU 12 ; GET SERIAL NUMBER / PRIVILEGE STATUS
- COMPAT EQU 13 ; SET COMPATIBILITY FLAGS
- SNDCL EQU 18 ; SEND COMMAND LINE
- ;
- DFCB EQU 5CH
- DBUF EQU 80H
- STACK EQU 3C00H
- ;
- CSEG
- ;
- START: JP BEGIN
- ;
- MAXLIN::DB 24
- ;
- REVON:: DS 7
- REVOF:: DS 7
- DB 'NSWP (c) 1983 by Dave Rand'
- ;
- BEGIN: LD SP,STACK ; SET UP LOCAL STACK
- LD A,(TDOS) ; CHECK IF RUNNING TURBODOS
- CP 0C3H
- JR Z,ISTURB ; SKIP IF TD...
- CALL ILPRT ; ELSE BARF
- DB CR,LF,7
- 'ERROR: TurboDOS ver 1.3 and up only!',CR,LF,0
- RST 0
- ;
- ISTURB: LD C,GETSER ; CHECK PRIV STATUS
- CALL TDOS
- BIT 7,B
- JR NZ,..ISP
- CALL ILPRT
- DB CR,LF,7
- 'NON-PRIVILEGED USER',CR,LF,0
- RST 0
- ;
- ..ISP: LD C,COMPAT
- LD E,0F8H ; SET COMPAT FLAGS
- CALL TDOS
- LD C,SABORT
- LD DE,LOOP ; SET ABORT ADDRESS
- CALL TDOS
- LD HL,(BDOS+1) ; GET BDOS ENTRY POINT
- DEC H ; PROTECT ZONE
- LD L,0 ; MAKE EVEN PAGE
- LD (RAMTOP),HL ; STORE AS END OF TPA
- LD C,GETDRV ; GET CURRENT DRIVE
- CALL BDOS
- LD (DRIVE1),A ; STORE IT AWAY
- LD (DRIVE2),A
- LD C,GSUSER ; GET CURRENT USER
- LD E,0FFH
- CALL BDOS
- LD (USER1),A ; STORE IT AWAY, TOO
- LD (USER2),A
- LD HL,DFCB+1 ; MOVE DEFAULT FCB...
- LD DE,FCB1+1 ; INTO INTERNAL FCB
- LD B,11 ; (11 BYTES)
- CALL MOVHDB
- LD A,'?' ; SET EXTENT BYTES
- LD (DE),A ; TO WILDCARD
- INC DE
- LD (DE),A
- INC DE
- LD (DE),A
- INC DE
- LD (DE),A
- LD HL,-1 ; INITIALIZE FILECOUNT
- LD (NMBFLS),HL ; AND FILE POINTER
- LD (FILNMB),HL
- CALL PRCMDL ; PROCESS COMMAND LINE
- CALL CRCRCT ; SET UP CRC LOOKUP TABLE
- RELOG: LD C,RSTDSK ; SET DMA TO 80H
- CALL BDOS
- CALL DSPBNR ; DISPLAY BANNER
- CALL GTBKSZ ; GET DRIVE'S BLOCK SIZE
- CALL ILPRT ; PRINT INFO
- DB 'Drive ',0
- LD A,(USER2) ; GET USER
- INC A ; IF USER<>0FFH...
- JR NZ,.NALL ; THEN DISPLAY USER NUMBER
- LD A,'*' ; ELSE DISPLAY A "*"
- CALL PUTCH
- LD A,'?' ; BE SURE FCB BYTE 1 IS "?"
- JR .ALLU
- ;
- .NALL: DEC A
- PUSH AF
- LD E,A
- CALL LOGUSR
- POP AF
- LD L,A
- LD H,0
- CALL HXDCNX
- XOR A
- .ALLU: LD (FCB1),A ; SET DRIVE FIELD
- LD A,(DRIVE2)
- ADD A,'A'
- CALL PUTCH
- CALL ILPRT
- DB ': ',0
- LD HL,-1
- LD (NMBFLS),HL ; INITIALIZE # OF FILES
- INC HL
- LD (FREEK),HL ; INITIALIZE FREESPACE
- LD (TOTALK),HL ; AND TOTAL FILESIZE
- CALL CALCFS ; CALCULATE FREE SPACE
- LD HL,STACK ; HL = BUFFER
- LD DE,FCB1 ; DE = FILENAME MATCH
- CALL WILDEX ; EXPAND WILDCARD INTO BUFFER
- LD A,L ; CHECK IF ANY FILES
- OR H
- DEC HL
- JR Z,.NFLSF ; NO FILES FOUND
- INC HL ; ELSE INCREMENT COUNT
- LD (NMBFLS),HL ; AND STORE
- CALL PRPBUF ; PRE-PROCESS BUFFER
- CALL SORTBF ; SORT FILENAME BUFFER
- CALL UNDUPE ; REMOVE DUPLICATES
- LD HL,(Y2C15)
- DEC HL
- LD (NMBFLS),HL
- .NFLSF: PUSH HL
- CALL PSTATS
- POP HL
- INC HL
- CALL CLCFPT
- LD (FILPTR),HL
- LD HL,0
- LD (FILNMB),HL
- LD (TAGTOT),HL
- LD (TAGTO1),HL
- ;
- ; MAIN LOOP. COME HERE AFTER EVERY COMMAND.
- ;
- LOOP: LD SP,STACK ; RESET STACK
- LD A,(USER2) ; GET REQUESTED USER
- LD (USER3),A ; SAVE IT
- CALL LOGDUE ; LOG IT IN
- LD HL,(NMBFLS) ; CHECK NUMBER OF FILES
- INC HL
- LD A,L ; HAVE ANY?
- OR H
- JR NZ,HAVEFL ; YES, SKIP TO MAIN COMMAND ENTRY
- CALL ILPRT ; ELSE DISPLAY MESSAGE
- DB CR,LF,CR,LF
- DB 'No files.',0
- CALL CIN ; ACCEPT ONLY L,S,X,Z COMMANDS
- CP 'X'
- JP Z,0 ; QUIT
- CP 'L'
- JP Z,LOGNEW
- CP 'S'
- JP Z,FREESP
- CP 'Z'
- JP Z,CHANGE
- LD A,7
- CALL PUTCH
- JR LOOP
- ;
- ; COME HERE FOR MAIN COMMAND ACCEPTOR
- ;
- HAVEFL: CALL CRLF ; NEW LINE
- LD HL,(FILNMB) ; GET CURRNT FILE NUMBER
- CALL CLCFPT ; POINT TO FILENAME
- CALL DSPCFN ; DISPLAY IT WITH SIZE/STATUS
- CALL CIN ; GET A CHARACTER
- LD B,A ; MOVE CHAR INTO B
- LD HL,LOOP ; SET UP RETURN STACK
- PUSH HL
- LD HL,CMDTBL ; POINT TO COMMAND TABLE
- SRHCMD: LD A,(HL) ; GET COMMAND BYTE
- OR A ; IF ZERO
- JR Z,..ERR ; THEN COMMAND NOT FOUND
- CP B ; CHECK IF FOUND
- INC HL ; POINT TO ADDRESS
- JR Z,FNDCMD ; BRANCH IF FOUND
- INC HL ; ELSE POINT TO
- INC HL ; NEXT CHARACTER
- JR SRHCMD ; AND REPEAT
- ;
- FNDCMD: LD E,(HL) ; GET COMMAND ROUTINE ADDRESS
- INC HL
- LD D,(HL)
- PUSH DE ; GO TO COMMAND ROUTINE
- RET
- ;
- ..ERR: LD A,7 ; SOUND BELL IF ERROR
- JP PUTCH
- ;
- ; PRINT STATS
- ;
- PSTATS: PUSH HL
- CALL CLCTLK
- LD HL,(TOTALK)
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K in ',0
- POP HL
- INC HL
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB ' files. ',0
- LD HL,(FREEK)
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K free.',0
- RET
- ;
- ; COMMAND TABLE - LETTER FOLLOWED BY ADDRESS
- ;
- CMDTBL: DB ' '
- DW FORWRD
- DB CR
- DW FORWRD
- DB 'B'
- DW BAKWRD
- DB 'X'
- DW 0 ; QUIT
- DB 'S'
- DW FREESP
- DB 'D'
- DW DELETE
- DB 'T'
- DW TAGFLE
- DB 'U'
- DW UNTAGF
- DB 'V'
- DW VIEWFL
- DB 'P'
- DW PRINTF
- DB 'E'
- DW ERASEF
- DB 'L'
- DW LOGNEW
- DB 'C'
- DW COPYFL
- DB 'M'
- DW MASSCP
- DB 'A'
- DW TAGAGN
- DB 'R'
- DW RENAME
- DB 'F'
- DW FINDFL
- DB 'W'
- DW MASSTG
- DB 'Y'
- DW SETATR
- DB '?'
- DW HELPME
- DB 'Q'
- DW SQZUSQ
- DB 'Z'
- DW CHANGE
- DB 'G'
- DW GOEXEC
- DB 0
- ;
- ; EXECUTE A COMMAND
- ;
- GOEXEC: LD HL,(FILNMB)
- CALL CLCFPT ; HL=FILENAME POINTER
- PUSH HL ; SAVE
- LD DE,8
- ADD HL,DE ; POINT TO TYPE
- LD A,(HL)
- AND 7FH
- CP 'C'
- JR NZ,NOCOMF
- INC HL
- LD A,(HL)
- AND 7FH
- CP 'O'
- JR NZ,NOCOMF
- INC HL
- LD A,(HL)
- AND 7FH
- CP 'M'
- JR NZ,NOCOMF
- LD HL,80H
- LD (HL),'\'
- INC HL
- POP DE ; GET FP
- LD B,8 ; 8 CHARS MAX
- .CCL: LD A,(DE) ; GET A CHAR
- CP ' ' ; BLANK?
- JR Z,.CCE ; YES
- LD (HL),A
- INC HL
- INC DE
- DJNZ .CCL
- .CCE: XOR A
- LD (HL),A
- LD E,0FFH
- LD C,47
- CALL 5
- ;
- NOCOMF: CALL ILPRT
- DB ' not a .COM file',7,0
- JP LOOP
- ;
- ; FORWARD A FILE
- ;
- FORWRD: LD HL,(FILNMB)
- INC HL
- A0346: LD (FILNMB),HL
- EX DE,HL
- LD HL,(NMBFLS)
- CALL CPHLDE
- JP NC,LOOP
- LD HL,0
- LD (FILNMB),HL
- CALL CRLF
- JP LOOP
- ;
- ; BACKWARD A FILE
- ;
- BAKWRD: LD HL,(FILNMB)
- LD A,H
- OR L
- DEC HL
- LD (FILNMB),HL
- JP NZ,LOOP
- CALL CRLF
- LD HL,(NMBFLS)
- LD (FILNMB),HL
- JP LOOP
- ;
- ; CHANGE DRIVE
- ;
- CHANGE: CALL GETDR
- SUB 41H
- LD E,A
- PUSH DE
- LD C,26
- LD D,DBUF
- CALL TDOS
- POP DE
- LD C,25
- LD D,-1
- PUSH DE
- CALL TDOS
- OR A
- JR Z,LOKOK
- CALL ILPRT
- DB CR,LF
- DB '-- DRIVE IN USE --',7,0
- JP LOOP
- ;
- LOKOK: CALL ILPRT
- DB CR,LF
- DB 'Change disk, press RETURN to continue:',0
- ..R?.: LD C,3
- CALL BDOS
- CP CR
- LD A,7
- JR Z,..RT.
- CALL PUTCH
- JR ..R?.
- ;
- ..RT.: LD C,25
- POP DE
- INC D
- CALL TDOS
- JP LOOP
- ;
- GETDR: CALL ILPRT
- DB ' Which drive? ',0
- CALL INPLN
- LD A,(LINET)
- CP 'A'
- JP C,LOOP
- CP 'P'+1
- JP NC,LOOP
- RET
- ;
- ; DISPLAY FREE SPACE
- ;
- FREESP: CALL GETDR
- PUSH AF
- LD C,RSTDSK
- CALL BDOS
- LD A,(DRIVE2)
- LD B,A
- POP AF
- SUB 41H
- LD (DRIVE2),A
- PUSH BC
- PUSH AF
- CALL CRLF
- CALL GTBKSZ
- CALL CALCFS
- CALL CRLF
- LD HL,(FREEK)
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K remaining on drive ',0
- POP AF
- ADD A,'A'
- CALL PUTCH
- LD A,':'
- CALL PUTCH
- CALL CRLF
- POP BC
- LD A,B
- LD (DRIVE2),A
- CALL GTBKSZ
- JP LOOP
- ;
- ; SET ATTRIBUTES
- ;
- SETATR: CALL ILPRT
- DB ' Which attributes (2-4,R,G,A)? ',0
- CALL INPLN
- LD HL,DSTFCB+1
- LD B,11
- A0419: LD (HL),0
- INC HL
- DJNZ A0419
- LD HL,LINEC
- LD A,(HL)
- OR A
- JP Z,LOOP
- INC HL
- LD (Y2C3D),HL
- A042C: LD HL,(Y2C3D)
- EX DE,HL
- CALL SKNBL
- EX DE,HL
- INC HL
- LD (Y2C3D),HL
- OR A
- JR Z,A0457
- LD HL,ATTRS
- LD DE,DSTFCB+1
- LD B,11
- A0444: CP (HL)
- JR Z,A0451
- INC HL
- INC DE
- DJNZ A0444
- JR A042C
- ;
- A0451: LD A,80H
- LD (DE),A
- JR A042C
- ;
- A0457: LD A,2
- JP A098F
- ;
- ATTRS: DB 'z234zzzzRGA'
- ;
- ; DELETE A FILE
- ;
- DELETE: CALL ILPRT
- DB ' Delete file? ',0
- CALL CIN
- CP 'Y'
- JP NZ,LOOP
- LD HL,(FILNMB)
- CALL DELFHL
- JP LOOP
- ;
- ; DELETE FILE # IN HL
- ;
- DELFHL: CALL CLCFPT
- PUSH HL
- CALL SUBUP
- POP HL
- PUSH HL
- LD DE,DFCB+1
- XOR A
- LD (DFCB),A
- LD B,11
- CALL MOVHDB
- PUSH HL
- PUSH DE
- POP HL
- INC DE
- LD B,22
- LD (HL),0
- CALL MOVHDB
- LD E,0FFH
- CALL LOGUSR
- LD E,A
- POP HL
- PUSH DE
- LD E,(HL)
- CALL LOGUSR
- LD A,(DFCB+9)
- AND 80H
- JR Z,NOTRDO
- CALL ILPRT
- DB ' R/O. Delete? ',7,0
- CALL CIN
- CP 'Y'
- JR Z,DELRDO
- POP DE
- POP HL
- RET
- ;
- ; DELETE R/O FILE
- ;
- DELRDO: LD A,(DFCB+9)
- AND 7FH
- LD (DFCB+9),A
- LD DE,DFCB
- CALL SATTRB
- NOTRDO: LD DE,DFCB
- CALL DELDE
- JR NZ,DLTD
- NTDLT: CALL ILPRT
- DB ' Can''t delete file',7,0
- JP LOOP
- ;
- DLTD: POP DE
- CALL LOGUSR
- LD HL,(NMBFLS)
- LD DE,(FILNMB)
- OR A
- SBC HL,DE
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- PUSH HL
- POP BC
- POP HL
- PUSH HL
- LD DE,10H
- ADD HL,DE
- POP DE
- LD A,B
- OR C
- JR Z,A0523
- A0519: LD A,(HL)
- LD (DE),A
- INC HL
- INC DE
- DEC BC
- LD A,B
- OR C
- JR NZ,A0519
- A0523: LD HL,(NMBFLS)
- DEC HL
- LD (NMBFLS),HL
- EX DE,HL
- LD HL,(FILNMB)
- CALL CPHLDE
- RET C
- RET Z
- DEC HL
- LD (FILNMB),HL
- RET
- ;
- ; ERASE FILE
- ;
- ERASEF: CALL ILPRT
- DB CR,LF
- DB 'Erase Tagged or Untagged files (T/U)? ',0
- CALL CIN
- CP 'T'
- JR Z,A0571
- CP 'U'
- JP NZ,LOOP
- A0571: CP 'T'
- LD A,1
- JR Z,A0579
- XOR A
- A0579: LD (Y2C0C),A
- A057C: CALL ILPRT
- DB CR,LF
- DB 'Do you wish to be prompted (Y/N/A)? ',0
- CALL CIN
- CP 3
- JP Z,LOOP
- CP 'A'
- JP Z,LOOP
- CP 'N'
- JR Z,A05C2
- CP 'Y'
- LD A,1
- JR NZ,A057C
- JR A05C3
- ;
- A05C2: XOR A
- A05C3: LD (Y2C33),A
- LD HL,0
- A05C9: PUSH HL
- LD (FILNMB),HL
- CALL CLCFPT
- PUSH HL
- CALL ADDH12
- LD A,(HL)
- AND 1
- LD B,A
- LD A,(Y2C0C)
- CP B
- POP HL
- JR NZ,A0633
- PUSH HL
- CALL ILPRT
- DB CR,LF
- DB 'Deleting ---> ',0
- POP HL
- CALL A13DA
- LD A,(Y2C33)
- OR A
- JR Z,A0624
- CALL ILPRT
- DB ' Delete (Y/N/A)? ',0
- CALL CIN
- CP 'A'
- JR Z,A0647
- CP 'Y'
- JR NZ,A0633
- A0624: CALL A1598
- JR Z,A0650
- POP HL
- PUSH HL
- CALL DELFHL
- POP HL
- JR A0635
- ;
- A0633: POP HL
- INC HL
- A0635: EX DE,HL
- LD HL,(NMBFLS)
- INC HL
- LD A,L
- OR H
- JR Z,A0647
- DEC HL
- CALL CPHLDE
- EX DE,HL
- JP NC,A05C9
- A0647: LD HL,0
- LD (FILNMB),HL
- JP LOOP
- ;
- A0650: LD HL,0
- LD (FILNMB),HL
- JP A0B55
- ;
- ; ADD UP TAGGED FILES AND DISPLAY
- ;
- ADDUP: LD A,(HL) ; GET TAG FLAG
- LD (HL),1 ; SET TO TAGGED
- CP 1 ; IF ALREADY TAGGED
- JR Z,.TALRY ; THEN SKIP
- INC HL
- CALL CLCFSZ ; CALC FILE SIZE
- PUSH HL
- LD HL,(TAGTO1) ; ACCUMULATE 1K SIZE TOTAL
- ADD HL,DE
- LD (TAGTO1),HL
- POP HL
- EX DE,HL
- LD HL,(TAGTOT) ; ACCUMULATE CUR BLK TOTAL
- ADD HL,DE
- LD (TAGTOT),HL
- .TALRY: LD HL,(TAGTOT)
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K (',0
- LD HL,(TAGTO1)
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K).',0
- RET
- ;
- ; TAG FILE
- ;
- TAGFLE: CALL .MTGDF
- LD HL,(FILNMB)
- CALL CLCFPT
- CALL ADDH12
- CALL ADDUP
- JP FORWRD
- ;
- .MTGDF: CALL ILPRT
- DB ' Tagged files = ',0
- RET
- ;
- ; UNTAG FILE
- ;
- UNTAGF: CALL .MTGDF ; DISPLAY MESSAGE
- LD HL,(FILNMB)
- CALL CLCFPT
- CALL SUBUP ; SUBTRACT FILESIZE FROM TOTAL
- CALL .TALRY
- JP FORWRD
- ;
- SUBUP: CALL ADDH12
- LD A,(HL)
- LD (HL),0
- CP 1
- RET NZ
- PUSH HL
- INC HL
- CALL CLCFSZ
- PUSH HL
- LD HL,(TAGTO1)
- OR A
- SBC HL,DE
- LD (TAGTO1),HL
- POP HL
- EX DE,HL
- LD HL,(TAGTOT)
- OR A
- SBC HL,DE
- LD (TAGTOT),HL
- POP HL
- RET
- ;
- ; LOG INTO NEW DRIVE, USER OR FILEMATCH
- ;
- LOGNEW: LD C,GETDRV ; GET DRIVE
- CALL BDOS
- LD E,A ; DRIVE TO E
- LD C,26 ; FLUSH
- LD D,80H ; UNCONDITIONAL
- CALL TDOS
- CALL ILPRT
- DB ' New drive/user/mask? ',0
- CALL INPLN
- LD HL,LINEC
- LD A,(HL)
- OR A
- JP Z,LOOP
- INC HL
- LD (Y2C3D),HL
- CALL PARSDF
- LD A,(DFCB)
- OR A
- JR NZ,A072C
- LD A,(DRIVE2)
- INC A
- A072C: DEC A
- LD (DRIVE2),A
- LD A,(Y2C3A)
- CP 0FFH
- JR NZ,A0745
- LD A,(LINET+1)
- CP '*'
- LD A,0FFH
- JR Z,A0745
- LD A,(USER2)
- A0745: LD (USER2),A
- LD A,(DFCB+1)
- CP ' '
- JR NZ,A075D
- LD HL,DFCB+1
- LD DE,DFCB+2
- LD B,10
- LD (HL),'?'
- CALL MOVHDB
- A075D: LD HL,DFCB
- LD DE,FCB1
- LD B,12
- CALL MOVHDB
- CALL CRLF
- CALL CRLF
- JP RELOG
- ;
- A0771: PUSH HL
- XOR A
- LD (CRCFLG),A
- A0776: LD A,(HL)
- OR A
- JR Z,A0784
- CP 'V'
- INC HL
- JR NZ,A0776
- LD (CRCFLG),A
- A0784: POP HL
- RET
- ;
- A0786: CALL ILPRT
- DB CR,LF
- DB 'Illegal drive code.',0
- JP LOOP
- ;
- A07A2: CALL A0771
- LD A,(USER2)
- LD (Y2C3A),A
- LD A,(DRIVE2)
- LD (Y2C38),A
- LD A,(HL)
- CP '0'
- JR C,A0786
- CP '9'+1
- JR C,A07D2
- CP 'A'
- JR C,A0786
- CP 'P'+1
- JR NC,A0786
- SUB 'A'
- LD (Y2C38),A
- INC HL
- LD A,(HL)
- CP ':'
- RET Z
- OR A
- RET Z
- ;
- ; FOLLOWING CODE CALCULATES USER #
- ;
- A07D2: CP '*'
- JR Z,A0806
- CP '0'
- RET C
- CP '9'+1
- RET NC
- AND 0FH
- LD C,A
- CALL USRPAT ; MULTIPLY
- LD B,A
- INC HL
- LD A,(HL)
- CP ':'
- JR Z,A07FF
- OR A
- JR Z,A07FF
- CP '0'
- JR C,A07FF
- CP '9'+1
- JR NC,A07FF
- SUB '0'
- ADD A,B
- CP 32
- RET NC
- LD (Y2C3A),A
- RET
- ;
- A07FF: LD A,C
- LD (Y2C3A),A
- RET
- ;
- A0806: LD A,0FFH
- LD (Y2C3A),A
- RET
- ;
- ; GET TAGGED/UNTAGGED RESPONSE AND SET A
- ;
- GTUR.: CALL ILPRT
- DB CR,LF
- DB 'Tagged or Untagged files (T/U)? ',0
- CALL CIN
- CP 'T'
- JR Z,.GTURT
- CP 'U'
- JP NZ,LOOP
- XOR A
- JR .GTURS
- ;
- .GTURT: LD A,1
- .GTURS: LD (.TOTU.),A
- RET
- ;
- ; LINE INPUT
- ;
- INPLN: LD DE,LINE
- LD C,10
- CALL BDOS
- LD HL,LINEC
- PUSH HL
- LD E,(HL)
- INC HL
- LD D,0
- ADD HL,DE
- LD (HL),0
- INC HL
- LD (HL),B
- POP HL
- A0822: INC HL
- LD A,(HL)
- OR A
- RET Z
- CALL CAPS
- LD (HL),A
- JR A0822
- ;
- A082D: CALL ILPRT
- DB ' Copy to drive/user? ',0
- CALL INPLN
- LD HL,LINEC
- LD A,(HL)
- OR A
- JP Z,LOOP
- PUSH HL
- LD C,RSTDSK
- CALL BDOS
- CALL GTBKSZ
- POP HL
- INC HL
- CALL A07A2
- LD A,(Y2C43)
- OR A
- RET NZ
- A0865: LD A,(USER3)
- LD B,A
- LD A,(Y2C3A)
- CP 0FFH
- JR Z,A0873
- CP B
- RET NZ
- A0873: LD A,(Y2C38)
- LD B,A
- LD A,(DRIVE2)
- CP B
- RET NZ
- CALL ILPRT
- DB CR,LF
- DB 'Can''t copy to same drive and user.',0
- JP LOOP
- ;
- ; COPY A FILE
- ;
- COPYFL: LD HL,(FILNMB)
- CALL CLCFPT
- PUSH HL
- XOR A
- LD (SRCFCB),A
- LD DE,SRCFCB+1
- LD B,11
- CALL MOVHDB
- LD A,(HL)
- LD (USER3),A
- CALL ILPRT
- DB ' Copy to (filespec)? ',0
- CALL INPLN
- LD HL,LINEC
- LD A,(HL)
- OR A
- JP Z,LOOP
- INC HL
- LD (Y2C3D),HL
- CALL PARSDF
- LD HL,(Y2C3D)
- CALL A0771
- LD A,(DFCB+1)
- CP ' '
- JR NZ,A090A
- LD HL,SRCFCB+1
- LD DE,DFCB+1
- LD B,11
- A0900: LD A,(HL)
- AND 7FH
- LD (DE),A
- INC HL
- INC DE
- DJNZ A0900
- A090A: LD A,(DFCB)
- DEC A
- LD (Y2C38),A
- LD HL,SRCFCB+1
- LD DE,DFCB+1
- CALL A100E
- JR NZ,A0920
- CALL A0865
- A0920: LD HL,DFCB+1
- LD DE,SRCFCB+1
- LD B,11
- A0928: LD A,(DE)
- AND 80H
- OR (HL)
- LD (HL),A
- INC HL
- INC DE
- DJNZ A0928
- LD HL,DFCB
- LD DE,DSTFCB
- LD B,12
- CALL MOVHDB
- LD A,1
- LD (.CPFL),A
- POP HL
- CALL A0DB4
- JP LOOP
- ;
- ; SQ/USQ ENTRY POINT
- ;
- SQZUSQ: CALL ILPRT
- DB CR,LF
- DB ' Squeeze, Unsqueeze or Reverse (S,U,R)? ',0
- CALL CIN
- LD (Y2C00),A
- CP 'S'
- JR Z,A0989
- CP 'U'
- JR Z,A0989
- CP 'R'
- JP NZ,LOOP
- A0989: LD A,1
- JR A098F
- ;
- ; MOVE FILES
- ;
- MASSCP: XOR A
- A098F: LD (Y2C43),A
- PUSH AF
- CALL GTUR. ; ASK TAG/UNTAG
- CALL CRLF
- LD A,(USER2)
- LD (USER3),A
- POP AF
- CP 2
- JR Z,A09A5
- CALL A082D
- A09A5: LD HL,0
- A09A8: PUSH HL
- CALL CLCFPT
- PUSH HL
- CALL ADDH12
- LD A,(HL)
- AND 1
- CP 1
- .TOTU. EQU $-1 ; T/U FLAG
- DEC HL
- LD B,(HL)
- POP HL
- JP NZ,.NTTGD ; SKIP IF NOT TAGGED
- PUSH HL
- LD A,B
- LD (USER3),A
- LD A,(Y2C43)
- OR A
- JR NZ,A0A08
- LD A,(DRIVE2)
- LD B,A
- LD A,(Y2C38)
- CP B
- JR NZ,A0A08
- LD A,(USER3)
- LD B,A
- LD A,(Y2C3A)
- CP B
- JR NZ,A0A08
- CALL ILPRT
- DB CR,LF
- DB 'Skipping, same drive & user --> ',0
- POP HL
- CALL A13DA
- JP .NTTGD
- ;
- A0A08: LD A,(Y2C43)
- CP 1
- JR Z,A0A2C
- CP 2
- JR Z,A0A43
- CALL ILPRT
- DB CR,LF
- DB 'Copying --> ',0
- JR A0A57
- ;
- A0A2C: CALL ILPRT
- DB CR,LF
- DB 'SQ/USQ --> ',0
- JR A0A57
- ;
- A0A43: CALL ILPRT
- DB CR,LF
- DB 'Setting --> ',0
- A0A57: POP HL
- PUSH HL
- CALL A13DA
- CALL ILPRT
- DB ' to ',0
- A0A64: LD A,(Y2C43)
- CP 2
- JR NZ,A0AE2
- LD HL,DSTFCB+1
- LD DE,T0AC2
- LD B,4
- A0A74: LD A,(HL)
- OR A
- CALL NZ,A0AA3
- INC HL
- INC DE
- INC DE
- INC DE
- DEC B
- DJNZ A0A74
- LD HL,DSTFCT
- LD DE,T0ACE
- LD A,(HL)
- OR A
- CALL Z,A0ABA
- LD DE,T0AD3
- LD B,3
- A0A91: LD A,(HL)
- OR A
- CALL NZ,A0ABA
- INC HL
- INC DE
- INC DE
- INC DE
- INC DE
- INC DE
- DJNZ A0A91
- JR A0B1E
- ;
- A0AA3: PUSH HL
- PUSH DE
- PUSH BC
- LD B,3
- A0AA8: EX DE,HL
- A0AA9: LD A,(HL)
- PUSH HL
- PUSH BC
- CALL PUTCH
- POP BC
- POP HL
- INC HL
- DJNZ A0AA9
- POP BC
- POP DE
- POP HL
- RET
- ;
- A0ABA: PUSH HL
- PUSH DE
- PUSH BC
- LD B,5
- JR A0AA8
- ;
- T0AC2: DB ' F 2 3 4 '
- T0ACE: DB ' R/W '
- T0AD3: DB ' R/O GLB ARC '
- ;
- A0AE2: LD A,(Y2C3A)
- CP 0FFH
- JR NZ,A0AF5
- LD A,(USER3)
- A0AF5: LD L,A
- LD H,0
- CP 10
- LD C,1
- JR C,A0B00
- INC C
- A0B00: CALL HEXDEC
- LD A,(Y2C38)
- ADD A,'A'
- CALL PUTCH
- LD A,':'
- CALL PUTCH
- LD A,(CRCFLG)
- OR A
- JR Z,A0B1E
- CALL ILPRT
- DB ' with CRC',0
- A0B1E: POP HL
- PUSH HL
- LD A,(Y2C43)
- CP 1
- JR Z,A0B33
- CP 2
- JR Z,A0B6D
- CALL A0DBA
- JR A0B36
- ;
- A0B33: CALL A0C33
- A0B36: POP HL
- CALL SUBUP
- LD A,(.TOTU.)
- DEC A
- JR NZ,.NTTGD
- LD (HL),2
- .NTTGD: CALL A1598
- JR Z,A0B55
- POP HL
- INC HL
- EX DE,HL
- LD HL,(NMBFLS)
- CALL CPHLDE
- EX DE,HL
- JP NC,A09A8
- CALL CRLF
- JR A0B6A
- ;
- A0B55: CALL ILPRT
- DB CR,LF
- DB '-- Aborted --',7,0
- A0B6A: JP LOOP
- ;
- A0B6D: PUSH HL
- LD DE,SRCFCB
- XOR A
- LD (DE),A
- INC DE
- LD B,11
- CALL MOVHDB
- LD A,(HL)
- PUSH AF
- PUSH DE
- POP HL
- INC DE
- LD (HL),0
- LD B,22
- CALL MOVHDB
- POP AF
- LD (USER3),A
- CALL LOGDUE
- LD HL,SRCFCB+1
- LD DE,DSTFCB+1
- LD B,11
- A0B94: LD A,(HL)
- AND 7FH
- LD (HL),A
- LD A,(DE)
- OR (HL)
- LD (HL),A
- INC HL
- INC DE
- DJNZ A0B94
- LD DE,SRCFCB
- CALL SATTRB
- LD HL,SRCFCB+1
- POP DE
- LD B,11
- CALL MOVHDB
- JR A0B36
- ;
- ; TAG FILES AGAIN AFTER COPY
- ;
- TAGAGN: LD HL,0
- A0BB8: PUSH HL
- CALL CLCFPT
- PUSH HL
- CALL ADDH12
- LD A,(HL)
- CP 2
- JR NZ,A0BEC
- CALL ILPRT
- DB CR,LF
- DB 'Retagging --> ',0
- POP HL
- PUSH HL
- CALL A13DA
- LD A,' '
- CALL PUTCH
- POP HL
- CALL ADDH12
- CALL ADDUP
- PUSH HL
- A0BEC: POP HL
- POP HL
- INC HL
- EX DE,HL
- LD HL,(NMBFLS)
- CALL CPHLDE
- EX DE,HL
- JR NC,A0BB8
- JP LOOP
- ;
- A0BFD: CALL A1FED
- OR A
- RET NZ
- PUSH AF
- PUSH DE
- PUSH HL
- CALL ILPRT
- DB '(',0
- A0C0A: POP HL
- PUSH HL
- A0C0C: LD A,(HL)
- INC HL
- OR A
- JR Z,A0C1A
- PUSH HL
- CALL PUTCH
- POP HL
- JR A0C0C
- ;
- A0C1A: CALL ILPRT
- DB ')',0
- POP HL
- POP DE
- POP AF
- RET
- ;
- ; PRINT B BYTES OF FILE NAME
- ;
- PFNBYT: LD A,(HL)
- CP ' '
- PUSH HL
- PUSH BC
- CALL NZ,PUTCH
- POP BC
- POP HL
- INC HL
- DJNZ PFNBYT
- RET
- ;
- A0C33: LD (Y2C01),HL
- CALL A15B8
- CALL A0D6E
- EX DE,HL
- LD HL,(FILPTR)
- LD (Y2C21),HL
- LD HL,(Y2C01)
- JP NZ,A0DAC
- EX DE,HL
- LD DE,0FF76H
- CALL CPHLDE
- JR NZ,A0C66
- LD HL,(Y2C01)
- LD A,(Y2C00)
- CP 'U'
- JP Z,A0CDD
- CP 'R'
- JP Z,A0CDD
- JP A0DAC
- ;
- A0C66: LD HL,(Y2C01)
- LD A,(Y2C00)
- CP 'R'
- JR Z,A0C76
- CP 'U'
- JP Z,A0DAC
- A0C76: LD HL,Y2EED
- CALL A2160
- OR A
- LD HL,(Y2C01)
- JP NZ,A0DAC
- CALL A16C0
- LD HL,SRCFCB
- LD DE,DSTFCB
- LD B,0CH
- LD (HL),0
- CALL MOVHDB
- LD HL,DSTFCT
- LD A,(HL)
- AND 7FH
- CP ' '
- JR NZ,A0CA3
- LD (HL),'Q'
- INC HL
- LD (HL),'Q'
- A0CA3: INC HL
- LD (HL),'Q'
- CALL ILPRT
- DB '(',0
- A0CAB: LD HL,DSTFCB+1
- LD B,8
- CALL PFNBYT
- PUSH HL
- LD A,'.'
- CALL PUTCH
- POP HL
- LD B,3
- CALL PFNBYT
- CALL ILPRT
- DB ')',0
- CALL A1625
- LD HL,(Y2C01)
- CALL A15B8
- LD HL,SRCFCB
- CALL A2576
- CALL A1739
- CALL CLSDST
- JP A16C0
- ;
- A0CDD: LD HL,Y2EED
- CALL A0BFD
- OR A
- JR Z,A0CFC
- CALL ILPRT
- DB ' Not a SQ file.',0
- RET
- ;
- A0CFC: LD (Y2C3D),HL
- EX DE,HL
- LD (Y2C41),HL
- LD A,(Y2C3A)
- PUSH AF
- CALL A1B9C
- POP AF
- LD (Y2C3A),A
- LD HL,DFCB
- LD DE,DSTFCB
- LD (HL),0
- LD B,0CH
- CALL MOVHDB
- CALL A1625
- LD HL,0
- A0D21: PUSH HL
- CALL A20BA
- POP HL
- JR NZ,A0D35
- LD E,A
- LD D,0
- ADD HL,DE
- PUSH HL
- CALL A171C
- POP HL
- JR A0D21
- ;
- A0D35: EX DE,HL
- LD HL,(Y2C41)
- CALL CPHLDE
- PUSH AF
- CALL A1739
- CALL CLSDST
- CALL A16C0
- POP AF
- RET Z
- CALL ILPRT
- DB CR,LF
- DB 'ERROR - Checksum error in file ',0
- RET
- ;
- A0D6E: CALL A1773
- RET NZ
- PUSH AF
- CALL A1773
- LD H,A
- POP AF
- LD L,A
- CP A
- RET
- ;
- A0D7B: CALL A0D6E
- RET Z
- CALL ILPRT
- DB CR,LF
- DB 'Premature EOF on file... aborted.',0
- JP LOOP
- ;
- A0DAC: PUSH HL
- CALL A16C0
- POP HL
- JR A0DBA
- ;
- A0DB4: CALL A15B8
- JR A0DE3
- ;
- A0DBA: LD A,(Y2C38)
- LD B,A
- LD A,(DRIVE2)
- CP B
- JR NZ,A0DD1
- LD A,(USER3)
- LD B,A
- LD A,(Y2C3A)
- CP 0FFH
- RET Z
- CP B
- RET Z
- A0DD1: CALL A15B8
- LD HL,SRCFCB
- LD DE,DSTFCB
- LD B,0CH
- CALL MOVHDB
- XOR A
- LD (DSTFCB),A
- A0DE3: LD HL,0
- LD (CRCACC),HL
- CALL A1625
- CALL LOGDUE
- LD HL,(FILPTR)
- LD (Y2C34),HL
- A0DF5: PUSH HL
- EX DE,HL
- LD C,SETDMA
- CALL BDOS
- LD DE,SRCFCB
- LD C,FREAD
- CALL BDOS
- POP HL
- OR A
- JR NZ,A0E1E
- LD DE,80H
- ADD HL,DE
- LD (Y2C34),HL
- EX DE,HL
- LD HL,(RAMTOP)
- CALL CPHLDE
- EX DE,HL
- CALL C,A0ED5
- JR A0DF5
- ;
- A0E1E: CALL A0ED5
- CALL CLSDST
- CALL A16C0
- LD A,(CRCFLG)
- OR A
- RET Z
- LD HL,.CPFL
- LD A,(HL)
- LD (HL),0
- OR A
- CALL NZ,CRLF
- CALL ILPRT
- DB ' Verifying... ',0
- CALL A1604
- LD HL,Y2C76
- LD DE,Y2C77
- LD B,21
- LD (HL),0
- CALL MOVHDB
- LD DE,DSTFCB
- LD C,FOPEN
- CALL BDOS
- INC A
- JR NZ,A0E74
- CALL ILPRT
- DB ' Can''t open file!',0
- JP LOOP
- ;
- A0E74: LD DE,80H
- LD C,SETDMA
- CALL BDOS
- LD HL,(CRCACC)
- LD (SRCCRC),HL
- LD HL,0
- LD (CRCACC),HL
- .VFYLP: LD C,FREAD
- LD DE,DSTFCB
- CALL BDOS
- OR A
- JR NZ,VFYDUN
- LD HL,DBUF
- LD DE,100H
- CALL CRCBLK
- JR .VFYLP
- ;
- VFYDUN: CALL CLSDST ; CLOSE DESTINATION FILE
- LD DE,(SRCCRC)
- LD HL,(CRCACC)
- CALL CPHLDE
- JR Z,.VFYOK
- CALL ILPRT
- DB 'verify error',7,0
- JP LOOP
- ;
- .VFYOK: CALL ILPRT
- DB 'file ok.',0
- RET
- ;
- A0ED5: LD DE,(Y2C34)
- LD HL,(FILPTR)
- CALL CPHLDE
- RET Z
- CALL CRCBLK
- CALL A1604
- LD HL,(FILPTR)
- A0EE9: PUSH HL
- EX DE,HL
- LD C,SETDMA
- CALL BDOS
- LD DE,DSTFCB
- LD C,FWRIT
- CALL BDOS
- POP HL
- OR A
- JR NZ,A0F16
- LD DE,80H
- ADD HL,DE
- LD DE,(Y2C34)
- CALL CPHLDE
- JR NZ,A0EE9
- CALL LOGDUE
- LD HL,(FILPTR)
- LD (Y2C34),HL
- RET
- ;
- A0F16: LD C,GETDRV ; GET DRIVE
- CALL BDOS
- LD E,A ; DRIVE TO E
- LD C,26 ; FLUSH
- LD D,80H ; UNCONDITIONAL
- CALL TDOS
- CALL ILPRT
- DB CR,LF
- DB 'Destination disk full.',0
- CALL CLSDST
- CALL A16C0
- CALL A16E7
- JP LOOP
- ;
- FINDFL: CALL ILPRT
- DB ' Find what? ',0
- CALL INPLN
- LD HL,LINET
- LD (Y2C3D),HL
- CALL A1B9C
- LD HL,DFCB+1
- LD A,(HL)
- CP ' '
- JP Z,LOOP
- LD B,11
- A0F6D: LD A,(HL)
- CP ' '
- JR NZ,A0F75
- LD (HL),'?'
- A0F75: INC HL
- DJNZ A0F6D
- CALL ILPRT
- DB CR,LF,0
- LD HL,-1
- CALL A0FEF
- JP NZ,LOOP
- LD (FILNMB),HL
- JP LOOP
- ;
- MASSTG: CALL ILPRT
- DB ' Tag what? ',0
- CALL INPLN
- LD HL,LINET
- LD (Y2C3D),HL
- CALL A1B9C
- LD HL,DFCB+1
- LD A,(HL)
- CP ' '
- JP Z,LOOP
- CALL ILPRT
- DB CR,LF,0
- LD HL,-1
- A0FBD: CALL A0FEF
- JP NZ,LOOP
- PUSH HL
- CALL ILPRT
- DB CR,LF
- DB 'Tagging --> ',0
- POP HL
- PUSH HL
- CALL CLCFPT
- PUSH HL
- CALL A13DA
- LD A,' '
- CALL PUTCH
- POP HL
- CALL ADDH12
- CALL ADDUP
- POP HL
- JR A0FBD
- ;
- A0FEF: INC HL
- EX DE,HL
- LD HL,(NMBFLS)
- CALL CPHLDE
- JR C,A100A
- EX DE,HL
- PUSH HL
- CALL CLCFPT
- LD DE,5DH
- CALL A100E
- POP HL
- RET Z
- JR A0FEF
- ;
- A100A: LD A,1
- OR A
- RET
- ;
- A100E: LD B,11
- EX DE,HL
- A1011: LD A,(HL)
- CP '?'
- JR Z,A101C
- LD A,(DE)
- AND 7FH
- CP (HL)
- RET NZ
- A101C: INC HL
- INC DE
- DJNZ A1011
- RET
- ;
- RENAME: LD HL,(FILNMB)
- CALL CLCFPT
- LD DE,11
- ADD HL,DE
- LD A,(HL)
- LD (USER3),A
- CALL ILPRT
- DB ' New name, or *? ',0
- CALL INPLN
- LD HL,LINET
- LD (Y2C3D),HL
- LD HL,DFCB+16
- PUSH HL
- CALL PARSFN
- POP HL
- INC HL
- LD A,(HL)
- CP ' '
- JP Z,LOOP
- LD B,11
- A1061: CP '?'
- JP Z,RENWIL
- INC HL
- DJNZ A1061
- LD A,(Y2C3A)
- CP 0FFH
- JR NZ,A1076
- LD A,(USER3)
- A1076: LD (HL),A
- LD HL,(FILNMB)
- CALL CLCFPT
- CALL A10B9
- CP '.'
- JR NZ,A108D
- LD C,RSTDSK
- CALL BDOS
- CALL GTBKSZ
- A108D: LD HL,(FILNMB)
- PUSH HL
- LD HL,(NMBFLS)
- INC HL
- LD (NMBFLS),HL
- CALL SORTBF
- CALL UNDUPE
- LD HL,(Y2C15)
- DEC HL
- LD (NMBFLS),HL
- EX DE,HL
- POP HL
- LD (FILNMB),HL
- CALL CPHLDE
- JP C,LOOP
- LD HL,0
- LD (FILNMB),HL
- JP LOOP
- ;
- A10B9: PUSH HL ; ANYTHING MISSING BELOW HERE?????
- LD (Y2C38),A
- LD DE,DFCB
- XOR A
- LD (DFCB),A
- INC DE
- LD B,0BH
- CALL MOVHDB
- LD B,4
- XOR A
- A10D0: LD (DE),A
- INC DE
- DJNZ A10D0
- CALL LOGDUE
- LD A,(DFCB+9)
- AND 80H
- JR Z,A10F9
- LD A,(DFCB+9)
- AND 7FH
- LD (DFCB+9),A
- LD A,(DFCB+25)
- AND 7FH
- LD (DFCB+25),A
- LD DE,DFCB
- CALL SATTRB
- A10F9: LD A,(Y2C3A)
- CP 0FFH
- LD E,A
- LD A,(USER3)
- JR NZ,A1106
- LD E,A
- A1106: CALL LOGUSR
- LD HL,6DH
- LD DE,SRCFCB+1
- LD B,0BH
- CALL MOVHDB
- XOR A
- LD (SRCFCB),A
- CALL A15AB
- LD DE,SRCFCB
- LD HL,(FILPTR)
- CALL WILDEX
- LD A,L
- OR H
- JR Z,A1152
- CALL ILPRT
- DB CR,LF
- DB 'Destination file exists!',0
- LD C,RSTDSK
- CALL BDOS
- CALL GTBKSZ
- JP LOOP
- ;
- A1152: LD A,(Y2C3A)
- CP 0FFH
- JR Z,A1162
- LD B,A
- LD A,(USER3)
- CP B
- JR NZ,DIF.US
- A1162: LD A,(USER3)
- LD E,A
- CALL LOGUSR
- LD E,0FFH
- CALL LOGUSR
- PUSH AF
- LD DE,DFCB
- LD C,FRENAM
- CALL BDOS
- POP AF
- LD E,A
- CALL LOGUSR
- XOR A
- A117D: POP DE
- PUSH AF
- LD HL,6DH
- LD B,12
- CALL MOVHDB
- POP AF
- CP A
- RET
- ;
- DIF.US: CALL ILPRT
- DB CR,LF,LF,7
- DB 'ERROR: Cannot rename file to different user'
- DB CR,LF,0
- JP LOOP
- ;
- WILDEX: PUSH HL
- PUSH DE
- LD C,SETDMA
- LD DE,DBUF
- CALL BDOS
- POP DE
- PUSH DE
- LD C,SFIRST
- CALL BDOS
- INC A
- POP DE
- POP HL
- LD BC,0
- JR NZ,GETFLN
- LD HL,0
- RET
- ;
- GETFLN: PUSH DE
- PUSH BC
- PUSH HL
- DEC A
- ADD A,A
- ADD A,A
- ADD A,A
- ADD A,A
- ADD A,A
- LD HL,DBUF
- ADD A,L
- LD L,A
- POP DE
- LD B,32
- CALL MOVHDB
- PUSH DE
- INC D
- LD HL,(RAMTOP)
- CALL CPHLDE
- JR NC,NOTOM
- CALL ILPRT
- DB CR,LF
- DB 'OUT OF MEMORY?',0
- RST 0
- ;
- NOTOM: POP DE
- PUSH DE
- POP HL
- POP BC
- INC BC
- POP DE
- PUSH DE
- PUSH BC
- PUSH HL
- LD C,SNEXT
- CALL BDOS
- INC A
- POP HL
- POP BC
- POP DE
- JR NZ,GETFLN
- LD L,C
- LD H,B
- RET
- ;
- ; WILDCARD RENAME
- ;
- RENWIL: CALL ILPRT
- DB CR,LF,CR,LF
- DB 'Old name? ',0
- CALL INPLN
- LD HL,LINET
- LD (Y2C3D),HL
- LD HL,FCB0
- CALL PARSFN
- LD A,(FCB0+1)
- CP ' '
- JP Z,LOOP
- LD A,(Y2C3A)
- LD (Y2C0C),A
- CALL ILPRT
- DB CR,LF
- DB 'New name? ',0
- CALL INPLN
- LD HL,LINET
- LD (Y2C3D),HL
- LD HL,DSTFCB
- CALL PARSFN
- LD A,(DSTFCB+1)
- CP ' '
- JP Z,LOOP
- CALL CRLF
- LD HL,0
- A1312: PUSH HL
- CALL CLCFPT
- PUSH HL
- LD DE,FCB0+1
- CALL A1385
- JR NZ,A1362
- CALL ILPRT
- DB CR,LF
- DB 'Renaming --> ',0
- POP HL
- PUSH HL
- CALL A13DA
- POP HL
- PUSH HL
- LD DE,11
- ADD HL,DE
- LD A,(HL)
- LD (USER3),A
- CALL ILPRT
- DB ' to ',0
- POP HL
- PUSH HL
- CALL A13B2
- LD HL,6DH
- CALL A13DA
- POP HL
- CALL A10B9
- LD B,A
- LD A,(D1374)
- OR B
- LD (D1374),A
- PUSH HL
- A1362: POP HL
- POP HL
- INC HL
- EX DE,HL
- LD HL,(NMBFLS)
- CALL CPHLDE
- EX DE,HL
- JR NC,A1312
- CALL CRLF
- LD A,0
- D1374 EQU $-1
- CP '.'
- JP NZ,A108D
- LD C,RSTDSK
- CALL BDOS
- CALL GTBKSZ
- JP A108D
- ;
- A1385: LD A,(HL)
- CP 0E5H
- JR Z,A13AF
- PUSH HL
- LD BC,11
- ADD HL,BC
- LD B,(HL)
- POP HL
- LD A,(Y2C0C)
- CP 0FFH
- JR Z,A139C
- CP B
- RET NZ
- A139C: LD A,(DE)
- CP 03FH
- JR Z,A13A8
- LD B,A
- LD A,7FH
- AND (HL)
- CP B
- RET NZ
- A13A8: INC HL
- INC DE
- DEC C
- JR NZ,A139C
- RET
- ;
- A13AF: XOR A
- CPL
- RET
- ;
- A13B2: LD DE,DSTFCB+1
- LD BC,6DH
- LD A,0BH
- A13BA: PUSH AF
- LD A,(DE)
- CP 03FH
- JR NZ,A13C4
- LD A,(HL)
- AND 7FH
- A13C4: LD (BC),A
- INC HL
- INC DE
- INC BC
- POP AF
- DEC A
- JR NZ,A13BA
- LD A,(Y2C3A)
- CP 0FFH
- JR NZ,A13D8
- LD A,(USER3)
- A13D8: LD (BC),A
- RET
- ;
- A13DA: PUSH HL
- LD DE,11
- ADD HL,DE
- LD L,(HL)
- LD H,0
- LD A,L
- CP 10
- LD C,1
- JR C,A13F5
- INC C
- A13F5: PUSH BC
- CALL HEXDEC
- LD A,(DRIVE2)
- ADD A,41H
- CALL PUTCH
- LD A,':'
- CALL PUTCH
- POP BC
- LD A,C
- CP 2
- JR Z,A140A
- LD A,' '
- CALL PUTCH
- A140A: LD B,8
- POP HL
- CALL A1460
- PUSH HL
- LD A,'.'
- CALL PUTCH
- POP HL
- LD B,3
- JR A1460
- ;
- ; DISPLAY CURRENT FILE NAME
- ;
- DSPCFN: PUSH HL
- LD HL,(FILNMB)
- INC HL
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB '. ',0
- POP HL
- CALL A13DA
- INC HL
- LD A,(HL)
- PUSH AF
- INC HL
- PUSH HL
- LD A,' '
- CALL PUTCH
- POP HL
- CALL CLCFSZ
- LD C,4
- CALL HEXDEC
- CALL ILPRT
- DB 'K :',0
- POP AF
- OR A
- LD C,' '
- JR Z,A145B
- CP 1
- LD C,'*'
- JR Z,A145B
- LD C,'#'
- A145B: LD A,C
- JP PUTCH
- ;
- A1460: PUSH BC
- PUSH HL
- LD A,(HL)
- CALL PUTCH
- POP HL
- POP BC
- INC HL
- DJNZ A1460
- RET
- ;
- PRINTF: CALL CRLF
- LD A,5
- LD (Y2C3C),A
- JR A14C9
- ;
- VIEWFL: CALL CRLF
- XOR A
- LD (Y2C3C),A
- INC A
- LD (Y2C32),A
- A1484: CALL ILPRT
- DB 'Press ^X to abort, L to advance a line, cr to advance '
- DB 'a page.',CR,LF,0
- LD A,2
- A14C9: LD (Y2C3B),A
- LD HL,(FILNMB)
- CALL CLCFPT
- CALL A15B8
- CALL A0D7B
- LD DE,0FF76H
- CALL CPHLDE
- LD HL,A1773
- JR NZ,A14FD
- LD HL,(FILPTR)
- LD (Y2C21),HL
- LD HL,Y2EED
- CALL A0BFD
- OR A
- JR NZ,A14FD
- CALL CRLF
- LD HL,A20BA
- JR A1505
- ;
- A14FD: PUSH HL
- LD HL,(FILPTR)
- LD (Y2C21),HL
- POP HL
- A1505: LD (D151B),HL
- A1508: CALL A15A4
- CP 'X'-40H
- JR Z,A1575
- CP 3
- JR Z,A1575
- CP 'S'-40H
- JR Z,A157B
- CALL A1773
- D151B EQU $-2
- JR NZ,A1575
- CP 'Z'-40H
- JR Z,A1575
- AND 7FH
- LD E,A
- CP CR
- JR NZ,A1534
- LD A,(Y2C32)
- INC A
- LD (Y2C32),A
- A1534: LD A,(Y2C3B)
- LD C,A
- CALL BDOS
- LD A,(Y2C3C)
- OR A
- JR NZ,A1508
- LD A,(Y2C32)
- LD B,A
- LD A,(MAXLIN)
- CP B
- JR NZ,A1508
- CALL A1590
- CP 04CH
- JR Z,A156B
- CP 06CH
- JR Z,A156B
- CP 018H
- JR Z,A1575
- CP 03H
- JR Z,A1575
- XOR A
- LD (Y2C32),A
- JR A1508
- ;
- A156B: LD A,(Y2C32)
- DEC A
- LD (Y2C32),A
- JR A1508
- ;
- A1575: CALL A16C0
- LD A,(Y2C3C) ; GET FLAG
- CP 5 ; PRINTER?
- JP NZ,LOOP ; NO, GO BACK
- LD C,28 ; ELSE SIGNAL EOP
- CALL TDOS
- JP LOOP
- ;
- A157B: CALL A1590
- JR A1508
- ;
- CONDIN: LD C,11
- CALL BDOS
- OR A
- RET Z
- CIN: LD C,1
- CALL BDOS
- JP CAPS
- ;
- A1590: CALL A15A4
- OR A
- JR Z,A1590
- RET
- ;
- A1598: CALL CONDIN
- CP 3
- RET Z
- CALL CAPS
- CP 58H
- RET
- ;
- A15A4: LD E,0FFH
- LD C,6
- JP BDOS
- ;
- A15AB: LD HL,Y2C50
- LD DE,Y2C51
- LD B,20
- LD (HL),0
- JP MOVHDB
- ;
- A15B8: LD DE,SRCFCB
- XOR A
- LD (SRCFCB),A
- INC DE
- LD B,11
- CALL MOVHDB
- LD A,(HL)
- PUSH AF
- CALL A15AB
- POP AF
- LD (USER3),A
- CALL LOGDUE
- LD HL,(FILPTR)
- LD (Y2C21),HL
- LD (Y2C1F),HL
- LD DE,SRCFCB
- LD C,FOPEN
- CALL BDOS
- INC A
- RET NZ
- CALL ILPRT
- DB CR,LF
- DB 'Can''t open file!',0
- JP LOOP
- ;
- A1604: LD A,(Y2C38)
- LD E,A
- LD C,SELDSK
- CALL BDOS
- LD A,(Y2C3A)
- LOGUSA: LD E,A
- LOGUSR: LD C,GSUSER
- JP BDOS
- ;
- ; LOG INTO ENTRY DU:
- ;
- LOGDUE: LD A,(DRIVE2)
- LD E,A
- LD C,SELDSK
- CALL BDOS
- LD A,(USER3)
- JR LOGUSA
- ;
- A1625: LD HL,(FILPTR)
- LD DE,1400H
- ADD HL,DE
- LD (Y2C25),HL
- LD (Y2C23),HL
- LD DE,1000H
- ADD HL,DE
- LD (Y2C27),HL
- CALL A1604
- LD DE,DSTFCB
- PUSH DE
- LD A,(DSTFCT)
- AND 7FH
- LD (DSTFCT),A
- CALL A16B2
- POP DE
- PUSH DE
- LD C,FOPEN
- CALL BDOS
- INC A
- JR Z,A167E
- POP DE
- PUSH DE
- LD C,FCLOSE
- CALL BDOS
- LD A,(DSTFCT)
- AND 80H
- JR Z,A1677
- LD A,(DSTFCT)
- AND 7FH
- LD (DSTFCT),A
- CALL A16B2
- POP DE
- PUSH DE
- CALL SATTRB
- A1677: POP DE
- PUSH DE
- CALL DELDE
- JP Z,NTDLT
- CP 4
- JR Z,A167E
- LD HL,.CPFL
- LD A,(HL)
- LD (HL),0
- OR A
- CALL NZ,CRLF
- CALL ILPRT
- DB ' (D)',0
- A167E: CALL A16B2
- POP DE
- LD C,FMAKE
- CALL BDOS
- INC A
- RET NZ
- CALL ILPRT
- DB CR,LF
- DB 'Destination disk directory full.',0
- JP LOOP
- ;
- A16B2: LD HL,Y2C76
- LD DE,Y2C77
- LD B,22
- LD (HL),0
- JP MOVHDB
- ;
- A16C0: CALL LOGDUE
- LD DE,SRCFCB
- LD C,FCLOSE
- CALL BDOS
- INC A
- RET NZ
- A16CD: CALL ILPRT
- DB CR,LF
- DB 'Can''t close file!',0
- JP LOOP
- ;
- A16E7: CALL A1604
- CALL A16B2
- LD DE,DSTFCB
- CALL DELDE
- RET NZ
- JP NTDLT
- ;
- CLSDST: CALL A1604
- LD DE,DSTFCB
- LD C,FCLOSE
- CALL BDOS
- INC A
- JR Z,A16CD
- LD HL,DSTFCT
- LD A,(SRCFCT)
- AND 80H
- JR Z,.CGLO
- SET 7,(HL)
- .CGLO: LD A,(SRCFCT+1)
- AND 80H
- JR Z,.DSET
- INC HL
- SET 7,(HL)
- .DSET: LD DE,DSTFCB
- SATTRB: LD C,SETATT ; ATTEMPT TO SET ATTRIBUTE
- CALL BDOS
- OR A
- RET Z ; OK
- CALL ILPRT ; ELSE REPORT ERROR
- DB ' -- unable to set attributes --',7,0
- RET
- ;
- A171C: LD DE,(Y2C27)
- LD HL,(Y2C23)
- LD B,A
- CALL CPHLDE
- LD A,B
- JR Z,A1731
- LD (HL),A
- INC HL
- LD (Y2C23),HL
- RET
- ;
- A1731: PUSH AF
- CALL A1739
- POP AF
- JR A171C
- ;
- A1739: LD DE,(Y2C23)
- LD HL,(Y2C25)
- CALL CPHLDE
- RET Z
- PUSH HL
- CALL A1604
- POP HL
- A1749: PUSH HL
- EX DE,HL
- LD C,SETDMA
- CALL BDOS
- LD DE,DSTFCB
- LD C,FWRIT
- CALL BDOS
- OR A
- JP NZ,A0F16
- POP HL
- LD DE,80H
- ADD HL,DE
- EX DE,HL
- LD HL,(Y2C23)
- EX DE,HL
- CALL CPHLDE
- JR C,A1749
- LD HL,(Y2C25)
- LD (Y2C23),HL
- RET
- ;
- A1773: LD DE,(Y2C1F)
- LD HL,(Y2C21)
- CALL CPHLDE
- JR Z,A1787
- LD A,(HL)
- INC HL
- LD (Y2C21),HL
- CP A
- RET
- ;
- A1787: CALL LOGDUE
- LD HL,(FILPTR)
- LD (Y2C21),HL
- LD (Y2C1F),HL
- LD B,20H
- A1795: PUSH BC
- EX DE,HL
- LD C,SETDMA
- CALL BDOS
- LD DE,SRCFCB
- LD C,FREAD
- CALL BDOS
- POP BC
- OR A
- JR NZ,A17BA
- LD HL,(Y2C1F)
- LD DE,80H
- ADD HL,DE
- LD (Y2C1F),HL
- DJNZ A1795
- JR A1773
- ;
- A17BA: LD DE,(Y2C21)
- LD HL,(Y2C1F)
- CALL CPHLDE
- JR NZ,A1773
- XOR A
- DEC A
- RET
- ;
- A17CA: LD HL,(NMBFLS)
- PUSH HL
- POP BC
- LD HL,STACK
- LD DE,STACK
- RET
- ;
- ; PROCESS FILENAME ON INITIAL COMMAND LINE
- ;
- PRCMDL: LD A,(DFCB)
- OR A
- JR Z,.CRDV
- DEC A
- LD (DRIVE2),A
- .CRDV: LD A,(DFCB+17)
- CP '?'
- JR NZ,.NALU
- LD A,0FFH
- LD (USER2),A
- .NALU: LD HL,FCB1+1
- LD A,(HL)
- CP ' '
- RET NZ
- LD DE,FCB1+2
- LD (HL),'?'
- LD B,10
- JP MOVHDB
- ;
- PRPBUF: CALL A17CA
- A1802: LD A,(HL)
- CP ' '
- JR NC,A1834
- PUSH HL
- PUSH AF
- INC HL
- PUSH BC
- LD B,11
- CALL MOVHDB
- POP BC
- POP AF
- LD (DE),A
- LD A,(HL)
- PUSH AF
- INC HL
- INC DE
- XOR A
- LD (DE),A
- INC HL
- INC DE
- LD A,(HL)
- LD (DE),A
- INC DE
- POP AF
- LD (DE),A
- INC DE
- INC HL
- LD A,(HL)
- LD (DE),A
- INC DE
- POP HL
- A1827: PUSH DE
- LD DE,20H
- ADD HL,DE
- POP DE
- DEC BC
- LD A,B
- OR C
- JR NZ,A1802
- RET
- ;
- A1834: PUSH BC
- LD B,16
- LD A,0E5H
- A1839: LD (DE),A
- INC DE
- DJNZ A1839
- POP BC
- JR A1827
- ;
- SORTBF: LD HL,(NMBFLS)
- LD (Y2C19),HL
- DEC HL
- LD A,H
- OR L
- RET Z
- A184D: LD HL,(Y2C19)
- LD A,H
- OR L
- RET Z
- XOR A
- LD A,H
- RRA
- LD H,A
- LD A,L
- RRA
- LD L,A
- LD (Y2C19),HL
- OR H
- JR NZ,A1862
- INC HL
- A1862: LD (Y2C1B),HL
- EX DE,HL
- LD HL,(NMBFLS)
- DEC HL
- OR A
- SBC HL,DE
- LD (Y2C15),HL
- LD HL,0
- LD (Y2C13),HL
- A1879: LD HL,(Y2C13)
- LD (FILNMB),HL
- A187F: LD DE,(FILNMB)
- LD HL,(Y2C1B)
- ADD HL,DE
- LD (Y2C17),HL
- CALL A18C4
- JR Z,A18B0
- JR C,A18B0
- CALL A18F5
- LD DE,(Y2C1B)
- LD HL,(FILNMB)
- OR A
- SBC HL,DE
- LD (FILNMB),HL
- JP M,A18B0
- OR L
- JR Z,A18B0
- JR A187F
- ;
- A18B0: LD HL,(Y2C13)
- INC HL
- LD (Y2C13),HL
- EX DE,HL
- LD HL,(Y2C15)
- CALL CPHLDE
- JR C,A184D
- JR A1879
- ;
- A18C4: LD HL,(FILNMB)
- CALL CLCFPT
- LD (Y2C0D),HL
- PUSH HL
- LD HL,(Y2C17)
- CALL CLCFPT
- LD (Y2C0F),HL
- POP DE
- LD B,11
- A18DA: LD A,(HL)
- AND 7FH
- LD C,A
- LD A,(DE)
- AND 7FH
- CP C
- RET NZ
- INC HL
- INC DE
- DJNZ A18DA
- LD B,5
- A18EB: LD A,(DE)
- CP (HL)
- RET NZ
- INC HL
- INC DE
- DJNZ A18EB
- RET
- ;
- A18F5: LD DE,(Y2C0D)
- LD HL,(Y2C0F)
- LD C,10H
- A18FE: LD B,(HL)
- LD A,(DE)
- LD (HL),A
- LD A,B
- LD (DE),A
- INC DE
- INC HL
- DEC C
- JR NZ,A18FE
- RET
- ;
- CPHLDE: LD A,H
- CP D
- RET NZ
- LD A,L
- CP E
- RET
- ;
- UNDUPE: LD HL,0
- LD (FILNMB),HL
- LD (Y2C15),HL
- INC HL
- LD (Y2C13),HL
- LD HL,(NMBFLS)
- LD (SRCCRC),HL
- A1923: CALL A195D
- JR Z,A192F
- CALL A197D
- CALL Z,A1946
- A192F: LD HL,(Y2C13)
- LD (FILNMB),HL
- INC HL
- LD (Y2C13),HL
- LD HL,(SRCCRC)
- DEC HL
- LD (SRCCRC),HL
- LD A,H
- OR L
- JR NZ,A1923
- RET
- ;
- A1946: LD HL,(Y2C15)
- CALL CLCFPT
- EX DE,HL
- LD HL,(Y2C0D)
- LD B,10H
- CALL MOVHDB
- LD HL,(Y2C15)
- INC HL
- LD (Y2C15),HL
- RET
- ;
- A195D: LD HL,(FILNMB)
- CALL CLCFPT
- LD (Y2C0D),HL
- PUSH HL
- LD HL,(Y2C13)
- CALL CLCFPT
- LD (Y2C0F),HL
- POP DE
- LD B,12
- A1973: LD A,(DE)
- CP (HL)
- RET NZ
- INC HL
- INC DE
- DJNZ A1973
- RET
- ;
- A197D: LD HL,(Y2C0D)
- LD A,(HL)
- CP 0E5H
- JR Z,A19B5
- PUSH HL
- LD DE,11
- ADD HL,DE
- LD B,(HL)
- POP HL
- LD DE,FCB1+1
- LD C,11
- LD A,B
- CP 32
- JR NC,A19B5
- LD A,(USER2)
- CP 0FFH
- JR Z,A19A2
- CP B
- RET NZ
- A19A2: LD A,(DE)
- CP 03FH
- JR Z,A19AE
- LD B,A
- LD A,7FH
- AND (HL)
- CP B
- RET NZ
- A19AE: INC HL
- INC DE
- DEC C
- JR NZ,A19A2
- RET
- ;
- A19B5: OR A
- RET
- ;
- ; CALC TOTAL K
- ;
- CLCTLK: LD HL,0
- LD (TOTALK),HL
- LD HL,(NMBFLS)
- INC HL
- LD A,L
- OR H
- RET Z
- PUSH HL
- POP BC
- LD HL,STACK+13
- LD DE,16
- CTLKL1: PUSH HL
- PUSH DE
- PUSH BC
- CALL CLCFSZ
- EX DE,HL
- LD HL,(TOTALK)
- ADD HL,DE
- LD (TOTALK),HL
- POP BC
- POP DE
- POP HL
- ADD HL,DE
- DEC BC
- LD A,B
- OR C
- JR NZ,CTLKL1
- RET
- ;
- HEXDEC: PUSH HL
- LD DE,10000
- CALL CPHLDE
- JR C,HEXDC4
- LD D,5
- JR HEXDC0
- ;
- HEXDC4: LD DE,1000
- CALL CPHLDE
- JR C,HEXDC3
- LD D,4
- JR HEXDC0
- ;
- HEXDC3: LD DE,100
- CALL CPHLDE
- JR C,HEXDC2
- LD D,3
- JR HEXDC0
- ;
- HEXDC2: LD A,L
- CP 10
- JR C,HEXDC1
- LD D,2
- JR HEXDC0
- ;
- HEXDC1: LD D,1
- HEXDC0: LD A,C
- SUB D
- JR Z,HDNLB
- JR C,HDNLB
- LDBL: PUSH AF
- LD A,' '
- CALL PUTCH
- POP AF
- DEC A
- JR NZ,LDBL
- HDNLB: POP HL
- HXDCNX: PUSH AF
- PUSH BC
- PUSH DE
- PUSH HL
- LD BC,-10
- LD DE,-1
- HXDCLP: ADD HL,BC
- INC DE
- JR C,HXDCLP
- LD BC,10
- ADD HL,BC
- EX DE,HL
- LD A,H
- OR L
- CALL NZ,HXDCNX
- LD A,E
- ADD A,'0'
- CALL PUTCH
- POP HL
- POP DE
- POP BC
- POP AF
- RET
- ;
- CALCFS: LD DE,DBUF
- LD C,SETDMA
- CALL BDOS
- LD A,(DRIVE2)
- LD E,A
- LD C,46
- CALL BDOS
- LD HL,(DBUF)
- LD A,(DBUF+2)
- LD B,A
- LD C,3
- A1AB9: OR A
- RR B
- RR H
- RR L
- DEC C
- JR NZ,A1AB9
- LD (FREEK),HL
- RET
- ;
- CLCFSZ: LD D,0
- LD E,(HL)
- EX DE,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- EX DE,HL
- INC HL
- LD A,(HL)
- PUSH HL
- LD H,0
- LD L,A
- ADD HL,DE
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- POP DE
- INC DE
- LD A,(DE)
- RRCA
- RRCA
- RRCA
- PUSH AF
- AND 1FH
- ADD A,L
- LD L,A
- JR NC,A1AEE
- INC H
- A1AEE: POP AF
- AND 0E0H
- JR Z,A1AF5
- INC HL
- A1AF5: PUSH HL
- POP DE
- LD A,(BLKSZE)
- OR A
- RET Z
- CP 1
- JR Z,A1B38
- CP 2
- JR Z,A1B29
- CP 3
- JR Z,A1B1A
- LD A,L
- AND 0FH
- RET Z
- PUSH DE
- LD A,0F0H
- AND L
- LD L,A
- LD DE,10H
- ADD HL,DE
- POP DE
- RET
- ;
- A1B1A: LD A,L
- AND 7
- RET Z
- PUSH DE
- LD DE,8
- ADD HL,DE
- LD A,L
- AND 0F8H
- LD L,A
- POP DE
- RET
- ;
- A1B29: LD A,L
- AND 3
- RET Z
- LD A,L
- AND 0FCH
- LD L,A
- PUSH DE
- LD DE,4
- ADD HL,DE
- POP DE
- RET
- ;
- A1B38: LD A,L
- AND 1
- RET Z
- INC HL
- RET
- ;
- ; MOVE HL->DE, B BYTES
- ;
- MOVHDB: LD C,B
- LD B,0
- LDIR
- RET
- ;
- CAPS: CP 'a'
- RET C
- CP 'z'+1
- RET NC
- AND 5FH
- RET
- ;
- ; GET BLOCK SIZE AND LOG DRIVE
- ;
- GTBKSZ: LD A,(DRIVE2)
- LD E,A
- PUSH DE
- LD C,SELDSK
- CALL BDOS
- POP DE
- LD C,19
- CALL TDOS
- CP 0FFH ; NETWORK ERROR?
- JR Z,NTWERR
- AND 7
- SUB 3
- LD (BLKSZE),A
- RET
- ;
- NTWERR: CALL ILPRT
- DB CR,LF,LF,7
- DB 'Network Error',CR,LF,0
- RST 0
- ;
- HELPME: CALL DSPBNR
- LD DE,HLPMSG
- CALL PRINTM
- LD HL,(NMBFLS)
- CALL PSTATS
- CALL CRLF
- CALL .MTGDF
- CALL .TALRY
- JP CRLF
- ;
- DSPBNR: LD DE,BANNER
- CALL PRINTM
- LD C,GETSER
- CALL TDOS
- PUSH BC
- PUSH DE
- LD C,2
- CALL HEXDEC
- LD A,'/'
- CALL PUTCH
- POP HL
- LD C,1
- CALL HEXDEC
- LD C,12
- CALL 5
- PUSH DE
- LD DE,BANN1
- CALL PRINTM
- POP HL
- LD C,1
- CALL HEXDEC
- LD DE,BANN2
- CALL PRINTM
- POP HL
- CALL PVERS
- LD DE,BANN3
- CALL PRINTM
- LD C,12
- CALL 5
- CALL PVERS
- LD DE,BANN4
- JP PRINTM
- ;
- PVERS: LD A,L
- AND 0F0H
- RRA
- RRA
- RRA
- RRA
- OR 30H
- PUSH HL
- CALL PUTCH
- LD A,'.'
- CALL PUTCH
- POP HL
- LD A,L
- AND 0FH
- OR 30H
- JP PUTCH
- ;
- A1B9C: LD HL,(Y2C3D)
- EX DE,HL
- CALL SKNBL
- LD HL,DFCB
- XOR A
- LD (HL),A
- DEC A
- JP A1C26
- ;
- ; PARSE TO DEFAULT FCB
- ;
- PARSDF: LD HL,DFCB
- ;
- ; PARSE FILE NAME
- ;
- ;
- PARSFN: LD DE,(Y2C3D) ; GET SOURCE
- CALL SKNBL ; ADVANCE DE TO FIRST NONBLANK
- LD A,(DRIVE2) ; GET DEFAULT DRIVE
- INC A ; MAKE 1..16
- LD B,A ; SAVE IT
- LD C,0FFH ; SET USER TO NONE
- LD A,(DE) ; GET CHAR
- OR A ; IF EOL
- JR Z,A1C07 ; THEN DONE PARSING
- PUSH DE ; SAVE POINTER
- CP '0' ; IF NON-NUMBERIC
- JR C,A1BCF ; THEN SKIP
- CP '9'+1 ; IF NUMERIC
- JR C,A1BE2 ; THEN PROCESS USER NUMBER
- A1BCF: SBC A,40H ; MAY BE A DRIVESPEC - SAVE AS SUCH
- LD B,A
- INC DE
- LD A,(DE) ; GET NECT CHAR
- CP ':' ; DRIVE/USER TERMINATOR?
- JR Z,A1C11 ; YES
- OR A ; EOL?
- JR Z,A1C11 ; YES
- CP '*' ; WILDCARD?
- JR Z,A1BE5 ; YES
- A1BE2: SUB '0' ; MAKE BINARY 0..9
- LD C,A
- A1BE5: INC DE
- LD A,(DE) ; GET NEXT BYTE
- CP '9'+1 ; NUMERIC CHECK AGAIN
- JR Z,A1C11
- OR A
- JR Z,A1C11
- PUSH AF
- CALL USRPAT
- LD C,A
- POP AF
- SUB '0'
- ADD A,C
- LD C,A
- INC DE
- LD A,(DE)
- CP ':'
- JR Z,A1C11
- OR A
- JR Z,A1C11
- A1C06: POP DE
- A1C07: LD A,(DRIVE2)
- INC A
- LD (HL),A
- LD A,0FFH
- JR A1C26
- ;
- A1C11: LD A,B
- CP 11H
- JR NC,A1C06
- LD A,C
- CP 0FFH
- JR Z,A1C22
- CP ' '
- JR NC,A1C06
- A1C22: POP AF
- LD (HL),B
- INC DE
- LD A,C
- A1C26: LD (Y2C3A),A
- LD B,8
- A1C2B: CALL CKDLIM
- JR Z,A1C4C
- INC HL
- CP '*'
- JR NZ,A1C3C
- LD (HL),'?'
- JR A1C3E
- ;
- A1C3C: LD (HL),A
- INC DE
- A1C3E: DJNZ A1C2B
- A1C42: CALL CKDLIM
- JR Z,A1C53
- INC DE
- JR A1C42
- ;
- A1C4C: INC HL
- LD (HL),' '
- DJNZ A1C4C
- A1C53: LD B,3
- CP '.'
- JR NZ,A1C7C
- INC DE
- A1C5B: CALL CKDLIM
- JR Z,A1C7C
- INC HL
- CP '*'
- JR NZ,A1C6C
- LD (HL),'?'
- JR A1C6E
- ;
- A1C6C: LD (HL),A
- INC DE
- A1C6E: DJNZ A1C5B
- A1C72: CALL CKDLIM
- JR Z,A1C83
- INC DE
- JR A1C72
- ;
- A1C7C: INC HL
- LD (HL),' '
- DJNZ A1C7C
- A1C83: LD B,3
- A1C85: INC HL
- LD (HL),0
- DJNZ A1C85
- EX DE,HL
- LD (Y2C3D),HL
- RET
- ;
- CKDLIM: LD A,(DE)
- OR A
- RET Z
- CP ' '
- RET Z
- CP 3DH
- RET Z
- CP 5FH
- RET Z
- CP '.'
- RET Z
- CP ':'
- RET Z
- CP 3BH
- RET Z
- CP 3CH
- RET Z
- CP 3EH
- RET
- ;
- ; SKIP TO NONBLANK OR EOL
- ;
- SKNBL: LD A,(DE)
- OR A
- RET Z
- CP ' '
- RET NZ
- INC DE
- JR SKNBL
- ;
- ; CREATE CRC LOOKUP TABLE
- ;
- CRCRCT: LD HL,CRCTBL
- LD C,0
- A1CBB: EX DE,HL
- LD HL,0
- LD A,C
- PUSH BC
- LD B,8
- XOR H
- LD H,A
- A1CC5: ADD HL,HL
- JR NC,A1CD1
- LD A,10H
- XOR H
- LD H,A
- LD A,21H
- XOR L
- LD L,A
- A1CD1: DJNZ A1CC5
- POP BC
- EX DE,HL
- LD (HL),D
- INC H
- LD (HL),E
- DEC H
- INC HL
- INC C
- JR NZ,A1CBB
- RET
- ;
- ; CALCULATE CRC OF ALL BYTES BETWEEN HL AND DE, INCLUSIVELY
- ;
- CRCBLK: LD A,(CRCFLG) ; CHECK IF CRC ENABLED
- OR A
- RET Z ; RETURN IF NOT
- .CRCLP: LD A,(HL)
- CALL CRCK
- INC HL
- CALL CPHLDE
- JR NZ,.CRCLP
- RET
- ;
- CRCK: PUSH BC
- PUSH HL
- PUSH DE
- LD HL,(CRCACC)
- EX DE,HL
- LD B,0
- XOR D
- LD C,A
- LD HL,CRCTBL
- ADD HL,BC
- LD A,(HL)
- XOR E
- LD D,A
- INC H
- LD E,(HL)
- EX DE,HL
- LD (CRCACC),HL
- POP DE
- POP HL
- POP BC
- RET
- ;
- ADDH12: LD DE,12
- ADD HL,DE
- RET
- ;
- CRLF: CALL ILPRT
- DB CR,LF,0
- RET
- ;
- ILPRT: POP HL
- LD A,(HL)
- OR A
- INC HL
- PUSH HL
- RET Z
- CALL PUTCH
- JR ILPRT
- ;
- PRINTM: LD C,9
- JP BDOS
- ;
- PUTCH: BIT 7,A
- JR Z,OUTCHR
- PUSH AF
- CALL A1D46
- POP AF
- CALL OUTCHR
- JR A1D4C
- ;
- OUTCHR: AND 7FH
- LD E,A
- LD C,2
- JP BDOS
- ;
- A1D46: LD HL,REVON
- JR A1D4F
- ;
- A1D4C: LD HL,REVOF
- A1D4F: LD A,(HL)
- INC HL
- OR A
- RET Z
- LD B,A
- A1D54: PUSH HL
- PUSH BC
- LD A,(HL)
- CALL OUTCHR
- POP BC
- POP HL
- INC HL
- DJNZ A1D54
- RET
- ;
- ; CALCULATE FILE POINTER
- ;
- CLCFPT: ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- LD DE,STACK
- ADD HL,DE
- RET
- ;
- USRPAT: PUSH BC
- XOR A
- LD B,10
- DC10LP: ADD A,B
- DEC C
- JR NZ,DC10LP
- POP BC
- RET
- ;
- ; DELETE FILE (FCB IN DE), RETURN Z=ERROR
- ;
- DELDE: PUSH DE
- LD C,SFIRST ; SEE IF EXISTS
- CALL BDOS
- INC A
- LD A,3
- JR Z,.XDL ; EXIT IF NOT THERE
- POP DE
- PUSH DE
- LD C,FDELT ; WIPE IT OUT
- CALL BDOS
- INC A
- JR NZ,.XDL ; OK TO EXIT
- POP DE
- RET
- ;
- .XDL: POP DE
- INC A
- RET
- ;
- BANNER:
- CLS:: DB ' '
- DB CR,LF
- DB 'NSWP Version 2.05.26 for TurboDOS',CR,LF
- DB 'Original (c) Dave Rand, 1983,1984',CR,LF
- DB 'Serial number $'
- BANN1: DB ' Network CPU : $'
- BANN2: DB CR,LF,'TurboDOS version : $'
- BANN3: DB ' CP/M version : $'
- BANN4: DB CR,LF,CR,LF,'$'
- ;
- HLPMSG: DB CR,LF
- DB 9,'A - Retag files | Q - Squeeze/Unsqueeze files'
- DB CR,LF
- DB 9,'B - Back one file | R - Rename file(s)'
- DB CR,LF
- DB 9,'C - Copy file | S - Check remaining space'
- DB CR,LF
- DB 9,'D - Delete file | T - Tag file for transfer'
- DB CR,LF
- DB 9,'E - Erase T/U files | U - Untag file'
- DB CR,LF
- DB 9,'F - Find file | V - View file'
- DB CR,LF
- DB 9,'G - Go execute file | W - Wildcard tag of files'
- DB CR,LF
- DB 9,'L - Log new disk/user | Y - Set file status.'
- DB CR,LF
- DB 9,'M - Mass file copy | Z - Change disk'
- DB CR,LF
- DB 9,'P - Print file | ? - Display this help'
- DB CR,LF
- DB 9,'X - Exit to TurboDOS | cr, sp - Forward one file'
- DB CR,LF,CR,LF,'$'
- ;
- ; INPUT LINE
- ;
- LINE: DB 18
- LINEC: DB 2
- LINET: DB '23'
- DS 18
- ;
- A1FED: LD DE,16
- LD (D2156),HL
- ADD HL,DE
- LD (D2158),HL
- LD HL,0
- ADD HL,SP
- LD (A206A+1),HL
- CALL A2141
- LD DE,0FF76H
- CALL CMPHD
- LD A,1
- RET NZ
- XOR A
- LD (D2152),A
- LD (D2155),A
- CALL A2141
- LD (D215C),HL
- LD HL,(D2156)
- A201A: PUSH HL
- CALL A1773
- POP HL
- PUSH AF
- D2020: CALL CAPS
- LD B,A
- POP AF
- LD (HL),B
- INC HL
- JR NZ,A206A
- OR A
- JR NZ,A201A
- CALL A2141
- LD (D215E),HL
- LD DE,102H
- CALL CMPHD
- JR C,A2041
- LD A,2
- OR A
- RET
- ;
- A2041: LD DE,(D2158)
- A2046: LD (D215A),HL
- LD A,H
- OR L
- JR Z,A2071
- PUSH DE
- CALL A2141
- POP DE
- EX DE,HL
- LD (HL),E
- INC HL
- LD (HL),D
- INC HL
- PUSH HL
- CALL A2141
- EX DE,HL
- POP HL
- LD (HL),E
- INC HL
- LD (HL),D
- INC HL
- EX DE,HL
- LD HL,(D215A)
- DEC HL
- JR A2046
- ;
- A206A: LD SP,0 ; FILLED LATER
- LD A,3
- OR A
- RET
- ;
- A2071: LD HL,(D2156)
- LD DE,(D215C)
- XOR A
- RET
- ;
- DB 'USQ SECTION (C) DAVE RAND'
- ;
- A20BA: LD HL,0
- ADD HL,SP
- LD (A206A+1),HL
- LD A,(D2155)
- OR A
- JR Z,A20D1
- DEC A
- LD (D2155),A
- LD A,(D2154)
- CP A
- RET
- ;
- A20D1: CALL A20F3
- CP 90H
- JR NZ,A20EE
- CALL A20F3
- OR A
- JR NZ,A20E4
- LD A,90H
- CP A
- RET
- ;
- A20E4: DEC A
- DEC A
- LD (D2155),A
- LD A,(D2154)
- CP A
- RET
- ;
- A20EE: LD (D2154),A
- CP A
- RET
- ;
- A20F3: LD DE,0
- LD A,(D2153)
- LD C,A
- A20FA: LD A,(D2152)
- OR A
- JR NZ,A210C
- PUSH DE
- CALL A1773
- JP NZ,A206A
- POP DE
- LD C,A
- LD A,8
- A210C: DEC A
- LD (D2152),A
- LD A,C
- RRCA
- LD C,A
- LD HL,(D2158)
- JR NC,A211B
- INC HL
- INC HL
- A211B: ADD HL,DE
- ADD HL,DE
- ADD HL,DE
- ADD HL,DE
- LD E,(HL)
- INC HL
- LD D,(HL)
- LD A,D
- AND 80H
- JR Z,A20FA
- LD A,C
- LD (D2153),A
- LD A,D
- CP 0FEH
- LD A,1AH
- JR Z,A2138
- LD A,E
- CPL
- CP A
- RET
- ;
- A2138: POP HL
- OR A
- RET
- ;
- CMPHD: LD A,H
- CP D
- RET NZ
- LD A,L
- CP E
- RET
- ;
- A2141: CALL A1773
- JP NZ,A206A
- PUSH AF
- CALL A1773
- JP NZ,A206A
- LD H,A
- POP AF
- LD L,A
- RET
- ;
- D2152: DB 0
- D2153: DB 0
- D2154: DB 0
- D2155: DB 0
- D2156: DW 0
- D2158: DW 0
- D215A: DW 0
- D215C: DW 0
- D215E: DW 0
- ;
- A2160: LD A,0FFH
- LD (D29C6),A
- LD (D2A20),HL
- LD HL,0
- ADD HL,SP
- LD (D2A60),HL
- LD SP,D2A60
- LD HL,(D2A20)
- LD A,L
- AND 0FCH
- LD L,A
- LD A,4
- CALL A296B
- LD (D29C7),HL
- LD DE,1024
- ADD HL,DE
- LD (D2A1C),HL
- LD DE,1024
- ADD HL,DE
- LD (D2A1E),HL
- CALL A2904
- XOR A
- LD (D29CC),A
- CALL A2935
- JR NZ,A21A1
- LD A,2
- JP A256E
- ;
- A21A1: LD DE,0FF76H
- CALL CMPHD
- JR NZ,A21AF
- LD A,1
- JP A256E
- ;
- A21AF: LD A,L
- LD (D29CB),A
- PUSH HL
- CALL A28E6
- POP HL
- LD A,H
- JR A21C2
- ;
- A21BC: CALL A2941
- JP Z,A221D
- A21C2: LD HL,D29CB
- CP (HL)
- JR Z,A21F7
- INC HL
- INC (HL)
- DEC (HL)
- JR Z,A2214
- PUSH AF
- LD A,(HL)
- LD (HL),0
- CP 3
- JR NC,A21E8
- LD B,A
- DEC HL
- LD A,(HL)
- A21DB: PUSH AF
- CALL A28E6
- POP AF
- DJNZ A21DB
- POP AF
- JR A2214
- ;
- A21E8: PUSH AF
- LD A,90H
- CALL A28EF
- POP AF
- INC A
- CALL A28EF
- POP AF
- JR A2214
- ;
- A21F7: CP 90H
- JR Z,A2214
- INC HL
- INC (HL)
- LD A,(HL)
- CP 0FFH
- JR NZ,A21BC
- PUSH HL
- LD A,90H
- CALL A28EF
- POP HL
- LD A,(HL)
- LD (HL),0
- CALL A28EF
- LD A,(D29CB)
- A2214: LD (D29CB),A
- CALL A28E6
- JR A21BC
- ;
- A221D: LD A,(D29CC)
- OR A
- JR Z,A222F
- PUSH AF
- LD A,90H
- CALL A28EF
- POP AF
- INC A
- CALL A28EF
- A222F: LD B,0
- LD HL,(D2A1C)
- A2234: LD E,(HL)
- INC HL
- LD D,(HL)
- INC HL
- LD C,(HL)
- INC HL
- LD A,D
- OR E
- OR C
- JR NZ,A224A
- INC HL
- DJNZ A2234
- LD A,2
- JP A256E
- ;
- A224A: DEC B
- LD A,(HL)
- PUSH HL
- LD HL,(D2A1E)
- LD (HL),A
- INC HL
- LD (HL),E
- INC HL
- LD (HL),D
- INC HL
- LD (HL),C
- INC HL
- LD (D29D9),HL
- POP HL
- LD A,1
- LD (D29CD),A
- INC HL
- A2262: LD E,(HL)
- INC HL
- LD D,(HL)
- INC HL
- LD C,(HL)
- INC HL
- LD A,(HL)
- INC HL
- LD (D2A1A),A
- LD A,E
- OR D
- OR C
- JR Z,A22D1
- PUSH HL
- PUSH BC
- LD A,(D29CD)
- LD B,A
- LD HL,(D2A1E)
- INC HL
- A227D: PUSH HL
- CALL A298C
- JR C,A2294
- POP HL
- INC HL
- INC HL
- INC HL
- INC HL
- DJNZ A227D
- LD A,C
- LD (D2A1B),A
- JR A22B0
- ;
- A2294: LD HL,(D29D9)
- LD A,C
- LD (D2A1B),A
- POP BC
- PUSH BC
- DEC BC
- LD A,L
- SUB C
- LD C,A
- LD A,H
- SBC A,B
- LD B,A
- PUSH DE
- LD D,H
- LD E,L
- INC DE
- INC DE
- INC DE
- DEC HL
- CALL A29B5
- POP DE
- POP HL
- A22B0: DEC HL
- POP BC
- LD A,(D2A1A)
- LD (HL),A
- INC HL
- LD (HL),E
- INC HL
- LD (HL),D
- INC HL
- LD A,(D2A1B)
- LD (HL),A
- LD HL,(D29D9)
- INC HL
- INC HL
- INC HL
- INC HL
- LD (D29D9),HL
- LD A,(D29CD)
- INC A
- LD (D29CD),A
- POP HL
- A22D1: DJNZ A2262
- LD A,(D29CD)
- LD HL,T2860
- LD B,7
- OR A
- JR Z,A22F3
- A22E1: INC (HL)
- DEC (HL)
- JR NZ,A22EA
- CP (HL)
- JR NZ,A22EE
- A22EA: CP (HL)
- JR NC,A22F3
- A22EE: INC HL
- DJNZ A22E1
- A22F3: INC B
- INC B
- INC B
- LD HL,D285F
- LD (HL),B
- XOR A
- LD (D2A15),A
- LD (D2A16),A
- A2301: CALL A284A
- XOR A
- LD H,A
- LD (D29CC),A
- LD (D29D8),A
- INC A
- LD L,A
- LD (D29CB),A
- LD (D29D6),HL
- INC A
- LD (D29D2),A
- LD HL,(D29C7)
- LD (D29D4),HL
- LD HL,0
- LD (D29E9),HL
- LD (D29EB),HL
- LD HL,T2A02
- LD DE,T2A03
- LD BC,10H
- LD (HL),0
- CALL A29AA
- LD A,(D2A15)
- OR A
- JR NZ,A236B
- A233C: CALL A2832
- JP Z,A2432
- CALL A2883
- JR Z,A23A3
- LD B,A
- LD A,(D29CB)
- CP C
- JR Z,A2358
- A2350: CALL A26EB
- INC A
- CP C
- JR NZ,A2350
- A2358: LD A,(D29D2)
- CP 1
- JR Z,A23A8
- LD HL,D29CC
- INC (HL)
- LD A,B
- CALL A2771
- JR A233C
- ;
- A236B: CALL A2832
- JP Z,A2432
- LD B,A
- A2372: LD HL,D29CB
- LD A,(D285F)
- CP (HL)
- JR C,A23A4
- LD A,(HL)
- LD HL,T29F1
- CALL A296B
- LD A,(D29CC)
- CP (HL)
- JR NZ,A2390
- CALL A26EB
- JR A2372
- ;
- A2390: LD A,(D29D2)
- CP 1
- JR Z,A23A8
- LD HL,D29CC
- INC (HL)
- LD A,B
- CALL A2771
- JR A236B
- ;
- A23A3: LD B,A
- A23A4: PUSH BC
- JR A23AC
- ;
- A23A8: PUSH BC
- A23A9: CALL A26EB
- A23AC: LD HL,D29CE
- LD A,(HL)
- CP 0FEH
- JR C,A23C0
- LD A,(D29CB)
- CP 7
- LD A,(HL)
- JR NC,A23C0
- LD A,0FDH
- A23C0: INC A
- INC A
- LD B,A
- LD A,(D29D2)
- ADD A,A
- SUB B
- JR NC,A2400
- LD A,(D29D2)
- OR A
- RLA
- JR NC,A23D8
- RRA
- RRA
- JR A23E0
- ;
- A23D8: RRA
- CALL A28CB
- OR A
- JR Z,A23A9
- A23E0: LD (D29D3),A
- POP BC
- JR A23EE
- ;
- A23E7: CALL A2832
- JR Z,A2432
- LD B,A
- A23EE: LD HL,D29CC
- INC (HL)
- LD A,(D29D3)
- CP (HL)
- JR C,A23A8
- LD A,B
- CALL A2771
- JR A23E7
- ;
- A2400: LD (D29D3),A
- POP BC
- JR A240E
- ;
- A2407: CALL A2832
- JR Z,A2432
- LD B,A
- A240E: LD HL,D29CC
- INC (HL)
- LD A,(D29D3)
- CP (HL)
- LD A,B
- JR C,A2420
- CALL A2771
- JR A2407
- ;
- A2420: CALL A26EB
- JR A242C
- ;
- A2426: CALL A2832
- JR Z,A2432
- A242C: CALL A2771
- JR A2426
- ;
- A2432: LD A,(D2A16)
- OR A
- PUSH AF
- CALL NZ,A2817
- POP AF
- JP NZ,A250D
- LD A,(D2A15)
- OR A
- JR NZ,A246F
- LD HL,D29E9
- LD DE,T29ED
- LD BC,4
- CALL A29AA
- LD HL,T2A02
- LD DE,T29F1
- LD BC,11H
- CALL A29AA
- LD A,(D29C0)
- DEC A
- LD (D2A13),A
- LD A,0FFH
- LD (D2A15),A
- LD (D2A17),A
- JR A24E7
- ;
- A246F: LD A,0FFH
- LD (D2A17),A
- LD HL,D29E9
- LD DE,T29ED
- LD B,4
- CALL A2999
- JR C,A24B0
- A2482: XOR A
- LD (D2A17),A
- A2486: LD HL,T29F1
- LD A,(D2A13)
- CALL A296B
- LD A,(D2A18)
- LD C,(HL)
- LD (HL),A
- LD A,(D2A14)
- CPL
- INC A
- CP 0FFH
- JR Z,A24E7
- LD B,A
- LD A,(D2A19)
- SUB C
- CP 02H
- JR NC,A24E7
- INC (HL)
- LD A,B
- LD (D2A14),A
- JR A24D1
- ;
- A24B0: LD HL,T2A02
- LD DE,T29F1
- LD BC,11H
- CALL A29AA
- A24BC: LD HL,T29F1
- LD A,(D2A13)
- CALL A296B
- LD A,(HL)
- LD (D2A18),A
- LD A,(D2A14)
- ADD A,(HL)
- JP M,A2486
- LD (HL),A
- A24D1: LD A,(D2A17)
- OR A
- JP Z,A2301
- LD HL,D29E9
- LD DE,T29ED
- LD BC,4
- CALL A29AA
- JP A2301
- ;
- A24E7: LD A,0FFH
- LD (D2A14),A
- LD A,(D285F)
- LD HL,D2A13
- INC (HL)
- CP (HL)
- JR NC,A24FF
- LD A,0FFH
- LD (D2A16),A
- JP A2301
- ;
- A24FF: LD A,(HL)
- LD HL,T29F1
- CALL A296B
- LD A,(HL)
- LD (D2A19),A
- JR A24BC
- ;
- A250D: LD HL,D29E9
- LD BC,1027
- CALL A2A62
- XOR A
- LD (D29C6),A
- LD HL,(D29D6)
- ADD HL,HL
- ADD HL,HL
- LD A,0FH
- CALL A296B
- LD DE,D29E9
- LD (D29E0),HL
- LD HL,0
- LD (D29E2),HL
- LD HL,D29E0
- LD B,4
- CALL A2970
- EX DE,HL
- LD A,(HL)
- OR 7FH
- LD (HL),A
- EX DE,HL
- LD (HL),1
- PUSH HL
- INC HL
- XOR A
- LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD (HL),A
- POP HL
- LD B,4
- CALL A2970
- EX DE,HL
- LD BC,1031
- CALL A2A62
- LD HL,D29DD
- LD BC,307H
- CALL A2A62
- LD HL,(D29DD)
- EX DE,HL
- LD HL,(D29E9)
- CALL CMPHD
- LD A,3
- JR NC,A256E
- XOR A
- A256E: LD HL,(D2A60)
- LD SP,HL
- LD HL,(D29E9)
- RET
- ;
- A2576: LD A,(D29C6)
- OR A
- JR Z,A257F
- XOR A
- RET
- ;
- A257F: LD (D2A22),HL
- LD HL,0
- ADD HL,SP
- LD (D2A60),HL
- LD SP,D2A60
- LD HL,0FF76H
- CALL A26DC
- LD HL,(D29DB)
- CALL A26DC
- EX DE,HL
- LD HL,0
- OR A
- SBC HL,DE
- LD (D29DB),HL
- LD HL,(D2A22)
- INC HL
- LD B,8
- A25A8: LD A,(HL)
- CP ' '
- JR Z,A25B6
- CALL A26E1
- INC HL
- DJNZ A25A8
- A25B6: LD A,'.'
- CALL A26E1
- LD A,B
- CALL A296B
- LD B,3
- A25C1: LD A,(HL)
- CP ' '
- JR Z,A25CF
- CALL A26E1
- INC HL
- DJNZ A25C1
- A25CF: XOR A
- CALL A26E1
- LD HL,(D29D6)
- CALL A26DC
- ADD HL,HL
- ADD HL,HL
- EX DE,HL
- LD HL,(D29C7)
- A25DF: LD A,(HL)
- CALL A26E1
- INC HL
- DEC DE
- LD A,D
- OR E
- JR NZ,A25DF
- XOR A
- LD (D29CA),A
- LD (D29CC),A
- LD A,8
- LD (D29C9),A
- CALL A2941
- JR A2654
- ;
- A25FC: CALL A2941
- JR Z,A265D
- LD HL,D29CB
- CP (HL)
- JR Z,A2637
- INC HL
- INC (HL)
- DEC (HL)
- JR Z,A2654
- PUSH AF
- LD A,(HL)
- LD (HL),0
- CP 3
- JR NC,A2628
- LD B,A
- DEC HL
- LD A,(HL)
- A261B: PUSH AF
- CALL A26A3
- POP AF
- DJNZ A261B
- POP AF
- JR A2654
- ;
- A2628: PUSH AF
- LD A,90H
- CALL A26AC
- POP AF
- INC A
- CALL A26AC
- POP AF
- JR A2654
- ;
- A2637: CP 90H
- JR Z,A2654
- INC HL
- INC (HL)
- LD A,(HL)
- CP 0FFH
- JR NZ,A25FC
- PUSH HL
- LD A,90H
- CALL A26AC
- POP HL
- LD A,(HL)
- LD (HL),0
- CALL A26AC
- LD A,(D29CB)
- A2654: LD (D29CB),A
- CALL A26A3
- JR A25FC
- ;
- A265D: LD A,(D29CC)
- OR A
- JR Z,A266F
- PUSH AF
- LD A,90H
- CALL A26AC
- POP AF
- INC A
- CALL A26AC
- A266F: LD A,0FFH
- CALL A295F
- INC HL
- INC HL
- INC HL
- CALL A26B1
- LD A,(D29C9)
- CP 8
- JR Z,A268E
- LD B,A
- LD A,(D29CA)
- A2686: RRA
- DJNZ A2686
- CALL A26E1
- A268E: LD A,0FFH
- LD (D29C6),A
- LD HL,(D29DB)
- LD A,H
- OR L
- LD A,1
- JR NZ,A269E
- XOR A
- A269E: LD HL,(D2A60)
- LD SP,HL
- RET
- ;
- A26A3: CP 90H
- JR NZ,A26AC
- CALL A26AC
- XOR A
- A26AC: PUSH BC
- CALL A295F
- POP BC
- A26B1: PUSH BC
- LD B,(HL)
- INC HL
- LD E,(HL)
- INC HL
- LD D,(HL)
- LD A,(D29C9)
- LD C,A
- A26BB: RL E
- RL D
- ; LD A,E
- ; RLA
- ; LD E,A
- ; LD A,D
- ; RLA
- ; LD D,A
- LD A,(D29CA)
- RRA
- DEC C
- JR NZ,A26CF
- CALL A26E1
- LD C,8
- XOR A
- A26CF: LD (D29CA),A
- DJNZ A26BB
- LD A,C
- LD (D29C9),A
- POP BC
- RET
- ;
- A26DC: LD A,L
- CALL A26E1
- LD A,H
- A26E1: PUSH BC
- PUSH DE
- PUSH HL
- CALL A171C
- POP HL
- POP DE
- POP BC
- RET
- ;
- A26EB: PUSH AF
- PUSH BC
- LD A,(D2A16)
- OR A
- JR Z,A2727
- LD A,(D29D2)
- LD HL,(D29D6)
- EX DE,HL
- LD HL,(D29D4)
- LD B,A
- LD A,(D29D8)
- LD C,A
- A2703: LD (HL),E
- INC HL
- LD (HL),D
- INC HL
- LD A,L
- AND 2
- JR NZ,A270E
- INC C
- A270E: INC DE
- LD A,D
- OR A
- JR Z,A2718
- CP E
- JR Z,A273E
- A2718: DJNZ A2703
- LD (D29D4),HL
- EX DE,HL
- LD (D29D6),HL
- LD A,C
- LD (D29D8),A
- A2727: LD HL,D29CB
- INC (HL)
- LD A,(HL)
- CP 11H
- JR NC,A273E
- XOR A
- LD (D29CC),A
- LD HL,D29D2
- LD A,(HL)
- ADD A,A
- LD (HL),A
- POP BC
- POP AF
- RET
- ;
- A273E: POP BC
- POP AF
- POP HL
- LD A,(D285F)
- DEC A
- LD B,A
- JR NZ,A274E
- LD A,4
- JP P,A256E
- A274E: LD A,(D2A16)
- OR A
- JR NZ,A275C
- LD A,(D2A15)
- OR A
- JP NZ,A2482
- A275C: LD HL,D285F
- LD (HL),B
- LD A,(D2A16)
- OR A
- JP Z,A2301
- XOR A
- LD (D2A16),A
- LD (D2A15),A
- JP A2301
- ;
- A2771: PUSH AF
- CALL A295F
- A2775: LD A,(D29CB)
- LD (HL),A
- INC HL
- PUSH HL
- LD HL,(D29D0)
- DEC HL
- LD (D29E5),A
- LD DE,T29E3
- LD BC,3
- XOR A
- LD (DE),A
- DEC DE
- CALL A29B5
- LD HL,0
- LD (D29E6),HL
- LD (D29E7),HL
- LD B,4
- LD DE,D29E5
- LD HL,D29E0
- CALL A2B43
- LD DE,D29E9
- LD HL,D29E0
- LD B,4
- CALL A2970
- LD A,(D29CB)
- LD HL,T2A02
- CALL A296B
- INC (HL)
- LD HL,D29D2
- DEC (HL)
- LD A,(D2A16)
- OR A
- JR NZ,A27C5
- POP HL
- POP AF
- RET
- ;
- A27C5: LD HL,(D29D4)
- LD DE,0
- LD (HL),0FFH
- LD A,(D29D8)
- LD C,A
- A27D1: LD A,L
- AND 2
- JR Z,A27D8
- SCF
- A27D8: LD A,D
- RRA
- LD D,A
- LD A,E
- RRA
- LD E,A
- LD A,(HL)
- CP 3
- JR C,A27FD
- LD B,C
- A27E5: DEC HL
- LD A,(HL)
- DEC HL
- PUSH AF
- LD A,L
- AND 2
- JR Z,A27F0
- DEC C
- A27F0: POP AF
- OR A
- JR NZ,A27E5
- LD A,(HL)
- CP B
- JR Z,A27D1
- JR A27E5
- ;
- A27FD: POP HL
- LD (HL),E
- INC HL
- LD (HL),D
- LD HL,(D29D4)
- POP AF
- CPL
- LD (HL),A
- INC HL
- LD (HL),0FFH
- INC HL
- LD (D29D4),HL
- LD A,L
- AND 2
- RET NZ
- LD HL,D29D8
- INC (HL)
- RET
- ;
- A2817: LD A,0FFH
- CALL A295F
- INC HL
- INC HL
- INC HL
- PUSH HL
- LD HL,T2827
- EX (SP),HL
- CALL A2775
- T2827: LD HL,(D29D4)
- LD A,0FEH
- DEC HL
- LD (HL),A
- DEC HL
- INC A
- LD (HL),A
- RET
- ;
- A2832: LD HL,(D29CE)
- LD A,L
- OR H
- RET Z
- DEC HL
- LD (D29CE),HL
- LD HL,(D29D0)
- LD A,(HL)
- INC HL
- LD D,H
- LD E,L
- INC HL
- INC HL
- INC HL
- LD (D29D0),HL
- RET
- ;
- A284A: LD A,(D29CD)
- LD L,A
- LD H,0
- OR A
- JR NZ,A2855
- INC H
- A2855: LD (D29CE),HL
- LD HL,(D2A1E)
- LD (D29D0),HL
- RET
- ;
- D285F: DB 0
- T2860: DB 80H,40H,20H,10H,8,4,2
- T2867: DW 0FFFFH,30H,18H,0CH,6,3
- DW 180H,0C0H,60H,30H,18H,0CH,6,3
- ;
- A2883: PUSH AF
- CALL A28B2
- LD HL,(D29E0)
- EX DE,HL
- LD C,1
- LD HL,T2867
- LD A,(D285F)
- LD B,A
- A2894: LD A,(HL)
- INC HL
- PUSH HL
- LD H,(HL)
- LD L,A
- OR A
- SBC HL,DE
- POP HL
- JR C,A28AB
- INC C
- INC HL
- DJNZ A2894
- POP AF
- LD B,A
- XOR A
- LD A,B
- RET
- ;
- A28AB: POP AF
- OR A
- RET NZ
- DEC A
- LD A,0
- RET
- ;
- A28B2: EX DE,HL
- LD DE,D29E0
- PUSH DE
- XOR A
- LD (DE),A
- INC DE
- LD (DE),A
- INC DE
- LD BC,3
- CALL A29AA
- POP HL
- LD DE,T29C1
- LD B,5
- JP A2A82
- ;
- A28CB: LD B,0
- A28CD: SUB 3
- JR C,A28D6
- INC B
- JR A28CD
- ;
- A28D6: LD A,B
- RET
- ;
- A28D8: LD HL,T29C1
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET
- ;
- A28E6: CP 90H
- JR NZ,A28EF
- CALL A28EF
- XOR A
- A28EF: CALL A28D8
- LD L,A
- LD H,0
- ADD HL,HL
- ADD HL,HL
- EX DE,HL
- LD HL,(D2A1C)
- ADD HL,DE
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET
- ;
- A2904: XOR A
- LD B,A
- LD C,A
- LD HL,(D2A1C)
- A290A: LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD (HL),C
- INC HL
- INC C
- DJNZ A290A
- LD HL,T29C1
- LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD (HL),A
- INC HL
- LD HL,T29C1
- LD DE,D29DD
- LD BC,4
- CALL A29AA
- LD HL,0
- LD (D29DB),HL
- RET
- ;
- A2935: CALL A2941
- RET Z
- LD L,A
- PUSH HL
- CALL A2941
- POP HL
- LD H,A
- RET
- ;
- A2941: CALL A1773
- JR Z,A2949
- CP A
- RET
- ;
- A2949: PUSH AF
- LD HL,(D29DB)
- CALL A296B
- LD (D29DB),HL
- POP AF
- LD HL,D29DD
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET NZ
- INC HL
- INC (HL)
- RET
- ;
- A295F: LD HL,(D2A1C)
- LD B,A
- CALL A296B
- LD A,B
- CALL A296B
- LD A,B
- A296B: ADD A,L
- LD L,A
- RET NC
- INC H
- RET
- ;
- A2970: PUSH HL
- PUSH DE
- OR A
- A2973: LD A,(DE)
- ADC A,(HL)
- LD (DE),A
- INC DE
- INC HL
- DJNZ A2973
- POP DE
- POP HL
- RET
- ;
- A298C: INC HL
- INC HL
- LD A,(HL)
- CP C
- RET NZ
- DEC HL
- LD A,(HL)
- CP D
- RET NZ
- DEC HL
- LD A,(HL)
- CP E
- RET
- ;
- A2999: LD C,B
- LD B,0
- ADD HL,BC
- EX DE,HL
- ADD HL,BC
- A299F: DEC HL
- DEC DE
- LD A,(DE)
- CP (HL)
- RET NZ
- DEC C
- JR NZ,A299F
- CP (HL)
- RET
- ;
- A29AA: LD A,B
- OR C
- RET Z
- DEC BC
- LD A,(HL)
- LD (DE),A
- INC HL
- INC DE
- JR A29AA
- ;
- A29B5: LD A,B
- OR C
- RET Z
- DEC BC
- LD A,(HL)
- LD (DE),A
- DEC HL
- DEC DE
- JR A29B5
- ;
- D29C0: DB 4
- T29C1: DS 5
- D29C6: DB 0FFH
- D29C7: DW 0
- D29C9: DB 0
- D29CA: DB 0
- D29CB: DB 0
- D29CC: DB 0
- D29CD: DB 0
- D29CE: DW 0
- D29D0: DW 0
- D29D2: DB 0
- D29D3: DB 0
- D29D4: DW 0
- D29D6: DW 0
- D29D8: DB 0
- D29D9: DW 0
- D29DB: DW 0
- D29DD: DS 3
- D29E0: DW 0
- D29E2: DB 0
- T29E3: DW 0
- D29E5: DB 0
- D29E6: DB 0
- D29E7: DW 0
- D29E9: DW 0
- D29EB: DW 0
- T29ED: DS 4
- T29F1: DS 17
- T2A02: DB 0
- T2A03: DS 16
- D2A13: DB 0
- D2A14: DB 0
- D2A15: DB 0
- D2A16: DB 0
- D2A17: DB 0
- D2A18: DB 0
- D2A19: DB 0
- D2A1A: DB 0
- D2A1B: DB 0
- D2A1C: DW 0
- D2A1E: DW 0
- D2A20: DW 0
- D2A22: DS 62
- D2A60: DW 0
- ;
- A2A62: LD A,C
- OR A
- RET Z
- LD A,B
- OR A
- RET Z
- LD E,B
- LD D,0
- ADD HL,DE
- DEC HL
- OR A
- A2A6E: PUSH AF
- LD B,A
- LD E,L
- LD D,H
- A2A72: LD A,(HL)
- RRA
- LD (HL),A
- DEC HL
- DJNZ A2A72
- LD L,E
- LD H,D
- POP AF
- DEC C
- JR NZ,A2A6E
- RET
- ;
- A2A82: LD A,B
- OR A
- JP Z,A2B25
- LD (D2B2A),HL
- EX DE,HL
- LD (D2B2C),HL
- LD C,B
- LD L,C
- LD H,0
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- INC HL
- LD (D2B32),HL
- LD HL,T2B35
- LD DE,T2B3C
- LD B,C
- XOR A
- A2AA1: LD (HL),A
- LD (DE),A
- INC HL
- INC DE
- DJNZ A2AA1
- LD HL,T2B35
- LD (D2B2E),HL
- LD HL,T2B3C
- LD (D2B30),HL
- LD HL,(D2B2C)
- LD B,C
- XOR A
- A2ABA: OR (HL)
- INC HL
- DJNZ A2ABA
- OR A
- JR Z,A2B21
- OR A
- A2AC5: LD B,C
- LD HL,(D2B2A)
- A2AC9: LD A,(HL)
- RLA
- LD (HL),A
- INC HL
- DJNZ A2AC9
- LD HL,D2B32
- DEC (HL)
- JR NZ,A2ADD
- INC HL
- DEC (HL)
- JP M,A2B25
- A2ADD: LD HL,(D2B2E)
- LD B,C
- A2AE1: LD A,(HL)
- LD (HL),A
- INC HL
- DJNZ A2AE1
- PUSH BC
- LD A,C
- LD (D2B34),A
- LD HL,(D2B30)
- LD B,H
- LD C,L
- LD HL,(D2B2E)
- EX DE,HL
- LD HL,(D2B2C)
- OR A
- A2AFB: LD A,(DE)
- SBC A,(HL)
- LD (BC),A
- INC HL
- INC DE
- INC BC
- LD A,(D2B34)
- DEC A
- LD (D2B34),A
- JR NZ,A2AFB
- POP BC
- CCF
- JR NC,A2AC5
- LD HL,(D2B2E)
- EX DE,HL
- LD HL,(D2B30)
- LD (D2B2E),HL
- EX DE,HL
- LD (D2B30),HL
- JR A2AC5
- ;
- A2B21: SCF
- JR A2B26
- ;
- A2B25: OR A
- A2B26: LD HL,(D2B2E)
- RET
- ;
- D2B2A: DW 0
- D2B2C: DW 0
- D2B2E: DW 0
- D2B30: DW 0
- D2B32: DW 0
- D2B34: DB 0
- T2B35: DS 7
- T2B3C: DS 7
- ;
- A2B43: LD A,B
- OR A
- RET Z
- LD C,B
- LD B,0
- ADD HL,BC
- EX DE,HL
- LD (D2BAB),HL
- LD HL,T2BAD
- ADD HL,BC
- LD (D2BA9),HL
- LD L,C
- LD H,B
- ADD HL,HL
- ADD HL,HL
- ADD HL,HL
- INC HL
- LD (D2BA7),HL
- LD B,C
- LD HL,T2BAD
- A2B62: LD (HL),0
- INC HL
- DJNZ A2B62
- OR A
- A2B6A: LD B,C
- LD HL,(D2BA9)
- A2B6E: DEC HL
- LD A,(HL)
- RRA
- LD (HL),A
- DJNZ A2B6E
- LD L,E
- LD H,D
- LD B,C
- A2B79: DEC HL
- LD A,(HL)
- RRA
- LD (HL),A
- DJNZ A2B79
- JR NC,A2B98
- PUSH DE
- LD HL,(D2BAB)
- EX DE,HL
- LD HL,T2BAD
- LD B,C
- OR A
- A2B8E: LD A,(DE)
- ADC A,(HL)
- LD (HL),A
- INC DE
- INC HL
- DJNZ A2B8E
- POP DE
- A2B98: LD HL,D2BA7
- DEC (HL)
- JR NZ,A2B6A
- INC HL
- INC (HL)
- DEC (HL)
- RET Z
- DEC (HL)
- JR A2B6A
- ;
- D2BA7: DW 0
- D2BA9: DW 0
- D2BAB: DW 0
- T2BAD: DS 83
- ;
- Y2C00: DB 0
- Y2C01: DW 0
- CRCFLG: DB 0
- .CPFL: DB 0 ; 1="C" COMMAND, 0=OTHERS (FOR CRC)
- DRIVE1: DB 0
- DRIVE2: DB 0
- USER1: DB 0
- USER2: DB 0
- SRCCRC: DW 0
- NMBFLS: DW 0
- Y2C0C: DB 0
- Y2C0D: DW 0
- Y2C0F: DW 0
- FILNMB: DW 0 ; POINTER TO FILENAME ARRAY (FILE #)
- Y2C13: DW 0
- Y2C15: DW 0
- Y2C17: DW 0
- Y2C19: DW 0
- Y2C1B: DW 0
- FILPTR: DW 0
- Y2C1F: DW 0
- Y2C21: DW 0
- Y2C23: DW 0
- Y2C25: DW 0
- Y2C27: DW 0
- BLKSZE: DB 0
- FREEK: DW 0
- TOTALK: DW 0
- TAGTOT: DW 0 ; TOTAL K FILES TAGGED
- TAGTO1: DW 0 ; TOTAL FILES TAGGED IF 1K/BLOCK
- Y2C32: DB 0
- Y2C33: DB 0
- Y2C34: DW 0
- RAMTOP: DW 0
- Y2C38: DB 0
- USER3: DB 0
- Y2C3A: DB 0
- Y2C3B: DB 0
- Y2C3C: DB 0
- Y2C3D: DW 0
- CRCACC: DW 0
- Y2C41: DW 0
- Y2C43: DB 0
- ;
- SRCFCB: DB 0
- DS 8
- SRCFCT: DS 3
- Y2C50: DB 0
- Y2C51: DB 0
- Y2C52: DS 24
- ;
- DSTFCB: DB 0
- DS 8
- DSTFCT: DS 3
- Y2C76: DB 0
- Y2C77: DS 25
- ;
- FCB0: DB 0
- DS 37
- FCB1: DB 0
- DS 37
- CRCTBL: DS 512
- Y2EDC: DW 0
- Y2EDE: DW 0
- Y2EE0: DS 3
- Y2EE3: DS 10
- Y2EED: DB 0
- END
- 2BA9: DW 0
- D2BAB: DW 0
- T2BAD: DS 83
- ;
- Y2C00: DB 0
- Y2C01: DW 0
- CRCFLG: DB 0
- .CPFL: DB 0