1800 3206 0000 I ... maintape V4.5
Monitoraufrufe:
keine:
Verwendete IO-Ports bzw. Hardware:
keine []
****************************************************************
                     maintape V 4.5
****************************************************************

Programmstandort: E000H - E3FFH    Start: E000H
                  fuer Gruendversion:3C00H - 3FFFH  Start:3C00H

benutzte Systemzellen:
DATA  : 13/14H Blockadresse
FTYP  :    15H Filetyp
SOIL  : 16/17H Eingabebeginn
ARG1  : 1B/1CH Anfangsadresse
ARG2  : 1D/1EH Endadresse
ARG3  : 23/24H Startadresse
ZILAD : 25/26H Blocknummer
CURS  : 2B/2CH Cursorposition
AZEI  :    2DH Aktivitaetssymbol
MPOL  :    2EH Phasenlage

Ueberschrieben werden die Register AF,AF',BC,DE,HL und IX.


Kommandos:
----------

@S begin end start name ENTER

- Abspeichern einer File von 'begin' bis 'end' mit Startadresse
  'start' und Namen 'name'.
- Abgefragt werden Filetyp und Filenummer.Letztere wird in 
  jedem Fileblock abgespeichert. Die Filenummer dient der
  Orientierung bei der Suche nach einer bestimmten File und ist
  in Verbindung mit der Blocknummer genauer als jedes Band-
  zaehlwerk>
- Es ist zu beachten, dasz zwischen 'start' und 'name' genau ein
  Space stehen musz. Beim Fehlen einer Startadresse ist fuer
  'start' eine '0' anzugeben!
- Die abgespeicherten File lassen sich mit HEADERSAVE und dem
  Originalmonitor (ENTER erst beim 2. Kennton) einlesen.


@S:

- Abspeichern einer File mit gleichem Kopfblock.
- Abgefragt wird die Filenummer. Die CRC(SDLC)-Pruefsumme wird
  vor dem Abspeichern aktualisiert.

Jeweils nach dem Abspeichern einer File wird mit '<---(?)' eine
Verifyfunktion angeboten, die mit 'N' oder Break (Shift4/K-
ASCII=03) abgewiesen werden kann. Nach Betaetigung einer anderen
Taste startet Verfify und kann bis zum Auffinden eines Kopf-
blockes mit BREAK abgebrochen werden. Ansonsten wird die Rich-
tigkeit der abgespeicherten Pruefsummen nachgeprueft


@LC

- Auflisten von Kopfbloecken auf dem Bildschirm. Der Kopfpuf-
  ferbereich wird zerstoert! Die Funktion kann mit BREAK abge-
  brochen werden.


@LN name

- Einlesen einer File mit Namen 'name' mit den im Filekopf ein-
  getragenen Parametern. Der Name wird bis zum ersten Space im
  @LN- Kommando ueberprueft. Wenn also kein Name angegeben wur-
  de, so erfolgt das Einlesen ohne Namenskontrolle.
- Abgefragt wird der Filetyp. Es erfolgt keine Pruefung des
  Filetypes, wenn an dieser Stelle Space, ENTER oder ein anderes
  Steuerzeichen eingegeben wird.


@L addr

- Einlesen der naechsten File ohne Namens- oder Typkontrolle ab
  der angegebenen Adresse.


@L begin end     *)

- Einlesen der anliegenden File in den im Kommando angegebenen
  Speicherbereich. Das Kommando wirkt wie das 'L'- Kommando des
  Monitors und ist wie dieses anzuwenden. Es nutzt die herauf-
  gesetzte Fehlertoleranz des *maintape*, wodurch sich einige
  sonst nicht mehr lesbare Monitorfiles noch fehlerfrei einlesen
  lassen.


@L begin end blnr

- Einlesen der naechsten File ab Blocknummer 'blnr' in den an-
  gegebenen Speicherbereich. Zu beachten ist, dasz sich die an-
  zugebende Blocknummer aus der Speicheradrese ergibt, ab der
  der gesuchte Block bei Anwendung der Originalgrenzen eingele-
  sen worden waere.

Bei allen @L- Kommandos (auszer *)) erscheint ein Memorypointer,
der -da er auch in der Suchphase sichtbar ist- um ein Aktivi-
taetssymbol ergaenzt wurde:

nnnn  f S   -Save der File mit Nummer f
nnnn  f V   -Verfify der File mit Nummer f
nnnn  f L   -Load der File mit Nummer f
nnnn  f *   -Suche eines Kopfblockes bzw. einer vorgegebenen
             Blocknummer

Als Filenummer erscheint die beim Abspeichern angegebene. Werden
HEADERSAVE- Files eingelesen, so wird ein weiszes Quadrat ausge-
geben (ASCII=0).
 

Folgende Fehlerausschriften sind moeglich:
bad record        (b.r. u.a.)  -Fehlerhafte Pruefsumme
record not found  (rnf. u.a.)  -Blocknummer ist hoeher als er-
                                wartet, Pruefsumme aber i.O.
no point          (np.  u.a.)  -File hat keine Blocknummer (MONI-
                                TOR-File), laeszt sich mit *)
                                einlesen.
ER<nnnn                        -Pruefsumme des mit *) einge-
                                lesenen Blockes war fehlerhaft

Das Ladekommando (auszer *)) kann nach kurzem Rueckspulen des
Tape mit Betaetigung einer beliebigen Taste auszer BREAK (Kom-
mandoabbruch) fortgesetzt werden.


Eingelesene COM- Files starten automatisch, wenn sie mit @LN
eingelesen und ihr Filetyp 'C' in der Abfrage vor dem Einlesen
bestaetigt wurde.



@C begin end

- Berechnung der CLC(SDLC)- Pruefsumme ueber den angegebenen
  Bereich



Aufbau des Kopfblockes:
-----------------------

Byte   0 -  1   Anfangsadresse
Byte   2 -  3   Endadresse
Byte   4 -  5   Startadresse
Byte   6 -  7   CRC(SDLC)- Pruefsumme
Byte   8 - 0BH  Nutzerkennzeichung
Byte       0CH  Filetyp
Byte  0DH- 0FH  Kopfkennzeichen 3x 0D3H
Byte  10H- 1FH  Filename




Abbruchsmoeglichkeiten:
-----------------------

Alle *maintape*- Kommandos (auszer *)) lassen sich an folgenden
Stellen mit BREAK abbrechen:

- waehrend der Suche eines Kopfblockes (Aktivitaetssymbol * )
- nach Ausgabe einer Fehlerausschrift (auszer *))
- waehrend der Abfrage nach Filetyp oder -nummer
- waehrend der Abfrage, ob Verifyfunktion gewuenscht (Abbruch
  auch mit 'N' moeglich)


Anpassungen:
------------

Ab Adresse #E3F8 bzw. #3FF8 kann der jeweilige Nutzer sein per-
soenliches 4-stelliges Kennzeichen eintragen. Es erscheint in
jedem Filekopf ab 9. Stelle. Weiterhin ist auf Adresse #E001
bzw. #3C01 eine Korrektur des Eintragbeginns der zusaetzlichen
@- Kommandos moeglich, wenn die auf #B0 befindlichen nicht ueber-
schrieben werden sollen.
 

 
 Allgemeine Ausfuehrungen:
-------------------------

*maintape* ist eine eigenstaendige Entwicklung, die sich an
einem hohen Bedienkomfort sowie einer fehlertoleranten Datener-
kennung orientiert. Durch die Anwendung variabler Referenzwerte
beim Einlesen koennen Spitzenverschiebungen zum Teil ausge-
glichen werden, wodurch sich eine bessere Lesbarkeit der
Files gegenueber dem Z1013-Monitor bzw. dem HEADERSAVE ergibt.

Die Einfuehrung einer Filenummer ersetzt das Bandzaehlwerk und
eruebrigt seine Synchronisation auf den Bandanfang.

Fuer die Kompatibilitaet hinsichtlich der Parameteruebergabe des
HEADERSAVE existiert eine abgeruestete Variante des *maintape*.
Diese (*mainsave*) enthaelt ab #E000 einen identischen Sprung-
verteiler und mit HEADERSAVE identische Kommandos.Geblieben
sind auszerdem die Filenummer, die CRC(SDLC)-Pruefsumme und das
dazugehoerige Kommando '@C'.





                                Autor und letzter Bearbeiter:

                                Martin Duchrow, BERLIN, 1143