# 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.

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).

## 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

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).
