# Befunde am öffentlichen VBDOS-Bestand Geprüft wurde `cout/vbdos` im Commit `1cdd2b32b829fe1721d0b6aecc433abc47a96fb6`. Maßgeblich waren die vorhandenen `.MAK`-Projekte; wo keines existiert, wurde die `.FRM` direkt verwendet. Jeder Eintrag bestand `tbc check` ohne Diagnose. Die Programme wurden anschließend in einem 100×30-Pseudoterminal gestartet und blieben nach dem Ende des Modulrumpfs bedienbar, bis ein Steuerelement das Formular schloss oder der Lauf bewusst abgebrochen wurde. | Programm | Check | Bediennachweis | |---|---:|---| | `graphics/graphics.mak` | 0 Diagnosen | Alt+X löst `cmdExit_Click` aus und entlädt das Formular | | `microsoft/check.mak` | 0 Diagnosen | Alt+F öffnet das Menü; X erreicht den Exit-/Speicherdialogpfad | | `microsoft/qlbview.mak` | 0 Diagnosen | Esc löst die Cancel-Schaltfläche aus und entlädt das Formular | | `microsoft/seek.mak` | 0 Diagnosen | Alt+X löst `cmdExit_Click` aus und entlädt das Formular | | `microsoft/spindemo.mak` | 0 Diagnosen | Tab und Pfeiltaste werden dem Text-/Spin-Steuerpfad zugestellt | | `microsoft/notepad.frm` | 0 Diagnosen | Alt+F öffnet das Menü; X löst `mnuFileExit_Click` aus | | `misc/mentors/mentors.frm` | 0 Diagnosen | Alt+F öffnet das Menü; X erreicht den Exit-/Speicherdialogpfad | ## Geschlossene Befunde - `.MAK`-Einträge, `$INCLUDE` und `RUN` werden relativ und DOS-großschreibungsunabhängig aufgelöst; mehrere Module und Formulare werden als gemeinsames Programm übersetzt. - Binärformular-P-Code behält Block- und Anweisungsgrenzen, numerische Suffixe, Record-/UDT-Ausdrücke und Control-Arrays korrekt bei. - Globale Arrays werden vor `Form_Load` initialisiert; `LEN(record)` liefert die feste Satzbreite. `INPUT$` liest auch Binärdateien. - `SCREEN.CONTROLPANEL(index)`, `CLIPBOARD` und `PRINTER` haben Laufzeitverhalten; die von Notepad verwendeten Common-Dialog-Deklarationen arbeiten über die vorhandenen Textdialoge. - Die nativen Controls `VSpin` und `HSpin` werden als bedienbares `Spin` importiert, einschließlich Wertgrenzen, Wiederholung und `Custom`-Ereignis. - `SCREEN` 0–13 sowie die im Grafikbeispiel verwendeten Anweisungen `LINE`, `PAINT` und `VIEW` zeichnen auf den Zellenpuffer. - Modellose Formulare halten nach dem Modulrumpf die VM-Ereignisschleife offen; Formularereignisse laufen auf derselben VM weiter, bis alle Formulare geschlossen sind. Derselbe Pfad funktioniert im Terminal und mit vorab eingelesener Pipe-Eingabe. Damit sind alle während dieses Kompatibilitätslaufs gefundenen Implementierungslücken geschlossen; es verbleibt kein dokumentierter oder umgangener Befund.