diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 19:44:10 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 19:44:10 +0300 |
| commit | 50a74cc0a64352a50dd1023d48d0f94a4eca9627 (patch) | |
| tree | feb0ca78eb84a3e58515ac3ad043c6ce2a76517a /docs/tomes | |
| parent | d31d1f8eab7a2c79e349748939de01895af5de7e (diff) | |
| download | fparkan-50a74cc0a64352a50dd1023d48d0f94a4eca9627.tar.xz fparkan-50a74cc0a64352a50dd1023d48d0f94a4eca9627.zip | |
feat(script): classify VM dispatch selectors
Diffstat (limited to 'docs/tomes')
| -rw-r--r-- | docs/tomes/06-behavior.md | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/docs/tomes/06-behavior.md b/docs/tomes/06-behavior.md index 5e0299e..ad1832c 100644 --- a/docs/tomes/06-behavior.md +++ b/docs/tomes/06-behavior.md @@ -143,6 +143,14 @@ references каждого record, жёстко ограничивает counts/a файла, но не таблица семантик: названия opcode/words появятся только после handler contracts и runtime traces. +Связь первого header word с dispatch теперь доказана статически: `ai.dll` +создаёт 73 handler pointers в известном порядке и копирует table без +перестановки. По всем 58 GOG packages первый word — индекс `0..72` либо +`0xffff_ffff` sentinel; `fparkan-script` отражает это как typed +`ScriptDispatchSelector`, сохраняя неожиданные значения `Unknown`. Первый +handler лишь инициирует execution context (`+0x50 = 1`); его gameplay meaning +пока не назван. + Безопасная runtime-модель: ```text |
