SUCOPY ;	SUCOPY80/TXT	SUCOPY80/CMD
 	ORG	7000H
 DRIVE	DEFB	0
 TRACK	DEFW	0
 TRAK	DEFW	0
 INPUT	DEFS	10
 ENTRY	DI
 	LD	SP,6F00H
 	CALL	PRINT
 	DEFW	1F1CH
 	DEFM	'PRESS ENTER TO BEGIN COPY.'
 	DEFB	0
 	LD	HL,INPUT
 	LD	B,1
 	CALL	40H
 	CALL	PRINT
 	DEFW	0D0DH
 	DEFM	'BEGINNING COPY.'
 	DEFB	0
 	LD	A,1
 	LD	(DRIVE),A
 	CALL	RESTOR
 	LD	A,4
 	LD	(DRIVE),A
 	CALL	RESTOR
 	LD	DE,0
 	LD	(TRACK),DE
 	CALL	ADDR
 	LD	D,A
 	LD	E,0
 	LD	(TRAK),DE
 COPY	LD	A,1
 	LD	(DRIVE),A
 	LD	A,(3840H)
 	BIT	2,A
 	JP	NZ,ENTRY
 	LD	DE,(TRACK)
 	CALL	READ
 	JR	NZ,COPY
 	INC	E
 	LD	A,E
 	SUB	5
 	JR	NZ,RDOK
 	LD	E,A
 	INC	D
 	CALL	STEPIN
 RDOK	LD	(TRACK),DE
 	LD	A,4
 	LD	(DRIVE),A
 BADWR	LD	DE,(TRAK)
 	LD	A,(3840H)
 	BIT	2,A
 	JP	NZ,ENTRY
 	CALL	WRITE
 	JR	NZ,BADWR
 	INC	E
 	LD	A,E
 	SUB	5
 	JR	NZ,WRCON
 	CALL	STEPIN
 	CALL	ADDR
 	LD	D,A
 	LD	E,0
 WRCON	LD	(TRAK),DE
 	LD	A,(TRACK+1)
 	CP	22
 	JP	Z,ENTRY
 	JP	COPY
 SELECT	LD	A,(37ECH)
 	BIT	7,A
 	LD	A,(DRIVE)
 	LD	(37E1H),A
 	RET	Z
 	PUSH	BC
 	LD	BC,8000H
 	CALL	60H
 	POP	BC
 	RET
 ADDR	CALL	SELECT
 	LD	HL,37ECH
 	LD	(HL),0C4H
 	PUSH	BC
 	POP	BC
 	PUSH	BC
 	POP	BC
 	LD	BC,5000H
 	JR	ADDCK
 ADDWT	RRCA
 	JR	NC,ADDDN
 ADDCK	LD	A,(HL)
 	BIT	1,A
 	JR	Z,ADDWT
 	LD	A,(37EFH)
 	LD	(BC),A
 	INC	BC
 	JR	ADDCK
 ADDDN	LD	A,(HL)
 	LD	(HL),0D0H
 	LD	A,(5000H)
 	RET
 READ	CALL	SELECT
 	LD	A,D
 	LD	(37EDH),A
 	LD	(37EEH),DE
 	LD	BC,5200H
 	LD	HL,37ECH
 	LD	(HL),88H
 	CALL	DSKSLO
 	JR	RDCO
 RDCK	RRCA
 	JR	NC,RDDN
 RDBZ	LD	A,(HL)
 	BIT	1,A
 	JR	Z,RDCK
 	LD	A,(37EFH)
 	LD	(BC),A
 	INC	BC
 RDCO	JR	RDBZ
 RDDN	LD	A,(HL)
 	AND	1CH
 	RET	Z
 	LD	(HL),0D0H
 	RET
 WRITE	CALL	SELECT
 	LD	A,D
 	LD	(37EDH),A
 	LD	(37EEH),DE
 	LD	BC,5200H
 	LD	HL,37ECH
 	LD	(HL),0ABH
 	CALL	DSKSLO
 	JR	WRCO
 WRCK	RRCA
 	JR	NC,WRDN
 WRBZ	LD	A,(HL)
 	BIT	1,A
 	JR	Z,WRCK
 	LD	A,(BC)
 	LD	(37EFH),A
 	INC	BC
 WRCO	JR	WRBZ
 WRDN	LD	A,(HL)
 	AND	7CH
 	RET	Z
 	LD	(HL),0D0H
 	RET
 STEPIN	CALL	SELECT
 	LD	A,58H
 GOREST	LD	(37ECH),A
 	CALL	DSKSLO
 STEPWT	CALL	SELECT
 	LD	A,(37ECH)
 	RRCA
 	JR	C,STEPWT
 	RET
 DSKSLO	EX	(SP),HL
 	EX	(SP),HL
 	EX	(SP),HL
 	EX	(SP),HL
 	RET
 PRINT	POP	HL
 PRLP	LD	A,(HL)
 	INC	HL
 	OR	A
 	JR	Z,PRDN
 	CALL	33H
 	JR	PRLP
 PRDN	JP	(HL)
 RESTOR	CALL	SELECT
 	LD	A,08H
 	JP	GOREST
 	END	ENTRY
 	EX	(SP),HL
 	EX	(SP),HL
 	RET
 PRINT	POP	HL
 PRLP	LD	A,(HL)
 	INC	HL
 	OR	A
 	JR	Z,PRDN
 	CALL	33H
 	JR	PRLP
 PRDN	JP	(HL)
 RESTOR	CALL	SELECT
 	LD	A,08H
 	JP	GOREST
 	END	E