Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:software:zm [2016/04/26 10:58] – [Zusatzmonitor ZM] 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, | **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> | ||
===== Version 2.0 ===== | ===== Version 2.0 ===== | ||
Zeile 9: | Zeile 11: | ||
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 55: | 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 108: | Zeile 110: | ||
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. | 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** | **Drucker** | ||
Zeile 114: | Zeile 128: | ||
Bei AL=L erfolgt die Druckausgabe auf einen an den PIO-Port angeschlossen seriellen-Drucker TD40. | 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. | 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. | ||
- | Details zum Hardware-Anschluss | + | 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 | ||
+ | |||
+ | 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 126: | Zeile 169: | ||
30.4.15: Im Paket ist eine modifizierte Version des ZM 2.0: hier werden die Gerätetreiber etwas OS-freundlicher eingebunden: | 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/O-Byte wird beim Start nicht verändert, es bleiben die OS-Zuweisungen gültig. Bei Bedarf muss man PUNCH und READER die Konsole selbst zuweisen((Das ist leider nicht so einfach, da im OS ein ASGN PUNCH:=CRT nicht zulässig ist. So muss man die | + | Diese Version funktioniert recht gut z.B. mit den CRT40P und CRT80P-Treibern der KRT-Grafik. Das I/O-Byte wird beim Start nicht verändert, es bleiben die OS-Zuweisungen gültig. Bei Bedarf muss man PUNCH und READER die Konsole selbst zuweisen((Das ist leider nicht so einfach, da im OS ein ASGN PUNCH:=CRT nicht zulässig ist. So muss man die Treibertabelle manipulieren: |
- | Treibertabelle manipulieren: | + | |
+ | 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 149: | 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, |