45 lines
2.6 KiB
Markdown
45 lines
2.6 KiB
Markdown
# 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.
|