Wer sich etwas mit RISC OS beschäftigt, hat sicherlich schon von Problemen mit 26 und 32 Bit Programmen oder Rechnern gehört. Dieser Artikel versucht kurz und einfach zu erklären worum bei dieser 26 und 32 Bit Geschichte geht. Alle RISC OS Rechner sind 32 Bit Rechner, aber einige nutzen den 26 Bit und andere den 32 Bit Modus.
Da das Thema 26 und 32 Bit recht technisch ist, gibt es am Schluss des Artikels eine kurze Zusammenfassung für reine Anwender.
RISC OS wurde ursprünglich für Rechner mit der ARM2 CPU entwickelt. Acorn hat sich seinerzeit beim Design des ARM Prozessors dazu entschlossen den Programmzähler (PC) und das Statusregister (PSR) in einen einzigen 32 Bit Register (R15) zusammenzufassen. Ein Register ist ein schneller Speicherplatz innerhalb der CPU. Der Statusbereich des Registers ist acht Bit groß. Der Programmzähler ist 24 Bit breit. Zwei zusätzliche Adressbits des Programmzähler (entspricht 4 Byte beziehungsweise 32 Bit Speicher) sind immer Null und werden nicht im Register abgebildet. Folgerichtig hat der ARM2 und der ARM3 einen 26 Bit breiten Adressbus. Dies ist der Grund warum man bei ARM2 und ARM3 Computern von 26 Bit Rechnern spricht. Die Archimedes Rechner können nur sogenannte 26 Bit Programme ausführen.
Im Risc PC wird ein ARM610, ARM710 oder StrongARM eingesetzt. Diese Prozessoren unterstützen den 32 Bit Modus. Der Programmzähler (R15) und das Statusregister (CPSR) wurden in zwei 32 Bit breite Register getrennt. Das bedeutet, dass Programme inklusive dem Betriebssystem nun den Programmzähler und den Status in zwei verschiedene Register vorfindet. RISC OS selber konnte bei der Einführung des Risc PC nichts mit diesem 32 Bit Modus der CPU anfangen. Da aber die drei Prozessoren einen 26 Bit Kompabilitätsmodus haben, war es möglich das 26 Bit RISC OS und 26 Bit Programme auf dem Risc PC zu nutzen. Wenn alte Archimedes Programme nicht auf dem Risc PC laufen hat das Gründe die nichts mit der 26/32 Bit Geschichte zu tun haben. Der Risc PC und der A7000 (ARM7500) sind also aus RISC OS Sicht 26 Bit Rechner mit 32 Bit Fähigkeit. ARM Linux und NetBSD nutzen den 32 Bit Modus des Risc PC, aber Select 4 für den Risc PC nicht.
Ab dem ARM9 und dem XScale gibt es den 26 Bit Kompabilitätsmodus nicht mehr. Der IYONIX pc benutzt einen XScale als CPU und ist damit der erste RISC OS Rechner der nur den 32 Bit Modus unterstützt. Der A9home mit einen ARM9 ist der zweite. Beide Computer und alle späteren RISC OS Rechner benötigen ein sogenanntes 32 Bit Betriebssystem und sogenannte 32 Bit Programme. Das meint natürlich die Unterstützung des 32 Bit Modus, also die Berücksichtigung das sich der Programmzähler und das Statusregister in zwei verschiedenen Register befinden. Beim IYONIX pc wird RISC OS 5 und beim A9home RISC OS Adjust32 (4.42) eingesetzt. Auf beiden Rechnern sind somit viele alte Programme so nicht lauffähig, da sie für 26 Bit Rechner geschrieben beziehungsweise Übersetzt wurden.
Programme die in reinen BASIC geschrieben sind, sind davon in der Regel nicht betroffen. In C oder Assembler geschriebene Programme sind sehr wohl betroffen. Bei C Programme kann man meist die Programme durch kompilieren mit dem geeigneten Compiler 32 Bit-fähig machen. Mit diesen Compilern werden aber keine reinen 32 Bit Programme erzeugt, sondern 26/32 Bit-neutralen Kode. Damit laufen diese Programme zum Beispiel sowohl auf einen Risc PC und einen IYONIX pc. Bei Assembler Programmen sieht die Sache anders aus, da man dort den Programmkode händisch ändern muss. Dabei besteht die Arbeit im Herauszusuchen und den entsprechenden Ändern der problematischen Stellen im Programm. Als Unterstützung für Programmierer gibt es das kostenlose Programmen ARMalyser von David Ruck. Inzwischen sind viele, aber längst nicht alle alten Programme, 26/32 Bit-neutral geworden.
Um auf den IYONIX pc, A9home, BeagleBoard und so weiter doch alte 26 Bit Programme zu benutzen gibt es den Emulator Aemulor und Aemulor Pro. Ein Risc PC mit RISC OS Select 4 benötigt kein Emulator für 26 Bit Programme, da Select 4 für den Risc PC weiterhin ein 26 Bit RISC OS ist. Programmierer sollten spätestens seit der Einführung des IYONIX pc darauf achten, dass ihre Programme 26/32 Bit neutral sind. C Programmierer sollten entweder den Castle C/C++ oder den freien GCC Compiler benutzen. Verweise auf weitere Informationen findet man weiter unten.
Zusammenfassung:
Alle RISC OS Rechner sind 32 Bit Rechner. Aber Aufgrund des Designs der ARM Prozessoren der ersten Archimedes Rechner gibt es einen sogenannten 26 Bit Modus. Die Prozessoren im Risc PC haben den sogenannten 32 Bit Modus, unterstützen aber zusätzlich den alten 26 Bit Modus. Alle RISC OS Versionen für den Risc PC, inklusive Select, unterstützen nur den 26 Bit Modus. Deshalb kann man auf dem Risc PC 26 Bit Programme benutzen. Aber sollte RISC OS 5 auf dem Risc PC laufen, wird aus dem Risc PC dann eine 32 Bit Rechner. Die CPU des IYONIX pc, des A9home und des BeagleBoards unterstützen den 26 Bit Modus nicht. Diese Computer sind sogenannte 32 Bit Rechner und benötigt ein sogenanntes 32 Bit RISC OS (RISC OS 5, Adjust32 oder und die 32 Bit Version von Select) und sogenannte 32 Bit Programme. Die alten 26 Bit Programme laufen nativ auf dem IYONIX pc und A9home nicht. Viele alte 26 Bit Programme kann man aber über den 26 Bit Emulator Aemulor beziehungsweise Aemulor Pro benutzen. Neuere Programme sind 26/32 Bit neutral und laufen deshalb zum Beispiel auf dem Risc PC und dem IYONIX pc.
| Prozessor | 26/32 Bit | Rechner |
|---|---|---|
| ARM2, ARM3 | 26 Bit | Archimedes Reihe, z. B. A310, A440, A3000, A4000, A5000 |
| ARM610, ARM710, ARM7500, StrongARM | RISC OS: 26 Bit, ARM Linux und NetBSD: 32 Bit | Risc PC, A7000, RiscStation R7500, MicroDigital Omega usw. |
| XScale, ARM9, Cortex-A8 (OMAP3) | 32 Bit | IYONIX pc, A9home, BeagleBoard(-xM) usw. |
Weitere Ressourcen im Internet:
Weiter zu den Screenshots