# Globals: vmtHeaderSize, voXXXX, vsXXXX, wfXXXX, WindowColorItems, wnNoNumber, WordChars, WordRec, wpXXXX  (guide pp. 582–586)

Rust module(s): `src/validate.rs`, `src/window/window.rs`, `src/widgets/editor.rs`   |   magiblot: `include/tvision/validate.h`, `include/tvision/views.h`, `source/tvision/twindow.cpp`, `source/tvision/teditor.cpp`

| Guide entry | Pg | Bucket | Corr | Rust symbol / mapping | Doc | Notes |
|---|---|---|---|---|---|---|
| `vmtHeaderSize` (constant, `= 8`) | 582 | NOT-PORTED | — | — | N/A | Pascal/Borland OOP VMT internal offset used by the `Objects` stream machinery. No equivalent in Rust — the VMT concept and the TStreamable/TObject stream layout are both dropped (deviation D12). The value `8` was the Pascal virtual-method-table header size; it has no meaning in Rust's vtable model. |
| `voFill` ($0001) | 582 | EQUIVALENT | OK | `PXPictureValidator::auto_fill: bool` (field); `suppress_fill` param on `Validator::is_valid_input` | 3 | Verified in `src/validate.rs` (validate sweep): `is_valid_input` doc explains "MUTATES `s` in place", auto-fill semantics, `suppress_fill` parameter, and the while-typing vs commit distinction. `PXPictureValidator::new` doc explains the `auto_fill` constructor parameter with guidance on when to use it. Score 3. |
| `voTransfer` ($0002) | 582 | EQUIVALENT | OK | `Validator::transfer_get` / `transfer_set` trait methods; `RangeValidator::set_transfer(bool)` | 3 | Verified in `src/validate.rs` (validate sweep): `transfer_get` and `transfer_set` docs explain gather/scatter walks, when to override together, and the `None` default meaning "I don't transfer". Score 3. |
| `voReserved` ($00FC) | 582 | NOT-PORTED | — | — | N/A | Borland-reserved mask bits; no semantic content for user code. Not ported — Rust has no `Options` word, so these reserved bits have nowhere to live and no meaning to carry. |
| `vsOK` (0) | 583 | EQUIVALENT | OK | `Validator::is_status_ok() -> bool` (returns `true`) | 3 | Verified in `src/validate.rs` (validate sweep): `is_status_ok` default-impl doc explains "consulted when the field must commit", "base never enters non-OK status", and that `PXPictureValidator` overrides to report a malformed mask. Score 3. |
| `vsSyntax` (1) | 583 | EQUIVALENT | OK | `PXPictureValidator::is_status_ok() -> bool` (returns `false` when mask is malformed) | 3 | Verified in `src/validate.rs` (validate sweep): `PXPictureValidator::is_status_ok` override doc explains the syntax-probe behavior, and `PXPictureValidator::new` doc explains checking `is_status_ok()` after construction to detect a bad mask before field use. Score 3. |
| `wfMove` ($01) | 583 | EQUIVALENT | OK | `tv::WindowFlags { move: bool }` | 3 | Guide: window-flag bit meaning the window can be moved. Rust: `WindowFlags.r#move` bool (field named with raw identifier because `move` is a Rust keyword). Struct doc notes the keyword spelling. Known idiomatic mapping: flag word → struct-of-bools (deviation D5), documented via `# Turbo Vision heritage` section. |
| `wfGrow` ($02) | 583 | EQUIVALENT | OK | `tv::WindowFlags { grow: bool }` | 3 | Guide: window-flag bit meaning the window can be resized (has a grow icon). Rust: `WindowFlags.grow`. Same deviation D5 struct-of-bools mapping. |
| `wfClose` ($04) | 583 | EQUIVALENT | OK | `tv::WindowFlags { close: bool }` | 3 | Guide: window-flag bit meaning the window has a close icon. Rust: `WindowFlags.close`. Same deviation D5 struct-of-bools mapping. |
| `wfZoom` ($08) | 583 | EQUIVALENT | OK | `tv::WindowFlags { zoom: bool }` | 3 | Guide: window-flag bit meaning the window has a zoom icon. Rust: `WindowFlags.zoom`. Same deviation D5 struct-of-bools mapping. |
| `WindowColorItems` (function) | 583 | NOT-PORTED | — | — | N/A | C++ `ColorSel` unit function that builds a linked list of `TColorItem` records for window objects, used by the interactive colour-selector dialog (`TColorDialog`). The entire `TColorDialog` / `TColorGroup` / `TColorItem` colour-editor subsystem is not ported (it targets the built-in 16-colour EGA palette editor; deviation D7 replaces palette indexing with `Theme`/`Role`). No Rust analog exists — colour customisation routes through `Theme`, not a runtime colour-picker dialog. |
| `wnNoNumber` (constant, `= 0`) | 584 | EQUIVALENT | OK | `Window::new(…, number: i16)` with `number = 0` → `View::number() -> None`; `number_to_option(0) -> None` | 3 | Guide: sentinel value meaning the window is not numbered and cannot be selected by Alt+n. Rust: `Window.number: i16`; the private helper `number_to_option` maps `n <= 0` to `Option::None`; `View::number()` returns `None` for unnumbered windows. `Window::new` doc now explicitly documents that `number = 0` (the `wnNoNumber` sentinel) creates an unnumbered window, and explains the Alt-N selection mechanism for numbered windows. |
| `WordChars` (variable, `set of Char`) | 584 | EQUIVALENT | OK | `is_word_char(ch: u8) -> bool` + `get_char_type(ch: u8) -> u8` in `src/widgets/editor.rs` (private fns) | N/A | Guide: set of characters treated as word characters by the editor (digits, letters, underscore). Rust: private free functions — not public API. Both have one-line comments. Scored N/A per visibility policy. |
| `WordRec` (type, `record Lo, Hi: Byte`) | 584 | NOT-PORTED | — | — | N/A | Pascal utility type providing named access to the Lo and Hi bytes of a Word. Pure Pascal language artifact — Rust handles byte splitting with standard methods (`u16::to_le_bytes`, bit-shifting). No analog needed or ported. |
| `wpBlueWindow` (0) | 585 | EQUIVALENT | OK | `tv::WindowPalette::Blue` | 3 | Guide: palette selector meaning yellow-on-blue text window (the default). Rust: `WindowPalette::Blue` (the `#[default]` variant). Enum doc describes the colour mapping and the role family it selects. |
| `wpCyanWindow` (1) | 585 | EQUIVALENT | OK | `tv::WindowPalette::Cyan` | 3 | Guide: palette selector meaning blue-on-cyan window (e.g. for message windows). Rust: `WindowPalette::Cyan`. Enum variant doc names the `Role::FrameCyan*` family. |
| `wpGrayWindow` (2) | 585 | EQUIVALENT | OK | `tv::WindowPalette::Gray` | 3 | Guide: palette selector meaning black-on-gray window (dialog boxes). Rust: `WindowPalette::Gray`. Dialog constructor calls `set_palette(WindowPalette::Gray)`. Enum variant doc names `Role::FrameGray*`. |

## Summary

- PORTED: 0   EQUIVALENT: 13   NOT-PORTED: 4   MISSING: 0   UNSURE: 0
- SUSPECT: 0   |   doc<3 (public): 0   |   → concept: 0
- Pass 1 raised to score 3 (`src/window/window.rs`): `wnNoNumber`. Reclassified N/A-private: `WordChars`. Reconciliation pass: `voFill`/`voTransfer`/`vsOK`/`vsSyntax` all verified score-3 in `src/validate.rs` (validate sweep); re-scored to 3.
- Notable finding: The four NOT-PORTEDs (`vmtHeaderSize`, `voReserved`, `WindowColorItems`, `WordRec`) are all correct non-ports — Pascal VMT artifacts and the unported colour-editor subsystem.
