;CRN24PAT.AZM
; causes XZY files to crunch to XZZ, as suggested in the source for
; CRUNCH24.
; The equated labels refer to the CRUNCH24 source; the equated values
; refer to the distributed version of CRUNCH24.COM. This code
; takes fewer bytes than the original.
; To use:
; A>Z1 CRN24PAT
; A>MLOAD CRUNCH24.COM,CRN24PAT
LD HL,OUTFCB+9 ; point to first char in extension
LD A,' ' ; See if extension is blank
CP (HL) ;
LD A,'Z' ; we'll need a Z later
JR Z,ZZZ ; If so, force an extension of "ZZZ"
INC HL ; point to second char in extension
CP (HL) ; See if middle letter is "Z"
JR NZ,XZY ; Normal condtition- simply force 2nd ltr to Z
INC HL ; point to last char
CP (HL) ; See if last char is "Z"
JR NZ,XZZ ; no - extension will be "XZZ"
DEC HL ; point to first char
DEC HL
CP (HL) ; See if first char is "Z"
JR NZ,ZZZ ; no - extension will be "ZZZ"
LD DE,ERR7 ; Already "ZZZ" - User had better rename file
JP SKP991 ; but give him a straight copy, anyway
ZZZ: LD (HL),A ; First char becomes Z
INC HL
LD (HL),A ; Second char becomes Z
INC HL
XZY:
XZZ:
LD (HL),A ; Pointed-to char becomes Z
; since this code takes less space than original, we fill with NOPs (00)
DB 0,0,0,0,0,0,0,0,0
END