Benutzer-Werkzeuge

Webseiten-Werkzeuge


projects:gforth-android:start

Dies ist eine alte Version des Dokuments!


Gforth um Android in Forth zu programmieren

Ziel ist es, Gforth als Programmierumgebung für Android zu verwenden.

Stand der Dinge

  • Es gibt ein Gforth.apk, das man direkt ab Android 2.3 installieren kann
  • Das kann über OpenGL eine Terminal-Emulation zeigen oder einen Terminal-Server bedienen (in der Datei /sdcard/gforth/site-forth/starta.fs festgelegt)
  • Touchs werden auch schon erkannt, und der Menü-Button/Softkey togglet die Softwaretastatur

Beim ersten Mal Starten packt die App die Gforth-Dateien auf die SD-Karte aus. Das sind ein paar Megabyte, und dauert deshalb. Gforths Loader kann in dem Zustand noch nichts ausgeben, und auch nicht auf Eingaben reagieren, also einfach etwas Geduld. Wenn er fertig ist, wird das OpenGL-Terminal gestartet.

Das Terminal verwendet einen Fragment Shader, der weitgehend selbständig ein farbiges ASCII-Terminal realisiert - es bekommt dazu zwei Texturen, eine mit dem Zeichensatz, die andere mit Zeichen und Farbinformationen. Da dauert dann das Update des Terminal-Screens nur einige Millisekunden - so wie früher auch.

Historie

Zunächst konnte man Gforth als Terminal-Programm in der KBOX benutzen. Das ist eine Mini-Linux-Distribution in einem Androidterm, die auch Debian-Pakete nachinstallieren kann (aber nicht wieder löschen… falls man eine neue Gforth-Version installieren will, muss man die ganze KBOX deinstallieren und wieder installieren).

Gforth installiert seine Daten auf der SD-Karte, nur die Binaries werden in der KBOX installiert. Als Tastatur empfehle ich das GO Keyboard, weil das auch einen Block mit Cursortasten und anderen Sondertasten hat, die sehr nützlich sind.

Zunächst installiert man also die KBOX. Man erhält dann auf der SD-Karte unter kbox_home/app_<nummer> ein Home-Verzeichnis. Darin kopiert man den aktuellen Gforth-Android-Snapshot. Danach startet man das KBOX-Terminal, und gibt folgende Kommandos ein:

ln -s /sdcard $KBOX
dpkg -i gforth_0.7.9-20120627_arm.deb
gforthmi --system

Wenn alles geklappt hat, kann man jetzt mit gforth Gforth starten.

Bekannte Probleme (Historie)

  • Auf Android 2.3 kann man einen SIGSEGV anscheinend nur einmal abfangen. Andere Signale (Floating Point Exceptions) gehen öfter.
  • Das Herunterladen der Debian-Datei mit dem Smartphone selbst scheitert bei Googles Browser am unbekannten Dateityp - mit dem von mir benutzen Dolphin Browser gibt's dieses Problem nicht. Wir haben uns beim „Install Fest“ mit Übertragung via Bluetooth geholfen.
  • Die Variante des Android-Terminals, die in der KBOX verwendet wird, hat nur eine Fontgröße. Die Änderung der Einstellung bewirkt nichts.
  • dpkg -r gforth führt in der KBOX zu einem Segfault, d.h. um eine neue Version zu installieren, muss man auch die ganze KBOX deinstallieren (sie nennt sich „Terminal Emulator“). Am besten man schreibt die von Gforth durchzuführenden Schritte in eine Datei gf im Home-Verzeichnis der KBOX, und führt die beim Neuinstalieren mit bash gf aus (executable kann man sie nicht machen, weil das auf dem SDCARD-Dateisystem FAT32 nicht geht).
  • Die KBOX ließ sich auf dem billigen Huawei-Androiden nicht installieren, auf dem Galaxy S2 und auf Motorola Defy+ gibt's keine Probleme
  • Die KBOX läuft erst ab Android 2.3
projects/gforth-android/start.1370546861.txt.gz · Zuletzt geändert: 2013-06-06 22:00 (Externe Bearbeitung)