system/shard-z80-ruc-64180/1.5/src/CONOUT.MAC

Raw file
Back to index

TITLE	Basis 108 Console Ausgabe
;
	INCLUDE HD64180.LIB
;
	.LIST
;
;****************************************************************
;
;	C O N O U T
;
;	Direkte BASIS 80 Zeichen Ausgabe
;
;	Version 1.0 - 16. 9. 1985
;	Version 1.1 - 28. 10. 1985 (Invers korrigiert)
;	Version 1.2 - 30.12.86 (Zeichensatzeinstellung, Stringausgabe)
;
;	Teil des EUMEL SHARD fuer RUC 64180
;
;****************************************************************
;
;	Globale Adressen
;
	GLOBAL	CRTOUT, SWICUR, STROUT
;
;................................................................
;
;	Externe Variable
;
	EXTERNAL  TO6502, ZGERL, BEEPFRQ
;
;----------------------------------------------------------------
;
;	Konstanten fuer MMU
;
BIOSBANK EQU	0F2H		;CBAR fuer 6502 Zugriff
AR6502	EQU	5EH		;BBR-Wert fuer 6502 Zugriff
BASE	EQU	2000H		;6502 Adressoffset
;
;	6502 Softswitches
;
STRAM1	EQU	BASE+0C00CH	;Umschalten auf Videobank 0
STRAM2	EQU	STRAM1+1	;Umschalten auf Videobank 1

SWINV	EQU	BASE+0C000H	; > 127: Invers
SWFLSH	EQU	SWINV+1		; > 127: Flash
SW2OFF	EQU	SWFLSH+1	; Zeichensatzswitch 2
SW2ON	EQU	SW2OFF+1
SW1OFF	EQU	SW2ON+1
SW1ON	EQU	SW1OFF+1
SW0OFF	EQU	SW1ON+1
SW0ON	EQU	SW0OFF+1
;
;	andere 6502 Adressen
;
SCREEN	EQU	BASE+400H	;Anfang Video RAM
;
;----------------------------------------------------------------
;
	DSEG
;
;	lokale Daten
;
GOTOCNT: DEFB	0
GOTOX:	DEFB	0		;Reihenfolge GOTOX, GOTOY festgelegt !!
GOTOY:	DEFB	0
SCRADR:	DEFW	SCREEN
SCRXY:	DEFW	0
INVMOD:	DEFB	80H
CURCHR:	DEFB	0
CURINV:	DEFB	80H
;
OLDCBAR: DEFB	0		;Zwischenspeicher fuer CBAR
OLDBBR:	DEFB	0		;Zwischenspeicher fuer BBR
STKSAV:	DEFW	0		;Stackpointer Zwischenspeicher
	DEFS	20
STACK:
;
;----------------------------------------------------------------
;
	CSEG
;

;----------------------------------------------------------------
;
;	S T R O U T
;	Zeichenkette auf Masterconsole-Bildschirm ausgeben
;
;	Eingang: HL = Startadresse der Zeichenkette
;		 BC = Laenge der Zeichenkette
;	Ausgang: HL und Akku veraendert
;
STROUT:
	PUSH	BC
	PUSH	DE
	PUSH	IX

	PUSH	HL		; Stringadresse --> IX
	POP	IX

OUTLOOP:
	LD	A,B
	OR	C
	JR	Z,POPRET

	PUSH	BC
	LD	C,(IX+0)
	CALL	CRTOUT
	POP	BC
	INC	IX
	DEC	BC
	JR	OUTLOOP

POPRET:
	POP	IX
	POP	DE
	POP	BC
	RET
	
;-----------------------------------------------------------------
	
	INCLUDE	CONOUT4.INC
;
	END