Phase 3 (Kern): Laufzeitbibliothek, Bildschirm und Datei-E/A

Setzt den OpenSpec-Change phase-3-runtime-bildschirm um (77/77 Aufgaben).
Abdeckung laut Inventar: 195 implementiert, 37 offen, 53 Non-Feature.

Vollstaendigkeits-Inventar
- docs/inventar.md mit 285 Eintraegen aus den Themenlisten von
  bas7advr.hlp und qb45advr.hlp, je mit Status und Fundstelle
- crates/tb-frontend/tests/inventar.rs haelt die Tabelle in beide
  Richtungen gegen den Code; der Abdeckungsstand kann nicht veralten

Bruchschritt (Puffer, Host, Korpus)
- Cell/TextScreen ziehen ratatui-frei nach tb-runtime::screen; tb-ui
  behaelt Farbabbildung, Widget und den neuen Terminal-Host
- Host wechselt vom Zeichenstrom auf Anzeige des Zellenpuffers plus
  Ereignisse (Taste, Groessenaenderung, Abbruch)
- Korpusvergleich auf getrimmten Bildschirm-Snapshot; die acht
  bestehenden Sollausgaben blieben dabei unveraendert

Groessenunabhaengigkeit
- 80x25 ist nirgends mehr eine feste Grenze; Groessenaenderungen waehrend
  der Ausfuehrung werden zugestellt (Inhalt oben links erhalten, Cursor
  und VIEW PRINT geklemmt)
- Korpusnachweis: dasselbe Programm bei 80x25 und 120x40 mit je eigener
  Sollausgabe, plus ein Programm mit Groessenwechsel mitten im Lauf

Bibliothek
- Breite Unicode-Zeichen belegen zwei Zellen (Cursor, POS, Randumbruch)
- Bildschirm: CLS, COLOR, LOCATE, WIDTH, VIEW PRINT, SCREEN, CSRLIN, POS
- Tastatur: INKEY$, INPUT$, Funktionstasten-Makros (KEY n / LIST / ON)
- PRINT USING, LPRINT USING, FORMAT$, SetFormatCC
- Mathematik mit kompatiblem PRNG (gleiche Saat, gleiche Folge)
- Datum und Zeit mit Serienwerten ab 1899
- Finanzmathematik: FV#, PV#, Pmt#, IPmt#, PPmt#, NPer#, Rate#, NPV#,
  IRR#, MIRR#, SLN#, SYD#, DDB#
- Datei-E/A: sequenziell, RANDOM (Recordpuffer und UDT-Variablen),
  BINARY, FIELD/LSET/RSET, Statusfunktionen, Dateisystem, MK$/CV
- System: ENVIRON, FRE, CLEAR, TRON/TROFF, STACK, ERDEV, ERR-Anweisung

Altlasten aus Phase 2
- ON ERROR GOTO auf Modulebene ist aus Prozeduren ansprechbar
  (prozeduruebergreifender Fixup im Codegenerator)
- DATA behaelt seinen Rohtext (Gross-/Kleinschreibung, innerer Leerraum)
- Die vier TODO-verify-Zellen der Konvertierungsmatrix sind aufgeloest

Vom Inventar aufgedeckte Fehler
- Zwoelf Non-Features wies der Compiler entgegen der Phase-1-Spec nicht
  ab (CALLS, SSEG, POINT, VIEW, COM, PEN, STRIG, STICK, die
  String*-Routinen, LINE und OPEN "COMn:") -- geschlossen
- Drei Gruppen fehlten im urspruenglichen Umfang: Finanzmathematik,
  Record-Konvertierung, Rest der Dateisystemfunktionen
- bas7advr.hlp allein ist keine vollstaendige Quelle; das Inventar
  bildet die Vereinigung mit qb45advr.hlp

Neue Changes
- phase-3-isam: schliesst Phase 3 ab (Speicherschicht redb)
- phase-3-ortszeit: zieht die UTC-Abweichung zurueck

Neue Abhaengigkeit: unicode-width.
Dokumentiert: sprachreferenz.md und tbvm-design.md sind TODO-frei,
docs/bibliothek.md neu, PLAN.md fortgeschrieben.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-04 06:54:19 +02:00
parent a6f005d023
commit 52ccbb5848
94 changed files with 10421 additions and 792 deletions

312
docs/inventar.md Normal file
View File

@@ -0,0 +1,312 @@
# Vollständigkeits-Inventar
Sollseite der Leitplanke „Vollständigkeit ist das Soll": jedes in der
Original-Hilfe dokumentierte Sprachelement mit Abdeckungsstatus. Diese
Tabelle ist Abnahmekriterium für Phase 6 und wird vom Test
`inventar_stimmt_mit_code_ueberein` gegen den Code geprüft — sie kann
nicht falsch werden, ohne dass die Testsuite rot wird.
**Quellen.** `bas7advr` = Themenliste von `bas7advr.hlp` (BASIC 7
Advisor). `qb45advr` = Gegenprobe über `qb45advr.hlp`, nötig weil die
erste Liste nachweislich unvollständig ist. `sprachreferenz` =
docs/sprachreferenz.md für Elemente des Forms-Teils, die keine der beiden
Themenlisten führt. Erhebung siehe
`openspec/changes/phase-3-runtime-bildschirm/rohliste-original-hilfe.md`.
**Status.** `implementiert` = Frontend senkt ab und die Laufzeit führt
aus. `offen` = dokumentiert, noch nicht verfügbar; die Verwendung wird
namentlich abgewiesen. `Non-Feature` = abgelehnt, gelistet unter
„Abweichungen" der Sprachreferenz.
**Fundstelle.** Bei `implementiert` das Modul, bei `Non-Feature` der
Abschnitt der Sprachreferenz, bei `offen` ein Strich.
**Abdeckung.** implementiert 195 · offen 37 · Non-Feature 53 · gesamt 285
| Name | Art | Gruppe | Status | Fundstelle | Quelle |
|---|---|---|---|---|---|
| `CLS` | Anweisung | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `COLOR` | Anweisung | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `CSRLIN` | Funktion | Bildschirm | implementiert | tb-runtime::screen | qb45advr |
| `INPUT` | Anweisung | Bildschirm | implementiert | tb-vm::interp | bas7advr |
| `LINE INPUT` | Anweisung | Bildschirm | implementiert | tb-vm::interp | bas7advr |
| `LOCATE` | Anweisung | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `POS` | Funktion | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `PRINT` | Anweisung | Bildschirm | implementiert | tb-runtime::console | bas7advr |
| `SCREEN` | Anweisung | Bildschirm | implementiert | tb-runtime::builtins | bas7advr |
| `SCREEN` | Funktion | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `SPC` | Funktion | Bildschirm | implementiert | tb-runtime::console | bas7advr |
| `TAB` | Funktion | Bildschirm | implementiert | tb-runtime::console | bas7advr |
| `VIEW PRINT` | Anweisung | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `WIDTH` | Anweisung | Bildschirm | implementiert | tb-runtime::screen | bas7advr |
| `CHDIR` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CHDRIVE` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CLOSE` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CURDIR$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVC` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVD` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVDMBF` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVI` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVL` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVS` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `CVSMBF` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `DIR$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `EOF` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `FIELD` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `FILEATTR` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `FILES` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `FREEFILE` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `GET` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `INPUT #` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `KILL` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LINE INPUT #` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LOC` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LOCK` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LOF` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LPOS` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LPRINT` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LPRINT USING` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `LSET` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKC$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKD$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKDIR` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKDMBF$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKI$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKL$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKS$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `MKSMBF$` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `NAME` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `OPEN` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `PRINT #` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `PUT` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `RESET` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `RMDIR` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `RSET` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `SEEK` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `SEEK` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `SHELL` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `SHELL` | Funktion | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `UNLOCK` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `WRITE` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `WRITE #` | Anweisung | Datei-E/A | implementiert | tb-runtime::fileio | bas7advr |
| `DATE$` | Anweisung | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `DATE$` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | qb45advr |
| `DATESERIAL` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `DATEVALUE` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `DAY` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `HOUR` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `MINUTE` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `MONTH` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `NOW` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `SECOND` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `TIME$` | Anweisung | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `TIME$` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `TIMER` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `TIMESERIAL` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `TIMEVALUE` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `WEEKDAY` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `YEAR` | Funktion | Datum/Zeit | implementiert | tb-runtime::datetime | bas7advr |
| `COMMON` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `CONST` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `DATA` | Anweisung | Deklaration | implementiert | tb-vm::interp | bas7advr |
| `DEFtype` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `DIM` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `ERASE` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `LBOUND` | Funktion | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `LET` | Anweisung | Deklaration | implementiert | tb-vm::codegen | bas7advr |
| `OPTION BASE` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `READ` | Anweisung | Deklaration | implementiert | tb-vm::interp | bas7advr |
| `REDIM` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `REM` | Anweisung | Deklaration | implementiert | tb-frontend::lexer | bas7advr |
| `RESTORE` | Anweisung | Deklaration | implementiert | tb-vm::interp | bas7advr |
| `SHARED` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `STATIC` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `SWAP` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `TYPE` | Anweisung | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `UBOUND` | Funktion | Deklaration | implementiert | tb-frontend::sema | bas7advr |
| `DOEVENTS` | Funktion | Ereignisse | implementiert | tb-runtime::builtins | sprachreferenz |
| `EVENT` | Anweisung | Ereignisse | offen | - | bas7advr |
| `KEY (Ereignis)` | Anweisung | Ereignisse | offen | - | bas7advr |
| `ON KEY` | Anweisung | Ereignisse | offen | - | bas7advr |
| `ON PEN` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ON PLAY` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ON SIGNAL` | Anweisung | Ereignisse | offen | - | bas7advr |
| `ON STRIG` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ON TIMER` | Anweisung | Ereignisse | offen | - | bas7advr |
| `ON UEVENT` | Anweisung | Ereignisse | offen | - | bas7advr |
| `PEN` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PLAY (Ereignis)` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `SetUEvent` | Routine | Ereignisse | offen | - | bas7advr |
| `SIGNAL` | Anweisung | Ereignisse | offen | - | bas7advr |
| `STRIG` | Anweisung | Ereignisse | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `TIMER` | Anweisung | Ereignisse | offen | - | bas7advr |
| `UEVENT` | Anweisung | Ereignisse | offen | - | bas7advr |
| `ERL` | Funktion | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `ERR` | Anweisung | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `ERR` | Funktion | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `ERROR` | Anweisung | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `ON ERROR` | Anweisung | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `RESUME` | Anweisung | Fehlerbehandlung | implementiert | tb-vm::interp | bas7advr |
| `DDB#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `FV#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `IPMT#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `IRR#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `MIRR#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `NPER#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `NPV#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `PMT#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `PPMT#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `PV#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `RATE#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `SLN#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `SYD#` | Funktion | Finanzen | implementiert | tb-runtime::finanz | bas7advr |
| `FORMAT$` | Funktion | Formatierung | implementiert | tb-runtime::using | bas7advr |
| `PRINT USING` | Anweisung | Formatierung | implementiert | tb-runtime::using | bas7advr |
| `SetFormatCC` | Routine | Formatierung | implementiert | tb-runtime::using | bas7advr |
| `INPUTBOX$` | Funktion | Forms | offen | - | sprachreferenz |
| `MSGBOX` | Anweisung | Forms | offen | - | sprachreferenz |
| `MSGBOX` | Funktion | Forms | offen | - | sprachreferenz |
| `CIRCLE` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `DRAW` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `GET (Grafik)` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `LINE` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PAINT` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PALETTE` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PCOPY` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PMAP` | Funktion | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `POINT` | Funktion | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PRESET` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PSET` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PUT (Grafik)` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `VIEW` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `WINDOW` | Anweisung | Grafik | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ABSOLUTE` | Routine | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `BLOAD` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `BSAVE` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `DEF SEG` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `INP` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `INTERRUPT` | Routine | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `INTERRUPTX` | Routine | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `IOCTL` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `IOCTL$` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `OUT` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PEEK` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `PEN` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `POKE` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `STICK` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `STRIG` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `VARPTR` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `VARPTR$` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `VARSEG` | Funktion | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `WAIT` | Anweisung | Hardware | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `BEGINTRANS` | Anweisung | ISAM | offen | - | bas7advr |
| `BOF` | Funktion | ISAM | offen | - | bas7advr |
| `COMMITTRANS` | Anweisung | ISAM | offen | - | bas7advr |
| `CREATEINDEX` | Anweisung | ISAM | offen | - | bas7advr |
| `DELETE` | Anweisung | ISAM | offen | - | bas7advr |
| `DELETEINDEX` | Anweisung | ISAM | offen | - | bas7advr |
| `DELETETABLE` | Anweisung | ISAM | offen | - | bas7advr |
| `GETINDEX$` | Funktion | ISAM | offen | - | bas7advr |
| `INSERT` | Anweisung | ISAM | offen | - | bas7advr |
| `MOVEFIRST` | Anweisung | ISAM | offen | - | bas7advr |
| `MOVELAST` | Anweisung | ISAM | offen | - | bas7advr |
| `MOVENEXT` | Anweisung | ISAM | offen | - | bas7advr |
| `MOVEPREVIOUS` | Anweisung | ISAM | offen | - | bas7advr |
| `RETRIEVE` | Anweisung | ISAM | offen | - | bas7advr |
| `ROLLBACK` | Anweisung | ISAM | offen | - | bas7advr |
| `SAVEPOINT` | Funktion | ISAM | offen | - | bas7advr |
| `SEEKEQ` | Anweisung | ISAM | offen | - | bas7advr |
| `SEEKGE` | Anweisung | ISAM | offen | - | bas7advr |
| `SEEKGT` | Anweisung | ISAM | offen | - | bas7advr |
| `SETINDEX` | Anweisung | ISAM | offen | - | bas7advr |
| `SETMEM` | Funktion | ISAM | offen | - | bas7advr |
| `UPDATE` | Anweisung | ISAM | offen | - | bas7advr |
| `CALLS` | Anweisung | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `SADD` | Funktion | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `SSEG` | Funktion | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `SSEGADD` | Funktion | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `StringAddress` | Routine | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `StringAssign` | Routine | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `StringLength` | Routine | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `StringRelease` | Routine | Interlanguage | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `BEEP` | Anweisung | Klang | implementiert | tb-runtime::builtins | qb45advr |
| `PLAY` | Anweisung | Klang | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `SOUND` | Anweisung | Klang | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `COM` | Anweisung | Kommunikation | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ON COM` | Anweisung | Kommunikation | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `OPEN COM` | Anweisung | Kommunikation | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `ABS` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `ATN` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `CCUR` | Funktion | Mathematik | implementiert | tb-frontend::sema | bas7advr |
| `CDBL` | Funktion | Mathematik | implementiert | tb-frontend::sema | bas7advr |
| `CINT` | Funktion | Mathematik | implementiert | tb-frontend::sema | bas7advr |
| `CLNG` | Funktion | Mathematik | implementiert | tb-frontend::sema | bas7advr |
| `COS` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `CSNG` | Funktion | Mathematik | implementiert | tb-frontend::sema | bas7advr |
| `EXP` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `FIX` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `INT` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `LOG` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `RANDOMIZE` | Anweisung | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `RND` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `SGN` | Funktion | Mathematik | implementiert | tb-runtime::math | qb45advr |
| `SIN` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `SQR` | Funktion | Mathematik | implementiert | tb-runtime::math | qb45advr |
| `TAN` | Funktion | Mathematik | implementiert | tb-runtime::math | bas7advr |
| `$DYNAMIC` | Metabefehl | Metabefehl | implementiert | tb-frontend::lexer | bas7advr |
| `$INCLUDE` | Metabefehl | Metabefehl | offen | - | bas7advr |
| `$STATIC` | Metabefehl | Metabefehl | implementiert | tb-frontend::lexer | bas7advr |
| `CALL` | Anweisung | Prozeduren | implementiert | tb-frontend::sema | bas7advr |
| `DECLARE` | Anweisung | Prozeduren | implementiert | tb-frontend::sema | bas7advr |
| `DEF FN` | Anweisung | Prozeduren | implementiert | tb-vm::interp | bas7advr |
| `FUNCTION` | Anweisung | Prozeduren | implementiert | tb-frontend::sema | bas7advr |
| `SUB` | Anweisung | Prozeduren | implementiert | tb-frontend::sema | bas7advr |
| `DO...LOOP` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `END` | Anweisung | Steuerfluss | implementiert | tb-vm::interp | bas7advr |
| `EXIT` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `FOR...NEXT` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `GOSUB` | Anweisung | Steuerfluss | implementiert | tb-vm::interp | bas7advr |
| `GOTO` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `IF...THEN...ELSE` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `ON...GOSUB` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `ON...GOTO` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `RETURN` | Anweisung | Steuerfluss | implementiert | tb-vm::interp | bas7advr |
| `SELECT CASE` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `STOP` | Anweisung | Steuerfluss | implementiert | tb-vm::interp | bas7advr |
| `WHILE...WEND` | Anweisung | Steuerfluss | implementiert | tb-vm::codegen | bas7advr |
| `ASC` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `CHR$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `HEX$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `INSTR` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `LCASE$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `LEFT$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `LEN` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `LTRIM$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `MID$` | Anweisung | Strings | implementiert | tb-runtime::strings | bas7advr |
| `MID$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `OCT$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `RIGHT$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `RTRIM$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `SPACE$` | Funktion | Strings | implementiert | tb-runtime::strings | qb45advr |
| `STR$` | Funktion | Strings | implementiert | tb-runtime::format | bas7advr |
| `STRING$` | Funktion | Strings | implementiert | tb-runtime::strings | qb45advr |
| `UCASE$` | Funktion | Strings | implementiert | tb-runtime::strings | bas7advr |
| `VAL` | Funktion | Strings | implementiert | tb-runtime::format | bas7advr |
| `CHAIN` | Anweisung | System | Non-Feature | sprachreferenz.md#abweichungen | bas7advr |
| `CLEAR` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `COMMAND$` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `ENVIRON` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `ENVIRON$` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `ERDEV` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `ERDEV$` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `FRE` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `RUN` | Anweisung | System | offen | - | bas7advr |
| `SLEEP` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `STACK` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `STACK` | Funktion | System | implementiert | tb-runtime::builtins | bas7advr |
| `SYSTEM` | Anweisung | System | implementiert | tb-vm::interp | bas7advr |
| `TROFF` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `TRON` | Anweisung | System | implementiert | tb-runtime::builtins | bas7advr |
| `INKEY$` | Funktion | Tastatur | implementiert | tb-runtime::builtins | bas7advr |
| `INPUT$` | Funktion | Tastatur | implementiert | tb-runtime::builtins | bas7advr |
| `KEY` | Anweisung | Tastatur | implementiert | tb-runtime::builtins | bas7advr |