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.