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

SCREENSASM;***************************************
;
; Programm:	Screens V1.2
;		Window-System f}r
;		grafische Bedien-
;		oberfl{che
;_______________________________________
;
; Vereinbarungen
;
; 1. Systemrufe
;
CRT	EQU	00H
LOOP	EQU	12H
INLIN	EQU	17H
OSTR	EQU	23H
MODU	EQU	26H
NL	EQU	2CH
DABR	EQU	32H
PADR	EQU	34H
WININ	EQU	3CH
WINAK	EQU	3DH
LINE	EQU	3EH
MULT	EQU	41H
ZKOUT	EQU	45H
PV1	EQU	0F003H
PV3	EQU	0F009H
;
; 2. Systemzellen
;
ARGN	EQU	0B781H
ARG1	EQU	0B782H
ARG2	EQU	0B784H
ARG3	EQU	0B786H
ARG4	EQU	0B788H
WINNR	EQU	0B79BH
WINON	EQU	0B79CH
WINLG	EQU	0B79EH
CURSO	EQU	0B7A0H
CCTL0	EQU	0B7A6H
FARB	EQU	0B7D6H
;
; 3. Konstanten
;
CUL	EQU	8
CUR	EQU	9
LF	EQU	0AH
CLS	EQU	0CH
PAGE	EQU	11H
SCROLL	EQU	12H
ESC	EQU	1BH
BEEP	EQU	707H
CRLF	EQU	0A0DH
;_______________________________________
;
;	Arbeitsspeicherzuweisung
; Achtung :	Screens darf nicht im
;		RAM 4 laufen, da dieser
;		vom Programm geschaltet
;		wird
;
	ORG	0BA00H
;_______________________________________
;
WTAB	DEFW	0	;Fenster 0
	DEFW	0	;	 1
	DEFW	0	;	 2
	DEFW	0	;	 3
	DEFW	0	;	 4
	DEFW	0	;	 5
	DEFW	0	;	 6
	DEFW	0	;	 7
	DEFW	0	;	 8
	DEFW	0	;	 9
;_______________________________________
;
; Tab:	Einsprungadressen
;
JPTAB	JP	WIINIT	;Fensterinit
;
	JP	WISAVE	;Fenster retten
	JP	ASME	;ASC-Sp. retten
;
	JP	WILOAD	;Fenster holen
	JP	MEAS	;ASC-Sp. holen
;
	JP	SHIFT	;Fenst. schieben
	JP	INVZEI	;Invert. Zeile
	JP	INVWIN	;Invert. Fenster
	JP	PRIAT	;PRINT AT
	JP	INPAT	;INPUT AT
;
	JP	RAHM	;Rahmen setzen
	JP	LRAHM	;Rahmen l|schen
	JP	SHADOW	;Schattenrahmen
	JP	LSHAD	;L|sche Schatt.
;
	JP	ICON	;Icon-Ausgabe
;_______________________________________
;
; UP:	Sprungverteiler
;
; IN:	UP-Nummer nach CALL JUMP
;
JUMP	EXX
	EX	AF
;
	EX	(SP),HL
	LD	A,M
	INC	HL
	EX	(SP),HL
;
	CP	0FH
	JR	C,JUMP1
;
	EXX
	EX	AF
;
	LD	HL,KERR
	JP	ERRTEX
;
JUMP1	LD	E,A
	ADD	A
	ADD	E
	LD	E,A
	LD	D,0
;
	LD	HL,JPTAB
	ADD	HL,DE
	PUSH	HL
	EXX
	EX	AF
	RET
;_______________________________________
;
; UP :	abspeichern eines Fensters
;
; IN :	A  --> Fensternummer
; OUT:	HL --> Endadresse der Files
;
WISAVE	PUSH	BC
	PUSH	DE
	PUSH	HL
	PUSH	AF
;
	CALL	ASME	;ASCII-Speicher
	CALL	PIME	;Pixelspeicher
	CALL	FAME	;Farbspeicher
	CALL	SWI4	;Ram4 aktiv
;
	POP	AF
	POP	HL
	POP	DE
	POP	BC
	RET
;_______________________________________
;
; UP :	r}cklesen eines Fenster
;
; IN :	A  --> Fensternummer
; OUT:	HL --> Endadresse der Files
;
WILOAD	PUSH	BC
	PUSH	DE
	PUSH	HL
	PUSH	AF
;
	CALL	MEAS	;ASCII-Speicher
	CALL	MEPI	;Pixelspeicher
	CALL	MEFA	;Farbspeicher
	CALL	SWI4	;Ram4 aktiv
;
	POP	AF
	POP	HL
	POP	DE
	POP	BC
	RET
;_______________________________________
;
; UP :	Verschiebe aktuelles Fenster auf
;	dem Schirm
;
; IN :	H  --> Verschiebeweite Zeile
;	L  --> Verschiebeweite Spalte
;
;	Bit 7,H
;	0  --> Verschiebe runter
;	1  --> Verschiebe hoch
;
;	Bit 7,L
;	0  --> Verschiebe rechts
;	1  --> Verschiebe links
;
SHIFT	LD	A,(WINNR) ;zwischen-
	CALL	WISAVE	  ;speichern
;
	LD	A,(WINON)
	BIT	7,L	;hoch ?
	JR	NZ,SH1	;nein
;
	ADD	A,L	;neuer Fenster-
	LD	L,A	;anfang
	CP	1FH	;}berlauf ?
	RET	NC	;ja
;
	LD	A,(WINLG) ;}berlauf bei
	ADD	L	  ;Fensterende ?
	CP	1FH
	RET	NC	  ;ja
	JR	SH2
;
SH1	RES	7,L
	SUB	A,L
	LD	L,A
	CP	1
	RET	C
;
SH2	LD	A,(WINON+1)
	BIT	7,H	;rechts ?
	JR	NZ,SH3	;nein
;
	ADD	H
	LD	H,A
	CP	27H	;}berlauf ?
	RET	NC	;ja
;
	LD	A,(WINLG+1)
	ADD	H	;}berlauf bei
	CP	27H	;Fensterende ?
	RET	NC	;ja
	JR	SH4
;
SH3	RES	7,H
	SUB	H
	CP	1
	RET	C
;
	LD	H,A
SH4	LD	(WINON),HL
	LD	A,(WINNR) ;gib Fenster
	CALL	WILOAD	  ;auf neuer
			  ;Position aus
	RET
;_______________________________________
;
; UP :	Invertiere Fenster
;
INVWIN	LD	BC,(WINLG);B=Zeilenz{hl.
	LD	D,0	  ;1.Zeile
;
INVWI1	PUSH	DE	;Zeile retten
	PUSH	BC	;Z{hler retten
;
	CALL	INVZEI	;Zeile invert.
;
	POP	BC	;Z{hler holen
	POP	DE	;Zeile holen
;
	INC	D	;n{chste Zeile
	DJNZ	INVWI1	;alle ?
;
	RET
;_______________________________________
;
; UP :	Invertiere Zeile
;
; IN :	D  --> Zeilennummer
;
INVZEI	LD	BC,(WINLG);B=Spaltenz{hl
	LD	B,C
;
	LD	E,0	;Anfangspos.
	LD	HL,(WINON)
	ADD	HL,DE
;
	RL	H	;Feinzeilen
	RL	H
	RL	H
;
INVZE2	PUSH	HL	;Pos. retten
	POP	DE
;
	CALL	PV1	;Adresse best.
	DEFB	PADR
;
	PUSH	BC
	LD	B,8
;
INVZE1	LD	A,M	;Zeichen
	CPL		;invertieren
	LD	M,A
	INC	HL
	DJNZ	INVZE1
;
	POP	BC
	INC	E	;n{ch. Spalte
	EX	DE,HL	;Pos. holen
	DJNZ	INVZE2	;alle
;
	RET
;_______________________________________
;
; UP :	neuinitialisieren eines Fensters
;
; IN :	A  --> Fensternummer
;	HL --> Fensteranfang
;	DE --> Fensterl{nge
;
WIINIT	PUSH	DE
	PUSH	AF
;
	CALL	PV1	;Fensterinit
	DEFB	WININ
	JR	NC,WIIN1
;
	LD	HL,PERR	;Param.-Fehler
	JP	ERRTEX
;
WIIN1	POP	AF
	LD	IY,WTAB
	LD	HL,0
;
WIIN3	OR	A
	JR	Z,WIIN2
;
	LD	E,(IY+0)
	INC	IY
	LD	D,(IY+0)
	INC	IY
	ADD	HL,DE
	DEC	A
	JR	WIIN3
;
WIIN2	POP	DE
	PUSH	HL
;
	LD	C,E
	CALL	PV1	;L{nge ASCII-RAM
	DEFB	MULT	;des Fensters
;
	LD	H,B
	LD	L,A
	LD	D,B
	LD	E,A
;
	ADD	HL,HL	;L{nge Pixelram
	ADD	HL,HL	;+Farbram des
	ADD	HL,HL	;Fensters
	ADD	HL,HL
	ADD	HL,HL
;
	POP	DE
	PUSH	HL
	ADD	HL,DE
	JR	NC,WIIN4
;
MERR1	LD	HL,MERR
	JP	ERRTEX
;
WIIN4	POP	DE
	LD	(IY+0),E
	INC	IY
	LD	(IY+0),D
	RET
;_______________________________________
;
; UP :	Icon-ausgabe
;
; IN :	A  --> Icon-Nummer
;	HL --> Icontabelle
;	DE --> Position im akt. Fenster
;
; OUT:	Icon auf Position
;
ICON	PUSH	DE
	OR	A
	JR	Z,ICON1
;
ICON2	PUSH	AF
	LD	C,M
	INC	HL
	LD	D,M
	INC	HL
;
	RLC	C
	RLC	C
	RLC	C
;
	CALL	PV1
	DEFB	MULT
;
	LD	C,A
	ADD	HL,BC
;
	POP	AF
	DEC	A
	JR	NZ,ICON2
;
ICON1	LD	B,M	;Spalten
	INC	HL
	LD	C,M	;Zeilen
	INC	HL
;
	POP	DE
ICON5	PUSH	DE
	LD	(CURSO),DE
;
	PUSH	BC
ICON3	LD	(CCTL0),HL
;
	LD	A,' '
	CALL	PV1
	DEFB	CRT
;
	LD	DE,8
	ADD	HL,DE
	DJNZ	ICON3
;
	POP	BC
	POP	DE
;
	INC	D
	DEC	C
	JR	NZ,ICON5
;
	LD	HL,0EE00H
	LD	(CCTL0),HL
	RET
;_______________________________________
;
; UP:	Ausgabe ab ... (PRINT AT)
;
; IN:	H  -->	Zeile
;	L  -->	Spalte
;	DE -->	Anfangsadresse Text
;
PRIAT	LD	(CURSO),HL
	EX	DE,HL
	LD	E,ZKOUT
	CALL	PV3
	RET
;_______________________________________
;
; UP:	Eingabe auf... (INPUT AT)
;
; IN:	H  -->	Zeile
;	L  -->	Spalte
;
; OUT:	DE -->	Anfangsadresse String
;
INPAT	LD	(CURSO),HL
	PUSH	HL
	CALL	PV1
	DEFB	INLIN
	POP	HL
	LD	D,0
	ADD	HL,DE
	EX	DE,HL
	RET
;_______________________________________
;
; UP:	ASCII --> Speicher
;
; IN:	A  -->	Fensternummer
; OUT:	HL -->	Endadresse
;
ASME	PUSH	AF
	CALL	PV1
	DEFB	WINAK
	POP	AF
;
	CALL	LOOKA	;hole L{nge und
			;schalte m011
;
	LD	DE,0	;Cursor links
			;oben
	LD	BC,(WINLG)
;
ASME2	PUSH	DE
ASME1	PUSH	HL
;
	PUSH	BC
	CALL	PV1	;ASCII-Adresse
	DEFB	DABR
	POP	BC
	LD	A,M	;hole ASCII-Code
;
	POP	HL	;Code->Speicher
;
	CALL	SECOF	;Sector-overflow
;
	LD	M,A
	INC	HL
	INC	E	;n{chste Spalte
	DEC	C
	JR	NZ,ASME1
;
	LD	A,(WINLG);Spaltenz{hler
	LD	C,A	 ;neu setzen
;
	POP	DE	;n{chste Zeile
	INC	D
	DJNZ	ASME2
	RET
;_______________________________________
;
; UP:	Farbe --> Speicher
;
; IN:	HL -->	Aadr. des Farbfiles
;	WINON	Fensteranfang
;	WINLG	Fensterl{nge
; OUT:	HL -->	Eadr. des Farbfiles
;
FAME	CALL	FARB1	;zugriff auf
			;Farbram ein
	CALL	PIME	;}bertrage
	CALL	FARB1	;zugriff auf
			;Farbram aus
	RET
;_______________________________________
;
; UP:	Pixel/Farbbytes --> Speicher
;
; IN:	HL -->	Aadr.
;	WINON	Fensteranfang
;	WINLG	Fensterl{nge
; OUT:	HL -->	Eadr.
;
PIME	EX	DE,HL
	LD	HL,(WINON)
	LD	BC,(WINLG)
;
	RLC	B	;Spaltenz{hler
	RLC	B	;*8 (Feinzeilen)
	RLC	B
;
	RLC	H
	RLC	H
	RLC	H
;
PIME2	PUSH	HL	;Pixeladresse
	CALL	PV1
	DEFB	PADR
;
	PUSH	BC
PIME1	LD	A,M	;Byte->Speicher
;
	EX	DE,HL
	CALL	SECOF	;Sectoroverflow
	EX	DE,HL
;
	LD	(DE),A
	INC	DE
	INC	HL
	DJNZ	PIME1
;
	POP	BC
	POP	HL
	INC	L	;n{chste Spalte
	DEC	C
	JR	NZ,PIME2
;
	EX	DE,HL
	RET
;_______________________________________
;
; UP:	Speicher --> ASCII
;
; IN:	A  -->	Fensternummer
;
; OUT:	HL -->	Eadr.
;
MEAS	PUSH	AF
	CALL	PV1
	DEFB	WINAK
	POP	AF
;
	CALL	LOOKA	;hole L{nge und
			;schalte M011
	CALL	HOME
	LD	A,PAGE
	CALL	PV1
	DEFB	CRT
;
	LD	DE,(WINON)
	LD	BC,(WINLG)
;
MEAS1	LD	A,M	;hole ASCII-Code
	OR	A	;Dummy ?
	JR	NZ,MEAS2;nein
;
	LD	A,CUR
MEAS2	CALL	PV1
	DEFB	CRT
;
	INC	HL	;N{chstes Zeich.
	CALL	SECOF	;Sectoroverflow
	DEC	C
	JR	NZ,MEAS1
;
	LD	A,(WINLG)
	LD	C,A
	DJNZ	MEAS1
;
	LD	A,SCROLL
	CALL	PV1
	DEFB	CRT
	RET
;_______________________________________
;
; UP:	Speicher --> Farbe
;
; IN:	HL -->	Aadr.
; OUT:	HL -->	Eadr.
;
MEFA	CALL	FARB1	;Zugriff auf
			;Farbram ein
	CALL	MEPI	;}bertrage
	CALL	FARB1	;Zugriff auf
			;Farbram aus
	RET
;_______________________________________
;
; UP:	Speicher --> Pixel/Farbe
;
; IN:	HL -->	Aadr.
; OUT:	HL -->	Eadr.
;
MEPI	EX	DE,HL
	LD	BC,(WINLG)
	LD	HL,(WINON)
;
	RLC	B	;stelle Z{hler
	RLC	B	;auf Feinzeilen
	RLC	B	;ein
;
	RLC	H
	RLC	H
	RLC	H
;
MEPI2	PUSH	BC
	PUSH	HL
;
	CALL	PV1	;Pixeladresse
	DEFB	PADR
;
MEPI1	LD	A,(DE)	;}bertrage
	LD	M,A
	INC	HL
	INC	DE
	EX	DE,HL
	CALL	SECOF	;Sectoroverflow
	EX	DE,HL
	DJNZ	MEPI1
;
	POP	HL	;n{chste Zeile
	POP	BC
	INC	L
	DEC	C
	JR	NZ,MEPI2
	EX	DE,HL
	RET
;_______________________________________
;
; UP:	Rahmen setzen/l|schen
;
; IN:	WINON	Fensteranfang
;	WINLG	Fensterl{nge
;
RAHM	LD	A,0	;Einsprung f}r
	JR	RAHM1	;setzen
;
LRAHM	LD	A,2	;Einsprung f}r
			;l|schen
;
RAHM1	LD	(FARB),A
	CALL	X1
	LD	(ARG1),HL ;obere Linie
	CALL	Y1
	LD	(ARG2),HL
	LD	(ARG4),HL
	CALL	X2
	LD	(ARG3),HL
	CALL	PLOT
;
	CALL	X2
	LD	(ARG1),HL ;rechte Linie
	LD	(ARG3),HL
	CALL	Y1
	LD	(ARG2),HL
	CALL	Y2
	LD	(ARG4),HL
	CALL	PLOT
;
	CALL	X1
	LD	(ARG1),HL ;untere Linie
	CALL	Y2
	LD	(ARG2),HL
	LD	(ARG4),HL
	CALL	X2
	LD	(ARG3),HL
	CALL	PLOT
;
	CALL	X1
	LD	(ARG1),HL ;linke Linie
	LD	(ARG3),HL
	CALL	Y1
	LD	(ARG2),HL
	CALL	Y2
	LD	(ARG4),HL
	CALL	PLOT
	RET
;_______________________________________
;
; UP:	Schattenrahmen setzen/l|schen
;
; IN:	WINON	Fensteranfang
;	WINLG	Fensterl{nge
;
SHADOW	XOR	A
	JR	SHAD1
;
LSHAD	LD	A,2
;
SHAD1	LD	(FARB),A
	CALL	X2
	INC	HL
	LD	(ARG1),HL
	LD	(ARG3),HL
	CALL	Y1
	DEC	HL
	DEC	HL
	DEC	HL
	LD	(ARG2),HL
	CALL	Y2
	DEC	HL
	DEC	HL
	DEC	HL
	LD	(ARG4),HL
;
	LD	B,5
SHA1	PUSH	BC
	CALL	PLOT
	LD	HL,(ARG1)
	INC	HL
	LD	(ARG1),HL
	LD	(ARG3),HL
	POP	BC
	DJNZ	SHA1
;
	CALL	X1
	INC	HL
	INC	HL
	INC	HL
	LD	(ARG1),HL
	LD	HL,(ARG3)
	DEC	HL
	LD	(ARG3),HL
	CALL	Y2
	DEC	HL
	LD	(ARG4),HL
	LD	(ARG2),HL
;
	LD	B,5
SHA2	PUSH	BC
	CALL	PLOT
	LD	HL,(ARG2)
	DEC	HL
	LD	(ARG2),HL
	LD	(ARG4),HL
	POP	BC
	DJNZ	SHA2
	RET
;_______________________________________
;
; UP:	Unterprogramme Pixelkoordinaten
;
X1	LD	HL,(WINON) ;X1=SA*8-1
	CALL	MUL8
	DEC	HL
	RET
;
X2	LD	HL,(WINON) ;X2=(SE+1)*8
	LD	A,(WINLG)
	ADD	L
	LD	L,A
	CALL	MUL8
	RET
;
Y1	LD	HL,(WINON+1)
	CALL	MUL8	   ;Y1=256-ZA*8
	XOR	A
	SUB	L
	LD	L,A
	RET
;
Y2	LD	HL,(WINON+1)
	LD	A,(WINLG+1);Y2=254-ZE*8
	ADD	L
	LD	L,A
	CALL	MUL8
	LD	A,0FFH
	SUB	L
	LD	L,A
	RET
;_______________________________________
;
; UP:	suche Modul M011  64k-RAM
;
; OUT:	B  -->	Steckplatzadresse
;	Cy=0	nicht gefunden
;
LOOKM	PUSH	AF
	LD	BC,880H
;
LOOKM1	IN	A,(C)
	CP	0F6H
	JR	Z,LOOKM2
	INC	B
	LD	A,20H	;h|chstm|glicher
	CP	B	;Modulschacht
	JR	NZ,LOOKM1
	LD	HL,MOERR
	JP	ERRTEX
;
LOOKM2	POP	AF
	RET
;_______________________________________
;
; UP:	hole Adresse aus WTAB und
;	schalte M011 entsprechend
;
; IN:	A  -->	Fensternummer
; OUT:	HL -->	Speicheradresse
;
LOOKA	PUSH	DE
	PUSH	BC
	PUSH	AF
	LD	HL,0
	LD	IY,WTAB
;
LOOKA2	OR	A	;richtiger
	JR	Z,LOOKA1;Tabellenplatz ?
;
	LD	C,(IY+0);hole L{nge
	INC	IY
	LD	B,(IY+0)
	INC	IY
	ADD	HL,BC	;addiere L{ngen
	DEC	A	;n{chster Platz
	JR	LOOKA2
;
LOOKA1	PUSH	HL
	LD	B,6
LOOKA3	SRL	H
	DJNZ	LOOKA3
;
	LD	B,6
	LD	A,H
LOOK4	SLA	A	;berechne
	DJNZ	LOOK4	;Steuerbyte
	ADD	3
;
	LD	C,A
	LD	A,H
	POP	HL
	LD	DE,4000H
LOOKA6	OR	A
	JR	Z,LOOKA5
;
	SCF
	CCF
	SBC	HL,DE
	DEC	A
	JR	LOOKA6
;
LOOKA5	LD	A,C
	ADD	HL,DE
	PUSH	HL
	CALL	LOOKM	;suche M011
	LD	L,B
	LD	D,A	;schalte entspr.
	LD	A,2	;Adresse
	CALL	PV1
	DEFB	MODU
;
	LD	A,2	;schalte RAM 4
	LD	L,4	;weg
	LD	D,0
	CALL	PV1
	DEFB	MODU
;
	POP	HL
	POP	AF
	POP	BC
	POP	DE
	RET
;_______________________________________
;
; UP:	Test auf Sectoroverflow
;
; IN:	HL -->	Speicheradresse
; OUT:	event. Speicherschaltung
;
SECOF	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
	LD	A,H
	CP	80H
	JR	C,SECOF1 ;nein
;
	CALL	LOOKM	;suche Modul
	LD	L,B	;hole aktuelles
	LD	A,1	;Steuerbyte
	PUSH	BC
	CALL	PV1
	DEFB	MODU
	POP	BC
;
	LD	A,D	;letzter Sector?
	CP	0C3H
	JP	Z,MERR1	;ja
;
	ADD	40H	;berechne neues
	LD	D,A	;Steuerbyte und
	LD	L,B	;schalte Modul
	LD	A,2	;entsprechend
	CALL	PV1
	DEFB	MODU
	POP	HL
	LD	HL,4000H
	PUSH	HL
;
SECOF1	POP	HL
	POP	DE
	POP	BC
	POP	AF
	RET
;_______________________________________
;
; UP:	schalte RAM4 wieder aktiv
;
SWI4	PUSH	AF
	PUSH	BC
	PUSH	DE
	PUSH	HL
;
	LD	A,2
	LD	L,4
	LD	D,3
	CALL	PV1
	DEFB	MODU
;
	POP	HL
	POP	DE
	POP	BC
	POP	AF
	RET
;_______________________________________
;
; UP:	Cursor auf Fensteranfang
;
HOME	PUSH	AF
	LD	A,10H
	CALL	PV1
	DEFB	CRT
	POP	AF
	RET
;_______________________________________
;
; UP:	Farbspeicher ein-/ausschalten
;
FARB1	PUSH	AF
	CALL	PV1
	DEFB	OSTR
	DEFB	ESC
	DEFB	'9'
	DEFB	0
	POP	AF
	RET
;_______________________________________
;
; UP:	Multiplikation L*8
;
; IN:	L  -->	Faktor
; OUT:	HL -->	Produkt
;
MUL8	LD	H,0
	RLC	L
	RL	H
	RLC	L
	RL	H
	RLC	L
	RL	H
	RET
;_______________________________________
;
; UP:	Linie ziehen
;
; IN:	ARG1	XA
;	ARG2	YA
;	ARG3	XE
;	ARG4	YE
;	FARB	Grafikfarbe
;
PLOT	CALL	PV1
	DEFB	LINE
	RET
;_______________________________________
;
; UP:	Ausgabe Fehlermeldungen und
;	R}cksprung ins CAOS
;
; IN:	HL -->	Text-Adresse
;
ERRTEX	CALL	PV1	;Zeilenschaltung
	DEFB	NL
	LD	E,ZKOUT
	CALL	PV3
;
	CALL	PV1	;Zeilenschaltung
	DEFB	OSTR
	DEFB	'!'
	DEFW	CRLF
	DEFW	BEEP
	DEFB	0
;
	CALL	PV1
	DEFB	LOOP
;_______________________________________
;
; Text:	Fehler im JUMP-Aufruf
;
KERR	DEFM	'UP nicht implementiert'
	DEFB	0
;_______________________________________
;
; Text: Fehler in Fensterparametern
;
PERR	DEFM	'Parameterfehler'
	DEFB	0
;_______________________________________
;
; Text: Fehler Speicher}berlauf
;
MERR	DEFM	'Modul ist voll'
	DEFB	0
;_______________________________________
;
; Text: Fehler kein Modul
;
MOERR	DEFM	'M011 nicht gefunden'
	DEFB	0
;_______________________________________
;
; physisches Programmende
;
;***************************************
                    
Detected encoding: ASCII (7 bit)2