Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:software:zm [2012/02/17 20:39] – [Kassettenarbeit] volkerp | z9001:software:zm [2025/01/13 14:34] (aktuell) – [Treiber] volkerp | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Zusatzmonitor ZM ====== | ====== Zusatzmonitor ZM ====== | ||
- | Der Zusatzmonitor ZM stellt eine Erweiterung für das OS des Z9001 dar und bringt maschinennahe Funktionen wie Speichern von Programmen auf Kassette (ja, da gibt es nicht im OS!), Speichereditor (Move, Fill, Search, Edit), Portabfrage, | + | Der Zusatzmonitor ZM stellt eine Erweiterung für das OS des Z9001 dar und bringt maschinennahe Funktionen wie Speichern von Programmen auf Kassette (ja, da gibt es nicht im OS!), Speichereditor (Move, Fill, Search, Edit), Portabfrage, |
+ | |||
+ | **Achtung! Der ZM hält sich nicht an die Vorschriften des Z9001 zur Installation von Gerätetreibern etc. Vorhandene Treiber werden einfach überschrieben, | ||
+ | |||
+ | 2021 [[wp> | ||
- | **Achtung! Der ZM hält sich nicht an die Vorschriften des Z9001 zur Installation von Gerätetreibern etc. Vorhandene Treiber werden einfach überschrieben, | ||
===== Version 2.0 ===== | ===== Version 2.0 ===== | ||
Entwickelt wurde der Zusatzmonitor von Dr. Frank Schwarzenberg, | Entwickelt wurde der Zusatzmonitor von Dr. Frank Schwarzenberg, | ||
- | * ZM30 der Kassette | + | * ZM30 der Kassette |
- | * ZM30, ZM70, ZMA8 von den Kassetten | + | * ZM30, ZM70, ZMA8 von den Kassetten |
* IDAS-Modul robotron mit ZM im ROM (IDAS ohne Meldung, ZM mit Meldung "Z9001 MONITOR V2.0 (ROM) 1985" und mit EPROM-Software für das Programmiermodul \\ (das ist die neue Variante des ZM 2.0) | * IDAS-Modul robotron mit ZM im ROM (IDAS ohne Meldung, ZM mit Meldung "Z9001 MONITOR V2.0 (ROM) 1985" und mit EPROM-Software für das Programmiermodul \\ (das ist die neue Variante des ZM 2.0) | ||
- | * IDAS-Modul Variante U. Zander sowie KCEMU (IDAS mit Meldung " | + | * IDAS-Modul Variante U. Zander sowie KCEMU (IDAS mit Meldung " |
Bei den ersten Varianten des ZM und Version 1.2 des OS-KC85/1 kann es bei den Treibern SIFA und TD40 unter Umständen Probleme mit der CTRL/ | Bei den ersten Varianten des ZM und Version 1.2 des OS-KC85/1 kann es bei den Treibern SIFA und TD40 unter Umständen Probleme mit der CTRL/ | ||
Zeile 54: | Zeile 57: | ||
| **P (Punch)** | Ausgabe im INTEL-Hex-Format auf den Punch-Kanal | Panfadr_endadr (_stadr bei AP=T) | | | **P (Punch)** | Ausgabe im INTEL-Hex-Format auf den Punch-Kanal | Panfadr_endadr (_stadr bei AP=T) | | ||
| **Q (Query)** | Lesen und Schreiben auf I/O-Ports | QIport Lesen vom Port\\ | | **Q (Query)** | Lesen und Schreiben auf I/O-Ports | QIport Lesen vom Port\\ | ||
- | | **R (Read)** | Einlesen eines INTEL-Hex-Files über den Reader-Kanal | R[base] | | + | | **R (Read)** | Einlesen eines INTEL-Hex-Files |
| **S (Substitute)** | Modifizieren von Speicherzellen. Mit der Leertaste kann zur Adresse weitergeschaltet werden. Mit < | | **S (Substitute)** | Modifizieren von Speicherzellen. Mit der Leertaste kann zur Adresse weitergeschaltet werden. Mit < | ||
| **T (Type)** | Ausgabe in ASCII-Darstellung | Tanfadr_[endadr] | | | **T (Type)** | Ausgabe in ASCII-Darstellung | Tanfadr_[endadr] | | ||
Zeile 77: | Zeile 80: | ||
Es wird der Filename.Typ abgefragt. Ohne Typ wird COM genommen. | Es wird der Filename.Typ abgefragt. Ohne Typ wird COM genommen. | ||
- | Nach dem Speichern kann eine Überprüfung der Aufzeichnung erfolgen. Die Frage " | + | Nach dem Speichern kann eine Überprüfung der Aufzeichnung erfolgen. Die Frage " |
**Lesen eines Speicherbereichs** | **Lesen eines Speicherbereichs** | ||
Zeile 104: | Zeile 107: | ||
Nach Anlauf des Monitors gilt die Zuordnung AC=V, AR=C, AP=C und AL=C (alles auf Konsole).\\ | Nach Anlauf des Monitors gilt die Zuordnung AC=V, AR=C, AP=C und AL=C (alles auf Konsole).\\ | ||
- | Für den BATCH-Modus muss ein SIF-1000-Lesegerät an den PIO-Port angeschlossen werden. Ferner sind die Zuweisungen AR=P und AL=C (oder V) vorher unbedingt erforderlich! Nach AC=B werden jetzt alle Eingaben nicht mehr von der Tastatur, sondern vom angeschlossenen Lesegerät angefordert. Protokolliert wird infolge der Zuweisung AL=C nach wie vor auf dem Bildschirm. Eine Zuweisung AL=L oder U ist in diesem Fall nicht möglich, da an den PIO-Port zusätzlich zum Lesegerät kein LIST-Gerät anschließbar ist. Sollte der Druckermodul gesteckt sein, so wird bei AC=C auf dem Drucker protokolliert, | + | **SIF-1000** |
+ | |||
+ | Für den BATCH-Modus muss ein SIF-1000-Lesegerät an den PIO-Port angeschlossen werden. Ferner sind die Zuweisungen AR=P und AL=C (oder V) vorher unbedingt erforderlich! Nach AC=B werden jetzt alle Eingaben nicht mehr von der Tastatur, sondern vom angeschlossenen Lesegerät angefordert. Protokolliert wird infolge der Zuweisung AL=C nach wie vor auf dem Bildschirm. Eine Zuweisung AL=L oder U ist in diesem Fall nicht möglich, da an den PIO-Port zusätzlich zum Lesegerät kein LIST-Gerät anschließbar ist. | ||
+ | |||
+ | User-Port-Belegung für SIF-1000-Anschluss: | ||
+ | |||
+ | A B C | ||
+ | --------------------------- | ||
+ | 1 0 0 /END | ||
+ | 2 / | ||
+ | 3 /DAT4 /DAT5 /DAT6 | ||
+ | 4 /DAT7 /RUF - | ||
+ | 5 (+5V)--> | ||
+ | |||
+ | |||
+ | |||
+ | **Drucker** | ||
+ | |||
+ | Sollte der Druckermodul gesteckt sein, so wird bei AC=C auf dem Drucker protokolliert, | ||
+ | Bei AL=L erfolgt die Druckausgabe auf einen an den PIO-Port angeschlossen seriellen-Drucker TD40. | ||
+ | |||
+ | User-Port-Belegung V24-Ausgabe TD40 | ||
+ | |||
+ | A B C | ||
+ | --------------------------- | ||
+ | 1 0 0 - | ||
+ | 2 TxD - - | ||
+ | 3 - - - | ||
+ | 4 - DTR* - | ||
+ | 5 (+5V) - - | ||
+ | |||
+ | |||
+ | Bei der ROM-Version ZM2.0 CENT. 1986 und auch im ZM2.0A erfolgt mit AL=V die Druckausgabe auf einen an den PIO-Port angeschlossen Centronics-Drucker. | ||
+ | |||
+ | CENTRONICS-Druckerschnittstelle über User-Port | ||
+ | * 7 Datenbits verfuegbar | ||
+ | * PIO-RDY wird zur Bildung des CENTRONICS-/ | ||
+ | * /ACKNLG vom Drucker wird ueber den CTC-Kanal erfasst. | ||
+ | |||
+ | User-Port-Belegung fur CENTRONICS-Anschluss | ||
+ | |||
+ | A B C | ||
+ | --------------------------- | ||
+ | 1 0 0 /ACK | ||
+ | 2 DAT1 DAT2 DAT3 | ||
+ | 3 DAT4 DAT5 DAT6 | ||
+ | 4 DAT7 - / | ||
+ | 5 (+5V)==> | ||
+ | |||
+ | |||
+ | Details zum Hardware-Anschluss siehe mp-Artikel [[z9001: | ||
+ | |||
+ | Der ZM nutzt **nicht** die ASGN-Anweisung. Beim start des ZM wird die Zuordnungstabelle mit den entsprechenden Adressen geladen, da alle Treiber resident sind. Die Auswahl der ZM-Treiber muss deshalb mit dem ZM-Kommando A(ssign) erfolgen (Stellen des I/ | ||
===== Quellcode ===== | ===== Quellcode ===== | ||
Zeile 110: | Zeile 166: | ||
* {{: | * {{: | ||
- | Im Quellcode-Paket ist mein reassemblierter Quellcode für die verschiedenen ZM 2.0-Varianten zu finden. Der Code enthält einige interessante Assemblerabschnitte | + | Im Quellcode-Paket ist mein reassemblierter Quellcode für die verschiedenen ZM 2.0-Varianten zu finden. Der Code enthält einige interessante Assemblerabschnitte. Allerdings hält sich der ZM nicht an die Konventionen des OS bezüglich des ASSIGN-Kommandos. |
+ | |||
+ | 30.4.15: Im Paket ist eine modifizierte Version des ZM 2.0: hier werden die Gerätetreiber etwas OS-freundlicher eingebunden: | ||
+ | Diese Version funktioniert recht gut z.B. mit den CRT40P und CRT80P-Treibern der KRT-Grafik. Das I/ | ||
+ | |||
+ | 2020: die aktuelle modifizierte Version des ZM 2.0 initialisiert wie im Original AR=C, AP=C, eine Manipulation der Treibertabelle ist nicht mehr nötig! | ||
+ | {{: | ||
===== Allgemein verwendbare Monitor-Routinen ===== | ===== Allgemein verwendbare Monitor-Routinen ===== | ||
Zeile 131: | Zeile 193: | ||
| 001E | BIT-Ausgabe | | | | | | 001E | BIT-Ausgabe | | | | | ||
| 0021 | Kassetten-Ein/ | | 0021 | Kassetten-Ein/ | ||
+ | |||
+ | |||
+ | Der ZM nutzt den **RST 38** (Trap), siehe auch GO-Kommando. | ||
Neben dem ZM selbst ist im Code auch das OS-Kommando **RENEW** enthalten. Mit diesem Kommando kann ein versehentliches NEW im ROM-BASIC wieder rückgängig gemacht werden. BASIC löscht nicht den Programmspeicher, | Neben dem ZM selbst ist im Code auch das OS-Kommando **RENEW** enthalten. Mit diesem Kommando kann ein versehentliches NEW im ROM-BASIC wieder rückgängig gemacht werden. BASIC löscht nicht den Programmspeicher, | ||
Zeile 157: | Zeile 222: | ||
| 0024 | Call 5 : BDOS-Ruf im CP/M-Regime | | | 0024 | Call 5 : BDOS-Ruf im CP/M-Regime | | ||
- | Neben der bekannten durch Robotron vertriebenen Version 2.0 sind verschiedene Varianten | + | Bislang |
Die Version 3.01 arbeitet auf einem Z9001 mit 2 RAM-Modulen und bietet durch die eingebaute BDOS-Emulation eine CP/ | Die Version 3.01 arbeitet auf einem Z9001 mit 2 RAM-Modulen und bietet durch die eingebaute BDOS-Emulation eine CP/ |