1800 3fff 0000 I ... Z1013-SURL.DOC
********************************
*                              *
* KDT-Buna, AG Mikro-Computer  *
*                              *
********************************
*                              *
* Z1013.SUPER-URLADER (SURL)   *
* Kurzbeschreibung             *
*                              *
********************************
*                              *
* Autor: Michael Gaertner      *
*        C.-Schorlemmer-Str.103*
*        Merseburg, 4 2 0 0    *
*        Tel.: dienst.: 495210 *
*              priv.:   215634 *
* Version: 3.00 vom 22.11.88   *
*                              *
********************************

1. Allgemeines
--------------

Der SURL ist ein Programm, das 
anstelle des ueblichen Monitors
auf dem PROM des Z1013 geschrie-
ben werden kann. In Verbindung
mit nachfolgend beschriebenen
Hardware-Voraussetzungen dient
dieser SURL dem Laden beliebiger
Monitore bzw. Betriebsysteme in
den Speicher des Z1013. Eine
Tastatur wird dazu nicht benoe-
tigt, so dasz diese erst durch
die geladene Software spezifi-
ziert wird. Durch diese Vorge-
hensweise musz zwar nach jedem
Einschalten zunaechst mindesten
eine Datei von Kassette geladen
werden, doch sind Monitorver-
besserungen, unterschiedliche
Tastaturen sowie die Nutzung
ganzer MR-Betriebssysteme (z.B.
CP/M) zukuenftig ohne weitere
Hardware-Aenderungen moeglich. 

2. Hardware-Voraussetzungen
---------------------------

 - 64-RAM-Erweiterung
 - Moeglichkeit Abschaltung des
   SURL-PROMs 
   OUT 18H: ROM aus
   OUT 1AH: ROM ein
 - Moeglichkeit eines RAM-
   Schreibschutzes (nicht unbe-
   dingt notwendig aber mind.  
   fuer den Bereich F000H-FFFFH
   empfehlenswert)
   OUT 1CH: Schreibschutz ein
   OUT 1EH: Schreibschutz aus
 - 2 MHz Takt (bei Einschalten
   bzw. RESET)
 
Diese Hardware-Veraenderungen
sind derzeit der Standard bei
der AG Mikro-Computer der KDT
Buna. Der inzwischen von der IG
HC der TU Dresden empfohlene
Standard , Zusatzschalt-Funk-
tionen generell mit dem Befehl
"OUT 04H" unter Verwendung der
Datenbits 0-7 fuer die Teil-
funktionen zu realisieren, wird
in einer Version 4.xx des SURL
beruecksichtigt werden. Diese
Unterschiede sind fuer die
folgende Funktionsbeschreibung
ohne Bedeutung.

3. Funktionsbeschreibung
------------------------

Der SURL-PROM (F000-FFFF)
enthaelt einen Urlader, der nach
jedem RESET vesucht, eine Reihe
beliebiger Programme und/oder
Betriebssysteme von Kassette in
den Speicher des Z1013 zu laden.
Die Dateien muessen mit dem
allg. verbreiteten Header-Save-
Verfahren (R.Brosig,IG-HC) 
erzeugt worden sein. Diese
Dateien enthalten in ihrem
Kopfteil (Header) folgende, fuer
das Urladen wichtigen, Angaben:

 - Lade-Anfangsadresse AAD
 - Lade-Endadresse     EAD
 - Startadresse        SAD
 - Dateityp (A,B,C ... Z)

Damit arbeitet der Urlader wie 
folgt:

a) TYP=X, AAD, EAD, SAD:
   Laden von F000 bis (F000+EAD-
   AAD) und Starten bei SAD

b) TYP=Y, AAD, EAD, SAD:
   Laden von AAD bis EAD und
   Starten bei SAD

c) TYP=Z, AAD, EAD:
   Laden wie a) aber kein Start,
   d.h. Weiterladen

d) TYP nicht X,Y o. Z, AAD, EAD:
   Laden wie b) aber kein Start,
   d.h. Weiterladen

Der Fall a) dient hauptsaech-
lich zum Laden eines
4K-Monitors, da der Bereich
F000-FFFF nicht direkt mit
Header-Save ausgelagert werden
kann, sondern dazu auf andere
Adressen verschoben werdn musz. 
Mit b) lassen sich beliebige
Betriebssysteme bzw. Programme
laden, die sofort gestartet
werden. Die Faelle c) u. d)
dienen dem stueckweisen Laden
mehrer Programme oder Daten
bevor mit einer Datei vom Typ X
oder Y der Ladevorgang abge-
schlossen wird. So kann man z.B.
Kassetten erzeugen, von denen
nach Einschalten o. RESET autom.
der 4K-Monitor (Typ Z), der
BASIC-Interpreter gemeinsam mit
BASIC-Programm (Typ B) und ein
Starthilfsprogramm (Typ Y) zum
autom. Starten des BASIC-Pro-
gramms (o. anderer Programme, 
s.a.Abschnitt 5.).
Vor dem Urladen erfolgt zuaetz-
lich ein zerstoerungsfreier RAM-
Test ueber alle 64 KByte in
Schritten von 1 Kbyte. Fuer
jedes getestete Kbyte wird auf
dem Bildschirm die H-Adresse
angezeigt, die im Fehlerfall mit
einem '*' markiert wird. Dadurch
kann der SURL zur Inbetriebnahme
des Z1013 verwendet werden.
Bei RAM-Fehlern im Bereich 0000-
EBFF u. F000-FFFF wird das Urla-
den fortgesetzt (!!!). RAM-
Fehler im Bereich EC00-EFFF
fuehren zum HALT, ebenso ein
defekter SURL-PROM (Pruefsumme
<> 0). Ein erneuter Urlade-
Versuch ist mit RESET moeglich. 
Da sich der SURL-PROM auf den
gleichen Adressen befindet wie
evtl. zu ladende Dateien,
besteht der SURL aus 2 Teilen
mit folgenden Funktionen:

URLAD1:
 - NMI kurzschlieszen (RETN)
 - Init Stackpointer
 - Init PIO Port B   (Kassette) 
 - Bildschirm loeschen
 - URLAD2 in obere BS-Haelfte 
   umladen
 - SURL-PROM-Selbsttest, evtl. 
   HALT
 - RAM-Test (0000-FFFF), evtl.
   HALT
 - NMI Initialisieren fuer 4K-
   Monitor-Restart (JMP F000)
 - Urladen (siehe a)-d) oben)
 - Steuerungsuebergabe an
   Programm vom Typ X o. Y

URLAD2 (zur Laufzeit im BWS):

 - rSTORE: Laden von Bytes im
           Bereich F000-FFFF
 - RAMT2:  RAM-Test F000-FFFF
 - ROSRT:  SURL-PROM abschalten,
           Programmstart

Waehrend des Urladens werden
Informationen ueber den
laufenden Speichertest, sowie
Informationen zur Kassetten-
arbeit in der unteren BS-Haelfte
eingeblendet. Das Urladen
erfolgt ohne Bedienereingriff,
so dasz keine bestimmte Tastatur
am Z1013 gefordert ist. Diese
wird ausschlieszlich durch die
geladene Software spezifiziert. 
Das gilt auch bei Lesefehlern
waehrend des Ladens. In diesem
Fall musz die Kassette vor den
fehlerhaften Block zurueckge-
spult werden (s.a. Ausschriften
in den untersten BS-Zeilen).
Folgende Ausschriften sind
moeglich:

"Next file please !"
 erscheint zu Beginn des Urla-
 dens und nach jeder vollstaen-
 dig geladenen Datei und fordert
 zum Anbieten einer neuen Datei 
 (Kassette starten, Weiterlaufen
 lassen, Kassettenwechsel) auf.

"TYP u. DATEINAME"
 Typ und Name einer gerade
 geladenen Datei.

"bad rec., rewind"
 Lesefehler, Kassette ist vor
 die fehlerhafte stelle zu spu-
 len und weiterlaufen zu lassen.

"Wait a moment ! "
 Kassette ist genuegend zurueck-
 gespult, das Lesen geht (hof-
 fentlich) gleich weiter.     

Weiterhin gibt es Anzeigen ueber
AAD, EAD, SAD (lt. gelaenem
Header) sowie die akt. Lade-
adresse und akt. Blockerwar-
tungsadresse.

Der SURL wird mit allen seinen
oben genannten Funktionen nach
jedem Einschalten oder RESET
aktiv. Ist aber bereits ein
Monitor/Betriebssystem geladen,
und kann unter deren Steuerung
ein Programm nur mit RESET
verlassen werden, so kann der
SURL nach dem RAM-Test durch
Druecken einer NMI-Taste zum
Abbruch gezwungen werden. Es
erfolgt dann ein Restart des 4K-
Monitors (Zelle 66H = 00, JMP
F000H). Dieser Restart erfolgt
also immer auf die fixe Adresse
F000. Das musz bei anderen
Monitoren/Betriebssystemen
beachtet werden.

4. Applikationen
----------------

In diesem Abschnitt werden die
Dateien einer vom Autor
erstellen Anwendungskassette
erlaeutert.

 1. MW+Z1013.SURL.T
    C  0100 3FFF 0100
 2. Z1013.SURL.3.00 
    E  1000 17FF 0000
 3. 4K.MONITOR.7652 
    Z  1000 1FFF 0000
 4. B+CENTIPEDE
    B  0100 481C 0000
 5. START.BASIC
    Y  EA80 EBFF EB00

Datei 1 enthaelt eine 16K-
Version von MicroWORD 1.5
gemeinsam mit dieser SURL-
Beschreibung.

Datei 2 enthaelt den Inhalt des
SURL-PROMS (Version 3.00)

Die Dateien 3 - 5 stellen eine
Demonstration des SURL dar. Dazu
ist mit eingebauten SURL-PROM
der Z1013 einzuschalten. Das
Kassettengeraet ist nach
erfolgten RAM-Test und der
Auschrift "Next file please !"
mit Datei 3 zu starten. Danach
passiert folgendes:

 _ Datei 3 wird als 4K-Monitor
   nach F000-FFFF geladen. Der
   Dateityp Z sorgt dafuer, dasz
   die urspruenglich auf 1000-
   1FFF ausgelagerte Datei
   richtig geladen wird. Die
   verwendete Monitorversion
   untestuetzt die Tastatur
   K7652

 - Datei 4 ist der BASIC-Inter-
   preter, der zusammen mit
   einem BASIC-Spielprogramm 
   nach einem Probestart ausge-
   lagert wurde. Diese Datei 
   wird nur geladen und nicht
   gestartet (Typ nicht X o. Y).

 - Datei 5 ist ein START-Hilfs-
   Programm. Dieses Programm be-
   endet das Urladen, indem es
   auf seiner SAD (EB00) gestar-
   tet wird. Es ist ein univer-
   sell einsetzbares Programm
   zum automatischen Starten
   beliebiger anderer Program-
   me. Im konkreten Fall wurde
   es zum autom. Starten eines
   BASIC-Programms installiert.
   Nach dem Start von Datei 5
   wird also CENTIPEDE autom.
   gestartet.

5. START.xxxxx -  ein universell
   einsetzbares Startprogramm
--------------------------------

START veraendert den 4K-Monitor,
der ja nach dem Urladen im RAM
steht derart, dasz dieser nach
seinem Start (JMP F000)
automatisch eine vorgegebene
Zeichenfolge ohne Betaetigung
der Tastatur abarbeitet.
Danach wird der Monitor gestar-
tet.
 Zusaetzlich wird der Bereich
00H-7FH mit einer waehlbaren
Belegung vorgeladen. Dies ist
z.B. beim BASIC-Intepreter
notwendig, damit dieser sofort
nach seinem Laden mit einem
RESTART gestartet werden kann.  
In diesem Fall ist der
Interpreter 1x neu zu starten
und danach die Belegung von 00-
7F zu copieren. START.xxxxx hat
folgenden Aufbau:

EA80-EAFF: Daten, die nach 00-
           7F umgeladen werden.
EB00-EB7F: Das eigentliche
           START-Programm
EB80-EBFF: Zeichenkette, die
           nach Monitor-Start 
           autom. abgearbeitet 
           wird. Endekennzei-
           chen ist FFH.
           
           4A 20 33 30 32 0D
           0D 52 55 4E 0D FF
           
           startet ein BASIC-
           Programm. Das ent-
           spricht den Eingaben

           J 302 <Enter>
           <Enter>
           RUN <Enter>

Das Programm kann damit durch
Installationen in den Bereich-
en EA80-EAFF u. EB80-EBFF an
andere Auto-Starts angepaszt
werden. Das gesamte Programm
kann auch auf andere Adressen
verschoben werden, da es bis auf
folgende Randbedingung frei
verschieblich programmiert
wurde: 

Das Programm beginnt auf EB00
mit dem Befehl "LD HL,0EA80H",  
d.h. auf den Adressen SAD+1 und 
SAD+2 steht die Adresse des La-
depunkts von START.xxxx. Wird
hier ein anderer Ladepunkt
eingetagen laeuft es auch auf
anderen Adressen bei gleicher
rel. Bereichsaufteilung.

	** Ende **