Files

2.6 KiB
Raw Permalink Blame History

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