Yamagi.org - Finger
04.06.2009
x49gp ist ein Emulator fuer die neueren Taschenrechner von HP. Er deckt alle auf ARM-Prozessoren basierende Modelle ab. Dies sind genauer der 49G, 49G+ und 50G. Streng genommen sind diese gar nicht ARM-basiert, denn auf der relativ starken Hardware mit dem ARM-Prozessor wird eine alte, bereits aus der HP-48 Serie bekannte Saturn-CPU emuliert. Auf dieser Emulation laeuft dann das CAS. Dies hat den Nachteil, dass ein grosser Teil der moeglichen Leistung verpufft. Der Vorteil ist, dass vorhandene HP-48 Emulatoren auch die neueren Modelle emulieren konnten, ist es dem CAS doch egal, ob es im Taschenrechner im Emulator oder auf dem Computer im Emulator laeuft. Also scheint alles gut zu sein. Es gibt bei dieser Loesung jedoch ein Problem und an dieser Stelle kommt x49gp ins Spiel. Diese neueren Taschenrechner erlauben es inoffiziell nativen, fuer ARM uebersetzten Code auszufuehren. Man kann also Programme in C schreiben und diese laufen dann auch in nativer Geschwindigkeit. Ein Saturn-Emulator kann diesen Code allerdings nicht ausfuehren, was das Entwickeln eklig macht. Man muss auf dem PC bauen, es auf den Taschenrechner transferieren, ausfuehren, etc. Debugger? Nur mit dem Kopf durch den Po. x49gp emuliert nun die ARM-Hardware, auf dieser wird das ROM des Taschenrechners ausgefuehrt. Also der Saturn-Emulator und in diesem das CAS. Man hat einen vollstaendigen Taschenrechner auf dem Desktop und kann in diesem wunderbar entwickeln. Diese Loesung zeigt aber auch, wie bescheuert HPs Ansatz ist. Der Emulator ist bei 3GHz nur knapp dreimal so schnell wie der native Taschenrechner, obwohl die Host-CPU noch locker Kapazitaeten haette. Es ist der Saturn-Emulator, der hier bremst. Oder anders gesagt, HP ist es zu teuer das CAS auf ARM zu portieren und es ist ebenfalls zu teuer den Saturn weiterzuentwickeln. Wie dem auch sei, ich habe x49gp auf FreeBSD portiert. Es war nicht so wahnsinnig schwer, nur dank der dreckigen Makefiles ein wenig frickelig. Das Ergebnis funktioniert einwandfrei, eine Anleitung oder einen Port baue ich in den naechsten Tagen. Hier erst einmal ein Screenshot
Vorheriger Beitrag | Home | Seite | Naechster Beitrag