Der Monitor

Sammelsurium (Bis die Seiten komplett sind)

  • monitore.zip Quelltexte der Monitorprogramme Versionen 2.02, A2, Brosig, VP

Inhalt

  • riesa
    Die ROM-Inhalte der Originale von Riesa
  • jmueller
    2K-Monitor als Ersatz für 2.02
  • moner su 1.31
    2K-Monitorzusatz. In Version 1.1 und 1.2 zum Nachladen, Version 1.31 als ROM
  • brosig
    orig. RB-Quellcode + Doku + Binaries von diversen Versionen 2.028 und 2.029 für S6009, K7652, K7659, K7669, Riesa-Tastatus-Anschluss
  • mainsoft
    4K-Monitor von Martin Duchrow für Brosig-Hardware und K7659
  • vpohlers
    Quellcode + Doku + Binaries diverser Versionen des 4K-Monitor von Volker Pohlers für Brosig-Hardware und K7659, 8×8-Tastatur mit Minimalhardware (1x CD 4051)
  • diverse
    Urlader, Monitorvarianten zum Nachladen für Urlader, U807-Monitor (?), Seriell nach Falko Troj

Programmstandort: F000H … F7FFH

Der Monitor 2.02 ist die originale Variante von Riesa. Diese Version ist für den Anschluss der Flachfolientastatur gedacht.

Befehle s. Bedienung

kommentiertes Listing s. Monitor 2.02

Programmstandort: F000H … F7FFH

die wichtigsten Unterschiede A2 ↔ 2.02

  • kein H- und A- und F-Kommandos
  • andere Adressen Windows-Speicher
  • andere INKEY-Routine und auch INCH-Routine!
  • INCH hat Repeatfunktion
  • KDO mit RST-Aufrufen programmiert, damit Verschiebung aller Routinen des Monitors!

Bei der Realisierung der Abfrage fuer Schreibmaschinentastaturen hat ROBOTRON die INKEY-Funktion (RST20H/DB4) leider nicht voll kompatibel zur bisherigen des Monitors 2.02 gestaltet. (Andere Verwaltung der Tastaturmerkzelle 4H.) Dadurch kommt es bei der INPUT-Funktion zum Tastenprellen.

Programmstandort: F000H … FFFFH

Der Brosig-Monitor belegt 4K Speicher von F000-FFFFh. Wesentliche Funktionen sind die Nutzung einer großen Tastatus (K7659, K7669, S3004 je nach Monitor-Version) und ein eingebautes Headersave.

die wichtigsten Unterschiede Brosig ↔ 2.02

  • H- und A- Kommandos als Leerfunktion
  • statt H- und A-Kommandos gibt es O und Z
  • in freiem Raum der Inkey-Routine nun Z_Kdo, O_Kdo, Registeranzeige, Init3, Hardcopy
  • kleine Unterschiede in S_Kdo (sav4-sav7)
  • Bytekompatibel in allen weiteren Routinen
  • und in den oberen 2K die Erweiterungen Tastaturroutine, Headersave, Sprungverteiler …

Die Erweiterungens des Brosig-Monitors sind im mp-Artikel beschrieben → Brosig-Tastatur nach mp

Programmstandort: F000H … FFFFH

meine Monitore entstanden als Erweiterung des (reassemblierten) Brosig-Monitors udn sind deshalb größtenteils kompatibel zu diesem Standardmonitor.

die wichtigsten Unterschiede VP 202B ↔ Brosig

  • Erweiterung/Korrektur Brosig-Monitor
  • Einbindung Joystick
  • Centronics-Druckertreiber
  • Zweite Shift-Ebene der Tastatur fuer Einbindung Peters-Platine
  • Aenderung Headerload: kein @LDA, keine Nutzung von BPADR

Nach Version 202B gab es noch eine wesentliche Anpassung, da ich eine NANOS-RAM-Floppy erworben hatte und dafür ein HeaderDisk-kompatiblen Treiber geschrieben hatte. Um aus allen Programmen heraus die RAM-Floppy als schnellen Massenspeicher nutzen zu können, erfolgt im Monitor 202C bei den Kassettentransferroutinen eine Abfrage, ob man auf Kassette oder RAM-Floppy-Disk agieren möchte. Dazu muss natürlich eine HeaderDisk-Version geladen sein. Das funktioniert auch mit der präcitronc-RAM-Floppy und originalem HeaderDisk von Brosig.

die wichtigsten Unterschiede VP 202C ↔ VP 202B

  • Einbindung von HeaderDisk bei Load/Save
  • dadurch Wegfall von Bildschirmkopie BSDR
  • kleine Aenderung in Sound (warum?)

Programmstandort: F000H … FF7FFH

Auch von *mainsoft* (Martin Duchrow) gab es einen überarbeiteten Brosig-Monitor.

Der 4K Monitor © by *mainsoft* 30. 04. 1989 (Version 1.1) baut auf den Routinen des Z1013-Monitors sowie der Erweiterung durch R. Brosig (neue Tastaturabfrage, Sprungverteiler) auf. Neu eingearbeitet wurden die SAVE / LOAD-Routinen des maintape und ein neues Registerdisplay. Das Unterprogramm der Bildschirmausgabe sowie das „T“-Kommando wurden nur leicht verändert. Die freigewordenen Speicherplätze sind mit 0FFH aufgefüllt und werden weiteren Programmverbesserungen dienen. Alle Unterprogramme befinden sich auf ihren Originalstandorten, damit sich keine Kompatibilitätsprobleme ergeben.

Kommandos

L [name] Einlesen des gesuchten Files. Der Name ist bis zum ersten Space signifikant. Bei Typangabe „C“ erfolgt Autostart für COM-Files. Bei fehlerhafter CRC-Prüfsumme wird der Autostart unterdrueckt. Nach Fehlermeldungen kann das Einlesen durch BREAK (ASCII=3) abgebrochen oder nach Betätigung einer beliebigen anderen Taste forgesetzt werden.

LA adr Einlesen ohne Namens- oder Typkontrolle ab der angegebenen Speicheradresse.

LA von bis Einlesen in den angegebenen Speicherbereich ohne Kontrolle von Blocknummern (analog originalem Monitorkommando). Damit kann die bessere Datenerkennung des *maintape* auch fuer normale Files genutzt werden.

LA von bis blnr Einlesen in den angegebenen Speicherbereich ab der angegebenen Blocknummer.

LC Ausgabe des Memorypointers und Ausschrift von Kopfblöcken. Die Files werden in die Zeile des eingestell­ten Bildfensters eingelesen. Der Kopfpufferbereich wird nicht zerstört. Ein Abbruch ist mit BREAK möglich.

S von bis start name Saven eines Files. Abgefragt werden der Filetyp und die Filenummer.

S : Saven einer File mit dem im Kopfpufferbereich bereits enthaltenen Kopf. Die CRC-Prüfsumme wird neu bestimmt. Alle anderen Routinen entsprechen dem Original bzw. Monitor der IG HC an der TU Dresden (vgl. Mikroprozessortechnik Heft 7/1988).

@V [nnnn] Anzeige des Speicherbereichs an Speicheradresse nnnn. Weitergeblättert werden kann mit der ENTER-Taste. Abgebrochen wird mit Ctrl-C oder Shift4/C

M. Duchrow schreibt: Auch das R-Kommando zur Ausgabe der Register ist stark erweitert.
Der Brosig-Monitor hat seine Tastaturmacros für die Funktionstasten mit BASIC-Kommandos belegt. Ich brauchte dagegen Assembler-Befehle und habe diese für mich selbst eingetragen. Aber ob die Version mit dem BASIC-Befehlen auch im Umlauf ist, weiß ich nicht mehr.

Das Programm MONER SU (SU=Stefan Günther & Uwe Hinz) ist eine Monitorerweiterung für den Z1013. Es stützt sich auf die beiden handelsüblichen Monitorprogramme 2.02 oder A2 und läßt diese unverändert!

Programmstandort: F800H … FFFFH
Start: F800H oder FFEEH (Sprungverteilerfunktion ZMINI)
(ZMINI=Zusatzmonitorinitialisierung)

Hieraus ist ersichtlich, daß MONER SU eine Lösung neben dem Monitor von R. Brosig ist.
Es ist daher besonders für Z1013-Benutzer geeignet, die eine originale oder externe Tastatur anwenden.

Programmgliederung:

F800H ... F83BH Initialisierungsroutine
F83CH ... FFB7H Funktionsroutinen
FFB8H ... FFFFH Sprungverteiler nach /1/

Funktionsumfang:

Kassetteninterface-Funktion

Standort:F83CH …FC3BH

Als Kassetteninterface-Software wurde auf das bewährte HEADERSAVE von R. Brosig /2/ zurückgegriffen. HEADERSAVE 5.95 wurde deshalb unverändert übernommen und auf die Anfangs- adresse F83CH gelegt.
Bedient wird die Kassetteninterface-Funktion durch: @L, @LXX, @LN, @LNX um zu laden und @S Aadr. Eadr. Sadr., @S: um zu sichern. Der RAM-Bereich E000H bis E3FFH, auf dem HEADERSAVE ansonsten läuft, wird somit für andere Anwendungen frei.

Transferfunktion

Standort:FC3CH …FE54H

Diese Funktion bedient eine EPROM-Bank, die kurzzeitig in den Adreßraum eingeblendet wird, um sie nach einem aufgerufenen File (analog zu HEADERSAVE) abzusuchen und ihn anschließend zu laden.
Die EPROM-Bank befindet sich auf einer RAM/ROM-Speicherkarte. Diese ist als externe Speichererweiterung für den Z1013 ausge- führt und in /3/ beschrieben.
Bedient wird die Transferfunktion in Anlehnung an HEADERSAVE mit: @TN oder @TNX

@TN Laden eines mit Typ und Name aufgerufenen Files. Falls es sich um einen C-Typ handelt erfolgt ein Autostart.

@TNX Wie @TN, jedoch ohne Autostart

Beispiel:

@TN(ENTER)
typ:C     filename:RAMTEST RAMBUG Z (ENTER)

Dump-Funktion

Standort:FE55H …FE97H

Um die Nachteile des vorhandenen Z1013-DUMP zu überwinden, (keine Anzeige über FFFFH hinaus, keine ASCII-Zeichen), wurde ein HEX-ASCII-DUMP /5/ in MONER SU aufgenommen. Diese Funktion zeigt auf einer Bildschirmzeile acht Speicherbyte in HEX- Darstellung an und kommentiert diese mit ihren dazugehörigen ASCII-Zeichen. Die Grafiksymbole (Codes 80H … FFH) werden ebenfalls dargestellt.
Mit der Eingabe @D Aadr.(ENTER) wird ein Speicherbereich von 64 Byte angezeigt. Alle weiteren (ENTER) stellen die Anzeige weiter. Erst über ^C (S4-K) wird die Dump-Funktion verlassen.

Port-Out-Funktion

Standort:FE98H …FEA2H

Beide handelsüblichen Monitorvarianten des Z1013 gestatten kei- nen direkten Zugriff auf die E/A-Baugruppen des Rechners. Für Hardwarearbeiten ist das besonders nachteilig!
Das Kommando @O Padr. Dat.(ENTER) übermittelt „Dat.“ an die E/A- Adresse, die unter „Padr.“ angegeben ist.
Beispiel:

@O 04 80(ENTER)
Umschalten auf den 64-Zeichen-Bildschirm 

Port-In-Funktion

Standort:FEA3H …FEC0H

Mit @I Padr.(ENTER) kann man von einem Peripherie-Baustein Daten abfragen und auf den Bildschirm bringen.

Beispiel

@I 04(ENTER)    
>IN= 0F

Checksummen-Funktion

Standort:FEC1H …FF12H

Wenn man sich nach einem Bedienfehler oder nach einer Störung in der Hardware vom Datenerhalt des Speichers überzeugen will, fehlen in den Monitorvarianten 2.02 und A2 hierfür die Mittel. Die Checksummenfunktion benutzt die übliche CRC-Summe (cyclic retundancy check). Durch @C Aadr. Eadr.(ENTER) bestimmt man die Prüfsumme eines Speicherbereiches.

Beispiel: CRC von MONER SU 1.31

@C F800 FFFF(ENTER)    
>CRC= 72B7

Signalton

Standort:FF13H …FF2BH

@B löst über den Kassettenanschluß einen kurzen Signalton aus. Mit der Anweisung J FFDC (Sprungverteilerfunktion BEEP) läßt sich das gleiche erzielen.

Druckertreiber-Initialisierung

Standort:FF2CH …FF37H

@P initialisiert die Druckertreiber-Software einschließlich der E/A-Baugruppen der Druckerschnittstelle. (Sprungverteilerfunktion DRINI)(DRINI=Druckerinitialisierung). Die Monitoranweisung J FFCD bewirkt das gleiche.

Drucken über POKE

Innerhalb des BASIC-Interpreters KC-BASIC+ kann man mit dem Unterprogramm

xxxx POKE 27,ASC(A$):CALL *FFDF:RETURN

xxxx = Zeilennummer
A$ = Strinvariable (ein Zeichen lang)

einzelne Zeichen an einen eingebundenen Druckertreiber übemitteln (Sprungverteilerfunktion DRZEL)(DRZEL=Druck einer Zelle).

Sprungverteiler

Der Sprungverteiler nach /1/, der bereits zum Quasistandard mit DDR-weiter Wirkung geworden ist, bildet ein ideales Hilfsmittel zum effektiven Softwaretausch. Innerhalb von MONER SU 1.31 ist er mit den wichtigsten Positionen besetzt:

JMP SOUND unbenutzt     JMP BEEP
JMP GETST unbenutzt     JMP DRZEL
JMP AKP                 JMP HARDC  unbenutzt
JMP SUCHK               JMP BSDR   unbenutzt
JMP BSMK                JMP DRAKK
JMP BLMK                JMP DRDEL 
JMP ZEIDR               JMP ZMINI
JMP DRINI               JMP LORUF
JMP BIN   unbenutzt     JMP SARUF
JMP AIN   unbenutzt     JMP STAT   unbenutzt
JMP BSTA  unbenutzt     JMP POLL   unbenutzt 
JMP ASTA  unbenutzt     JMP INKEY  unbenutzt

Lit.:

  • /1/ Lühne, V.:Sprungverteiler für den Z1013 -In:FUNKAMATEUR. Berlin 37(1988)10. S. 484
  • /2/ Brosig, R.:HEADER-SAVE V 5.9 -In:Dokumentation zur 1. Z1013-Tagung, Dresden 05.12.1987. -KdT Dresden. S. 7
  • /3/ Bokelmann, L.; Günther, S.; Hinz, U.:Eine Speichererweiterung für den Z1013 -In:FUNKAMATEUR. -Berlin 38(1989)7, S. 323
  • /4/ Peters, J.:64-Zeichen-Darstellung -Vortrag und Dokumentation zur 2. Z1013-Tagung, Leipzig 19.05.1989. robotron Leipzig
  • /5/ Berg, P.: Ein Werkzeug für den Z1013 In:FUNKAMATEUR. Berlin 37(1988)3. S. 121