Navigationsprogramme mit dem Palm Pilot

Die ersten Programmierungen von Navigationsaufgaben begannen bereits während meines Studiums in der 80er Jahren auf meinem ersten PC mit einem 8080 Prozessor mit 640 kB RAM, 4,7 MHz Prozessortaktung und einer Festplatte mit 20 MB (von denen ich immer zugesehen habe, dass 5 MB frei bleiben).
Es war eines meiner ersten Projekte, als ich die Programmiersprache C lernte.

Bei meinen Kommilitonen fanden meine Programmierprojekte keinen Anklang. Sie kommentierten mit „So ein Quatsch, wie willst Du denn an Bord eines Schiffes oder gar einer Yacht einen PC betreiben? Das macht doch kein Mensch.“
Meine Kumpels waren wohl die Jünger von Ken Ohlsen, dem Gründer der Computerfirma Digital Equipment, der 1977 gesagt haben soll „Es gibt keinen Grund, warum irgendjemand einen Computer in seinem Haus haben wollen würde.“
Dumm, dass ich mich habe belehren lassen und die Programme erst mal ad acta gelegt habe.

Ende der 90er Jahre kam dann der Palm Pilot – ein „Personal Digital Assistant“ auf den Markt, der neben den Hauptanwendungen „Kontakte“ und „Kalender“ – wegen fehlender Mobolfunkanbindung spielte Mail keine Rolle – auch in C zu programmieren war.
Also musste so ein Ding her, und neben der Kabelgebundenen Synchronisierung meiner Kontakte und das Kalenders begann ich wieder, Navigationsprogramme in C zu programmieren.
Wir sind mittlerweile im neuen Jahrtausend angekommen, ich kann aber mit Fug und Recht von mir behaupten, dass ich seit 2000 „Mobile Programmierer“ bin.
In einem Gespräch mit einem jüngeren Entwickler-Kollegen musste ich mir sogar anhören „Das geht doch gar nicht, das iPhone wurde doch erst 2007 vorgestellt“.
Ja, es gab auch bereits eine Mobile Welt vor iOS und Android!

Wie hat man den Palm Pilot dann programmiert?

Als damaliger Java Programmierer lag es zu nächst nahe, mit einem Java Derivat zu beginnen. Einer der Vertreter war „Waba“ (https://wabasoft.com)
Waba kam Ende der 90er auf den Markt und hatte den Vorteil der Plattform-Unabhängigkeit.
Was heute iOS und Android sind, waren seinerzeit Palm OS und Windows CE. (daneben noch Blackberry, die aber in einer eigenen Welt lebten)
Dazu wurde eine WabaVM auf dem Device installiert und die Programme konnten darunter laufen – unterstützt wurden Java JDK 1.02, 1.1, 1.2 or 2.0.

Was für kleine Prototypen gut war, konnte sich jedoch in der Realität – insbesondere bei rechenintensiven Programmen – nicht durchsetzen. Die Performance machte der portablen Programmierung einen Strich durch die Rechnung.

Ich forschte weiter und konnte verschiedene Ansätze der Programmierung finden.
Die wichtigsten davon, die ich herausgefunden habe, sind:

  • C-Programmierung mit dem CodeWarrior
  • C-Programmierung mit dem GNU GCC-Compiler
  • Java-Entwicklung mit JUMP
  • Java-Entwicklung mit WABA
  • Assemblerprogrammierung mit ASDK
  • Proprietäre Entwicklung mit CASL
  • Basic-Programmierung mit CBasPad

Nach dem Herunterladen verschiedener Tools und rumprobieren habe ich mich dann doch auf den dornigen Weg der C-Programmierung begeben und den GNU-GCC-Compiler mit allen dazugehörigen Tools eingesetzt.

Zwischenzeitlich arbeitete ich auf einem Pentium II mit 233 Mhz unter Windows 95 und hatte folgenden TechStack im Einsatz:

  • GCC Compiler PRC Tools 2.0
  • Ressourcencompiler PILRC 2.5 b3
  • GUI-Builder Visual Form Designer VFDIDE
  • Palm SDK OS 3.1
  • Freeware Editor JFE
  • Unix Emulation Cygwin
  • Palm Emulator POSE 30a5

Damit begann ich, die ersten Navigationsprogramme für den Palm-Pilot zu programmieren:

  • Astronav – astronomische Navigation (allerdings nur mit Sonne und Fixsternen)
  • Terrnav – terrestrische Navigation mit Besteckrechnung und Großkreisrechnung