Files
TerminalBasic/docs/ide-referenz.md

15 KiB
Raw Blame History

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. IDE, Formularvorschau und BASIC-Ausgabe verwenden dieselbe feste klassische RGB-Palette. Jede Farbe wird als 24-Bit-Vorder-/Hintergrundwert ausgegeben, unabhängig von TERM, COLORTERM, NO_COLOR oder der ANSI-Palette des Terminalprofils. Es gibt keinen Rückfall auf Index- oder Profilfarben. Die globale Terminalpalette wird nicht verändert; gespeichert werden weiterhin DOS-Farbnummern, und BASIC bestimmt seine eigenen ForeColor/BackColor-Werte.

Beispielwerte: Codehintergrund #0000AA, Codeschrift #AAAAAA, aktiver Titel #FFFFFF auf #AA00AA. DOS-Farbe 6 ist Braun (#AA5500). Fensterflächen werden vor dem Zeichnen geleert, damit Desktop-Füllzeichen und Inhalte verdeckter Fenster keine scheinbar helleren Hintergründe erzeugen.

Die Ausgabe setzt einen Terminalemulator mit 24-Bit-Farbunterstützung voraus. Fehlende RGB-Unterstützung bleibt ein offener Zielbefund. Transparenz, Farbfilter und Inaktivitätsdimmung sind nachgelagerte Emulatorfunktionen; sie werden für die visuelle Farbprüfung getrennt protokolliert.

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.

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-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-Kontrast
Code / Hilfelink 5,72:1
Aktiver Titel 6,38:1
Menü / Dialog / deaktivierter Text 9,04:1
Status / Werkzeuge 7,33:1
Auswahl 21,00:1
Linkfokus / Debugger 13,29:1
Breakpoint 7,75:1
Ausführung / Handle 19,69: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:

  1. 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.
  2. 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.
  3. Run-Menü einschließlich deaktiviertem Eintrag, Options→Display und einen Exportdialog mit ungültiger Eingabe öffnen. Erwartet: lesbare Mnemonics, Fokusfelder, deaktivierte Texte und Fehlerhinweise.
  4. 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.
  5. 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.
  6. Dieselben Ansichten mit absichtlich abweichender ANSI-Palette prüfen. RGB-Farben von IDE und BASIC-Ausgabe müssen stabil bleiben. Transparenz und Inaktivitätsdimmung getrennt ein-/ausschalten und Abweichungen als Emulatorverhalten dokumentieren. Auch ohne COLORTERM, mit TERM=vt100 und mit NO_COLOR=1 muss die Anwendung dieselben RGB-Werte ausgeben.
  7. 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,03 / Ctrl+Q,03). 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

  1. Menüstruktur, Tastenbelegung, Fensterverwaltung und Farbschema werden originalgetreu übernommen (inkl. Magenta-Titelleiste, Options→Display).
  2. Umgebung und Form Designer werden ein Prozess mit zwei Modi; der F12/Shift+F12-Wechsel bleibt erhalten.
  3. Zeilenweises Syntax-Checking mit Formatierung/Normalisierung ist Editor-Standard (abschaltbar wie im Vorbild).
  4. IDE-Lauf und tbc-Kompilat verhalten sich identisch (gleiche TBVM).
  5. MS-DOS-spezifische Toolbox-Controls (Dir/Drive/File List) werden als plattformneutrale Datei-Browser-Controls nachgebildet.
  6. 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).