From 7f8a37d22abbedf487666132a4857e13c213c944 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 31 Oct 2026 01:57:56 +0400 Subject: fix(script): read Init guards in native disk order --- docs/appendices/knowledge-boundaries.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'docs/appendices/knowledge-boundaries.md') diff --git a/docs/appendices/knowledge-boundaries.md b/docs/appendices/knowledge-boundaries.md index 29c9480..ee40121 100644 --- a/docs/appendices/knowledge-boundaries.md +++ b/docs/appendices/knowledge-boundaries.md @@ -141,11 +141,16 @@ Rust. продолжает работу. Rust моделирует числовую запись, а не это UI-предупреждение; на первом `FISTP qword` он явно завершает загрузку ошибкой для NaN, infinity и значений вне signed-qword диапазона. В первом событии `Init` Rust поддерживает -только action-форму `Handler(19)` (`control word` и `result reference` равны -`0xffffffff`). Неизвестная инструкция даёт `Unsupported` в preview, не применяя -накопленные частичные записи; при полной загрузке это ошибка. Это ограничение -Rust исполнителя, не правило оригинального dispatcher-а. Ошибочные ссылки и -типы остаются ошибками в обоих режимах. +только action-форму `Handler(19)`: в семи disk header words control находится в +`header_words[3]`, а result-save reference — в `header_words[1]`; для поддержанной +формы оба равны `0xffffffff`. Это подтверждается перестановкой записи в +`ai.dll!FUN_10011b20` (RVA `0x11b20`) и чтениями в исполнителе +`FUN_10012020` (RVA `0x12020`) той же GOG-сборки. `Handler(19)` (`FUN_1000aa38`, +RVA `0xaa38`) использует references `0..2`; `header_words[2]` его result-save +guard-ом не проверяется. Неизвестная инструкция даёт `Unsupported` в preview, +не применяя накопленные частичные записи; при полной загрузке это ошибка. Это +ограничение Rust исполнителя, не правило оригинального dispatcher-а. Ошибочные +ссылки и типы остаются ошибками в обоих режимах. Для GOG-сборки также найден статический host call path в `Init`. В `iron3d.dll!FUN_1005ff40` (RVA `0x5ff40`) одна ветвь сначала проходит записи -- cgit v1.2.3