;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

CBL	EQU	0248H
OUTFCB	EQU	1828H
ERR7	EQU	06ECH
SKP991	EQU	0349H

	ORG	CBL+20		; start 8 lines down from CBL:

	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
