Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
homecomputer:ac1:software:monx [2026/09/11 05:52] – angelegt volkerphomecomputer:ac1:software:monx [2026/09/11 06:30] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerp
Zeile 1: Zeile 1:
 ====== MONX ====== ====== MONX ======
 +
 +MONX-pico ist die Erweiterung des Monitors 3.1 um zusätzliche Monitorkommandos
 +zur Arbeit mit der Hardware des [[..:picoac1|]], insbesonders zur Arbiet mit der SD-Karte.
 +
 +Neben den Kommandos gibt es auch Routinen zur Dateiarbeit mit der SD-Karte des picoAC1. Damit können Programme über eine einheitliche Schnittstelle auf Massenspeicher zugreifen, eine Funktionalität, die den bisherigen Systemen (AC1-ACC, AC1-SCCH, AC1-2010) leider fehlte.
 +
 +Ich hab das Konzept ein wenig erweitert, so dass auch andere Systeme und andere Monitore von MONX partizipieren können. Man lädt einfach einen passenden MONX-Treiber (MONX-pico, MONX-VDIP). Mit monx_inc.asm kompilierte Programme suchen eine MONX-Erweiterung im RAM und bieten dann Massenspeicherzugriff, ohne dass individuelle Programme erzeugt werden müssen. Es gibt derzeit
 +
 +  * BASIC8K (BASIC8K-SD, mit DSAVE, DLOAD, DLOAD" " für Dir)
 +  * [[nascom]]-Emulator
 +
 +Folgende Software nutzt MONX, unterstützt aber nur MONX auf Adresse 0800h.
 +  * picoEDAS
 +  * Pascal
 +  * [[forth]]
 +
 +
 +
 +
 +===== Downloads =====
 +
 +  * {{ :homecomputer:ac1:software:monx.zip |}} Version 0.5 10.9.2026. Alle Quellen und Binaries
 +      * MONX-pico auf Adresse C000 und E000, für die picoAC1-SD-Karte
 +      * MONX-VDIP für eine VDIP-USB-Stick-Hardware (AC1-201, picoAC1, JKCEMU)
 +      * monx_inc.asm  Include-Datei, linkt dynamisch eine MONX-Erweiterung
 +      * Testprogramme test1, test2
 +      * BASIC8K (angepasst auf monx_inc)
 +
 +===== Kommandos =====
 +
 +<code>
 +picoAC1 (MonX 1.03)
 +
 +H Help Hilfetexte Bedienung "Ur-"Monitor"
 +a AADR Dateiname Laden von Dateien an Absolut-Adresse im RAM
 +c [Zeichen-:Hintergrund-:Rahmenfarbe] Bildschirmfarben anzeigen/setzen
 +d [Verzeichnisname|Nr] dir Verzeichnisse anzeigen / wechseln
 +h help Hilfetexte Bedienung "Monitorerweiterungen"
 +l Dateiname|Nr load Daten von SD-Karte laden
 +m Verzeichnisname mkdir Verzeichnis anlegen
 +r Dateiname|Nr remove Datei in Papierkorb verschieben
 +s AAAA EEEE SSSS Dateiname/Infotext Daten auf SD-Karte schreiben
 +t [YYYY-MM-DD*hh:mm:ss] time Systemzeit anzeigen/setzen
 +
 +picoAC1 (Mon 1.10)
 +
 +Z Minibasic
 +v  version Version anzeigen
 +?  kdolist Kommandos auslisten   
 +</code>
 +
 +===== Dokumentation =====
 +
 +Im codeberg-Repository zum picoAC1 findet man
 +
 +<code>
 +Bedienung.md
 +monx_interface_v110.txt Beschreibung der lo-level-Funktionen 
 + zum Einbau des SD-Zugriffs in eigene Programme
 +monx_noac1.E (-> test1.asm) Laden einer Nicht-AC1-Datei
 +monx_test.S (-> test2.asm) Testroutinen fuer die AC1-Monitorerw.
 +monx_fsize.E Abfrage der Länge einer Datei auf SD-Karte
 +</code>
 +
 +Die MONX-Monitorkommandos habe ich auch [[..:picoac1#monitor-kommandos|hier]] beschrieben.
 +===== MONX für andere Monitore =====
 +
 +Original ist MONX fest auf Adresse 800h mit dem ACC-Monitor 3.1 verbunden. Dieser Adressbereich ist bei anderen Monitoren leider belegt.
 +Damit MONX auch mit anderen Monitoren genutzt werden können, bietet es sich an,
 +diese auf andere Adressen zu linken. Das betrifft auch die genutzten Speicherzellen. Zum Glück
 +werden diese nicht direkt angesprochen, sondern über einen Funktionsaufruf berechnet.
 +
 +<code>
 +monx_E000.z80 ist MONX 1.1.0 für Adresse E000...E7FF
 + die Speicherzellen liegen in diesem Bereich
 +</code>
 +
 +Diese Monitorerweiterung wird im MON3.1-Monitor geladen. Dann kann der Monitor 
 +gewechselt werden, z.B. MON SCCH 10/88.
 +
 +Die Monitorerweiterung monx_E000 steht nun im SCCH-Monitor zur Verfügung.
 +
 +ABER: Damit Programme ihn auch nutzen können, müssen die Programme natürlich
 +darauf vorbreitet werden, statt der originalen Systemrufadressen auf 800h ff nun andere
 +Adressen zu nutzen.
 +Dafür muss man die Programme mit der include-Datei
 +
 + include monx_inc.asm
 + call xinit ; ret A=FF, NZ, wenn keine Monitoerweiterung gefunden
 +
 +assemblieren. Diese enthält statt einfacher EQU's einen kleinen Sprungverteiler,
 +der je nach vorhandener Monitorerweiterung auf 800h, oder E000h zeigt oder - wenn 
 +gar keine Monitorerweiterung vorhanden ist, Fehler ausgibt.
 +
 +Die Routine xinit ist zwingend beim Programmstart o.ä. einzubinden, mindestens vor dem
 +ersten Aufruf einer MONX-Systemroutine.
 +
 +Ein Test auf eine vorhandene Monitorerweiterung durch den Vergleich, ob auf 0FFEh "pi" steht, 
 +ist leider nicht mehr allgemein möglich und muss auskommentiert werden. Stattdessen liefert 
 +xinit den Wert FF zurück, wenn keine Monitorerweiterung gefunden wurde, sonst 0.
 +
 +===== MONX-VDIP =====
 +
 +Für die VDIP-USB-Erweiterung am AC1-2010 und am picoAC1 habe ich einen kompatiblen Treiber MONX-VDIP geschrieben, der statt der SD-Karte einen USB-Stick via VDIP unterstützt. Programme mit monx-inc laufen dann mit USB als Speichermedium.
 +
 +Es sind folgende Systemkommandos implementiert:
 +
 +<code>
 +a AADR Dateiname Laden von Dateien an Absolut-Adresse im RAM
 +d [Verzeichnisname] dir Verzeichnisse auflisten / wechseln
 +l [Dateiname] load Dateien auflisten / Datei von USB laden (Headersave-Format)
 + Am Ende steht die Startadr. in ARG1 (für J:)
 +m Verzeichnisname mkdir Verzeichnis anlegen
 +r Dateiname remove Datei in Papierkorb verschieben
 +s AAAA EEEE SSSS Dateiname/Infotext Datei auf USB schreiben (Headersave-Format)
 +s: Dateiname erneut speichern mit gleichen Adr.
 +?[:]  kdolist Kommandos auflisten / mit Adressen
 +
 +Nicht enthalten sind:
 +
 +H Help Hilfetexte Bedienung "Ur-"Monitor"
 +h help Hilfetexte Bedienung "Monitorerweiterungen"
 +t [YYYY-MM-DD*hh:mm:ss] time Systemzeit anzeigen/setzen
 +Z Minibasic
 +v  version Version anzeigen
 +</code>
 +
 +Änderungen gegenüber MONX-pico:
 +
 + * Die Auswahl von Verzeichnissen oder Dateien über Nummern gibt es nicht, es wird immer mit dem Dateinamen gearbeitet
 + * Es werden nur 8.3-Dateinamen unterstützt
 + * Es sind beliebig geschachtelte Unterverzeichnisse möglich
 + * Wechsel ins übergeordnete Verzeichnis mit 'd ..'
 + * Wechsel ins Root-Verzeichnis mit 'd /'
 + * Beim SCCH-Monitor wird das Zeichen '_' (0x5F) als Backspace genutzt und erscheint nicht auf dem Bildschirm. Man sollte daher auf '_' in Dateinamen
 +  verzichten.
 + * Das ?-Kommando zeigt ohne Parameter nur die Kommandobuchstaben an
 +
 +
 +
  
  • homecomputer/ac1/software/monx.1789105934.txt.gz
  • Zuletzt geändert: 2026/09/11 05:52
  • von volkerp