N CC02
;
; DISPLAYSTEUERROUTINEN FUER ARBEIT MIT BILDSCHIRM (1 K BWS) UND TASTE
;
; ZEICHEN SCHREIBEN, STEUERANWEISUNG AUSFUEHREN
A00:	PUSH	AF	;REGISTER RETTEN
	PUSH	DE	;
	PUSH	HL	;
	LD	HL,MC.BWS	;MC.BWS-ADRESSE NACH HL
	LD	DE,(RM.ABW)	;KURSORPOSITION NACH DE
	ADD	HL,DE	;ZEICHENADRESSE BILDEN
	AND	A	;TEST: ZEICHEN = 0 ?
	JRZ	A02-#	;JA, RUECKKEHR EINLEITEN
	CMP	07FH	;TEST: ZEICHEN > 7FH ?
	JRNC	A02-#	;JA, RUECKKEHR EINLEITEN
	CMP	020H	;TEST: STEUERZEICHEN (<20H) ?
	JRC	A03-#	;JA, STEUERANWEISUNG BEARBEITEN
	LD	(HL),A	;NEIN, ZEICHEN EINTRAGEN
A01:	INC	DE	;NAECHSTE KURSORPOSITION
	LD	A,003H	;BEGRENZUNG
	AND	D	;
	LD	D,A	;
	LD	HL,MC.BWS	;MC.BWS-ADRESSE NACH HL
	ADD	HL,DE	;ZEICHENADRESSE BILDEN
	SET	7,(HL)	;KURSOR SETZEN
	LD	(RM.ABW),DE	;KURSORPOSITION RETTEN
A02:	POP	HL	;REGISTER RUECKSPEICHERN
	POP	DE	;
	POP	AF	;
	RET		;RUECKKEHR
A03:	RES	7,(HL)	;KURSOR RUECKSETZEN
	CMP	MC.RIGHT	;TEST: TASTE -> ?
	JRZ	A01-#	;JA
	LD	HL,A01+1	;RUECKKEHRADRESSE AUF STACK
	PUSH	HL	;
	CMP	MC.INS	;TEST: TASTE INS ?
	JRNZ	C00-#	;NEIN
	PUSH	BC	;REGISTER RETTEN
	PUSH	DE	;
	LD	H,D	;
	LD	L,E	;
	LD	A,3FH	;
	OR	L	;
	LD	L,A	;
	PUSH	HL	;
	SBC	HL,DE	;SPALTEN BIS ZEILENENDE
	LD	B,H	;
	LD	C,L	;
	POP	HL	;
	LD	DE,MC.BWS	;
	ADD	HL,DE	;
	LD	D,H	;
	LD	E,L	;
	DEC	HL	;
	LD	A,B	;
	OR	C	;
	JRZ	C01-#	;
	LDDR		;
C01:	LD	A,' '	;LEERZEICHEN EINTRAGEN
	LD	(DE),A	;
	POP	DE	;REGISTER RUECKSPEICHERN
	POP	BC	;
	RET		;RUECKKEHR NACH A01+1
C00:	CMP	MC.LEFT	;TEST: TASTE <- ?
	JRNZ	A04-#	;NEIN
	DEC	DE	;JA, KURSORPOSITION ERNIEDRIGEN
	RET		;NACH A01+1
A04:	LD	HL,00040H	;ZEILENABSTAND NACH HL
	CMP	MC.DOWN	;TEST: TASTE KURSOR NACH UNTEN ?
	JRNZ	A05-#	;NEIN
	ADD	HL,DE	;JA, KURSORPOSITION AUF NAECHSTE ZEILE
	EX	DE,HL	;KURSORPOSITION NACH DE
	RET		;NACH A01+1
A05:	CMP	MC.UP	;TEST: TASTE KURSOR NACH OBEN
	JRNZ	A06-#	;NEIN
	EX	DE,HL	;JA, KURSOR EINE ZEILE ZURUECK
	SBC	HL,DE	;
	EX	DE,HL	;
	RET		;NACH A01+1
A06:	CMP	MC.CLEAR	;TEST; BILDSCHIRM LOESCHEN ?
	JRNZ	A07-#	;NEIN
	LD	DE,00000H	;JA, KURSOR AUF BILDANFANG
	LD	HL,00400H	;ZAEHLER NACH HL
	JR	A10-#	;LOESCHEN
A07:	CMP	MC.ZBEG	;TEST: KURSOR AN ZEILENANFANG ?
	JRNZ	A08-#	;NEIN
	LD	A,E	;JA; KURSORPOSITION AUF ZEILENANFANG MASKIEREN
	AND	0C0H	;
	LD	E,A	;
	RET		;NACH A01+1
A08:	CMP	MC.DEL	;TEST: KURSOR NACH LINKS, ZEICHEN STREICHEN
	JRNZ	A09-#	;NEIN
	PUSH	BC	;REGISTER RETTEN
	PUSH	DE	;
	LD	H,D	;KURSORPOSITION NACH HL
	LD	L,E	;
	LD	A,3FH	;ZEILENENDE NACH HL
	OR	L	;
	LD	L,A	;
	SBC	HL,DE	;SPALTENANZAHL BIS ENDE
	LD	B,H	;NACH BC
	LD	C,L	;
	INC	C	;KORREKTUR ZEICHENVERSCHIEBUNG
	LD	HL,MC.BWS	;MC.BWS-ADRESSEN
	ADD	HL,DE	;
	RES	7,(HL)	;KURSOR LOESCHEN
	LD	D,H	;
	LD	E,L	;
	BIT	6,C	;TEST: KOMPLETTE ZEILE SCHIEBEN?
	JRZ	C02-#	;
	LDI		;JA, KORREKTUR
C02:	DEC	DE	;ZIELADRESSE FUER BLOCKTRANSPORT
	LDIR		;ZEILE NACH LINKS VERSCHIEBEN
	LD	A,' '	;LEERZEICHEN BEI ZEILENENDE
	LD	(DE),A	;
	POP	DE	;REGISTER RUECKSPEICHERN
	POP	BC	;
	LD	A,03FH	;TEST: KURSOR AM ZEILENANFANG?
	AND	E	;
	JRZ	C03-#	;JA
	DEC	DE	;NEIN, KURSORPOSITION ERNIEDRIGEN
C03:	RET		;NACH A01+1
A09:	CMP	MC.HOME	;TEST: ZEILE LOESCHEN, KURSOR AUF ZEILENANFANG
	JRNZ	A12-#	;NEIN
	LD	A,E	;JA, KURSOR AUF ZEILENANFANG MASKIEREN
	AND	0C0H	;
	LD	E,A	;
	LD	HL,00040H	;ZAEHLER NACH HL
A10:	PUSH	DE	;KURSORPOSITION RETTEN
	PUSH	HL	;ZAEHLER RETTEN
	LD	HL,MC.BWS	;MC.BWS-ADRESSE NACH HL
	ADD	HL,DE	;ZEICHENPOSITION BESTIMMEN
	POP	DE	;ZAEHLER NACH DE
A11:	LD	(HL),020H	;LEERZEICHEN EINTRAGEN
	INC	HL	;NAECHSTE ZEICHENPOSITION
	DEC	DE	;ZAEHLER ERNIEDRIGEN
	LD	A,E	;TEST: ZAEHLER = 0 ?
	OR	D	;
	JRNZ	A11-#	;NEIN, ZYKLUS
	POP	DE	;KURSORPOSITION ZURUECK
	RET		;NACH A01+1
A12:	CMP	MC.BBEG	;TEST: KURSOR AUF BILDANFANG ?
	JRNZ	A13-#	;NEIN
	LD	DE,00000H	;KURSORPOSITION FUER BILDANFANG
	RET		;NACH A01+1
A13:	CMP	MC.TAB	;TEST: TABULATOR ?
	RNZ		;NEIN, NACH A01+1
MA0:	LD	A,E	;JA, SPALTENWERT NACH A
	INC	DE	;MC.BWS-POSITION ERHOEHEN
	XOR	E	;TEST: ZEILENENDE
	BIT	6,A	;
	JRZ	MA1-#	;NEIN
	DEC	DE	;JA, KORREKTUR
	RET		;NACH A01+1
MA1:	PUSH	BC	;VERWENDETE REGISTER RETTEN
	LD	A,E	;
	AND	03FH	;
	LD	C,A	;SPALTENWERT NACH C
	SRL	C	;DIVISION DURCH 8
	SRL	C	;
	SRL	C	;
	LD	B,0	;
	LD	HL,RM.TABPO	;ADRESSE TABULATORWERTE NACH HL
	ADD	HL,BC	;BIT ADRESSE BERECHNEN
	AND	7	;BITPOSITION MASKIEREN
	INC	A	;KORREKTUR
	LD	B,A	;UND ALS ZAEHLER NACH B
	LD	A,(HL)	;
MA2:	RLCA		;BITPOSITION NACH CY
	DJNZ	MA2-#	;
	POP	BC	;BC RUECKSPEICHERN
	RC		;NACH A01+1, WENN MARKIERT
	JR	MA0-#	;NEUER SUCHZYKLUS
;
; DISPLAYADRESSE AUS ZEILEN- UND SPALTENINFORMATION BILDEN
A16:	PUSH	AF	;REGISTER RETTEN
	PUSH	HL	;
	LD	A,E	;SPALTENINFORMATION NACH A
	AND	0C0H	;GUELTIGE STELLEN MASKIEREN
	JRZ	A17-#	;NEIN, TEST: SPALTE < 64
	LD	E,03FH	;SPALTE BEGRENZEN
A17:	LD	A,D	;ZEILENINFORMATION NACH A
	AND	0F0H	;GUELTIGE STELLEN MASKIEREN
	JRZ	A18-#	;NEIN, TEST: ZEILE < 16
	LD	D,00FH	;ZEILE BEGRENZEN
A18:	LD	L,D	;HL=ZEILE
	LD	H,000H	;
	ADD	HL,HL	;64*ZEILE
	ADD	HL,HL	;
	ADD	HL,HL	;
	ADD	HL,HL	;
	ADD	HL,HL	;
	ADD	HL,HL	;
	LD	D,000H	;SPALTENWERT IN DE
	ADD	HL,DE	;+SPALTE
	LD	DE,MC.BWS	;MC.BWS-ADRESSE NACH DE
	ADD	HL,DE	;+MC.BWS
	EX	DE,HL	;ZEICHENPOSITION NACH DE
	POP	HL	;REGISTER RUECKSPEICHERN
	POP	AF	;
	RET		;RUECKKEHR
;
; ZEICHEN AUF POSITION EINTRAGEN
A19:	PUSH	DE	;REGISTER RETTEN
	PUSH	AF	;
	CALL	A16	;ZEICHENPOSITION BERECHNEN
	LD	(DE),A	;ZEICHEN EINTRAGEN
	POP	AF	;REGISTER RUECKSPEICHERN
	POP	DE	;
	RET		;RUECKKEHR
;
; ZEICHEN AUF POSITION LESEN
A20:	PUSH	DE	;REGISTER RETTEN
	CALL	A16	;ZEICHENPOSITION BERECHNEN
	LD	A,(DE)	;ZEICHEN LESEN
	POP	DE	;REGISTER RUECKSPEICHERN
	RES	7,A	;KURSORBIT LOESCHEN
	RET		;RUECKKEHR
;
; KURSOR SETZEN
A22:	PUSH	AF	;REGISTER RETTEN
	PUSH	HL	;
	PUSH	DE	;
	LD	HL,MC.BWS	;MC.BWS-ADRESSE NACH HL
	LD	DE,(RM.ABW)	;KURSORPOSITION NACH DE
	ADD	HL,DE	;ZEICHENADRESSE BILDEN
	RES	7,(HL)	;KURSORBIT LOESCHEN
	POP	DE	;DISPLAYPOSITION NACH DE
	PUSH	DE	;
	CALL	A16	;ZEICHENPOSITION BERECHNEN
	EX	DE,HL	;ZEICHENPOSITION NACH HL
	SET	7,(HL)	;KURSORBIT SETZEN
	LD	DE,MC.BWS	;MC.BWS-ADRESSE NACH HL
	AND	A	;CY=0
	SBC	HL,DE	;KURSORPOSITION BERECHNEN
	LD	(RM.ABW),HL	;UND ABSPEICHERN
	POP	DE	;REGISTER RUECKSPEICHERN
	POP	HL	;
	POP	AF	;
	RET		;RUECKKEHR
;
; KURSOR LESEN
A24:	LD	DE,(RM.ABW)	;KURSORPOSITION NACH DE
	PUSH	AF	;REGISTER RETTEN
	LD	A,E	;SPALTENINFORMATION IN A BEREITSTELLEN
	AND	03FH	;
	RL	E	;ZEILENINFORMATION INS D-REGISTER SCHIEBEN
	RL	D	;
	RL	E	;
	RL	D	;
	LD	E,A	;SPALTENINFORMATION NACH E
	POP	AF	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
; TASTE AUF DISPLAY
A25:	CALL	MC.TST	;TASTATURABFRAGE
	JRZ	A25-#	;WARTEN, WENN KEINE EINGABE ERFOLGT
	CALL	A00	;ZEICHEN EINTRAGEN
	CMP	MC.ENTER	;TEST: TASTE ENTER ?
	RZ		;JA, RUECKKEHR
	CMP	MC.OFF	;TEST: TASTE OFF ?
	SCF		;CY=1
	JRNZ	A25-#	;NEIN, ZYKLUS
	RET		;JA, RUECKKEHR
;
; BILDSCHIRM NACH OBEN ROLLEN
B00:	PUSH	HL	;REGISTER RETTEN
	PUSH	DE	;
	PUSH	BC	;
	LD	HL,MC.BWS+40H	;MC.BWS-ADRESSE 2. ZEILE NACH HL
	LD	DE,MC.BWS	;MC.BWS-ADRESSE NACH DE
	LD	BC,003C0H	;ZAEHLER (15 ZEILEN)
	LDIR		;BLOCKTRANSPORT
A26:	POP	BC	;REGISTER RUECKSPEICHERN
	POP	DE	;
	POP	HL	;
	RET		;RUECKKEHR
;
; BILDSCHIRM NACH UNTEN ROLLEN
B01:	PUSH	HL	;REGISTER RETTEN
	PUSH	DE	;
	PUSH	BC	;
	LD	HL,MC.BWS+3BFH	;MC.BWS-ADRESSE ENDE 15. ZEILE NACH HL
	LD	DE,MC.BWS+3FFH	;MC.BWS-ADRESSE ENDE 16. ZEILE NACH DE
	LD	BC,003C0H	;ZAEHLER (15 ZEILEN)
	LDDR		;BLOCKTRANSPORT
	JR	A26-#	;RUECKKEHR EINLEITEN
;
; TASTE AUF DISPLAYBEREICH
A28:	CALL	MC.TST	;TASTATURABFRAGE
	CALL	A29	;BEREICH UEBERPRUEFEN, ZEICHEN EINTRAGEN
	JRZ	A28-#	;ZYKLUS, WENN KEINE EINGABE ERFOLGT
	CMP	MC.ENTER	;TEST: TASTE ENTER ?
	RZ		;JA, RUECKKEHR
	CMP	MC.OFF	;TEST: TASTE OFF ?
	SCF		;CY=1
	JRNZ	A28-#	;NEIN, ZYKLUS
	RET		;JA, RUECKKEHR
;
; ZEICHEN IN BEREICH SCHREIBEN
A29:	PUSH	DE	;REGISTER RETTEN
	PUSH	HL	;
	PUSH	AF	;
	EX	DE,HL	;DISPLAYPOSITION NACH HL
	CALL	A24	;KURSOR LESEN
	EX	DE,HL	;KURSOR NACH HL, DISPLAYPOSITION NACH DE
	OR	A	;CY=0
	SBC	HL,DE	;KURSOR - DISPLAYPOSITION
	JRZ	A32-#	;GLEICHE POSITIONEN
A30:	CAC	A22	;KURSOR IM FENSTER, KURSOR AUF DISPLAYPOSITION SETZEN
	JRC	A32-#	;
	SCF		;CY=1
	INC	H	;
	DEC	H	;
	JRNZ	A30-#	;TEST: GLEICHE ZEILE ? - NEIN
	LD	A,E	;JA, DISPLAYSPALTE NACH A
	ADD	C	;+ BEREICHSGRENZE
	LD	E,A	;ERGEBNIS NACH E
	LD	A,L	;SPALTENDIFFERENZ NACH A
	CMP	C	;TEST: KURSOR IM BEREICH ?
	JRC	A31-#	;JA
	CANZ	A22	;NEIN, KURSOR AUF BEREICHSENDE SETZEN
	LD	L,0FFH	;STEUERWERT NACH L
A31:	POP	AF	;TASTATUREINGABEWERTE BEREITSTELLEN
	PUSH	AF	;
	JRZ	A33-#	;KEINE TASTE BETAETIGT, RUECKKEHR EINLEITEN
	CMP	MC.DEL	;TEST: TASTE DEL ?
	CAZ	A00	;JA, FUNKTION AUSFUEHREN
	CMP	MC.LEFT	;TEST: TASTE <- ?
	CAZ	A00	;JA, FUNKTION AUSFUEHREN
	INC	L	;
	JRZ	A33-#	;
A32:	POP	AF	;TASTATUREINGABEWERTE BEREITSTELLEN
	PUSH	AF	;
	JRZ	A33-#	;KEINE TASTE BETAETIGT, RUECKKEHR EINLEITEN
	CMP	MC.RIGHT	;TEST: TASTE -> ?
	CAZ	A00	;JA, FUNKTION AUSFUEHREN
	CMP	MC.TAB	;TEST: TASTE TAB ?
	CAZ	A00	;JA, FUNKTION AUSFUEHREN
	CMP	MC.INS	;TEST: TASTE INS ?
	CAZ	A00	;JA, FUNKTION AUSFUEHREN
	CMP	020H	;TEST: ZEICHENTASTE
	CANC	A00	;JA, ZEICHEN AUF DISPLAY
A33:	POP	AF	;REGISTER RUECKSPEICHERN
	POP	HL	;
	POP	DE	;
	RET		;RUECKKEHR
;
; BYTE AUF POSITION SCHREIBEN
A34:	PUSH	AF	;REGISTER RETTEN
	PUSH	BC	;
	LD	B,002H	;ZAEHLER FUER 2 DURCHLAEUFE
A35:	RLCA		;AKKUMULATORROTATION
	RLCA		;
	RLCA		;
	RLCA		;
	LD	C,A	;ZEICHEN RETTEN
	AND	00FH	;TETRADE MASKIEREN
	ADD	030H	;KONVERTIERUNG IN KOI-7-ZEICHEN
	CMP	03AH	;
	JRC	A36-#	;
	ADD	007H	;
A36:	CALL	A19	;ZEICHEN EINTRAGEN
	INC	E	;NAECHSTE KURSORPOSITION
	LD	A,03FH	;WENN ZEILENENDE, BEGRENZEN
	AND	E	;
	LD	E,A	;
	LD	A,C	;ZEICHEN ZURUECK
	DJNZ	A35-#	;2. ZYKLUS
	POP	BC	;REGISTER RUECKSPEICHERN
	POP	AF	;
	RET		;RUECKKEHR
;
; DOPPELBYTE AUF POSITION SCHREIBEN
A37:	PUSH	AF	;REGISTER RETTEN
	LD	A,H	;HW-BYTE NACH A
	CALL	A34	;ALS HEXAZAHL AUSGEBEN
	LD	A,L	;NW-BYTE NACH A
	CALL	A34	;ALS HEXAZAHL AUSGEBEN
	POP	AF	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
; ZAHL VON POSITION LESEN
A38:	PUSH	BC	;REGISTER RETTEN
	LD	C,A	;STEUERZEICHEN RETTEN
	AND	07FH	;STELLENANZAHL MASKIEREN
	LD	B,A	;ALS ZAEHLER NACH B
	LD	HL,00000H	;ZAHL AUF NULL SETZEN
A39:	CALL	A20	;ZEICHEN LESEN
	SUB	030H	;KONVERTIERUNG IN INTERNE DARSTELLUNG
	CMP	00AH	;TEST: ZEICHEN < 10 ?
	JRC	A40-#	;JA
	BIT	7,C	;NEIN, TEST: HEXAZAHL ?
	JRZ	A42-#	;NEIN, FEHLERAUSSPRUNG
	SUB	007H	;KONVERTIERUNG
	CMP	010H	;TEST: ZAHL < 16 ?
	JRNC	A42-#	;NEIN, FEHLERAUSSPRUNG
	CMP	00AH	;TEST: ZAHL > 9 ?
	JRC	A42-#	;NEIN, FEHLERAUSSPRUNG
A40:	PUSH	DE	;DISPLAYPOSITION RETTEN
	ADD	HL,HL	;HL*2
	LD	E,L	;WERT NACH DE
	LD	D,H	;
	ADD	HL,HL	;HL*4
	ADD	HL,HL	;HL*8
	BIT	7,C	;TEST: HEXAZAHL ?
	JRZ	A41-#	;NEIN
	LD	E,L	;JA, 8*HL NACH DE
	LD	D,H	;
A41:	ADD	HL,DE	;10 BZW. 16 * HL
	LD	E,A	;NEUE ZAHL NACH DE
	LD	D,000H	;
	ADD	HL,DE	;NEUE ZAHL ADDIEREN
	POP	DE	;DISPLAYPOSITION RUECKSPEICHERN
	INC	E	;NAECHSTE SPALTE
	DJNZ	A39-#	;ZYKLUS
	OR	A	;CY=0
	POP	BC	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
A42:	LD	A,C	;ANZAHL DER GELESENEN STELLEN NACH A
	AND	07FH	;
	SUB	B	;
	SCF		;FEHLERKENNZEICHEN SETZEN
	POP	BC	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
; HEXAZAHL (2 STELLEN) VOM DISPLAY LESEN
A43:	PUSH	HL	;REGISTER RETTEN
	LD	A,082H	;KENNZEICHEN HEXAZAHL, 2 STELLEN
	CALL	A47	;ZAHL NACH HL
	LD	A,L	;WERT NACH A
	POP	HL	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
; HEXAZAHL (4 STELLEN) VOM DISPLAY LESEN
A44:	PUSH	BC	;REGISTER RETTEN
	LD	C,A	;A IN C ZWISCHENSPEICHERN
	LD	A,084H	;KENNZEICHEN HEXZAHL, 4 STELLEN
	CALL	A47	;ZAHL NACH HL
	LD	A,C	;A ZURUECK
	POP	BC	;REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
A45:	POP	BC	;REGISTER RUECKSPEICHERN
	POP	AF	;
	PUSH	AF	;REGISTER RETTEN
	PUSH	DE	;
	CALL	A38	;ZAHL LESEN
	JRC	A46-#	;FEHLER, KEINE ZAHL
	POP	AF	;REGISTER RUECKSPEICHERN
	POP	AF	;
	OR	A	;CY=0
	RET		;RUECKKEHR
A46:	LD	A,'?'	;'?' NACH A
	POP	DE	;POSITION RUECKSPEICHERN
	CALL	A19	;ZEICHEN EINTRAGEN
	POP	AF	;REGISTER RUECKSPEICHERN
A47:	CALL	A22	;KURSOR SETZEN
	PUSH	AF	;REGISTER RETTEN
	PUSH	BC	;
	AND	007H	;STELLENZAHL MASKIEREN
	LD	C,A	;UND NACH C BRINGEN
	CALL	A28	;ZEICHEN IN BEREICH SCHREIBEN
	JRNC	A45-#	;TEST: ENDEZEICHEN = ENTER ? - JA
	LD	HL,00000H	;NEIN, HL = 0
	POP	BC	;REGISTER RUECKSPEICHERN
	POP	AF	;
	SCF		;KENNZEICHEN SETZEN
	RET		;RUECKKEHR
;
; TEXT AB KURSORPOSITION SCHREIBEN
A48:	PUSH	AF	;REGISTER RETTEN
	XOR	A	;TEXTNUMMER = 0 SETZEN
	CALL	A49	;TEXTSCHREIBEN
	POP	AF	;REGISTER ZURUECK
	RET		;RUECKKEHR
;
; NUMMERIERTEN TEXT (TEXTTABELLE) AB KURSORPOSITION SCHREIBEN
A49:	PUSH	BC	;REGISTER RETTEN
	LD	B,A	;TEXTNUMMER NACH B
	INC	B	;KORREKTUR
A50:	BIT	7,(HL)	;TEST: 1. BYTE = TEXTZEICHEN ?
	INC	HL	;ADRESSE NAECHSTES BYTE
	JRZ	A50-#	;KEIN TEXTANFANG, ZYKLUS
	DJNZ	A50-#	;TEXTNUMMER ERNIEDRIGEN, ZYKLUS
	DEC	HL	;ADRESSKORREKTUR
A51:	LD	A,(HL)	;TEXTZEICHEN NACH A
	RES	7,A	;KENNZEICHEN RUECKSETZEN
	CALL	A00	;ZEICHEN EINTRAGEN
	INC	HL	;ADRESSE NAECHSTES BYTE
	BIT	7,(HL)	;TEST: TEXTENDE ?
	JRZ	A51-#	;NEIN, ZYKLUS
	POP	BC	;JA, REGISTER RUECKSPEICHERN
	RET		;RUECKKEHR
;
; TABULATOREN SETZEN
B02:	PUSH	BC	;REGISTER RETTEN
	PUSH	HL	;
	LD	BC,801H	;ZAEHLER UND STANDARDWERT
	LD	HL,RM.TABPO	;ZIEL IM RAM-BEREICH
B03:	LD	(HL),C	;TAB-BIT SETZEN
	INC	HL	;
	DJNZ	B03-#	;ZYKLUS
	POP	HL	;REGISTER RUECKSPEICHERN
	POP	BC	;
	RET		;RUECKKEHR
;
	END

