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

CF42ASM 
;	CAOS ROM F
 
	ORG	0F000H
 
	JP	PWRON
	JP	PV1	;m. DEFB nr
	JP	PV2	;(ARGC)=nr
	JP	PV3	;E=nr
	JP	PV4	;E=nr, IRM e/a
	JP	RCALL	;m. DEFW offset
	JP	BYE	;JUMP-Einsprung
	JP	PV5	;E=nr
	JP	IRMON
	JP	IRMOF
	PUSH	BC	;PV6, (ARGC)=nr
	CALL	IRMON
	CALL	PV2
	JR	PV51
 
PV5	PUSH	BC
	CALL	IRMON
	CALL	PV3
PV51	CALL	IRMOF
	POP	BC
	RET
 
PV4	PUSH	AF
	IN	A,88H
	SET	2,A
	OUT	88H	;IRM ein
	POP	AF
	CALL	PV3
SCROFF	PUSH	AF
	IN	A,88H
	RES	2,A
	OUT	88H	;IRM aus
	POP	AF
	RET
 
PV1	DI
	PUSH	HL
	POP	HL
	POP	HL
	INC	HL	;nr }bergehen
	PUSH	HL
	DEC	HL	;(HL)=nr
	DEC	SP
	DEC	SP
	EI
	PUSH	AF
	PUSH	DE
	LD	E,M
PV22	LD	D,0
	LD	HL,(SUTAB)
	ADD	HL,DE
	ADD	HL,DE	;HL=Pos. in Tab
	LD	E,M
	INC	HL
	LD	D,M
	EX	DE,HL
	POP	DE
	POP	AF
EXRT	EX	(SP),HL
	RET		;UP anspringen
 
PV2	AND	A	;VR: F
PV21	PUSH	HL
	PUSH	DE
	PUSH	BC
	PUSH	HL
	LD	HL,POPS3;Returnadresse
	EX	(SP),HL	;kellern
	PUSH	HL
	PUSH	AF
	PUSH	DE
	JR	C,PV22	;falls PV3
	LD	A,(ARGC);sonst E
	LD	E,A	;beschaffen
	JR	PV22
 
PV3	SCF		;VR: F
	JR	PV21
 
IRMON	POP	BC	;R}ckkehradr.
	PUSH	IY
	LD	IY,0	;SP in IY merken
	ADD	IY,SP	;(Kein UP ver-
	DI		;{ndert IY!)
	LD	(IX+11),A
	IN	A,88H
	SET	2,A	;IRM ein
	SET	5,A	;LED ein
	OUT	88H
	LD	SP,(SYSP)
	EI
	LD	A,(IX+11)
	PUSH	BC
	RET		;wie JP (BC)
 
IRMOF	POP	BC	;analog IRMON
	LD	(IX+11),A
	IN	A,88H
	RES	2,A
	RES	5,A
	DI
	OUT	88H
	LD	SP,IY
	EI
	LD	A,(IX+11)
	POP	IY
	PUSH	BC
	RET
 
RCALL	;Relativer UP-Aufruf
	EX	(SP),HL	;VR: DE
	LD	E,M
	INC	HL
	LD	D,M
	INC	HL	;DE=offset
	EX	DE,HL
	ADD	HL,DE	;zur Absolut-
	EX	DE,HL	;adr. addieren
	EX	(SP),HL
	PUSH	DE
	RET		;wie JP (DE)
 
POPS3	POP	BC	;f}r PV2..6
	POP	DE
	POP	HL
	RET
 
PWRON	;Einschalt-Init
	LD	SP,1C4H
	XOR	A
	LD	B,A
	LD	C,A
PWR1	LD	(BC),A	;Speicher
	DEC	C	;l|schen
	JR	NZ,PWR1
	DJNZ	PWR1
	LD	C,80H	;Module
PWR2	OUT	(C),A	;abschalten
	DJNZ	PWR2
	CALL	SYSI	;IRM-Init usw.
	XOR	A
PWR3	LD	(WINNR),A
	CALL	WCOPY	;Fenstervektor-
	INC	A	;speicher init.
	CP	0AH
	JR	C,PWR3
	CALL	ESC3
	LD	A,0CH	;Zweitbild
	CALL	CRT	;l|schen
	CALL	ESC1
	CALL	CON	;M003 suchen,
	CALL	V24INI	;einschalten,
	CALL	COFF	;Tab. kopieren
	JR	PWR4
 
BYE	;Tasten-RESET
	LD	SP,1C4H
	CALL	SYSI	;IRM-Init usw.
	;
PWR4	LD	A,(0A800H)
	DEC	A	;M003 vorh.?
	JR	NZ,PWR5
	CALL	CON
	CALL	V24OC	;Druckerinit
	CALL	UMINIT	;SIO B f}r
	CALL	COFF	;Interrupt
PWR5	LD	BC,880H	;ROM-Modul mit
	IN	A,(C)	;Strukturbyte
	DEC	A	;01?
	JR	NZ,MEN0	;nein
	LD	A,43H
	OUT	(C),A	;ein ab 4000H
	LD	(0B808H),A
	LD	A,(IX+4)
	AND	0FCH	;RAM4 aus
	LD	(IX+4),A
	OUT	86H
	JP	4000H	;anspringen
 
;
	DEFW	7F7FH
	DEFM	'MENU'
	DEFB	1
	POP	HL	;Stack clear
MEN0	CALL	OSTR
	DEFB	0CH	;CLS,CUD
	DEFB	0AH
	DEFM	'* KC-CAOS 4.2 *'
	NOP
MENU	LD	HL,0C000H	;**46**
	LD	C,L
	LD	B,L	;BC=0
MEN1	CALL	CRLF
MEN2	CALL	OSTR
	DEFB	2
	DEFM	'%'	;CLLN,Prompt
	NOP
	CALL	BRKT
	JR	C,LOOP3
	LD	A,(IX+9)
MEN3	CPIR
	JP	PO,LOOP3;ausgesucht.
	CPI		;2tes Mal?
	JR	NZ,MEN3
MEN4	LD	A,M
	CP	2	;Epilog?
	JR	C,MEN1
	CP	'0'	;<30h?
	JR	C,MEN2
	CP	'`'	;=60h, Kleinb.?
	JR	NC,MEN2
	CALL	OCHR
	INC	HL
	DEC	BC
	JR	MEN4
 
LOOP1	POP	HL
LOOP2	CALL	ERRM
LOOP	CALL	OSTR		;**12**
	DEFM	'%'	;Prompt
	NOP
LOOP3	CALL	INLIN
	INC	DE	;Zeichen danach
	LD	A,(DE)
	CP	' '
	JR	Z,LOOP
	AND	A
	JR	Z,LOOP
	CALL	MSUCH
	JR	NC,LOOP2;nicht gef.
	PUSH	HL
	CALL	GARG	;Argumente
	JR	C,LOOP1
	LD	HL,LOOP	;R}ckkehradr.
	EX	(SP),HL	;kellern
	LD	A,M	;A=Epilog
	INC	HL	;}bergehen
	PUSH	HL
	AND	A
	CALL	LARG
	RET	NZ	;A=1: nach (HL)
	JP	SCROFF	;A=0: IRM aus,
			;dann nach (HL)
 
MSUCH	LD	HL,0C000H
	LD	B,L
	LD	C,L	;BC=0
	LD	A,(IX+9)
ZSUCH	CPIR			;**1D**
	SCF
	CCF
	RET	PO	;nicht gef.
	CPI
	JR	NZ,ZSUCH
	PUSH	AF
	PUSH	DE
ZS1	LD	A,(DE)
	INC	DE
	CP	'!'	;keine SPC und
	JR	C,ZS3	;Steuerzeichen
	CPI
	JR	Z,ZS1
ZS2	POP	DE
	POP	AF
	JR	ZSUCH
	;
ZS3	LD	A,M
	CP	2	;Epilog?
	JR	C,ZS4
	CP	' '
	JR	C,ZS2
	INC	HL
	JR	ZS3
	;
ZS4	POP	AF
	POP	AF
	SCF
	RET		;gefunden
 
WTUP	DEC	A	;UP f}r WAIT
	RET	Z
	PUSH	AF
	POP	AF
	JR	WTUP
 
WAIT	LD	B,A		;**14**
	XOR	A
WAIT1	CALL	WTUP
	DJNZ	WAIT1
	RET
 
BNROST	LD	A,(IX+2);Blocknummer u.
AHOSTR	CALL	AHEX	;RG A und
OSTR	EX	(SP),HL	;folgende ZK
OSTR1	LD	A,M	;ausgeben
	INC	HL
	AND	A	;bis 00-Byte
	JP	Z,EXRT
	CALL	OCHR
	JR	OSTR1
 
NORM	CALL	NIN		;**13**
NOUT	LD	HL,ZEI0		;**20**
SOUT	PUSH	HL		;**1E**
	LD	HL,(OUTAB)
	EX	(SP),HL
	LD	(OUTAB),HL
	POP	HL
	RET
 
NIN	LD	HL,ZEI4		;**21**
SIN	PUSH	HL		;**1F**
	LD	HL,(INTAB)
	EX	(SP),HL
	LD	(INTAB),HL
	POP	HL
	RET
 
INTB	PUSH	HL		;**16**
	LD	HL,(INTAB)
	JR	INTA1
OCHR	PUSH	HL		;**24**
	LD	HL,(OUTAB)
INTA1	PUSH	DE	;s.a. PV1
	PUSH	BC	;(sehr {hnlich)
	LD	E,M
	LD	D,0
	LD	HL,(SUTAB)
	PUSH	AF
	ADD	HL,DE
	ADD	HL,DE
	POP	AF
	LD	E,M
	INC	HL
	LD	D,M
	EX	DE,HL
	CALL	JPHL
POP3	POP	BC
	POP	DE
	POP	HL
	RET
 
KBD	PUSH	HL		;**04**
	PUSH	DE
	PUSH	BC
KBD1	BIT	6,(IX+8);F-Taste aktiv?
	JR	NZ,KBD12;ja
KBD2	LD	DE,(CURSO)
	CALL	DABR
	XOR	A	;Dummy
	CP	M	;hinter Cursor?
	JR	Z,KBD5	;ja-Strich
	LD	E,A	;nein-Klotz,E=0
KBD3	CALL	CUCP
	INC	E	;Klotz e/a-Merk
	LD	B,0FH	;F00h mal
KBD4	CALL	KBDZ	;abfragen
	JR	C,KBD7
	DEC	BC
	LD	A,B
	OR	C
	JR	NZ,KBD4
	JR	KBD3	;dann Cursor
 			;wieder weg usw
KBD5	CALL	PADR0
	SET	1,L	;vorletzte
	SET	2,L	;Cursorzeile
	LD	A,M
	LD	B,A	;merken
	XOR	7FH
	LD	M,A
KBD6	CALL	KBDZ	;abfragen
	JR	NC,KBD6
	LD	M,B	;r}cksetzen
	JR	KBD8
 
KBD7	BIT	0,E	;Klotz gerade
			;ein?
	CALL	NZ,CUCP	;ja - wegnehmen
KBD8	LD	D,A
	BIT	5,(IX+8);Click ein?
	LD	BC,307H
	CALL	NZ,CLIK
	LD	A,D
	LD	HL,STBT
	BIT	4,M	;ESC aktiv?
	JR	Z,KBD9
	LD	DE,(CURSO)
	CALL	CRT1
	LD	(CURSO),DE
	JR	KBD2
 
KBD9	CP	1BH	;ESC?
	JR	NZ,KBD10
	SET	4,M	;ja
	JR	KBD2
 
KBD10	CP	0F1H	;F-Taste?
	JR	C,POP3
	SET	6,(IX+8);ja - merken
	AND	0FH
	LD	B,A
	LD	HL,0B900H
KBD11	LD	A,M	;Pos. in F-
	AND	A	;Puffer best.
	INC	HL
	JR	NZ,KBD11
	DJNZ	KBD11
	JR	KBD13
 
KBD12	CALL	BRKT	;Abbruch?
	JR	C,KBD15
	LD	HL,(FTAST);Zeiger auf
KBD13	LD	A,M	;n{chstes CHR
	CP	1BH	;ESC?
	JR	NZ,KBD14
	INC	HL
	LD	(FTAST),HL
	LD	HL,STBT
	SET	4,M	;ESC merken
	JP	KBD1
 
KBD14	INC	HL
	LD	(FTAST),HL;Zeiger rett.
	AND	A	;Null-Ende?
	JR	NZ,KBD16
KBD15	RES	6,(IX+8);ja - inaktiv
	JP	KBD2
 
KBD16	LD	HL,STBT
	BIT	4,M
	JP	Z,POP3
	LD	DE,(CURSO)
	CALL	CRT1	;ESC-Seq. ausf.
	LD	(CURSO),DE
	JP	KBD1
 
KCTAB	;IRM-Defaulttabelle
	DEFW	NOT	;Hardcopy
	DEFB	0	;WINNR
	DEFW	0	;WINON
	DEFW	2028H	;WINLG
	DEFW	0	;CURSO
	DEFB	0	;STBT
	DEFB	39H	;COLOR
	DEFW	SCRLPG	;WEND
	DEFW	0EE00H	;CCTL0
	DEFW	0FE00H	;1
	DEFW	0EE00H	;2
	DEFW	0FE00H	;3
	DEFW	1C4H	;SYSP
	DEFW	SUTB	;SUTAB
	DEFW	CRTTAB	;CTAB
	OUT	88H	;BJUMP
	JP	0F012H
	DEFW	ZEI0	;OUTAB
	DEFW	ZEI4	;INTAB
	JP	NOOP	;UOUT1
	JP	NOOP	;UIN1
	JP	NOOP	;UOUT2
	JP	NOOP	;UIN2
	DEFW	0DC82H	;IOERR
	DEFW	0B200H	;VRAM
 
	DEFW	L3TB	;L3TAB
	DEFB	11	;L3SIZ
	DEFB	5	;COUNT
	DEFB	0	;HCPZ
	DEFW	0A801H	;INTV1
	DEFB	8	;INTV1L
	DEFW	0A809H	;INTV2
	DEFB	9	;INTV2L
	DEFB	6	;HCPZ2
 
INLIN	CALL	INTB		;**17**
	CALL	OCHR
	CP	0DH	;ENTER?
	JR	NZ,INLIN
	CALL	CRLF	;PA: A=0
	LD	DE,(CURSO)
	CP	D	;1 Zeile durch
			;PAGE-Mode?
	JR	NZ,INLI1
	LD	A,(WINLG+1)
	LD	D,A	;D korrigieren
INLI1	DEC	D	;Zeile dr}ber
	PUSH	HL
	CALL	DABR
	EX	DE,HL
	POP	HL	;PA: DE
NOOP	RET
 
HLHX	LD	A,H		;**1A**
	CALL	AHEX
	LD	A,L
AHSPC	CALL	AHEX
SPACE	LD	A,20H		;**2B**
SPAC0	JP	OCHR
 
ERRM	CALL	OSTR		;**17**
	DEFM	'ERROR'
	DEFB	7	;BEEP
	NOP
	;
CRLF	CALL	OSTR		;**2C**
	DEFW	0A0DH
	NOP
	RET
 
HOME	LD	A,10H		;**2D**
	JR	SPAC0
 
AHEX	PUSH	AF		;**1C**
	RRA		;Tetradentausch
	RRA
	RRA
	RRA
	CALL	AHEX0	;erst rufen,
	POP	AF	;dann hinein-
			;laufen
AHEX0	AND	0FH	;Maske
	ADD	90H	;]bliche
	DAA		;Routine
	ADC	40H	;f}r die
	DAA		;Hexausgabe
	JR	SPAC0
 
HLDE	CALL	HLDE1		;**1B**
HLDE1	CALL	HLHX
	EX	DE,HL
	RET
 
RHEX0	INC	DE
RHEX	LD	A,(DE)		;**18**
	CP	' '	;Trennzeichen
	JR	Z,RHEX0	;}bergehen
	XOR	A
	LD	HL,NUMVX+1
	LD	M,A
	DEC	HL	;HL=NUMVX
	LD	M,A
	DEC	HL	;HL=NUMNX
	LD	M,A	;alles nullsetz
RH1	LD	A,(DE)
	OR	A	;Ende-Dummy?
	RET	Z
	CP	' '	;Ende-Space?
	RET	Z
	SUB	'0'
	RET	C
	CP	0AH
	JR	C,RH2
	SUB	7
	AND	0DFH	;Klein>Gro~
	CP	0AH
	RET	C
	CP	10H
	CCF
	RET	C
RH2	INC	DE
	INC	M	;NUMNX erh|hen
	INC	HL
	RLD		;Tetrade
	INC	HL	;durchschieben
	RLD
	DEC	HL
	DEC	HL	;RLD setzt auch
	JR	Z,RH1	;Z-Flag!
	DEC	DE	;Fehler: Zahl
	SCF		;zu gro~
	RET
 
GARG	CALL	CON		;**22**
	CALL	GARGC
	JP	COFF
 
SYSI	LD	DE,HCADR
	LD	HL,KCTAB
	LD	BC,34H
	LDIR		;1.St}ck
	LD	C,0CH
	LD	E,L3TAB
	LDIR		;2.St}ck
	LD	HL,103H	;RAM0,IRM,
	LD	(0B800H),HL
	LD	HL,300H	;ROMC,RAM8,
	LD	(0B802H),HL
	LD	A,3	;RAM4
	LD	(0B804H),A
	DI		;korrekt
			;anmelden
	IM	2
	LD	D,7
	LD	HL,IOTAB;Kan{le init.
	CALL	INIME
	LD	IX,1F0H
	LD	(IX+1),28H;OUT84-Merker
	LD	(IX+4),63H;OUT86-Merker
	LD	A,1
	;
SIXD	LD	HL,ISRTAB	;**31**
	LD	(MIXIT),A
	LD	E,0E2H
	LD	D,A
	LD	BC,0EH	;Interrupttab.
	LDIR		;kopieren
	LD	H,(IX+1);alte Merker
	LD	L,(IX+4);mitnehmen
	PUSH	DE
	POP	IX
	LD	(IX+8),88H
	LD	(IX+1),H;und eintragen
	LD	(IX+4),L
	LD	(IX+14),KTAB;=L(KTAB)
	LD	(IX+15),0FCH;=H(KTAB)
	LD	(IX+9),7FH
	DI
	IM	2
	LD	A,(MIXIT)
	LD	I,A
	LD	D,4
	LD	HL,IOTAB2
	CALL	INIME	;Kan{le init.
	;
KPUFF	LD	(IX+5H),0
	LD	(IX+6H),0B7H
	RET
 
INIEA	PUSH	BC		;**43**
	LD	C,M	;1.Byte=Adr.
	INC	HL
	LD	B,M	;2.Byte=Anz.
	INC	HL
	OTIR
	POP	BC
	RET
 
INIME	DI			;**44**
INIME1	CALL	INIEA
	DEC	D	;D Kan{le
	JR	NZ,INIME1
	EI
	RET
 
IOTAB	DEFB	8AH
	 DEFB	1
	  DEFB	0E4H	;Int-Vektor
	DEFB	88H
	 DEFB	1
	  DEFB	0FH	;Datenbyte
	DEFB	8AH
	 DEFB	2
	  DEFB	0FH	;Byte-Out
	  DEFB	3	;DI
	DEFB	8BH
	 DEFB	3
	  DEFB	0E6H	;Int-Vektor
	  DEFB	0FH	;Byte-Out
	  DEFB	83H	;EI
	DEFB	89H
	 DEFB	1
	  DEFB	0FFH	;Datenbyte
	DEFB	84H
	 DEFB	1
	  DEFB	28H	;Ausgabebyte
	DEFB	86H
	 DEFB	1
	  DEFB	63H	;Ausgabebyte
IOTAB2	DEFB	8AH
	 DEFB	1
	  DEFB	0E4H	;Int-Vektor
	DEFB	8BH
	 DEFB	1
	  DEFB	0E6H	;Int-Vektor
	DEFB	8CH
	 DEFB	1
	  DEFB	0E8H	;Int-Vektor CTC
	DEFB	8EH
	 DEFB	2
	  DEFB	47H	;DI,Z{hler,RES
	  DEFB	0CH	;Zeitkonstante
;
	DEFW	7F7FH
	DEFM	'SAVE'
	DEFB	1
	CP	2	;mind. 2 Arg.
	JP	C,ERRM
	CALL	OSTR
	DEFM	'NAME :'
	NOP
	CALL	INLIN
	LD	HL,6	;'NAME :'
	ADD	HL,DE	;}bergehen
	;
SAVE	LD	DE,0B700H	;**36**
	LD	BC,11	;name nach
	LDIR		;Puffer
	XOR	A
	LD	(DE),A
	LD	HL,ARGN	;alle Arg.
	LD	E,10H	;mit ARGN
	LD	C,15H
	LDIR		;nach Puffer
	CALL	KPUFF	;Standard setz
	CALL	ISRO
	LD	HL,(ARG1)
SAV1	LD	(IX+5),L
	LD	(IX+6),H
	CALL	OSTR
	DEFB	2	;CLLN
	NOP
	CALL	BNROST	;Blocknummer
	NOP
	LD	BC,0A0H
	CALL	BRKT
	JP	C,CSROI
	LD	DE,80H
	ADD	HL,DE
	LD	DE,(ARG2)
	SBC	HL,DE	;Ende erreicht?
	JP	NC,CSRO
	CALL	MBO
	JR	SAV1
 
LARG	LD	BC,(ARG3)	;**15**
	LD	DE,(ARG2)
	LD	HL,(ARG1)
	LD	A,(ARGN)
	RET
 
LUP	;LOAD-Unterprogramm
	;PA: CY=1 BRK gedr}ckt
	INC	(IX+3)	;erwarteter Blk
LUP1	CALL	MBI
	JR	NC,LUP3
	CALL	OSTR
	DEFW	909H
	DEFB	9
	DEFM	' '
	NOP
	CALL	BNROST
	DEFM	' ?'	;fehlerhaft
	DEFB	1EH
	NOP
	LD	A,(IX+3)
	DEC	A	;Block 01 erw.?
	JR	Z,LUP1
	CALL	KBD	;nein
	CP	3	;BRK?
	SCF
	RET	Z
	CP	0AH	;CUD?
	JR	NZ,LUP1
LUP3	LD	A,(IX+2)
	LD	B,(IX+3)
	DEC	B	;Block 01 erw.?
	JR	Z,LUP6
	INC	B	;richtige
	CP	B	;Blocknummer?
	JR	Z,LUP5
	INC	A	;Block FF?
	JR	Z,LUP5
LUP4	CALL	BNROST
	DEFM	'*'	;falsche Nr.
	DEFB	19H
	NOP
	JR	LUP1
 
LUP5	CALL	BNROST
	DEFM	'> '	;korrekter Blk.
	DEFB	19H
	NOP
	RET
 
LUP6	DEC	A	;Block 01?
	JR	NZ,LUP4
	CALL	CRLF	;keine Nr,
	LD	HL,0B700H
	LD	B,11	;sondern Name
LUP7	LD	A,M	;ausgeben
	INC	HL
	CALL	CRT
	DJNZ	LUP7
	JP	SPACE
 
NOMC	CALL	OSTR	;wenn kein MC
	DEFM	'???'
	NOP
CLJP	JP	CSROI
;
	DEFW	7F7FH
	DEFM	'VERIFY'
	DEFB	1
VERIF	RES	0,(IX+7)	;**11**
	JR	LOAD0
;
	DEFW	7F7FH
	DEFM	'LOAD'
	DEFB	1
LOAD	SET	0,(IX+7)	;**10**
LOAD0	CALL	ISRI1
	CALL	KPUFF	;Standard setz
	LD	(IX+3),0
	CALL	LUP
LOAD1	JR	C,CLJP	;bei BRK
	BIT	0,(IX+7)
	JR	Z,LOAD4
	LD	L,10H
	LD	A,(IX+7)
	AND	0E3H	;Bits 2..4 Null
	LD	(IX+7),A
	LD	A,M	;Anzahl Arg.
	SLA	A
	SLA	A	;2* schieben
	AND	1CH	;Maske
	OR	(IX+7)
	LD	(IX+7),A
	LD	A,M	;Anzahl Arg.
	SUB	2
	CP	9	;MC?
	JR	NC,NOMC
	LD	BC,(0B715H)
	LD	DE,(0B713H)
	LD	HL,(0B711H)
	LD	A,(ARGN)
	AND	A	;Ladeoffset?
	JR	Z,LOAD3
	PUSH	BC
	LD	BC,(ARG1)
	ADD	HL,BC	;AAdr,Eadr
	EX	DE,HL	;umrechnen
	ADD	HL,BC
	EX	DE,HL
	BIT	4,(IX+7);4..7 Args?
	JR	NZ,LOAD2
	EX	(SP),HL	;nein
	ADD	HL,BC	;SAdr umrechnen
	EX	(SP),HL
LOAD2	POP	BC	;SAdr merken
LOAD3	LD	(ARG2),BC
	CALL	HLDE	;AAdr,EAdr ausg
LOAD4	CALL	CRLF
	EX	DE,HL
	;Load-Hauptschleife
LOAD5	CALL	LUP
	JR	C,LOAD1	;BRK
	BIT	0,(IX+7)
	JR	Z,LOAD7	;wenn VERIFY
	PUSH	HL
	SBC	HL,DE
	LD	BC,80H
	SBC	HL,BC
	ADD	HL,BC
	JR	NC,LOAD6
	LD	C,L
LOAD6	LD	HL,0B700H;MC in Spei-
	LDIR		;cher kopieren
	POP	HL
LOAD7	INC	(IX+2)	;Blocknr. FF?
	JR	NZ,LOAD5
	;
CSRI	CALL	CSROI
	LD	A,(IX+7);kein Autostart
	AND	3	;wenn VERIFY,
	DEC	A	;Bit 1(IX+7)=1
	RET	NZ
	LD	A,(IX+7)
	AND	1CH	;und bei nur 2
	CP	0CH	;Ladeargumenten
	LD	(IX+7),0
	RET	C
	LD	HL,(ARG2)
	JP	(HL)	;Ansprung
;
	DEFW	7F7FH
	DEFM	'COLOR'
	DEFB	1
COLR	CALL	CON		;**0F**
	CALL	COLRC
	JP	COFF
 
CSTBT	PUSH	HL		;**42**
	LD	HL,STBT
	SET	3,M
	CALL	OCHR	;Steuerzeichen
	RES	3,M	;darstellen
	POP	HL
	RET
;
	DEFW	7F7FH
	DEFM	'DISPLAY'
	DEFB	1
DISP	CALL	CON		;**3B**
	CALL	DISPC
JCOFF	JP	COFF
 
LDAME	CALL	COFF	;f}r DISPC
	LD	A,M	;und MODIC
JCON	JP	CON
;
	DEFW	7F7FH
	DEFM	'MODIFY'
	DEFB	1
MODI	CALL	CON		;**2E**
	CALL	MODIC
	JR	JCOFF
 
LDMAE	CALL	COFF	;f}r MODIC
	LD	M,A
	JR	JCON
;
	DEFW	7F7FH
	DEFM	'WINDOW'
	DEFB	1
	AND	A	;Kein Arg?
	JR	Z,WINAK	;Aufruf No.0
	DEC	A	;1 Arg?
	JR	Z,WINAKI;Aufruf No.L
	LD	H,L
	LD	L,C
	LD	D,E
	LD	A,(ARG49)
	LD	E,A
	LD	A,(ARGN)
	CP	4
	JR	NZ,WIN1	;PROGRAMMFEHLER
	JR	C,WIN3	;(vertauscht!)
	XOR	A
	JR	WIN2
 
WIN1	LD	A,(ARG49+2);Init No.A
WIN2	CALL	WININ
WIN3	JP	C,ERRM
	RET
 
WININ	CALL	CON		;**3C**
	CALL	WININC
	JP	COFF
 
WINAKI	LD	A,L
WINAK	CALL	WCOPY		;**3D**
	LD	(WINNR),A
	CALL	PART	;Fenster A
	RET	C	;holen
	EX	DE,HL
	LD	DE,0B79CH
	JR	WCOP1
 
PART	;Testet A und berechnet Pos.
	;in Fenstervektorspeicher =DE
	ADD	0F6H
	RET	C
	ADD	A
	LD	E,A
	ADD	A
	ADD	A
	ADD	E
	LD	E,A
	LD	D,0B9H
	AND	A
	RET
 
WCOPY	;Fenster (WINNR) retten
	PUSH	AF
	LD	A,(WINNR)
	CALL	PART
	JP	C,IAD2
	POP	AF
	LD	HL,0B79CH
WCOP1	LD	BC,10
	LDIR
	RET
 
NCHAR	INC	HL
KEYUP	LD	A,M	;f}r KEY
	AND	A
	RET	Z
	CALL	CSTBT
	JR	NCHAR
;
	DEFW	7F7FH
	DEFM	'KEY'
	DEFB	1
	CP	1
	RET	NZ
	LD	A,L
KEY	AND	A		;**3A**
	RET	Z
	CP	0DH	;nur F-Tasten
	RET	NC	;1..C
	LD	B,A
	LD	HL,0B900H
KEY1	LD	A,M	;B Dummys
	INC	HL	;ausz{hlen
	AND	A
	JR	NZ,KEY1
	DJNZ	KEY1
	CALL	KEYUP	;Belegung
			;pr{sentieren
KEY2	PUSH	AF
	DEC	HL
KEY3	POP	AF
KEY4	CALL	INTB
	CP	13H	;STOP-Ende
	JP	Z,CRLF
	PUSH	AF
	LD	B,0
	DEC	A	;CLR?
	JR	NZ,KEY5
	LD	A,M	;Leere Belegung
	AND	A	;nicht l|schen!
	JR	Z,KEY3
	LD	D,H	;DE=Ziel
	LD	E,L
	PUSH	HL
	INC	HL	;HL=Quelle
	LD	A,9CH
	SUB	L	;L{nge, B=0
	LD	C,A	;Pufferrest
	LDIR		;vorziehen
	POP	HL
	POP	AF
	CALL	OCHR
	JR	KEY2
 
KEY5	LD	A,(0B99AH);vorletztes
	AND	A	;Zeichen<>0?
	JR	NZ,KEY3	;ja-voll!
	PUSH	HL
	LD	A,9BH
	SUB	L
	LD	C,A	;L{nge, B=0
	LD	HL,0B99AH
	LD	DE,0B99BH;Pufferrest
	LDDR		;hinterziehen
	POP	HL
	POP	AF
	INC	HL	;Zeichen
	LD	M,A	;eintragen
	CALL	CSTBT	;& anzeigen
	JR	KEY4
 
;
	DEFW	7F7FH
	DEFM	'KEYLIST'
	DEFB	1
KEYLI	CALL	CON		;**39**
	CALL	KEYLIC
	JP	COFF
 
CUCP	;nur f}r Klotz-Cursor!
	PUSH	DE		;**25**
	PUSH	AF
	PUSH	HL
	CALL	PADR0
	JR	C,CUCP2	;au~erhalb
	PUSH	BC
	LD	B,8
CUCP1	LD	A,M
	CPL		;compeln
	LD	M,A
	INC	L
	DJNZ	CUCP1	;8*
	POP	BC
CUCP2	POP	HL
	POP	AF
	POP	DE
	RET
 
PUSE	PUSH	HL		;**30**
	PUSH	DE
	PUSH	BC
	AND	A	;Kennung CY=0
	PUSH	AF
	LD	HL,(HOR)
	LD	DE,(VERT)
	LD	D,0
	JP	PUSEJ
 
PUDE	CALL	CON		;**2F**
	CALL	PUDEC
	JP	COFF
 
CIRCL	LD	A,(ARG3)	;**3F**
	LD	C,A
	LD	L,C
	XOR	A
	LD	B,8
	RR 	L
CIR1	JR	NC,CIR2
	ADD	C
CIR2	RRA
	RR 	L
	DJNZ	CIR1
	LD	H,A	;Achtelkreis
	LD	D,H	;berechnen
	LD	E,L
	LD	A,C
	SLA	C
	RL 	B
	DEC	BC
	PUSH	BC
	LD	BC,1
	EXX
	LD	C,A
	LD	B,0H
CIR3	CALL	CIRUP	;und jeweils 8
	CALL	CIRUP	;Punkte setzen
	EXX
	AND	A
	SBC	HL,BC
	INC	BC
	INC	BC
	SBC	HL,DE
	ADD	HL,DE
	EXX
	JR	NC,CIR4
	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
CIR4	INC	B
	LD	A,C
	CP	B
	JR	NC,CIR3
	POP	AF
	RET
 
CIRUP	;setzt 4 Punkte um Mittelpunkt
	LD	A,B
	LD	B,C
	LD	C,A
	XOR	A
	LD	D,A
	LD	HL,(ARG2)
	PUSH	HL
	LD	E,C
	ADD	HL,DE
	CALL	CIRUP1
	XOR	A
	LD	D,A
	POP	HL
	LD	E,C
	SBC	HL,DE
CIRUP1	PUSH	HL
	LD	HL,(ARG1)
	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	;setzt Punkt auf Pos. HL/DE
	;(wenn m|glich)
	PUSH	HL
	PUSH	DE
	PUSH	BC
	PUSH	AF
PUSEJ	LD	A,L
	AND	7
	ADD	0F8H
	LD	C,A
	LD	B,0FDH
	LD	A,L
	SRL	H
	RRA
	SRL	H
	RRA
	SRL	H
	RRA
	CP	28H	;HL>13Fh?
	JR	NC,POP4
	OR	80H
	LD	H,A
	LD	A,0FFH
	ADD	D	;D>0? (DE>0FFh)
	JR	C,POP4
	XOR	E
	LD	L,A
	LD	A,(FARB)
	LD	D,A
	LD	A,(BC)
	BIT	3,(IX+1);HiRes?
	JR	Z,HIRES
	BIT	1,D	;L|schen?
	JR	NZ,CPLA
	BIT	0,D	;XOR?
	JR	NZ,XORA
	OR	M
XORJ	LD	M,A
	LD	A,(IX+1)
	LD	E,A
	XOR	2	;Farbebene
	DI
	OUT	84H
	LD	A,M
	AND	7
	OR	D
	LD	M,A	;neue vFarbe
	LD	A,E
	OUT	84H
	EI
POP4	POP	AF
	POP	BC
	POP	DE
	POP	HL
	RET
 
XORA	XOR	M
	RES	0,D
	JP	XORJ
 
CPLA	CPL
	AND	M
	LD	M,A
	JP	POP4
 
HIRES	LD	B,A
	OR	M	;Bit setzen
	BIT	3,D	;Farbe Rot?
	JR	NZ,HIR1
	XOR	B	;wieder l|schen
HIR1	LD	M,A
	LD	A,(IX+1)
	LD	C,A
	XOR	2
	DI
	OUT	84H	;Farbebene
	LD	A,B
	OR	M	;setzen
	BIT	4,D	;Farbe T}rkis?
	JR	NZ,HIR2
	XOR	B	;l|schen
HIR2	LD	M,A
	LD	A,C
	OUT	84H
	EI
	JR	POP4
 
LINE	CALL	CON		;**3E**
	CALL	LINEC
	JR	COF
 
MBOUT	CALL	CON		;**38**
	CALL	MBOC
	JR	COF
 
MBIN	CALL	CON		;**37**
	CALL	MBIC
	JR	COF
 
JIOERR	CALL	COFF	;Sprung zu
	LD	HL,(IOERR);?IO ERROR
	CALL	IRMOF
	JP	(HL)
;
	DEFW	7F7FH
	DEFM	'MODUL'
	DEFB	1
ESC5	CALL	CON
	CALL	MODULC
COF	JP	COFF
;
	DEFW	7F7FH
	DEFM	'SYSTEM'
	DEFB	1
ESC6	CALL	CON
	CALL	SYSTC
	JR	COF
 
BASPV	;BASIC-I/O-Verteiler
	PUSH	HL
	PUSH	BC
	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
	LD	A,E
	AND	4FH
	XOR	43H
	JR	NZ,BSA1
	CALL	OSTR
	DEFM	'VERIFY ?(Y):'
	NOP
	CALL	KBD
	CP	'Y'
	CALL	Z,VERIF
BSA1	LD	A,D
	RES	3,E
	CALL	IRMOF
	POP	BC
	POP	HL
	RET
 
BUPTAB	DEFW	2416H	;keine 100h-
	DEFW	3837H	;]berschneidung
	DEFW	0206H
	DEFW	0307H
 
BSA2	CALL	KBDS
	POP	DE
	LD	D,A
	JR	NC,BSA1
	RES	7,E
	JR	BSA1
 
BASBYE	LD	A,(35EH)
	AND	A
	JR	Z,BASB1
	CALL	IRMOF
	CALL	0C641H	;NEW
	CALL	IRMON
BASB1	IN	A,88H
	AND	5FH	;BASIC-ROM aus
	OUT	88H
	JP	LOOP
 
ZKOUT	LD	A,M		;**45**
	INC	HL
	AND	A
	RET	Z
	CALL	OCHR
	JR	ZKOUT
 
TON	CALL	LARG		;**35**
TON1	BIT	1,(IX+8);noch alter Ton
	JR	NZ,TON1
TON2	PUSH	BC
	LD	C,8CH	;CTC0
	CALL	TON4	;starten
	INC	C	;CTC1
	EX	DE,HL
	CALL	TON4	;starten
	POP	BC
	LD	A,C	;Lautst{rke
	XOR	1FH	;da nullaktiv
	OR	81H	;maskieren
	LD	C,A
	LD	A,B
	AND	A	;Dauerton?
	JR	Z,TON3
	RES	7,C	;nein, Blinkaus
	SET	1,(IX+8);neuer Ton
	LD	A,0C7H	;EI,Z{hler 50Hz
	OUT	8EH	;CTC2
	LD	A,B	;Dauer
	OUT	8EH
TON3	LD	B,60H
	IN	A,89H
	AND	B	;RAM8 maskieren
	OR	C
	OUT	89H	;Ltst. ausgeben
	RET
 
TON4	;CTC (C) programmieren mit HL
	LD	A,L
	AND	A	;Ton?
	LD	L,3
	JR	Z,TON6	;kein Ton
	LD	L,A
	LD	A,7	;Zeitgeber
	BIT	0,H	;Vorteiler?
	JR	Z,TON5
	OR	20H	;ja
TON5	OUT	(C),A
TON6	OUT	(C),L
	RET
 
 
ESC1	LD	HL,0B200H
	LD	(VRAM),HL
	LD	A,(IX+1)
	AND	0F8H
OUT84	OUT	84H,A
	LD	(IX+1),A
	RET
 
ESC2	LD	HL,0AD00H
	LD	(VRAM),HL
	LD	A,(IX+1)
	OR	5
	JR	OUT84
 
ESC3	LD	HL,0AD00H
	LD	(VRAM),HL
	LD	A,(IX+1)
	AND	0FEH
	OR	4
	JR	OUT84
 
ESC4	LD	HL,0B200H
	LD	(VRAM),HL
	LD	A,(IX+1)
	OR	1
	AND	0F9H
	JR	OUT84
 
ESC7	LD	HL,STBT
	LD	A,M
	XOR	4
	LD	M,A
	RET
 
ESC9	LD	A,(IX+1)
	XOR	2
	JR	OUT84
 
ESCA	IN	A,89H
	XOR	80H	;Blinkbit
	OUT	89H
	LD	A,(IX+1)
	XOR	8
	JR	OUT84
 
;
	DEFW	7F7FH
	DEFM	'V24OUT'
	DEFB	1
V24OUT	;Druckerroutine		 **47**
	CALL	CON
	CALL	V24OC
	LD	A,0DH
	CALL	PRINT
	LD	A,0AH
	CALL	PRINT
COF1	JP	COFF
 
HCPGM	;Reaktion auf ShCLR
	CALL	CON
	CALL	HCPGMC
	JR	COF1
 
;
	DEFW	7F7FH
	DEFM	'V24DUP'
	DEFB	1
V24DUP	;Duplexroutine		 **48**
	CALL	CON
	CALL	V24DC
	JR	COF1
 
INIDUP	CALL	CON
	CALL	UMINIT
	JR	COF1
 
ECHO	CALL	CRT
PRINT	PUSH	AF
	LD	A,(HCPZ)
	BIT	7,A
	JR	Z,PRINT3;Drucker
	AND	0F0H	;Schreibmasch.
	CP	90H
	JR	Z,S3004	;S3004
	CP	0A0H
	JR	NZ,PRINT3
	POP	AF	;S6005
	PUSH	HL
	PUSH	BC
	LD	HL,ZIBM
	LD	BC,7
	CPIR
	JR	NZ,PRINT2
	LD	C,6
	ADD	HL,BC
	LD	A,M
	JR	PRINT2
 
S3004	POP	AF
	CP	7EH
	JR	NZ,PRINT4
	LD	A,83H	;~
	JR	PRINT4
 
PRINT2	POP	BC
	POP	HL
	PUSH	AF
PRINT3	POP	AF
PRINT4	CP	9	;CUR
	JR	Z,PRINT5
	PUSH	AF
	LD	A,(STBT)
	BIT	3,A
	JR	Z,OFILT1
	POP	AF
	CP	7FH	;und 7Fh
	JR	NZ,PRINT6
PRINT5	LD	A,20H	;nach SPC
PRINT6	CP	20H	;und Steuerzei-
	JR	NC,OFILT;chen nach '_'
	LD	A,'_'	;wandeln
OFILT	;Ausgabe ohne Filter
	PUSH	AF
OFILT1	PUSH	BC
	CALL	LCSO
	LD	A,0AH
	ADD	C
	LD	C,A
	IN	A,(C)
	BIT	2,A	;bereit?
	JR	NZ,OFILT2
	LD	A,1	;nein-warten
	CALL	WAIT
	POP	BC
	JR	OFILT1
OFILT2	POP	BC
	POP	AF
	PUSH	BC
	PUSH	AF
	CALL	LCSO
V24PUT	LD	A,8
	ADD	C
	LD	C,A
	POP	AF
	OUT	(C),A	;Ausgabe
	POP	BC
	RET
 
V24OT	PUSH	AF	;wie OFILT
V24OT1	PUSH	BC
	CALL	LCSOD
	LD	A,0AH
	ADD	C
	LD	C,A
	IN	A,(C)
	BIT	2,A
	JR	NZ,V24OT2
	LD	A,1
	CALL	WAIT
	POP	BC
	JR	V24OT1
V24OT2	POP	BC
	POP	AF
	PUSH	BC
	PUSH	AF
	CALL	LCSOD
	JR	V24PUT
 
V24IN	PUSH	BC
	PUSH	HL
	PUSH	DE
	CALL	LCSOD
	PUSH	BC
	LD	A,0AH
	ADD	C
	LD	C,A
	IN	A,(C)
	BIT	0,A	;bereit?
	JR	NZ,V24IN2
	LD	A,5	;WR5
	OUT	(C),A
	LD	A,0EAH	;DTR on, 8bit,
	OUT	(C),A	;Senderfreigabe
V24IN1	IN	A,(C)
	BIT	0,A	;jetzt bereit?
	JR	NZ,V24IN2
	CALL	BRKT
	JR	C,V24IN4
	JR	V24IN1
 
V24IN2	LD	A,5	;WR5
	OUT	(C),A
	LD	A,6AH	;DTR off usw.
	OUT	(C),A
	POP	BC
	LD	A,8
	ADD	C
	LD	C,A
	IN	A,(C)	;Einlesen
V24IN3	POP	DE
	POP	HL
	POP	BC
	RET
 
V24IN4	POP	BC
	JR	V24IN3
 
LCSO	;Lade C mit SIO-Offset f.V24OUT
	PUSH	AF
	LD	A,(HCPZ)
LCSO1	BIT	2,A
	LD	C,1
	JR	NZ,LCSOE
	DEC	C
LCSOE	POP	AF
	RET
 
LCSOD	;dto. f}r V24DUP
	PUSH	AF
	LD	A,(HCPZ2)
	JR	LCSO1
 
ISRSB	;ISR SIO B f}r MC-Load oder
	;Fremdtastatur
	PUSH	HL
	PUSH	DE
	PUSH	BC
	PUSH	AF
	IN	A,9	;1.Zeichen
	PUSH	AF
	LD	A,18H	;Kanal
	OUT	0BH	;r}cksetzen
	LD	A,5	;WR5
	OUT	0BH
	LD	A,6AH	;DTR off
	OUT	0BH
	POP	AF
	CALL	ISB8
	CP	0DH	;Fremdtastatur?
	JR	Z,ISB3
	CP	1BH	;MC-Programm?
	JR	Z,ISB4
ISB1	CALL	INIDUP	;nichts
ISB2	JP	POPS4
 
ISB3	CALL	INIDUP
	LD	HL,ISB9	;Neue ISR
	DI
	LD	(1E2H),HL
	EI
	JR	ISB2
 
ISB4	LD	A,6
	LD	(HCPZ2),A
	CALL	V24DUP
	CALL	V24IN
	CP	'T'
	JR	Z,ISB5
	CP	'U'
	JR	Z,ISB7
	JR	ISB1
 
ISB5	CALL	V24IN
	LD	L,A
	CALL	V24IN
	LD	H,A
	CALL	V24IN
	LD	C,A
	CALL	V24IN
	LD	B,A
ISB6	CALL	V24IN
	LD	M,A
	INC	HL
	DEC	BC
	LD	A,C
	OR	B
	JR	NZ,ISB6
	JR	ISB1
 
ISB7	CALL	V24IN
	LD	L,A
	CALL	V24IN
	LD	H,A
	CALL	JPHL
	JR	ISB1
 
ISB8	EI
	RETI
 
ISB9	EI
	PUSH	AF
	IN	A,9
	JP	TST7
 
CON	;CAOS-ROM C on
	PUSH	AF
	SET	7,(IX+4)
	LD	A,(IX+4)
	OUT	86H
	POP	AF
	RET
 
COFF	;CAOS-ROM C off
	PUSH	AF
	RES	7,(IX+4)
	LD	A,(IX+4)
	OUT	86H
	POP	AF
	RET
 
MULT	;BA=D*C			 **41**
	CALL	CON
	CALL	MULC
	JR	COFF
 
SQR	CALL	CON		;**40**
	CALL	SQRC
	JR	COFF
 
ISRC2	;CTC2: Tonlg
	CALL	INTEND
	PUSH	AF
	CALL	TOFF
	POP	AF
	RET
 
ZIBM	DEFM	'{|}~[\]'
	DEFB	84H
	DEFB	94H
	DEFB	81H
	DEFB	0E1H
	DEFB	8EH
	DEFB	99H
	DEFB	9AH
 
ZEI0	DEFB	0	;CRT
	DEFB	38H	;MBOUT
ZEI2	DEFB	2	;UOUT1
ZEI3	DEFB	3	;UOUT2
ZEI4	DEFB	4	;KBD
	DEFB	37H	;MBIN
	DEFB	6	;UIN1
	DEFB	7	;UIN2
 
SUTB	DEFW	CRT	;00
	DEFW	MBO	;01
	DEFW	UOUT1	;02
	DEFW	UOUT2	;03
	DEFW	KBD	;04
	DEFW	MBI	;05
	DEFW	UIN1	;06
	DEFW	UIN2	;07
	DEFW	ISRO	;08
	DEFW	CSRO	;09
	DEFW	ISRI	;0A
	DEFW	CSRI	;0B
	DEFW	KBDS	;0C
	DEFW	BYE	;0D
	DEFW	KBDZ	;0E
	DEFW	COLR	;0F
	DEFW	LOAD	;10
	DEFW	VERIF	;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	SPACE	;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	CIRCL	;3F
	DEFW	SQR	;40
	DEFW	MULT	;41
	DEFW	CSTBT	;42
	DEFW	INIEA	;43
	DEFW	INIME	;44
	DEFW	ZKOUT	;45
	DEFW	MENU	;46
	DEFW	V24OUT	;47
	DEFW	V24DUP	;48
 
 
KTAB	DEFM	'Ww'
	DEFM	'Aa'
	DEFM	'2"'
	DEFW	1908H
	DEFW	0C10H
	DEFM	'-='
	DEFW	0F8F2H
	DEFM	'Yy'
	DEFM	'Ee'
	DEFM	'Ss'
	DEFM	'3#'
	DEFM	'^]'
	DEFW	0F01H
	DEFM	':*'
	DEFW	0F9F3H
	DEFM	'Xx'
	DEFM	'Tt'
	DEFM	'Ff'
	DEFM	'5%'
	DEFM	'Pp'
	DEFW	21FH
	DEFM	'0'
	DEFB	40H
	DEFW	0FBF5H
	DEFM	'Vv'
	DEFM	'Uu'
	DEFM	'Hh'
	DEFM	'7'
	DEFB	27H
	DEFM	'Oo'
	DEFW	141AH
	DEFM	'9)'
	DEFW	0303H
	DEFM	'Nn'
	DEFM	'Ii'
	DEFM	'Jj'
	DEFM	'8('
	DEFM	' ['
	DEFM	'Kk'
	DEFM	',<'
	DEFW	1B13H
	DEFM	'Mm'
	DEFM	'Zz'
	DEFM	'Gg'
	DEFM	'6&'
	DEFW	0
	DEFM	'Ll'
	DEFM	'.>'
	DEFW	0FCF6H
	DEFM	'Bb'
	DEFM	'Rr'
	DEFM	'Dd'
	DEFM	'4$'
	DEFM	'_\'
	DEFM	'+;'
	DEFM	'/?'
	DEFW	0FAF4H
	DEFM	'Cc'
	DEFM	'Qq'
	DEFW	1616H
	DEFM	'1!'
	DEFW	120AH
	DEFW	110BH
	DEFW	1809H
	DEFW	0F7F1H
	DEFW	0D0DH
 
 
ISRTAB	DEFW	ISRSB	;SIO B:Empfang
	DEFW	ISRPA	;PIO A:Kassette
	DEFW	ISRPB	;PIO B:Tastatur
	DEFW	INTEND	;CTC 0:frei
	DEFW	ISRC1	;CTC 1:Kassette
	DEFW	ISRC2	;CTC 2:Tondauer
	DEFW	ISRC3	;CTC 3:Tastatur
 
 
CRTTAB	DEFW	NOT	;00
	DEFW	CLR	;01
	DEFW	CLLN	;02
	DEFW	NOT	;03=BRK
	DEFW	NOT	;04
	DEFW	NOT	;05
	DEFW	NOT	;06
	DEFW	BEEP	;07
	DEFW	CUL	;08
	DEFW	CUR	;09
	DEFW	CUD	;0A
	DEFW	CUU	;0B
	DEFW	CLS	;0C
	DEFW	CBL	;0D
	DEFW	NOT	;0E
	DEFW	HCOPY	;0F
	DEFW	HOMEPG	;10
	DEFW	PAGE	;11
	DEFW	SCROL	;12
	DEFW	NOT	;13=STOP
	DEFW	CLICK	;14
	DEFW	NOT	;15
	DEFW	NOT	;16=CAPS
	DEFW	NOT	;17
	DEFW	CEL	;18
	DEFW	CBL	;19
	DEFW	INS	;1A
	DEFW	ESC	;1B
	DEFW	NOT	;1C=LIST
	DEFW	NOT	;1D=RUN
	DEFW	NL	;1E=CONT
	DEFW	DEL	;1F
 
 
TOKTAB	ORG	$+0F0H
;Platz f}r BASIC-Token und Vektoren
 
 
BITTAB	DEFB	80H
	DEFB	40H
	DEFB	20H
	DEFB	10H
	DEFB	8
	DEFB	4
	DEFB	2
	DEFB	1
 
;	END.
 
Detected encoding: ASCII (7 bit)2