0800 335d 0000 T ... STANDARDADRESSEN
===============================================================
=                                                             =
=                    STANDARD-ADRESSEN                        =
=                                                             =
==================================== Stand: 20.08.89  =========
                                     ausgearbeitet:
                                     IG-HC TU Dresden
Inhalt:	SPRUNGVERTEILER
        SYSTEMADRESSEN UND BELEGUNG
        I/O-ADRESSEN 
***************************************************************
SPRUNGVERTEILER:

Von der Interessengemeinschaft Heimcomputr 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 Druk-
kertreiber enthalten sollen. Der Verteiler beginnt auf der A-
dresse FFFFH abwaertsfuehrend und enthaelt Sprungbefehle zu
den entsprechenden Unterprogrammen der Systemerweiterung, wel-
che mit einem RET-Befehl enden muessen, um die Rueckkehr in 
das Anwenderprogramm zu erreichen. Nicht vorhandene Unterpro-
gramme sind durch RET (C9H) kurzzuschliessen.  

                                     (TEXT:V.LUEHNE FA 10/88)

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)

**************************************************************

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 fuer den "Z-1013":
_______________________________

Auch bei den I/O-Adressen wurde neben den vom Hersteller fest-
gelegten Adressen einige mit Funktionen belegt und als Stan-
dard 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.
*************************************************************
^^^^^                             letzter Bearbeiter: Hofmann