U2/TXT ;	U2/TXT	U2/TOO	U2
 	ORG	636CH
 GETSTR	EQU	4125H
 DISPLY	EQU	4100H
 NOTIN	EQU	6349H
 GOBACK	EQU	6210H
 GETDIR	EQU	631FH
 CURSOR	EQU	4020H
 KEY	EQU	4E4EH
 NORMAL	EQU	57D7H
 RESTOR	EQU	43CAH
 GOTRK	EQU	5F96H
 TRACK	EQU	4019H
 TRAK	EQU	4018H
 SECTOR	EQU	4017H
 BUFFER	EQU	0A300H
 DREAD	EQU	42A2H
 BUFF1	EQU	0A100H
 TYPE	EQU	4026H
 FIXDRV	EQU	43ADH
 BADRD	EQU	4750H
 NONST	EQU	596FH
 VALUE	EQU	607DH
 BADWRT	EQU	556CH
 RETURN	EQU	61F0H
 WHERE	EQU	4015H
 ENTRY	EQU	43EAH
 COMPAR	EQU	58FFH
 DELAY	EQU	41A6H
 WHFILE	EQU	587DH
 BADFIL	EQU	57A7H
 NOFIND	EQU	57BEH
 BUFF2	EQU	0A200H
 GETSEL	EQU	4F4FH
 GOTABL	EQU	4625H
 STEPIN	EQU	48CBH
 STRING	EQU	4065H
 DRIVE	EQU	401AH
 FLAG	EQU	4041H
 RGAT	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	CALL	C,IFCONT
 	RST	8
 	DEFB	4
 	DEFB	0
 BAD1	RST	8
 	DEFB	6
 	DEFM	'Fix <E>ntire sector or just <A>llocation table ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,BAD1
 	CP	'A'
 	JP	Z,FGAA
 	CP	'E'
 	JR	NZ,BAD1
 	LD	HL,BUFFER
 	LD	DE,BUFFER+1
 	LD	(HL),0FFH
 	LD	BC,0FFH
 	LDIR
 	LD	HL,SUPER
 	LD	DE,BUFFER+0F0H
 	LD	BC,16
 	LDIR
 	RST	8
 	DEFB	4
 	DEFB	0
 BAD2	RST	8
 	DEFB	6
 	DEFM	'Diskette Track count ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,BAD2
 	CALL	VALUE
 	JR	C,BAD2
 	LD	A,B
 	OR	A
 	JR	NZ,BAD2
 	LD	A,C
 	OR	A
 	JR	Z,BAD2
 	CP	61H
 	JR	NC,BAD2
 	LD	B,A
 	LD	(BUFFER+0C0H),A
 	LD	IX,BUFFER
 	LD	A,0FCH
 FGAC	LD	(IX),A
 	LD	(IX+60H),A
 	INC	IX
 	DJNZ	FGAC
 	LD	HL,MSG1
 	LD	DE,BUFFER+0D0H
 	LD	BC,16
 	LDIR
 	LD	HL,42E0H
 	LD	(BUFFER+0CEH),HL
 	LD	A,0DH
 	LD	(BUFFER+0E0H),A
 	LD	HL,0
 	LD	(BUFFER+0CCH),HL
 	LD	HL,BUFFER+0CAH
 	LD	(HL),'S'
 	INC	HL
 	LD	(HL),'U'
 	INC	HL
 	LD	(HL),0
 	INC	HL
 	LD	(HL),0
 	JP	FGAB
 IFCONT	PUSH	HL
 	PUSH	DE
 	PUSH	BC
 	LD	A,(TRACK)
 	RST	28H
 	LD	(IFT),BC
 	RST	8
 	DEFB	4
 	DEFM	'Directory Assumed to be Track '
 IFT	DEFM	'00.'
 	DEFB	4
 	DEFM	'<ENTER> to continue with Repair or <BREAK> to Abort. '
 	DEFB	0
 	XOR	A
 	RST	10H
 	POP	BC
 	POP	DE
 	POP	HL
 	RET
 MSG1	DEFM	'( Name )( Date )'
 FGAA	LD	HL,BUFFER+60H
 	LD	DE,BUFFER
 	LD	BC,60H
 	LDIR
 FGAB	CALL	MAKGAT
 	JP	RETURN
 MAKGAT	LD	HL,BUFFER+60H
 	LD	DE,BUFFER
 	LD	BC,60H
 	LDIR
 	LD	IX,BUFFER+200H
 	LD	B,64
 FGATL2	BIT	4,(IX)
 	CALL	NZ,ALLOC
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	FGATL2
 	LD	BC,BUFFER
 	LD	A,(TRACK)
 	LD	D,A
 	LD	E,0
 	LD	A,0A9H
 	LD	(TYPE),A
 	RST	20H
 	CALL	NZ,BADWRT
 	RET
 ALLOCC	INC	IX
 	INC	IX
 	JR	ALLOC1
 ALLOCD	POP	BC
 	POP	IX
 	RET
 ALLOC	PUSH	IX
 	PUSH	BC
 ALLOC1	LD	A,(IX+22)
 	CP	0FFH
 	JR	Z,ALLOCD
 	CP	0FEH
 	JR	Z,ALLOCD
 	LD	D,A
 	LD	A,(IX+23)
 	AND	20H
 	SRA	A
 	SRA	A
 	SRA	A
 	SRA	A
 	SRA	A
 	LD	E,A
 	SLA	A
 	SLA	A
 	ADD	A,E
 	LD	E,A
 	LD	A,(IX+23)
 	AND	1FH
 	INC	A
 	LD	B,A
 ALLOC2	LD	HL,BUFFER
 	PUSH	DE
 	LD	E,D
 	LD	D,0
 	ADD	HL,DE
 	POP	DE
 	LD	A,E
 	CP	5
 	JR	NZ,ALLOC3
 	SET	1,(HL)
 	LD	E,0
 	INC	D
 	DEC	B
 	JP	Z,ALLOCC
 	JR	ALLOC2
 ALLOC3	SET	0,(HL)
 	LD	E,5
 	DEC	B
 	JP	Z,ALLOCC
 	JR	ALLOC2
 RHIT	CALL	GETDRV
 	CALL	GETDIR
 	PUSH	AF
 	JP	C,NONST
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	CALL	C,IFCONT
 GOHITS	LD	HL,BUFFER+100H
 	LD	DE,BUFFER+101H
 	LD	BC,0FFH
 	LD	(HL),0
 	LDIR
 	LD	IX,BUFFER+200H
 	LD	C,0
 HITLP1	LD	B,0
 HITLP2	BIT	4,(IX)
 	CALL	NZ,PUTHIT
 	LD	DE,20H
 	ADD	IX,DE
 	INC	B
 	LD	A,B
 	CP	8
 	JR	NZ,HITLP2
 	INC	C
 	LD	A,C
 	CP	8
 	JR	NZ,HITLP1
 	LD	BC,BUFFER+100H
 	LD	A,(TRACK)
 	LD	D,A
 	LD	E,1
 	LD	A,0A9H
 	LD	(TYPE),A
 	RST	20H
 	CALL	NZ,BADWRT
 	JP	RETURN
 HASH	PUSH	IX
 	PUSH	BC
 	LD	C,0
 	LD	B,0BH
 HLOOP	LD	A,(IX+5)
 	INC	IX
 	XOR	C
 	RLCA
 	LD	C,A
 	DJNZ	HLOOP
 	OR	A
 	JR	NZ,HASHOK
 	INC	A
 HASHOK	POP	BC
 	POP	IX
 	RET
 PUTHIT	BIT	7,(IX)
 	RET	NZ
 	LD	A,B
 	SLA	A
 	SLA	A
 	SLA	A
 	SLA	A
 	SLA	A
 	ADD	A,C
 	LD	E,A
 	LD	D,0
 	LD	HL,BUFFER+100H
 	ADD	HL,DE
 	CALL	HASH
 	LD	(HL),A
 	LD	E,A
 	LD	A,(IX+30)
 	CP	0FEH
 	RET	NZ
 	LD	A,E
 	LD	E,(IX+31)
 	LD	D,0
 	LD	HL,BUFFER+100H
 	ADD	HL,DE
 	LD	(HL),A
 	RET
 RKILL	RST	8
 	DEFB	4
 	DEFB	0
 RKILLL	RST	8
 	DEFB	6
 	DEFM	'Drive to Recover Files from ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,RKILLL
 	SUB	30H
 	JR	C,RKILLL
 	CP	4
 	JR	NC,RKILLL
 	CALL	FIXDRV
 	CALL	GETDIR
 	PUSH	AF
 	JP	C,NONST
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	RST	8
 	DEFB	4
 	DEFB	0
 	XOR	A
 	LD	(FLAG),A
 	LD	IX,BUFFER+200H
 	LD	B,64
 RKILLP	BIT	4,(IX)
 	CALL	Z,CANSAV
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	RKILLP
 	LD	A,(FLAG)
 	OR	A
 	JR	Z,BDNONE
 	RST	28H
 	LD	(BDDD),BC
 	RST	8
 	DEFB	4
 BDDD	DEFM	'00 Files to be Restored.'
 	DEFB	0
 	JR	BAD55
 BDNONE	RST	8
 	DEFB	4
 	DEFM	'No Files Restored.'
 	DEFB	0
 	JP	RETURN
 BAD55	RST	8
 	DEFB	4
 	DEFB	0
 BAD55X	RST	8
 	DEFB	6
 	DEFM	'<W>rite Directory back or <C>ancel ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,BAD55X
 	CP	'C'
 	JP	Z,GOBACK
 	CP	'W'
 	JR	NZ,BAD55X
 	CALL	MAKGAT
 	CALL	WRDIR
 	JP	GOHITS
 RDDIR	LD	(TRACK),A
 	LD	D,A
 	LD	E,0
 	LD	BC,BUFFER
 	PUSH	IX
 	LD	IX,BUFF1
 DIR1	RST	18H
 	CALL	NZ,BADRD
 	EX	AF,AF'
 	AND	3
 	LD	(IX),A
 	INC	IX
 	INC	E
 	LD	A,E
 	CP	0AH
 	JR	NZ,DIR1
 	LD	IX,BUFF1
 	LD	C,0
 	LD	B,10
 VEL	LD	A,(IX)
 	CP	1
 	JR	NZ,BVERR
 	INC	C
 	INC	IX
 	DJNZ	VEL
 	LD	HL,BUFFER
 	LD	B,96+96
 VEL1	LD	A,(HL)
 	AND	0FCH
 	CP	0FCH
 	JR	NZ,BVERG
 	INC	HL
 	DJNZ	VEL1
 	POP	IX
 	RET
 BVERG	RST	8
 	DEFB	4
 	DEFM	'Cannot Verify Directory Track.  Bad GAT table bytes.'
 	DEFB	0
 	POP	IX
 	SCF
 	RET
 BVERR	LD	A,C
 	RST	28H
 	LD	A,B
 	LD	(BVS),A
 	RST	8
 	DEFB	4
 	DEFM	'Cannot Verify Directory Track.  Sector '
 BVS	DEFM	'0 not Read Protected.'
 	DEFB	0
 	POP	IX
 	SCF
 	RET
 WRDIR	LD	A,(TRACK)
 	LD	D,A
 	LD	E,0
 	LD	BC,BUFFER
 DIR2	LD	A,0A9H
 	LD	(TYPE),A
 	RST	20H
 	CALL	NZ,BADWRT
 	INC	E
 	LD	A,E
 	CP	0AH
 	RET	Z
 	JR	DIR2
 CANSAV	LD	A,(IX+5)
 	CP	41H
 	RET	C
 	CP	5BH
 	RET	NC
 	CALL	SHOWIT
 	RET	NZ
 	LD	HL,(CURSOR)
 	LD	A,L
 	AND	0C0H
 	ADD	A,25
 	LD	L,A
 	LD	(CURSOR),HL
 	PUSH	BC
 	RST	8
 	DEFM	'     Restore it ? '
 	DEFB	0
 	POP	BC
 SAVWT	CALL	KEY
 	JR	Z,SAVWT
 	CP	'N'
 	JR	Z,SHOW0D
 	CP	'Y'
 	JR	NZ,SAVWT
 	SET	4,(IX)
 	LD	A,(FLAG)
 	INC	A
 	LD	(FLAG),A
 	LD	A,'Y'
 SHOW0D	LD	HL,(CURSOR)
 	LD	(HL),A
 	PUSH	BC
 	RST	8
 	DEFB	4
 	DEFB	0
 	CALL	ALLOC
 	POP	BC
 	RET
 SHOWIT	PUSH	IX
 	PUSH	BC
 	LD	HL,(CURSOR)
 	LD	B,8
 SHOWL1	LD	A,(IX+5)
 	CP	20H
 	JR	Z,SHCON
 	CP	30H
 	JR	C,SHBAD
 	CP	5BH
 	JR	NC,SHBAD
 	LD	(HL),A
 	INC	HL
 SHCON	INC	IX
 	DJNZ	SHOWL1
 	LD	A,(IX+5)
 	CP	20H
 	JR	Z,SHOK
 	CP	41H
 	JR	C,SHBAD
 	CP	5BH
 	JR	NC,SHBAD
 	LD	A,'/'
 	LD	(HL),A
 	INC	HL
 	LD	B,3
 EXTLP	LD	A,(IX+5)
 	CP	20H
 	JR	Z,SHOK
 	CP	30H
 	JR	C,SHBAD
 	CP	5BH
 	JR	NC,SHBAD
 	LD	(HL),A
 	INC	HL
 	INC	IX
 	DJNZ	EXTLP
 SHOK	LD	(CURSOR),HL
 	POP	BC
 	POP	IX
 	XOR	A
 	RET
 SHBAD	LD	HL,(CURSOR)
 	LD	B,12
 SHBD1	LD	(HL),20H
 	INC	HL
 	DJNZ	SHBD1
 	OR	1
 	POP	BC
 	POP	IX
 	RET
 GETDRV	RST	8
 	DEFB	4
 	DEFB	0
 GETTTT	RST	8
 	DEFB	6
 	DEFM	'Drive ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,GETTTT
 	SUB	30H
 	JR	C,GETTTT
 	CP	4
 	JR	NC,GETTTT
 	JP	FIXDRV
 RBOOT	CALL	GETDRV
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	NOP
 	CALL	GETDIR
 	JP	C,NONST1
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 NONST2	LD	(BOOT+2),A
 	LD	BC,BOOT
 	LD	A,0A8H
 	LD	DE,0
 	RST	20H
 	CALL	NZ,BADWRT
 	JP	RETURN
 BOOT	NOP
 	CP	0
 	DI
 	LD	SP,41FCH
 	LD	HL,42E2H
 	CALL	429AH
 	LD	A,1
 	LD	(37E1H),A
 	LD	A,(4202H)
 	LD	D,A
 	LD	E,4
 	LD	BC,4D00H
 	CALL	42AAH
 	JR	NZ,LB1
 	LD	A,(4D00H)
 	AND	10H
 	LD	HL,42E5H
 	JR	Z,LB2
 	EXX
 	LD	HL,(4D16H)
 	LD	D,L
 	LD	A,H
 	RLCA
 	RLCA
 	RLCA
 	AND	7
 	LD	H,A
 	RLCA
 	RLCA
 	ADD	A,H
 	LD	E,A
 	LD	BC,4DFFH
 	EXX
 LB4	CALL	4275H
 	DEC	A
 	JR	NZ,LB3
 	CALL	4275H
 	LD	B,A
 	CALL	4275H
 	LD	L,A
 	DEC	B
 	CALL	4275H
 	LD	H,A
 LB15	DEC	B
 	JR	Z,LB4
 	CALL	4275H
 	LD	(HL),A
 	INC	HL
 	JR	LB15
 LB3	DEC	A
 	JR	Z,LB5
 	CALL	4275H
 	LD	B,A
 LB6	CALL	4275H
 	DJNZ	LB6
 	JR	LB4
 LB5	CALL	4275H
 	CALL	4275H
 	LD	L,A
 	CALL	4275H
 	LD	H,A
 	JP	(HL)
 	EXX
 	INC	C
 	JR	NZ,LB7
 	PUSH	BC
 	LD	A,1
 	LD	(37E1H),A
 	CALL	42AAH
 	JR	NZ,LB1
 	POP	BC
 	INC	E
 	LD	A,E
 	SUB	0AH
 	JR	NZ,LB7
 	LD	E,A
 	INC	D
 LB7	LD	A,(BC)
 	EXX
 	RET
 LB1	LD	HL,42F1H
 LB2	CALL	429AH
 	CALL	40H
 	HALT
 	PUSH	HL
 LB9	LD	A,(HL)
 	CP	3
 	JR	Z,LB8
 	CALL	33H
 	INC	HL
 	CP	0DH
 	JR	NZ,LB9
 LB8	POP	HL
 	RET
 	PUSH	BC
 	CALL	42B2H
 	POP	HL
 	RET	Z
 	LD	B,H
 	LD	C,L
 	LD	(37EEH),DE
 	LD	HL,37ECH
 	LD	(HL),1BH
 	PUSH	AF
 	POP	AF
 	PUSH	AF
 	POP	AF
 LB10	LD	A,(HL)
 	RRCA
 	JR	C,LB10
 	LD	(HL),88H
 	PUSH	DE
 	LD	DE,37EFH
 	PUSH	BC
 	POP	BC
 	JR	LB11
 LB13	RRCA
 	JR	NC,LB12
 LB14	LD	A,(HL)
 	BIT	1,A
 	JR	Z,LB13
 	LD	A,(DE)
 	LD	(BC),A
 	INC	BC
 LB11	JR	LB14
 LB12	LD	A,(HL)
 	AND	5CH
 	POP	DE
 	RET	Z
 	LD	(HL),0D0H
 	RET
 	DEFW	1F1CH
 	DEFB	3
 	DEFB	17H
 	DEFB	0E8H
 	DEFM	'NO SYSTEM'
 	DEFB	0DH
 	DEFB	17H
 	DEFB	0E8H
 	DEFM	'DISK ERROR'
 	DEFB	0DH
 	DEFB	0EBH
 	DEFB	5FH
 NONST1	RST	8
 	DEFB	4
 	DEFM	'Boot on Diskette is NON STANDARD !'
 	DEFB	4
 	DEFB	0
 BAD44	RST	8
 	DEFB	6
 	DEFM	'Make it Standard ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,BAD44
 	CP	'N'
 	JP	Z,GOBACK
 	CP	'Y'
 	JR	NZ,BAD44
 	LD	A,11H
 	JP	NONST2
 TAPE	LD	A,10
 	LD	(WHERE),A
 	RST	8
 	DEFB	3
 	DEFM	'- BREEZE TAPE COPY UTILITY -'
 	DEFW	0404H
 	DEFB	0
 BAD11	RST	8
 	DEFB	6
 	DEFM	'Use Tape Player 1 or 2 ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,BAD11
 	SUB	30H
 	JR	C,BAD11
 	JR	Z,BAD11
 	CP	3
 	JR	NC,BAD11
 	DEC	A
 	LD	(37E4H),A
 	RST	8
 	DEFW	0404H
 	DEFM	'Press <ENTER> to begin. '
 	DEFB	0
 	XOR	A
 	RST	10H
 	RST	8
 	DEFB	6
 	DEFM	'Press <BREAK> when flashing stops.'
 	DEFB	0
 	LD	A,4
 	OUT	(0FFH),A
 	LD	DE,3C3FH
 	LD	A,191
 	LD	(DE),A
 	LD	HL,3840H
 PULSE	BIT	2,(HL)
 	JR	NZ,TDONE
 	IN	A,(0FFH)
 	RLA
 	JR	NC,PULSE
 	LD	B,32H
 	DJNZ	$
 	LD	A,5
 	OUT	(0FFH),A
 	LD	B,10H
 	DJNZ	$
 	LD	A,6
 	OUT	(0FFH),A
 	LD	B,10H
 	DJNZ	$
 	LD	A,4
 	OUT	(0FFH),A
 	LD	A,(DE)
 	INC	A
 	OR	80H
 	AND	0BFH
 	LD	(DE),A
 	JR	PULSE
 TDONE	XOR	A
 	OUT	(0FFH),A
 	JP	RETURN
 FRE1	INC	C
 	RET
 DIRCHK	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,BUFFER+60H
 	LD	BC,6000H
 LKLP	LD	A,(HL)
 	CP	0FCH
 	CALL	Z,FRE1
 	INC	HL
 	DJNZ	LKLP
 	LD	A,C
 	RST	28H
 	LD	(LKLP1),BC
 	RST	8
 	DEFB	4
 LKLP1	DEFM	'00 Tracks.'
 	DEFB	0
 	LD	BC,6000H
 	LD	HL,BUFFER
 FRELP	BIT	0,(HL)
 	CALL	Z,FRE1
 	BIT	1,(HL)
 	CALL	Z,FRE1
 	INC	HL
 	DJNZ	FRELP
 	LD	A,C
 	RST	28H
 	LD	(FRE3),A
 	LD	(FRE3+1),BC
 	RST	8
 	DEFB	4
 FRE3	DEFM	'000 Free Granules.'
 	DEFB	0
 	LD	HL,BUFFER+140H
 	LD	BC,3000H
 	CALL	FFILE
 	JR	FFGOON
 FFILE	LD	A,(HL)
 	OR	A
 	CALL	Z,FRE1
 	INC	L
 	LD	A,L
 	AND	0E7H
 	LD	L,A
 	AND	7
 	LD	A,L
 	JR	NZ,FCO
 	ADD	A,20H
 FCO	LD	L,A
 	DJNZ	FFILE
 	LD	A,C
 	RET
 FFGOON	RST	28H
 	LD	(FRE4),BC
 	LD	HL,BUFFER+100H
 	LD	BC,1000H
 	CALL	FFILE
 	RST	28H
 	LD	(FRES),BC
 	RST	8
 	DEFB	4
 FRE4	DEFM	'00 Free User Files.'
 	DEFB	4
 FRES	DEFM	'00 Free System Files.'
 	DEFB	0
 	LD	HL,BUFF1
 	LD	B,0
 RLOOP	LD	A,(HL)
 	CP	1
 	JR	Z,RLLP
 	PUSH	BC
 	PUSH	HL
 	LD	A,B
 	RST	30H
 	LD	A,H
 	LD	(RLLQ),A
 	RST	8
 	DEFB	4
 	DEFM	'Sector '
 RLLQ	DEFM	'0 not Read Protected !'
 	DEFB	0
 	POP	HL
 	POP	BC
 RLLP	INC	B
 	INC	HL
 	LD	A,B
 	CP	0AH
 	JR	NZ,RLOOP
 	LD	HL,BUFFER
 	LD	DE,BUFF1
 	LD	BC,100H
 	LDIR
 	LD	HL,BUFFER+60H
 	LD	DE,BUFFER
 	LD	BC,60H
 	LDIR
 	LD	IX,BUFFER+200H
 	LD	B,64
 DIRC2	BIT	4,(IX)
 	CALL	NZ,ALLOC
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	DIRC2
 	LD	HL,BUFFER
 	LD	DE,BUFF1
 	LD	BC,96+96
 	CALL	COMPAR
 	JR	Z,GATOK
 	RST	8
 	DEFB	4
 	DEFM	'GAT Table is Bad !'
 	DEFB	0
 GATOK	LD	HL,BUFFER+100H
 	LD	DE,BUFF1
 	LD	BC,100H
 	LDIR
 	LD	HL,BUFFER+100H
 	LD	DE,BUFFER+101H
 	LD	BC,0FFH
 	LD	(HL),0
 	LDIR
 	LD	IX,BUFFER+200H
 	LD	C,0
 CITLP1	LD	B,0
 CITLP2	BIT	4,(IX)
 	CALL	NZ,PUTHIT
 	LD	DE,20H
 	ADD	IX,DE
 	INC	B
 	LD	A,B
 	CP	8
 	JR	NZ,CITLP2
 	INC	C
 	LD	A,C
 	CP	8
 	JR	NZ,CITLP1
 	LD	HL,BUFF1
 	LD	DE,BUFFER+100H
 	LD	BC,100H
 	LD	A,(BUFF1+1)
 	LD	(BUFFER+101H),A
 	CALL	COMPAR
 	JR	Z,HITOK
 	RST	8
 	DEFB	4
 	DEFM	'HIT Table is Bad !'
 	DEFB	0
 HITOK	RST	8
 	DEFB	4
 	DEFB	0
 	LD	IX,BUFFER+200H
 	LD	C,0
 DIRIL1	LD	B,0
 DIRIL2	LD	A,(3840H)
 	BIT	2,A
 	JP	NZ,GOBACK
 	BIT	7,A
 	JR	NZ,DIRIL2
 	LD	A,(IX)
 	BIT	4,A
 	JR	Z,DIRIL3
 	BIT	7,A
 	CALL	Z,ISOK
 DIRIL3	LD	DE,20H
 	ADD	IX,DE
 	INC	B
 	LD	A,B
 	CP	8
 	JR	NZ,DIRIL2
 	INC	C
 	LD	A,C
 	CP	8
 	JR	NZ,DIRIL1
 	JP	RETURN
 ISOK	BIT	7,A
 	JP	NZ,PBAD
 	LD	A,(IX+22)
 	CP	0FFH
 	JR	Z,PBAD
 	CP	0FEH
 	JR	Z,PBAD
 	LD	A,(IX+24)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JR	Z,PBAD
 	LD	A,(IX+26)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JR	Z,PBAD
 	LD	A,(IX+28)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JR	Z,PBAD
 	LD	A,(IX+30)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JR	NZ,PBAD
 	PUSH	IX
 	POP	IY
 	LD	D,B
 	LD	E,C
 	JR	FIXTEN
 PBAD	CALL	SHOWIT
 	PUSH	BC
 	RST	8
 	DEFM	'    FPDE is Bad !'
 	DEFB	4
 	DEFB	0
 	LD	BC,4000H
 	CALL	DELAY
 	POP	BC
 	RET
 XBAD	CALL	SHOWIT
 	PUSH	BC
 	RST	8
 	DEFM	'   FXDE is Bad !'
 	DEFB	4
 	DEFB	0
 	LD	BC,4000H
 	CALL	DELAY
 	POP	BC
 	RET
 FIXTEN	LD	A,(IY+31)
 	AND	7
 	PUSH	DE
 	LD	D,A
 	LD	HL,BUFFER+200H
 	LD	A,(IY+31)
 	AND	0E0H
 	LD	E,A
 	ADD	HL,DE
 	BIT	4,(HL)
 	JP	Z,BFC
 	BIT	7,(HL)
 	JP	Z,BFC
 	PUSH	HL
 	POP	IY
 	POP	HL
 	LD	A,(IY+1)
 	AND	7
 	CP	L
 	JP	NZ,BBC
 	LD	A,(IY+1)
 	AND	0E0H
 	SRL	A
 	SRL	A
 	SRL	A
 	SRL	A
 	SRL	A
 	CP	H
 	JP	NZ,BBC
 	LD	A,(IY+22)
 	CP	0FFH
 	JP	Z,XBAD
 	CP	0FEH
 	JP	Z,XBAD
 	LD	A,(IY+24)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JP	Z,XBAD
 	LD	A,(IY+26)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JP	Z,XBAD
 	LD	A,(IY+28)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JP	Z,XBAD
 	LD	A,(IY+30)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JP	NZ,XBAD
 	JP	FIXTEN
 BFC	POP	DE
 	CALL	SHOWIT
 	PUSH	BC
 	RST	8
 	DEFM	'   Bad FORWARD CHAIN !'
 	DEFB	4
 	DEFB	0
 	LD	BC,4000H
 	CALL	DELAY
 	POP	BC
 	RET
 BBC	CALL	SHOWIT
 	PUSH	BC
 	RST	8
 	DEFM	'   Bad BACKWARD CHAIN !'
 	DEFB	4
 	DEFB	0
 	LD	BC,4000H
 	CALL	DELAY
 	POP	BC
 	RET
 SUPER	DEFM	' Super  Utility '
 RRPTC	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	CALL	C,IFCONT
 	CALL	WRDIR
 	JP	RETURN
 KILLIT	LD	A,(FLAG)
 	INC	A
 	LD	(FLAG),A
 	LD	C,(IX)
 	BIT	4,(IX)
 	RET	Z
 	RES	4,(IX)
 	PUSH	IX
 	POP	HL
 	PUSH	IX
 	POP	IY
 KILLLP	LD	A,(IY+16H)
 	CP	0FFH
 	RET	Z
 	CP	0FEH
 	JP	Z,EXTEND
 	LD	D,A
 	LD	A,(IY+17H)
 	LD	C,A
 	LD	B,0
 	BIT	5,A
 	JR	Z,PASTAA
 	LD	B,5
 PASTAA	AND	1FH
 	LD	E,B
 	INC	A
 	LD	B,A
 	CALL	RELEAS
 	CALL	ZERHIT
 	INC	IY
 	INC	IY
 	JR	KILLLP
 RELEAS	PUSH	DE
 	PUSH	HL
 	LD	L,D
 	LD	H,0
 	LD	C,E
 	LD	DE,BUFFER
 	ADD	HL,DE
 	LD	A,C
 	OR	A
 	JR	NZ,SECOND
 RELLP	RES	0,(HL)
 	DJNZ	SECOND
 	JP	RELDON
 SECOND	RES	1,(HL)
 	INC	HL
 	DJNZ	RELLP
 RELDON	POP	HL
 	POP	DE
 	RET
 ZERHIT	PUSH	HL
 	LD	DE,BUFFER+200H
 	OR	A
 	SBC	HL,DE
 	EX	DE,HL
 	LD	A,E
 	AND	0E0H
 	LD	E,A
 	LD	A,D
 	AND	7
 	OR	E
 	LD	E,A
 	LD	D,0
 	LD	HL,BUFFER+100H
 	ADD	HL,DE
 	LD	(HL),0
 	POP	HL
 	RET
 EXTEND	LD	A,(IY+17H)
 	LD	C,A
 	AND	7
 	LD	D,A
 	LD	A,C
 	AND	0E0H
 	LD	E,A
 	LD	HL,BUFFER+200H
 	ADD	HL,DE
 	PUSH	HL
 	POP	IY
 	RES	4,(IY)
 	JP	KILLLP
 FLIST	RST	8
 	DEFB	4
 	DEFM	'Filename ? '
 	DEFB	0
 	LD	A,23
 	RST	10H
 	JP	Z,FLIST
 	CALL	WHFILE
 	JP	NZ,FILBAD
 	JP	C,FINDNO
 	LD	A,(SECTOR)
 	PUSH	AF
 	LD	A,(TRAK)
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,BUFFER
 	POP	AF
 	LD	D,A
 	LD	E,0
 	ADD	HL,DE
 	PUSH	HL
 	POP	IX
 	LD	B,8
 KLP	PUSH	IX
 	POP	HL
 	LD	DE,BUFF2
 	PUSH	BC
 	LD	BC,20H
 	CALL	COMPAR
 	POP	BC
 	JR	Z,KIT
 	PUSH	IX
 	POP	HL
 	LD	DE,20H
 	ADD	HL,DE
 	PUSH	HL
 	POP	IX
 	DJNZ	KLP
 	JP	PERR
 FILBAD	XOR	A
 	CALL	BADFIL
 	JP	FLIST
 FINDNO	SCF
 	CCF
 	CALL	NOFIND
 	JP	FLIST
 KIT	CALL	KILLIT
 	CALL	WRDIR
 	JP	FLIST
 SLIST	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	RST	8
 	DEFB	4
 	DEFB	0
 	XOR	A
 	LD	(FLAG),A
 	LD	IX,BUFFER+200H
 	LD	B,64
 SLIST1	BIT	4,(IX)
 	JR	Z,SLIST2
 	BIT	7,(IX)
 	CALL	Z,KIF
 SLIST2	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	SLIST1
 	JP	KDONE
 KIF	PUSH	BC
 	CALL	SHOWIT
 	POP	BC
 	RET	NZ
 	PUSH	BC
 	LD	HL,(CURSOR)
 	LD	A,L
 	AND	0C0H
 	ADD	A,20
 	LD	L,A
 	LD	(CURSOR),HL
 	RST	8
 	DEFM	'Kill it ? '
 	DEFB	0
 	POP	BC
 KWT	PUSH	BC
 	CALL	KEY
 	POP	BC
 	JR	Z,KWT
 	CP	'N'
 	JR	Z,KNTTT
 	CP	'Y'
 	JR	NZ,KWT
 	PUSH	BC
 	PUSH	AF
 	CALL	KILLIT
 	POP	AF
 	POP	BC
 KNTTT	LD	HL,(CURSOR)
 	LD	(HL),A
 	PUSH	BC
 	RST	8
 	DEFB	4
 	DEFB	0
 	POP	BC
 	RET
 ZUNSEC	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	CALL	RESTOR
 	RST	8
 	DEFB	4
 	DEFB	0
 	LD	IX,BUFFER
 	LD	B,60H
 	LD	D,0
 ZUNLP	PUSH	BC
 	BIT	0,(IX)
 	CALL	Z,ZLEFT
 	BIT	1,(IX)
 	CALL	Z,ZRIGHT
 	POP	BC
 	INC	D
 	INC	IX
 	DJNZ	ZUNLP
 	JP	RETURN
 ZBUFF	PUSH	DE
 	LD	HL,BUFFER+200H
 	LD	DE,BUFFER+201H
 	LD	(HL),0
 	LD	BC,0FFH
 	LDIR
 	POP	DE
 	RET
 ZLEFT	LD	E,0
 	JR	ZCOT
 ZRIGHT	LD	E,5
 ZCOT	LD	A,D
 	LD	(TRACK),A
 	LD	B,5
 ZLOOPE	PUSH	BC
 	PUSH	DE
 	LD	A,D
 	RST	28H
 	LD	(ERT),BC
 	LD	A,E
 	RST	28H
 	LD	A,B
 	LD	(ERS),A
 	RST	8
 	DEFB	6
 	DEFM	'Erasing Track '
 ERT	DEFM	'00, Sector '
 ERS	DEFM	'0.'
 	DEFB	0
 	POP	DE
 	CALL	ZBUFF
 	LD	BC,BUFFER+200H
 	LD	A,0A8H
 	RST	20H
 	CALL	NZ,BADWRT
 	INC	E
 	POP	BC
 	DJNZ	ZLOOPE
 	RET
 ZUNUSE	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,NONST
 	LD	IX,BUFFER+200H
 	LD	B,64
 ZUUU	BIT	4,(IX)
 	CALL	Z,ZXXX
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	ZUUU
 	CALL	WRDIR
 	JP	RETURN
 ZXXX	PUSH	IX
 	POP	HL
 	PUSH	HL
 	POP	DE
 	INC	DE
 	PUSH	BC
 	LD	BC,1FH
 	LD	(HL),0
 	LDIR
 	POP	BC
 	RET
 PURGE	LD	A,6
 	LD	(WHERE),A
 	RST	8
 	DEFB	3
 	DEFM	'- BREEZE PURGE UTILITY -'
 	DEFW	0404H
 	DEFM	'<1>.  Kill Selective files'
 	DEFB	4
 	DEFM	'<2>.  Disk Directory'
 	DEFB	4
 	DEFM	'<3>.  Zero unused Directory Entries'
 	DEFB	4
 	DEFM	'<4>.  Zero unused Granules'
 	DEFB	4
 	DEFM	'<5>.  Remove System Files'
 	DEFB	4
 	DEFM	'<6>.  Kill Files by Category'
 	DEFB	4
 	DEFM	'<7>.  Change Name, Date, Password, Auto command'
 	DEFB	4
 	DEFM	'<8>.  Change File Parameters'
 	DEFB	4
 	DEFM	'<9>.  Remove Passwords all files'
 	DEFB	0
 	CALL	GETSEL
 	JP	Z,FSLIST
 	SUB	30H
 	JP	C,PURGE
 	JP	Z,PURGE
 	CP	0AH
 	JP	NC,PURGE
 	CALL	GOTABL
 TABLE1	DEFW	FSLIST
 	DEFW	DSKDIR
 	DEFW	ZUNUSE
 	DEFW	ZUNSEC
 	DEFW	RSYST
 	DEFW	KCATG
 	DEFW	CHANGE
 	DEFW	CHFILE
 	DEFW	REMPAS
 FSLIST	RST	8
 	DEFB	4
 	DEFB	0
 FSLLL	RST	8
 	DEFB	6
 	DEFM	'<L>ist Files or <S>elect from list ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,FSLLL
 	CP	'L'
 	JP	Z,FLIST
 	CP	'S'
 	JP	Z,SLIST
 	JR	FSLLL
 REPAIR	LD	A,5
 	LD	(WHERE),A
 	RST	8
 	DEFB	3
 	DEFM	'- BREEZE DISK REPAIR UTILITY -'
 	DEFW	0404H
 	DEFM	'<1>.  Repair GAT Table'
 	DEFB	4
 	DEFM	'<2>.  Repair HIT Table'
 	DEFB	4
 	DEFM	'<3>.  Repair BOOT'
 	DEFB	4
 	DEFM	'<4>.  Read Protect Directory Track'
 	DEFB	4
 	DEFM	'<5>.  Recover Killed Files'
 	DEFB	4
 	DEFM	'<6>.  Check Directory'
 	DEFB	0
 	CALL	GETSEL
 	JP	Z,RGAT
 	SUB	30H
 	JP	C,REPAIR
 	JP	Z,REPAIR
 	CP	7
 	JP	NC,REPAIR
 	CALL	GOTABL
 TABLE2	DEFW	RGAT
 	DEFW	RHIT
 	DEFW	RBOOT
 	DEFW	RRPTC
 	DEFW	RKILL
 	DEFW	DIRCHK
 	DEFW	ENTRY
 RSYST	XOR	A
 	LD	(FLAG),A
 	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,BUFFER+200H
 	LD	C,0
 KYPL	LD	A,C
 	OR	A
 	JR	Z,KYNX2
 	CP	2
 	JR	Z,KYNX2
 	BIT	3,(HL)
 	CALL	NZ,KYKILL
 KYNX2	INC	C
 	LD	A,C
 	CP	16
 	JR	Z,MYKI
 	LD	A,L
 	CP	20H
 	JR	Z,KYNX1
 	LD	L,20H
 	JR	KYPL
 KYNX1	INC	H
 	LD	L,0
 	JR	KYPL
 KYKILL	PUSH	BC
 	PUSH	HL
 	PUSH	HL
 	POP	IX
 	CALL	KILLIT
 	POP	HL
 	POP	BC
 	RET
 MYKI	LD	A,(FLAG)
 	OR	A
 	JR	NZ,SOMEOK
 	RST	8
 	DEFB	4
 	DEFM	'No System Files on that Disk.'
 	DEFB	0
 	JP	RETURN
 SOMEOK	RST	28H
 	LD	(SOMEK),BC
 	RST	8
 	DEFB	4
 SOMEK	DEFM	'00 System Files to be Killed.'
 	DEFB	0
 	JP	BAD55
 CHANGE	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,BUFFER+0D0H
 	LD	DE,SH1
 	LD	BC,8
 	LDIR
 	LD	HL,BUFFER+0D8H
 	LD	DE,SH2
 	LD	BC,8
 	LDIR
 	XOR	A
 	LD	(FLAG),A
 	LD	A,(BUFFER+0E0H)
 	CP	0DH
 	JR	Z,NOAUTO
 	LD	HL,SH3
 	LD	DE,SH3+1
 	LD	BC,33
 	LD	(HL),20H
 	LDIR
 	LD	A,1
 	LD	(FLAG),A
 	LD	HL,BUFFER+0E0H
 	LD	DE,SH3
 	LD	B,32
 ALP	LD	A,(HL)
 	CP	0DH
 	JR	Z,NOAUTO
 	LD	(DE),A
 	INC	HL
 	INC	DE
 	DJNZ	ALP
 NOAUTO	LD	HL,BUFFER+0E0H
 	PUSH	HL
 	LD	DE,BUFFER+0E1H
 	LD	BC,31
 	LD	(HL),20H
 	LDIR
 	POP	HL
 	LD	(HL),0DH
 	LD	HL,0
 	LD	(BUFFER+0CCH),HL
 	LD	A,'S'
 	LD	(BUFFER+0CBH),A
 BAD1A	RST	8
 	DEFB	4
 	DEFM	'Name: '
 SH1	DEFM	'                New Name ? '
 	DEFB	0
 	LD	A,8
 	RST	10H
 	JR	Z,BAD1B
 	PUSH	BC
 	PUSH	HL
 	LD	HL,BUFFER+0D0H
 	LD	DE,BUFFER+0D1H
 	LD	BC,7
 	LD	(HL),20H
 	LDIR
 	POP	HL
 	POP	BC
 	LD	C,B
 	LD	B,0
 	LD	DE,BUFFER+0D0H
 	LDIR
 BAD1B	RST	8
 	DEFB	4
 	DEFM	'Date: '
 SH2	DEFM	'                New Date ? '
 	DEFB	0
 	LD	A,8
 	RST	10H
 	JR	Z,SHHS
 	PUSH	BC
 	PUSH	HL
 	LD	HL,BUFFER+0D8H
 	LD	DE,BUFFER+0D9H
 	LD	BC,7
 	LD	(HL),20H
 	LDIR
 	POP	HL
 	POP	BC
 	LD	C,B
 	LD	B,0
 	LD	DE,BUFFER+0D8H
 	LDIR
 SHHS	LD	A,(FLAG)
 	OR	A
 	JR	NZ,SHAT
 	RST	8
 	DEFB	4
 	DEFM	'Auto command: NONE'
 	DEFB	0
 	JR	BAD1C
 SHAT	RST	8
 	DEFB	4
 	DEFM	'Auto command: '
 SH3	DEFM	'                                     '
 	DEFB	0
 BAD1C	RST	8
 	DEFB	4
 	DEFM	'New Auto command ? '
 	DEFB	0
 	LD	A,31
 	RST	10H
 	JR	Z,GETPAS
 	INC	B
 	LD	C,B
 	LD	B,0
 	LD	DE,BUFFER+0E0H
 	LDIR
 GETPAS	RST	8
 	DEFB	4
 	DEFM	'Compute Master Password ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,GPASS
 	CP	'N'
 	JR	Z,GPASS
 	CP	'Y'
 	JR	NZ,GETPAS
 	LD	HL,(BUFFER+0CEH)
 	CALL	DECODE
 GPASS	LD	HL,42E0H
 	LD	(BUFFER+0CEH),HL
 	RST	8
 	DEFB	4
 	DEFM	'New Master Password ? '
 	DEFB	0
 	LD	A,8
 	RST	10H
 	JR	Z,NOPASS
 	CALL	CODE
 	LD	(BUFFER+0CEH),HL
 NOPASS	CALL	WRDIR
 	JP	RETURN
 CODE	EX	DE,HL
 	LD	A,B
 	ADD	A,E
 	LD	L,A
 	LD	A,D
 	ADC	A,0
 	LD	H,A
 	LD	A,8
 	SUB	B
 	JR	Z,CODDD
 	LD	B,A
 CODLP1	LD	(HL),20H
 	INC	HL
 	DJNZ	CODLP1
 CODDD	LD	HL,0FFFFH
 	LD	B,8
 	LD	A,E
 	ADD	A,7
 	LD	E,A
 	JR	NC,CODLP2
 	INC	D
 CODLP2	LD	A,(DE)
 	PUSH	DE
 	LD	D,A
 	LD	E,H
 	LD	A,L
 	AND	7
 	RRCA
 	RRCA
 	RRCA
 	XOR	L
 	LD	L,A
 	LD	H,0
 	ADD	HL,HL
 	ADD	HL,HL
 	ADD	HL,HL
 	ADD	HL,HL
 	XOR	H
 	XOR	D
 	LD	D,A
 	LD	A,L
 	ADD	HL,HL
 	XOR	H
 	XOR	E
 	LD	E,A
 	EX	DE,HL
 	POP	DE
 	DEC	DE
 	DJNZ	CODLP2
 	RET
 KCATG	XOR	A
 	LD	(FLAG),A
 	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 BAD2A	RST	8
 	DEFB	4
 	DEFM	'Common Category ? '
 	DEFB	0
 	LD	A,4
 	RST	10H
 	JP	Z,BAD2A
 	CP	'/'
 	JP	Z,KEXT
 	CP	'I'
 	JP	Z,KINV
 	CP	'V'
 	JP	Z,KVIS
 	JR	BAD2A
 KVIS	LD	IX,BUFFER+200H
 	LD	B,64
 KVISLP	BIT	4,(IX)
 	CALL	NZ,KVIST
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	KVISLP
 	JP	KDONE
 REMPAS	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,42E0H
 	LD	(BUFFER+0CEH),HL
 	LD	IX,BUFFER+200H
 	LD	B,64
 REMLP	BIT	4,(IX)
 	CALL	NZ,REMP
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	REMLP
 	CALL	WRDIR
 	JP	RETURN
 REMP	LD	HL,4296H
 	LD	(IX+16),L
 	LD	(IX+18),L
 	LD	(IX+17),H
 	LD	(IX+19),H
 	LD	A,(IX)
 	AND	0F8H
 	LD	(IX),A
 	RET
 KVIST	BIT	7,(IX)
 	RET	NZ
 	BIT	3,(IX)
 	RET	NZ
 	PUSH	BC
 	CALL	KILLIT
 	POP	BC
 	RET
 KINV	LD	IX,BUFFER+200H
 	LD	B,64
 KINVLP	BIT	4,(IX)
 	CALL	NZ,KINVT
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	KINVLP
 	JP	KDONE
 KINVT	BIT	7,(IX)
 	RET	NZ
 	BIT	3,(IX)
 	RET	Z
 	PUSH	BC
 	CALL	KILLIT
 	POP	BC
 	RET
 KEXT	LD	A,B
 	CP	1
 	JP	Z,BAD2A
 	CP	5
 	JP	NC,BAD2A
 	DEC	B
 	PUSH	BC
 	LD	HL,BUFF1
 	LD	DE,BUFF1+1
 	LD	BC,3
 	LD	(HL),20H
 	LDIR
 	POP	BC
 	LD	HL,STRING+1
 	LD	DE,BUFF1
 FIXEXT	LD	A,(HL)
 	LD	(DE),A
 	INC	HL
 	INC	DE
 	DJNZ	FIXEXT
 	LD	IX,BUFFER+200H
 	LD	B,64
 KEXTLP	BIT	4,(IX)
 	CALL	NZ,KEXTT
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	KEXTLP
 	JP	KDONE
 KEXTT	BIT	7,(IX)
 	RET	NZ
 	PUSH	IX
 	POP	HL
 	LD	DE,13
 	ADD	HL,DE
 	LD	DE,BUFF1
 	PUSH	BC
 	LD	BC,3
 	CALL	COMPAR
 	POP	BC
 	RET	NZ
 	PUSH	BC
 	CALL	KILLIT
 	POP	BC
 	RET
 KDONE	LD	A,(FLAG)
 	OR	A
 	JR	NZ,KDOK
 	RST	8
 	DEFB	4
 	DEFM	'No Files Killed !'
 	DEFB	0
 	JP	RETURN
 KDOK	RST	28H
 	LD	(KDH),BC
 	RST	8
 	DEFB	4
 KDH	DEFM	'00 Files to be Killed !'
 	DEFB	0
 	JP	BAD55
 CHFILE	RST	8
 	DEFB	4
 	DEFB	0
 CHFFF	RST	8
 	DEFB	6
 	DEFM	'Filename ? '
 	DEFB	0
 	LD	A,23
 	RST	10H
 	JR	Z,CHFFF
 	CALL	WHFILE
 	JP	NZ,BADFIL
 	JP	C,NOFIND
 	LD	A,(SECTOR)
 	PUSH	AF
 	LD	A,(TRACK)
 	CALL	RDDIR
 	JP	C,RETURN
 	LD	HL,BUFFER
 	POP	AF
 	LD	D,A
 	LD	E,0
 	ADD	HL,DE
 	PUSH	HL
 	POP	IX
 	LD	B,8
 JLP	PUSH	IX
 	POP	HL
 	LD	DE,BUFF2
 	PUSH	BC
 	LD	BC,20H
 	CALL	COMPAR
 	POP	BC
 	JR	Z,JIT
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	JLP
 PERR	RST	8
 	DEFB	4
 	DEFM	'Program Error !'
 	DEFB	0
 	JP	RETURN
 JIT	RST	8
 	DEFB	3
 	DEFB	0
 	CALL	SHOWIT
 	BIT	6,(IX)
 	JR	Z,JIU
 	RST	8
 	DEFB	4
 	DEFM	'System File.'
 	DEFB	0
 JIU	BIT	3,(IX)
 	JR	NZ,YINV
 	RST	8
 	DEFB	4
 	DEFM	'Visible.'
 	DEFB	0
 	JR	YVIS
 YINV	RST	8
 	DEFB	4
 	DEFM	'Invisible.'
 	DEFB	0
 YVIS	LD	A,(IX)
 	AND	7
 	RST	30H
 	LD	A,H
 	LD	(YVV),A
 	RST	8
 	DEFB	4
 	DEFM	'Protection Level '
 YVV	DEFM	'0.'
 	DEFB	0
 YBAD1	RST	8
 	DEFB	4
 	DEFM	'Change Name ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,YBAD1
 	CP	'N'
 	JP	Z,YBAD3
 	CP	'Y'
 	JR	NZ,YBAD1
 YBAD2	RST	8
 	DEFB	4
 	DEFM	'New Name ? '
 	DEFB	0
 	LD	A,12
 	RST	10H
 	JR	Z,YBAD1
 	LD	A,(DRIVE)
 	LD	E,A
 	PUSH	DE
 	CALL	NORMAL
 	POP	DE
 	LD	A,E
 	LD	(DRIVE),A
 	JR	C,YBAD2
 	PUSH	IX
 	POP	HL
 	LD	DE,5
 	ADD	HL,DE
 	EX	DE,HL
 	LD	HL,BUFF1
 	LD	BC,11
 	LDIR
 YBAD3	RST	8
 	DEFB	4
 	DEFM	'Compute Passwords ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,YBAD33
 	CP	'N'
 	JR	Z,YBAD33
 	CP	'Y'
 	JR	NZ,YBAD3
 	RST	8
 	DEFB	4
 	DEFM	'Access Password.'
 	DEFB	0
 	LD	L,(IX+18)
 	LD	H,(IX+19)
 	CALL	DECODE
 	LD	BC,800H
 	CALL	DELAY
 	RST	8
 	DEFB	4
 	DEFM	'Update Password.'
 	DEFB	0
 	LD	L,(IX+16)
 	LD	H,(IX+17)
 	CALL	DECODE
 YBAD33	RST	8
 	DEFB	4
 	DEFM	'Change Passwords ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,YBAD33
 	CP	'N'
 	JP	Z,YLEVEL
 	CP	'Y'
 	JR	NZ,YBAD33
 	RST	8
 	DEFB	4
 	DEFM	'Access Password ? '
 	DEFB	0
 	LD	A,8
 	RST	10H
 	JR	Z,NOACC
 	CALL	CODE
 NOCONY	LD	(IX+18),L
 	LD	(IX+19),H
 	JR	NOCONX
 NOACC	LD	HL,4296H
 	JR	NOCONY
 NOCONX	RST	8
 	DEFB	4
 	DEFM	'Update Password ? '
 	DEFB	0
 	LD	A,8
 	RST	10H
 	JR	Z,GLEVEL
 	CALL	CODE
 NOCONZ	LD	(IX+16),L
 	LD	(IX+17),H
 	JR	YLEVEL
 GLEVEL	LD	HL,4296H
 	JR	NOCONZ
 YLEVEL	RST	8
 	DEFB	4
 	DEFM	'<V>isible or <I>nvisible ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,YLEVEL
 	CP	'V'
 	JR	Z,MVI
 	CP	'I'
 	JR	NZ,YLEVEL
 	SET	3,(IX)
 	JR	MVIC
 MVI	RES	3,(IX)
 MVIC	RST	8
 	DEFB	4
 	DEFM	'7=No access / 6=Execute / 5=Read, Execute'
 	DEFB	4
 	DEFM	'4=Write, Read, Execute / 3=Unused / 2=Rename, Write, Read, Exec'
 	DEFB	4
 	DEFM	'1=Kill, Rename, Write, Read, Exec / 0=No restrictions'
 	DEFB	4
 	DEFB	0
 MVID	RST	8
 	DEFB	4
 	DEFM	'Protection Level ? '
 	DEFB	0
 	LD	A,1
 	RST	10H
 	JR	Z,MVID
 	SUB	30H
 	JR	C,MVID
 	CP	8
 	JR	NC,MVID
 	CP	3
 	JR	Z,MVID
 	LD	B,A
 	LD	A,(IX)
 	AND	0F8H
 	OR	B
 	LD	(IX),A
 NOPEZ	CALL	WRDIR
 	JP	GOHITS
 DSKDIR	CALL	GETDRV
 	CALL	GETDIR
 	JP	C,NONST
 	PUSH	AF
 	CALL	NZ,BADRD
 	JP	C,GOBACK
 	POP	AF
 	CALL	RDDIR
 	JP	C,RETURN
 DIR	RST	8
 	DEFB	3
 	DEFB	0
 	LD	IX,BUFFER+200H
 	LD	HL,3C04H
 	LD	C,16
 DIROLP	LD	B,4
 DIRILP	BIT	4,(IX)
 	INC	HL
 	LD	(CURSOR),HL
 	JP	NZ,ACTIVE
 	DEC	HL
 	LD	(HL),'('
 	INC	HL
 	PUSH	HL
 	CALL	SHOWIT
 	POP	HL
 	JR	Z,SDTC
 	PUSH	HL
 	RST	8
 	DEFM	'            '
 	DEFB	0
 	POP	HL
 SDTC	PUSH	HL
 	LD	DE,12
 	ADD	HL,DE
 	LD	(HL),')'
 	POP	HL
 DDTCON	LD	DE,14
 	ADD	HL,DE
 	LD	DE,20H
 	ADD	IX,DE
 	DJNZ	DIRILP
 	LD	DE,4
 	ADD	HL,DE
 	DEC	C
 	JR	NZ,DIROLP
 	LD	IX,3C00H
 	LD	B,8
 	LD	C,'2'
 LLP	LD	(IX),'S'
 	LD	(IX+1),'='
 	LD	(IX+2),C
 	LD	(IX+64),'S'
 	LD	(IX+65),'='
 	LD	(IX+66),C
 	LD	DE,80H
 	ADD	IX,DE
 	INC	C
 	DJNZ	LLP
 	XOR	A
 	LD	(FLAG),A
 DIRNXT	LD	HL,3FFFH
 	LD	(CURSOR),HL
 	LD	BC,800H
 	CALL	DELAY
 	XOR	A
 	RST	10H
 	LD	A,(FLAG)
 	OR	A
 	JP	Z,USED
 	JP	DIR
 ACTIVE	BIT	7,(IX)
 	JR	NZ,ACTEXT
 	PUSH	HL
 	DEC	HL
 	LD	(HL),133
 	INC	HL
 	CALL	SHOWIT
 	POP	HL
 	PUSH	HL
 	LD	DE,12
 	ADD	HL,DE
 	LD	(HL),138
 	POP	HL
 	JR	DDTCON
 ACTEXT	PUSH	BC
 	PUSH	HL
 	LD	A,(IX+1)
 	AND	7
 	INC	A
 	INC	A
 	RST	28H
 	LD	A,B
 	LD	(EXTS),A
 	LD	A,(IX+1)
 	AND	0E0H
 	RST	30H
 	LD	(EXTB),HL
 	RST	8
 	DEFM	'* S='
 EXTS	DEFM	'0, B='
 EXTB	DEFM	'00H'
 	DEFB	0
 	POP	HL
 	POP	BC
 	JP	DDTCON
 STPASS	DEFM	'        '
 DECODE	PUSH	HL
 	RST	8
 	DEFB	4
 	DEFB	0
 	LD	HL,STPASS
 	LD	DE,DECOD
 	LD	BC,8
 	LDIR
 	POP	DE
 DECDLP	PUSH	DE
 	RST	8
 	DEFB	5
 DECOD	DEFM	'        '
 	DEFB	0
 	LD	HL,DECOD
 	LD	B,8
 	CALL	CODE
 	POP	DE
 	OR	A
 	SBC	HL,DE
 	RET	Z
 	LD	A,(3840H)
 	BIT	2,A
 	JP	NZ,GOBACK
 	BIT	7,A
 	JP	NZ,DECODN
 	LD	A,(DECOD)
 	CP	20H
 	JR	NZ,AYYTT
 	LD	A,'A'
 	JR	AYTTX
 AYYTT	INC	A
 AYTTX	LD	(DECOD),A
 	CP	5BH
 	JR	NZ,DECDLP
 	LD	A,'A'
 	LD	(DECOD),A
 	LD	BC,DECOD+1
 CHRR1	LD	A,(BC)
 	CP	20H
 	JR	Z,CHRR3
 	INC	A
 	LD	(BC),A
 	CP	3AH
 	JR	C,DECDLP
 	CP	5BH
 	JR	NC,CHRR2
 	CP	3AH
 	JR	NZ,DECDLP
 	LD	A,'A'
 	LD	(BC),A
 	JR	DECDLP
 CHRR2	LD	A,'0'
 	LD	(BC),A
 	INC	BC
 	JR	CHRR1
 CHRR3	LD	A,'0'
 	LD	(BC),A
 	JR	DECDLP
 USED	RST	8
 	DEFB	3
 	DEFB	0
 	LD	IX,BUFFER
 	LD	IY,3C00H
 	LD	D,0
 	LD	C,16
 OLOOP	LD	B,6
 	LD	(IY),138
 	LD	(IY+1),20H
 	INC	IY
 	INC	IY
 ILOOP	PUSH	BC
 	LD	A,D
 	RST	28H
 	LD	(IY),C
 	LD	(IY+1),B
 	LD	(IY+2),'/'
 	LD	A,(IX+60H)
 	INC	A
 	JR	NZ,CKFRE
 	LD	(IY+3),'X'
 	LD	(IY+4),'X'
 CKCON	LD	(IY+5),'-'
 	LD	A,(IX+60H)
 	INC	A
 	JR	NZ,CKFRE1
 	LD	(IY+6),'X'
 	LD	(IY+7),'X'
 CKCON1	LD	(IY+8),138
 	LD	(IY+9),20H
 	LD	BC,10
 	ADD	IY,BC
 	INC	D
 	INC	IX
 	POP	BC
 	DJNZ	ILOOP
 	INC	IY
 	INC	IY
 	DEC	C
 	JR	NZ,OLOOP
 	LD	A,1
 	LD	(FLAG),A
 	JP	DIRNXT
 CKFRE	BIT	0,(IX)
 	JR	NZ,CSS1
 	LD	(IY+3),'!'
 	LD	(IY+4),'!'
 	JR	CKCON
 CSS1	LD	(IY+3),'*'
 	LD	(IY+4),'*'
 	JR	CKCON
 CKFRE1	BIT	1,(IX)
 	JR	NZ,CSS2
 	LD	(IY+6),'!'
 	LD	(IY+7),'!'
 	JR	CKCON1
 CSS2	LD	(IY+6),'*'
 	LD	(IY+7),'*'
 	JR	CKCON1
 DECODN	XOR	A
 	RET
 	END	402DH
3),'*'
 	LD	(IY+4),'*'
 	JR	CKCON
 CKFRE1	BIT	1,(IX)
 	JR	NZ,CSS2
 	LD	(IY+6),'!'
