LOADER ;	LOADER4/TXT	L4
 	ORG	0A000H
 TAMPER	EQU	43D3H
 SER1	EQU	4324H
 	JP	ENTRY
 GETTRK	CALL	ADDR
 	LD	A,(INPUT)
 	LD	(TRAK),A
 	CALL	ADDR
 	LD	A,(TRAK)
 	LD	B,A
 	LD	A,(INPUT)
 	LD	(TRAK),A
 	CP	B
 	RET	Z
 	JR	GETTRK
 STEPIN	CALL	SELECT
 	LD	A,5BH
 	LD	(37ECH),A
 	PUSH	AF
 	POP	AF
 	PUSH	AF
 	POP	AF
 STEPWT	CALL	SELECT
 	LD	A,(37ECH)
 	RRCA
 	JR	C,STEPWT
 	RET
 READ	PUSH	DE
 	CALL	GETTRK
 	POP	DE
 	LD	(37EDH),A
 	LD	D,A
 	LD	BC,0A400H
 	CALL	READ1
 	RET	Z
 	LD	BC,0A400H
 READ1	CALL	SELECT
 	LD	(37EEH),DE
 	LD	HL,37ECH
 	LD	(HL),1BH
 	PUSH	AF
 	POP	AF
 	PUSH	AF
 	POP	AF
 SKWT	CALL	SELECT
 	LD	A,(HL)
 	RRCA
 	JR	C,SKWT
 	LD	(HL),8CH
 	PUSH	DE
 	LD	DE,37EFH
 	PUSH	BC
 	POP	BC
 	JR	RDGO
 RDBZ	RRCA
 	JR	NC,RDDN
 RDCK	LD	A,(HL)
 	BIT	1,A
 	JR	Z,RDBZ
 	LD	A,(DE)
 	LD	(BC),A
 	INC	BC
 RDGO	JR	RDCK
 RDDN	LD	A,(HL)
 	AND	1CH
 	POP	DE
 	RET	Z
 	LD	(HL),0D0H
 	RET
 SELECT	LD	A,(37ECH)
 	BIT	7,A
 	LD	A,1
 	LD	(37E1H),A
 	RET	Z
 	PUSH	BC
 	LD	BC,8000H
 	CALL	DELAY
 	POP	BC
 	RET
 ADDR	CALL	SELECT
 	LD	BC,INPUT
 	LD	HL,37ECH
 	LD	(HL),0C4H
 	PUSH	BC
 	POP	BC
 	PUSH	BC
 	POP	BC
 	NOP
 	JR	ADCK
 ADBZ	RRCA
 	JR	NC,ADDN
 ADCK	LD	A,(HL)
 	BIT	1,A
 	JR	Z,ADBZ
 	LD	A,(37EFH)
 	LD	(BC),A
 	INC	BC
 	JR	ADCK
 ADDN	LD	A,(HL)
 	LD	(HL),0D0H
 	RET
 INPUT	DEFS	10H
 TRAK	DEFB	0
 DELAY	DEC	BC
 	LD	A,B
 	OR	C
 	RET	Z
 	JR	DELAY
 CHKSER	LD	HL,4109H
 	LD	BC,0700H
 CKP1	LD	A,(HL)
 	ADD	A,C
 	LD	C,A
 	INC	HL
 	DJNZ	CKP1
 	CP	56
 	RET	NZ
 	LD	HL,CKR1
 	LD	(SER1+1),HL
 	RET
 TEST	LD	A,(INPUT+3)
 	CP	2
 	JP	NZ,TAMPER
 	RET
 ;	LOADER3/TXT	LOADER3/CIM
 SPEED	EQU	4000H
 RESTOR	EQU	44A2H
 NOTIN	EQU	6136H
 BUFFER	EQU	0A200H
 SER2	EQU	4327H
 TAMPER	EQU	43D3H
 WHERE	EQU	4002H
 MODE	EQU	403AH
 DISPLY	EQU	4200H
 ENTRY	DI
 	LD	SP,0A7F0H
 	CALL	STEPIN
 	LD	L,93
 	LD	E,0
 	LD	IX,4300H
 LOADLP	PUSH	HL
 	CALL	READ
 	POP	HL
 	JP	NZ,ERROR
 	CALL	MOVE
 	DEC	L
 	JP	Z,4300H
 	INC	E
 	LD	A,E
 	SUB	5
 	JR	NZ,LOADLP
 	LD	E,A
 	PUSH	DE
 	CALL	STEPIN
 	POP	DE
 	JR	LOADLP
 ERROR	CALL	DISPLY
 	DEFW	0404H
 	DEFM	'Got a bad load that time !'
 	DEFB	0
 	LD	BC,0
 	CALL	DELAY
 	CALL	DELAY
 	CALL	DELAY
 	CALL	DELAY
 	CALL	DELAY
 	HALT
 MOVE	PUSH	HL
 	PUSH	DE
 	LD	HL,0A500H
 	LD	B,0
 MOVELP	LD	A,(HL)
 	LD	(IX),A
 	INC	HL
 	INC	IX
 	DJNZ	MOVELP
 	POP	DE
 	POP	HL
 	RET
 CKR1	LD	A,1
 	LD	(4025H),A
 	CALL	445CH
 	LD	A,3
 	LD	(SPEED),A
 	CALL	44A2H
 	JP	Z,NOTIN
 	LD	DE,2
 	LD	BC,0A400H
 	CALL	4370H
 	RET	NZ
 	LD	HL,0A409H
 	LD	BC,0700H
 CLP1	LD	A,(HL)
 	ADD	A,C
 	LD	C,A
 	INC	HL
 	DJNZ	CLP1
 	CP	56
 	RET	NZ
 	LD	HL,CKR2
 	LD	(SER2+1),HL
 	RET
 CKR2	LD	HL,0A1F9H
 	LD	BC,0700H
 CK4	LD	A,(HL)
 	ADD	A,C
 	LD	C,A
 	INC	HL
 	DJNZ	CK4
 	CP	56
 	JP	NZ,TAMPER
 	LD	A,10
 	LD	(WHERE),A
 	LD	A,1
 	LD	(MODE),A
 	LD	HL,44CAH
 	RET
 	ORG	0A1F9H
 	DEFB	1
 	DEFB	2
 	DEFB	7
 	DEFB	1DH
 	DEFB	0
 	DEFB	0DH
 	DEFB	4
 	END
CP	56
 	JP	NZ,TAMPER
 	LD	A,10
 	LD	(WHERE),A
 	LD	A,1
 	LD	(MODE),A
 	LD	HL,44CAH
 	RET
 	ORG	0A1F9H
 	DEFB	1
 	DEFB	2
 	DEF