Hubersn

RISC OS 5.28

RISC OS Open Ltd. hat die Verfügbarkeit der neuen als “stable” gekennzeichneten Version von unser aller Lieblingsbetriebssystem RISC OS verkündet. Die neue Nummer lautet 5.28 – RISC OS 5 wird ja seit einiger Zeit nach dem Schema “development – ungerade Zahlen, stable – gerade Zahlen” versioniert, die Entwicklungsversion ist also ab sofort 5.29.

Das wichtigste Feature von 5.28 ist natürlich die inzwischen stabile Unterstützung des nicht mehr ganz so neuen Raspberry Pi 4. Dafür war ein komplett neuer USB-Treiber und ein komplett neuer Ethernet-Treiber notwendig, sowie größere Umbauten beim Interrupt-Controller – der Pi 4 wurde nicht umsonst als das größte Update der Pi-Architektur bezeichnet. USB3-Unterstützung fehlt weiterhin, aber das muss wohl auf das große Update des USB-Stacks warten.

6 von 8 grundsätzlich unterstützten Plattformen kamen nun in den Genuss der “stable”-Version: Risc PC/A7000/IOMD-Plattformen (also auch RPCEmu), IYONIX pc, Titanium, OMAP3 (z.B. BeagleBoard), OMAP4 (z.B. PandaBoard) und die erwähnten Varianten des Raspberry Pi. Den “Cut” nicht geschafft haben die iMX6-Plattform (Wandboard) und die OMAP5-Plattform (IGEPv5), wobei es hauptsächlich an Kleinigkeiten und Unsauberkeiten scheitert, nicht an größeren Stabilitätsproblemen. R-Comp wird sicherlich für ARMX6 und mini.m, die ja prinzipiell auf der iMX6-Plattform basieren, zeitnah eine entsprechende stabile Version ausliefern.

Die Neuerungen im Feature-Bereich in RISC OS 5.28 sind eher übersichtlich für diejenigen, die regelmäßig die Entwicklungsversionen einspielen. Verbesserungen in !Paint, SLL/TLS-Modul im OS direkt integriert, anständige Clipboard-Unterstützung systemweit und auch in Eingabefeldern (und das war ein langer Kampf), dazu die Unterstützung von ARMv8-Opcodes im Assembler von BBC BASIC. Die vollständige Liste inklusive Links zu plattformspezifischen Anpassungen kann man hier sehen.

Evolution statt Revolution könnte man sagen. Wir wünschen uns für das nächste stabile Release die Integration des neuen sich in Entwicklung befindlichen TCP/IP-Stack bevorzugt inklusive WLAN-Unterstützung natürlich, ebenso ein Update des USB-Stack für die USB3-Unterstützung in Titanium und Pi 4. Fortschritte an der Dateisystemfront – vor allem die anständige Unterstützung von Partitionen – wären auch gerne gesehen, das würde die zukünftige Integration in Multi-Boot-Situationen z.B. beim Raspberry Pi erleichtern.

Tatsächlich stelle ich fest, dass die “Nightly Builds” von RISC OS 5 üblicherweise so stabil sind, dass ich regelmäßig aktualisiere, ohne jetzt groß auf die nächste “stable”-Version hinzufiebern. Aber für meine neuerlichen Bemühungen rund um CDVDBurn ist es natürlich gut, eine stabile Basis zu haben, damit das Testen etwas einfacher fällt und man mindestens für die ungeübten Benutzer einen guten Fallback hat.

CDVDBurn 3 Status-Update

Seit 2007 arbeite ich – mit schwankender Intensität, auch mal mit jahrelanger Pause bei der Codierung – an einem “großen” Update von CDVDBurn, das ich zunächst mal CDVDBurn 3 getauft habe – das originale CDVDBurn begann ja mit Version 2.00, als Kontinuität von CDBurn, das von 0.99 bis 1.64 versioniert daherkam.

Jetzt habe ich in den letzten Tagen ein wenig Aufwand investiert, um vor allem mal in der Breite USB-Laufwerke auf ARNX6, Raspberry Pi und Titanium zu testen. Und auf dem Raspberry Pi 4, bekanntlich der erste Cortex-A72 im RISC OS-Universum, zwar auch ARMv8 wie sein Vorgänger RPi 3, aber man weiß ja nie – auf dem RPi 3 hat es ja eine böse Überraschung gegeben, da wird man vorsichtig. Die gute Nachricht: tut bisher alles einwandfrei auf dem neuesten Pi, auch die RISC OS-Version scheint schon stabil. Famous last words…

Laufwerke, mit denen ich bisher getestet habe, allesamt USB-Modelle (also nicht S-ATA-mit-USB-Adapter):

  • Samsung DVD-Brenner
  • LG DVD-Brenner
  • Samsung BD-Brenner
  • LG BD-Brenner
  • Asus BD-Brenner
  • Pioneer BD-Brenner

Die schlechte Nachricht ist, dass keiner dieser Brenner “out-of-the-box” so gut funktionierte wie es mal die Lite-On-IDE-Brenner auf dem IYONIX pc und dem Risc PC taten. Die gute Nachricht ist, dass CDFS inzwischen fast problemlos mit allen Laufwerken funktioniert, ebenso der “Disc Extractor” von CDVDBurn. Und auch die Extraktion von Audio-Tracks ist problemlos.

Beim Schreiben war es dann ganz duster. Daten-CD war noch meistens funktionierend, Audio-CD im Track-at-once-Verfahren eher durchwachsen, Audio-CD im Disc-at-once-Verfahrung (genauer: Session-at-once) hat bei keinem dieser Brenner funktioniert.

Inzwischen konnte ich aber durch Anpassungen der Disc-at-once-Schreibroutine die Kompatibilität teilweise erhöhen, zumindest was die Asus- und die Samsung-Laufwerke angeht. Das fühlt sich fast wie ein Meilenstein an. Und ich konnte gleich eine Merkwürdigkeit fixen, wo trotz prinzipiell multitaskendem buffer-inspection-driven-writing mit Hourglass und partiellem single-tasking gearbeitet wurde.

Was ist noch zu tun? Mindestens die Prüfung von DVD+RW, DVD-RAM, DVD+R, BD-R und BD-RE, dann kann ich über ein initiales Release nachdenken. Ich fürchte, das wird die Liste der unterstützten Laufwerke weiter eindampfen. Ein Schwerpunkt bei den Laufwerken wird wohl Samsung sein (inzwischen “TSSTcorp” – “Toshiba Samsung Storage Technology”), weil sowohl R-Comp beim ARMX6 als auch Elesar beim Titanium diese Laufwerke standardmäßig verbauen.

Im Bereich “Kür” verbleiben dann: DVD-R (DL), DVD-RW, DVD+R DL, BD-R DL und XL, BD-RE DL, Titanium S-ATA, IYONIX IDE, S-ATA-Laufwerke an USB-S-ATA-Adapter, Performance-Verbesserungen (vor allem beim Disc Extractor), und natürlich die Verbesserung diverser UI-Nicklichkeiten, die die letzten Jahre unbeschadet überdauert haben. Aber diese Liste ist lang. Wobei man sich an UI-Hakeleien eher gewöhnen kann als an “brennt nicht”.

ADFFS 2.73 (auch via PackMan) verfügbar

Jon Abbott vom JASPP hat gestern die Verfügbarkeit von ADFFS 2.73 verkündet. Über ein Jahr hat es gedauert seit 2.72 das Licht der Welt erblickt hat. Und die detaillierte Liste der Änderungen ist demzufolge fast endlos, ich will nur einige wenige aufgreifen.

Hauptpunkt ist der aufgerüstete JIT für StrongARM-kompatiblen Code. Damit erreicht ADFFS in der Emulation für solchen Code nahezu die Originalgeschwindigkeit der Host-CPU. Beeindruckend. Wenn auch unklar, für welchen Anwendungsfall genau das jetzt unbedingt notwendig war, denn so ein Raspberry Pi war auch vorher schon allemal schnell genug, eins der ganz wenigen Spiele die einen StrongARM voraussetzten in akzeptabler Geschwindigkeit zu emulieren. Aber wer Jon kennt, weiß, was für ein Perfektionist er in solchen Dingen ist. Legendär sein Verbesserungsprojekt für Zarch, weiterhin Musterbeispiel und Benchmark zum Thema “was ist beim Reverse-Engineering möglich, wenn man sich nur lange genug reinfuchst”.

2.72 fügte die Lesemöglichkeit von DOS- und Atari-Floppyimages hinzu, 2.73 kann nun auch schreibenderweise zugreifen.

Zusammen mit den unzähligen Bugfixes ergibt sich eine doch überraschend große Menge an Spielen, die nun unter RISC OS 5 (also am besten auf dem Pi – Jon weist darauf hin, dass die OMAP-Plattformen derzeit ungetestet sind) funktionieren. Ich bin mir aber nicht ganz sicher, ob die Liste diesmal wirklich stimmt, denn einige waren schon bei 2.72 als “funktioniert” geführt. “FORAY!” von 1992 ist jedenfalls definitiv ein Neuzugang. Kennt allerdings auch keine Sau. Jon hat aber ein YouTube-Video davon produziert. OK, muss man auch nicht kennen nach dem ersten Eindruck.

SparkFS 1.46

David Pilling hat einen nicht unwichtigen Bug in SparkFS gefixed. Erstaunlich, dass nach all den Jahren hier immer noch Unschärfen auftreten, aber es ist ja immer ein gutes Zeichen, wenn Software fleißig auch in neuen Szenarien genutzt wird sowie Bugs gefixed werden – auch 28 Jahre nach dem ersten Release der Software.

Der Bug tritt auf, wenn sehr viele Archive gleichzeitig geöffnet sind – das kann z.B. passieren, wenn eine Suchsoftware über viele Archive läuft und auch – dank Image Filing System – deren Inhalte durchsucht.

Also: updaten. Die Read-Only-Version gibt es zum freien Download. Über die pillingsche Mailing-Liste haben die Nutzer der Vollversion auch einen Update-Link bekommen.

Die finale Nagel’sche Archive-Ausgabe

Vor einiger Zeit – genauer gesagt im März diesen Jahres – erreichte die RISC OS-Szene die betrübliche Nachricht vom Tode von Jim Nagel, Herausgeber der Archive (einem der ältesten Magazine rund um RISC OS, 20 Jahre lang ab 1987 (und damit sogar älter als RISC OS 2) von Paul Beverley herausgegeben und unter anderem bekannt für den “God Slot”) seit 2007 und damit auch schon 13 lange Jahre. Vorher hatte Jim die Acorn-Fahne im “Computer Shopper” hochgehalten, eines der größten IT-Magazine auf der Insel.

Wer es nicht weiß: Jim hatte Verwandschaft in Deutschland und tauchte unter anderem deshalb ab und an auf RISC OS-Treffen hierzulande auf. Ich habe ihn mal auf einem A.U.T.O in Wolfen getroffen und konnte mich länger mit ihm unterhalten – unsere Unterredungen auf Messen auf der Insel waren meist nur ganz kurz, weil er stets in journalistischer Mission unterwegs war. Ein stets angenehmer und sympathischer Zeitgenosse. Nicht zuletzt natürlich, weil er durchaus öfter lobende Worte zu CDBurn fand.

Zurück zur Archive. Nun hat der Rest der Nagel-Familie mit Jims Sohn Bart als Herausgeber die Ausgabe 24:6 fertiggestellt und zum Gedenken an Jim frei zum Download verfügbar gemacht – hier kann man das Exemplar vollständig als PDF in Augenschein nehmen.

Ab der kommenden Ausgabe 25:1 wird Gavin Smith die Archive weiterführen. Ich wünsche ihm alles Gute bei diesem Unterfangen, und möge er zukünftig die korrekte Groß-/Kleinschreibweise von “RISC OS” berücksichtigen, und möge das der einzige Bruch mit der Archive-Tradition sein.

RPCEmu für MacOS X

Für die Freunde des angebissenen Apfels aus Cupertino gibt es eine gute Nachricht: Timothy Coltman hat die Verfügbarkeit von RPCEmu 0.9.2 für Mac OS X verkündet. Binaries (DMGs 0 “Disc ImaGe”, wie sie im MacOS-Jargon heißen, quasi ein Anwendungs-Bundle in Form eines Mini-Festplattenimages) sind auf GitHub verfügbar, alle bekannten Probleme mit MacOS sollten damit behoben sein, von Tastaturproblemen (Low-Level-Gedöns in Qt, das nur unter Windows gut funktionierte) über die Netzwerkanbindung, den Follow-Host-Mouse-Modus bis zu einem alternativen Hotkey zum Verlassen des Fullscreen-Modes, damit die armen MacBook-Anwender auch vernünftig arbeiten können. Ein größeres gelöstes Problem war wohl der Recompiler, der aufgrund von verschärften Sicherheitsvorkehrungen in Mac OS X 10.13 aka “High Sierra” nicht mehr funktionierte.

Meines Wissens sind die Patches noch nicht zurück im Hauptentwicklungsrepo von RPCEmu angekommen, die Sourcen sind aber auch unter o.g. GitHub-Link verfügbar für die “ich compiliere selbst”-Fraktion.

Im Laufe der Diskussion hat Andrew Hodgkinson von ROOL, selbst Mac-User und Autor einiger Patches für RPCEmu, übrigens am Rand erwähnt, dass RISC OS 5.28 quasi in der Finalisierungsphase ist. Da 5.28 released werden sollte, sobald der RPi4-Support vollständig ist, ist das eine sehr gute Nachricht.

Frischfleisch: FontInfo von Anton Reiser

Anton “Toni” Reiser hat die Verfügbarkeit eines neuen Tools verkündet, und FontInfo ist der Name.

Der Name ist Programm: FontInfo zeigt allerhand nützliche Informationen zu beliebigen RISC OS Outline-Fonts an, und zwar auf Glyphen-Basis. Dazu zieht man entweder die Outline-Datei eines Fonts auf das FontInfo-Icon auf der Iconbar, oder man bedient sich des Menüs zur Auswahl eines beliebigen dem System bekannten Font. Es öffnet sich ein Übersichtsfenster aller Glyphen, die im jeweiligen Font definiert sind. Eine Glyphe kann dann zusätzlich per Click (Tipp: es gibt einen cleveren Unterschied zwischen Links- und Rechtsclick) im Detail inspiziert werden, mit verschiedenen Visualisierungsoptionen: nur die Outline oder “richtig” gefüllt, die Baseline, die Bounding Box, die Definition der Outline mit den Scaffolds und den Handles – eben alles, was so eine Glyphe im RISC OS-Fontmanager ausmacht. Zusätzlich können die Glyphen als Draw-Datei exportiert werden.

Auf der Fontebene gibt es zusätzliche Informationen zu den Unicode-Blocks, zu denen die Glyphen jeweils gehören. Klickt man einen Block an, werden die zugehörigen Glyphen farbig hinterlegt.

Vorsichtig, wie Toni ist, heißt die derzeitige Versionsnummer 0.02. Für dieses frühe Stadium macht das Tool aber schon einen sehr schicken Eindruck. Also: runterladen und Fonts inspizieren gehen.

GCC 8.2.0-Update

Im Oktober letzten Jahres hatte ich über erste Anzeichen auf eine baldige Verfügbarkeit von GCC 8.2.0 für unser aller Lieblingsbetriebssystem berichtet. Es gibt hier erfreuliche Fortschritte zu vermelden. Lee Noar ist fleißig am Werkeln und es steht nun ein experimenteller nativer Build zur Verfügung, sprich ein Compiler, der unter RISC OS selbst läuft und nicht nur als Crosscompiler unter Linux.

Allerdings gibt es noch einige Einschränkungen: GCC 8.2.0 kann noch keine Module erzeugen und ist zudem zwingend auf UnixLib angewiesen, compilieren und linken gegen die SharedCLibrary geht (noch?) nicht.

Auch das gute alte GNU Fortran, schon seit Urzeiten Teil von GCC, wurde der bekannten C/C++-Fraktion hinzugefügt. Zumindest “Hello World” war erfolgreich compilierbar, vermeldete die GCCSDK-Mailingliste. Mein unerschütterlicher Optimismus lässt mich auf einen aktuellen GNAT hoffen, aber da gibt es so oft Unpässlichkeiten generell auf ARM-Plattformen, dass es schon unverschämtes Glück wäre, wenn das was werden würde.

Wer es genauer wissen will, kann die Änderungen im GCCSDK-SVN verfolgen.

Aktueller Status RISC OS auf Raspberry Pi 4

Nachdem nun schon Aemulor in einer RPi 4-kompatiblen Version verfügbar ist, wie steht es derzeit denn um RISC OS selbst auf dieser vielversprechenden Plattform?

Zunächst eine kurze Zusammenfassung, warum man überhaupt einen RPi 4 haben will gegenüber einem seiner zahlreichen Vorgängern. Die CPU ist deutlich schneller, sowohl pro Takt als auch im Maximaltakt, und die Caches sind größer. Speicher ist deutlich schneller und bis zu 4 GiB groß (das vermutlich wichtigste Feature für die Linux-Jünger, und das vermutlich unwichtigste Feature für RISC OS-Nutzer). Gigabit Ethernet über einen schnellen internen Bus. USB3 über PCIe. Offizielle Unterstützung für 4K@60Hz-Bildschirmauflösung (früher war das eher Glücksache @30Hz). Dual-Head-Unterstützung.

Schon der derzeitige Zustand von RISC OS zeigt deutliche Fortschritte in den Benchmarks. Man darf sich also nicht nur auf theoretische Performancegewinne freuen, sondern tatsächlich auf spürbare Verbesserungen in der Praxis. Die CPU liegt auf einem Niveau mit den bisher schnellsten RISC OS-tauglichen Boards mit TI OMAP5 (Cortex-A15-Basis – Titanium und IGEPv5). An der Grafikbeschleunigung lässt sich sicher noch arbeiten, aber das ist “nur” eine Softwarefrage.

Und wie weit ist diese Praxis nun noch entfernt? Es fehlt prinzipiell an zwei Dingen: USB3 und Ethernet. D.h. man kann sich heute “from source” ein RPi 4-kompatibles ROM bauen, aber man muss Ethernet über das alte USB2.0 anbinden, ebenso wie zusätzliche Massenspeicher jenseits des microSD-Slots. Das ist aber nicht ganz einfach, weil alle “normalen” USB-Ports des Boards über den kombinierten USB3/USB2-Chip (VIA VL805) gehen, für den es eben noch keinen Treiber gibt. Das alte USB2.0 ist nur über den USB-C OTG verfügbar, über den auch die Stromversorgung normalerweise läuft. Deshalb sind bei der Inbetriebnahme noch ein paar Handstände vonnöten, beispielsweise indem man die GPIOs für die Stromversorgung nimmt und den USB-C stattdessen als USB-Port statt zur Stromversorgung.

Wer eher Code-affin ist, kann hier in Gitlab die Entwicklung nachverfolgen. Wer eher auf verständlichere Prosa setzt, verfolgt die Entwicklung im ROOL-Forum oder schaut sich den Port-Status im ROOL-Wiki an.

Bleibt noch die Frage: warum dauert es denn nun so lange? Da gibt es eine Vielzahl an Gründen. Beispielsweise hatte RISC OS bisher keinen XHCI-USB-Treiber (für USB3). Beispielsweise ist die Memory Map für die 4-GiB-Variante zu berücksichtigen (alle bisherigen 4 GiB-Plattformen hatten die “oberen” 2 GiB außerhalb des 4 GiB-Adressbereichs). Beispielsweise sind die Datenblätter bis heute nicht in der notwendigen Ausführlichkeit zu haben. Beispielsweise scheint es im PCIe-Bereich interessante Bugs in der Pi-Firmware gegeben zu haben. Selbst die Aktivierung des UARTs für serielles Debugging gestaltete sich als schwierig. Letztlich also eine ungewöhnliche Anzahl von nicklichen Detailproblemen, die dem geneigten Entwickler den Tag vermiesen. Aber wenn ich die Commits richtig deute, ist die Zielgerade nicht mehr weit entfernt.

Und dann wird es spannend, inwiefern RISC OS ebenfalls – vor allem in schlecht kühlbaren Gehäusen – in “thermal throttling”-Probleme laufen wird, die so manchem experimentierfreudigen RPi4-Besitzer fast schon klassisches PC-Feeling inklusive Lüfter eingebrockt hat. Gut gekühlt kann der RPi4 wohl durchaus 2 GHz und mehr ab, bei Einsatz aller 4 Cores. Ungekühlt in den üblichen beinahe dichten Plastikgehäusen könnte es eher schwierig werden mit den neuen Performance-Höhen.

Aemulor 2.53 verfügbar

Der erste Artikel im neuen Jahr erst Ende Februar. Schande über mich.

Adrian Lees hat die Verfügbarkeit der neuesten “Development Version” (also eine Testversion im weitesten Sinne) von Aemulor mit der schönen Versionsnummer 2.53 verkündet. Download wie immer hier.

Die große Neuigkeit ist die Verfügbarkeit einer Variante für den Raspberry Pi 4 (und das vor offiziellem Release der RISC OS-Version für diese Maschine!) und ggf. weitere Boards mit einem Cortex-A72 als ARM-Core. Ansonsten gab es kleinere UI-Verbesserungen und einfacherer Zugang zur Online-Dokumentation sowie etwas hilfreichere Fehlermeldungen beim Start der RPCEmu-Version in Verbindung mit ungepatchten RISC OS 5-Versionen. Wenn ich es richtig verfolgt habe, müssen die allerneuesten RISC OS 5.27-Varianten nicht mehr gepatcht werden.

Die Veröffentlichung von 2.51 hatte ich noch hier auf dem Schirm, aber 2.52 ist mir irgendwie durchgerutscht. Die damaligen Verbesserungen betrafen hauptsächlich Impression, sobald die upgedateten 32bit-Module wie GDraw und DitherExtend am Start waren anstatt der originalen 26bit-Varianten, um auf RGB-Zielsystemen wie Titanium und ARMbook stets korrekte Farben auf den Bildschirm zu bringen.

Und irgendwann schreibe ich auch noch einen Blogartikel über das RISC OS-Spriteformat und BGR-vs.-RGB. Versprochen.

In der Zwischenzeit: Happy Aemuloring!