MasterQ32

PandorOS

PandorOS war der Versuch, ein sehr einfaches OS zu basteln, was sich an das OS des TI-83+ anlehnt. Dies resultierte in einem System, welches als einzige Programm-Optionen einen einfachen Basic-Interpreter und zwei Editoren besitzt.

Zudem kann PandorOS mit einem einfachen, tar-ähnlichen Dateisystem umgehen, welches mit ATA/IDE-Geräten zusammen funktioniert.

Bedienkonzepte

PandorOS Shell

Die Shell des Betriebssystems ist eigentlich nur eine Live-Version des Basic-Interpreters. Hier können entweder einfache Berechnungen direkt ausgeführt werden oder aber Editoren geöffnet und Basic-Programme gestartet werden.

Text- und Hex-Editor

PandorOS bietet zu der Shell noch einen Editor für binäre Daten sowie einen für Text-Daten an. Der Text-Editor arbeitet zeilenbasiert, bedient sich aber sehr ähnlich zu einem modernen Texteditor wie NANO.

Der Hex-Editor ist wesentlich eingeschränkter als der Text-Editor und erlaubt keine Größenänderungen oder Neuanlegen von Dateien. Dafür kann man hier direkt die Bytes der Dateien bearbeiten und somit beispielsweise den Basic-Tokenizer auf Korrektheit prüfen.

Systemmenü

Das Systemmenü von PandorOS bietet jederzeit bei einer Eingabe Zugriff auf verschiedene Funktionen wie den Katalog und die Zeichentabelle.

Zudem können über diese Menü System-Eigenschaften verändert werden.

Der Katalog bietet eine Übersicht über alle verfügbaren Basic-Befehle mit einer kleinen Dokumentation zu dem Befehl inklusive Parameter-Beschreibungen und ähnlichem. Zudem können sowohl in der Shell als auch dem Texteditor direkt komplette Befehle aus dem Katalog übernommen werden und in die aktuelle Eingabe eingefügt.

Die Zeichentabelle bietet eine Übersicht über alle Zeichen des aktuellen Character Sets und erlaubt ähnlich dem Katalog eine direkte Einfügung des gewählten Zeichens in die aktuelle Eingabe.

PandorOS Basic

PandorOS Basic ist ein sehr einfacher, zeilenbasierter Basic-Dialekt, der stark an TI-Basic angelehnt ist.

Hierbei existieren nur einige, vordefinierte Variablen und feste Funktionen. Auf komplexere Codefluss-Elemente wurde zugunsten der Einfachheit der Ausführung verzichtet und es existieren nur Sprünge via Goto sowie bedingte Ausführung des nächsten Befehls mit If.

Die Zuweisung eines Ergebnisses einer Berechnung einer Variablen erfolgt mit einem -> anstelle, wie in vielen anderen Programmiersprachen, mit einem =. Dies ist eine von TI-Basic übernommene Eigenschaft, da es eine implizite Variable Ans gibt, welche das Ergebnis des zuletzt ausgewerteten Ausdrucks enthält.

LoadFS("ATA0.0")

"INIT.BAS" -> Str0

If Not Exists(Str0)
  Goto Create

Run(Str0)
Exit

Label Create
Print("Create '", Str0, "' in order to customize init sequence.")
Exit

Sourcecode

Das Projekt steht, wie die meisten anderen Projekte auch, auf GitHub in Sourcecode-Form zur Verfügung:
GitHub Repository

(Copyright © 2012-2017 Felix Queißner, Impressum)