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

CE2ASM;	CAOS 3.4 - ROM E
;	Version CENTRONICS & V.24
;
;	Date: 11.06.1992  (c) by '#+$'
;
 
	ORG 0E000H
 
RESET	DI
	JR OSTEST
	JP BEXP1
	JP BEXP2
	JP BEXP3
	DEFW TOKTAB
	JP BASPV
 
;*** Steuerung ***
 
OSTEST	;CAOS-on-Test
	IN A,88H
	RRA
	JP NC,BYE
	LD	BC,0FC80H
	IN	A,(C)
	CP	0A7H
	JR	NZ,JUMPN
	OUT	(C),A
	;Koppel-RAM-Test
	LD	BC,80F3H
	LD	A,41H
	OUT	(C),A
	LD	H,80H
D004W	IN	A,(C)
	RLA
	JR	C,JUMPN
	DEC	L
	JR	NZ,D004W
	DEC	H
	JR	NZ,D004W
	;Module abschalten!
	LD	BC,880H
MNX	INC	B
	JR	Z,MRDY
	IN	A,(C)
	CPL
	AND	0F0H
	JR	NZ,MNX
	XOR	A
	OUT	(C),A
	LD	H,0B8H
	LD	L,B
	LD	M,A
	JR	MNX
 
MRDY	LD	A,0FCH
	DEFB	21H
JUMPN	LD	A,8
	LD L,A
	CALL 0F003H
	DEFB 27H	;JUMP
 
	DEFW 7F7FH	;>BASIC<
	DEFM 'BASIC'
	DEFB 0
	;
	LD HL,0C000H
	JR BASON
 
	DEFW 7F7FH	;>REBASIC<
	DEFM 'REBASIC'
	DEFB 0
	;
	LD HL,0C002H
BASON	IN A,88H
	SET 7,A
	OUT 88H
	JP (HL)
 
;*** CRT-Unit ***
 
PADR1	LD HL,(0B79CH)
	ADD HL,DE
	SLA H
	SLA H
	SLA H
PADR	PUSH AF		;UP 34 PADR
	LD A,L
	CP 20H
	JR NC,IAD1
	ADD A
	ADD A
	ADD A
	LD L,H
	SRL H
	SRL H
	SCF
	RR H
	RRA
	SRL H
	RRA
	LD D,H
	SCF
	RR D
	SET 3,D
	LD E,A
	RR E
	RR L
	RRA
	RR L
	LD L,A
	RL H
	POP AF
	AND A
	RET
 
IAD1	CP 28H
	JR NC,IAD2
	PUSH BC
	AND 7
	ADD A
	LD L,A
	LD A,H
	RLCA
	LD B,A
	AND 1
	OR 0B0H
	LD D,A
	LD A,B
	RLCA
	LD C,A
	AND 3
	OR 50H
	LD B,H
	LD H,A
	LD A,B
	AND 30H
	OR L
	LD L,A
	LD A,C
	RLCA
	RLCA
	AND 0C0H
	OR L
	LD L,A
	RR B
	RR L
	RR B
	RL H
	RR C
	RRA
	LD E,A
	POP BC
DBRE	POP AF
	AND A
	RET
 
IAD2	POP AF
	SCF
	RET
 
TCIF	LD A,(0B79EH)	;UP 33 TCIF
	DEC A
	SUB E
	RET C
	LD A,(0B79FH)
	DEC A
	SUB D
	RET
 
DABR	PUSH AF		;UP 32 DABR
	CALL TCIF
	JR C,IAD2
	LD A,(0B79CH)
	ADD E
	PUSH DE
	LD E,A
	LD A,(0B79DH)
	ADD D
	ADD A
	ADD A
	ADD A
	LD L,A
	LD H,0
	ADD HL,HL
	ADD HL,HL
	LD D,59H
	ADD HL,DE
	LD E,A
	ADD HL,DE
	POP DE
	JR DBRE
 
WPIX	;Zeichen sichtbar machen
	PUSH DE
	PUSH BC
	CALL PADR1
	JR C,WPIX4
	LD BC,(0B7A2H)
	EX DE,HL
	BIT 1,C
	JR NZ,WPIX1
	LD M,B
	SET 5,L
	LD M,B
WPIX1	BIT 0,C
	JR NZ,WPIX4
	LD HL,0B7A6H
	ADD A
	JR NC,WPIX2
	LD L,0AAH
WPIX2	SUB 40H
	JP P,WPIX3
	INC L
	INC L
	XOR 0C0H
WPIX3	LD B,M
	INC HL
	LD H,M
	LD L,B
	ADD A
	BIT 2,C
	LD C,A
	LD B,0
	ADD HL,BC
	ADD HL,BC
	CALL CPIX
WPIX4	POP BC
	POP DE
	RET
 
CPIX	CALL CPIX1
	SET 5,E
	RES 0,D
CPIX1	CALL CPIX2
	SET 0,D
CPIX2	RES 7,E
	LD A,M
	INC HL
	JR Z,CPIX3
	CPL
CPIX3	LD (DE),A
	SET 7,E
	LD A,M
	INC HL
	JR Z,CPIX4
	CPL
CPIX4	LD (DE),A
	RET
 
RSPALT	;Berechne BC,DE:Fenstergrenzen
	;E=0:Nur 1teilig
	ADD A
	ADD A
	ADD A
	LD H,A
	LD DE,2000H
	LD A,(0B79CH)
	LD B,A
	CP D
	LD A,(0B79EH)
	LD C,A
	RET NC
	ADD B
	CP D
	RET C
	SUB D
	LD E,A
	LD A,D
	SUB B
	LD C,A
	RET
 
MOVELN	;Rolle 1 Zeile
	PUSH HL
	PUSH DE
	PUSH BC
	LD C,A
	PUSH HL
	CALL PADR
	JR C,PIX2
	EX (SP),HL
	PUSH DE
	LD A,H
	ADD 8
	LD H,A
	CALL PADR
	EX (SP),HL
	EX DE,HL
	LD B,0
	LD A,(0B7A2H)
	RRA
	BIT 0,A
	LD A,C
	CALL Z,PIX4
	POP HL
	POP DE
	CALL NC,PIX31
	INC H
	INC D
	CALL NC,PIX3
	DEFB 6		;LD B,n
PIX2	POP HL
POPS3	POP BC
	POP DE
	POP HL
	RET
 
PIX3	RES 7,L
	RES 7,E
PIX31	CALL PIX4
	SET 7,L
	SET 7,E
PIX4	RES 5,L
	RES 5,E
	CALL PIX5
	SET 5,L
	SET 5,E
PIX5	PUSH DE
	PUSH HL
	LD C,A
	LDIR
	POP HL
	POP DE
	RET
 
PCHR	LD HL,0B7A2H
	BIT 4,M
	JR Z,PCHR0
	RES 4,M
	CP '0'
	RET C
	CP 3AH
	JR C,ESCJ1
	CP 'A'
	RET C
	RES 5,A
	CP 5BH
	RET NC
	SUB 7
ESCJ1	SUB 30H
	LD HL,0B7DFH
	CP M
	RET NC
	LD HL,(0B7DDH)
	JR PCHV
 
PCHR0	CP 20H
	JR NC,PCHR1
	BIT 3,M
	JR NZ,PCHR1
	LD HL,(0B7B2H)
PCHV	ADD A
	LD C,A
	LD B,0
	ADD HL,BC
	LD A,M
	INC HL
	LD H,M
	LD L,A
	LD A,1
	JP (HL)
 
ASC5	LD A,E
	AND 0F8H
	ADD 8
	LD E,A
	JR PCHR3
 
PCHR1	CALL DABR
	RET C
PCHR2	LD M,A
	CALL WPIX
CUR	INC E
PCHR3	LD A,(0B79EH)
	DEC A
	CP E
	RET NC
CRNL	LD E,0
CUD	INC D
	LD A,(0B79FH)
	CP D
	RET NZ
	LD HL,(0B7A4H)
	JP (HL)
 
HCOPY	LD HL,(0B799H)
	JP (HL)
 
CUL	LD A,E
	AND A
	JR Z,LINUP
	DEC E
	RET
 
LINUP	LD A,D
	AND A
	RET Z
	DEC D
CEL	LD A,(0B79EH)
	DEC A
	LD E,A
	RET
 
CUU	LD A,D
	AND A
	RET Z
	DEC D
	RET
 
PAGE	LD HL,HOMEPG
WADR	LD (0B7A4H),HL
	RET
 
SCROL	LD HL,SCRLPG
	JR WADR
 
CLEAR	CALL CUL
DEL	PUSH DE
DEL1	CALL DABR
	LD A,M
	AND A
	JR Z,INS3
	PUSH DE
	PUSH HL
	INC E
	CALL DABR
	JR NC,DEL2
	LD E,0
	INC D
	CALL DABR
DEL2	LD A,M
	POP HL
	POP DE
	JR C,DEL3
	OR A
	JR Z,DEL3
	CALL PCHR2
	JR DEL1
 
INS	PUSH DE
	LD A,20H
INS1	CALL DABR
	LD B,M
	CALL PCHR2
	LD A,B
	AND A
	JR Z,INS3
	LD A,E
	OR D
	LD A,B
	JR NZ,INS1
	POP DE
	RET
 
DEL3	CALL DABR
	XOR A
	LD M,A
	LD A,20H
	CALL WPIX
INS3	POP DE
	RET
 
CLLINE	;Zeile(nst}ck) l|schen
	LD L,B
	CALL PADR
	RET C
	LD A,(0B7A2H)
	RRA
	BIT 0,A
	LD A,(0B7A3H)
	CALL Z,CM2
	LD A,0
	RET C
	EX DE,HL
	CALL CM1
	INC D
CM1	RES 7,E
	CALL CM2
	SET 7,E
CM2	RES 5,E
	CALL CM3
	SET 5,E
CM3	PUSH DE
	LD B,C
CM4	LD (DE),A
	INC E
	DJNZ CM4
	POP DE
	RET
 
CLS	LD A,(0B79FH)
	LD D,0
CLS1	PUSH AF
	CALL DELLN
	POP AF
	INC D
	DEC A
	JR NZ,CLS1
HOMEPG	LD D,0
CRN	LD E,0
	RET
 
SCRLPG	;Scrollroutine
	LD A,(0B79EH)
	LD C,A
	LD B,0
	LD A,(0B79FH)
	DEC A
	JR Z,SCRL4
	PUSH DE
	PUSH AF
	LD DE,0
	CALL DABR
	JR C,SCRL3
	EX DE,HL
SCRL1	LD HL,28H
	ADD HL,DE
	PUSH HL
	PUSH BC
	LDIR
	POP BC
	POP DE
	DEC A
	JR NZ,SCRL1
	LD A,(0B79DH)
	CALL RSPALT
SCRL2	LD A,C
	LD L,B
	CALL MOVELN
	LD A,E
	AND A
	LD L,D
	CALL NZ,MOVELN
	LD A,H
	ADD 8
	LD H,A
	POP AF
	DEC A
	PUSH AF
	JR NZ,SCRL2
SCRL3	POP AF
	POP DE
SCRL4	DEC D
	;
DELLN	LD E,0
	PUSH DE
	CALL DABR
	LD A,(0B79EH)
	LD B,A
	XOR A
DL1	LD M,A
	INC HL
	DJNZ DL1
	LD A,(0B79DH)
	ADD D
	CALL RSPALT
	PUSH DE
	PUSH HL
	CALL CLLINE
	POP HL
	POP BC
	CP C
	CALL NZ,CLLINE
	POP DE
	RET
 
BEL	LD BC,0A1FH
	LD L,70H
	CALL RTON
	LD A,2EH	;Ton+Pause
	;
WAIT	LD B,A		;UP 14 WAIT
	XOR A
WAIT0	CALL WAIT1
	DJNZ WAIT0
	RET
 
RCLICK	LD BC,20FH
	LD L,50H
RTON	PUSH DE		;Ton nur rechts
	LD H,0
	LD E,H
	CALL PHALT
	OUT 8EH		;CTC off
	CALL TONP
	POP DE
	RET
 
ASC6	LD HL,0B7A3H	;=ESC 8
	LD A,M		;Farbe compeln
	AND 0C0H
	LD C,A
	LD A,M
	AND 7
	RLCA
	RLCA
	RLCA
	OR C
	LD C,A
	LD A,M
	RRCA
	RRCA
	RRCA
	AND 7
	OR C
 
LDMA	LD M,A		;UP 28 LDMA
	RET
 
LDAM	LD A,M		;UP 29 LDAM
	RET
 
SHLOCK	LD A,80H
	DEFB 1		;LD BC,...
CLICK	LD A,20H
	XOR (IX+8)
	LD (IX+8),A
DUMMY	RET
 
CRT	PUSH HL		;UP 00 CRT
	PUSH DE
	PUSH BC
	PUSH AF
	LD DE,(0B7A0H)
	CALL PCHR
	LD (0B7A0H),DE
	POP AF
	JP POPS3
 
ESC	ADD A		;Beeinflussung
ESC4	ADD A		; Steuerbits
ESC7	ADD A
ESCF	ADD A
ESC3	LD HL,0B7A2H
	XOR M
	LD M,A
	RET
 
;*** KBD-Unit ***
 
ISRC3	EI		;ISR CTC 3 KBD
	PUSH AF
	LD A,23H
	OUT 8FH
	LD (IX+0DH),0
	JR TST4
 
ISRPB	EI		;ISR PIO B KBD
TAST	PUSH AF
	DEC (IX)
	IN A,8FH
	PUSH AF
	LD A,0A7H
	OUT 8FH,A
	LD A,8FH
	OUT 8FH,A
	POP AF
	CP 14H
	JR C,TST4
	CP 65H
	JR NC,TST3
	ADD 0BEH
	JR C,TST3
	LD A,(IX+0CH)
	RRA
	XOR 1
	PUSH HL
	PUSH DE
	LD E,A
	LD D,0
	LD L,(IX+0EH)
	LD H,(IX+0FH)
	ADD HL,DE
	LD A,M
	BIT 7,(IX+8)
	JR NZ,TST1
	CP 40H
	JP M,TST1
	XOR 20H
TST1	CP (IX+0DH)
	PUSH AF
	JR NZ,TST5
	LD A,(0B7E0H)	;COUNT
	CP (IX+0AH)
	JR C,TST7
	POP AF
	INC (IX+0AH)
TST2	POP DE
	POP HL
TST3	RR (IX+0CH)
TST4	POP AF
INTE	RETI
 
TST5	LD (IX+0AH),0
	LD A,E
	CP 73H		;Tast-Nr.SoftRes
	JR NZ,TST6
	BIT 3,(IX+8)
	RES 3,(IX+8)
	JR NZ,TST7
	LD HL,RESET
	PUSH HL
	JR INTE
 
TST6	SET 3,(IX+8)
TST7	POP AF
	LD (IX+0DH),A
	SET 0,(IX+8)
	JR TST2
 
KBDS	XOR A		;UP 0C KBDS
	BIT 0,(IX+8)
	RET Z
	LD A,(IX+0DH)
	SCF
	RET
 
KBDZ	CALL KBDS	;UP 0E KBDZ
	RET NC
RESFL	RES 0,(IX+8)
	RET
 
;*** Tape-Unit ***
 
ESC1	LD A,(IX+7)
	XOR 2
	LD (IX+7),A
	RET
 
IMBII	;intern mit Standardpuffer,
	;Erwarteter Block und Unter-
	;dr}ckung OK-Block
	CALL SIXD3
	LD (IX+3),1
	SET 5,(IX+7)
	RET
ISRI
	LD A,9
	LD (IX+1),1
	JR INTERF
 
PHALT	LD A,3
	OUT 8CH,A
	OUT 8DH,A
	RES 1,(IX+8)
	RET
 
CMBI	;Abschlu~ MB-Eingabe
	LD A,41H
	CALL INTERF
	JR CRO0
BLION	;Blinken on
	IN	A,89H
	SET	7,A
	OUT	89H
	DI
	LD	A,47H
	OUT	8EH
	LD	A,0CH
	OUT	8EH
	EI
	RET
 
CSRO	;Abschlu~ MB-Ausgabe mit
	;Schreiben letzter Block
	LD (IX+2),0FEH;UP 09 CSRO
	LD A,43H
	CALL INTERF
CRO0	PUSH HL
	LD HL,0B780H
	XOR A
CRO1	DEC L
	LD M,A
	JR NZ,CRO1
	POP HL
	CALL CRLF
	JP SIXD2
 
ISROI	CALL SIXD3	;intern
ISRO	LD A,0BH	;UP 08 ISRO
	LD (IX+2),1
	JR INTERF
	;
MBOT	INC (IX+2)	;UP 01 MBOT
	LD	A,3
INTERF	;Allgemeines, block- oder
	;byteweises Dateninterface
	;PE: A:Funktion wie bei D004
	;(A=0: BASIC-Funktionen)
	;D: Datenbyte (bei BASIC)
	;E: Unterfunktion (bei BASIC)
	;(IX+6)/(IX+7): Blockzeiger
	;HL: Ende +1
	;CY=1: Fehler
	;A: Fehlernummer (CC bei Kass.)
	;(CF bei BRK)
	PUSH	HL
	LD	HL,(0B7E9H)
	EX	(SP),HL
	RET
 
STDINT	;Standard-Interface: Diskette
	OR	A
	JR	Z,BASIO
	BIT	1,A
	JR	Z,DREAD
	LD	L,(IX+6)
	LD	H,(IX+7)
	CP	0BH
	JR	NZ,NOINID
	PUSH	HL
	CALL	NAMEOTD
	POP	HL
NOINID
	LD	BC,81F2H
	LD	E,80H
ODBL	OUTI
	INC	B
	INC	B
	DEC	E
	JR	NZ,ODBL
	;
DKDO	LD	BC,80F3H
	OUT	(C),A
ODBL2	CALL	BRKT
	LD	A,0CFH	;Endekennung
	RET	C
	IN	A,(C)
	BIT	0,A
	JR	NZ,ODBL2
	ADD	A	;CY erzeugen
	INC	B
	IN	A,(C)	;Nummer
	RET
 
BASIO
	LD	A,E
	BIT	1,A
	JR	Z,BREAD
	LD	BC,8EF3H
	OUT	(C),D
	JR	DKDO
	;
BREAD	CALL	DKDO
	LD	B,8EH
	IN	D,(C)
	RET
 
DREAD	PUSH	HL
	PUSH	DE
	CP	9	;Init?
	JR	NZ,NOINI
	XOR	A
	LD	(0B7DCH),A
	LD	B,11
NMTST	LD	A,M
	INC	HL
	CP	20H
	JR	C,KNME
	CP	7FH
	JR	NC,KNME
	CP	'.'
	JR	NZ,KPKT
	INC	B
KPKT	DJNZ	NMTST
	JR	GEFUND
KNME	CALL	OSTR
	DEFW	0DH
	LD	DE,(0B7A0H)
	CALL	DABR
	LD	B,2
	LD	DE,-40
	ADD	HL,DE
UKI2	LD	DE,NAMEPTR
	LD	C,6
UKI1	LD	A,(DE)
	INC	DE
	SUB	M
	INC	HL
	AND	0DFH	;Upcase
	JR	NZ,UNGL
	DEC	C
	JR	NZ,UKI1
	JR	GEFUND
UNGL	LD	DE,-46
	ADD	HL,DE
	DJNZ	UKI2
	CALL	NAMEIN
	LD	A,0CFH
	JR	C,DBRK
GEFUND	LD	A,9
NOINI	CALL	NAMEOTD	;eintragen
	LD	A,(0B7DCH)
	INC	A
	LD	(0B7DCH),A
	LD	(IX+2),A
	CALL	DKDO	;Kommando
	JR	C,DBRK
	LD	L,(IX+5)
	LD	H,(IX+6)
	LD	BC,80F2H
SEKTOR	INI
	INC	B
	INC	B
	JR	NZ,SEKTOR
DBRK	POP	DE
	POP	HL
	RET
NAMEOTD	;Name in Diskpuffer schreiben
	LD	BC,82F3H
	LD	E,12
NOTD1	OUTI
	INC	B
	INC	B
	DEC	E
	JR	NZ,NOTD1
	RET
 
ISRI	LD	A,9	;UP 0A ISRI
	JP	INTERF
	;
MBI	LD	A,1	;UP 05 MBI
	JP	INTERF
 
;*** ISR's f}r die Kassette ***
 
ISRC1	PUSH AF		;ISR CTC 1 MBO
	LD A,87H
	OUT 8DH,A
	LD A,(IX)
	OUT 8DH,A
	LD (IX),0
	JR IMBEND
 
ISRPA	PUSH AF		;ISR PIO A MBI
	IN A,8EH
	LD (IX),A
	LD A,7
	OUT 8EH,A
	LD A,0A3H
	OUT 8EH,A
IMBEND	POP AF
INTEND	EI
	RETI
 
 
;*** Sound Unit ***
 
ISRC2	PUSH AF		;ISR CTC 2 TON
	CALL PHALT
	CALL BLION
	JR IMBEND
 
TON	CALL LARG	;UP 35 TON
TON1	BIT 1,(IX+8)
	JR NZ,TON1
TONP	LD A,C
	RLA
	CPL
	LD C,A
	LD A,B
	ADD 0FFH
	JR NC,TON2
	DI
	SET 1,(IX+8)
	LD A,0C7H
	OUT 8EH,A
	LD A,B
	OUT 8EH,A
	EI
TON2	LD A,C
	RRA
	OUT 89H,A
 
	LD C,8CH
	CALL ZKO
	INC C
	EX DE,HL
ZKO	LD A,L
	AND A
	LD L,3
	JR Z,TON3
	LD L,A
	LD A,H
	RRCA
	RRCA
	OR 0AH		;2*5
	RRA
	XOR 2
	DI
	OUT (C),A
TON3	OUT (C),L
	EI
	RET
 
 
;====== BASIC-ERWEITERUNG ==============
 
 
;*** BASIC I/O-Verteiler ***
 
BASPV	PUSH BC
	PUSH HL
	CALL IRMON
	BIT 5,E
	PUSH DE
	JR NZ,BASBYE
	INC HL
	INC HL
	BIT 7,E
	JR NZ,BSA2
	PUSH HL
	LD A,E
	AND 7
	LD HL,BUPTAB
	ADD L
	LD L,A
	LD A,D
	LD D,E
	LD E,M
	POP HL
	CALL PV3
	POP DE
	LD D,A
	RES 3,E
	CALL IRMOFF
BSAE	POP HL
	POP BC
	RET
 
BUPTAB	DEFB 16H	;KEINE 100H-
	DEFB 24H	;Ueberschneidung
	DEFB 37H
	DEFB 38H
	DEFB 6
	DEFB 2
	DEFB 7
	DEFB 3
 
BSA2	CALL KBDS
	POP DE
	LD D,A
	JR NC,BSA1
	RES 7,E
	JR BSA1
 
BASBYE	IN A,88H
	RES 7,A
	OUT 88H
	JP LOOP
 
;*** BASIC-Expander ***
 
BEXP1	LD A,B
	SUB 9
	JR C,SNERR1
	CP 1BH
	JR NC,SNERR1
	RLCA
	LD C,A
	LD B,0
	EX DE,HL
	LD HL,TADR5
	JP 0C8B7H
 
LOCOL	;LoadColor
	PUSH HL
	LD HL,0B7A3H
	CALL RLDAM
	POP HL
	RET
 
BEXP2	LD A,M
	CP 0DFH
	RET C
	CP 0E3H
	RET NC
	CP 0E1H
	JP Z,AT
	LD A,(3FDH)
	AND A
	JR NZ,SNERR1
	INC A
	LD (3FDH),A
	DEFB 3EH	;LD A,n
RBE2	PUSH BC
	CALL LOCOL
	LD (37EH),A
	LD A,M
	CP 0DFH
	JR Z,BE23
	CP 0E2H
	JP Z,PRCOL
	CALL 0C8BDH
	CALL PAPER
BE22	LD A,M
	CP ';'
	JR Z,BE25
SNERR1	JP 0C348H
 
PRCOL	CALL 0C8BDH
	CALL COLR
	JR BE22
 
BE23	CALL 0C8BDH
	CALL INK
	LD A,M
	CP ';'
	JR Z,BE25
	CALL 0C8CCH
	DEFB 2CH
	CP 0E0H
	JR NZ,SNERR1
	CALL 0C8BDH
	CALL PAPER
	CALL 0C8CCH
	DEFB ';'
BE24	CALL 0CB03H
	LD A,(37EH)
	PUSH HL
	LD HL,0B7A3H
	CALL RLDMA
	POP HL
	POP BC
	RET
 
BE25	CALL 0C8BDH
	JR BE24
 
BEXP3	LD A,C
	CP 62H
	JP Z,VPEEK
	CP 6EH
	JP Z,PTEST
	CP 7CH
	JP Z,CSRLIN
	CP 76H
	JP Z,VGET
	SUB 3EH
	JR C,SNERR1
	CP 7
	JR NC,SNERR1
	EX DE,HL
	LD BC,TOKADR
	POP HL
	LD L,A
	ADD HL,BC
	LD C,M
	INC HL
	LD H,M
	LD L,C
	PUSH HL
	EX DE,HL
	RET
 
STR	CALL 0C8CCH
	DEFB '('
	CALL 0D421H
	PUSH AF
	CALL 0C8D6H
	CALL 0CD3AH
	CALL 0C8DBH
	POP AF
	PUSH HL
	PUSH AF
	CALL 0D330H
	INC HL
	INC HL
	LD E,M
	INC HL
	LD D,M
	POP BC
	PUSH BC
	PUSH AF
	PUSH DE
	LD C,A
	XOR A
	CP C
	JR Z,STR2
	CP B
	JR Z,STR2
	LD A,C
	DEC B
	JR Z,STR2
STR1	ADD C
	JR C,STR5
	DJNZ STR1
STR2	LD B,A
	LD C,0
	PUSH BC
	CALL 0D1E1H
	POP BC
	POP BC
	PUSH BC
	CALL 0D17EH
	POP HL
	EX (SP),HL
	LD A,H
	POP HL
	EX (SP),HL
	LD L,A
	INC H
STR3	DEC H
	PUSH HL
	PUSH BC
	JR Z,STR4
	CALL 0D2F2H
	POP BC
	POP HL
	JR STR3
 
STR4	POP BC
	POP HL
	POP DE
	CALL 0D302H
	JP 0D1A9H
 
STR5	LD E,1CH
	JP 0C356H
 
REN	PUSH HL
	LD HL,0AH
	LD (354H),HL
	LD HL,(35FH)
	PUSH AF
	PUSH HL
	INC HL
	INC HL
	LD A,M
	INC HL
	LD H,M
	LD L,A
	LD (34EH),HL
	LD (352H),HL
	LD DE,(3D7H)
	DEC DE
	DEC DE
REN1	POP HL
	PUSH HL
	LD A,M
	INC HL
	LD H,M
	LD L,A
	CALL 0C689H
	EX (SP),HL
	JR NZ,REN1
	POP DE
	INC HL
	INC HL
	LD A,M
	INC HL
	LD H,M
	LD L,A
	LD (350H),HL
	LD B,4
	POP AF
	LD HL,34EH
	EX (SP),HL
REN2	JR Z,REN5
	CALL 0C986H
	PUSH AF
	LD A,D
	OR E
REN3	JP Z,0C967H
	POP AF
	EX (SP),HL
	LD M,E
	INC HL
	LD M,D
	INC HL
	JR Z,REN5
	PUSH AF
	DEC B
	JR Z,REN4
	POP AF
	EX (SP),HL
	CALL 0C8D6H
	JR REN2
 
REN4	POP AF
	JP NZ,0C348H
REN5	LD HL,(350H)
	LD DE,(34EH)
	CALL 0C689H
REN6	JP C,0C967H
	LD HL,(35FH)
REN7	CALL 0C4BEH
	JR C,REN8
	JR Z,REN3
	JR REN7
 
REN8	POP HL
	PUSH BC
	LD DE,(350H)
	LD HL,0
	LD (350H),HL
REN9	LD H,B
	LD L,C
	LD C,M
	INC HL
	LD B,M
	LD A,B
	OR C
	JR Z,REN3
	INC HL
	LD A,M
	INC HL
	LD H,M
	LD L,A
	CALL 0C689H
	LD HL,(350H)
	INC HL
	LD (350H),HL
	JR NZ,REN9
	INC HL
	INC HL
	ADD HL,HL
	INC HL
	LD DE,(3D7H)
	ADD HL,DE
	JR C,REN6
	CALL 0C327H
	LD (3D7H),HL
	XOR A
	DEC HL
	LD M,A
	DEC HL
	LD M,A
	DEC DE
	DEC DE
	EX DE,HL
	LD M,E
	INC HL
	LD M,D
	INC HL
	DEC A
	LD M,A
	INC HL
	LD M,A
	INC HL
	EX DE,HL
	LD HL,(352H)
	LD (34EH),HL
REN10	POP HL
	LD C,M
	INC HL
	LD B,M
	INC HL
	PUSH BC
	LD BC,34EH
	LD A,M
	LD (DE),A
	LD A,(BC)
	LD M,A
	INC HL
	INC DE
	INC BC
	LD A,M
	LD (DE),A
	LD A,(BC)
	LD M,A
	INC DE
	LD HL,(34EH)
	LD BC,(354H)
	ADD HL,BC
	LD (34EH),HL
	LD HL,(350H)
	DEC HL
	LD A,H
	OR L
	LD (350H),HL
	JR NZ,REN10
	LD (DE),A
	POP HL
	LD HL,(35FH)
	PUSH HL
REN11	POP HL
	LD C,M
	INC HL
	LD B,M
	INC HL
	PUSH BC
	LD A,M
	INC HL
	AND M
	INC A
	JR Z,REN15
 
REN12	INC HL
REN13	LD A,M
	OR A		;ZEILEN-ENDE
	JR Z,REN11
	CP 88H		;GOTO
	JR Z,REN16
	CP 8CH		;GOSUB
	JR Z,REN16
	CP 8BH		;RESTORE
	JR Z,REN14
	CP 0D4H		;ELSE
	JR Z,REN14
	CP 0A9H		;THEN
	JR NZ,REN12
 
REN14	CALL 0C987H	;F.RESTORE,THEN,
	LD A,E		; ELSE
	OR D
	CALL NZ,RENLN
	CALL NZ,RENZN
	JR REN13
 
REN15	DEC HL
	LD (3D7H),HL
	DEC HL
	LD M,A
	DEC HL
	LD M,A
	POP HL
	POP HL
	JP 0C48AH
 
REN16	CALL 0C987H	;F.GOTO,GOSUB
	LD A,E
	OR D
	JR Z,REN13
	CALL RENLN
	CALL NZ,RENZN
	LD A,M
	CP 2CH
	JR NZ,REN13
	JR REN16
 
RENLN	PUSH HL
	PUSH DE
	LD DE,0FFFFH
	CALL 0C4BBH
	POP DE
	INC BC
	INC BC
	INC BC
	INC BC
	LD H,B
	LD L,C
	LD BC,(352H)
RL1	LD A,M
	INC HL
	PUSH HL
	OR M
	JR Z,REND2
	LD A,M
	DEC HL
	LD L,M
	LD H,A
	CALL 0C689H
	JR Z,REND1
	LD HL,(354H)
	ADD HL,BC
	LD B,H
	LD C,L
	POP HL
	INC HL
	JR RL1
 
REND1	XOR A
	DEC A
REND2	POP HL
	POP HL
	RET
 
RENZN	PUSH BC		;NEUE ZEILEN-NR.
	EX DE,HL	; F.SPRUENGE,...
	LD HL,(3D7H)
	SBC HL,DE
	PUSH HL
RZ1	POP BC
	LD H,D
	LD L,E
	DEC DE
	LD A,(DE)
	CP ','
	JR Z,RZ2
	CP ':'
	JR NC,RZ2
	PUSH BC
	PUSH DE
	LDIR
	POP DE
	JR RZ1
 
RZ2	EX DE,HL
	POP DE
	PUSH HL
	PUSH BC
	XOR A
	LD B,98H
	CALL 0D6AEH
	CALL 0D834H
	POP BC
	POP DE
	INC HL
	INC DE
RZ3	LD A,M
	OR A
	JR Z,RZ4
	PUSH BC
	PUSH HL
	EX DE,HL
	ADD HL,BC
	LD D,H
	LD E,L
	DEC HL
	LDDR
	POP HL
	LDI
	POP BC
	JR RZ3
 
RZ4	PUSH DE
	LD DE,(35FH)
	CALL 0C493H
RZ5	INC HL
	LD A,M
	INC HL
	OR M
	JR NZ,RZ5
	EX DE,HL
	LD M,E
	INC HL
	LD M,D
	INC DE
	INC DE
	LD (3D7H),DE
	POP HL
	LD D,H
	LD E,L
RZ6	LD A,M
	OR A
	INC HL
	JR NZ,RZ6
	POP BC
	EX (SP),HL
	PUSH BC
	EX DE,HL
	RET
 
DLTE	RET Z
	CALL 0C986H
	JP Z,0C442H
	CALL 0C8D6H
	PUSH DE
	CALL 0C986H
	POP HL
	RET NZ
	EX DE,HL
	PUSH HL
	CALL 0C4BBH
	JP NC,0C44DH
	POP DE
	PUSH AF
	PUSH BC
	CALL 0C4BEH
	JP NC,0C44DH
	POP BC
	JP 0C450H
 
PAUSE	CALL 0C8BEH
	JR NZ,PSE2
PSE1	LD E,2AH	;BRKT
	CALL PV5
	RET C
	CP 0AH		;CUD
	JR NZ,PSE1
CONT	JP 0DDE4H
 
PSE2	CALL 0D421H
	LD C,A
PSE3	LD A,10H
	LD E,14H	;WAIT
	CALL PV5
	LD E,2AH	;BRKT
	CALL PV5
	RET C
	CP 0AH
	JR Z,CONT
	DEC C
	JR NZ,PSE3
	RET
 
BEEP	LD B,1
	CALL 0C8BEH
	JR Z,BEEP1
	CALL 0D421H
	LD B,A
BEEP1	LD A,7
	LD E,0
	CALL PV5
	DJNZ BEEP1
	RET
 
MC8D4	CALL 0C8D6H
	JP 0D421H
 
WNDW	CALL 0C8BEH
	JR Z,WDW2
	CALL 0D421H
	LD B,A		;WAY>B
	PUSH BC
	CALL MC8D4
	LD D,A		;WEY>D
	PUSH DE
	CALL MC8D4
	POP DE
	LD E,A		;WAX>E
	PUSH DE
	CALL MC8D4
	POP DE		;WEX>A
	EX (SP),HL	;WAY>H
	LD L,E		;WAX>L
	SUB E
	JR C,SNERR2
	INC A
	LD E,A		;WLX>E
	LD A,D		;WEY
	SUB H		;WAY
	JR C,SNERR2
	INC A
	LD D,A		;WLY>D
WDW1	CALL IRMON
	CALL WININ0
	CALL IRMOFF
	JR C,SNERR2
	POP HL
	RET
 
WDW2	PUSH HL
	LD HL,100H
	LD DE,1E28H
	JR WDW1
 
BLOAD	PUSH HL
	LD HL,0B781H
	XOR A
	CALL RLDMA
	POP HL
	LD A,M
	CP 22H
	JR NZ,NOBST
	CALL 0C8BEH
	CALL 0CD3AH
	PUSH HL
	CALL 0D33FH
	LD HL,3F7H
	LD B,13
BLCLN	DEC HL
	LD M,20H
	DJNZ BLCLN
	EX DE,HL
	LD A,C
	CP 13
	JR C,LNOK
	LD C,13
LNOK	LDIR
	POP HL
NOBST	PUSH HL
	LD HL,3EAH
	LD E,10H
	CALL PV5
	POP HL
	RET
 
VPEEK	CALL 0CDE1H
	EX (SP),HL
	LD DE,0CDF3H
	PUSH DE
	CALL 0C96FH
	PUSH HL
	LD HL,8000H
	ADD HL,DE
	JR C,SNERR2
	BIT 6,H
	JR NZ,SNERR2
	CALL RLDAM
	POP HL
	JP 0D3E9H
 
VPOKE	CALL 0C96CH
	PUSH DE
	CALL MC8D4
	EX (SP),HL
	LD DE,8000H
	ADD HL,DE
	JR C,SNERR2
	BIT 6,H
	JR Z,JLDMA
SNERR2	JP 0C348H
 
AT	LD A,(3FDH)
	BIT 1,A
	SET 1,A
	LD (3FDH),A
	JR NZ,SNERR2
	PUSH DE
	PUSH HL
	CALL IRMON
	LD HL,0
	LD DE,2028H
	CALL WININ0
	CALL IRMOFF
	POP HL
	CALL SUARG
	CALL 0C8DBH
	CALL 0C8CCH
	DEFB ';'
	LD A,M
	CP 0DFH
	JR C,AT2
	CP 0E3H
	JR NC,AT2
	CALL RBE2
AT1	PUSH HL
	CALL IRMON
	LD A,(0B79BH)
	CALL WINAK1
	CALL IRMOFF
	POP HL
	POP DE
	POP BC
	RET
 
AT2	CALL 0CB03H
	JR AT1
 
INK	CALL 0D421H
	CP 20H
	JR NC,SNERR2
	ADD A
	ADD A
	ADD A
	LD D,A
	CALL LOCOL
	AND 7
	JR LDCOL
 
PAPER	CALL 0D421H
	CP 8
	JR NC,SNERR2
	LD D,A
	CALL LOCOL
	AND 0F8H
LDCOL	OR D
	PUSH HL
	LD HL,0B7A3H
JLDMA	CALL RLDMA
	POP HL
	RET
 
COLR	CALL 0C8BEH
	JR Z,SNERR2
	CALL INK
	CALL 0C8BEH
	RET Z
	CALL 0C8D6H
	JR PAPER
 
SUARG	CALL 0C8BDH
	CALL 0C8CCH
	DEFB '('
 
LOCAT	CALL 0D421H
	LD D,A
	PUSH DE
	CALL MC8D4
	POP DE
	LD E,A
	CALL IRMON
	CALL TCIF
	JR C,LOCAT1
	LD (0B7A0H),DE
LOCAT1	CALL IRMOFF
	RET NC
SNERR3	JP 0C348H
 
INKEY	PUSH HL
	CALL KBDS
	JR NC,IKY2
	LD A,1
	CALL 0D17BH
	CALL 0DDE4H
AKTCHR	LD HL,(3C2H)
	LD M,A
IKY1	JP 0D1A9H
 
IKY2	XOR A
	CALL 0D17BH
	JR IKY1
 
SOUND	CALL 0D421H
	PUSH HL
	LD HL,0B782H
	LD B,4
SNDS	CALL RLDMA
	INC HL
	EX (SP),HL
	DEC B
	JR Z,SND2
	PUSH BC
	CALL MC8D4
	POP BC
	EX (SP),HL
	JR SNDS
 
SND2	CALL 0C8BEH
	JR Z,SND3
	CALL MC8D4
	EX (SP),HL
	CALL RLDMA
	INC HL
	EX (SP),HL
	CALL 0C8BEH
	JR Z,SND3
	CALL MC8D4
	EX (SP),HL
	CALL RLDMA
	EX (SP),HL
SND3	LD E,35H
	POP BC
	JP PV5
 
PRES	LD E,2FH
	DEFB 1
PSET	LD E,30H
	PUSH DE
	CALL 0C96CH
	PUSH HL
	LD HL,0B7D3H
	CALL LDMDE
	EX (SP),HL
	CALL MC8D4
	EX (SP),HL
	CALL RLDMA
	POP HL
	CALL SUCOL
	POP DE
PNT2	CALL PV5
	RET NC
	JR SNERR3
 
SUCOL	CALL 0C8BEH
	RET Z
	CALL MC8D4
	PUSH HL
	LD HL,0B7D6H
	RLCA
	RLCA
	RLCA
	JP JLDMA
 
INSTR	CALL 0CD36H
	CALL 0C8D6H
	PUSH HL
	CALL 0D330H
	JR Z,FCERR
	LD B,A
	INC HL
	INC HL
	LD E,M
	INC HL
	LD D,M
	POP HL
	PUSH DE
	PUSH BC
	CALL 0CD3AH
	CALL 0C8DBH
	POP BC
	POP DE
	PUSH HL
	PUSH DE
	PUSH BC
	CALL 0D330H
FCERR	JP Z,0C967H
	INC HL
	INC HL
	LD C,M
	INC HL
	LD H,M
	LD L,C
	POP BC
	LD C,A
	POP DE
	PUSH HL
ISTR1	PUSH BC
	PUSH DE
	LD A,(DE)
ISTR2	CP M
	JR Z,ISTR5
	INC HL
	DEC C
	JR NZ,ISTR2
ISTR3	XOR A
	POP HL
	POP HL
	POP HL
ISTR4	LD DE,0CDF3H
	PUSH DE
	JP 0D0C0H
 
ISTR5	INC HL
	PUSH HL
	DEC HL
ISTR6	INC HL
	DEC C
	JR Z,ISTR7
	INC DE
	DEC B
	JR Z,ISTR8
	LD A,(DE)
	CP M
	JR Z,ISTR6
	POP HL
	POP DE
	LD A,C
	POP BC
	LD C,A
	JR ISTR1
 
ISTR7	INC DE
	DEC B
	POP HL
	JR NZ,ISTR3
	JR ISTR9
 
ISTR8	POP HL
ISTR9	POP DE
	POP DE
	POP DE
	AND A
	SBC HL,DE
	LD A,L
	JR ISTR4
 
BKEY	CALL 0D421H
	CP 0DH
	JR NC,SNERR4
	LD E,39H
	DEFB 1
KLST	LD E,3AH
	DEFB 1
RLDAM	LD E,29H
JPV5	JP PV5
 
RLDMA	LD E,28H
	JR JPV5
 
SWTCH	CALL 0D421H
	PUSH AF
	CALL MC8D4
	LD D,A
	POP AF
	PUSH HL
	LD L,A
	LD A,2
	LD E,26H
	CALL PV5
	POP HL
	RET
 
PTEST	CALL 0CDE1H
	EX (SP),HL
	LD DE,0CDF3H
	PUSH DE
	CALL 0C96FH
	PUSH HL
	LD HL,0B7D3H
	CALL LDMDE
	CALL IRMON
	LD E,2FH
	CALL PV3
	JR C,PTST2
	LD B,0
	JR Z,PTST1
	INC HL
	LD M,A
	INC E
	CALL PV3
	LD B,1
PTST1	LD A,B
PTST2	CALL IRMOFF
	POP HL
	JP NC,0D3E9H
 
SNERR4	JP 0C348H
 
LDMDE	LD A,E
	CALL RLDMA
	INC HL
	LD A,D
	CALL RLDMA
	INC HL
	RET
 
CLOSE	LD C,0
	LD A,M
	CP 'I'
	JR Z,CL1
	INC C
	CP 'O'
	JR NZ,SNERR4
CL1	PUSH BC
	INC HL
	LD A,M
	CP '#'
CL2	JR NZ,SNERR4
	INC HL
	CALL 0D421H
	AND 3
	POP BC
	RET Z
	PUSH HL
	RL A
	ADD C
	PUSH AF
	DEC A
	LD B,0
	SCF
CL3	RL B
	DEC A
	JR NZ,CL3
	LD HL,307H
	LD A,M
	XOR B
	LD M,A
	POP AF
	POP HL
	SET 6,A
	PUSH DE
	LD E,A
	LD D,3
	CALL BASPV
	POP DE
	RET
 
RND	LD A,R
	LD (31DH),A
	RET
 
OPEN	LD A,M
	INC HL
	CP 'I'
	JR Z,OPENI
	CP 'O'
	JR NZ,CL2
	CALL 0DE25H
	CALL 0DDC8H
	RET Z
	LD A,0D5H
	CALL 0DCB2H
	LD HL,3EAH
	XOR A
	CALL 0DDD5H
	POP HL
	RET
 
OPENI	CALL 0DE5FH
	LD A,(309H)
	AND 3
	RET Z
	LD A,0D5H
	CALL 0DCB2H
	LD HL,3EAH
	CALL 0DDE4H
	POP HL
	RET
 
BLINE	LD BC,43EH
	JR PIC1
 
CIRCL	LD BC,33FH
 
PIC1	PUSH BC
	CALL 0C96CH
	POP BC
	PUSH BC
	PUSH HL
	LD HL,0B782H
PIC2	CALL LDMDE
	DEC B
	JR Z,PIC3
	EX (SP),HL
	PUSH BC
	CALL 0C8D6H
	CALL 0C96CH
	POP BC
	EX (SP),HL
	JR PIC2
 
PIC3	POP HL
	CALL SUCOL
	POP DE
	JP PV5
 
CSRLIN	CALL 0CDE1H
	EX (SP),HL
	LD DE,0CDF3H
	PUSH DE
	CALL 0D424H
	PUSH HL
	AND A
	LD A,0
	LD HL,0B79DH
	CALL Z,RLDAM
	LD B,A
	LD L,0A1H
	CALL RLDAM
	ADD B
	POP HL
	JP 0D3E9H
 
VGET	EX (SP),HL
	LD A,1
	CALL 0D17BH
	CALL IRMON
	LD DE,(0B7A0H)
	CALL DABR
	LD A,M
	CALL IRMOFF
	JP AKTCHR
 
;	BASIC-TOKEN
;	===========
 
TOKTAB	DEFB 'I'+80H	;TOKEN AB D5
	DEFM 'NKEY$'
	DEFB 'M'+80H
	DEFM 'OUSE'
	DEFB 'S'+80H
	DEFM 'TRING$'
	DEFB 'I'+80H
	DEFM 'NSTR'
	DEFB 'R'+80H
	DEFM 'ENUMBER'
	DEFB 'D'+80H
	DEFM 'ELETE'
	DEFB 'P'+80H
	DEFM 'AUSE'
	DEFB 'B'+80H
	DEFM 'EEP'
	DEFB 'W'+80H
	DEFM 'INDOW'
	DEFB 'B'+80H
	DEFM 'ORDER'
	DEFB 'I'+80H
	DEFM 'NK'
	DEFB 'P'+80H
	DEFM 'APER'
	DEFB 'A'+80H
	DEFM 'T'
	DEFB 'C'+80H
	DEFM 'OLOR'
	DEFB 'S'+80H
	DEFM 'OUND'
	DEFB 'P'+80H
	DEFM 'SET'
	DEFB 'P'+80H
	DEFM 'RESET'
	DEFB 'B'+80H
	DEFM 'LOAD'
	DEFB 'V'+80H
	DEFM 'PEEK'
	DEFB 'V'+80H
	DEFM 'POKE'
	DEFB 'L'+80H
	DEFM 'OCATE'
	DEFB 'K'+80H
	DEFM 'EYLIST'
	DEFB 'K'+80H
	DEFM 'EY'
	DEFB 'S'+80H
	DEFM 'WITCH'
	DEFB 'P'+80H
	DEFM 'TEST'
	DEFB 'C'+80H
	DEFM 'LOSE'
	DEFB 'O'+80H
	DEFM 'PEN'
	DEFB 'R'+80H
	DEFM 'ANDOMIZE'
	DEFB 'V'+80H
	DEFM 'GET$'
	DEFB 'L'+80H
	DEFM 'INE'
	DEFB 'C'+80H
	DEFM 'IRCLE'
	dEFB 'C'+80H
	DEFM 'SRLIN'
	DEFB 80H	;ENDE-BYTE
 
TOKADR	DEFW INKEY
	DEFW 2FDH	;JOY
	DEFW STR
	DEFW INSTR
TADR5	DEFW REN
	DEFW DLTE
	DEFW PAUSE
	DEFW BEEP
	DEFW WNDW
	DEFW 0D421H	;BORDER
	DEFW INK
	DEFW PAPER
	DEFW 0C348H	;AT
	DEFW COLR
	DEFW SOUND
	DEFW PSET
	DEFW PRES
	DEFW BLOAD
	DEFW 0C348H	;VPEEK
	DEFW VPOKE
	DEFW LOCAT
	DEFW KLST
	DEFW BKEY
	DEFW SWTCH
	DEFW 0C348H	;PTEST
	DEFW CLOSE
	DEFW OPEN
	DEFW RND
	DEFW 0C348H	;VGET
	DEFW BLINE
	DEFW CIRCL
 
;	END
@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Detected encoding: ANSI (CP1252)4
Wrong umlauts? - Assume file is ANSI (CP1252) encoded