Control-Menüs öffnen für alle Fensterarten am [≡]-Symbol des aktiven Fensters: eigener Auswahlzustand statt Kopplung an die Menüleiste, bevorzugt unter der Titelzeile, bei Platzmangel nach oben aufgeklappt, am rechten Rand nur so weit nach links wie nötig. Regressionstest über TestBackend für Code-, Projekt-, Output-, Immediate-, Debug- und Hilfefenster, maximiert, minimiert, Rand und Maus. Nebenbefunde der Windows-Testausführung: Temporärdatei vor sync_all schreibend öffnen (Zugriff verweigert), relative Projektverweise immer mit / schreiben, zeilenendenneutrale Vergleiche in Referenzmatrix-, Kompatibilitäts- und MAK-Beispieltests, DriveListBox-Zeichenbild plattformneutral. Korpus-Sollausgaben per .gitattributes auf LF. Specs ide-oberflaeche und ide-projekte synchronisiert, Change archiviert. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Terminal Basic
Version 1.0.0. Release-Pakete werden ausschließlich durch neue Tags
vX.Y.Z in Gitea Actions gebaut: Windows amd64 als .7z, macOS arm64 und
Linux amd64/arm64 als .tar.gz. Normale Commits und PRs starten keine CI.
Details zu Paketen und Freigabe: Distribution.
Eine plattformübergreifende Re-Imagination des letzten großen BASIC-Dialekts für DOS (1992) — Sprache, Laufzeitbibliothek, Forms-Engine und IDE — in Rust, mit Ratatui als Terminal-UI-Schicht.
Dieses Projekt ist eine unabhängige Neuentwicklung und steht in keiner Verbindung zu Microsoft. Produktnamen Dritter werden bewusst nicht verwendet.
Leitbild
Terminal Basic ist keine sklavische 1:1-Reimplementierung, sondern eine spirituelle Neuauflage: ein BASIC, mit dem man heute Terminal-Tools baut — CLI-Werkzeuge ebenso wie TUI-Anwendungen. Der Weg dorthin:
- Erst die Re-Imagination: gleiche UI/UX wie das Vorbild, gleicher Sprachstandard, gleiche Standardbibliothek. Wer das Vorbild kannte, fühlt sich sofort zu Hause; bestehende Programme laufen weitgehend unverändert.
- Dann die Anreicherung: über die Zeit kommen bewusst Elemente außerhalb des Vorbilds dazu (moderne Terminal-Fähigkeiten, Sprachkomfort, Bibliotheken). Erweiterungen sind additiv und brechen den Kernstandard nicht.
Wo Alt und Neu kollidieren, gewinnt die Plattform von heute — deshalb z. B. durchgängig UTF-8 statt Codepage 437 und keine Emulation von DOS-Hardware.
Ziele
- Volle Sprachkompatibilität: alle Sprachelemente des Dialekts —
Prozeduren (
SUB/FUNCTION), benutzerdefinierte Typen,GOSUB,ON ERROR/RESUME, Typ-Suffixe, feste und dynamische Arrays,PRINT USING,DATA/READusw. - Volle Library-Kompatibilität für die DOS-Oberflächenprogrammierung: die ereignisgesteuerte Forms-Engine mit allen Steuerelementen, Menüs, Maus- und Tastaturereignissen, nachgebildet auf einem emulierten Textbildschirm (16 Farben) über Ratatui. Bewusste Modernisierungen: durchgängig UTF-8/Unicode statt Codepage 437, und dynamische Terminalgröße statt festem 80×25 — IDE und erzeugte Programme passen sich der Fenstergröße an (Mindestgröße 80×25; darunter erscheint nur ein Hinweis, wie bei btop).
- Plattformübergreifend: läuft in Terminals unter Linux, macOS und Windows.
- Compiler + VM: der Compiler erzeugt Bytecode für eine eigene virtuelle Maschine (TBVM); die Abwägung der Runtime-Optionen ist in PLAN.md dokumentiert.
- IDE im Terminal: Nachbildung der klassischen DOS-IDE mit Editor, Formular-Designer, Direktfenster und Debugger.
Aufbau des Workspace
| Crate | Inhalt |
|---|---|
tb-frontend |
Lexer, Parser, AST, semantische Analyse |
tb-vm |
Bytecode-Format, Codegenerator, virtuelle Maschine (TBVM) |
tb-runtime |
Laufzeitbibliothek: Strings, Mathematik, Datei-E/A, Datum/Zeit, Fehlercodes |
tb-ui |
Textbildschirm-Emulation und Forms-Engine auf Ratatui |
tb-cli |
tbc: Standalone-Compiler — wandelt Quellen und Projekte in binäre Ergebnisse um |
tb-runner |
Gemeinsame CLI-Laufsteuerung und native Runtime-Vorlage tbrt |
tb-export |
Geprüfte Vorlagen, native Nutzlast und sichere Ausgabeveröffentlichung |
tb-ide |
tb: die integrierte Entwicklungsumgebung (TUI) zum Erstellen von Programmen |
Status
Projektrahmen. Die Implementierungs- und Explorationsschritte sind in PLAN.md beschrieben; dort wird der Fortschritt fortgeschrieben.
Bauen
cargo build
cargo run -p tb-cli # tbc — Standalone-Compiler
cargo run -p tb-ide # tb — IDE (TUI)
Benötigt wird nur eine aktuelle stabile Rust-Toolchain.
Die IDE-Bedienung beschreibt Menüs, Fenster, Speichern, Optionen und die Exportdialoge einschließlich ihres aktuellen Umsetzungsstands.
Native Programme lassen sich mit tbc build --exe aus vorgebauten Runtime-Vorlagen
erzeugen. Aufrufe, Zielvoraussetzungen und Abnahme: Native Executables.
Mit tbc build --library entstehen portable .tbl-Bibliotheken; tbc link
verbindet sie mit einem Hauptprojekt zu TBC oder einem Executable. Die IDE
nutzt denselben Dienst für Make Library und Make EXE, einschließlich
ungespeicherter Puffer, TBL-Projektmitgliedern und abbrechbarer Erzeugung.
Bibliotheksformat, Befehle und Abnahme.
Lizenz
MIT — siehe LICENSE.