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