Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:software:mega [2018/02/13 07:00] – [Maschinencode] volkerp | z9001:software:mega [2025/01/07 13:57] (aktuell) – [Historie] volkerp | ||
---|---|---|---|
Zeile 9: | Zeile 9: | ||
Das Softwarepaket umfasst alle enthaltenen Programme (meist im TAP-Format), | Das Softwarepaket umfasst alle enthaltenen Programme (meist im TAP-Format), | ||
- | * {{:z9001:module: | + | * {{:z9001:software: |
+ | * {{: | ||
+ | * {{ : | ||
Im Paket sind enthalten: | Im Paket sind enthalten: | ||
Zeile 37: | Zeile 39: | ||
Programme werden einfach durch Eingabe des Programmnamens am OS-Prompt gestartet. Das gilt für alle Programmarten. Bei BASIC-Programmen erfolgt automatisch ein spezielles Laden des BASICs mit anschließendem Autostart des BASIC-Programms. | Programme werden einfach durch Eingabe des Programmnamens am OS-Prompt gestartet. Das gilt für alle Programmarten. Bei BASIC-Programmen erfolgt automatisch ein spezielles Laden des BASICs mit anschließendem Autostart des BASIC-Programms. | ||
+ | |||
+ | **Eine Anleitung für alle Programme des Moduls gibt es nicht. Viele Programme sind in den Dokumentationen von Robotron beschrieben. | ||
+ | Im Download-Paket ist eine Übersicht packeroms.bin_mega.txt enthalten, die in etwa DIR L entspricht.** | ||
===== Kommandos ===== | ===== Kommandos ===== | ||
Zeile 43: | Zeile 48: | ||
- | ^ Kommando | + | ^ Kommando |
- | | DIR [suchmuster] | + | | DIR [suchmuster] |
- | | DIR L [suchmuster] | + | | DIR L [suchmuster] |
- | | HELP [kommando] | Hilfe anzeigen | | + | | DIR C [suchmuster] |
- | | CLS | Bildschirm löschen | | + | | HELP [kommando] |
- | | C | Cursor on/off | | + | | CLS |
- | | MENU | graphische Oberfläche ala GEM | | + | | C |
+ | | MENU | graphische Oberfläche ala GEM | ||
**DIR [suchmuster]** | **DIR [suchmuster]** | ||
Zeile 60: | Zeile 66: | ||
Programme mit FA-Rahmen werden in Cyan ausgeschrieben. | Programme mit FA-Rahmen werden in Cyan ausgeschrieben. | ||
- | **DIR L [suchmuster]** | + | **DIR L [suchmuster], |
Mit diesem Kommando erhält man einen Überblick über die Belegung des Mega-ROM-Moduls. | Mit diesem Kommando erhält man einen Überblick über die Belegung des Mega-ROM-Moduls. | ||
- | Alle Programme werden aufgelistet. Es erfolgt eine ausführliche (**L** = lange) Anzeige. Die Programme werden in der Reihenfolge angezeigt, in der sie im Modul abgelegt sind und in der sie auch gesucht werden. | + | Alle Programme werden aufgelistet. Es erfolgt eine ausführliche (**L** = lange) Anzeige. |
+ | Mit dem Parameter **C** (comment) wird zusätzlich eine kurze Beschreibung angezeigt. | ||
+ | |||
+ | Die Programme werden in der Reihenfolge angezeigt, in der sie im Modul abgelegt sind und in der sie auch gesucht werden. | ||
Die Anzeige kann mit PAUSE angehalten werden. Eine beliebige Taste setzt die Anzeige fort. | Die Anzeige kann mit PAUSE angehalten werden. Eine beliebige Taste setzt die Anzeige fort. | ||
Zeile 108: | Zeile 117: | ||
Über das X links oben kann MENU verlassen werden (mit dem Mauszeiger aufs X gehen und ENTER drücken). | Über das X links oben kann MENU verlassen werden (mit dem Mauszeiger aufs X gehen und ENTER drücken). | ||
- | Hinter dem Fragenzeichen | + | Hinter dem Fragezeichen |
+ | **WINDOW [erste_zeile, | ||
+ | |||
+ | Analog zu BASIC: Diese Anweisung gestattet, einen rechteckigen Abschnitt des Bildschirms | ||
+ | als Ausgabebereich zu definieren. Innerhalb des Ausgabebereiches | ||
+ | erscheinen sämtliche Ausgaben. Ohne Parameter wird der volle Bildschirm eingestellt. | ||
+ | |||
+ | WINDOW entspricht also WINDOW 0,23,0,39 bzw. WINDOW 0,23,0,79 im CRT80-Modus. | ||
+ | |||
+ | |||
+ | ===== Dateiarbeit ===== | ||
+ | |||
+ | Zum Arbeiten mit Kassette, USB-Stick und Diskette stehen dieselben Kommandos zur Verfügung. | ||
+ | Je nach geladenem Treiber USBX oder DOSX wird statt Kassette der USB-Stick bzw. Diskette genutzt. | ||
+ | |||
+ | Die Parameter sind hexadezimal anzugeben. Eine Vornull ist nicht nötig. | ||
+ | |||
+ | **SAVE aadr eadr [sadr] [1]** Datei speichern auf Kassette/ | ||
+ | |||
+ | Speicher von Adresse aadr bis einschließlich eadr\\ | ||
+ | Es erfolgt eine Abfrage von name[.typ] | ||
+ | Fehlt eine Angabe der Startadresse sadr, wird die Anmfangsadresse aadr genommen\\ | ||
+ | folgt noch eine 1, wird ohne Kopfblock | ||
+ | |||
+ | **LOAD [aadr] [1]** Datei laden | ||
+ | |||
+ | analog SAVE Abfrage von Name+Typ \\ | ||
+ | aadr ist alternative Anfangsadresse\\ | ||
+ | folgt eine 1, wird auch der erste Block normal gelesen (nur DOSX, USBX) | ||
+ | |||
+ | **FCB** Anzeige des FCB | ||
+ | |||
+ | Aus dem aktuellen FCB (File Control Block, Adresse 005Ch) werden Dateiname, Dateityp, Anfangsadresse, | ||
+ | |||
+ | **EOR** [adr] Anzeigen/ | ||
+ | |||
+ | Mit diesem Kommando wird der aktuelle Wert von EOR (end of ram, 0036h) angezeigt. Treiber können den Wert verändern und sich damit vor Überschreiben schützen. Das BASIC der Mega-Software beachtet bei der Ermittlung des memory end genau diesen Wert.\\ | ||
+ | Mit einem Parameter kann der EOR gezielt geändert werden. | ||
===== Maschinencode ===== | ===== Maschinencode ===== | ||
Zeile 137: | Zeile 183: | ||
Nach Betätigung der Enter-Taste wird die aktuelle Adresse erhöht und auf der | Nach Betätigung der Enter-Taste wird die aktuelle Adresse erhöht und auf der | ||
nächsten Zeile fortgesetzt. Wird versucht, einen nicht vorhandenen | nächsten Zeile fortgesetzt. Wird versucht, einen nicht vorhandenen | ||
- | Speicherbereich oder einen ROM zu beschreiben, | + | Speicherbereich oder einen ROM zu beschreiben, |
aerr bb, wobei aerr die Adresse und bb den fehlerhaften Inhalt darstellen. | aerr bb, wobei aerr die Adresse und bb den fehlerhaften Inhalt darstellen. | ||
- | Anschliessend | + | Anschließend |
vor allem dann auftreten, wenn versucht wird, nicht vorhandene Speicher oder | vor allem dann auftreten, wenn versucht wird, nicht vorhandene Speicher oder | ||
Festwertspeicher zu beschreiben. Mit Eingabe des Zeichens " | Festwertspeicher zu beschreiben. Mit Eingabe des Zeichens " | ||
Adresse bei Bedarf zurückgestellt werden. | Adresse bei Bedarf zurückgestellt werden. | ||
- | Die Komandoausführung | + | Die Kommandoausführung |
aktuelle Adresse wird als Endadresse übernommen. Mit dem Kommando ' | aktuelle Adresse wird als Endadresse übernommen. Mit dem Kommando ' | ||
der aktualisierte Speicherbereich nochmals auf dem Bildschirm angezeigt werden. | der aktualisierte Speicherbereich nochmals auf dem Bildschirm angezeigt werden. | ||
Zeile 174: | Zeile 220: | ||
Es erfolgt ein Transport eines Speicherbereiches ab der Anfangsadresse auf eine | Es erfolgt ein Transport eines Speicherbereiches ab der Anfangsadresse auf eine | ||
- | Zieladresse mit der festgelegten Anzahl von Bytes. Dabei ist eine Uberlappung | + | Zieladresse mit der festgelegten Anzahl von Bytes. Dabei ist eine Überlappung |
der beiden Bereiche möglich. | der beiden Bereiche möglich. | ||
Zeile 193: | Zeile 239: | ||
Mit **RUN F000 bank** wird das Megamodul hart auf eine andere Bank als die Systembank umgeschaltet. Das Megamodul verhält sich dann wie ein normales 10K-ROM-Modul; | Mit **RUN F000 bank** wird das Megamodul hart auf eine andere Bank als die Systembank umgeschaltet. Das Megamodul verhält sich dann wie ein normales 10K-ROM-Modul; | ||
- | ===== eigene | + | ===== spezielle Programme ===== |
+ | |||
+ | Zuätzliche (für mich) wichtige Programme sind: | ||
+ | |||
+ | ^ Kommando | ||
+ | | CHKROM | Test des Moduls. Für jede Bank wird eine Prüfsumme errechnet und mit dem Sollwert verglichen. Fehler werden angezeigt. | | ||
+ | | [[z9001: | ||
+ | | V24 | Der ROM BM116, enthält die Robotron-Druckertreiber V24A1, V24A2, V24A3 | | ||
+ | | [[z9001: | ||
+ | | [[z9001: | ||
+ | | [[z9001: | ||
+ | | [[z9001: | ||
+ | | CRC | CRC-Berechnung | | ||
+ | | CRT40 | CRT-Treiber für schnelles Bildschirmlöschen | | ||
+ | | INITKC | Diskettenformatieren im OS. Damit kann man eine CP/ | ||
+ | | [[z9001: | ||
+ | | [[z9001: | ||
+ | | [[z9001: | ||
+ | | | | | ||
+ | | | | | ||
+ | | | | | ||
+ | | | | | ||
+ | | | | | ||
+ | | | | | ||
+ | |||
+ | |||
+ | ===== Software | ||
Ende 2011 habe ich diese alternative quelloffene Software für das Mega-Modul und das Mega-Flash-Modul geschrieben. Diese besteht i.W. aus einer OS-Erweiterung; | Ende 2011 habe ich diese alternative quelloffene Software für das Mega-Modul und das Mega-Flash-Modul geschrieben. Diese besteht i.W. aus einer OS-Erweiterung; | ||
Zeile 233: | Zeile 305: | ||
{{: | {{: | ||
- | Es wurde außerdem ein neuer Kommandorahmen eingeführt: | + | Für die Mega-Flash-Software |
Der FA-Rahmen ist 32 Byte lang und liegt ebenfalls auf einer xx00h-Adresse. | Der FA-Rahmen ist 32 Byte lang und liegt ebenfalls auf einer xx00h-Adresse. | ||
Zeile 270: | Zeile 342: | ||
Basic-Programme werden nach 0401h kopiert. Dann wird die BASIC-Bank zugeschaltet, | Basic-Programme werden nach 0401h kopiert. Dann wird die BASIC-Bank zugeschaltet, | ||
Basic initialisiert und das Programm gestartet. | Basic initialisiert und das Programm gestartet. | ||
- | Für BASIC-Programme ist programm.bin einfach die *.KCC-Datei. | + | Für BASIC-Programme ist programm.bin einfach die *.KCC-Datei |
Zur einfachen Konvertierung von *.tap-Dateien ins binäre Format kann das | Zur einfachen Konvertierung von *.tap-Dateien ins binäre Format kann das | ||
Zeile 278: | Zeile 350: | ||
einfach in der nächsten Bank fortgesetzt. | einfach in der nächsten Bank fortgesetzt. | ||
- | Außerdem können alle Programme mit **bitbuster_extreme** um etwa 30% komprimiert sein, um | + | Außerdem können alle Programme mit **ZX7**, |
Platz im Mega-Modul zu sparen. Bei komprimierten Programmen muss im Dateityp | Platz im Mega-Modul zu sparen. Bei komprimierten Programmen muss im Dateityp | ||
das Bit 7 gesetzt sein (also 80h zum originalen Dateityp addiert). | das Bit 7 gesetzt sein (also 80h zum originalen Dateityp addiert). | ||
+ | 2021 erfolgte die Umstellung auf den Packer **ZX7**. Damit ist eine noch bessere Komprimierung | ||
+ | gegeben. Vorher wurde **bitbuster_extreme** genutzt. | ||
**Das Mega-Modul kann somit einfach um eigene Software erweitert werden: Einfach | **Das Mega-Modul kann somit einfach um eigene Software erweitert werden: Einfach | ||
Zeile 309: | Zeile 383: | ||
und | und | ||
+ | make mega für Mega-Modul (3 ROMs) | ||
make flash für Mega-Flash-Modul (5 ROMs) | make flash für Mega-Flash-Modul (5 ROMs) | ||
- | make ROM f. 64K-SRAM-Modul, | + | make kombi f. 64K-SRAM-Modul, |
- | make roms für Megamodul (3 ROMs) | + | |
erstellt. | erstellt. | ||
Zeile 318: | Zeile 392: | ||
Interessierte Bastler (und Linuxer) finden hier den Packer zum Verkleinern der Dateigröße: | Interessierte Bastler (und Linuxer) finden hier den Packer zum Verkleinern der Dateigröße: | ||
- | * http://www.west.co.tt/matt/speccy/apology/ bitbuster_extreme-0.1.tar.gz (unten auf der Seite). Der genutzte Packer. | + | * https://spectrumcomputing.co.uk/entry/27996/ZX-Spectrum/ |
- | * http://www.msx.org/downloads/related/development/bitbuster-12 bitbuster1_2.zip. Das ist das originale Paket. bitbuster_extreme spart sich nur den 4 Byte großen Header; ist ansonsten unverändert. | + | * https://spectrumcomputing.co.uk/zxdb/sinclair/entries/0027996/ |
+ | * https:// | ||
+ | der ältere bitbuster_extreme ist hier zu finden: | ||
+ | * http:// | ||
+ | * http:// | ||
===== Historie ===== | ===== Historie ===== | ||
Zeile 405: | Zeile 483: | ||
**15.03.2017**: | **15.03.2017**: | ||
Zu ROM-Disk die KCNET-Software TFTP1287.COM und CPMN1587.COM hinzugefügt. | Zu ROM-Disk die KCNET-Software TFTP1287.COM und CPMN1587.COM hinzugefügt. | ||
+ | |||
+ | **01.08.2017**: | ||
+ | Nagelneues MINICPM speziell fürs KOMBI-Modul, | ||
+ | Banknummer wird jetzt heruntergezählt (BWS r.o.). Wenn der ZM als Geräte- | ||
+ | Treiber oder Debugginghilfe genutzt wird (rst 38), geht das nur mit der | ||
+ | RAM-Version. | ||
+ | |||
+ | **23.11.2017**: | ||
+ | ' | ||
+ | wird z.B. in BASIC genutzt. Damit sind die erzeugten SSS-Dateien kompatibel zu | ||
+ | CP/M usw. | ||
+ | |||
+ | **02.10.2018**: | ||
+ | Disk unterstützt, | ||
+ | BASIC speichert auf Disk/USB nun analog zur CP/ | ||
+ | Neuer Parameter in includes für UZ-Version. Wider besseren Wissens wird dann | ||
+ | die ROM-Version des ZM sowie Ulrichs Spezial-Version des ZM30 etc. eingebunden. | ||
+ | |||
+ | **05.03.2019**: | ||
+ | Zusammenarbeit. Die CRTxx-Treiber und Speicher-Treiber DOSX/USBX werden nun nach | ||
+ | < | ||
+ | Nach dem Laden eines FA-Programms wird der FCB passend gefüllt. Damit kann man | ||
+ | mit SAVE (ohne Parameter) einfach Programme aus dem ROM herauskopieren und auf | ||
+ | ein externes Speichermedium übertragen. | ||
+ | Zur Arbeit mit Disketten steht zur Erstellung einer Systemdiskette INITKC und | ||
+ | CPM-48K bereit. Damit kann eine Diskette formatiert und mit dem OS und weiteren | ||
+ | Z9001-spezifischen Treibern beschrieben werden. Danach wird mit BOOT das CP/M | ||
+ | gestartet. USBX hat neue Kommandos DDIR und CD (s. Projekt USB-OS).\\ | ||
+ | Die Extra-Version der Kombi-Variante für U.Zander und sein geändertes | ||
+ | Betriebssystem wird nur empfohlen, wenn man auch das geänderte | ||
+ | Betriebssystem nutzt. Ansonsten gibt es die bekannten Probleme mit den | ||
+ | originalen Versionen des ZM. Das automatische Reinitialisieren obiger Treiber | ||
+ | ist aufgrund der originalen Versionen des ZM nicht möglich. MINICPM ist auf | ||
+ | Wunsch weiterhin drin, aber nicht besonders sinnvoll. | ||
+ | |||
+ | **13.03.2020** Mit Build 147 des Arnold-Assemblers musste die Verwendung von | ||
+ | Unterverzeichnissen geändert werden (Es wird jetzt relativ zu dem Verzeichnis | ||
+ | gesucht, in dem die Datei mit dem Include-Statement liegt, und nicht mehr | ||
+ | relativ zum aktuellen Verzeichnis). Das betrifft alle asm-Sourcen und Perl- | ||
+ | Tools, die was mit include zu tun haben. | ||
+ | |||
+ | **16.03.2020** Basic mit DIR, CD unter DOSX,USBX; sonst Fehlermeldung. DOSX | ||
+ | merkt sich das aktuelle Laufwerk | ||
+ | |||
+ | **08.04.2020** CHKROM nun auch f. KOMBI, neu DEVICE, neue Version ZM30+ZMA8 | ||
+ | Korrektur BASIC | ||
+ | |||
+ | **07.07.2020** Korrektur GRAFx (Version passend zu BASIC kompilieren), | ||
+ | |||
+ | **05.02.2021** Fehlerbehebung im makeprozess. Neu sind [[z9001: | ||
+ | |||
+ | **07.05.2021** USBX/DOSX CALL5 Nr 34+35 (CSAVE/ | ||
+ | läuft z.B. CHIP8 von USB. DOSX Korrektur Laden fcb+24=N. Hier wurde der letzte Block | ||
+ | nicht mehr gelesen. | ||
+ | |||
+ | **30.09.2021** Umstellung von bitbuster_extreme auf ZX7. Dadurch noch bessere Pack-Ergebnisse. | ||
+ |