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. | ||
| + | |||