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>
2.4 KiB
Dateiformate
Terminal Basic liest und schreibt die Textformate des Vorbilds, durchgängig in UTF-8 (Abweichung: das Vorbild nutzte die DOS-Codepage). Binäre „Fast-Load"-Varianten des Vorbilds sind Nicht-Ziel — nur Textformate.
Quelltext: .BAS
Reiner Text, eine Anweisung(sfolge) pro Zeile. Optionale Kopfzeilen der IDE
(DECLARE-Prototypen) werden beim Speichern erzeugt/aktualisiert.
Metabefehle in Kommentaren: '$INCLUDE: 'datei.bi', '$STATIC, '$DYNAMIC.
Formular: .FRM
Das Vorbild kannte zwei Speicherformate: binär („Fast load and save", Standard) und Text („Readable by other programs"). Terminal Basic implementiert nur das Textformat; das Binärformat ist Nicht-Ziel (FT.EXE des Vorbilds konvertierte zwischen beiden).
Textformat, zwei Abschnitte: Formular-Beschreibung, dann Code. Schema wie
beim Windows-Schwesterprodukt: VERSION-Zeile, verschachtelte
Begin <Klassenname> <Name> … End-Blöcke (Klassennamen siehe
forms-referenz.md), Eigenschaft = Wert-Zeilen. Der Parser des Vorbilds
akzeptiert Version 1.00 und 2.00 (Import aus dem Windows-Produkt via
Übersetzer).
VERSION 1.00
Begin Form Form1
Caption = "Beispiel"
Height = 15
Left = 10
Top = 4
Width = 50
Begin CommandButton cmdOK
Caption = "&OK"
Height = 1
Left = 18
Top = 11
Width = 10
End
End
SUB cmdOK_Click ()
UNLOAD Form1
END SUB
VERSION-Zeile, dann verschachtelteBegin <Typ> <Name> … End-Blöcke mitEigenschaft = Wert-Zeilen (Strings in"…").- Danach normaler BASIC-Code des Formular-Moduls.
- TODO: Ein wörtliches Original-Beispiel einer Text-
.FRMwar online nicht auffindbar (Beispieldateien des Originalpakets liegen alle binär vor). Exakte Serialisierung (Kopfzeile, Einrückung, welche Eigenschaften geschrieben werden) ist daher festzulegen: wir folgen dem Windows-1.0-Schema und dokumentieren unsere Fassung als Referenz.
Projekt: .MAK
Reine Textdatei ohne Kopfzeile, eine Projektdatei pro Zeile
(.BAS/.FRM; belegt durch die Originalbeispiele). Terminal Basic
akzeptiert zusätzlich Kommentarzeilen mit '.
Kompilat: .tbc (neu, eigenes Format)
Container für TBVM-Bytecode, Entwurf in tbvm-design.md.
tbdosc build erzeugt wahlweise .tbc oder ein eigenständiges Executable
(Runner + eingebettetes .tbc).