Source file: /~heha/hs/kcemu/kcswberg.zip/DISK/ROM20.ASM

ROM20ASM;
PV1	EQU 0F003H
	;
	ORG 0F000H
	;
	NOP
	NOP
	NOP
	NOP
U9004	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	JP	UE003
	;
	LD	HL,0F521H
	LD	DE,0
	LD	BC,66H
	LDIR
	LD	HL,0F587H
	LD	E,69H
	LD	BC,0B5H
	LD	A,(0B781H)
	CP	2
	JR	C,U9032
	LD	BC,6CH
U9032	LDIR
	JP	U00C7
	;
	CP	0FFH
	JR	Z,U904C
	LD	HL,0F47AH
	LD	DE,0BC00H
	LD	BC,100H
	LDIR
	LD	(0BC01H),A
	JP	UBC09
	;
U904C	LD	HL,0F249H
	LD	BC,17H
	LD	DE,0
	LDIR
	JP	U0000
	;
	EI
	CALL	PV1
	DEFB	23H
	DEFM	'Version 2.0 (02/01/8'
	DEFM	'9)'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
	LD	BC,0F4H
	LD	A,2
	OUT	(C),A
	LD	A,0
	OUT	(C),A
	LD	C,0F0H
U9085	LD	B,0
	XOR	A
U9088	OUT	(C),A
	DJNZ	U9088
	INC	C
	LD	A,0F4H
	CP	C
	JR	NZ,U9085
	LD	C,0F0H
U9094	LD	B,0
U9096	LD	A,1
U9098	OUT	(C),A
	IN	E,(C)
	CP	E
	JR	NZ,U90DD
	CPL
	OUT	(C),A
	IN	E,(C)
	CP	E
	JR	NZ,U90DD
	CPL
	RLCA
	CP	1
	JR	NZ,U9098
	PUSH	BC
U90AE	INC	B
	JR	Z,U90B2
	INC	C
U90B2	LD	A,0F4H
	CP	C
	JR	Z,U90BE
	IN	A,(C)
	AND	A
	JR	NZ,U90F9
	JR	U90AE
	;
U90BE	POP	BC
	XOR	A
	OUT	(C),A
	INC	B
	JR	NZ,U9096
	INC	C
	LD	A,C
	CP	0F4H
	JR	NZ,U9094
	CALL	PV1
	DEFB	23H
	DEFM	'RAM O.K.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
	JP	UD104
	;
U90DD	CALL	PV1
	DEFB	1CH
	CALL	PV1
	DEFB	2BH
	LD	A,E
	CALL	PV1
	DEFB	1CH
	CALL	PV1
	DEFB	2BH
	PUSH	BC
	POP	HL
	CALL	PV1
	DEFB	1AH
	CALL	PV1
	DEFB	2CH
	RET
	;
U90F9	PUSH	BC
	POP	DE
	POP	HL
	CALL	PV1
	DEFB	1BH
	CALL	PV1
	DEFB	2CH
	LD	HL,0C000H
	LD	BC,1FFEH
	LD	DE,0FFFFH
U910D	LD	A,M
	XOR	D
	LD	D,A
	RRCA
	RRCA
	RRCA
	RRCA
	AND	0FH
	XOR	D
	LD	D,A
	RRCA
	RRCA
	RRCA
	PUSH	AF
	AND	1FH
	XOR	E
	LD	E,A
	POP	AF
	PUSH	AF
	RRCA
	AND	0F0H
	XOR	E
	LD	E,A
	POP	AF
	AND	0E0H
	XOR	D
	LD	D,E
	LD	E,A
	INC	HL
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,U910D
	LD	HL,(0DFFEH)
	LD	A,L
	CP	E
	JR	NZ,U914F
	LD	A,H
	CP	D
	JR	NZ,U914F
	CALL	PV1
	DEFB	23H
	DEFM	'ROM O.K.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
	JR	U9161
	;
U914F	CALL	PV1
	DEFB	23H
	DEFM	'ROM-FEHLER'
	DEFB	0DH
	DEFB	0AH
	DEFB	7
	DEFB	0
U9161	LD	HL,0D221H
	LD	E,28H
	LD	BC,1F0H
U9169	OUTI
	INC	B
	INC	B
	DEC	E
	JR	NZ,U9169
	LD	A,1
	OUT	0F4H,A
	LD	BC,0F0H
	LD	DE,0
U917A	IN	A,(C)
	CP	0FEH
	JR	Z,U91AC
	DEC	DE
	LD	A,E
	OR	D
	JR	NZ,U917A
	CALL	PV1
	DEFB	23H
	DEFM	'FEHLER IM KOPPEL-RAM'
	DEFM	' PROGRAMM'
	DEFB	7
	DEFB	0DH
	DEFB	0AH
	DEFB	0
	JR	U9213
	;
U91AC	CALL	PV1
	DEFB	23H
	DEFM	'KOPPEL-RAM PROGRAMM '
	DEFM	'O.K.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
	LD	DE,0
	LD	BC,1F0H
U91D1	IN	A,(C)
	CP	99H
	JR	Z,U91FA
	DEC	DE
	LD	A,D
	OR	E
	JR	NZ,U91D1
	CALL	PV1
	DEFB	23H
	DEFM	'DRAM PROGRAMM FEHLER'
	DEFB	0DH
	DEFB	0AH
	DEFB	7
	DEFB	0
	JR	U9213
	;
U91FA	CALL	PV1
	DEFB	23H
	DEFM	'dRAM PROGRAMM O.K.'
	DEFB	0DH
	DEFB	0AH
	DEFB	0
U9213	LD	BC,0F4H
	LD	A,2
	OUT	(C),A
	LD	A,0
	OUT	(C),A
	JP	U0010
	;
	NOP
	NOP
U9223	LD	HL,0FC00H
	LD	A,M
	INC	A
	LD	M,A
	CP	0FEH
	JR	NZ,U9223
	LD	HL,0FC1AH
	LD	DE,0
	LD	BC,10H
	LDIR
	JP	U0001
	;
	NOP
	LD	HL,0
U923F	INC	M
	LD	A,M
	LD	(0FC01H),A
	CP	99H
	JR	NZ,U923F
	HALT
	LD	BC,0FC80H
	LD	A,7
	OUT	(C),A
	IN	A,88H
	SET	0,A
	OUT	88H,A
	JP	UD05A
	;
	IN	A,88H
	SET	7,A
	OUT	88H,A
	RET
	;
	LD	SP,8000H
	CALL	UFC5F
	LD	B,0CH
U9268	PUSH	BC
	CALL	UFC7C
	JR	NZ,U929F
	LD	HL,9000H
	LD	BC,200H
	CALL	UFCD8
	POP	BC
	JR	NZ,U92A8
	LD	HL,(9000H)
	LD	DE,5953H
	AND	A
	SBC	HL,DE
	JR	NZ,U9296
	LD	A,(9002H)
	CP	53H
	LD	A,5
	JR	NZ,U9290
	LD	A,1
U9290	LD	(0FFB3H),A
	JP	09004H
	;
U9296	LD	A,4
U9298	LD	(0FFB3H),A
	XOR	A
	OUT	0F6H,A
	HALT
U929F	POP	BC
	LD	A,2
M92A2:	JR	U9298
	;
M92A4:	DEFB 01AH	;LD A,(DE)
	DEFB 0FDH	;ignoriert
	DEFB 00AH	;LD A,(BC)
	LD	IY,(0FC44H)
	LD	DE,(0FC46H)
	LD	(0FCBBH),HL
	LD	(0FC44H),DE
	LD	(0FC46H),HL
	DJNZ	U9268
	LD	A,3
	JR	U9298
	;
U92BF	LD	B,0
U92C1	DJNZ	U92C1
	IN	A,0F0H
	CP	80H
	JR	Z,U92D4
	AND	0FH
	CALL	NZ,UFC96
	IN	A,0F1H
	JR	U92BF
	;
	SBC	A
	INC	D
U92D4	LD	HL,0FC72H
	LD	BC,303H
	JR	U931D
	;
	LD	A,21H
	OUT	0F6H,A
	LD	BC,0
U92E3	IN	A,0F4H
	BIT	5,A
	JR	NZ,U92F0
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,U92E3
	INC	A
	RET
	;
U92F0	LD	BC,207H
	CALL	UFCBA
	IN	A,0F0H
	AND	1FH
	RET	Z
U92FB	IN	A,0F4H
	BIT	6,A
	JR	NZ,U92FB
	LD	BC,108H
	CALL	UFCBD
	CALL	UFCCD
	LD	B,A
	ADD	A
	RET	Z
	CALL	UFCCD
	LD	A,B
	AND	0F0H
	CP	0C0H
	JR	Z,U92FB
	XOR	20H
	RET
	;
	LD	HL,0FD1AH
U931D	IN	A,0F0H
	AND	0C0H
	CP	80H
	JR	NZ,U931D
	LD	A,C
	OUT	0F1H,A
	LD	C,M
	INC	HL
	DJNZ	U931D
	RET
	;
U932D	IN	A,0F0H
	AND	0C0H
	CP	0C0H
	JR	NZ,U932D
	IN	A,0F1H
	RET
	;
	PUSH	BC
	PUSH	HL
	LD	BC,946H
	CALL	UFCBA
	POP	HL
	POP	DE
	LD	B,E
	LD	C,0F2H
	CALL	UFCFA
	LD	B,7
	LD	HL,0FD22H
U934D	CALL	UFCCD
	LD	M,A
	INC	HL
	DJNZ	U934D
	LD	A,(0FD22H)
	AND	0C0H
	RET
	;
U935A	IN	A,0F4H
	ADD	A
	RET	P
	JR	C,U935A
	;
	INI
	JR	NZ,U935A
	DEC	D
	JR	NZ,U935A
	OUT	0F8H,A
	RET
	;
	NOP
	NOP
	NOP
	LD	BC,1001H
	LD	C,0FFH
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	LD	BC,503H
	LD	C,0FFH
	LD	B,A
	IN	A,88H
	SET	0,A
	OUT	88H,A
	EI
	LD	A,B
	CP	2
	JR	NZ,U93A1
	CALL	PV1
	DEFB	23H
	DEFM	'Not ready  '
	DEFB	0
	JR	U93D1
	;
U93A1	CP	3
	JR	NZ,U93B8
	CALL	PV1
	DEFB	23H
	DEFM	'Cannot read '
	DEFB	0
	JR	U93D1
	;
U93B8	CP	4
	JR	NZ,U93CD
	CALL	PV1
	DEFB	23H
	DEFM	'No System '
	DEFB	0
	JR	U93D1
	;
U93CD	CALL	PV1
	DEFB	1CH
U93D1	CALL	PV1
	DEFB	19H
	RET
	;
	JR	U93E3
	;
	JR	U940B
	;
	LD	B,A
	LD	L,18H
	INC	B
	LD	B,H
	INC	BC
	JR	NZ,U93E7
	LD	L,D
U93E3	LD	BC,880H
U93E6	IN	A,(C)
	CP	0EEH
	JR	Z,U93F0
	INC	B
	JR	NZ,U93E6
	RET
	;
U93F0	LD	L,B
	LD	A,2
	LD	D,1
	LD	E,D
	CALL	PV1
	DEFB	26H
	LD	C,0CH
	LD	B,2
	LD	HL,204H
	DI
	OTIR
	LD	C,0AH
	LD	B,7
	OTIR
	RET
	;
U940B	PUSH	AF
U940C	IN	A,0AH
	BIT	2,A
	JR	Z,U940C
	POP	AF
	OUT	8,A
	RET
	;
	JR	U9425
	;
	JR	U9435
	;
	JR	U944C
	;
	LD	B,A
	LD	L,18H
	INC	B
	LD	B,H
	INC	BC
	POP	HL
	DEC	B
	LD	L,D
U9425	LD	C,0DH
	LD	B,2
	LD	HL,386H
	OTIR
	LD	C,0BH
	LD	B,7
	OTIR
	RET
	;
U9435	PUSH	AF
U9436	IN	A,0BH
	BIT	2,A
	JR	Z,U9440
	POP	AF
U943D	OUT	9,A
	RET
	;
U9440	LD	A,(IX+0DH)
	CP	3
	JR	NZ,U9436
	POP	AF
	LD	A,1AH
	JR	U943D
	;
U944C	IN	A,0BH
	BIT	0,A
	JR	NZ,U9460
	LD	A,5
	OUT	0BH,A
	LD	A,0EAH
	OUT	0BH,A
U945A	IN	A,0BH
	BIT	0,A
	JR	Z,U9464
U9460	IN	A,9
	JR	U946F
	;
U9464	LD	A,(IX+0DH)
	AND	0EFH
	CP	3
	JR	NZ,U945A
	LD	A,1AH
U946F	PUSH	AF
	LD	A,5
	OUT	0BH,A
	LD	A,6AH
	OUT	0BH,A
	POP	AF
	RET
	;
	LD	B,A
	NOP
	JR	U9482
	;
	LD	B,H
	INC	BC
	POP	BC
	DEC	B
U9482	LD	L,D
	EI
	IN	A,88H
	SET	0,A
	OUT	88H,A
	LD	BC,880H
U948D	IN	A,(C)
	CP	0EEH
	JR	Z,U949B
	INC	B
	JR	NZ,U948D
	CALL	PV1
	DEFB	19H
	RET
	;
U949B	LD	A,2
	LD	L,B
	LD	D,1
	LD	E,D
	CALL	PV1
	DEFB	26H
	IN	A,9
	IN	A,9
	IN	A,9
	IN	A,9
	LD	HL,0BC00H
	LD	BC,20DH
	OTIR
	LD	BC,70BH
	OTIR
	LD	HL,0BC77H
	LD	(0B7C1H),HL
	LD	HL,0BC8EH
	LD	(0B7C4H),HL
	CALL	UBC8E
	RET	C
	LD	L,A
	CALL	UBC8E
	RET	C
	LD	H,A
	CALL	UBC8E
	RET	C
	LD	C,A
	CALL	UBC8E
	RET	C
	LD	B,A
	CALL	UBC8E
	RET	C
	LD	E,A
	CALL	UBC8E
	RET	C
	LD	D,A
	PUSH	DE
U94E5	CALL	UBC8E
	RET	C
	LD	M,A
	INC	HL
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,U94E5
	RET
	;
	PUSH	AF
U94F2	IN	A,0BH
	BIT	2,A
	JR	NZ,U94FC
	POP	AF
U94F9	OUT	9,A
	RET
	;
U94FC	LD	A,(IX+0DH)
	CP	3
	JR	NZ,U94F2
	POP	AF
	LD	A,1AH
	JR	U94F9
	;
	IN	A,0BH
	BIT	0,A
	JR	NZ,U9514
U950E	IN	A,0BH
	BIT	0,A
	JR	Z,U9518
U9514	IN	A,9
	AND	A
	RET
	;
U9518	LD	A,(IX+0DH)
	CP	3
	JR	NZ,U950E
	SCF
	RET
	;
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	CALL	UF018
	LD	HL,0
	CALL	UF00F
	RRA
	NOP
	CALL	UF01B
	RET
	;
	DEFW	7F7FH
	DEFM	'FLOAD'
	DEFB	1
	CALL	PV1
	DEFB	23H
	DEFM	'NAME :'
	DEFB	0
	CALL	PV1
	DEFB	17H
	LD	HL,6
	ADD	HL,DE
	EX	(SP),HL
	LD	(0B797H),HL
	EX	(SP),HL
	LD	E,0CH
	LD	BC,82F3H
U9561	LD	A,M
	OUT	(C),A
	INC	HL
	INC	B
	DEC	E
	JR	NZ,U9561
	LD	A,9
	LD	B,80H
	OUT	(C),A
U956F	IN	A,(C)
	RRCA
	JR	C,U956F
	BIT	6,A
	JR	NZ,U95C9
	LD	BC,90F2H
	IN	A,(C)
	CP	2
	JR	C,U95D0
	CP	0AH
	JR	NC,U95D0
	JR	U958A
	;
	INC	B
	IN	L,(C)
U958A	INC	B
	IN	H,(C)
	INC	B
	IN	E,(C)
	INC	B
	IN	D,(C)
	CP	3
	JR	C,U959F
	PUSH	HL
	INC	B
	IN	L,(C)
	INC	B
	IN	H,(C)
	EX	(SP),HL
U959F	PUSH	AF
	LD	A,(0B781H)
	AND	A
	JR	Z,U95B5
	LD	BC,(0B782H)
	ADD	HL,BC
	POP	AF
	JR	C,U95B1
	EX	(SP),HL
	ADD	HL,BC
	EX	(SP),HL
U95B1	EX	DE,HL
	ADD	HL,BC
	EX	DE,HL
	PUSH	AF
U95B5	POP	AF
U95B6	LD	A,1
	LD	BC,80F3H
	OUT	(C),A
U95BD	IN	A,(C)
	RRCA
	JR	C,U95BD
	BIT	6,A
	JR	Z,U95D5
	INC	B
	IN	A,(C)
U95C9	CALL	PV1
	DEFB	1CH
	CALL	PV1
U95D0	DEFB	19H
	LD	HL,(0B797H)
	JP	(HL)
	;
U95D5	DEC	C
U95D6	INI
	INC	B
	INC	B
	PUSH	HL
	SBC	HL,DE
	POP	HL
	RET	NC
	LD	A,B
	AND	A
	JR	NZ,U95D6
	JR	U95B6
	;
	IN	A,88H
	OR	1
	OUT	88H,A
	LD	A,(0B781H)
	CP	2
	JP	NC,UE000
	LD	A,(0E011H)
	CP	7FH
	JR	Z,U9600
	IN	A,88H
	OR	80H
	OUT	88H,A
U9600	LD	L,46H
U9602	LD	BC,80F3H
	IN	A,(C)
	CP	48H
	JR	Z,U961B
	CP	0C8H
	JR	Z,U9618
	LD	A,11H
	CALL	PV1
	DEFB	14H
	DEC	L
	JR	NZ,U9602
U9618	JP	UE000
	;
U961B	LD	HL,0B700H
	LD	BC,80F2H
U9621	IN	A,(C)
	LD	M,A
	INC	L
	INC	B
	JR	NZ,U9621
	LD	L,B
	LD	(0B7D1H),HL
	SET	6,(IX+8)
	CALL	PV1
	DEFB	23H
	DEFB	0CH
	DEFB	0DH
U9636	DEFB	0AH
	DEFB	0
	CALL	PV1
	DEFB	12H
	LD	A,C
U963D	IN	A,(C)
	RRCA
	JR	C,U963D
	BIT	6,A
	JR	Z,U9655
	INC	B
	IN	A,(C)
	CALL	PV1
	DEFB	1CH
	CALL	PV1
	DEFB	19H
	LD	HL,(0B797H)
	JP	(HL)
	;
U9655	DEC	C
U9656	INI
	INC	B
	INC	B
	PUSH	HL
	SBC	HL,DE
	POP	HL
	RET	NC
	LD	A,B
	AND	A
	JR	NZ,U9656
	JR	U9636
	;
	IN	A,88H
	OR	1
	OUT	88H,A
	LD	A,(0B781H)
	CP	2
	JP	NC,UE000
	;
	LD	A,(0E011H)
	CP	7FH
	JR	Z,U9680
	IN	A,88H
	OR	80H
	OUT	88H,A
U9680:	RST	38H
	;
	;
	;
	;
U0000	EQU	00000H
U0001	EQU	00001H
U0010	EQU	00010H
U00C7	EQU	000C7H
U92A8	EQU	092A8H
U93E7	EQU	093E7H
UBC09	EQU	0BC09H
UBC8E	EQU	0BC8EH
UD05A	EQU	0D05AH
UD104	EQU	0D104H
UE000	EQU	0E000H
UE003	EQU	0E003H
UF00F	EQU	0F00FH
UF018	EQU	0F018H
UF01B	EQU	0F01BH
UFC5F	EQU	0FC5FH
UFC7C	EQU	0FC7CH
UFC96	EQU	0FC96H
UFCBA	EQU	0FCBAH
UFCBD	EQU	0FCBDH
UFCCD	EQU	0FCCDH
UFCD8	EQU	0FCD8H
UFCFA	EQU	0FCFAH

Detected encoding: ASCII (7 bit)2