Dies ist eine alte Version des Dokuments!
technische Daten
Sprungverteiler
Von der Interessengemeinschaft Heimcomputer der KdT des IZ der TU-Dresden wurde ein Sprungverteiler vereinbart, der zur Einbindung von Erweiterungen des „Z 1013“-Monitorprogramms in Anwenderprogrammen dient. Das Ziel der Vereinbarung bestand in einer weitestgehenden Portabilitaet von Programmen fuer den „Z 1013“, auch wenn diese z.B. einen Sprung zu einem Druckertreiber enthalten sollen. Der Verteiler beginnt auf der Adresse FFFFH abwaertsfuehrend und enthaelt Sprungbefehle zu den entsprechenden Unterprogrammen der Systemerweiterung, welche mit einem RET-Befehl enden muessen, um die Rueckkehr in das Anwenderprogramm zu erreichen. Nicht vorhandene Unterprogramme sind durch RET (C9H) kurzzuschliessen.
Sprungverteiler fuer Z 1013-Erweiterungen:
FFFDH - JMP INKEY holt ein Zeichen von Tastatur in den
Akku; kommt beim 2. Aufruf nur zurueck,
wenn Taste zwischendurch losgelassen
wurde
FFFAH - JMP POLL bringt immer ein Zeichen im Akku zu-
rueck, egal ob Taste losgelassen wurde
oder nicht
FFF7H - JMP STAT uebergibt Tastaturstatus im Akku
A=0 - keine Taste gedrueckt
A=FFH - Taste gedrueckt
die Abfrage erfolgt ohne Ruecksicht,
ob die Taste schon vor dem Aufruf ge-
drueckt war und hinterlaesst trotz ge-
drueckter Taste den Status
'letztes Zeichen war 0' ((Zelle 4)=0)
um eine evtl. nachfolgenden INKEY-Rou-
tine nicht zu sperren
FFF4 - JMP SARUF ruft die SAVE-Routine des Headersave
! zerstoert 1. Registersatz + AF'
Parameteruebergabe:
Zellen 1BH - anfadr.
1DH - endadr.
23H - strtadr.
Akku 3AH - Wiederholen der SAVE-Funk-
tion mit gleichem Kopf
H(IY) Typvorgabe (in ASCII), sonst 0
FFF1H - JMP LORUF ruft LOAD-Routine des Headersave
! zerstoert 1. Registersatz + AF'
Parameteruebergabe:
Zellen 1BH - neue Anfangsadresse des
Files sonst 0
Akku 0 - ohne signifikante Kontrol-
le
4EH - mit signifikanter Kopfkontrolle
(Typ) + Namenabfrage
H(IY) 0 - Typ wird abgefragt
Typkennzeichen (in ASCII),
keine Typabfr.
L(IY) 20H - Freigabe Autostart bei
COM-Files
FFEEH - JMP ZMINI Initialisierung der Z-Monitorrufe
auf B0H
FFEBH - JMP DRDEL setzt den logischen Druckertreiber
zurueck
FFE8H - JMP DRAKK uebergibt den Akkuinhalt an den lo-
gischen Druckertreiber
FFE5H - JMP BSDR druckt den Inhalt des BWS und kehrt
in das rufende Programm zurueck
FFE2H - JMP HARDC uebergibt den Akkuinhalt an logischen
Druckertreiber wenn ein Flag im Rechner
gesetzt ist;
wandelt CR (0DH) in NL (1EH/0DH-0AH)
! nur verwenden, wenn Programm eine
eigene Bildschirmverwaltung hat
FFDFH - JMP DRZEL wie DRAKK, nur das der Inhalt von
1BH uebergeben
wird (vorgesehen, um im BASIC mit POKE
zu drucken)
FFDCH - JMP BEEP erzeugen eines kurzen Signals
FFD9H - JMP ASTA Ausgabe Akkuinhalt als ASCII-Zeichen
an PUNCH
FFD6H - JMP BSTA Ausgabe Akkuinhalt als Byte an PUNCH
FFD3H - JMP AIN Eingabe eines ASCII-Zeichens vom LBL
in den Akku
FFD0H - JMP BIN Eingabe eines Bytes vom LBL in den
Akku
FFCDH - JMP DRINI Initialisierung des logischen Drucker-
treibers
FFCAH - JMP ZEIDR uebergibt ein Zeichen im Akku an phy-
sischen Druckertreiber
FFC7H - JMP BLMK Lesen eines Blocks vom Headersave
Parameteruebergabe:
Zellen 25H/26H * Kopfinhalt des zu le-
senden Bl.
HL * Ladeadresse des Blocks
Return:
Zellen 25H/26H * Kopfinhalt + 20H
HL * HL:=HL+20H
Abbruch des Lesens bei Kopfinhalt=0FFFFH
oder DMA > Endadr in ARG2 (1DH)
FFC4H - JMP BSMK Schreiben eines Blocks im Headersave
Parameteruebergabe:
HL * Quelladresse Block
IX * Kopfinhalt
DE * Anzahl der Sync.-Bits
Return:
HL * HL:=HL+20H
FFC1H - JMP SUCHK Suchen eines Kopfblocks und Uebergabe
des Inhalts im Kopfpuffer (E0-FF), keine
Auswertung
FFBEH - JMP AKP Aufbereitung Kopfpuffer mit Namenab-
frage
Parameteruebergabe wie bei SARUF
FFBBH - JMP GETST Abfrage der Joysticks und Uebergabe
des Ergebnisses in BC (B-links,C-rechts)
mit folgenden Bit-Bedeutungen
(Belegung mit 1):
Bit 0 - links
1 - rechts
2 - runter
3 - hoch
4 - Aktionstaste
Z-Flag=1, wenn keine Betaetigung vor-
liegt
CY-Flag=1, wenn Spielhebel nicht ange-
schlossen
FFB8H - JMP SOUND Ausgabe einer vollen Periode auf die
Tonbandbuchse, sowie auf Bit 7 vom Sys-
temport (User-P)
Uebergabe der Periodendauer in C mit
T=n*33us+20us (2MHz)
Systemzellen
BELEGTE SYSTEMZELLEN DES Z1013:
-------------------------------
ADR BYTE FUNKTION ZUSATZFKT.
0000 3 Sprung zum Warmstart
0003 1 Befehlscode bei RST 20H Geraetezuweisg.
(I/O-Byte)
0004 1 letztes Zeichen Tastatur
0005 3 CALL 0005H
0008 3 RST 8H
000B 2 Breakpointadr.
000D 3 Operandenfolge bei Breakpoint
0010 3 RST 10H
0013 2 Adr. bei INHEX
0015 1 Merkzelle HSave; (SHILO)
0016 2 SOIL
0018 3 RST 18H Sprung zu Monitor
2/3
001B 2 ARG 1
001D 2 ARG 2
001F 1 vom Cursor verdecktes Zeichen
0020 3 RST 20H
0023 2 ARG 3
0025 2 Cursorpos. nach Kommandokonv.
0027 1 ASCII/Graphikschalter
0028 3 RST 28H
002B 2 akt. Cursorposition
002D 3 BER 3 frei 2D:Zeilenzaehler
2E:max. Zeilenzahl
2F:Seitenlaenge
0030 3 RST 30H
0033 2 Kenntonlaenge
0035 3 Tastaturcodetab.
0038 3 RST 38H
003B 12 Tastaturcodetab.
0047 2 WINDOW-Laenge
0049 2 -"- -Anfang
004B 2 -"- -Ende
004D 2 Reg.retteber.:HL'
004F 2 DE'
0051 2 BC'
0053 2 AF'
0055 2 HL
0057 2 DE
0059 2 BC
005B 2 AF
005D 2 IY
005F 2 IX
0061 2 PC
0063 2 Stackpointer(90H nach RESET)
0065 1 BER 1 frei Spaltenzaehler
0066 3 NMI
0069 1 Merkz. fuer NEXT (gegen EI getauschtes Byte)
006A 2 SP-Zwischenspeicher
006C 2 Zwischenspeicher bei FIND
006E-008FH Anwenderstack
0090-00AFH Systemstack
00B0-00DFH frei fuer Kommandoschleife
00E0-00FFH Puffer fuer Header S/L
I/O-Adressen
Auch bei den I/O-Adressen wurde neben den vom Hersteller festgelegten Adressen einige mit Funktionen belegt und als Standard fuer die Anwender vorgeschlagen (1.Tagung in Dresden)
ADR. D-Bit I/O-PORT BEMERKUNGEN
bzw.FUNKTION
00H,01H PIO Z-1013 PORT A USER fuer Spiel-
hebel, Drucker usw.
02H,03H PIO Z-1013 PORT B
04H DB7 UMSCHALTUNG 32/64 BS Bilidschirm von 32
auf 64 Zchn. umschal-
ten, und umgekehrt.
DB6 UMSCHALTUNG TAKTFREQUENZ Taktfrequenz kann
mit diesem I/O-Signal
von 2 auf 4 MHz und
umgekehrt umgeschal-
tet werden.
DB5 UMSCHALTUNG ZEICHEN- Wenn verschiedene Zei-
GENERATOR chen-Generatoren (z.B.
ASCII-Code m.Grafik-
Zeichen und DIN-Zei-
chensatz-m.Umlaute
und SZ, sowie gesetz-
ten 7.Bit /invers)
DB4 ROM-ABSCHALTUNG Wenn z.B.exter-
ner ROM verwendet
werden soll, oder
ein Urlader.
DB3 freiprogrammierbarer
Zeichengenerator
DB2 Schreibschutz fuer F000H-F7FFH
u. 4K-RAM-Bereich und
DB1 (z.B. Urlader) F800H-FFFFH
DB0 frei (freihalten fuer
wichtige Verwendung.
rueckgesetztes Datenbit ist normaler Zustand
(Z1013-Original), dabei ist der Schreibschutz
eingeschaltet. Bitte bei Anwendung in Programmen
nur die jeweils benoetigten Bits setzen oder
ruecksetzen.
!! NICHT GENERELL '0' BEIM RUECKSETZEN VERWENDEN !!
05H DB0-7 frei fuer Anwender
08H TASTATUR-SPALTEN-TREIBER
FUER ERWEITERUNGEN:
30H,31H PIO 1 PORT A Fuer EPROM-
Programmierung u.a.
32H,33H PIO 1 PORT B
34H,35H PIO 2 PORT A V.24-Inter-
face (Riesa)
36H,37H PIO 2 PORT B frei
38H,39H,3AH,3BH CTC 1, 4 KANAELE (Bei eigner CTC In-
3CH,3DH,3EH,3FH CTC 2 4 ="= stalierung, 1. CTC als
Systemuhr vorgeschlagen)
98H RAM-FLOPPY A (Adressen fuer 2 RAM-
58H RAM-FLOPPY B Floppy)
FUER ROM-FLOPPY STEHT DIE ADRESSE NOCH NICHT FEST, WIRD ABER
WIE RAM-FLOPPY ANGESTEUERT, LIEGT ALSO ETWA IM GLEICHEN BE-
REICH.
D0H,D1H,D2H (nach Kramer)
F0H,F1H,F2H (nach Brosig) fuer DISK-FLOPPY genutzt.
Standard-Adressen fuer Vollgrafik festzulegen, hält die IG-HC noch fuer verfrüht, da noch kein für alle akzeptables System vorliegt.