aboutsummaryrefslogtreecommitdiff
path: root/docs/tomes/06-behavior.md
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 19:44:10 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 19:44:10 +0300
commit50a74cc0a64352a50dd1023d48d0f94a4eca9627 (patch)
treefeb0ca78eb84a3e58515ac3ad043c6ce2a76517a /docs/tomes/06-behavior.md
parentd31d1f8eab7a2c79e349748939de01895af5de7e (diff)
downloadfparkan-50a74cc0a64352a50dd1023d48d0f94a4eca9627.tar.xz
fparkan-50a74cc0a64352a50dd1023d48d0f94a4eca9627.zip
feat(script): classify VM dispatch selectors
Diffstat (limited to 'docs/tomes/06-behavior.md')
-rw-r--r--docs/tomes/06-behavior.md8
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