home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
beehive
/
crr
/
unarc16.lbr
/
UNARC16.DIF
< prev
next >
Wrap
Text File
|
1990-12-08
|
2KB
|
52 lines
4c 57944
DB 'UNARC 1.6 27 Mar 87'
.
10c 19282
DB 'UNARC16'
.
47a 53450
1.6 27 Mar 87 (RAF)
- Murphy's Law strikes again: Within hours after the release of version
1.5, a bug was discovered. Incorrect CRC error messages are generated
during file extraction in some situations. This was caused by failure
to clear carry before a 16-bit subtract (SBC HL,DE), which we changed
inadvertantly in 1.42. (So much for Beta-testing!) Such faulty error
messages occur only for disk file extraction, not when the 'C' command
option is used to check an archive. Furthermore, the bug occurs only
when (1) a file contains an odd number of 128-byte records and (2) the
BDOS returns from the last write-record call with carry set. [Note of
interest: The CP/M 2.2 BDOS returns with carry set only if the output
drive is different than the current default drive. This assumes, of
course, that no RSX-type system extensions are in place to intercept
BDOS calls: We would have caught this bug, but for such a system
extension which always clears carry before returning from BDOS calls.]
Our thanks to Tom Brady for reporting this one.
- Zero-fills last record of .COM file. (Not needed with Z80ASM and/or
SLRNK, but provided so that M80/L80 will generate identical output to
that produced by the SLR Systems' tools.)
.
1896a 6627
; Note: Following instruction added in UNARC 1.6, since the preceding
; test (altered in 1.42) no longer clears carry.
OR A ; Clear carry for 16-bit subtract
.
4112a 26825
IF ($ AND 7FH) NE 0
; Clear out final record of the .COM file
; (Needed only for precise M80/L80 compatibility with Z80ASM/SLRNK)
REPT 128-($ AND 7FH)
DB 0
ENDM
ENDIF
.
$a 5531
.