; ;Der folgende Aufruf kann dazu benutzt werden, die Hardcopy-Routine ;des JOYCE aus einem Anwenderprogramm heraus aufzurufen ; CALL 0FC5AH ;Speicherbank #0 einschalten DEFW HC_Call ;und RST-Befehl ausf}hren RET ;danach wieder zur}ck ; ;der RST-Befehl mu~ in der Common Memory ($C000-$FFF) oder in einer ;System-Speicherbank stehen ; HC_Call RST 00H ;Speicherbank #2 einschalten DEFW 044D5H ;und Hardcopy-Routine aufrufen ; ;-------------------------------------------------------------------- ; ;Der folgende Aufruf }bergibt ein Zeichen direkt an den Drucker- ;treiber zur Ausgabe an den Drucker ; LD C,Zeichen ;Ausgabezeichen ins C-Register CALL 0FC5AH ;Speicherbank #0 einschalten DEFW PRT_CHR ;und RST-Befehl ausf}hren RET ;danach wieder zur}ck ; ;der RST-Befehl mu~ wieder in der Common Memory oder in einer System- ;Speicherbank stehen ; PRT_CHR RST 00H ;Speicherbank #2 einschalten DEFW 04CB4H ;und Druckerausgabe aufrufen ; ;-------------------------------------------------------------------- ; ;Der folgende Aufruf }bertragt die Matrix eines Zeichens aus dem ;Bildschimspeicher (Screen-Environment) in einen Puffer in der ;Common Memory. ;Beim Aufruf wird }ber DE die Zeichenposition und }ber HL die ;Pufferadresse }bergeben. ; LD D,Zeile ;Zeichenposition nach DE LD E,Spalte LD HL,Puffer ;Pufferadresse nach HL CALL 0FC5AH ;Speicherbank #0 einschalten DEFW SCR_Get ;und RST-Befehl ausf}hren RET ;danach zur}ck ; ;Der RST-Befehl und in diesem Fall auch der Matrix-Puffer m}ssen ;in der Common Memory liegen (bzw. in einer Systembank). ;Das Auslesen des Bildschirmspeichers und }bertragen der Matrix ;erfolgt durch eine Routine des Bildschirmtreibers (SCR SET MATRIX) ; SCR_Get RST 08H ;Screen-Environment einschalten DEFW 01764H ;und Matrix }bertragen ; ;-------------------------------------------------------------------- ; ;Der folgende Aufruf }bertragt einen Datenblock (Max. 16 KByte) ;von einem Speicherblock in den anderen. ;F}r die ]bertragung wird eine KERNEL-Routine (KL LDIR) benutzt. ;Quelladresse (Source_Adr) und Zieladresse (Dest_Adr) liegen ;im Adress-Bereich $4000-SBFFF, die Gr|~e des Datenblocks wird durch ;'Anzahl' definiert. ; LD HL,Source_Adr ;Ouelladresse -> HL LD DE,Dest_Adr ;Zieladresse -> DE LD BC,Anzahl ;Lange des Datenblocks -> BC CALL 0FC5AH ;Speicherbank #0 einschalten DEFW Blk_m1 ;und Transfer durchf}hren RET ;danach wieder zur}ck ; ;Hier wird der RST 28H-Befehl zur Speicherumschaltung benutzt, d.h. ;der RAM Control Block folgt direkt dem RST-Befehl. ;RST-Befehl und RAM-Control-Block m}ssen in der Common Memory oder ;einer System-Speicherbank liegen. ; Blk_m1 RST 028H ;'LO_Block' und 'Hl_Block' einblenden RAMCB1 DEFW 023CDH ;Transfer-Routine aufrufen DEFB LO_Block ;beliebige Speicherblock-Numner DEFB HI_Block ;beliebige Speicherblock-Nummer ; ;-------------------------------------------------------------------- ; ;Mit dem folgenden Aufruf k|nnen Daten direkt aus dem Matrix-RAM ;in einen Speicherbereich der RAM-Disk (hier Bank #4) }bertragen ;werden. Auch hierbei m}ssen Source- und Destination-Adressen vorher ;gesetzt werden. ; LD HL,0B800H ;Startadresse Character-Matrix-RAM LD DE,0A000H ;Startadresse in der RAM-Disk-Bank LD BC,00800H ;Anzahl der Matrix-Bytes CALL 0FC5AH ;Speicherbank #0 einschalten DEFW Blk_m2 ;und Transfer durchf}hren RET ;dann wieder zur}ck ; ;Diesmal erfolgt der Transfer }ber RST 20H, d.h. der RAM-Control- ;Block liegt, vom Aufruf getrennt, irgendwo in der Common Memory. ;Selbstverst{ndlich mu~ der RST-Befehl ebenfalls in der Common Memory ;oder einer Systembank liegen ; Blk_m2 RST 020H ;Speicher konfigurieren DEFW RAMCB2 ;RAM-Control-Block spezifizieren ; ;Der RAM-Control-Block liegt, vom Aufruf getrennt in der Common ;Memory oder einer Systembank. ;LO_Block und HI_Block m}ssen vor dem Aufruf definiert sein ; RAMCB2 DEFW 023CDH ;Adresse der Transfer-Routine (KL LDIR) DEFB 08AH ;Blocknummer Block #10 (Bank #4) DEFB 082H ;Blocknummer Block #2 (SCR-Environment) ; ;