Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
homecomputer:ac1:software:monx [2026/09/11 06:30] – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden volkerphomecomputer:ac1:software:monx [2026/11/04 13:55] (aktuell) – [MONX für andere Monitore] volkerp
Zeile 1: Zeile 1:
 ====== MONX ====== ====== MONX ======
 +
 +{{:homecomputer:ac1:software:monx-mon31.jpg?0x300|MONX ACC31}} {{:homecomputer:ac1:software:monx_vdip1.png|MONX-VDIP}}
  
 MONX-pico ist die Erweiterung des Monitors 3.1 um zusätzliche Monitorkommandos 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.+zur Arbeit mit der Hardware des [[..:picoac1|]], insbesonders zur Arbeit mit der SD-Karte. 
 + 
 +https://codeberg.org/bw38/picoAC1/src/branch/main/Firmware/Bedienung.md
  
 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. 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+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.  
 +<WRAP clear/> 
 + 
 +Es gibt derzeit
  
-  * BASIC8K (BASIC8K-SD, mit DSAVE, DLOAD, DLOAD" " für Dir) +  * BASIC8x (BASIC8K-SD, mit DSAVE, DLOAD, DLOAD" " für Dir) 
-  * [[nascom]]-Emulator+  * EDAS4x 
 +  * PASCAL4x 
 +  * [[nascom]]
  
 Folgende Software nutzt MONX, unterstützt aber nur MONX auf Adresse 0800h. Folgende Software nutzt MONX, unterstützt aber nur MONX auf Adresse 0800h.
-  * picoEDAS 
-  * Pascal 
   * [[forth]]   * [[forth]]
  
 +Außerdem gibt es funktionskompatible Erweiterungen für andere Speicher:
 +  * USB-Stick via VDIP (s.u.)
 +  * CH376 (in Entwicklung)
  
  
Zeile 21: Zeile 31:
 ===== Downloads ===== ===== Downloads =====
  
-  * {{ :homecomputer:ac1:software:monx.zip |}} Version 0.5 10.9.2026. Alle Quellen und Binaries+  * {{ :homecomputer:ac1:software:monx.zip |}} Version 0.9 16.9.2026. Alle Quellen und Binaries
       * MONX-pico auf Adresse C000 und E000, für die picoAC1-SD-Karte       * 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-VDIP für eine VDIP-USB-Stick-Hardware (AC1-201, picoAC1, JKCEMU)
Zeile 27: Zeile 37:
       * Testprogramme test1, test2       * Testprogramme test1, test2
       * BASIC8K (angepasst auf monx_inc)       * BASIC8K (angepasst auf monx_inc)
 +      * EDAS4x (angepasst auf monx_inc)
 +      * PASCALx (angepasst auf monx_inc)
 +      * Dokumentationen und Beispielprogramme für die Programmiersprachen
  
 ===== Kommandos ===== ===== Kommandos =====
Zeile 36: Zeile 49:
 a AADR Dateiname Laden von Dateien an Absolut-Adresse im RAM a AADR Dateiname Laden von Dateien an Absolut-Adresse im RAM
 c [Zeichen-:Hintergrund-:Rahmenfarbe] Bildschirmfarben anzeigen/setzen  c [Zeichen-:Hintergrund-:Rahmenfarbe] Bildschirmfarben anzeigen/setzen
-d [Verzeichnisname|Nr] dir Verzeichnisse anzeigen / wechseln+d [+|-|Verzeichnisname|Nr] dir Verzeichnisse anzeigen / wechseln
 h help Hilfetexte Bedienung "Monitorerweiterungen" h help Hilfetexte Bedienung "Monitorerweiterungen"
-l Dateiname|Nr  load Daten von SD-Karte laden+l [+|-|Dateiname|Nr] load Dateien von SD-Karte anzeigen / laden
 m Verzeichnisname mkdir Verzeichnis anlegen m Verzeichnisname mkdir Verzeichnis anlegen
 r Dateiname|Nr remove Datei in Papierkorb verschieben r Dateiname|Nr remove Datei in Papierkorb verschieben
Zeile 85: Zeile 98:
 darauf vorbreitet werden, statt der originalen Systemrufadressen auf 800h ff nun andere darauf vorbreitet werden, statt der originalen Systemrufadressen auf 800h ff nun andere
 Adressen zu nutzen. Adressen zu nutzen.
-Dafür muss man die Programme mit der include-Datei+Dafür muss man die Programme mit der include-Datei monx_inc.asm verbinden:
  
  include monx_inc.asm  include monx_inc.asm
- call xinit ; ret A=FF, NZ, wenn keine Monitoerweiterung gefunden+ call xinit ; ret A=FF, NZ, wenn keine Monitorerweiterung gefunden
  
-assemblieren. Diese enthält statt einfacher EQU's einen kleinen Sprungverteiler,+Diese include-Datei enthält statt einfacher EQU's einen kleinen Sprungverteiler,
 der je nach vorhandener Monitorerweiterung auf 800h, oder E000h zeigt oder - wenn  der je nach vorhandener Monitorerweiterung auf 800h, oder E000h zeigt oder - wenn 
 gar keine Monitorerweiterung vorhanden ist, Fehler ausgibt. gar keine Monitorerweiterung vorhanden ist, Fehler ausgibt.
Zeile 103: Zeile 116:
 ===== MONX-VDIP ===== ===== 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.+{{:homecomputer:ac1:picopio_vdip_a.jpg?200 |}} 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: Es sind folgende Systemkommandos implementiert:
Zeile 129: Zeile 142:
 Änderungen gegenüber MONX-pico: Änderungen gegenüber MONX-pico:
  
- * Die Auswahl von Verzeichnissen oder Dateien über Nummern gibt es nicht, es wird immer mit dem Dateinamen gearbeitet +  * 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 werden nur 8.3-Dateinamen unterstützt 
- * Es sind beliebig geschachtelte Unterverzeichnisse möglich +  * Es sind beliebig geschachtelte Unterverzeichnisse möglich 
- * Wechsel ins übergeordnete Verzeichnis mit 'd ..' +  * Wechsel ins übergeordnete Verzeichnis mit 'd ..' 
- * Wechsel ins Root-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 +  * Beim SCCH-Monitor wird das Zeichen '_' (0x5F) als Backspace genutzt und erscheint nicht auf dem Bildschirm. Man sollte daher auf '_' in Dateinamen verzichten. 
-  verzichten. +  * Das ?-Kommando zeigt ohne Parameter nur die Kommandobuchstaben an 
- * Das ?-Kommando zeigt ohne Parameter nur die Kommandobuchstaben an+ 
 + 
 +===== Dateien ===== 
 + 
 +Die Dateien auf dem Massenspeicher werden im Headersave-Format gespeichert, s. [[..:kassetteninterface#usb_z80-dateien|]]. 
 +Den eigentlichen Daten ist ein 32 Byte großer Startblock (aka Kopfblock/Header) vorangestellt. 
 + 
 +<a2s> 
 +#--------#----------# 
 +| Header | Programm | 
 +#--------#----------# 
 +</a2s>   
 + 
 + 
 +^ Byte   ^ Bedeutung                                                           ^ 
 +| 0, 1   | Anfangsadresse der Datei                                            | 
 +| 2, 3   | Endadresse                                                          | 
 +| 4, 5   | Startadresse bei Fall eines ausführbaren Programms (Dateityp: "C")  | 
 +| 6-11   | frei (z.B. Autor, Gen.Programm oder CRC)                            | 
 +| 12     | Dateityp (z.B. "C": Ausführbares Maschinencodeprogramm)             | 
 +| 13-15  | Headersave-Kennung "magic bytes" (3x D3h)                           | 
 +| 16-31  | Dateiname/Beschreibung, mit Leerzeichen aufgefüllt                  | 
 + 
 +Der Dateityp ist prinzipiell frei wählbar, MONX nutzt 'D'. Verbreitet sind 
 + 
 +  * P Lauffähiges Maschinenprogramm (z1013: C !!) 
 +  * D Maschinendatei 
 +  * B Basicprogramm 
 +  * F Datenfeld (BASIC) 
 + 
 +Die 16 Zeichen "Dateiname" können frei für lange Programmnamen oder zusätzliche  
 +Informationen genutzt werden, der eigentliche Dateiname liegt bereits im Filesystem vor. 
 + 
 +Originale Kassetten-basierte Programme arbeiten immer in 32-Byte-Blöcken. 
 +Sind die letzten Daten kürzer als 32 Byte, wird der letzte Block auf volle 32 Byte 
 +erweitert. Bei den heute üblichen Massenspeichern (SD-Karte, USB) ist das nicht 
 +mehr erforderlich, aus Kompatibilitätsgründen kann es aber trotzdem gemacht werden. 
 + 
 + 
 + 
 +MONX-pico nutzt FAT16/FAT32-formatierte SD-Karten, unterstützt aber nur 16 Zeichen für den Dateinamen (incl. Dateityp) und nur eine Unterverzeichnis-Ebene. 
 + 
 +MONX-VDIP nutzt FAT16/FAT32-formatierte USB-Sticks, unterstützt aber nur kurze 8.3-Dateinamen, dafür mehrere Unterverzeichnis-Ebenen. 
 + 
 +===== Historie ===== 
 + 
 +  * V09 15.09.2026 MONX_VDIP FCHRW schließt jetzt Datei, MagicCode 1FF1 entfernt, stattdessen zusätzl. Test auf FLEN=0 
 +  * V08 14.09.2026 picoPASCAL ergänzt (Dank an Rolf W. für den Quellcode!) 
 +  * V07 13.09.2026 MONX_VDIP o_wfullblocks = 0; Beim Schreiben NICHT mehr auf volle Blocks aufrunden\\ Kennung "x-vdip" im Header\\ FBLOCKW nutzt FLEN\\ MONX_INC xinit immer laufen lassen\\ picoEDAS4x ergänzt
  
  
  
  
  • homecomputer/ac1/software/monx.1789108223.txt.gz
  • Zuletzt geändert: 2026/09/11 06:30
  • von volkerp