Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
z1013:technische_daten [2010/08/26 06:55] volkerpz1013:technische_daten [2012/12/04 19:06] volkerp
Zeile 1: Zeile 1:
-====== technische Daten ======+====== Entwicklungsunterlagen ======
  
 +===== Schaltungsunterlagen =====
  
-===== Sprungverteiler =====+Der Z013-Bedienungslanleitung lagen Stromlaufpläne bei. Es gibt verschiedene Versionen zum Z1013.01 und zum Z1013.64.
  
-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 dientDas Ziel der Vereinbarung bestand +  * {{:z1013:z1013.01-schaltung.pdf|}} Z1013.01 
-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 erreichenNicht vorhandene Unterprogramme sind durch RET (C9H) kurzzuschliessen +  * {{:z1013:z1013.64-schaltung.pdf|}} Z1013.64
  
-Sprungverteiler fuer Z 1013-Erweiterungen:+Die Stromlaufpläne vom Z1013 entprechen leider nicht den von anderen Rechnern gewohnten Standards. In allen Version gibt es offenbar Fehler und Ungereimtheiten.
  
-<code> +Auch im Funkamateur wurden wiederum abweichende - Unterlagen veröffentlicht. Hier wurden die Unterlagen zur 16K-Version präsentiert.
- FFFDH JMP INKEY  holt ein Zeichen von Tastatur in den +
-                    Akku; kommt beim 2Aufruf nur zurueck, +
-                    wenn Taste zwischendurch losgelassen  +
-                    wurde +
  
- FFFAH - JMP POLL   bringt immer ein Zeichen im Akku zu- +  * {{:z1013:z1013-schaltung-fa.pdf|}} FA 3/89+6/89
-                    rueck, egal ob Taste losgelassen wurde +
-                    oder nicht+
  
- FFF7H - JMP STAT   uebergibt Tastaturstatus im Akku +===== Speicheraufteilung =====
-                    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 +^ Bereich          ^ Inhalt                                            ^ 
-                    zerstoert 1. Registersatz + AF' +| 0000-00FFh       | Systemzellen                                      | 
-                    Parameteruebergabe: +| 0069-008Fh       | Anwender-Stackbereich (Stack laeuft nach unten!)  | 
-                    Zellen 1BH anfadr. +| 0090-00AFh       | System-Stackbereich (Stack laeuft nach unten!)    | 
-                           1DH endadr. +| 00B0-00DFh       | Kommandoerweiterungstabelle                       | 
-                           23H strtadr. +| 00E0-00FFh       | Kassettenueberspielbereich                        | 
-                    Akku   3AH - Wiederholen der SAVE-Funk+| 0100-3FFF/EBFFh  | Anwenderprogramme                                 | 
-                                 tion mit gleichem Kopf +| EC00-EFFFh       | Bildwiederholspeicher BWS                         | 
-                    H(IY Typvorgabe (in ASCII), sonst 0+| F000-F7FFh       | Monitor (2k                                     | 
 +| F000-FFFFh       | Monitor (4k                                     |
  
- FFF1H - JMP LORUF  ruft LOAD-Routine des Headersave 
-                    ! zerstoert 1. Registersatz + AF' 
-                    Parameteruebergabe: 
-                    Zellen 1BH - neue Anfangsadresse des 
-                    Files sonst 0 
-                    Akku     - 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 +===== Systemrufe (Monitorfunktionen) =====
-                   auf B0H+
  
- FFEBH - JMP DRDEL setzt den logischen Druckertreiber +die wichtigsten Systemzellen
-                   zurueck+
  
- FFE8H - JMP DRAKK  uebergibt den Akkuinhalt an den lo- +^ Name   ^ Adresse  ^ Anzahl Byte  ^ Bedeutung                                        ^ 
-                    gischen Druckertreiber+| SOIL   | 0016     | 2            | Anfangsadresse der Eingabezeile (Eingabepuffer) 
 +| ARG1   | 001B     | 2            | 1. Parameter eines Kommandos                     | 
 +| ARG2   | 001D     | 2            | 2. Parameter                                     | 
 +| ARG3   | 0023     | 2            | 3. Parameter                                     | 
 +| CURSR  | 002B     | 2            | Kursoradresse                                    |
  
- FFE5H - JMP BSDR   druckt den Inhalt des BWS und kehrt 
-                    in das rufende Programm zurueck 
  
- FFE2H - JMP HARDC  uebergibt den Akkuinhalt an logischen +Übersicht. Detailierte Beschreibung s. TODO. 
-                    Druckertreiber wenn ein Flag im Rechner +Befehlsaufruf als
-                    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 +    RST 20H 
-                    1BH uebergeben  +    DB  nn
-                    wird (vorgesehen, um im BASIC mit POKE +
-                    zu drucken)+
  
- FFDCH - JMP BEEP   erzeugen eines kurzen Signals+^ RST 20H  ^ Funktion  ^ Beschreibung                                                     ^ Zellen/Bemerkung            ^ 2.02   ^ A2     ^ 
 +| DB 00H  | OUTCH     | Ausgabe des im A-Register stehenden Zeichens                     | A                           | F21BH  | F258H  | 
 +| DB 01H  | INCH      | Eingabe eines Zeichens von der Tastatur. Warten bis Tastendruck  | A Ret bei A#0               | F20CH  | F219H  | 
 +| DB 02H  | PRST7     | Stringausgabe                                                    | Ende Bit7=1                 | F2A5H  | F2E2H  | 
 +| DB 03H  | INHEX     | Konv. ASCII HEX->Zahl                                            | Aadr=DE Zahl=HL             | F2F4H  | F331H  | 
 +| DB 04H  | INKEY     | Tastaturabfrage                                                  | A + 0004H                   | F130H  | F119H  | 
 +| DB 05H  | INLIN     | Eingabe einer Zeile                                              | Aadr=SOIL ENDE=0DH          | F2B3H  | F2F0H  | 
 +| DB 06H  | OUTHX     | Ausgabe des A-Registers hexadezimal                              | A                           | F301H  | F33EH  | 
 +| DB 07H  | OUTHL     | Ausgabe des HL-Registers hexadezimal                             | HL                          | F31AH  | F357H  | 
 +| DB 08H  | CSAVE     | Kassettenspeichern                                               | Aadr=Arg1 Eadr=Arg2         | F369H  | F3A6H  | 
 +| DB 09H  | CLOAD     | Kassettenladen                                                   | Aadr=Arg1 Eadr=Arg2         | F3F8H  | F435H  | 
 +| DB 0AH  | MEM       | Modify Memory (M-Kommando)                                       | Aadr=Arg1                   | F325H  | F362H  | 
 +| DB 0BH  | WIND      | Scrollbereich setzen                                             | Aadr=Arg1 Eadr+1=Arg2       | F6D1H  | F6F5H  | 
 +| DB 0CH  | OTHLS     | Ausgabe HL + Space                                               | HL                          | F5C7H  | F604H  | 
 +| DB 0DH  | OUTDP     | Ausgabe :+HL+Space                                               | HL                          | F5C4H  | F601H  | 
 +| DB 0EH  | OUTSP     | Ausgabe Leerzeichen                                              |                             | F5CFH  | F60CH  | 
 +| DB 0FH  | TRANS     | Speicherbereich verschieben                                      | Von=Arg1 Nach=Arg2 An=Arg3  | F51DH  | F55AH  | 
 +| DB 10H  | INSTR     | Eingabe einer Zeichenkette                                       | Aadr=SOIL ohne'#'           | F2B9H  | F2F6H  | 
 +| DB 11H  | KILL      | Speicherbereich füllen                                           | Aadr=Arg1 Eadr=Arg2 B=Arg3  | F50BH  | F548H  | 
 +| DB 12H  | HEXUM     | Hexa-Umschaltung (2.02)                                          |                             | F6B8H  |        | 
 +| DB 13H  | ALPHA     | Alpha-Umschaltung (2.02)                                                                     | F6C5H  |        |
  
- FFD9H - JMP ASTA   Ausgabe Akkuinhalt als ASCII-Zeichen 
-                    an PUNCH 
  
- FFD6H - JMP BSTA   Ausgabe Akkuinhalt als Byte an PUNCH 
  
 +===== Sprungverteiler =====
  
- FFD3H - JMP AIN    Eingabe eines ASCII-Zeichens vom LBL +Details s. [[z1013:software:sprungverteiler|]]
-                    in den Akku+
  
- FFD0H - JMP BIN    Eingabe eines Bytes vom LBL in den  +Der Sprungverteiler ist eine Sprungliste zu erweiterten Systemfunktionen. Er ist in den meisten 4K-Monitoren enthalten.
-                    Akku+
  
- FFCDH JMP DRINI  Initialisierung des logischen Drucker- +Standort: FFB8h-FFFFh
-                    treibers+
  
- FFCAH JMP ZEIDR  uebergibt ein Zeichen im Akku an phy- +Sprungverteiler fuer Z 1013-Erweiterungen:
-                    sischen Druckertreiber+
  
- FFC7H - JMP BLMK   Lesen eines Blocks vom Headersave +^ Adr. ^ Aufruf ^ Beschreibung ^ Zellen/Bemerkung ^ 
-                    Parameteruebergabe+| FFFDH | JMP INKEY | holt Zeichen von Tastatur, wartet | A = Zeichen | 
-                    Zellen 25H/26H * Kopfinhalt des zu le+| FFFAH | JMP POLL | holt Zeichen von Tastatur, wartet | A = Zeichen | 
-                    senden Bl. +| FFF7H | JMP STAT | Tastaturstatus im Akku | A=0 keine Taste gedrueckt, A=FFH Taste gedrueckt | 
-                    HL             * Ladeadresse des Blocks +| FFF4 | JMP SARUF | Headersave | 1BH - aadr 1DH - eadr 23H - sadr,\\ A=':' - SAVE mit vorherigen Werten, H(IY) = Typ oder 00h | 
-                  Return: +| FFF1H | JMP LORUF | Headerload |1BH - aadr/0, A=0 ohne, =4EH - mit Kopfkontrolle (Typ) + Namenabfrage,\\  H(IY)=0 - Typ wird abgefragt, <>0 - Typ,\\ L(IY) = ' ' - Autostart bei 'C' | 
-                    Zellen 25H/26H * Kopfinhalt + 20H +| FFEEH | JMP ZMINI | Initialisierung Zusatzmonitor auf B0H | | 
-                    HL             * HL:=HL+20H +| FFEBH | JMP DRDEL | setzt den logischen Druckertreiber zurueck | | 
-                  Abbruch des Lesens bei Kopfinhalt=0FFFFH  +| FFE8H | JMP DRAKK | logischer Druckertreiber | A=Zeichen | 
-                    oder DMA > Endadr in ARG2 (1DH)+| FFE5H | JMP BSDR | Bildschirmkopie drucken | 
 +| FFE2H | JMP HARDC | Hardcopy | A=Zeichen, Flag=??? 
 +| FFDFH | JMP DRZEL | logischer Druckertreiber | 1BH=Zeichen | 
 +| FFDCH | JMP BEEP | kurzer Ton | | 
 +| FFD9H | JMP ASTA | Ausgabe ASCII an PUNCH | A=Zeichen |  
 +| FFD6H | JMP BSTA | Ausgabe Byte an PUNCH | A=Byte |  
 +| FFD3H | JMP AIN | Eingabe ASCII-Zeichen von LBL | ret A=Zeichen | 
 +| FFD0H | JMP BIN | Eingabe Byte vo LBL  | ret A=Byte | 
 +| FFCDH | JMP DRINI | Initialisierung des logischen Druckertreibers | 
 +| FFCAH | JMP ZEIDR | physischer Druckertreiber | A=Zeichen | 
 +| FFC7H | JMP BLMK | Headersave Block lesen | 25H/26H=Kopf, HL=Ladeadr, ret. 25H/26H=Kopf+20H, HL:=HL+20H | 
 +| FFC4H | JMP BSMK | Headersave Block schreiben | HL=adr, IX=Kopf, DE=Anzahl der Sync.-Bits, ret HL:=HL+20H | 
 +| FFC1H | JMP SUCHK | Suchen eines Kopfblocks | | 
 +| FFBEH | JMP AKP | Aufbereitung Kopfpuffer mit Namenabfrage | | 
 +| FFBBH | JMP GETST | Abfrage der Joysticks | ret BC (B-links,C-rechts
 +| FFB8H | JMP SOUND | Soundausgabe | C =Periodendauer |
  
- 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 +===== Systemzellen =====
-                    des Inhalts im Kopfpuffer (E0-FF), keine  +
-                    Auswertung+
  
- FFBEH - JMP AKP    Aufbereitung Kopfpuffer mit Namenab+^ ADR         ^ BYTE  ^ FUNKTION                                      ^ ZUSATZFKT.                                               ^ 
-                    frage +| 0000        | 3     | Sprung zum Warmstart                          |                                                          | 
-                    Parameteruebergabe wie bei SARUF +| 0003        | 1     | Befehlscode bei RST 20H                       | Geraetezuweisg. (I/O-Byte)                               | 
- +| 0004        | 1     | letztes Zeichen Tastatur                      |                                                          | 
- FFBBH - JMP GETST  Abfrage der Joysticks und Uebergabe  +| 0005        | 3     | CALL 0005H                                    |                                                          | 
-                    des Ergebnisses in BC (B-links,C-rechts+| 0008        | 3     | RST 8H                                        |                                                          | 
-                    mit folgenden Bit-Bedeutungen +| 000B        | 2     | Breakpointadr.                                |                                                          | 
-                    (Belegung mit 1)+| 000D        | 3     | Operandenfolge bei Breakpoint                                                                          | 
-                    Bit 0 links +| 0010        | 3     | RST 10H                                                                                                | 
-                        rechts +| 0013        | 2     | Adr. bei INHEX                                |                                                          | 
-                        2 - runter +| 0015        | 1                                                   | Merkzelle HSave; (SHILO                                | 
-                        hoch +| 0016        | 2     | SOIL                                          |                                                          | 
-                        Aktionstaste +| 0018        | 3     | RST 18H                                       | Sprung zu Monitor   2/                                 | 
-                       Z-Flag=1, wenn keine Betaetigung vor+| 001B        | 2     | ARG                                         |                                                          | 
-                    liegt +| 001D        | 2     | ARG 2                                                                                                  | 
-                    CY-Flag=1, wenn Spielhebel nicht ange+| 001F        | 1     | vom Cursor verdecktes Zeichen                                                                          | 
-                    schlossen   +| 0020        | 3     | RST 20H                                                                                                | 
- +| 0023        | 2     | ARG 3                                                                                                  | 
- FFB8H JMP SOUND  Ausgabe einer vollen Periode auf die +| 0025        | 2     | Cursorpos. nach Kommandokonv.                                                                          | 
-                    Tonbandbuchse, sowie auf Bit 7 vom Sys+| 0027        | 1     | ASCII/Graphikschalter                                                                                  | 
-                    temport (User-P+| 0028        | 3     | RST 28H                                                                                                | 
-                    Uebergabe der Periodendauer in C mit  +| 002B        | 2     | akt. Cursorposition                                                                                    | 
-                    T=n*33us+20us (2MHz+| 002D        | 3     | BER 3 frei                                    | 2D:Zeilenzaehler\\ 2E:max. Zeilenzahl\\ 2F:Seitenlaenge  | 
-</code> +| 0030        | 3     | RST 30H                                                                                                | 
- +| 0033        | 2     | Kenntonlaenge                                                                                          | 
- +| 0035        | 3     | Tastaturcodetab.                              |                                                          | 
-===== Systemzellen =====+| 0038        | 3     | RST 38H                                                                                                | 
 +| 003B        | 12    | Tastaturcodetab.                              |                                                          | 
 +| 0047        | 2     | WINDOW-Laenge                                                                                          | 
 +| 0049        | 2     -" -Anfang                                  |                                                          | 
 +| 004B        |     | -" -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                        |                                                          |
  
-^ 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 ===== ===== I/O-Adressen =====
Zeile 293: Zeile 253:
   TC: EQU 78H ;TERMINAL COUNT   TC: EQU 78H ;TERMINAL COUNT
  
-NANOS ???+CCJena FDC (?)
  
   ;FDC-Adressen   ;FDC-Adressen
  • z1013/technische_daten.txt
  • Zuletzt geändert: 2017/04/08 10:38
  • von volkerp