Neueste FUZIX-Verbesserungen für den Amstrad CPC
In den letzten Monaten habe ich weiter an der FUZIX-Portierung für den Amstrad CPC gearbeitet. Ich plane zurzeit noch kein neues Release, da ich zuerst die Netzwerkunterstützung für das M4Board fertigstellen und stabilisieren möchte. Der aktuelle Repository-Zustand enthält jedoch bereits erhebliche Änderungen bei der Performance, der Konsole, den Speichermedien und der Hardware-Kompatibilität.
Wichtigste Änderungen:
Performance und System
Das Layout des virtuellen Terminals nutzt nun 80×25 Zeichen, zusammen mit einigen kleineren, damit verbundenen Verbesserungen.
Code, der vom System-Interrupt aufgerufen wird, springt jetzt nur noch während eines aktiven VSYNCs zu interrupt_high. Das reduziert die effektive Interrupt-Rate von 300 Hz auf 50 Hz, vermeidet Reentrancy-Probleme und verbessert die Gesamtperformance spürbar.
Die Routine ldir_far wurde optimiert und nutzt nun den Stack beim Verschieben von Daten zwischen Speicherseiten, was den Aufwand pro übertragenem Byte verringert.
Konsole und Video
Umfassende Überarbeitung des CPC-Konsolentreibers:
Unterstützung für vier TTYs.
Farbverwaltung.
Block-Cursor.
Korrektur bei der Darstellung von Zeichen mit Inverse-Attribut.
Ein fuzixcpc-Eintrag wurde zu termcap hinzugefügt. Dadurch können Anwendungen, die termcap nutzen, die Konsolenfähigkeiten des Amstrad CPC korrekt erkennen. Zudem wurden cpc-Glyphen für die ACS-Symbole definiert, damit Curses-Apps diese darstellen können.
Speichermedien und RTC
Ein M4Board-SD-Karten-Blockgerät wurde hinzugefügt.
Ein M4Board-Laufwerksgerät wurde implementiert, das auf einer Image-Datei basiert.
RTC-Unterstützung sowohl für das M4Board als auch für die Symbiface hinzugefügt.
Das CH376-Blockgerät wurde verbessert; es unterstützt nun USIfAC, ULIfAC und Albireo.
Die m4- und ch376-Blockgerätetreiber können jetzt die native FAT32-Schicht nutzen, um dateibasierte Disk-Images als Root-Gerät einzubinden.
Aktueller Status
Die Hauptaufgabe, die noch aussteht, ist die Fertigstellung der M4Board-Netzwerkunterstützung. Sobald das abgeschlossen und gründlich getestet ist, werde ich ein Release mit einer stabileren, eigenständigen Konfiguration und entsprechenden Disk-Images vorbereiten. Auch die Migration des Codes zur Kompilierung mit dem Fuzix Compiler Kit anstelle von SDCC steht noch auf der To-do-Liste.
In der Zwischenzeit kann jeder, der den aktuellen Entwicklungsstand ausprobieren möchte, diesen nach der Anleitung bauen, die salvogendut für den 1984-Emulator pflegt (danke @salvogendut!!):
Das Dokument erklärt die Build-Umgebung und den Workflow, die erforderlich sind, um die aktuelle CPC-Portierung von FUZIX für den 1984-Emulator zu kompilieren und auszuführen.