16 KiB
IDE-Referenz Terminal Basic
Rekonstruierte UX-Spezifikation der IDE des Vorbilds (VBDOS 1.0, 1992) —
Grundlage für tb-ide (Phase 5). Quellen: Original-Hilfedatei (dekodiert),
README des Originalpakets, Screenshots (Pixelanalyse), Sekundärliteratur.
Konfidenz je Abschnitt vermerkt; TODO = offen. Konkrete Farbquellen und
Kontrastanpassungen: siehe Abschnitt 4a.
Die IDE besteht im Vorbild aus zwei Programmen: der Programmierumgebung und dem separaten Form Designer (eigene Menüleiste, Wechsel über „Event Procedures"/F12 bzw. View→Form). Terminal Basic bildet beides in einem Prozess ab, behält aber die zwei Modi mit identischer Bedienung.
1. Menüstruktur (Konfidenz: sicher)
Menüleiste der Umgebung: File Edit View Search Run Debug Options Window,
Help rechtsbündig. Form-Designer-Modus: File Edit View Tools Options
Window Help. ─── = Separator, • = Toggle-Markierung.
- File (Alt+F): New Project / Open Project… / Save Project ─── New Form / New Module… / Add File… / Remove File… / Save File / Save File As… ─── Load Text… / Save Text… ─── Print… / Shell ─── Exit Alt+F4
- Edit (Alt+E): Undo Ctrl+Z ─── Cut Ctrl+X / Copy Ctrl+C / Paste Ctrl+V / Clear Del ─── New Sub… / New Function… / Event Procedures… F12
- View (Alt+V): Code… F2 / Form… Shift+F12 ─── Next Statement / Output Screen F4 ─── Included File / •Included Lines (Designer-Modus: … ─ Menu Bar F10 / Grid Lines)
- Search (Alt+S): Find… / Selected Text Ctrl+\ / Repeat Last Find F3 / Change…
- Run (Alt+R): Start Shift+F5 / Restart / Continue F5 / Pause (Ctrl+Break) / Modify COMMAND$… ─── Make EXE File… / Make Library… ─── Set Start-up File…
- Debug (Alt+D): Add Watch… / Instant Watch… Shift+F9 / Watchpoint… / Delete Watch… / Delete All Watch ─── •Trace On / •History On ─── Toggle Breakpoint F9 / Clear All Breakpoints / •Break on Errors / Set Next Statement
- Options (Alt+O): Display… / Set Paths… / Right Mouse… / Save… / •Syntax Checking (Einstellungen persistent)
- Window (Alt+W): New Window / Arrange All ─── Calls / Debug / Help / Immediate / Output / Project ─── Liste offener Code-Fenster (• = aktiv) (Designer-Modus: Color Palette / Menu Design Window / Toolbox / Help / •Form: … )
- Help (Alt+H): Index / Contents ─── Keyboard ─── Topic: F1 / Using Help Shift+F1 / Tutorial ─── About…
Bedienung: Alt (oder F11) aktiviert die Menüleiste, hervorgehobene Buchstaben wählen, Esc bricht ab, „…" kündigt Dialog an.
2. Fensterverwaltung (Konfidenz: sicher)
- MDI-artig: alle Fenster/Dialoge sind Kinder der IDE-Fläche. Titelleiste mit Control-Menü-Box links, Minimieren/Maximieren rechts, Rahmen, Scrollbalken; Code-Fenster nummeriert („[1] Untitled").
- Tasten: F6/Ctrl+F6 nächstes, Shift+F6 vorheriges Fenster, Ctrl+F4 schließen, Ctrl+F7 verschieben, Ctrl+F8 Größe, Ctrl+F9 minimieren, Ctrl+F10 maximieren, Ctrl+F5 wiederherstellen, Alt+Minus Control-Menü; „Arrange All" kachelt.
- Project Window (Start: rechts angedockt): Buttons „Form"/„Code" (Enter öffnet, „Form" wechselt in den Designer) + Modulliste (.FRM/.BAS).
- Immediate Window über Alt+W,I — nicht permanent sichtbar (anders als QB).
- Debug Window (read-only: Watches/Watchpoints), Output Window (Ausgabebildschirm als Fenster; F4 = echter Vollbild-Output), Calls- und Help-Fenster.
3. Form Designer (Konfidenz: sicher)
- Toolbox links; Einträge: Check Box, Combo Box, Command Button, Dir List, Drive List, File List, Frame, HScrollBar, Label, List Box, Option Button, Picture Box, Text Box, Timer, VScrollBar (identisch als Tools-Menü).
- Platzieren: Doppelklick auf Toolbox-Eintrag oder Tool wählen + auf der Form aufziehen; Sizing Handles (■ an den Ecken); Verschieben per Drag. Tastatur: Pfeile = 1 Zelle verschieben, Ctrl+Pfeile = 5 Zellen, Shift+Pfeile = Größe, Tab/Shift+Tab = Control-Wechsel; Mehrfachauswahl mit Strg+Klick (nur Maus). Raster: View→Grid Lines.
- Properties Bar oben statt Eigenschaftsfenster:
Property: [Caption]↓ Value: […]↓ │ Spalte,Zeile │ BxH. F2 springt in die Value-Box; F10 toggelt Menüleiste ↔ Properties Bar (nur eine sichtbar). Keine Statuszeile im Designer. - Menu Design Window (Alt+W,M): Caption (
&= Access-Key,-= Separator), CtlName, Tag, Index; Checked/Enabled/Visible/Separator; Shortcut-Dropdown; Outlining-Buttons (Ebene/Reihenfolge, Einfügen, Löschen, Done). - Color Palette (Alt+W,C): ForeColor/BackColor wählen, Farbe per Drag auf die Form ziehen.
4. Farbschema (Konfidenz: sicher für belegte Elemente)
| Element | Farben (DOS-Palette) |
|---|---|
| Menüleiste | Schwarz (0) auf Hellgrau (7) |
| Desktop | Füllzeichen ▒, Hellgrau (7) auf Schwarz (0); Füllzeichen einstellbar |
| Code-Fenster | Hellgrau/Weiß auf Blau (1) |
| Titelleiste aktiv | Weiß (15) auf Magenta (5) — VBDOS-Spezifikum |
| Rahmen/Scrollbalken | Schwarz auf Hellgrau (7) |
| Project Window/Dialoge | Schwarz auf Hellgrau (7); Fokus-Button mit weißem Doppelrahmen; Deaktiviertes Dunkelgrau (8); Listenauswahl Weiß auf Schwarz |
| Statuszeile | Schwarz auf Cyan (3) |
Alles über Options→Display je „User-Interface Element" umkonfigurierbar (Fore-/Background aus 16 Farben, Desktop-Füllzeichen, Tabweite). Laufzeit-Defaults kompilierter Programme weichen ab (Titel Weiß auf Schwarz).
4a. Farbabbildung und Kontrast (Phase 6)
Die DOS-Farbnummern in Options→Display bleiben erhalten. Die IDE verwendet
bei COLORTERM=truecolor/24bit explizite RGB-Werte der klassischen
16-Farben-Palette; bei TERM=…256color feste Einträge im Farbwürfel und der
Graurampe außerhalb der ersten 16 ANSI-Farben. Ein generisches COLORTERM
verdeckt diese 256-Farben-Erkennung nicht. Auf Windows verwendet die IDE
zusätzlich die ANSI-Fähigkeitserkennung des vorhandenen Terminaladapters.
Die Erkennung erfolgt einmal pro Prozess; nach Profiländerungen neu starten.
Damit hängt das Standardtheme bei expliziter Farbausgabe nicht von einer
pastellfarbenen ANSI-Palette ab. Beispielwerte: Codehintergrund #0000AA,
Codeschrift #AAAAAA, aktiver Titel #FFFFFF auf #AA00AA. DOS-Farbe 6
ist Braun (#AA5500), nicht das frei konfigurierte ANSI-Gelb. Der
256-Farben-Fallback nähert diese Werte an (#0000AF, #A8A8A8, #AF00AF).
Die globale Terminalpalette wird nicht verändert. Unbekannte beziehungsweise
reine 16-Farb-Terminals verwenden weiterhin die ANSI-Zuordnung; dort ist ein
geeignetes Terminalprofil nötig. NO_COLOR, Transparenz, Farbfilter und
Inaktivitätsdimmung des Emulators können die Darstellung zusätzlich verändern;
die IDE überschreibt solche Benutzereinstellungen nicht.
Referenzfundstellen
Die folgenden Originalprogramm-Ansichten wurden am 07.09.2026 visuell abgeglichen; die Beschreibung des Archivs ist keine Quelle für die genaue Palette. Ansichten belegen Flächen und Rollen, keine heutige Terminalausgabe.
- Code View: Code, Run-Menü, Projekt und Status
- Form View: Designer, Properties, Werkzeuge und Palette
- About: Dialog, aktiver Titel und Fokusrahmen
| Rolle | Beobachtung im Vorbild | Terminal Basic / Anpassung |
|---|---|---|
| Code | Helle Schrift auf dunklem Blau | DOS 7 auf 1; Auswahl invertiert dasselbe Paar |
| Aktiver Titel / Dialogtitel | Weiß auf Magenta | DOS 15 auf 5; dunkles Magenta, kein Pastellrosa |
| Inaktives Projekt / Rahmen | Schwarz auf Grau | DOS 0 auf 7; aktive Fenster zusätzlich mit Doppelrahmen |
| Menü, Projekt, Dialog | Schwarz auf Grau; Auswahl hell auf Schwarz | DOS 0 auf 7, Auswahl 15 auf 0 |
| Status | Schwarz auf Cyan | DOS 0 auf 3 |
| Designer-Werkzeuge | Schwarz auf Cyan | DOS 0 auf 3 |
| Properties Bar | Helle Schrift auf Cyan | Bewusste Kontrastanpassung: Schwarz auf Cyan |
| Fokusrahmen und Sizing Handles | Teilweise Weiß auf Grau | Schwarzer Doppelrahmen; schwarze Handle-Zeichen auf Gelb |
| Deaktivierte Beschriftungen | Nicht ausreichend durch diese Ansichten belegt | Lesbares Schwarz auf Grau, Menüs zusätzlich × und kursiv |
| Hilfe und Debuggermarkierungen | In diesen Ansichten nicht belegt | Dunkelblaue Hilfetitel/Links auf Grau; Fokus Weiß auf Blau; Breakpoints Weiß auf Rot, Ausführungszeile Schwarz auf Gelb |
Die Standardpaare müssen bei RGB- und 256-Farben-Ausgabe mindestens 4,5:1 Textkontrast erreichen; notwendige nichttextuelle Fokusmarkierungen mindestens 3:1. Die Zelltests prüfen auch Rahmen und Handles auf mindestens 4,5:1 gegen ihren eigenen Hintergrund. Benutzerauswahl in Display bleibt frei; bestehende Optionsdateien werden nicht umgeschrieben. BASIC-Ausgabe und Formularvorschau behalten ihre programmbestimmten Farbattribute, während Designer-Werkzeuge und Handles die IDE-Farben verwenden.
Die sRGB-Kontrastberechnung ergibt für die wichtigsten Standardpaare:
| Rolle | RGB | 256 Farben |
|---|---|---|
| Code / Hilfelink | 5,72:1 | 5,45:1 |
| Aktiver Titel | 6,38:1 | 6,10:1 |
| Menü / Dialog / deaktivierter Text | 9,04:1 | 8,83:1 |
| Status / Werkzeuge | 7,33:1 | 7,75:1 |
| Auswahl | 21,00:1 | 21,00:1 |
| Linkfokus / Debugger | 13,29:1 | 12,97:1 |
| Breakpoint | 7,75:1 | 7,44:1 |
| Ausführung / Handle | 19,69:1 | 19,72:1 |
Prüffolge für Change 05
Je Pflichtzelle Windows amd64/Windows Terminal, macOS arm64/Terminal.app, Linux amd64/xterm, Linux amd64/VTE, Linux arm64/xterm und Linux arm64/VTE:
- Revision und Executable-Prüfsumme, OS-/Terminalversion, Profil,
TERM/COLORTERM,NO_COLOR, Transparenz und Dimmung protokollieren. Mit einem frischen Optionsverzeichnis sowie einer Kopie der vorhandenen Optionen prüfen; echte Benutzeroptionen dabei erhalten. tests/compat/datarohtext.basöffnen. Unmarkierten Editor und Ctrl+A-Auswahl erfassen, anschließend mit F6 ins Projekt wechseln. Erwartet: dunkles Blau, lesbare Auswahl, unterscheidbare aktive/inaktive Rahmen und Titel.- Run-Menü einschließlich deaktiviertem Eintrag, Options→Display und einen Exportdialog mit ungültiger Eingabe öffnen. Erwartet: lesbare Mnemonics, Fokusfelder, deaktivierte Texte und Fehlerhinweise.
- F1-Hilfe öffnen, mit Tab einen Link fokussieren. F9-Breakpoint setzen und mit F5 bis zum Halt laufen. Erwartet: lesbare Überschriften und Links, sichtbare Breakpoint-/Ausführungsmarkierungen.
- Neue Form anlegen, Toolbox und Palette öffnen, Control auswählen und Größe ändern. Erwartet: cyanfarbene Werkzeuge/Properties, lesbare 16 Farbbeschriftungen und Handles; ForeColor/BackColor der Vorschau bleiben unabhängig vom IDE-Theme.
- Dieselben Ansichten mit absichtlich abweichender ANSI-Palette prüfen. RGB-/256-Farben der IDE müssen stabil bleiben. Transparenz und Inaktivitätsdimmung getrennt ein-/ausschalten und Abweichungen als Emulatorverhalten dokumentieren. Für 16-Farb-Fallback das tatsächlich geeignete Profil und verbleibende Unterschiede festhalten.
- Options ändern, speichern und neu starten; Auswahl muss erhalten sein. IDE beenden: globale Palette und normale Shell-Anzeige müssen erhalten sein.
Pro Schritt Soll/Ist, Bild-/Transkriptbezug und gegebenenfalls Befund führen. Headless-Zelltests ersetzen diese visuellen Zielnachweise nicht. Die vollständige Matrix ist noch offen; die Originalansichten oben sind keine bestandenen TerminalBasic-Zielprüfungen.
5. Editor-Verhalten (Konfidenz: sicher; Keyword-Großschreibung: wahrscheinlich)
- Syntax Checking (Toggle, Standard an): beim Verlassen der Zeile wird geprüft (Fehlerdialog), formatiert (Leerzeichen, Keywords groß) und die Zeile sofort in ausführbare Form übersetzt. Für Terminal Basic heißt das: zeilenweise Inkrementalübersetzung ist Teil des Editors (passt zur Instant-Compile-Anforderung).
- DECLARE-Prototypen werden beim Speichern automatisch erzeugt; DEFtype-Zeilen werden automatisch in neue Prozeduren übernommen.
- Tastatur: CUA (Ctrl+X/C/V/Z, Einfg, Pos1/Ende) plus WordStar-Chords (Ctrl+Q…, Ctrl+Y Zeile löschen, Bookmarks Ctrl+K,0–3 / Ctrl+Q,0–3). Prozedurnavigation Shift+F2/Ctrl+F2.
6. Run/Debug-Tasten (Konfidenz: sicher)
Shift+F5 Start · F5 Continue · F4 Output-Screen-Toggle ·
F7 bis Cursor · F8 Single Step · F10 Procedure Step ·
F9 Breakpoint · Shift+F9 Instant Watch · Shift+F8/Shift+F10
History rückwärts/vorwärts (bei History On) · F12 Event Procedures.
Break-Modus: Immediate Window akzeptiert PRINT, Zuweisungen,
Prozeduraufrufe, ERROR n; „Set Next Statement" verlegt die Ausführung.
„Break on Errors" stoppt im Fehlerhandler.
7. Hilfe (Konfidenz: sicher)
F1 kontextsensitiv (auch rechte Maustaste, konfigurierbar),
Shift+F1 Using Help. Hyperlinks als ◄Thema►, Tab/Shift+Tab springt,
Enter folgt, Alt+F1 zurück (20 Ebenen), Ctrl+F1 nächstes Topic,
Esc schließt. Hilfe im eigenen Fenster; Index, Contents, Keyboard-Guide,
Tutorial. → Terminal Basic: Hilfeinhalt sind die Markdown-Dokumente aus
docs/ (Sprach- und Bibliotheksreferenz, Ist-Stand der Implementierung),
gerendert im Help-Fenster mit dynamischem Umbruch nach Fenstergröße;
Navigation wie im Vorbild (F1 kontextsensitiv, Tab/Enter, Alt+F1 zurück).
8. Statuszeile (Konfidenz: sicher; Caps/Num: unklar)
Unterste Zeile, Schwarz auf Cyan. Links kontextabhängige Shortcuts in
spitzen Klammern (<Shift+F1=Help> <F6=Window> <F2=Code> <F5=Run> <F8=Step>), per Mausklick auslösbar. Rechts Zeile:Spalte
(00001:001). TODO: Caps/Num-Anzeige.
9. Start (Konfidenz: wahrscheinlich)
„Log-On Screen" (Begrüßung, Version, Copyright), danach leeres Projekt: Code-Fenster „[1] Untitled", Project Window „Untitled". Kein Survival-Guide-Dialog, kein Easy/Full-Menüs-Konzept. TODO: Splash vs. Dialog.
10. Interpreter vs. Compiler (Konfidenz: sicher)
Die Umgebung führt P-Code-übersetzte Zeilen sofort aus; der separate
Compiler erzeugt native EXEs (wahlweise standalone oder mit Runtime-Modul).
Nur die Umgebung hat: Immediate Window, Watches/Watchpoints, Breakpoints,
Stepping, History-Trace, Set Next Statement, automatische Bereichs-/
Überlaufprüfungen. → Terminal Basic: tb (IDE) und tbc
(Standalone-Compiler) teilen sich dieselbe TBVM, damit es — anders als im
Vorbild — keine Verhaltensunterschiede zwischen IDE-Lauf und
kompiliertem Programm gibt (dokumentierte Abweichung, gewollt).
Übernahme-Entscheidungen für Terminal Basic
- Menüstruktur, Tastenbelegung, Fensterverwaltung und Farbschema werden originalgetreu übernommen (inkl. Magenta-Titelleiste, Options→Display).
- Umgebung und Form Designer werden ein Prozess mit zwei Modi; der F12/Shift+F12-Wechsel bleibt erhalten.
- Zeilenweises Syntax-Checking mit Formatierung/Normalisierung ist Editor-Standard (abschaltbar wie im Vorbild).
- IDE-Lauf und
tbc-Kompilat verhalten sich identisch (gleiche TBVM). - MS-DOS-spezifische Toolbox-Controls (Dir/Drive/File List) werden als plattformneutrale Datei-Browser-Controls nachgebildet.
- Dynamische Terminalgröße (2026-09-02): die IDE nutzt das gesamte Terminal — Desktop, Fensterverwaltung und Formulare passen sich an; Mindestgröße 80×25, darunter nur ein Hinweis (btop-artig).