Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| homecomputer:ac1:software:monx [2026/09/11 05:52] – angelegt volkerp | homecomputer: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 [[..: | ||
| + | |||
| + | 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, | ||
| + | |||
| + | 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, | ||
| + | |||
| + | * BASIC8K (BASIC8K-SD, | ||
| + | * [[nascom]]-Emulator | ||
| + | |||
| + | Folgende Software nutzt MONX, unterstützt aber nur MONX auf Adresse 0800h. | ||
| + | * picoEDAS | ||
| + | * Pascal | ||
| + | * [[forth]] | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Downloads ===== | ||
| + | |||
| + | * {{ : | ||
| + | * 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 | ||
| + | * Testprogramme test1, test2 | ||
| + | * BASIC8K (angepasst auf monx_inc) | ||
| + | |||
| + | ===== Kommandos ===== | ||
| + | |||
| + | < | ||
| + | picoAC1 (MonX 1.03) | ||
| + | |||
| + | H Help Hilfetexte Bedienung " | ||
| + | a AADR Dateiname Laden von Dateien an Absolut-Adresse im RAM | ||
| + | c [Zeichen-: | ||
| + | d [Verzeichnisname|Nr] dir Verzeichnisse anzeigen / wechseln | ||
| + | h help Hilfetexte Bedienung " | ||
| + | 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/ | ||
| + | t [YYYY-MM-DD*hh: | ||
| + | |||
| + | picoAC1 (Mon 1.10) | ||
| + | |||
| + | Z Minibasic | ||
| + | v version Version anzeigen | ||
| + | ? kdolist Kommandos auslisten | ||
| + | </ | ||
| + | |||
| + | ===== Dokumentation ===== | ||
| + | |||
| + | Im codeberg-Repository zum picoAC1 findet man | ||
| + | |||
| + | < | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | Die MONX-Monitorkommandos habe ich auch [[..: | ||
| + | ===== 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, | ||
| + | |||
| + | < | ||
| + | monx_E000.z80 ist MONX 1.1.0 für Adresse E000...E7FF | ||
| + | die Speicherzellen liegen in diesem Bereich | ||
| + | </ | ||
| + | |||
| + | 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 ; | ||
| + | |||
| + | 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, | ||
| + | ersten Aufruf einer MONX-Systemroutine. | ||
| + | |||
| + | Ein Test auf eine vorhandene Monitorerweiterung durch den Vergleich, ob auf 0FFEh " | ||
| + | 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, | ||
| + | |||
| + | Es sind folgende Systemkommandos implementiert: | ||
| + | |||
| + | < | ||
| + | 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/ | ||
| + | s: Dateiname erneut speichern mit gleichen Adr. | ||
| + | ?[:] kdolist Kommandos auflisten / mit Adressen | ||
| + | |||
| + | Nicht enthalten sind: | ||
| + | |||
| + | H Help Hilfetexte Bedienung " | ||
| + | h help Hilfetexte Bedienung " | ||
| + | t [YYYY-MM-DD*hh: | ||
| + | Z Minibasic | ||
| + | v version Version anzeigen | ||
| + | </ | ||
| + | |||
| + | Ä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 ' | ||
| + | verzichten. | ||
| + | * Das ?-Kommando zeigt ohne Parameter nur die Kommandobuchstaben an | ||
| + | |||
| + | |||
| + | |||