Files
TerminalBasic/docs/ide-referenz.md
Chili Palmer 31859d8041 Phase 0.1: Referenzen gegen Original-Dokumentation verifiziert
Drei parallele Recherchen ueber die Original-Hilfedateien des Vorbilds
(dos-help.soulsphere.org, dekodierte VBDOS.HLP, CONSTANT.BI, README der
Professional Edition) eingearbeitet:

- Sprachreferenz: OPTION EXPLICIT und ON [LOCAL] ERROR RESUME NEXT
  existieren; Zeilenfortsetzung mit Underscore; Literalregeln; Limits
  (40-Zeichen-Bezeichner, 60 Array-Dimensionen); Event-Traps inkl.
  UEVENT; PRINT-USING-Zeichen inkl. **$; native Datumsfunktionen (NOW,
  DATESERIAL, ...) und FORMAT$; MSGBOX/INPUTBOX$-Signaturen
- Forms-Referenz komplett neu: alle 16 Steuerelemente mit Eigenschaften/
  Methoden/Ereignissen, Default-Tabelle, SCREEN-Objekt inkl. ControlPanel,
  Koordinaten in Zellen (0-254), Modalitaet (SHOW 0/1), Menuesystem,
  Control-Arrays, Drag&Drop; keine Default-Eigenschaften
- Neue IDE-Referenz (docs/ide-referenz.md): Menuestruktur, Fenster-
  verwaltung, Form Designer, Farbschema, Tastenbelegung, Statuszeile
- Fehlerkatalog vervollstaendigt: ISAM 80-89 und Forms 260-480,
  Code-Typ auf u16 erweitert, Tests ergaenzt
- Dateiformate: .MAK-Format belegt, .FRM binaer/Text geklaert

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 17:15:32 +02:00

168 lines
9.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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** /
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,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: eigenes Hilfeformat, gleiche Navigation.
## 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: `tbdos` (IDE) und `tbdosc`
(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 `tbdosc`-Kompilat verhalten sich identisch (gleiche TBVM).
5. MS-DOS-spezifische Toolbox-Controls (Dir/Drive/File List) werden als
plattformneutrale Datei-Browser-Controls nachgebildet.