U6/TXT ;	U6/TXT	U6/TOO	U6
 	ORG	9A01H
 DSKSLO	EQU	5383H
 DISPLY	EQU	4100H
 DELAY	EQU	41A6H
 TYPE	EQU	4026H
 CURSOR	EQU	4020H
 GOTRK	EQU	5F96H
 TEMP5	EQU	403BH
 TEMP6	EQU	403DH
 GOBACK	EQU	6210H
 COUNT	EQU	4051H
 SAVE	EQU	4047H
 SELECT	EQU	4385H
 FILL	EQU	8EB1H
 FILL1	EQU	8EB7H
 FILLFF	EQU	8EAFH
 BADRD	EQU	4750H
 BADWRT	EQU	556CH
 SMOUNT	EQU	9841H
 DMOUNT	EQU	980BH
 TOPMEM	EQU	402CH
 KEY	EQU	4E4EH
 STEPIN	EQU	48CBH
 RETURN	EQU	61F0H
 ADDR	EQU	4B6BH
 GETTKS	EQU	9732H
 SOURCE	EQU	4043H
 DEST	EQU	4044H
 SECTOR	EQU	4017H
 GETSRC	EQU	96C6H
 DRIVE	EQU	401AH
 TRACKS	EQU	401BH
 TRACK	EQU	4019H
 DRVASC	EQU	43BCH
 NOTIN	EQU	6349H
 RESTOR	EQU	43CAH
 STAT	EQU	4FBEH
 GETDES	EQU	96F8H
 BUFF1	EQU	0A100H
 BUFF2	EQU	0A200H
 BUFFER	EQU	0A300H
 INPUT	EQU	40A6H
 UCOPY	CALL	GETSRC
 	CALL	GETDES
 	LD	A,(SOURCE)
 	LD	B,A
 	LD	A,(DEST)
 	CP	B
 	JR	NZ,SORCON
 	LD	HL,(TOPMEM)
 	LD	A,H
 	OR	L
 	JR	Z,SORCON
 	JP	SORRY
 SORCON	CALL	GETTKS
 	RST	8
 	DEFB	4
 	DEFB	0
 	XOR	A
 	CALL	MOUNT
 	LD	IX,BUFF1
 	XOR	A
 	LD	(TRACK),A
 	LD	A,(SOURCE)
 	LD	(DRIVE),A
 	CALL	DRVASC
 	LD	(MNYDRV),A
 	CALL	RESTOR
 	CALL	STAT
 	CALL	IFWILL
 	RST	8
 	DEFB	6
 	DEFB	0
 	LD	HL,0
 	LD	(INPUT),HL
 	LD	(INPUT+2),HL
 UTLOOP	PUSH	IX
 	POP	IY
 	LD	(IY),0
 	INC	IX
 	LD	A,(TRACK)
 	RST	28H
 	LD	(MNYTRK),BC
 	LD	BC,3030H
 	LD	(MNYSEC),BC
 	CALL	SHOMNY
 USLOOP	LD	A,(3840H)
 	BIT	1,A
 	JR	NZ,USLOOP
 	CALL	KEY
 	JR	Z,USCONT
 	CP	5BH
 	JP	Z,NEXTRK
 USCONT	LD	HL,INPUT
 	LD	DE,INPUT+1
 	LD	BC,6
 	LD	(HL),0
 	LDIR
 	CALL	ADDR
 	LD	HL,INPUT
 	LD	B,6
 COTTL	LD	A,(HL)
 	OR	A
 	JR	NZ,COTTN
 	INC	HL
 	DJNZ	COTTL
 	JP	NEXTRK
 COTTN	LD	A,(3840H)
 	BIT	1,A
 	JR	NZ,COTTN
 	CALL	ADD5
 	CALL	KEY
 	JR	Z,CCOO
 	CP	5BH
 	JP	Z,NEXTRK
 CCOO	CALL	IFANY
 	JR	Z,USLOOP
 NNXX	LD	A,(3840H)
 	BIT	1,A
 	JR	NZ,NNXX
 	CALL	KEY
 	JR	Z,NNXY
 	CP	5BH
 	JP	Z,NEXTRK
 NNXY	LD	A,(INPUT)
 	LD	D,A
 	LD	A,(INPUT+2)
 	LD	E,A
 	LD	BC,BUFFER+1800H
 	LD	A,D
 	LD	(37EDH),A
 	RST	18H
 	JR	NZ,USYYY
 	LD	HL,INPUT
 	LD	B,4
 PUTLP	LD	A,(HL)
 	LD	(IX),A
 	INC	HL
 	INC	IX
 	DJNZ	PUTLP
 	EX	AF,AF'
 	LD	(IX),A
 	INC	IX
 	INC	(IY)
 	CALL	SHOMNY
 	LD	A,(IY)
 	CP	0AH
 	JR	NC,NNCC
 USYYY	LD	A,(COUNT)
 	OR	A
 	JP	Z,USLOOP
 	CALL	IFANYL
 	JP	Z,USLOOP
 	JR	NNXX
 NNCC	LD	A,(3840H)
 	BIT	7,A
 	JP	NZ,USLOOP
 	BIT	1,A
 	JR	NZ,NNCC
 NEXTRK	LD	A,(TRACK)
 	INC	A
 	LD	B,A
 	LD	A,(TRACKS)
 	CP	B
 	JP	Z,GOCOPY
 	CALL	STEPIN
 	JP	UTLOOP
 SHOMNY	LD	A,(IY)
 	RST	28H
 	LD	(MNYSEC),BC
 	LD	A,(INPUT+2)
 	RST	28H
 	LD	(NEWSEC+1),BC
 	LD	(NEWSEC),A
 	LD	A,(INPUT)
 	RST	28H
 	LD	(NEWTRK+1),BC
 	LD	(NEWTRK),A
 	LD	A,(INPUT+1)
 	RST	28H
 	LD	(NEWHED+1),BC
 	LD	(NEWHED),A
 	LD	A,(INPUT+3)
 	RST	28H
 	LD	(NEWLEN+1),BC
 	LD	(NEWLEN),A
 	RST	8
 	DEFB	5
 	DEFM	'Working on Drive '
 MNYDRV	DEFM	'0, Track '
 MNYTRK	DEFM	'00.  Sectors encountered = '
 MNYSEC	DEFM	'00.'
 	DEFB	4
 	DEFM	'New Data:  Track '
 NEWTRK	DEFM	'000, Head '
 NEWHED	DEFM	'000, Sector '
 NEWSEC	DEFM	'000, Length '
 NEWLEN	DEFM	'000.  '
 	DEFB	0
 	LD	HL,(CURSOR)
 	LD	DE,-40H
 	ADD	HL,DE
 	LD	(CURSOR),HL
 	RET
 IFTHER	LD	A,(IY)
 	OR	A
 	JR	NZ,IFCON
 	OR	1
 	RET
 IFCON	LD	C,A
 	PUSH	IY
 	POP	DE
 	INC	DE
 IFLOOP	LD	HL,INPUT
 	LD	B,4
 IFL	LD	A,(DE)
 	CP	(HL)
 	JR	NZ,NEXIF
 	INC	HL
 	INC	DE
 	DJNZ	IFL
 	RET
 NEXIF	INC	DE
 	DJNZ	NEXIF
 	INC	DE
 	DEC	C
 	JR	NZ,IFLOOP
 	OR	1
 	RET
 GOCOPY	RST	8
 	DEFB	4
 	DEFB	6
 	DEFB	0
 	LD	A,1
 	CALL	MOUNT
 	LD	A,(DEST)
 	LD	(DRIVE),A
 	CALL	RESTOR
 	JP	Z,NOTIN
 	XOR	A
 	LD	(TRACK),A
 	LD	IY,BUFF1
 TRKLP	LD	A,(TRACK)
 	RST	28H
 	LD	(WHTRK),BC
 	RST	8
 	DEFB	5
 	DEFM	'Formatting Track '
 WHTRK	DEFM	'00.'
 	DEFB	0
 	PUSH	IY
 	POP	IX
 	INC	IY
 	LD	HL,BUFFER+1800H
 	LD	A,(IX)
 	OR	A
 	JR	Z,ADVTRK
 	LD	B,0EH
 	CALL	FILLFF
 	LD	B,(IX)
 SECLP	PUSH	BC
 	LD	B,6
 	LD	C,0
 	CALL	FILL
 	LD	C,0FEH
 	CALL	FILL1
 	LD	C,(IY)
 	INC	IY
 	CALL	FILL1
 	LD	C,(IY)
 	INC	IY
 	CALL	FILL1
 	LD	C,(IY)
 	INC	IY
 	CALL	FILL1
 	LD	C,(IY)
 	CALL	FILL1
 	LD	C,0F7H
 	CALL	FILL1
 	LD	C,0FFH
 	CALL	FILL1
 	LD	B,0BH
 	CALL	FILLFF
 	LD	B,6
 	LD	C,0
 	CALL	FILL
 	LD	A,(IY+1)
 	AND	3
 	XOR	3
 	OR	0F8H
 	LD	C,A
 	CALL	FILL1
 	CALL	PUTEMP
 	LD	C,0F7H
 	CALL	FILL1
 	LD	B,0BH
 	CALL	FILLFF
 	POP	BC
 	DJNZ	SECLP
 	LD	B,5BH
 	CALL	FILLFF
 	CALL	PUTTRK
 ADVTRK	LD	A,(TRACK)
 	INC	A
 	LD	B,A
 	LD	A,(TRACKS)
 	CP	B
 	JR	Z,MAKCPY
 	CALL	STEPIN
 	JP	TRKLP
 MOUNT	OR	A
 	JR	Z,SMNT
 	CALL	SAMEIF
 	RET	NZ
 	CALL	DMOUNT
 FFFCO	RST	8
 	DEFB	6
 	DEFB	0
 	RET
 SMNT	CALL	SAMEIF
 	RET	NZ
 	CALL	SMOUNT
 	JR	FFFCO
 SAMEIF	LD	A,(SOURCE)
 	LD	B,A
 	LD	A,(DEST)
 	CP	B
 	RET
 MAKCPY	CALL	SAMEIF
 	JP	Z,SNGDRV
 	LD	A,(SOURCE)
 	LD	(DRIVE),A
 	CALL	RESTOR
 	JP	Z,NOTIN
 	CALL	STAT
 	LD	A,(DEST)
 	LD	(DRIVE),A
 	CALL	RESTOR
 	JP	Z,NOTIN
 	CALL	STAT
 	LD	IY,BUFF1
 	XOR	A
 	LD	(TRACK),A
 	RST	8
 	DEFB	4
 	DEFB	0
 TKLP	LD	A,(TRACK)
 	RST	28H
 	LD	(CPTK),BC
 	RST	8
 	DEFB	5
 	DEFM	'Copying Track '
 CPTK	DEFM	'00.'
 	DEFB	0
 	PUSH	IY
 	POP	IX
 	INC	IY
 	LD	A,(IX)
 	OR	A
 	JR	Z,NTK
 	LD	B,A
 SLP	PUSH	BC
 	LD	D,(IY)
 	INC	IY
 	INC	IY
 	LD	E,(IY)
 	INC	IY
 	INC	IY
 	LD	A,D
 	LD	(37EDH),A
 	LD	A,(SOURCE)
 	LD	(DRIVE),A
 	LD	BC,BUFFER+1800H
 	RST	18H
 	JR	Z,RDGO1
 	CALL	BADRD
 	RST	8
 	DEFW	0404H
 	DEFB	0
 RDGO1	LD	A,(DEST)
 	LD	(DRIVE),A
 	LD	BC,BUFFER+1800H
 	EX	AF,AF'
 	RST	20H
 	JR	Z,WRGO1
 	CALL	BADWRT
 	RST	8
 	DEFW	0404H
 	DEFB	0
 WRGO1	INC	IY
 	POP	BC
 	DJNZ	SLP
 NTK	LD	A,(TRACK)
 	INC	A
 	LD	B,A
 	LD	A,(TRACKS)
 	CP	B
 	JP	Z,ALLDON
 	LD	A,(DEST)
 	LD	(DRIVE),A
 	CALL	STEPIN
 	LD	A,(SOURCE)
 	LD	(DRIVE),A
 	CALL	STEPIN
 	LD	A,(TRACK)
 	DEC	A
 	LD	(TRACK),A
 	JP	TKLP
 PUTEMP	LD	A,(IY)
 	INC	IY
 	BIT	3,(IY)
 	INC	IY
 	JR	Z,NONIBM
 	OR	A
 	LD	BC,128
 	JR	Z,GOTIT
 	CALL	BY256
 	JR	GOTIT
 NONIBM	OR	A
 	LD	BC,8
 	JR	Z,GOTIT
 	CALL	BY16
 GOTIT	LD	(HL),0
 	DEC	BC
 	LD	A,B
 	OR	C
 	INC	HL
 	JR	NZ,GOTIT
 	RET
 BY256	LD	DE,256
 	JR	MULT
 BY16	LD	DE,16
 MULT	LD	B,A
 	PUSH	HL
 	LD	HL,0
 MLOOP	SRL	B
 	JR	NC,MCONT
 	ADD	HL,DE
 MCONT	JR	Z,MDONE
 	EX	DE,HL
 	ADD	HL,HL
 	EX	DE,HL
 	JR	MLOOP
 MDONE	LD	B,H
 	LD	C,L
 	POP	HL
 	RET
 PUTTRK	CALL	TRKPUT
 	RET	Z
 TRKPUT	CALL	SELECT
 	LD	BC,BUFFER+1800H
 	LD	HL,37ECH
 	LD	(HL),0F4H
 	LD	DE,37EFH
 	CALL	DSKSLO
 	JR	WRBZZ
 BZWRZ	RRCA
 	JR	NC,WRDNZ
 WRBZZ	LD	A,(HL)
 	BIT	1,A
 	JR	Z,BZWRZ
 	LD	A,(BC)
 	LD	(DE),A
 	INC	BC
 	JR	WRBZZ
 WRDNZ	LD	A,(HL)
 	LD	(HL),0D0H
 	LD	HL,ERMSG2
 	BIT	2,A
 	JP	NZ,BADONE
 	LD	HL,0-BUFFER-1800H
 	ADD	HL,BC
 	EX	DE,HL
 	LD	HL,0F413H
 	ADD	HL,DE
 	LD	HL,ERMSG3
 	JP	NC,BADONE
 	LD	HL,0F397H
 	ADD	HL,DE
 	LD	HL,ERMSG4
 	JP	C,BADONE
 	RET
 ERMSG2	DEFB	4
 	DEFM	'Transfer TOO FAST !'
 	DEFB	0
 	JR	STOPIN
 ERMSG3	DEFB	4
 	DEFM	'Motor TOO SLOW !'
 	DEFB	0
 	JR	STOPIN
 ERMSG4	DEFB	4
 	DEFM	'Motor TOO FAST !'
 	DEFB	0
 STOPIN	RST	8
 	DEFB	4
 	DEFM	'Cannot continue !'
 	DEFB	0
 	JP	RETURN
 BADONE	PUSH	HL
 	JP	DISPLY
 ADD5	LD	DE,BUFFER+1600H
 	XOR	A
 	LD	(COUNT),A
 ADD5L	PUSH	DE
 	CALL	ADDR
 	POP	DE
 	LD	HL,INPUT
 	LD	BC,4
 	LDIR
 	LD	A,(COUNT)
 	INC	A
 	LD	(COUNT),A
 	LD	A,(3840H)
 	BIT	3,A
 	RET	NZ
 	LD	A,(COUNT)
 	CP	21
 	JR	C,ADD5L
 	RET
 IFANY	LD	HL,BUFFER+1600H
 	LD	(SAVE),HL
 IFANYL	LD	HL,(SAVE)
 	LD	DE,INPUT
 	LD	BC,4
 	LDIR
 	LD	(SAVE),HL
 	LD	A,(COUNT)
 	DEC	A
 	LD	(COUNT),A
 	CALL	IFTHER
 	RET	NZ
 	LD	A,(COUNT)
 	OR	A
 	JR	NZ,IFANYL
 	RET
 ALLDON	RST	8
 	DEFB	4
 	DEFB	0
 CPYDON	RST	8
 	DEFB	6
 	DEFM	'Make another copy ? '
 	DEFB	0
 	LD	A,3
 	RST	10H
 	JR	Z,CPYDON
 	CP	'N'
 	JP	Z,GOBACK
 	CP	'Y'
 	JR	NZ,CPYDON
 	RST	8
 	DEFB	4
 	DEFM	'Press <ENTER> when Disks are mounted. '
 	DEFB	0
 	XOR	A
 	RST	10H
 	JP	GOCOPY
 SNGDRV	LD	IY,BUFF1
 	XOR	A
 	LD	(TRACK),A
 	LD	(TEMP6),A
 	RST	8
 	DEFB	04H
 	DEFB	0
 SNGRD	PUSH	IY
 	POP	IX
 	XOR	A
 	LD	(COUNT),A
 	LD	A,(TEMP6)
 	LD	(TRACK),A
 	LD	(TEMP5),A
 	XOR	A
 	CALL	MOUNT
 	LD	A,(TRACK)
 	CALL	GOTRK
 	LD	BC,BUFFER+1800H
 SRDLP	LD	A,(TRACK)
 	PUSH	BC
 	RST	28H
 	LD	(RDTK),BC
 	RST	8
 	DEFB	6
 	DEFM	'Reading Track '
 RDTK	DEFM	'00.'
 	DEFB	0
 	POP	BC
 	LD	A,(IY)
 	LD	(SAVE),A
 	INC	IY
 SSLP	LD	D,(IY)
 	INC	IY
 	INC	IY
 	LD	E,(IY)
 	INC	IY
 	INC	IY
 	INC	IY
 	LD	A,D
 	LD	(37EDH),A
 	RST	18H
 	CALL	NZ,BADRD
 	LD	A,(SAVE)
 	DEC	A
 	LD	(SAVE),A
 	JR	NZ,SSLP
 	CALL	STEPIN
 	LD	A,(TRACK)
 	LD	E,A
 	LD	A,(TRACKS)
 	CP	E
 	JR	Z,SWRT
 	LD	A,(COUNT)
 	INC	A
 	LD	(COUNT),A
 	CP	5
 	JR	C,SRDLP
 	LD	A,(TRACK)
 	LD	(TEMP6),A
 SWRT	LD	A,1
 	CALL	MOUNT
 	LD	A,(TEMP5)
 	CALL	GOTRK
 	LD	BC,BUFFER+1800H
 	XOR	A
 	LD	(COUNT),A
 SWDLP	LD	A,(IX)
 	LD	(SAVE),A
 	INC	IX
 	LD	A,(TRACK)
 	PUSH	BC
 	RST	28H
 	LD	(WTK),BC
 	RST	8
 	DEFB	6
 	DEFM	'Writing Track '
 WTK	DEFM	'00.'
 	DEFB	0
 	POP	BC
 SWLP	LD	D,(IX)
 	INC	IX
 	INC	IX
 	LD	E,(IX)
 	INC	IX
 	INC	IX
 	LD	A,D
 	LD	(37EDH),A
 	LD	A,(IX)
 	INC	IX
 	RST	20H
 	CALL	NZ,BADWRT
 	LD	A,(SAVE)
 	DEC	A
 	LD	(SAVE),A
 	JR	NZ,SWLP
 	CALL	STEPIN
 	LD	A,(TRACK)
 	LD	E,A
 	LD	A,(TRACKS)
 	CP	E
 	JP	Z,ALLDON
 	LD	A,(COUNT)
 	INC	A
 	LD	(COUNT),A
 	CP	5
 	JR	C,SWDLP
 	JP	SNGRD
 IFWILL	CALL	ADDR
 	LD	A,(INPUT+3)
 	CP	2
 	JR	Z,CHK1
 	CALL	ADDR
 	LD	A,(INPUT+3)
 	CP	2
 	RET	NZ
 CHK1	CALL	ADDR
 	LD	A,(INPUT+3)
 	CP	2
 	RET	NZ
 	LD	BC,BUFFER
 	LD	DE,2
 	RST	18H
 	RET	NZ
 	LD	HL,BUFFER+9
 	LD	BC,0700H
 CHK2	LD	A,(HL)
 	ADD	A,C
 	LD	C,A
 	INC	HL
 	DJNZ	CHK2
 	CP	56
 	JR	Z,WONT
 	LD	BC,BUFFER
 	LD	DE,4
 	RST	18H
 	RET	NZ
 	LD	HL,BUFFER+1F9H
 	LD	BC,0700H
 CHK3	LD	A,(HL)
 	ADD	A,C
 	LD	C,A
 	INC	HL
 	DJNZ	CHK3
 	CP	56
 	RET	NZ
 WONT	RST	8
 	DEFW	0404H
 	DEFM	'Sorry.  I won'
 	DEFB	27H
 	DEFM	't copy THAT disk !'
 	DEFB	0
 	JP	RETURN
 SORRY	RST	8
 	DEFW	0404H
 	DEFM	'Sorry.  You need either 48K or 2 disk drives for special copy !'
 	DEFB	0
 	JP	RETURN
 	END	402DH
rry.  I won'
 	DEFB	27H
 	DEFM	't copy THAT disk !'
 	DEFB