TriOS = Regime + Forth

Ein kleiner Etappensieg auf dem Weg zur Weltherrschaft: Ich habe PropForth in TriOS integriert. Klingt nicht sehr spektakulär, ist aber eine ziemlich coole Sache. Das Forth residiert dabei zusammen mit dem Loader im unteren EEPROM und ist somit sofort nach dem Einschalten des Gerätes nutzbar. Für die Nutzung von Forth ist es also nicht mehr nötig, einen ROM mit 64K zu verwenden.

Wie funktioniert’s?: Startet man den Hive, so meldet er sich ohne Bootverzögerung mit dem Prompt von Forth, wie sich das für einen richtigen Homecomputer gehört. Nun kann man lustig anfangen zu programmieren. Wie schon an anderer Stelle angedeutet, stehen im Forth schon die meisten Ressourcen des Hive zur Verfügung. Aber im Gegensatz zur normalen Version gibt es jetzt zusätzlich noch ein Treiber drv:ldr, hinter welchem sich der Loader für Spin-Objektdateien verbirgt. Dieser Loader kann mit drei Worten in Forthgesteuert werden:

  • (spin) – Startet ein Spincode im Heap, Dateiname wird per Zeiger übergeben; Beispiel: c“ reg.sys“ (spin) – startet Regime.
  • spin name – Startet den Spincode „name“ im Heap; Beispiel: spin sid1.bin – startet das Spinprogramm „sid1.bin“
  • regime – Startet die gewohnte CLI „Regime“ von TriOS.

Also einfach im Forth „regime“ eintippen und man landet in der TriOS-CLI. Und befindet man sich in Regime, so kann im Gegenzug mit dem Kommando „forth“ die integrierte Programmiersprache gestartet werden. Was noch fehlt, ist eine Parameterübergabe zwischen Regime und Forth, aber das ist nur eine Fleißaufgabe. Damit kann dann dann Forth direkt als Skriptsprache für Regime eingesetzt werden.

Zusätzlich habe ich den Spin-Loader überarbeitet: Er verwendet jetzt für den Ladevorgang die Blockfunktionen von Administra, wodurch sich die Ladezeit deutlich verringert. In Bellatrix kommt jetzt der neuen Multiscreen-Code vom Forth in TriOS zum Einsatz. Damit stehen nun drei getrennte Textscreens für die Programme zur Vefügung.

Noch eine Neuerung: Der initiale Bellatrix-Code wird jetzt direkt aus dem EEPROM geladen und nicht mehr aus der Datei „bel.sys“. Dadurch hat der Hive nun quasi keine fühlbare Bootzeit mehr – kommt halt alles aus dem ROM. Was noch fehlt, ist ein überarbeiteter PASM-Loader im Bellatrix-Code, um diesen zur Laufzeit auszutauschen. Genau daran arbeite ich momentan.

Was bringt’s nun?

  • Extrem kurze Bootzeit des Systems.
  • Eine in TriOS fest integrierte Programmiersprache, die dazu noch etwas schneller als Spin ist.
  • Eine Skriptsprache für Regime.
  • Mehrere Textscreens für Forth und Spin-Programme.
  • Spin und Forth kann auf einem Hive friedlich nebeneinander existieren. Je nach Vorliebe kann man nun sofort in Spin oder Forth programmieren und beide Welten miteinander mischen.
  • Der Hive kann jetzt unter TriOS ohne Host programmiert werden.

Ok, das erstmal zum aktuellen Stand der Dinge im TriOS.