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 Schluß des Artikels eine kurze Zusamenfassung für reine Anwender.
RISC OS wurde ursprünglich für Rechner mit der ARM2 CPU entwickelt. Acorn hat sich seinerzeit 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 Adressebits des Programmzähler (entspricht 4 Byte bzw. 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, daß Programme incl. 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 tuen haben. Der Risc PC und der A7000 (ARM7500) sind also 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 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 oder alternativ die 32 Bit Version von RISC OS Select 4 eingesetzt. Auf beiden Rechnern sind somit viele alte Programme so nicht lauffähig, da sie für 26 Bit Rechner geschrieben bzw. Übersetzt wurden.
Programme die in reinen BASIC geschrieben sind, sind davon in der Regel nicht betroffen. In C oder Assember geschriebene Programme sind sehr wohl betroffen. Bei C Programme kann man meist die Programme durch kompilieren mit dem Castle C/C++ oder dem GCC 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 z. B. 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 muß. 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 und A9home 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, daß 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, incl. Select 4, unterstützen nur den 26 Bit Modus. Deshalb kann man auf dem Risc PC 26 Bit Programme benutzen. Die CPU des IYONIX pc und des A9home unterstützen den 26 Bit Modus nicht. Beide Computer sind sogenannte 32 Bit Rechner und benötigt ein sogenanntes 32 Bit RISC OS (RISC OS 5, Adjust32 und die 32 Bit Version von Select 4) 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 bzw. Aemulor Pro benutzen. Neuere Programme sind 26/32 Bit neutral und laufen deshalb z. B. 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 | 32 Bit | IYONIX pc, A9home |
Weitere Resourcen im Internet:
Weiter zu den Screenshots