Mega-Flash-Modul
Die Hardware des Mega-Flash-Modul wurde von W.Harwardt entwickelt (MEGA-Flash-ROM-RAM, http://buebchen.jimdo.com/8-bit-selbstbau/kc87-z9001/). Die Idee basiert auf dem ursprünglichen Megamodul vom A.S.
Download
- mega_flash.zip Softwarepaket incl. aller Quellen (aktuellster Stand)
Die Datei „megarom.bin“ muss ggf. noch in 5 Teile a 512 KByte zerlegt werden. (ROM 1..5). Das kann mit „make flash“ erledigt werden.
Beim Megamodul sind es nur 3 ROMs; 1+2 und 3+4 sind jeweils zusammen in einem 1-MByte-ROM enthalten. Das kann mit „make roms“ erledigt werden.
s.a. Mega-Flash-Software, Abschnitt download
Hardware
Das Mega-Flash-Modul ist äquivalent zum älteren Megamodul, kommt aber im Gegensatz zu diesem ohne GALs aus und ist sowohl für den Z9001 bzw. KC87 als auch für den Z1013 ausgelegt. Das Modul basiert auf dem Funktionsprinzip des Megamodul von Alexander Schön und Speichererweiterungen für den Amstrad CPC, jedoch mit völlig neu entwickelter und erweiterter Schaltung, aber ohne die RAM-Speichererweiterung.
Die 2012- und 2013-Serie des Mega-Flash-Moduls enthalten die 32K-RAM-Speichererweiterung.
Schaltungs- und Aufbauunterlagen s. http://buebchen.jimdo.com/selbst-gebaut-diy-homebrew-feito-por-mim/kc87-z9001/ und http://buebchen.jimdo.com/selbst-gebaut-diy-homebrew-feito-por-mim/z1013/
Vorder- und Rückseite Modul Serie 1.10.2011. Hier mit 5 EPROMs bestückt. Bei Nutzung von FLASH-Speicher muss das Steckfeld oben links anders belegt werden. In dieser Serie war noch eine kleine Änderung nötig (Drahtbrücke auf Leiterseite von Jumper an Steckverbinder B9 statt an B27).
Serie 2013 mit 32K-RAM li. Version Z+K 29.04.2013, rechts Mega-Flash-ROM 03.01.2013
Vorteile:
- 5 gleiche 512KByte ROMs
- alternativ 5 FLASH-ROMs, z.B. Winbond W90C040 o.a.
- auch kleinere ROMs o. FLASHs nutzbar!
- alternativ 5 RAMs, z.B. zur Nutzung als RAM-Disk
- frei wählbare I/O-Adresse
- abschaltbar (über X1:27A in Verbindung mit dem 64K-RAM-Modul)
- 32K statischer RAM, abschaltbar
Gegenüber der Megamodul-Version von Rauscher/Honi enhält die 2011-Serie keinen 32K-RAM. Es werden hier zusätzlich 2 normale 16K-RAM-Module, ein 64K-RAM-Modul oder ein 128K-RAM-Modul benötigt, falls der Grundspeicher für ein Programm nicht ausreichend ist.
Tipp: Für den 8-Bit-Comparator 74LS688 kann auch ein 74ALS520N zum Einsatz kommen. Dieser enthält bereits intern die benötigten Pull-Up-Widerstände, d.h. man braucht kein Widerstandsnetzwerk rechts neben den Jumpern bzw. die Widerstände SMD-R 3K9 auf der Leiterseite (und ein 74ALS520N ist sogar billiger als ein 688).
Software
Die universelle Modulsoftware ist jetzt unter Mega-Flash-Software beschrieben!
DIR [suchmuster]
Alle transienten Kommandos werden aufgelistet. Die Anzeige erfolgt absteigend von FF00 bis 100h, anschließend werden alle nachfolgenden Bänke bis Bank FF jeweils von C000 bis E700 durchsucht. Angezeigt wird nur der Kommandoname.
Programme mit FA-Rahmen werden in Cyan ausgeschrieben.
Die Anzeige kann mit PAUSE angehalten werden. Eine beliebige Taste setzt die Anzeige fort. Mit STOP wird das Kommando abgebrochen.
DIR L [suchmuster]
Alle transienten Kommandos werden aufgelistet. Die Anzeige erfolgt absteigend von FF00 bis 100h, anschließend werden alle nachfolgenden Bänke bis Bank FF jeweils von C000 bis E700 durchsucht. Angezeigt wird die Banknummer, der Kommandoname, die Adresse des Kommandorahmens und die eigentliche Startadresse. Mit diesem Kommando erhält man einen Überblick über die Belegung des Mega-ROM-Moduls.
Bei Programmen mit FA-Rahmen werden angezeigt: Bank, Adr. in Bank, Dateityp, Name, Anfangsadresse, Endadresse, Startadresse, Dateikategorie (s.u.).
Die Anzeige kann mit PAUSE angehalten werden. Eine beliebige Taste setzt die Anzeige fort. Mit STOP wird das Kommando abgebrochen.
Zur Einschränkung der Anzeige kann dem DIR-Kommando ein Suchmuster übergeben werden. Ein '*' steht dabei für eine beliebige Anzahl beliebiger Zeichen (auch 0!) und '?' für genau ein beliebiges Zeichen.
Im obigen Bild werden erst alle Kommandos angezeigt, die 'R+A' im Namen enthalten. 'D*MO' sucht nach einem 'D' und irgendwo danach ein 'MO' im Namen.
Das letzte Beispiel 'M*B' zeigt die Suche nach 'M' und danach 'B' im Namen. Bei 'EMONB2' und 'RAMBASIC' sieht man, dass der * zwischen 'M' und 'B' einmal für 2 und einmal für 0 Zeichen steht.
HELP [kommando] (Hilfe)
Es wird eine kurze Hilfe zu einem Kommando angezeigt. Ohne Parameter werden alle vorhandenen Hilfetexte aufgelistet.
Hilfetexte sind einfache FA-Dateien vom Typ ft_HELP (2). Sie können Farbe u.a. Steuercodes enthalten.
RUN adr [bank] (Programmstart)
Mit diesem Kommando können Programme gestartet werden, auch wenn sie nicht über einen OS-Kommandorahmen verfügen und somit nicht per Kommandoname ausgeführt werden können.
Ein Programm auf Adresse adr wird gestartet. Mit RET kehrt das Programm zum OS zurück. Optional kann eine Bank angegeben werden. Ist dies der Fall, wird zuerst die Bank aktiviert, ehe das Programm gestartet wird. Dadurch können Programme gestartet werden, die in einer anderen Bank als der Systembank liegen.
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; das OS-Verhalten bzgl. Programmsuche und -start ist unverändert original Z9001. Erst nach einem Hardware-Reset ist die Modul-Systemsoftware wieder aktiv.
CLS (Bildschirm löschen)
Hiermit wird der Bildschirm gelöscht. Es wird das Zeichen ^L an das aktuelle Konsolengerät gesendet.
C (Cursor on/off)
Besitzer eines Z9001/KC87 mit Farbmodul, aber nur über Antennenkabel angeschlossenen Fernseher, sehen keinen Cursor, da dieser als blinkender Farbhintergrund ausgegeben wird. Mit diesem Kommando wird die Cursoranzeige auf s/w umgestellt. D.h., der Cursor wird als blinkendes Quadrat angezeigt. Ein nochmaliger Aufruf dieses Kommandos macht dies wieder rückgängig.
MENU (graphische Oberfläche)
Die graphische Oberfläche wurde basierend auf der Software des Megamodul geschrieben. Die Bedienung erfolgt wie dort. Technisch wurde aber vieles anders als beim Megamodul gelöst. So ist MENU ein normales Programm, die Dateidialoge sind nicht vorgegeben, sondern werden zur Laufzeit gebildet. Außerdem ist bei großen Dialogen ein Scrollen möglich (z.B. bei den BASIC-Spielen). Zusätzlich werden in der Statuszeile Informationen über das gerade selektierte Programm wie z.B. der genutzte Speicherbereich angezeigt.
Funktionsweise
Das Modul besteht logisch aus Sicht des Z9001 aus 256 Speicherbereichen (sogenannten Bänken) im Speicherbereich C000-E7FFh. Durch Ausgabe der Banknummer auf Port FFh wird die gewählte Bank aktiv, d.h. im Adressraum des Z9001 ist im Bereich C000-E7FFh der Inhalt dieser Bank zu sehen. Es ist immer nur genau eine Bank aktiv und nutzbar.
Physisch sind die Bänke auf die 5 ROMs wie folgt dargestellt verteilt. Jede Bank wird in 5 2K große Teile aufgeteilt und auf die 5 ROMs aufgesplittet.
(Beim Megamodul sind es nur 3 ROMs; 1+2 und 3+4 sind jeweils zusammen in einem 1-MByte-ROM enthalten. Ansonsten ist es das gleiche Verfahren)
Jeder ROM enthält jeweils 2K große Abschnitte aus ALLEN Bänken.
Wenn man selbst Software in das Mega-Flash-Modul integrieren will, muss man diese Aufteilung in 2K-Häppchen unbedingt beachten!