RISC OS für Nicht-RISC OS-ler

Nebenan auf meinem IT-Blog habe ich versucht, RISC OS für diejenigen zu erklären und zusammenzufassen, an denen unser phantastisches Lieblingsbetriebssystem bisher vorbeigegangen ist. Viel Spaß bei der Lektüre.

Frohes Fest und guten Rutsch

Ich wünsche allen Lesern des hubersn.RISC OS-Blogs ein Frohes Weihnachtsfest und einen guten Rutsch ins neue Jahr.

Ich hoffe, ich kann Qualität und Frequenz der Blogeinträge auch in 2015 halten oder sogar ausbauen. Mit dem Start als Neublogger in 2014 bin ich soweit ganz zufrieden, ich hoffe meine Leser sind es auch. Anregungen und Kritik gerne jederzeit per Kommentar oder per Mail.

ADFFS und JASPP – das JASPP-Forum ist endlich wieder da

Eines der Projekte in der RISC OS-Welt, die ich mit großer Aufmerksamkeit verfolge (aber leider wie üblich nichts außer moralischer Unterstützung beitrage) ist JASPP oder ausgeschrieben “Jon’s Archimedes Software Preservation Project”. Hüter des Projekts ist Jon Abbott, der mit ganz erstaunlicher Energie und viel Enthusiasmus hier an einigen Fronten kämpft und großartige Fortschritte erzielt hat, sowohl beim Kernpunkt “Preservation”, wo es ihm gelungen ist, eine ganze Reihe an alten Games sowohl zu konservieren als auch die Distributionsrechte zu erhalten, als auch bei den Tools rund um das Projekt. Ich halte es generell für wünschenswert, die alten Software-Schätze zu bewahren – und zwar in einem möglichst originalen und lauffähigen Zustand. Und wenn mein Lieblingsbetriebssystem dabei die Hauptrolle spielt, umso besser.

Die im Rahmen von JASPP von Jon entwickelte Software ADFFS ist ein ganz erstaunliches Tool. Ursprünglich entstanden als schmales Modul, um ein ADF-Floppy-Image als ADFS::0 im System zur Verfügung zu stellen (die Älteren unter uns erinnern sich: viele Spiele liefen damals nur direkt von der Original-Diskette), ist es inzwischen zu einem ausgewachsenen Emulator geworden, der es erlaubt, viele alte Spiele auf dem Raspberry Pi unfallfrei auszuführen. Wer ungefähr weiß, was sich alles zwischen RISC OS 3.1 und 5.xx geändert hat, wie unsauber die Spiele teilweise direkt auf Hardware und nichtdokumentierte Schnittstellen zugegriffen haben, dazu noch die Hardware-Unterschiede zwischen der guten alten Zeit des A310/A3000/A5000/A3010 und dem Raspberry Pi einschätzen kann, wird die Leistung von Jon mit großer Anerkennung zur Kenntnis nehmen.

Man kann den Fortschritt des Projekts sehr schön über das JASPP-Forum mitverfolgen, Jon postet hier regelmäßige Updates.

Man musste sich zuletzt etwas Sorgen machen, weil der zentrale Server des Forums die Grätsche gemacht hatte und Jon sich lange Zeit mit der Datenrettung desselben beschäftigen musste. Es scheint aber jetzt alles wieder da zu sein, was mich letztlich zu diesem Beitrag veranlasst hat.

Die ADFFS-Seite ist ein bisserl der Zeit hinterher – die dort verfügbare Release-Version 2.09 entspricht nicht dem letzten Stand der Dinge, die aktuellen Beta-Versionen finden sich im Forum verlinkt und sind deutlich leistungsfähiger.

Ich werde versuchen, in Zukunft regelmäßig über das Projekt und seine Fortschritte berichten, auch über interessante technische Details. Einen guten Überblick gibt eine Powerpoint-Präsentation von Jon.

Update: Früher hatte ich eine eigene Subdomain mit einer Redirection aufs Forum eingerichtet, um Firewall-Probleme zu umgehen, da das Forum ursprünglich nur über Port 9000 zu erreichen war. Inzwischen ist das Forum aber schön über HTTPS-Standard-Port verfügbar.

Neue Karten für RiscOSM

Neue Software für RISC OS, insbesondere im kommerziellen Bereich, ist heutzutage eher die Ausnahme als die Regel. Umso erfreulicher war die Veröffentlichung von RiscOSM von Sine Nomine Software im April diesen Jahres, quasi klassisch rechtzeitig zur Wakefield Show.

RiscOSM ist nicht etwa ein erneutes Beispiel für die fehlerhafte Groß-/Kleinschreibung von RISC OS, sondern steht für “Risc Open Street Map” und ist in der Lage, die Daten des OpenStreetMap-Projekts zu verarbeiten und zu visualisieren. Man kann auf den Karten Bookmarks setzen, die Kartenanzeige als Draw oder Sprite exportieren oder natürlich ausdrucken. Die Software wird fleißig weiterentwickelt, die neueste Version wurde Anfang Dezember veröffentlicht.

RiscOSM arbeitet nicht auf dem Urformat der OSM-Daten, sondern benötigt ein spezielles Format, das man mittels OSMConvert aus den originalen .osm.pbf-Daten erzeugen kann. Wie es sich für unsere Freunde von der Insel geziemt, liegt der Schwerpunkt natürlich auf den britischen Inseln.

Um auch Kontinentaleuropa zu versorgen, hat Raik Fischer mit Teilen seines RISC OS-Rechnerparks ein paar CPU-Zyklen verheizt, um das Kartenmaterial für Deutschland und Frankreich in Form zu bringen. Die Ergebnisse kann man von Raiks Internetpräsenz herunterladen. Eine schnelle Internetverbindung wäre ratsam, die Kartendaten für Deutschland bringen es auf nicht weniger als 1,5 GiB, Frankreich schlägt gar mit 1,9 GiB zu Buche.

Nach den Berichten von Raik scheint OSMConvert optimal geeignet für einen Zuverlässigkeits- und Performancetest von RISC OS-Hardware.

Die Geheimniskrämer von R-Comp

Vor wenigen Wochen fand die London RISC OS Show 2014 statt. Neue Hardware ist immer ein Messehighlight, und so überraschte R-Comp die RISC OS-Welt mit der Ankündigung des ARMini.MX, eines RISC OS-Rechners auf Basis eines Boards rund um den Freescale i.MX6. Nach dem BeagleBoard-xM-basierten ARMini  und dem PandaBoard ES-basierten ARMiniX also eine weitere “native” Hardware von R-Comp, die lange Zeit nur emulationsbasierte Hardware wie x86-Laptops mit VirtualAcorn verkauften.

Nun also ein i.MX6 inside. Keine schlechte Wahl, mit S-ATA und Gigabit Ethernet zusammen mit einem flotten Cortex-A9, dazu ein Batzen (2 GB) schnelles RAM (DDR3). Es gibt noch keinen Termin für die kommerzielle Verfügbarkeit, aber vertrauenswürdige Quellen sprechen von einem zuverlässigen und schnellen RISC OS-Rechner.

Die Frage ist, ob angesichts der anstehenden Cortex-A15-Hardware (IGEPv5 und BeagleBoard-X15) mit ähnlicher Ausstattung, aber deutlich mehr CPU-Power und zudem USB3 der ARMini.MX nicht zu spät kommt, zumal er zum üblichen R-Comp-Mondpreis angekündigt ist (700 UKP). Aber vielleicht werden die deutschen User ja wieder von a4com gerettet, die bekanntlich die vorgefertigten ARMini-Rechner an R-Comp liefern, selbst aber die Dinger als BIK (BeagleBoard in Kiste) und PIK (PandaBoard in Kiste) zu deutlich realistischeren Preisen anbieten.

Aber das sollte eigentlich nicht das Thema sein. Denn was wirklich nervt, ist die Geheimniskrämerei von R-Comp. Auch über einen Monat nach der Messe findet man im Internet nur das auf der Messe verteilte Leaflet als PDF mit spärlichen Infos über den ARMini.MX. Schaut man sich die R-Comp-Website an, wird es noch gruseliger – da wird immer noch WebsterXL angepriesen, schon zu Lebzeiten der schlechteste kommerziell erhältliche Browser. Auch wer schon einmal versucht hat herauszufinden, was denn Teil des “PandaLand Scheme” sein könnte, wird vergeblich suchen. Ebenso unklar sind Dinge wie das ARMiniX “extensively modified motherboard to provide additional RISC OS-specific features and functionality”.

Intransparenz kann viele Gründe haben. Das aktive Verstecken von Peinlichkeiten, die Faulheit ausreichende Infos zusammenzuschreiben, whatever. Ein gutes Licht wirft es jedenfalls nicht auf R-Comp. Das ist wirklich schade, denn R-Comp hat mit Produkten wie Messenger Pro, DataPower, Hermes oder UniPrint Maßstäbe gesetzt.

Star Fighter 3000 für alle zum Download

Es gab bekanntlich nicht besonders viele Spiele für RISC OS. In den goldenen Acorn-Jahren (ja, nur wenige haben damals geglaubt, man würde später über diese Zeit von den “goldenen Jahren” sprechen) Anfang der 90er, als man im Heimcomputerbereich mit dem A3000 und später dem A3010 beinahe dem Commodore Amiga Konkurrenz gemacht hätte, gab es mal eine kurze Zeit, als zumindest die großen Hits auf dem Amiga meistens durch die Firma Krisalis auf RISC OS portiert wurden. Battle Chess, Lotus Turbo Challenge II, Populous, Gods, Xenon II, James Pond, Sensible Soccer, Cannon Fodder, Zool, SWIV, Pac-Mania, Paradroid 2000, Sim City 2000, Lemmings und die Magnetic Scrolls-Adventures. Dazu wenige coole “Eigengewächse” wie Zarch, Conqueror, Arcturus, Aldebaran, Chocks Away, Spheres of Chaos und Stunt Racer 2000.

Bis dann – es muss 1994 gewesen sein – ein Spiel erschien, das die Latte wirklich hoch legte: die Macher von Chocks Away und Stunt Racer 2000 brachten Star Fighter 3000 heraus. Eine Art Action-Flugsimulator, wo man sich durch zig Levels kämpfte und durch Abschuss von Gebäuden und anderen Gegnern sich Geld erspielte, die man im Shop dann für coole neue Waffen oder andere Ausrüstung ausgeben konnte. Es war die Anfangszeit der 3D-Spiele, und Star Fighter 3000 war zum damaligen Zeitpunkt schlicht atemberaubend – wobei der Spielspaß der Optik in keiner Weise nachstand. Auch wenn das Andocken ans Mutterschiff schon für Fortgeschrittene war.

Folgerichtig war Star Fighter 3000 eins der wenigen Spiele, die unter RISC OS entstanden sind und danach auf andere Systeme portiert wurden – 3DO, Sega Saturn, Sony PlayStation. Wobei die 3DO-Version als die beste gilt und die PSX-Version als die schlechteste.

Jetzt die gute Nachricht: die aktualisierte Version (32bit-fähig, läuft auf praktisch jeder RISC OS-Hardware) ist nun für alle frei zum Download verfügbar. Chris Bazley hat seit 2000 kontinuierlich an Patches für SF3000 gearbeitet, um die Lauffähigkeit auf neuen RISC OS-Versionen sicherzustellen. Ab 2003 gab es dann die aktualisierte Version bei APDL für kleines Geld auf CD, seither läuft das Spiel auch im Fenster im Desktop.

Mehr zu Star Fighter 3000 kann man hier lesen.

BeagleBoard, The Next Generation: Das -X15

Vertrauenswürdige Quellen sprechen davon, dass im Februar 2015 die Jungs von BeagleBoard.org die nächste Stufe zünden: das BeagleBoard-X15. Basierend auf TIs AM5728 SoC, einem Dual-Core Cortex-A15 SoC mit USB3, eSATA und Gigabit Ethernet, soll es der legitime Nachfolger des altehrwürdigen BeagleBoard-xM werden, das es tatsächlich schon seit 2010 gibt.

RISC OS-technisch ist das originale BeagleBoard natürlich etwas Besonderes: mit ihm begann die RISC OS-Neuzeit, die erste Community-organisierte Portierung von RISC OS, der erste praktische Nachweis, dass das Open-Sourcing von RISC OS unter der Ägide von Castle und RISC OS Open Ltd. tatsächlich zu etwas außerordentlich Nützlichem für alle treuen RISC OS-Fans werden kann.

Gegenüber dem hier schon früher vorgestellten IGEPv5 dürfte das BeagleBoard-X15 drei entscheidende Vorteile haben: niedrigerer Preis, Gigabit Ethernet direkt statt über USB angebunden, und 3 echte USB3-Host-Anschlüsse statt einem USB3-OtG.

Neue PipeDream-Version veröffentlicht

Gestern wurde PipeDream 4.52/06 veröffentlicht. Seit etwa zwei Jahren sind nun PipeDream und Fireworkz als kostenlose Downloads verfügbar, früher wurden sie als kommerzielle Software für nicht gerade kleines Geld von Colton Software verkauft.

In meinen RISC OS-Anfangszeiten habe ich mal PipeDream 3 gekauft, aus zwei Gründen – es war die einzige Software, die integriert Textverarbeitung und Tabellenkalkulation anbot, und es gab eine deutsche Version – besonders letzteres war damals extrem selten, und damals war das irgendwie wichtig für mich (ich hatte auch einen der ersten deutschen A3000, mit einem an sich ganz gut übersetzten Handbuch, wäre da nicht der Schnitzer mit dem Anschluss für die 32 persönlichen Kopfhörern gewesen). Für viele Jahre habe ich damit alle meine Korrespondenz erledigt sowie Arbeiten für Schule und Uni geschrieben.

Meines Erachtens ist das Konzept von PipeDream auch heute noch interessant, wie es die Textverarbeitung mit der Tabellenkalkulation verknüpft. Nicht immer ergonomisch, aber zweifellos innovativ. Der Schwerpunkt liegt aber definitiv auf den Spreadsheet-Funktionalität.

Ich habe nie ganz überrissen, was die Detailunterschiede zwischen Fireworkz und PipeDream sind – offenbar sind sie groß genug, um beide Pakete weiter zu pflegen. Vielleicht sollte ich mir beide Pakete doch noch einmal genauer anschauen.

Von Fireworkz gibt es auch eine Version für Windows.

Die RISC OS memcpy()-Challenge

Jeffrey Lee hat im RISC OS Open-Forum zur memcpy()-Optimierung aufgerufen. Die bisherige Implementierung in der SharedCLibrary stammt aus 1991 und basiert auf Code von ARM Ltd. 1991 – das war zu Zeiten des ARM3, als die Caches noch klein, ausschließlich 1st level und Write-Through waren, man von 2nd level cache nur träumen konnte und sowas wie write buffering und write coalescing noch in weiter Ferne lagen.

Heute differieren die RISC OS-Plattformen deutlich stärker als damals. StrongARM, ARM11, XScale, Cortex-A8 und Cortex-A9 haben deutlich unterschiedliche Ansätze in punkto RAM-Anbindung. Es gibt gravierende Unterschiede bezüglich der Cache-Architektur, der Verfügbarkeit von Beschleunigern wie der XScale-DMA-Engine oder des NEON-Beschleunigers. Aligned- und Unaligned-Zugriffe haben unterschiedliche Performance-Charakteristiken, ebenso wie Zugriffe auf cached vs. uncached-Speicher. Dazu noch unterschiedliches Verhalten beim Überschreiten von Page-Grenzen.

Liebe Assembler-Frickler: das ist doch mal eine Challenge, wo die investierte Zeit gut angelegt ist. Die Speicherfunktionen in der SharedCLibrary würden bei signifikanten Verbesserungen für eine Beschleunigung von zig C-Anwendungen sorgen.

Zwei RISC OS-Legenden haben schon vorgelegt: Adrian Lees (Aemulor, Cino) und Ben Avison. Also, auf geht’s!

Tolle Tools – heute: Mauser

Heute will ich von einem ebenso kleinen wie unverzichtbaren Modul berichten, das die Mausbedienbarkeit von RISC OS auf einen ganz neuen Level hebt.

Mauser heißt das kleine Modul, Jörn Schröder hat es vor Urzeiten (1996) programmiert (ich habe insofern etwas dazu beigetragen, als ich es zur 32bit-Fähigkeit gepatcht habe), und trotz seiner überschaubaren Größe von 6332 Bytes (davon rund 2 KB Hilfetexte) strotzt es nur so vor Funktionalität. Mein Favorit: per Drag der mittleren Maustaste innerhalb eines Fensters kann man scrollen. Und zwar in beide Richtungen. Das spart unglaublich viele Mauswege zu den Scrollbars und tröstet über die in RISC OS eher sparsame Unterstützung des Mausrades hinweg. Drückt man gleichzeitig die linke oder rechte Maustaste, kann man das ganze Fenster bewegen – äquivalent also zu einem Drag der Fenstertitelleiste, wieder spart man Mauswege. Die Unterscheidung linke Maustaste (Fenster kommt in den Vordergrund) und rechte Maustaste (Fenster verbleibt in seiner Tiefe) ist selbstverständlich ebenso implementiert.

Ebenfalls unverzichtbar ist die Implementierung des “langen Doppelclicks”. Damit kann man Applications öffnen statt ausführen und Dateien in den Texteditor laden statt sie auszuführen. Für diese Funktionalität gibt es zig andere Module, aber wenn es das sowieso unverzichtbare Modul schon bietet…

Zusammen mit der rechten Strg-Taste kann man weiteren Schabernack treiben: mit Keypad-7 kann man den Mauszeiger auf horizontale Bewegungen einschränken, mit Keypad-9 auf vertikale. Nützlich wenn man in Draw mal schnell was ohne Gridlock zusammenzeichnet. Mit Keypad-2/4/6/8 simuliert man Mausbewegung, mit Keypad-1/3/5 die drei Maustasten.

Alternativ zu Mauser gibt es auch MouseAxess von Christian Flöter. Es wurden schon Maustooldiskussionen geführt, die durchaus den “mein-Editor-ist-besser-als-deiner” (ursprünglich als “vi vs Emacs” bekannt, in der RISC OS-Welt eher “Zap vs StrongEd”) Diskussionen das Wasser reichen können. Unnötig zu sagen, dass Mauser das deutlich überlegene Tool ist (Gruß an Stefan B. :-)).

Hier gibt es Mauser in der 32bit-Version zum Download. Das 26bit-Original gibt es natürlich noch auf dem FTP-Server der Uni Stuttgart, dem großen Archiv aus der guten alten Acorn-Zeit, passend zur Ära als PackDir-Archiv.