home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Brotikasten
/
BROTCD01.iso
/
exoten
/
msx
/
arkunarc.pma
/
UNARC11.DIF
< prev
next >
Wrap
Text File
|
1993-10-27
|
6KB
|
181 lines
<---- UNARC10.Z80
----> UNARC11.Z80
4c4
< DB 'UNARC 1.0 03 May 86'
-----
> DB 'UNARC 1.1 24 May 86'
58a59,74
> 1.1 24 May 86 (RAF)
>
> Minor change to allow file typeout without the "T:" syntax (which
> didn't work with almost ANY CCP replacement)... File will be typed if
> it: (1) has no disk drive name, (2) is a single (UNambiguous) file,
> and (3) is not an excluded filetype. (Else, file will simply be listed
> with no error message.) This change was suggested by Irv Hoff's mod to
> UNARC10, which he called ADIR. (Previous "T:" method can still be
> enabled, but it is now undocumented since we will probably drop it
> altogether in future.)
>
> Also shortened on-line help message, so that COM file size is now
> reduced to 4K. (For RCPM systems, if HODRV = 0 and/or TYDRV = 0, the
> help information relating to disk extraction and/or file typeout,
> respectively, is automatically removed.)
>
63a80,83
> \
> PAGE
> .COMMENT \
>
202,206c222
< ; Note: If following is changed, also change two occurrences of "T:"
< ; in usage message which follows.
<
< TYDRV: DB 'T'-'@' ; Typeout "drive" (ok with CP/M 2.2 CCP)
< ;TYDRV: DB 'P'-'@' ; E.g. if (non-std) CCP won't parse T:
-----
> TYDRV: DB 0FFH ; This enables single file typeout
208a225,233
> ; Note: Following for compatibility with UNARC 1.0. This will work with
> ; the standard CCP in CP/M 2.2, but with virtually NO other CCP
> ; replacement in common usage (e.g. DEC Rainbow CP/M-86/80, ZCMD,
> ; ZCPR). Use of a pseudo typeout "drive" is no longer necessary,
> ; and its use is discouraged.
>
> ;TYDRV: DB 'T'-'@' ; Typeout "drive" (ok with CP/M 2.2 CCP)
> ;TYDRV: DB 'P'-'@' ; E.g. if (non-std) CCP won't parse T:
>
248,273c273,306
< USAGE:
<
< IDENT ; Program version identification first
<
< DB CR,LF,'Archive File Extractor for Z80 CP/M Systems'
< DB CR
< DB LF,LF,'Usage: UNARC arcfile [d:][afn]'
< DB CR
< DB LF,LF,'First parameter (required) specifies an archive file (default'
< DB CR,LF,'filetype .'
< ARCTYP: DB 'ARC). Second parameter (optional) specifies the'
< DB CR,LF,'output drive and/or selects the component file(s) to process.'
< DB CR,LF,'The file selection [afn] may be ambiguous (defaults to *.*).'
< DB CR,LF,'Drive [d:] must be specified to extract files, else only the'
< DB CR,LF,'directory listing is displayed. Use the pseudo drive T: to'
< DB CR,LF,'typeout a single (non-ambiguous) file at the console instead'
< DB CR,LF,'of extracting to disk. For example:'
< DB CR
< DB LF,LF,' A>UNARC A:SAVE.ARC *.* ; List all files in A:SAVE.ARC'
< DB CR,LF,' A>UNARC SAVE ; Same as above'
< DB CR,LF,' A>UNARC SAVE A: ; Extract all files to drive A'
< DB CR,LF,' A>UNARC SAVE B:*.DOC ; Extract .DOC files to drive B'
< DB CR,LF,' A>UNARC SAVE T:READ.ME ; Typeout the file READ.ME'
< DB CR
< DB LF,LF
<
-----
> USAGE: IDENT ; Program version identification first
>
> DB CR,LF
> DB 'Archive File Extractor for Z80 CP/M Systems',CR,LF,LF
> DB 'Usage:',HT,'UNARC arcfile '
>
> USE1: DB '[d:]'
> USE1L EQU $-USE1 ; Above cleared if HODRV = 0
>
> DB '[afn]',CR,LF,LF
> DB 'Examples:',CR,LF,LF
> DB 'B>UNARC A:SAVE.'
>
> ARCTYP: DB 'ARC' ; Default filetype for archive files
> DB ' *.*',HT
> DB '; List all files in archive SAVE on drive A',CR,LF
> DB 'A>UNARC SAVE',HT,HT
> DB '; Same as above',CR,LF
> DB 'A>UNARC SAVE *.DOC',HT
> DB '; List just .DOC files',CR,LF
>
> USE2: DB 'A>UNARC SAVE READ.ME',HT
> DB '; Typeout the file READ.ME',CR,LF
> USE2L EQU $-USE2 ; Above cleared if TYDRV = 0
>
> USE3: DB 'A>UNARC SAVE A:',HT,HT
> DB '; Extract all files to drive A',CR,LF
> DB 'A>UNARC SAVE B:*.DOC',HT
> DB '; Extract .DOC files to drive B',CR,LF
> DB 'A>UNARC SAVE C:READ.ME',HT
> DB '; Extract file READ.ME to drive C',CR,LF
> USE3L EQU $-USE3 ; Above cleared if HODRV = 0
>
> DB LF
438,439c471
< LD DE,USAGE ; No, just print usage message
< JR Z,PEXIT ; and exit
-----
> JR Z,HELP ; No, go show on-line help
455d486
< PAGE
461a493,495
> PAGE
> ; Open archive file
>
492a527,546
> ; Display program usage help message
>
> HELP: LD A,(HODRV) ; File extraction allowed?
> OR A
> LD HL,USE1
> LD BC,256*USE1L+80H
> CALL Z,FILL ; No, clear out usage examples
> LD HL,USE3
> LD B,USE3L
> CALL Z,FILL ; (Two places)
>
> LD A,(TYDRV) ; File typeout allowed?
> OR A
> LD HL,USE2
> LD B,USE2L
> CALL Z,FILL ; No, clear out usage example
>
> LD DE,USAGE ; Just print usage message
> JP PEXIT ; and exit
>
763,769c817,824
< OUTSET: LD A,(OFCB) ; Any output drive?
< OR A
< RET Z ; No, return
<
< LD HL,TYDRV ; Is it the pseudo drive for
< CP (HL) ; typing files?
< JR Z,CKTYP ; Yes, skip to check file name
-----
> OUTSET: LD DE,OFCB ; Point to output drive
> LD HL,TYDRV ; Point to typeout flag (or "drive")
> LD A,(DE) ; Any output drive?
> OR A
> JR Z,CKTYP ; No, go see if filename permits typeout
>
> CP (HL) ; But is it the pseudo typeout drive?
> JR Z,CKTYP0 ; Yes, skip to type file (if permitted)
847c902,904
< CKTYP: CALL TAMBIG ; Ambiguous output file name?
-----
> CKTYP: LDI ; Assume typeout allowed (TYDRV -> OFCB)
>
> CKTYP0: CALL TAMBIG ; Ambiguous output file name?
872,873c929,931
< CKTYP5: LD DE,BADTYP ; All matched (or ambiguous name),
< JP PABORT ; Abort due to invalid name for typeout
-----
> CKTYP5: XOR A ; All matched (or ambiguous name),
> LD (OFCB),A ; disable typeout of file
> RET ; Return (will just list file)
1056c1114
< the archive header, or a tree link to the root node (which indicates a
-----
> the archive header), or a tree link to the root node (which indicates a
2199c2257
< CALL PCHAR
-----
> CALL P,PCHAR ; (But ignore chars with MSB set)
2703d2760
< BADTYP: DB 'Invalid file name for typeout',0