Von der Interessengemeinschaft Heimcomputer der KdT des
IZ der TU-Dresden wurde ein Sprungverteiler vereinbart, der zur Einbindung
von Erweiterungen des Z1013-Monitorprogramms in Anwenderprogrammen dient.
Das Ziel der Vereinbarung bestand in der weitestgehenden Portabilität von
Programmen für den Z1013, auch wenn diese z.B. einen Sprung zu einem
Druckertreiber enthalten sollen. Der Verteiler beginnt auf der Adresse
FFFFh abwärtsführend und enthält Sprungbefehle zu den entsprechenden
Unterprogrammen der Systemerweiterung, welche mit einem RET-Befehl enden
müssen, um die Rückkehr in das Anwenderprogramm zu erreichen. Nicht
vorhandene Unterprogramme sind durch RET (C9h) kurzzuschließen.
Adresse |
Name |
Funktion |
FFFDh |
INKEY |
holt ein Zeichen von Tastatur in
den Akku; kommt beim 2. Aufruf nur zurück, wenn die Taste
zwischendurch losgelassen wurde |
FFFAh |
POLL |
bringt immer ein Zeichen im Akku
zurück, egal ob die Taste losgelassen wurde oder nicht |
FFF7h |
STAT |
übergibt den Tastaturstatus im
Akku
A = 00h - keine Taste gedrückt
A = FFh - Taste gedrückt
die Abfrage erfolgt ohne Rücksicht, ob die Taste schon vor dem
Aufruf gedrückt worden war und hinterläßt trotz gedrückter Taste
den Status 'letztes Zeichen war 0' ([Zelle 0004h]=0) um eine
eventuell nachfolgende INKEY-Routine nicht zu sperren |
FFF4h |
SARUF |
ruft die SAVE-Routine des
Headersave
! zerstört 1. Registersatz + AF'
Parameterübergabe Zellen:
001Bh (ARG1) = Anfangsadresse
001Dh (ARG2) = Endadresse
0023h (ARG3) = Startadresse
Akku 3Ah - Wiederholen der SAVE-Funktion mit gleichem Kopf
H(IY) Typvorgabe (in ASCII) sonst 0 |
FFF1h |
LORUF |
ruft die LOAD-Routine des
Headersave
! zerstört 1. Registersatz + AF'
Parameterübergabe Zellen:
001Bh (ARG1) = neue Anfangsadresse des Files / sonst 0
Akku 00h = ohne signifikante Kontrolle
Akku 4Eh = mit signifikante Kontrolle (TYP) + Namensabfrage
H(IY) 00h = Typ wird abgefragt sonst Typkennzeichen in ASCII
L(IY) 20h = Freigabe des Autostart bei COM-Files
LORUF ruft BLMK auf, dementsprechend sind auch
die Return-Werte |
FFFEh |
ZMINI |
Initialisierung des Z-Monitorrufes
auf 00B0h |
FFEBh |
DRDEL |
setzt den logischen Druckertreiber
zurück |
FFE8h |
DRAAK |
übergibt den Akkuinhalt an den
logischen Druckertreiber |
FFE5h |
BSDR |
druckt den Inhalt des BWS und kehrt
in das rufende Programm zurück |
FFE2h |
HARDC |
übergibt den Akkuinhalt an den
logischen Druckertreiber wenn ein Flag im Rechner gesetzt ist;
wandelt CR (0Dh) in NL (1Eh/0Dh-0Ah)
!nur verwenden, wenn das Programm eine eigene Bildschirmverwaltung
hat |
FFDFh |
DRZEL |
wie DRAKK, nur das der Inhalt von
001Bh (ARG1) übergeben wird (vorgesehen, um in BASIC mit POKE zu
drucken) |
FFDCh |
BEEP |
erzeugen eines kurzen Signals |
FFD9h |
ASTA |
Ausgabe Akkuinhalt als
ASCII-Zeichen an PUNCH (Lochbandstanzer) |
FFD6h |
BSTA |
Ausgabe Akkuinhalt als Byte an
PUNCH |
FFD3h |
AIN |
Eingabe eines ASCII-Zeichens vom
Lochbandleser (LBL) in den Akku |
FFD0h |
BIN |
Eingabe eines Bytes vom LBL in den
Akku |
FFCDh |
DRINI |
Initialisierung des logischen
Druckertreibers |
FFCAh |
ZEIDR |
übergibt ein Zeichen im Akku an
physischen Druckertreiber |
FFC7h |
BLMK |
Lesen eines Blocks vom Headersave
Parameterübergabe Zellen:
0025h/0026h |
* Kopfinhalt des zu lesenden Block |
HL |
* Ladeadresse des Blocks |
Return Zellen:
0025h/0026h |
* Kopfinhalt + 20h |
HL |
* HL = HL + 20h |
Abbruch des Lesens bei Kopfinhalt = FFFFh oder DMA > Endadr in
ARG2 (001Dh)
|
FFC4h |
BSMK |
Schreibes eines Blocks im
Headersave
Parameterübergabe:
HL * Quelladresse Block
IX * Kopfinhalt
DE * Anzahl der Sync.-Bits
Return:
HL * HL = HL + 20h |
FFC1h |
SUCHK |
Suchen eines Kopfblocks und
Übergabe des Inhalts im Kopfpuffer (00E0h-00FFh), keine Auswertung |
FFBEh |
AKP |
Aufbereitung Kopfpuffer, mit
Namenabfrage, Parameterübergabe wie bei SARUF |
FFBBh |
GETST |
Abfrage der Joysticks und Übergabe
des Ergebnisses in BC (B-links, C-rechts) mit folgenden Bedeutungen
(Belegung mit 1):
Bit 0 - links
1 - rechts
2 - runter
3 - hoch
4 - Aktionstaste
Z-Flag = 1, wenn keine Betätigung vorliegt
CY-Flag = 1, wenn Spielhebel nicht angeschlossen |
FFB8h |
SOUND |
Ausgabe einer vollen Periode auf
die Tonbandbuchse, sowie auf Bit 7 vom Systemport
Übergabe der Periodendauer in C mit T=n*33µs+20µs (2MHz) |
FFB5h |
BSAVE |
Speichern im BASIC-Code Format |
FFB2h |
BLOAD |
Laden im BASIC-Code Format |
Stand: 01. Januar 2008