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/09/06 15:24] 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.
  
-^ Adr. ^ Aufruf ^ Bemerkung ^ +Auch im Funkamateur wurden wiederum abweichende Unterlagen veröffentlichtHier wurden die Unterlagen zur 16K-Version präsentiert.
-| 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 zurueck, 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 gedrueckt war und hinterlaesst trotz gedrueckter Taste den Status 'letztes Zeichen war 0' ((Zelle 4)=0) um eine evtlnachfolgenden INKEY-Routine nicht zu sperren | +
-| FFF4 | JMP SARUF | ruft die SAVE-Routine des Headersave\\ ! zerstoert 1Registersatz + AF'\\ Parameteruebergabe:\\ Zellen 1BH - anfadr., 1DH - endadr., 23H - strtadr.\\ Akku   3AH - Wiederholen der SAVE-Funktion 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     - ohne signifikante Kontrolle, 4EH - mit signifikanter Kopfkontrolle (Typ) + Namenabfrage\\ H(IY)  0   - Typ wird abgefragt H(IY) = 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 logischen Druckertreiber | +
-| FFE5H | JMP BSDR | druckt den Inhalt des BWS und kehrt in das rufende Programm zurueck |+
  
-<code> +  * {{:z1013:z1013-schaltung-fa.pdf|}} FA 3/89+6/89
- 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 +===== Speicheraufteilung =====
-                    1BH uebergeben  +
-                    wird (vorgesehen, um im BASIC mit POKE +
-                    zu drucken)+
  
- FFDCH JMP BEEP   erzeugen eines kurzen Signals+^ Bereich          ^ Inhalt                                            ^ 
 +| 0000-00FFh       | Systemzellen                                      | 
 +| 0069-008Fh       | Anwender-Stackbereich (Stack laeuft nach unten!)  
 +| 0090-00AFh       | System-Stackbereich (Stack laeuft nach unten!)    | 
 +| 00B0-00DFh       | Kommandoerweiterungstabelle                       | 
 +| 00E0-00FFh       | Kassettenueberspielbereich                        | 
 +| 0100-3FFF/EBFFh  | Anwenderprogramme                                 | 
 +| EC00-EFFFh       | Bildwiederholspeicher BWS                         | 
 +| F000-F7FFh       | Monitor (2k)                                      | 
 +| F000-FFFFh       | Monitor (4k)                                      |
  
- FFD9H - JMP ASTA   Ausgabe Akkuinhalt als ASCII-Zeichen 
-                    an PUNCH 
  
- FFD6H - JMP BSTA   Ausgabe Akkuinhalt als Byte an PUNCH+===== Systemrufe (Monitorfunktionen) =====
  
 +die wichtigsten Systemzellen
  
- FFD3H - JMP AIN    Eingabe eines ASCII-Zeichens vom LBL +^ Name   ^ Adresse  ^ Anzahl Byte  ^ Bedeutung                                        ^ 
-                    in den Akku+| 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                                    |
  
- FFD0H - JMP BIN    Eingabe eines Bytes vom LBL in den  
-                    Akku 
  
- FFCDH - JMP DRINI  Initialisierung des logischen Drucker- +Übersicht. Detailierte Beschreibung s. TODO. 
-                    treibers+Befehlsaufruf als
  
- FFCAH - JMP ZEIDR  uebergibt ein Zeichen im Akku an phy- +    RST 20H 
-                    sischen Druckertreiber+    DB  nn
  
- FFC7H - JMP BLMK   Lesen eines Blocks vom Headersave +^ RST 20H  ^ Funktion  ^ Beschreibung                                                     Zellen/Bemerkung            ^ 2.02   ^ A2     ^ 
-                    Parameteruebergabe: +| DB 00H  | OUTCH     | Ausgabe des im A-Register stehenden Zeichens                     | A                           | F21BH  | F258H  | 
-                    Zellen 25H/26H * Kopfinhalt des zu le+| DB 01H  | INCH      | Eingabe eines Zeichens von der TastaturWarten bis Tastendruck  | A Ret bei A#0               | F20CH  | F219H  | 
-                    senden Bl+| DB 02H  | PRST7     | Stringausgabe                                                    | Ende Bit7=1                 | F2A5H  | F2E2H  | 
-                    HL             * Ladeadresse des Blocks +| DB 03H  | INHEX     | Konv. ASCII HEX->Zahl                                            | Aadr=DE Zahl=HL             | F2F4H  | F331H  | 
-                  Return: +| DB 04H  | INKEY     | Tastaturabfrage                                                  | A + 0004H                   | F130H  | F119H  | 
-                    Zellen 25H/26H * Kopfinhalt 20H +| DB 05H  | INLIN     | Eingabe einer Zeile                                              | Aadr=SOIL ENDE=0DH          | F2B3H  | F2F0H  | 
-                    HL             * HL:=HL+20H +| DB 06H  | OUTHX     | Ausgabe des A-Registers hexadezimal                              | A                           | F301H  | F33EH  | 
-                  Abbruch des Lesens bei Kopfinhalt=0FFFFH  +| DB 07H  | OUTHL     | Ausgabe des HL-Registers hexadezimal                             | HL                          | F31AH  | F357H  | 
-                    oder DMA > Endadr in ARG2 (1DH)+| 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  |        |
  
- 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- +===== Sprungverteiler =====
-                    frage +
-                    Parameteruebergabe wie bei SARUF+
  
- FFBBH - JMP GETST  Abfrage der Joysticks und Uebergabe  +Details s. [[z1013:software:sprungverteiler|]]
-                    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 +Der Sprungverteiler ist eine Sprungliste zu erweiterten Systemfunktionen. Er ist in den meisten 4K-Monitoren enthalten. 
-                    Tonbandbuchsesowie auf Bit 7 vom Sys+ 
-                    temport (User-P+Standort: FFB8h-FFFFh 
-                    Uebergabe der Periodendauer in C mit  + 
-                    T=n*33us+20us (2MHz+Sprungverteiler fuer Z 1013-Erweiterungen: 
-</code>+ 
 +^ Adr. ^ Aufruf ^ Beschreibung ^ Zellen/Bemerkung ^ 
 +| FFFDH | JMP INKEY | holt Zeichen von Tastatur, wartet | A = Zeichen | 
 +| FFFAH | JMP POLL | holt Zeichen von Tastaturwartet | A = Zeichen | 
 +| FFF7H | JMP STAT | Tastaturstatus im Akku | A=0 keine Taste gedrueckt, A=FFH Taste gedrueckt | 
 +| FFF4 | JMP SARUF | Headersave | 1BH aadr 1DH - eadr 23H - sadr,\\ A=':' - SAVE mit vorherigen Werten, H(IY= Typ oder 00h | 
 +| 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' | 
 +| FFEEH | JMP ZMINI | Initialisierung Zusatzmonitor auf B0H | | 
 +| FFEBH | JMP DRDEL | setzt den logischen Druckertreiber zurueck | | 
 +| FFE8H | JMP DRAKK | logischer Druckertreiber | A=Zeichen | 
 +| 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 |
  
  
 ===== Systemzellen ===== ===== Systemzellen =====
  
-^ ADR  ^ BYTE ^ FUNKTION ^ ZUSATZFKT. ^ +^ ADR         ^ BYTE  ^ FUNKTION                                      ^ ZUSATZFKT.                                               
-| 0000 | 3 | Sprung zum Warmstart | | +| 0000        | 3     | Sprung zum Warmstart                                                                                   
-| 0003 | 1 | Befehlscode bei RST 20H | Geraetezuweisg. (I/O-Byte) | +| 0003        | 1     | Befehlscode bei RST 20H                       | Geraetezuweisg. (I/O-Byte)                               
-| 0004 | 1 | letztes Zeichen Tastatur | | +| 0004        | 1     | letztes Zeichen Tastatur                                                                               
-| 0005 | 3 | CALL 0005H | | +| 0005        | 3     | CALL 0005H                                                                                             
-| 0008 | 3 | RST 8H | | +| 0008        | 3     | RST 8H                                                                                                 
-| 000B | 2 | Breakpointadr. | | +| 000B        | 2     | Breakpointadr.                                                                                         
-| 000D | 3 | Operandenfolge bei Breakpoint | | +| 000D        | 3     | Operandenfolge bei Breakpoint                                                                          
-| 0010 | 3 | RST 10H | | +| 0010        | 3     | RST 10H                                                                                                
-| 0013 | 2 | Adr. bei INHEX | | +| 0013        | 2     | Adr. bei INHEX                                                                                         
-| 0015 | 1 | | Merkzelle HSave; (SHILO) +| 0015        | 1                                                   | Merkzelle HSave; (SHILO)                                 
-| 0016 | 2 | SOIL | | +| 0016        | 2     | SOIL                                                                                                   
-| 0018 | 3 | RST 18H | Sprung zu Monitor   2/3 | +| 0018        | 3     | RST 18H                                       | Sprung zu Monitor   2/                                 
-| 001B | 2 | ARG 1 | | +| 001B        | 2     | ARG 1                                                                                                  
-| 001D | 2 | ARG 2 | | +| 001D        | 2     | ARG 2                                                                                                  
-| 001F | 1 | vom Cursor verdecktes Zeichen | | +| 001F        | 1     | vom Cursor verdecktes Zeichen                                                                          
-| 0020 | 3 | RST 20H | | +| 0020        | 3     | RST 20H                                                                                                
-| 0023 | 2 | ARG 3 | | +| 0023        | 2     | ARG 3                                                                                                  
-| 0025 | 2 | Cursorpos. nach Kommandokonv. | | +| 0025        | 2     | Cursorpos. nach Kommandokonv.                                                                          
-| 0027 | 1 | ASCII/Graphikschalter | | +| 0027        | 1     | ASCII/Graphikschalter                                                                                  
-| 0028 | 3 | RST 28H | | +| 0028        | 3     | RST 28H                                                                                                
-| 002B | 2 | akt. Cursorposition | | +| 002B        | 2     | akt. Cursorposition                                                                                    
-| 002D | 3 | BER 3 frei | 2D:Zeilenzaehler\\ 2E:max. Zeilenzahl\\ 2F:Seitenlaenge | +| 002D        | 3     | BER 3 frei                                    | 2D:Zeilenzaehler\\ 2E:max. Zeilenzahl\\ 2F:Seitenlaenge  
-| 0030 | 3 | RST 30H | | +| 0030        | 3     | RST 30H                                                                                                
-| 0033 | 2 | Kenntonlaenge | | +| 0033        | 2     | Kenntonlaenge                                                                                          
-| 0035 | 3 | Tastaturcodetab. | | +| 0035        | 3     | Tastaturcodetab.                                                                                       
-| 0038 | 3 | RST 38H | | +| 0038        | 3     | RST 38H                                                                                                
-| 003B | 12 | Tastaturcodetab. | | +| 003B        | 12    | Tastaturcodetab.                                                                                       
-| 0047 | 2 | WINDOW-Laenge | | +| 0047        | 2     | WINDOW-Laenge                                                                                          
-| 0049 | 2 | -" -Anfang | | +| 0049        | 2     | -" -Anfang                                                                                           
-| 004B | 2 | -" -Ende | | +| 004B        | 2     | -" -Ende                                                                                             
-| 004D | 2 | Reg.retteber.:HL' | | +| 004D        | 2     | Reg.retteber.:HL'                                                                                      
-| 004F | 2 | -" DE' | | +| 004F        | 2     | -" DE'                                                                                               
-| 0051 | 2 | -" BC' | | +| 0051        | 2     | -" BC'                                                                                               
-| 0053 | 2 | -" AF' | | +| 0053        | 2     | -" AF'                                                                                               
-| 0055 | 2 | -" HL | | +| 0055        | 2     | -" HL                                                                                                
-| 0057 | 2 | -" DE | | +| 0057        | 2     | -" DE                                                                                                
-| 0059 | 2 | -" BC | | +| 0059        | 2     | -" BC                                                                                                
-| 005B | 2 | -" AF | | +| 005B        | 2     | -" AF                                                                                                
-| 005D | 2 | -" IY | | +| 005D        | 2     | -" IY                                                                                                
-| 005F | 2 | -" IX | | +| 005F        | 2     | -" IX                                                                                                
-| 0061 | 2 | -" PC | | +| 0061        | 2     | -" PC                                                                                                
-| 0063 | 2 | Stackpointer(90H nach RESET) | | +| 0063        | 2     | Stackpointer(90H nach RESET)                                                                           
-| 0065 | 1 | BER 1 frei | Spaltenzaehler | +| 0065        | 1     | BER 1 frei                                    | Spaltenzaehler                                           
-| 0066 | 3 | NMI | | +| 0066        | 3     | NMI                                                                                                    
-| 0069 | 1 | Merkz. fuer NEXT (gegen EI getauschtes Byte) | | +| 0069        | 1     | Merkz. fuer NEXT (gegen EI getauschtes Byte)                                                           
-| 006A | 2 | SP-Zwischenspeicher | | +| 006A        | 2     | SP-Zwischenspeicher                                                                                    
-| 006C | 2 | Zwischenspeicher bei FIND | | +| 006C        | 2     | Zwischenspeicher bei FIND                                                                              
-| 006E-008FH | | Anwenderstack | | +| 006E-008FH        | Anwenderstack                                                                                          
-| 0090-00AFH | | Systemstack | | +| 0090-00AFH        | Systemstack                                                                                            
-| 00B0-00DFH | | frei fuer Kommandoschleife | | +| 00B0-00DFH        | frei fuer Kommandoschleife                                                                             
-| 00E0-00FFH | | Puffer fuer Header S/L | |+| 00E0-00FFH        | Puffer fuer Header S/L                                                                                 | 
  
 ===== I/O-Adressen ===== ===== I/O-Adressen =====
Zeile 247: 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