;-----------------------------------------------------------------------------
;
; KC85/3 CAOS 3.1 VGA/KEYB
; PIC18F2550 (c)2014
;
;-----------------------------------------------------------------------------
		message " START ###################################################################"
        if      MOMPASS=1
		message "+------------------------------+"
		message "| KC85/3 CAOS3.4i              |"
		message "| Edit by. PIC18F2550          |"
		message "+------------------------------+"
	    endif
		cpu	z80
;****************************************************************************
; Festlegung AS-Steuervariabeln
;****************************************************************************

HI	function x,(x>>8)&255
LO	function x, x&255

;****************************************************************************
;  Beginn Quellcode & Config Assembler
;****************************************************************************
;	Version CENTRONICS & V.24
;
;	Date: 11.06.1991  (c) by '#+$'
;	Intern-ROM-Version!
;BUGFIX: CSRLIN eingebaut!
 
	message "0E000H"
	ORG 0E000H
 
RESET:
	JP BYE
	JP BEXP1
	JP BEXP2
	JP BEXP3
	DEFW TOKTAB
	JP BASPV
 
BEL:	LD BC,0A1FH
	LD L,70H
	CALL RTON
	LD A,2EH	;Ton+Pause
	JP	WAIT
;*** Steuerung ***
 
 
	DEFW 7F7FH	;>BASIC<
	DEFB "BASIC"
	DEFB 0
	;
	LD HL,0C000H
	JR BASON
 
	DEFW 7F7FH	;>REBASIC<
	DEFB "REBASIC"
	DEFB 0
	;
	LD HL,0C002H
BASON:	IN A,88H
	SET 7,A
	OUT 88H,A
	in	a,89h
	or	60h
	out	89h,A	;Segment 3!
	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,A
	ADD A,A
	ADD A,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,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 A,E
	PUSH DE
	LD E,A
	LD A,(0B79DH)
	ADD A,D
	ADD A,A
	ADD A,A
	ADD A,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 (HL),B
	SET 5,L
	LD (HL),B
WPIX1:	BIT 0,C
	JR NZ,WPIX4
	LD HL,0B7A6H
	ADD A,A
	JR NC,WPIX2
	LD L,0AAH
WPIX2:	SUB 40H
	JP P,WPIX3
	INC L
	INC L
	XOR 0C0H
WPIX3:	LD B,(HL)
	INC HL
	LD H,(HL)
	LD L,B
	ADD A,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,(HL)
	INC HL
	JR Z,CPIX3
	CPL
CPIX3:	LD (DE),A
	SET 7,E
	LD A,(HL)
	INC HL
	JR Z,CPIX4
	CPL
CPIX4:	LD (DE),A
	RET
 
RSPALT:	;Berechne BC,DE:Fenstergrenzen
	;E=0:Nur 1teilig
	ADD A,A
	ADD A,A
	ADD A,A
	LD H,A
	LD DE,2000H
	LD A,(0B79CH)
	LD B,A
	CP D
	LD A,(0B79EH)
	LD C,A
	RET NC
	ADD A,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 A,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,(HL)
	JR Z,PCHR0
	RES 4,(HL)
	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 (HL)
	RET NC
	LD HL,(0B7DDH)
	JR PCHV
 
PCHR0:	CP 20H
	JR NC,PCHR1
	BIT 3,(HL)
	JR NZ,PCHR1
	LD HL,(0B7B2H)
PCHV:	ADD A,A
	LD C,A
	LD B,0
	ADD HL,BC
	LD A,(HL)
	INC HL
	LD H,(HL)
	LD L,A
	LD A,1
	JP (HL)
 
ASC5:	LD A,E
	AND 0F8H
	ADD A,8
	LD E,A
	JR PCHR3
 
PCHR1:	CALL DABR
	RET C
PCHR2:	LD (HL),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,(HL)
	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,(HL)
	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,(HL)
	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 (HL),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 A,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 (HL),A
	INC HL
	DJNZ DL1
	LD A,(0B79DH)
	ADD A,D
	CALL RSPALT
	PUSH DE
	PUSH HL
	CALL CLLINE
	POP HL
	POP BC
	CP C
	CALL NZ,CLLINE
	POP DE
	RET
 
RCLICK:	LD BC,20FH
	LD L,50H
RTON:	PUSH DE		;Ton nur rechts
	LD H,0
	LD E,H
	CALL PHALT
	OUT 8EH,A		;CTC off
	CALL TONP
	POP DE
	RET
 
ASC6:	LD HL,0B7A3H	;=ESC 8
	LD A,(HL)		;Farbe compeln
	AND 0C0H
	LD C,A
	LD A,(HL)
	AND 7
	RLCA
	RLCA
	RLCA
	OR C
	LD C,A
	LD A,(HL)
	RRCA
	RRCA
	RRCA
	AND 7
	OR C
 
LDMA:	LD (HL),A		;UP 28 LDMA
	RET
 
LDAM:	LD A,(HL)		;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,A		;Beeinflussung
ESC4:	ADD A,A		; Steuerbits
ESC7:	ADD A,A
ESCF:	ADD A,A
ESC3:	LD HL,0B7A2H
	XOR (HL)
	LD (HL),A
	RET
 
;*** KBD-Unit ***
 
ISRC3:	EI		;ISR CTC 3 KBD
	PUSH AF
	LD A,23H
	OUT 8FH,A
	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 A,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,(HL)
	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)
	;
IMBI:	;Init.MB-Eingabe ohne Lesen
	;und ohne Init.(IX+5/6)
    message "720 original IN A,89H im EPROM IN A,00H"
	IN A,00H
	RES 7,A
	OUT 89H,A		;Blink off
	IN A,88H
	SET 6,A		;MSS on
IMBI1:	OUT 88H,A
	EI
	PUSH HL
	LD HL,(0B7A4H)
	LD (0B7CFH),HL
	CALL NOUT
	LD (0B7CDH),HL
	CALL PAGE
	POP HL
PHALT:	LD A,3
	OUT 8CH,A
	OUT 8DH,A
	RES 1,(IX+8)
	RET
 
CMBI:	;Abschlu~ MB-Eingabe
	CALL CRO0
BLION:	;Blinken on
	IN A,89H
	SET 7,A
	OUT 89H,A
	DI
	LD A,47H
	OUT 8EH,A
	LD A,0CH
	OUT 8EH,A
	EI
	RET
 
CSRO:	;Abschlu~ MB-Ausgabe mit
	;Schreiben letzter Block
	LD (IX+2),0FEH;UP 09 CSRO
	CALL PV1
	DEFB 1		;MBOT
CRO0:	PUSH HL
	LD HL,(0B7CDH)
	LD (0B7B9H),HL
	LD HL,(0B7CFH)
	LD (0B7A4H),HL
	LD HL,0B780H
	XOR A
CRO1:	DEC L
	LD (HL),A
	JR NZ,CRO1
	POP HL
	IN A,88H
	AND 9FH
	OUT 88H,A
	CALL CRLF
	JP SIXD2
 
ISROI:	CALL SIXD3	;intern
ISRO:	IN A,88H	;UP 08 ISRO
	OR 60H
	CALL IMBI1
	LD (IX+2),0
	LD BC,1000H
	CALL	PV1
	DEFB	1	;MBOT Shell!!
	RET
	;
MBOT:	INC (IX+2)	;UP 01 MBOT
	DI
	LD A,87H
	OUT 8DH,A
	LD A,2FH
	OUT 8DH,A
	EI
	LD D,A
	LD E,A
MBOT1:	CALL BITOUT
	CPI
	JP PE,MBOT1
	CALL ZTON
	LD A,(IX+2)
	CALL BYTOT
	LD L,(IX+5)
	LD H,(IX+6)
	LD B,80H
MBT1:	LD A,(HL)
	CALL BYTOT
	LD A,C
	ADD A,(HL)
	LD C,A
	INC HL
	DJNZ MBT1
	CALL BYTOT
	LD A,D
	CALL HBITOT
	LD A,3
	OUT 8DH,A
	RET
 
BYTOT:	PUSH BC
	LD C,A
	LD B,8
BYTOUT:	RRC C
	LD E,17H
	CALL NC,BITOUT
	LD E,2FH
	CALL C,BITOUT
	DJNZ BYTOUT
	POP BC
ZTON:	LD E,5DH
BITOUT:	CALL HBITOT
HBITOT:	LD (IX),D
HBIT1:	LD A,(IX)
	AND A
	JR NZ,HBIT1
	LD D,E
	RET
 
ISRI:	CALL IMBI	;UP 0A ISRI
	CALL	PV1
	DEFB	5	;MBI Shell!!
	RET
	;
MBI:	LD A,83H	;UP 05 MBI
	OUT 8AH,A
	PUSH HL
	PUSH DE
MBI1:	CALL BRKT
	JR C,MBI6
	LD B,16H
MBI2:	CALL STOP1
	JR C,MBI1
	CP 0BAH
	CALL LEDON
	JR C,MBI1
	DJNZ MBI2
MBI3:	LD B,2
MBI4:	XOR A
	LD C,A
	CALL STOP2
	CP 5DH
	JR NC,MBI3
	DJNZ MBI4
	CALL BYTIN
	JR C,MBI6
	LD (IX+2),A
	LD B,80H
	LD L,(IX+5)
	LD H,(IX+6)
	LD E,0
MBI5:	PUSH DE
	CALL BYTIN
	POP DE
	JR C,MBI6
	LD (HL),A
	ADD A,E
	LD E,A
	INC HL
	DJNZ MBI5
	LD L,A
	CALL BYTIN
	JR C,MBI6
	SUB L
	ADD A,0FFH
MBI6:	POP DE
	POP HL
	LD A,3
	OUT 8AH,A
LEDON:	IN A,88H
	SET 5,A
	JR NC,MBI7
	RES 5,A
MBI7:	OUT 88H,A
	RET
 
MOT:	;Umschalten der MSS (ESC A)
	IN A,88H
	XOR 60H
	JR MBI7
 
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
 
STOP1:	LD (IX),0
STOP11:	LD A,(IX)
	OR A
	JR Z,STOP11
	LD C,A
STOP2:	LD (IX),0
STOP21:	LD A,(IX)
	OR A
	JR Z,STOP21
	ADD A,C
	RET
 
BYTIN:	LD DE,800H
TRN1:	CALL STOP1
	JR C,TRN2
	CP 0BAH
	RET C
TRN2:	CCF
	RR E
	DEC D
	JR NZ,TRN1
	CALL STOP1
	LD A,E
	RET
 
;*** 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 A,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 A,L
	LD L,A
	LD A,D
	LD D,E
	LD E,(HL)
	POP HL
	CALL PV3
	POP DE
	LD D,A
	LD A,E
	AND 4FH
	XOR 43H
	JR NZ,BSA1
	CALL OSTR
	DEFB "VERIFY"
	DEFB 0
	CALL YESNO
	CALL Z,VERIFY
BSA1:	LD A,D
	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
BSA3:	POP DE
	LD D,A
	JR NC,BSA1
	RES 7,E
	JR BSA1
 
BASBYE:	IN A,88H
	RES 7,A
	OUT 88H,A
	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,(HL)
	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,(HL)
	CP 0DFH
	JR Z,BE23
	CP 0E2H
	JP Z,PRCOL
	CALL 0C8BDH
	CALL PAPER
BE22:	LD A,(HL)
	CP ";"
	JR Z,BE25
SNERR1:	JP 0C348H
 
PRCOL:	CALL 0C8BDH
	CALL COLR
	JR BE22
 
BE23:	CALL 0C8BDH
	CALL INK
	LD A,(HL)
	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,(HL)
	INC HL
	LD H,(HL)
	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,(HL)
	INC HL
	LD D,(HL)
	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 A,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,(HL)
	INC HL
	LD H,(HL)
	LD L,A
	LD (34EH),HL
	LD (352H),HL
	LD DE,(3D7H)
	DEC DE
	DEC DE
REN1:	POP HL
	PUSH HL
	LD A,(HL)
	INC HL
	LD H,(HL)
	LD L,A
	CALL 0C689H
	EX (SP),HL
	JR NZ,REN1
	POP DE
	INC HL
	INC HL
	LD A,(HL)
	INC HL
	LD H,(HL)
	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 (HL),E
	INC HL
	LD (HL),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,(HL)
	INC HL
	LD B,(HL)
	LD A,B
	OR C
	JR Z,REN3
	INC HL
	LD A,(HL)
	INC HL
	LD H,(HL)
	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 (HL),A
	DEC HL
	LD (HL),A
	DEC DE
	DEC DE
	EX DE,HL
	LD (HL),E
	INC HL
	LD (HL),D
	INC HL
	DEC A
	LD (HL),A
	INC HL
	LD (HL),A
	INC HL
	EX DE,HL
	LD HL,(352H)
	LD (34EH),HL
REN10:	POP HL
	LD C,(HL)
	INC HL
	LD B,(HL)
	INC HL
	PUSH BC
	LD BC,34EH
	LD A,(HL)
	LD (DE),A
	LD A,(BC)
	LD (HL),A
	INC HL
	INC DE
	INC BC
	LD A,(HL)
	LD (DE),A
	LD A,(BC)
	LD (HL),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,(HL)
	INC HL
	LD B,(HL)
	INC HL
	PUSH BC
	LD A,(HL)
	INC HL
	AND (HL)
	INC A
	JR Z,REN15
 
REN12:	INC HL
REN13:	LD A,(HL)
	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 (HL),A
	DEC HL
	LD (HL),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,(HL)
	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,(HL)
	INC HL
	PUSH HL
	OR (HL)
	JR Z,REND2
	LD A,(HL)
	DEC HL
	LD L,(HL)
	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,(HL)
	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,(HL)
	INC HL
	OR (HL)
	JR NZ,RZ5
	EX DE,HL
	LD (HL),E
	INC HL
	LD (HL),D
	INC DE
	INC DE
	LD (3D7H),DE
	POP HL
	LD D,H
	LD E,L
RZ6:	LD A,(HL)
	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 E,10H
	JP PV5
 
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,(HL)
	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,A
	ADD A,A
	ADD A,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 (HL),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,(HL)
	INC HL
	LD D,(HL)
	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,(HL)
	INC HL
	LD H,(HL)
	LD L,C
	POP BC
	LD C,A
	POP DE
	PUSH HL
ISTR1:	PUSH BC
	PUSH DE
	LD A,(DE)
ISTR2:	CP (HL)
	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 (HL)
	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 (HL),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,(HL)
	CP "I"
	JR Z,CL1
	INC C
	CP "O"
	JR NZ,SNERR4
CL1:	PUSH BC
	INC HL
	LD A,(HL)
	CP "#"
CL2:	JR NZ,SNERR4
	INC HL
	CALL 0D421H
	AND 3
	POP BC
	RET Z
	PUSH HL
	RL  A                                       ; Warnung kann ignoriert werden
	ADD A,C
	PUSH AF
	DEC A
	LD B,0
	SCF
CL3:	RL B
	DEC A
	JR NZ,CL3
	LD HL,307H
	LD A,(HL)
	XOR B
	LD (HL),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,(HL)
	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 A,B
	POP HL
	JP 0D3E9H
 
VGET:	EX (SP),HL
	LD A,1
	CALL 0D17BH
	CALL IRMON
	LD DE,(0B7A0H)
	CALL DABR
	LD A,(HL)
	CALL IRMOFF
	JP AKTCHR
 
;	BASIC-TOKEN
;	===========
 
TOKTAB:	DEFB 'I'+80H	;TOKEN AB D5
	DEFB "NKEY$"
	DEFB 'J'+80H
	DEFB "OYST"
	DEFB 'S'+80H
	DEFB "TRING$"
	DEFB 'I'+80H
	DEFB "NSTR"
	DEFB 'R'+80H
	DEFB "ENUMBER"
	DEFB 'D'+80H
	DEFB "ELETE"
	DEFB 'P'+80H
	DEFB "AUSE"
	DEFB 'B'+80H
	DEFB "EEP"
	DEFB 'W'+80H
	DEFB "INDOW"
	DEFB 'B'+80H
	DEFB "ORDER"
	DEFB 'I'+80H
	DEFB "NK"
	DEFB 'P'+80H
	DEFB "APER"
	DEFB 'A'+80H
	DEFB "T"
	DEFB 'C'+80H
	DEFB "OLOR"
	DEFB 'S'+80H
	DEFB "OUND"
	DEFB 'P'+80H
	DEFB "SET"
	DEFB 'P'+80H
	DEFB "RESET"
	DEFB 'B'+80H
	DEFB "LOAD"
	DEFB 'V'+80H
	DEFB "PEEK"
	DEFB 'V'+80H
	DEFB "POKE"
	DEFB 'L'+80H
	DEFB "OCATE"
	DEFB 'K'+80H
	DEFB "EYLIST"
	DEFB 'K'+80H
	DEFB "EY"
	DEFB 'S'+80H
	DEFB "WITCH"
	DEFB 'P'+80H
	DEFB "TEST"
	DEFB 'C'+80H
	DEFB "LOSE"
	DEFB 'O'+80H
	DEFB "PEN"
	DEFB 'R'+80H
	DEFB "ANDOMIZE"
	DEFB 'V'+80H
	DEFB "GET$"
	DEFB 'L'+80H
	DEFB "INE"
	DEFB 'C'+80H
	DEFB "IRCLE"
	DEFB 'C'+80H
	DEFB "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

	message "0EE00H Zeichensatz"
	ORG 0EE00H
    binclude CAOS34ZSE.bin

;	CAOS 3.4 - ROM F
;	Version V.24 / RS 232
;
;	Date: 11.06.1991  (c) by '#+$'
;	Intern-Version
;(Direkteinbau in KC85/3)
SIO	EQU 008H	;SIO PORT A
CTC	EQU 00CH	;SIO-CTC
; StrByte des Interface-Moduls
UMODL	EQU 1EEH	;M003 V24
 
	message "0F000H"
	ORG 0F000H
 
PRESET:	JP PWRON	;>> POWER ON <<
	JP PV1		;DEFB NR
	JR PV2		;(ARGC)
ZEI0:	DEFB 0
	JR PV3		;REG. E
ZEI2:	DEFB 2
	JR PV4		;+IRM
ZEI4:	DEFB 4
	JP RCALL
	JP NEWOS	;>JUMP<
	JP PV5		;(ARGC)
	JP IRMON
	JP IRMOFF
 
PV6:	PUSH BC		;*** PV 6 ***
	CALL IRMON
	CALL PV2
	JR PV51
 
PV5:	PUSH BC		;*** PV 5 ***
	CALL IRMON
	CALL PV3
PV51: 	CALL IRMOFF
	POP BC
	RET
 
PV4:	PUSH AF		;*** PV 4 ***
	IN A,88H
	OR 4
	OUT 88H,A
	POP AF
	CALL PV3
SCROFF:	PUSH AF
	IN A,88H
	AND 0FBH
	OUT 88H,A
	POP AF
	RET
 
PV1:	PUSH HL		;*** PV 1 ***
	DI
	POP HL
	POP HL
	INC HL
	PUSH HL
	DEC HL
	DEC SP
	DEC SP
	EI
TABJP:	PUSH DE
	LD E,(HL)
PV11:	LD D,0
	LD HL,(0B7B0H)
	PUSH AF
	ADD HL,DE
	ADD HL,DE
	POP AF
	LD E,(HL)
	INC HL
	LD D,(HL)
	EX DE,HL
	POP DE
PV1END:	EX (SP),HL
	RET
 
PV3:	SCF		;*** PV 3 ***
	DEFB 0EDH
PV2:	AND A		;*** PV 2 ***
PV21:	PUSH HL
	PUSH DE
	PUSH BC
	PUSH HL
	LD HL,POPS3
	EX (SP),HL
	PUSH HL
	PUSH DE
	JR C,PV11
	LD DE,(0B780H)
	JR PV11
 
IRMON:	POP BC		;*** IRM ON ***
	DI
	LD (IX+0BH),A
	IN A,88H
	SET 2,A
	OUT 88H,A
	LD (0B7CBH),SP
	LD SP,(0B7AEH)
OFFEND:	LD A,(IX+0BH)
	EI
	PUSH BC
	RET
 
IRMOFF:	POP BC		;*** IRM OFF ***
	DI
	LD SP,(0B7CBH)
	LD (IX+0BH),A
	IN A,88H
	RES 2,A
	OUT 88H,A
	JR OFFEND
 
INTB:	PUSH HL		;UP 16 INTB
	LD HL,(0B7BBH)
	JR TABJP
 
OCHRP:	LD A,(0B7D9H)
OCHR:	PUSH HL		;UP 24 OCHR
	LD HL,(0B7B9H)
	JR TABJP
 
RCALL:	EX (SP),HL	;*** RCALL ***
	LD E,(HL)
	INC HL
	LD D,(HL)
	INC HL
	EX DE,HL
	ADD HL,DE
	EX DE,HL
	EX (SP),HL
	PUSH DE
	RET
 
;*** Switch & Jump ***
 
	DEFW 7F7FH	;>SWITCH<
	DEFB "SWITCH"
	DEFB 1
	JR	Z,MODUL
	;
	LD D,E
	CALL MODU
MODOUT:	;Ausgabe 3 Bytes L,H,D
	CALL LHSPCE
	LD A,H
	CALL AHSPCE
	LD A,D
	CALL AHEX
	JP CRLF
MODUL:	PUSH DE
	LD L,A
MODUL1:	XOR A
	CALL MODU
	LD A,H
	INC A
	CALL NZ,MODOUT
	INC L
	JR NZ,MODUL1
	POP DE
	RET
 
MODU:	;VR:AF,H,BC,(D)	;UP 26 MODU
	LD H,0B8H
	LD C,80H
	LD B,L
	CP 2
	JR NC,MDL2
	LD D,(HL)
MDL1:	IN H,(C)
	RET
 
MDL2:	LD (HL),D
	LD B,L
	INC B
	IN A,88H
	DJNZ NRAM0
	AND 0F5H
	BIT 0,D
	JR Z,RAM01
	SET 1,A
RAM01:	BIT 1,D
	JR Z,OUTB
	SET 3,A
OUTB:	OUT 88H,A
	JR MDL1
 
NRAM0:	DJNZ NIRM
	BIT 0,D
	RES 2,A
	JR Z,OUTB
	SET 2,A
	JR OUTB
 
NIRM:	DJNZ NROM
	;Neu: Segmentschaltung!
	LD	a,d
	RLA
	CPL		;Seg 01=BASIC
	AND	60h	;Seg 11=EDAS
	LD	h,a	;Seg 21=WordPro
	IN	a,89h	;Seg 31=FORTH?
	AND	9fh
	OR	h
	OUT	89h,A
	IN	a,88h
	RLA
	LD H,D
	RR H
	RRA
	JR OUTB
 
NROM:	LD B,L
	OUT (C),D
	JR MDL1
 
	DEFW 7F7FH	;>JUMP<
	DEFB "JUMP"
	DEFB 1
	RET Z
	LD A,L
	;
JUMP:	OR A		;UP 27 JUMP
	JR Z,SYS
	LD B,A
	LD C,80H
	IN A,(C)
	INC A
	JP Z,ERRM
	LD D,0FFH
	CALL MOSW2
	in	a,88h
	and	7eh
	JR SYS1
SYS:
	IN	a,88h
	res	4,a	;res "NMI"
SYS1:	DI
	JP 0B7B4H
 
;====== POWER ON =======================
;(Einspr}nge PWRON,NEWOS,BYE)
 
PWRON:	DI
	LD SP,1C4H
;	LD A,3FH
;	OUT 88H
	CALL MODSW1
	XOR A
	LD B,0E0H
	LD H,A		;Clear Memo
	LD L,A
PWRO1:	LD (HL),A
	INC L
	JR NZ,PWRO1
	INC H
	DJNZ PWRO1
	LD C,80H	;Modul off
PWRO2:	OUT (C),a
	DJNZ PWRO2
NEWOS:	DI
	CALL SYSI	;Systeminit
	ld	a,0ah
PWRO4:	LD (0B79BH),A	;Windows
	CALL WCOPY
	sub 1
	JR NC,PWRO4
	CALL MODSW
 
BYE:	LD SP,1C4H	;UP 0D BYE
;	LD A,1FH
;	OUT 88H		;init.MEM on !!
	CALL SYSI
	JR MEN1
 
	DEFW 7F7FH	;>MENU<
	DEFB "MENU"
	DEFB 1
	;
	POP HL
MEN1:	CALL OSTR
	DEFB 0CH
	DEFB 0AH
	DEFB "* HC-CAOS 3.4i *"
	DEFB 0
MENU:	LD HL,0C000H	;UP 46 MENU
	LD C,L
	LD B,L
MEN2:	CALL CRLF
MEN3:	CALL BRKT
	JR C,LOOP
	LD A,(IX+9)
MEN4:	CPIR
	JP PO,LOOP
	CPI
	JR NZ,MEN4
	CALL OCHRP
MEN5:	LD A,(HL)
	CP 2
	JR C,MEN2
	CP 30H
	JR C,MEN6
	CP 60H
	JR NC,MEN6
	CALL OCHR
	INC HL
	DEC BC
	JR MEN5
MEN6:	CALL CLLN
	JR MEN3
 
NLP1:	POP HL		;LOOP
NLP2:	CALL ERRM
LOOP0:	LD A,0BH
	CALL C,OCHR
	CALL CLLN
LOOP:	CALL OCHRP	;UP 12 LOOP
	CALL INLIN
	JR C,LOOP0	;Brk
	INC DE
	LD A,(DE)
	CP 21H
	JR C,LOOP
	CALL MSUCH
	JR NC,NLP2
	PUSH HL
	CALL GARG
	JR C,NLP1
	LD HL,LOOP
	EX (SP),HL
	LD A,(HL)
	INC HL
	PUSH HL
	AND A
	CALL LARG
	CALL Z,SCROFF
	AND A
	RET
 
MSUCH:	LD HL,0C000H
	LD B,L
	LD C,L
	LD A,(IX+9)
 
ZSUCH:	CPIR		;UP 1D ZSUCH
	SCF
	CCF
	RET PO
	CPI
	JR NZ,ZSUCH
	PUSH AF
	PUSH DE
ZS1:	LD A,(DE)
	CP 21H
	JR C,ZS3
	INC DE
	CPI
	JR Z,ZS1
ZS2:	POP DE
	POP AF
	JR ZSUCH
ZS3:	LD A,(HL)
	CP 2
	JR C,ZS4
	CP 20H
	JR C,ZS2
	INC HL
	JR ZS3
ZS4:	POP BC
	POP AF
	SCF
	RET
 
WAIT	;UP 14 WAIT
	LD	B,A
	XOR	A
WAIT0	CALL	WAIT1
	DJNZ	WAIT0
	RET
 
WAIT1:	DEC A
	RET Z
	PUSH AF
	POP AF
	JR WAIT1
 
CBNRO:	CALL CLLN
BNROST:	LD A,(IX+2)
AHOSTR:	CALL AHEX
	;
OSTR:	EX (SP),HL	;UP 23 OSTR
	CALL ZKOUT
	EX (SP),HL
	RET
 
NORM:	CALL NIN	;UP 13 NORM
	;
NOUT:	LD HL,ZEI0	;UP 20 NOUT
	;
SOUT:	PUSH HL		;UP 1E SOUT
	LD HL,(0B7B9H)
	EX (SP),HL
	LD (0B7B9H),HL
	POP HL
	RET
 
NIN:	LD HL,ZEI4	;UP 21 NIN
	;
SIN:	PUSH HL		;UP 1F SIN
	LD HL,(0B7BBH)
	EX (SP),HL
	LD (0B7BBH),HL
	POP HL
	RET
 
BRKT:	CALL KBDS	;UP 2A BRKT
BRKT1:	CP 3
	SCF
	RET Z
	CP 13H
	SCF
	CCF
	RET NZ
	CALL RESFL
	CALL KBD1
	JR BRKT1
 
KBD:	BIT 6,(IX+8)	;UP 4 KBD
KBD1:	PUSH HL
	PUSH DE
	PUSH BC
	JR NZ,KBD8
KBD2:	CALL CUCP
KBD3:	CALL KBDZ
	JR NC,KBD3
	CALL CUCP
KBD4:	BIT 5,(IX+8)
	LD D,A
	CALL NZ,RCLICK
	LD A,D
	LD HL,0B7A2H
	BIT 4,(HL)
	CALL NZ,CRT
	JR NZ,KBD2
KBD5:	CP 1BH
	JR NZ,KBD6
	SET 4,(HL)
	JR KBD2
 
KBD6:	CP 0F1H
	JP C,POPS3
	SET 6,(IX+8)
	SUB 0F0H
	LD B,A
	LD HL,0B900H
KBD7:	LD A,(HL)
	AND A
	INC HL
	JR NZ,KBD7
	DJNZ KBD7
	JR KBD9
 
KBD8:	CALL BRKT
	JR C,KBD10
	LD HL,(0B7D1H)
KBD9:	LD A,(HL)
	INC HL
	LD (0B7D1H),HL
	AND A
	JP NZ,POPS3
KBD10:	RES 6,(IX+8)
	JR KBD2
 
;*** CCP ***
 
INLIN:	CALL INTB
	CALL OCHR
	CP 0DH
	JR Z,ILN1
	CP 3
	JR NZ,INLIN
	SCF
ILN1:	PUSH AF
	CALL CRLF
	LD DE,(0B7A0H)
	CP D
	JR NZ,ILN2
	LD A,(0B79FH)
	LD D,A
ILN2:	DEC D
	PUSH HL
	CALL DABR
	EX DE,HL
	POP HL
	POP AF
	RET
 
HLHX:	LD A,H		;UP 1A HLHX
	CALL AHEX
LHSPCE:	LD A,L
AHSPCE:	CALL AHEX
	;
SPAC:	LD A,20H	;UP 2B SPAC
SPAC0:	JP OCHR
 
ERRM:	CALL OSTR	;UP 19 ERRM
	DEFB "Error"
	DEFB 7
	DEFB 0
	;
CRLF:	CALL OSTR	;UP 2C CRLF
	DEFB 0DH
	DEFB 0AH
	DEFB 0
	RET
 
HOME:	LD A,10H	;UP 2D HOME
	JR SPAC0
 
CLLN:	LD A,2
	JR SPAC0
 
AHEX:	PUSH AF		;UP 1C AHEX
	RRA
	RRA
	RRA
	RRA
	CALL AHEX1
	POP AF
AHEX1:	AND 0FH
	ADD A,90H
	DAA
	ADC A,40H
	DAA
	JR SPAC0
 
HLDE:	CALL HLDE1	;UP 1B HLDE
HLDE1:	CALL HLHX
	EX DE,HL
	RET
 
RHEX0:	INC DE
	;
RHEX:	LD A,(DE)	;UP 18 RHEX
	CP 20H
	JR Z,RHEX0
	XOR A
	LD HL,0B798H
	LD (HL),A
	DEC HL
	LD (HL),A
	DEC HL
	LD (HL),A
RH1:	LD A,(DE)
	OR A
	RET Z
	CP 20H
	RET Z
	SUB 30H
	RET C
	CP 0AH
	JR C,RH2
	SUB 7
	AND 0DFH
	CP 0AH
	RET C
	CP 10H
	CCF
	RET C
RH2:	INC DE
	INC (HL)
	INC HL
	RLD
	INC HL
	RLD
	DEC HL
	DEC HL
	JR Z,RH1
	DEC DE
	SCF
	RET
 
GARG:	LD BC,0B781H	;UP 22 GARG
	XOR A
	LD (BC),A
	INC DE
GARG1:	CALL RHEX
	RET C
	LD A,(HL)
	OR A
	RET Z
	INC HL
	INC BC
	LD A,(HL)
	LD (BC),A
	INC HL
	INC BC
	LD A,(HL)
	LD (BC),A
	LD L,81H
	INC (HL)
	LD A,(HL)
	ADD A,0F5H
	JR NC,GARG1
	RET
 
;*** Systeminit ***
 
SYSI:	LD HL,KCTAB0
	LD D,6+2	;+2:V.24-Interf.
	CALL INIMEI
	LD DE,0B799H
	LD BC,STBL1
	LDIR
	LD E,0D8H
	LD C,STBL2
	LDIR
	LD A,1
	;
SIXD:	DI		;UP 31 SIXD
	LD HL,ISRTAB
	LD (0B7D7H),A
	LD I,A
	LD E,0E4H
	LD D,A
	LD BC,0CH
	LDIR
	PUSH DE
	POP IX
	LD (IX+8),88H
	LD (IX+9),7FH
	LD (IX+0EH),LO(KTAB)
	LD (IX+0FH),HI(KTAB)
	LD D,4
	LD HL,KCTAB1
	CALL INIME
	LD HL,103H
	LD (0B800H),HL
SIXD2:	LD A,(IX+7)
	AND 1FH
	LD (IX+7),A
SIXD3:	LD A,0FFH
	OUT 89H,A
	LD (IX+5),0
	LD (IX+6),0B7H
	EI
	JP RESFL
 
INIEA:	PUSH BC		;UP 43 INIEA
	LD C,(HL)
	INC HL
	LD B,(HL)
	INC HL
	OTIR
	POP BC
	RET
 
INIMEI:	IM 2
INIME:	CALL INIEA	;UP 44 INIME
	DEC D
	JR NZ,INIME
	RET
 
;*** Tape-Routinen ***
 
	DEFW 7F7FH	;>SAVE<
	DEFB "SAVE"
	DEFB 1
	;
	CP 2

	JP C,ERRM
SAVE1:	CALL OSTR
	DEFB "Name :"
	DEFB 0
	CALL INLIN
	RET C
	LD HL,6
	ADD HL,DE
	;
SAVE:	LD DE,0B700H	;UP 36 SAVE
	LD BC,11
	LDIR
	XOR A
	LD (DE),A
	LD HL,0B781H
	LD E,10H
	LD C,15H
	LDIR
	CALL NBWI
	RES 5,(IX+7)
	LD HL,(0B782H)
SAVE0:	LD (IX+5),L
	LD (IX+6),H
	LD DE,80H
	ADD HL,DE
	LD DE,(0B784H)
	SBC HL,DE
	CCF
	JP C,NBW1
	CALL NBW
	JP C,CRO0
	JR SAVE0
 
LARG:	LD BC,(0B786H)	;UP 15 LARG
	LD DE,(0B784H)
	LD HL,(0B782H)
	LD A,(0B781H)
	RET
 
NBL1:	CALL OSTR
	DEFB "???"
	DEFB 0
NBL2:	JP CMBI		;END CSRO
 
	DEFW 7F7FH	;>VERIFY<
	DEFB "VERIFY"
	DEFB 1
	;
VERIFY:	RES 0,(IX+7)	;UP 11 VERIFY
	JR LOAD0
 
	DEFW 7F7FH	;>LOAD<
	DEFB "LOAD"
	DEFB 1
	;
LOAD:	SET 0,(IX+7)	;UP 10 LOAD
	;
LOAD0:	CALL IMBII
	CALL NBR
	RES 5,(IX+7)
LOAD1:	JR C,NBL2	;>CSRO
	LD HL,0B700H
	LD B,11
LOADN:	LD A,(HL)
	INC HL
	CALL CRT
	DJNZ LOADN
	CALL SPAC
	BIT 0,(IX+7)
	JR Z,LOAD4
	LD L,10H
	LD A,(HL)
	SUB 2
	CP 8		;A=0..7
	JR NC,NBL1
	RLCA
	RLCA
	LD H,A
	LD A,(IX+7)
	AND 3
	OR H
	LD (IX+7),A
	LD BC,(0B715H)
	LD DE,(0B713H)
	LD HL,(0B711H)
	LD A,(0B781H)
	AND A
	JR Z,LOAD3
	PUSH BC
	LD BC,(0B782H)
	ADD HL,BC
	EX DE,HL
	ADD HL,BC
	EX DE,HL
	BIT 3,(IX+7)
	JR NZ,LOAD2
	EX (SP),HL
	ADD HL,BC
	EX (SP),HL
LOAD2:	POP BC
LOAD3:	LD (0B782H),HL
	LD (0B784H),DE
	LD (0B786H),BC
	CALL HLDE
LOAD4:	CALL CRLF
	EX DE,HL	;Ziel=DE
LOAD5:	CALL NBR
	JR C,LOAD1	;>CSRO
	BIT 0,(IX+7)
	JR Z,LOAD6
	PUSH HL
	SBC HL,DE
	LD BC,80H
	SBC HL,BC
	ADD HL,BC
	JR NC,BLC1
	LD C,L
BLC1:	LD HL,0B700H
	LDIR
	POP HL
LOAD6:	INC (IX+2)	;FF?
	JR NZ,LOAD5
	;
CSRI:	CALL CMBI	;UP 0B CSRI
	LD A,(IX+7)
	RRA
	RET NC		;bei VER.
	AND 0EH
	RES 0,(IX+7)
	RET Z		;2 ARG
	;
	BIT 1,(IX+7)	;AutoSt.enable ?
	JR Z,CSRI3
CSRI1:	CALL OSTR
	DEFB "Run"
	DEFB 0
	CALL YESNO
	JR Z,CSRI3
	CP "S"
	RET NZ
	LD A,3
	LD (0B781H),A
	CALL SAVE1	;PROGR. COPY
	JR CSRI1
 
CSRI3:	LD HL,(0B786H)
	JP (HL)		;AUTOSTART-ADR.
 
YESNO:	;PA:Z=1 bei YES, RG A
	CALL OSTR
	DEFB "? (Y):"
	DEFB 0
	CALL INTB
	PUSH AF
	CALL OCHR
	CALL CRLF
	POP AF
	RES 5,A
	CP "Y"
	RET
 
NBR:	;NewBlockRead
	PUSH HL
	LD L,4		;4 Versuche
	LD H,(IX+3)
NBR0:	CALL BRKT
	JR C,NBREND
	CALL PV1
	DEFB 5		;Saubere Schale
	LD A,(IX+2)
	PUSH AF
	CP H
	JR Z,NBR2
	INC A		;FF?
	JR NZ,NBR4
	LD A,L
	CP 4		;4 Versuche
	JR NZ,NBR4	;Kein 1.Vers.
	DEC H
	JR Z,NBR41	;01 erwartet
	INC H
NBR2:	POP AF
	JR C,NBR5
	BIT 5,(IX+7)
	JR NZ,NBR3
	CALL CBNRO
	DEFB "> "
	DEFB 0
NBR3:	INC H
	LD (IX+3),H
NBREND:	POP HL
	RET
 
NBR41:	INC H
NBR4:	POP AF
	CALL BNROST
	DEFB "*"
	DEFW 808H
	DEFB 8
	DEFB 0
	JR NBR0
 
NBR5:	LD H,A		;falls FF
	DEC L
	JR Z,NBR6
	CALL BNROST
	DEFB "? "
	DEFB 7
	DEFB 0
	JR NBR0
 
NBR6:	CALL BNROST
	DEFB "!"
	DEFB 1EH	;CRNL
	DEFB 0
	JR NBR3
 
NBW:	;NewBlockWrite
	CALL BRKT
	RET C
NBW1:	LD BC,(0B7DAH)	;mit CY=1 !
	BIT 5,(IX+7)
	JR Z,NBW2
	LD BC,500H
NBW2:	JP C,CSRO
	CALL PV1
	DEFB 1		;MBOT
NBW3:	CALL BNROST
	DEFB "<"
	DEFB 0DH
	DEFB 0
	RET
 
NBWI:	CALL ISROI
	CALL CLLN
	JR NBW3
 
;*** Monitor ***
 
	DEFW 7F7FH	;>COLOR<
	DEFB "COLOR"
	DEFB 1
	;
COLOR:	PUSH AF
	LD A,1FH
	AND L
	RLA
	RLA
	RLA
	LD L,A
	POP AF
	CP 2
	LD A,E
	JR NC,COL1
	LD A,(0B7A3H)
COL1:	AND 7
	OR L
COL2:	LD (0B7A3H),A
	RET
 
ESC2:	LD A,(0B7A3H)	;Blinken on/off
	XOR 80H
	JR COL2
 
DPMEMO:	CALL HLHX
	PUSH HL
	LD B,C
DPM1:	LD A,(HL)
	INC HL
	CALL AHSPCE
	DJNZ DPM1
	POP HL
	LD B,C
	LD A,9
	CALL OCHR
DPM2:	LD A,(HL)
	INC HL
	CALL CSTBT
	DJNZ DPM2
	RET
 
CSTBT:	PUSH HL		;UP 42 CSTBT
	LD HL,0B7A2H
	SET 3,(HL)
	CALL OCHR
	RES 3,(HL)
	POP HL
	RET
 
	DEFW 7F7FH	;>DISPLAY<
	DEFB "DISPLAY"
	DEFB 1
	;
DISP:	SUB 3		;UP 3B DISP
	JR NC,DISP1
	LD C,8
	INC A
	JR Z,DISP1
	LD E,4
DISP1:	PUSH DE
DISP2:	CALL DPMEMO
	CALL CRLF
	CALL BRKT
	JR C,DISP3
	DEC E
	JR NZ,DISP2
	CALL INTB
DISP3:	POP DE
	CP 3
	RET Z
	CP 13H
	JR NZ,DISP1
	JR MO1
 
	DEFW 7F7FH	;>MODIFY<
	DEFB "MODIFY"
	DEFB 1
	;
	LD C,E
	CP 2
	JR NC,MO1
MODI:	LD C,1		;UP 2E MODI
MO1:	CALL DPMEMO
	LD A,5
	LD (0B7A0H),A
	CALL INLIN
	RET C
	PUSH HL
	CALL RHEX
	LD A,(HL)
	POP HL
	JR C,MO10
	AND A
	JR Z,MO1
	LD HL,(0B797H)
MO2:	PUSH HL
	CALL RHEX
	LD A,(HL)
	AND A
	INC HL
	LD A,(HL)
	POP HL
	JR Z,MO4
MO3:	LD (HL),A
	INC HL
MO4:	LD A,(DE)
	CP "."
	RET Z
	CP ","
	JR NZ,MO5
	INC DE
	LD A,(DE)
	INC DE
	JR MO3
MO5:	CP ":"
	JR NZ,MO6
	DEC HL
	JR MO1
MO6:	CP "/"
	JR NZ,MO7
	INC DE
	CALL RHEX
	JR C,MO10
	LD HL,(0B797H)
	JR MO1
MO7:	CP 27H		;Hochkomma
	JR NZ,MO9
	INC DE
MO8:	LD A,(DE)
	INC DE
	AND A
	JR Z,MO1
	CP 27H		;Hochkomma
	JR Z,MO4
	LD (HL),A
	INC HL
	JR MO8
MO9:	AND A
	JR Z,MO1
	CP 20H
	JR Z,MO2
MO10:	CALL ERRM
	JR MO1
 
	DEFW 7F7FH	;>WINDOW<
	DEFB "WINDOW"
	DEFB 1
	;
	AND A
	JR Z,WINAK
	DEC A
	JR Z,WINAK0
	CP 3
	JR C,ERRM2
	LD H,L
	LD L,C
	LD D,E
	LD A,(0B788H)
	LD E,A
	LD A,(0B78AH)
	JR NZ,WIN5
	LD A,(0B79BH)
WIN5:	CALL WININ
	RET NC
ERRM2:	JP ERRM
 
WININ0:	LD A,(0B79BH)	;von BASIC
WININ:	PUSH AF		;UP 3C WININ
	CALL PART
IAD21:	JP C,IAD2
	POP AF
	PUSH DE
	PUSH HL
	CALL WCOPY
	POP HL
	POP DE
	LD (0B79CH),HL
	LD (0B79EH),DE
	LD (0B7A0H),BC
	RET
 
WINAK0:	LD A,L
WINAK:	CALL WCOPY	;UP 3D WINAK
WINAK1:	CALL WINANF	;von BASIC
	RET C
	INC HL
	EX DE,HL
	JR WCPY1
 
WINANF:	LD HL,0B79BH
	LD A,(HL)
	ADD A,0F6H
	RET C
	ADD A,A
	LD E,A
	ADD A,A
	ADD A,A
	ADD A,E
	LD E,A
	LD D,0B9H
	AND A
	RET
 
PART:	ADD A,0F6H
	RET C
	LD A,D
	SUB 1
	RET C
	ADD A,H
	RET C
	ADD A,0E0H
	RET C
	LD A,E
	SUB 1
	RET C
	ADD A,L
	RET C
	ADD A,0D8H
	RET
 
WCOPY:	PUSH AF
	CALL WINANF
	JR C,IAD21
	POP AF
	LD (HL),A
	INC HL
WCPY1:	LD BC,0AH
JPLD:	LDIR
	OR A
	RET
 
KDISP1	INC HL
KYDISP:	LD A,(HL)
	AND A
	RET Z
	CALL CSTBT
	JR KDISP1
 
	DEFW 7F7FH	;>KEY<
	DEFB "KEY"
	DEFB 1
	;
	JR Z,KEYLI
	LD A,L
	;
KEY:	AND A		;UP 39 KEY
	LD HL,0B900H
	JR Z,KKILL
	CP 0DH
	RET NC
	LD B,A
KEY1:	LD A,(HL)
	INC HL
	AND A
	JR NZ,KEY1
	DJNZ KEY1
	CALL KYDISP
KEY2:	PUSH AF
	DEC HL
KEY3:	POP AF
KEY4:	CALL INTB
	CP 13H
	JP Z,CRLF
	PUSH AF
	LD B,0
	DEC A
	JR NZ,KEY5
	LD A,(HL)
	AND A
	JR Z,KEY3
	LD D,H
	LD E,L
	PUSH HL
	INC HL
	LD A,9CH
	SUB L
	LD C,A
	LDIR
	POP HL
	POP AF
	CALL OCHR
	JR KEY2
KEY5:	LD A,(0B99AH)
	AND A
	JR NZ,KEY3
	PUSH HL
	LD A,9BH
	SUB L
	LD C,A
	LD HL,0B99AH
	LD DE,0B99BH
	LDDR
	POP HL
	POP AF
	INC HL
	LD (HL),A
	CALL CSTBT
	JR KEY4
 
KKILL:	LD B,09CH
KKIL1:	LD (HL),A
	INC HL
	DJNZ KKIL1
	RET
 
KEYLI:	LD HL,0B900H	;UP 3A KEYLI
	LD BC,0CF0H
KEYL0:	INC C
	CALL CLLN
	LD A,C
	CALL AHOSTR
	DEFB " :"
	DEFB 0
	CALL KDISP1
	CALL CRLF
	DJNZ KEYL0
	RET
 
CUCP:	PUSH HL		;UP 25 CUCP
	PUSH DE
	PUSH AF
	LD DE,(0B7A0H)
	CALL DABR
	JR C,CEND
	LD A,(HL)
	CALL PADR1
	OR A
	JR NZ,CFARB
	SET 5,L
	SET 0,H
	LD A,(HL)
	XOR 7FH
	LD (HL),A
	JR CEND
 
CFARB:	LD A,(DE)
	CPL
	LD (DE),A
	SET 5,E
	LD A,(DE)
	CPL
	BIT 7,(IX+8)
	JR NZ,CFAB1
	XOR 4
CFAB1:	LD (DE),A
CEND:	POP AF
	JR PUDEND
 
;*** Grafiktreiber ***
 
PUDE:	DEFB 3EH	;UP 2F PUDE
	;
PUSE:	XOR A		;UP 30 PUSE
	PUSH HL
	PUSH DE
	LD HL,(0B7D3H)
	LD DE,(0B7D5H)
	OR A
	JR NZ,PUDEJP
	CALL WTESTV
	CALL NC,POINT
PUDEND:	POP DE
	POP HL
	RET
 
PUDEJP:	CALL WTESTV
	JR C,PUDEND
	PUSH BC
	CALL BADR
	LD B,A
	LD C,(HL)
	CPL
	AND C
	LD (HL),A
	LD A,B
	AND C
	LD A,(DE)
	POP BC
	JR PUDEND
 
LINE:	EXX		;UP 3E LINE
	PUSH HL
	PUSH DE
	PUSH BC
	LD DE,(0B788H)
	LD HL,(0B784H)
	EXX
	CALL LARG
	LD D,B
	LD E,C
LINE1:	XOR A
	SBC HL,DE
	JR NC,LINE2
	ADD HL,DE
	EX DE,HL
	EXX
	EX DE,HL
	EXX
	JR LINE1
LINE2:	EXX
	PUSH DE
LINE3:	SBC HL,DE
	JR NC,LINE4
	ADD HL,DE
	EX DE,HL
	OR 1
	JR LINE3
LINE4:	PUSH HL
	EXX
	POP BC
	PUSH HL
	SBC HL,BC
	POP HL
	PUSH BC
	JR NC,LINE5
	EX (SP),HL
	OR 2
LINE5:	PUSH HL
	LD B,H
	LD C,L
	EXX
	POP BC
	POP DE
	LD H,B
	LD L,C
	SRL H
	RR  L
	EXX
	POP HL
	EX DE,HL
	INC BC
LINE6:	CALL SHLDE
	EXX
	AND A
	SBC HL,DE
	JR NC,LINE7
	ADD HL,BC
LINE7:	EXX
	BIT 1,A
	JR NZ,VDE
	JR NC,IHL
VDE:	BIT 0,A
	INC DE
	JR Z,IDE
	DEC DE
	DEC DE
IDE:	JR C,IHL
	DEC HL
IHL:	CPI
	JP PE,LINE6
	;
CIREND:	POP BC
	POP DE
	POP HL
	EXX
	RET
 
CIRCLE:	EXX		;UP 3F CIRCLE
	PUSH HL
	PUSH DE
	PUSH BC
	LD A,(0B786H)
	LD C,A
	LD D,C
	CALL MULT
	LD H,B
	LD L,A
	LD D,H
	LD E,L
	LD A,C
	LD B,0
	SLA C
	RL  B
	DEC BC
	PUSH BC
	LD BC,1
	EXX
	LD C,A
	LD B,0
CIR1:	CALL CIRUP1
	CALL CIRUP1
	EXX
	AND A
	SBC HL,BC
	INC BC
	INC BC
	SBC HL,DE
	ADD HL,DE
	EXX
	JR NC,CIR2
	EXX
	EX (SP),HL
	EX DE,HL
	AND A
	SBC HL,DE
	DEC DE
	DEC DE
	EX DE,HL
	EX (SP),HL
	EXX
	DEC C
CIR2:	INC B
	LD A,C
	CP B
	JR NC,CIR1
	POP BC
	JR CIREND
 
CIRUP1:	LD A,B
	LD B,C
	LD C,A
	XOR A
	LD D,A
	LD HL,(0B784H)
	PUSH HL
	LD E,C
	ADD HL,DE
	CALL CIRUP2
	XOR A
	LD D,A
	POP HL
	LD E,C
	SBC HL,DE
CIRUP2:	PUSH HL
	LD HL,(0B782H)
	LD E,B
	AND A
	SBC HL,DE
	POP DE
	CALL SHLDE
	PUSH DE
	LD D,A
	LD E,B
	ADD HL,DE
	ADD HL,DE
	POP DE
	;
SHLDE:	PUSH AF
	CALL WTEST
	JR C,ENDS
	PUSH HL
	PUSH DE
	CALL POINT
	POP DE
	POP HL
ENDS:	POP AF
	RET
 
POINT:	CALL BADR
	PUSH DE
	LD DE,(0B7D6H)
	BIT 1,E
	JR NZ,NOTPT
	BIT 0,E
	JR NZ,XORPT
	OR (HL)
XORPT1:	BIT 2,E
	LD (HL),A
	LD A,E
	POP DE
	RET NZ
	AND 0F8H
	LD H,A
	LD A,(DE)
	AND 7
	OR H
	LD (DE),A
	RET
 
NOTPT:	CPL
	AND (HL)
	LD (HL),A
	POP DE
	RET
 
XORPT:	XOR (HL)
	JR XORPT1
 
BADR:	LD A,L
	LD D,E
	AND 7
	ADD HL,HL
	ADD HL,HL
	ADD HL,HL
	ADD HL,HL
	ADD HL,HL
	LD L,H
;************************************************************************************************************
		message "??? >ADD A,BITTAB<"
;
	ADD A,LO(BITTAB)
;
;************************************************************************************************************
	LD E,A
	LD A,D
	CPL
	LD H,A
	LD A,(0B7D8H)
	LD D,A
	LD A,(DE)
	JP PADR
 
WTEST:	LD A,D
	ADD A,0FFH
	RET C
WTESTV:	LD A,H
	OR A
	RET Z
	ADD A,0FEH
	RET C
	LD A,L
	ADD A,0C0H
	RET
 
;*** Byteweise Tape-Routinen***
 
MBOUT:	LD E,D		;UP 38 MBOT
	LD D,A
	PUSH DE
	PUSH BC
	BIT 3,E
	JR NZ,INITO
	LD A,(0B7DCH)
INITO2:	LD H,0B7H
	LD L,A
	LD (HL),D
	INC A
	BIT 6,E
	JR NZ,CLOSEO
	AND 7FH
	LD (0B7DCH),A
	JR NZ,POPS
	BIT 1,(IX+7)
	JR Z,KINITO
	CALL NBWI
	RES 1,(IX+7)
	JR POPS
 
KINITO:	CALL NBW
	JR NC,POPS
IOERRO:	CALL CRO0
IOERR:	LD HL,(0B7C9H)
	CALL IRMOFF
	JP (HL)
 
CLOSEO:	BIT 1,(IX+7)
	PUSH AF
	CALL NZ,NBWI
	POP AF
	CALL Z,NBW
	SCF
	CALL NBW1
POPS:	POP BC
	POP DE
	RES 3,E
	RET
 
INITO:	SET 1,(IX+7)
	LD A,(HL)
	CP 'U'+80H
	JR NZ,INITO1
	SET 5,(IX+7)
INITO1:	PUSH DE
	LD DE,0B700H
	LD BC,11
	LDIR
	LD A,E
	POP DE
	JR INITO2
 
IOERRI:	CALL CMBI
	JR IOERR
 
MBIN:	LD E,D		;UP 37 MBIN
	PUSH DE
	PUSH BC
	BIT 6,E
	JR NZ,CLOSI
	BIT 3,E
	JR NZ,INII
	LD A,(0B7DCH)
	OR A
	LD L,A
	CALL Z,NBR
	JR C,IOERRI
BYTHOL:	LD H,0B7H
	LD D,(HL)
	LD A,L
	INC A
	AND 7FH
	LD (0B7DCH),A
	LD A,D
POPS1:	JR POPS
 
INII:	RES 1,(IX+7)
	CALL IMBII
	CALL NBR
	JR C,IOERRI
	LD DE,0B700H
	LD B,11
	LD A,(DE)
	CP 'U'+80H
	JR Z,INII1
	RES 5,(IX+7)
INII1:	ADD A,29H
	JR NC,INII2
	LD A,(DE)
	SUB 4
	LD (DE),A
	INC DE
	LD (DE),A
	INC DE
	LD (DE),A
	DEC DE
	DEC DE
	LD (35EH),A
INII2:	LD A,(DE)
	CALL CRT
	CP (HL)
	JR Z,INII3
	SET 1,(IX+7)
INII3:	INC DE
	INC HL
	DJNZ INII2
	CALL CRLF
	BIT 1,(IX+7)
	RES 1,(IX+7)
	JR NZ,IOERRI
	LD L,E
	JR BYTHOL
 
CLOSI:	CALL CMBI
	JR POPS1
 
;*** Sonstiges ***
 
ZKOUT:	LD A,(HL)		;UP 45 ZKOUT
	INC HL
	AND A
	RET Z
	CALL OCHR
	JR ZKOUT
 
SQR:	XOR A		;UP 40 SQR
	DEC A
	LD E,A
	LD D,A
SQR1:	INC A
	INC DE
	INC DE
	SBC HL,DE

	RET M
	JR SQR1
 
MULT:	XOR A		;UP 41 MULT
	LD B,8
	RR D
MU1:	JR NC,MU2
	ADD A,C
MU2:	RRA
	RR D
	DJNZ MU1
	LD B,A
	LD A,D
	RET
 
;	f}r PWRON
MODSW:	LD DE,UMODL	;IO-Modul
	CALL MOSW
	LD (0B7E1H),A
MODSW1:	LD DE,43F6H	;64K
	CALL MOSW
	LD E,0F4H	;16K
	OR A
	CALL Z,MOSW
	LD DE,0C1FBH	;8K ROM
MOSW:	LD BC,680H
MOSW1:	XOR A
	INC B
	RET Z
	IN A,(C)
	CP E
	JR NZ,MOSW1
	LD A,1
MOSW2:	LD H,0B8H
	LD L,B
	OUT (C),D
	LD (HL),D
	RET
 
;*** Druckertreiber (V24) ***
 
PRZK:	;folgt TAB, 1.Byte L{nge
	EX (SP),HL
	LD B,(HL)
	INC HL
PRZK1:	LD A,(HL)
	INC HL
	CALL PRINT
	DJNZ PRZK1
	EX (SP),HL
	RET
 
ECHO:	PUSH AF
	PUSH HL
	LD HL,0B7A2H
	BIT 4,(HL)
	CALL CRT
	JR NZ,ECH4
	BIT 3,(HL)
	JR Z,ECH2
	AND 7FH
	CP 20H
	JR C,ECH1
	CP 7FH
	JR NZ,ECH4
ECH1:	LD A,"_"
	JR ECH3
 
ECH2:	CP 9		;CUR
	JR NZ,ECH3
	LD A," "
ECH3:	CP 0FH		;SH+CLR
ECH4:	POP HL
	JR Z,PRT	;POP+RET
	DEFB 0EDH	;NOP-BYTE
	;
PRINT:	PUSH AF
	NOP		;Freihalte-Bytes
	NOP		; f. CENTR.Vers.
WT:	CALL BRKT
	JR C,PRT
	IN A,SIO+2
	BIT 2,A
	JR Z,WT
	POP AF
	OUT SIO,A
	RET
	NEG
	NEG
PRT:	POP AF
	RET
 
SHCLX:	;Reaktion auf SH+CLR
	LD A,(0B7E1H)
	DEC A
	JR NZ,HCPX
	LD HL,(0B7B9H)
	LD A,(HL)
	OR A
	JR Z,SHX1
	LD HL,PRINT
	LD BC,ZEI0
	JR SHX2
SHX1:	LD HL,ECHO
	LD BC,ZEI2
SHX2:	LD (0B7BEH),HL
	LD (0B7B9H),BC
	RET
 
ESC6:	LD A,(0B7E1H)	;HCOPY
	OR A
	RET Z
	JR HCPX0
HCPX:	CP 2
	RET NC
HCPX0:	PUSH DE
	LD HL,0
HCPX1:	CALL PRZK
	DEFB 9
	DEFB 1BH
	DEFB "J"	;Vorschub 1/9"
	DEFB 24
	DEFB 0DH
	DEFB 1BH
	DEFB "*"	;Plottergrafik
	DEFB 5
	DEFW 140H
HCPX2:	PUSH HL
	CALL PADR
	CALL RDX
	LD C,8
HCPX3:	LD HL,0B78EH	;ARG7
	LD B,8
HCPX4:	RL (HL)
	INC L
	RLA
	DJNZ HCPX4
	LD L,0A2H
	BIT 2,(HL)
	JR Z,HCPX5
	CPL		;negiert
HCPX5:	CALL PRINT
	DEC C
	JR NZ,HCPX3
	POP HL
	INC L
	LD A,L
	CP 40
	JR NZ,HCPX2
	LD L,0
	LD A,H
	ADD A,8
	LD H,A
	JR NC,HCPX1
	CALL PRZK
	DEFB 2
	DEFW 0D0AH
	POP DE
	RET
 
RDX:	;liest Zeichen nach ARG7
	LD DE,0B78EH
	LD BC,80H
	PUSH HL
	CALL RDX1
	POP HL
	SET 5,L
RDX1:	LD A,4
RDX2:	LDI
	ADD HL,BC
	INC BC
	DEC A
	JR NZ,RDX2
	RET
 
	DEFW 7F7FH	;>V24><
	DEFB "V24"
	DEFB 1
	;
	LD A,L
	LD (0B7E1H),A
	RET
 
	DEFW 7F7FH	;>SEND<
	DEFB "SEND"
	DEFB 1
	;
	RET Z
	LD B,A
	LD HL,0B782H
SND1:	LD A,(HL)
	INC HL
	INC HL
	CALL PRINT
	DJNZ SND1
	RET
 
	DEFW 7F7FH	;>USER<
	DEFB "USER"
	DEFB 1
	;
	CP 3

	JP Z,JPLD
	DEC A
	JP NZ,ERRM
	JP (HL)
 
	DEFW 7F7FH
	DEFB "SEEK"
	DEFB 1
 
	CP	3
	RET	C
	EX	DE,HL
	SBC	HL,DE
	LD	B,H
	LD	C,L
	EX	DE,HL
SCHL	LD	DE,0B786H
	LD	A,(DE)
	CPIR
	JP	PO,CRLF
	PUSH	BC
	PUSH	HL
	LD	A,(0B781H)
	SUB	3
	LD	B,A
	JR	Z,GEF
NBYT	INC	DE
	INC	DE
	LD	A,(DE)
	CP	(HL)
	INC	HL
	JR	NZ,NGEF
	DJNZ	NBYT
GEF	POP	HL
	POP	BC
	DEC	HL
	CALL	HLHX
	INC	HL
	CALL	BRKT
	JP	C,CRLF
	DEFB	11H
NGEF	POP	HL
	POP	BC
	JR	SCHL
 
;*** Tabellen ***
 
ESCTAB:	DEFW ASC5
	DEFW ESC1
	DEFW ESC2
	DEFW ESC3
	DEFW ESC4
	DEFW MODUL
	DEFW ESC6
	DEFW ESC7
	DEFW ASC6
	DEFW ESCF
	DEFW MOT
 
 
SUTAB:	DEFW CRT	;0
	DEFW MBOT	;1
	DEFW 0B7BDH	;UOUT 1
	DEFW 0B7C3H	;UOUT 2
	DEFW KBD	;4
	DEFW MBI	;5
	DEFW 0B7C0H	;USIN 1
	DEFW 0B7C6H	;USIN 2
	DEFW ISRO	;8
	DEFW CSRO	;9
	DEFW ISRI	;0A
	DEFW CSRI	;0B
	DEFW KBDS	;0C
	DEFW BYE	;0D
	DEFW KBDZ	;0E
	DEFW COLOR	;0F
	DEFW LOAD	;10
	DEFW VERIFY	;11
	DEFW LOOP	;12
	DEFW NORM	;13
	DEFW WAIT	;14
	DEFW LARG	;15
	DEFW INTB	;16
	DEFW INLIN	;17
	DEFW RHEX	;18
	DEFW ERRM	;19
	DEFW HLHX	;1A
	DEFW HLDE	;1B
	DEFW AHEX	;1C
	DEFW ZSUCH	;1D
	DEFW SOUT	;1E
	DEFW SIN	;1F
	DEFW NOUT	;20
	DEFW NIN	;21
	DEFW GARG	;22
	DEFW OSTR	;23
	DEFW OCHR	;24
	DEFW CUCP	;25
	DEFW MODU	;26
	DEFW JUMP	;27
	DEFW LDMA	;28
	DEFW LDAM	;29
	DEFW BRKT	;2A
	DEFW SPAC	;2B
	DEFW CRLF	;2C
	DEFW HOME	;2D
	DEFW MODI	;2E
	DEFW PUDE	;2F
	DEFW PUSE	;30
	DEFW SIXD	;31
	DEFW DABR	;32
	DEFW TCIF	;33
	DEFW PADR	;34
	DEFW TON	;35
	DEFW SAVE	;36
	DEFW MBIN	;37
	DEFW MBOUT	;38
	DEFW KEY	;39
	DEFW KEYLI	;3A
	DEFW DISP	;3B
	DEFW WININ	;3C
	DEFW WINAK	;3D
	DEFW LINE	;3E
	DEFW CIRCLE	;3F
	DEFW SQR	;40
	DEFW MULT	;41
	DEFW CSTBT	;42
	DEFW INIEA	;43
	DEFW INIME	;44
	DEFW ZKOUT	;45
	DEFW MENU	;46
 
 
CRTTAB:	DEFW DUMMY
	DEFW CLEAR
	DEFW DELLN
	DEFW DUMMY	;BRK
	DEFW DUMMY
	DEFW ASC5	;Tab
	DEFW ASC6	;Color
	DEFW BEL
	DEFW CUL
	DEFW CUR
	DEFW CUD
	DEFW CUU
	DEFW CLS
	DEFW CRN
	DEFW DUMMY
	DEFW HCOPY
	DEFW HOMEPG
	DEFW PAGE
	DEFW SCROL
	DEFW DUMMY	;STOP
	DEFW CLICK
	DEFW DUMMY
	DEFW SHLOCK
	DEFW DUMMY
	DEFW CEL
	DEFW CRN	;CCR
	DEFW INS
	DEFW ESC
	DEFW DUMMY	;LIST
	DEFW DUMMY	;RUN
	DEFW CRNL	;CONT
	DEFW DEL
 
 
KTAB:	DEFB "Ww"
	DEFB "Aa"
	DEFB "2", 022H
	DEFW 01908H
	DEFW 00C10H
	DEFB "-="
	DEFW 0F8F2H
	DEFB "Yy"
	DEFB "Ee"
	DEFB "Ss"
	DEFB "3#"
	DEFB "^]"
	DEFW 00F01H
	DEFB ":*"
	DEFW 0F9F3H
	DEFB "Xx"
	DEFB "Tt"
	DEFB "Ff"
	DEFB "5%"
	DEFB "Pp"
	DEFW 0021FH
	DEFW 04030H
	DEFW 0FBF5H
	DEFB "Vv"
	DEFB "Uu"
	DEFB "Hh"
	DEFW 02737H
	DEFB "Oo"
	DEFW 0141AH
	DEFB "9)"
	DEFW 00303H
	DEFB "Nn"
	DEFB "Ii"
	DEFB "Jj"
	DEFB "8("
	DEFB " ["
	DEFB "Kk"
	DEFB ",<"
	DEFW 01B13H
	DEFB "Mm"
	DEFB "Zz"
	DEFB "Gg"
	DEFB "6&"
	DEFW 0051BH	;T.nicht vorh.
	DEFB "Ll"
	DEFB ".>"
	DEFW 0FCF6H
	DEFB "Bb"
	DEFB "Rr"
	DEFB "Dd"
	DEFB "4$"
	DEFB "_", "\\"
	DEFB "+;"
	DEFB "/?"
	DEFW 0FAF4H
	DEFB "Cc"
	DEFB "Qq"
	DEFW 01616H
	DEFB "1!"
	DEFW 0120AH
	DEFW 0110BH
	DEFW 01809H
	DEFW 0F7F1H
	DEFW 0D0DH
 
 
ISRTAB:	DEFW ISRPA
	DEFW ISRPB
	DEFW INTEND
	DEFW ISRC1
	DEFW ISRC2
	DEFW ISRC3
 
 
KCTAB0:
	DEFB	8AH	;PIO A S
	DEFB	2
	DEFB	0E4H
	DEFB	4FH
	;
	DEFB 88H	;PIO A D
	DEFB 1		;Anz.
	DEFB 1FH	;/NMI=H!
	;
	DEFB CTC	;SIO-CTC
	DEFB 2
	DEFB 47H	;9600 Bd
	DEFB 5BH
	;
	DEFB SIO+2	;Drucker SIO
	DEFB 6		;Takt *1
	DEFB 4		;8 Datenbits
	DEFB 4		;1 Stopbit
	DEFB 3		;keine Parit{t
	DEFB 20H
	DEFB 5
	DEFB 6AH
KCTAB1:
	DEFB 8AH	;PIO A C
	DEFB 3		;Anz.
	DEFB 0E4H	;I-Vektor
	DEFB 0FH	;Byteout
	DEFB 3		;DI
	;
	DEFB 8BH	;PIO B C
	DEFB 3		;Anz.
	DEFB 0E6H	;I-Vektor
	DEFB 0FH	;Byteout
	DEFB 83H	;EI
	;
	DEFB 8CH	;CTC 0
	DEFB 1		;Anz.
	DEFB 0E8H	;I-Vektor
	;
	DEFB 8EH	;CTC 2
	DEFB 2		;Anz.
	DEFB 47H	;Z{hler,DI
	DEFB 0CH	;Blink-ZK
 
 
SYSTAB:	DEFW SHCLX	;HCADR
	DEFB 0		;WINNR
	DEFW 0		;WINON
	DEFW 2028H	;WINLG
	DEFW 0		;CURSO
	DEFB 0		;STBT
	DEFB 39H	;COLOR
	DEFW SCRLPG	;WEND
	DEFW 0EE00H	;CCTL 0
	DEFW 0FE00H	;CCTL 1
	DEFW 0EE00H	;CCTL 2
	DEFW 0FE00H	;CCLT 3
	DEFW 01C4H	;SYSP
	DEFW SUTAB	;SUTAB
	DEFW CRTTAB	;CTAB
	OUT 88H,A		;JUMP IN NEUES
	JP 0F012H	; CAOS
	DEFW ZEI0	;OUTAB
	DEFW ZEI4	;INTAB
	JP PRINT	;USER OUT 2
	JP DUMMY	;USER  IN 2
	JP DUMMY	;USER OUT 3
	JP DUMMY	;USER  IN 3
	DEFW 0DC82H	;ZEIG. IO ERROR
STBE1:	;
	DEFB 0FDH	;H-Teil Bittab
	DEFB "%"	;Prompter
	DEFW 0A0H	;Vortonl{nge
	DEFB 0		;Byte-Z{hler
	DEFW ESCTAB
	DEFB 11		;L{nge ESC-TAB.
	DEFB 5		;COUNT
STBE2:	;
	;
STBL1	EQU STBE1-SYSTAB
STBL2	EQU STBE2-STBE1
 
 
;	DS 0FDF8h-$,0FFH        ; ??? 256 Bytes Reserve ???
	DEFB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
	DEFB 0FFH, 0FFH, 0FFH, 0FFH, 0FFH
	DEFB 0FFH

BITTAB:	DEFB 80H
	DEFB 40H
	DEFB 20H
	DEFB 10H
	DEFB 08H
	DEFB 04H
	DEFB 02H
	DEFB 01H

	message "0FE00H Zeichensatz"
	ORG 0FE00H
    binclude CAOS34ZSF.bin
		message " END #####################################################################"

	END

