Завершить разделение SDK и внешних проектов

This commit is contained in:
Александр Петров
2026-09-16 10:01:43 +03:00
parent 0e74aaa7ee
commit 2e7ffd64a4
1965 changed files with 373 additions and 201393 deletions
+5 -5
View File
@@ -269,7 +269,7 @@ tests/bgi_img.
колоночный accel-проход: STOP между чтением и записью позволяет безопасно
сменить Port_Y, промежуточный RAM-буфер не нужен). Копия = скролл + heal
цели (банк 0x50). Открывшуюся полосу |d| не заполняют — возвращают в
*dirty (NULL = не нужно). Пример: examples/scroll.
*dirty (NULL = не нужно). Пример: `../Examples/scroll`.
Для произвольных EMM-данных, которые затем маппятся в W0,
`gfx_w0_page_prepare(page)` устанавливает IRQ/NMI-стабы в `0x38/0x66` и
запоминает штатную DSS-страницу. `atlas_load()` вызывает её автоматически.
@@ -306,7 +306,7 @@ banked-функции; только volatile-глобалы и быстрая р
## <kbd_raw.h> — эксклюзивный raw-канал клавиатуры (вектор 0xFF, свой путь)
Мотивация — applications/PoP/docs/PORT_PLAN.md §2: ESTEX
Мотивация — `../Applications/PoP-Archive/docs/PORT_PLAN.md` §2: ESTEX
kbhit/getch/getkey/kbd_mod_state — событийные, без held-state для
обычных (не модификаторных) клавиш. Decode make/break (PS/2 Scan Code
Set 2: `0xF0` — префикс отпускания, `0xE0` — префикс расширенной
@@ -332,7 +332,7 @@ UP/DOWN/RIGHT — из этого сделан ОШИБОЧНЫЙ вывод «
нажать». На самом деле причина была в неудачном таймінге снимков
относительно дуги прыжка, а не в отсутствии сигнала. Подтверждено
брейкпоинтом в отладчике MAME (adress уровня приложения на входе в
код `jumping=1` в `applications/PoP/poc/poc.c`): `press_key('up')`
код `jumping=1` в `../Applications/PoP-Archive/poc/poc.c`): `press_key('up')`
ЧЕСТНО доходит до raw-декодера и триггерит код прыжка — брейкпоинт
сработал ровно один раз за одно удержание клавиши (это же заодно
подтвердило фикс двойного триггера через `up_prev` edge-detect в
@@ -373,7 +373,7 @@ FIFO SIO — 3 байта, и рассчитывать на «каждый ба
опрос луча, а это ~2/3 периода кадра. Проверено: 35 нажатий стрелки с
зажатым Shift → 35 дошедших make против 9 из 10 без хука. Остаточные
редкие потери возможны (пачка целиком внутри DI-окна одного accel-прохода);
полный протокол и что делать дальше — `applications/PoP/roomtest/TASKS_CLOSED.md`,
полный протокол и что делать дальше — `../Applications/PoP-Archive/roomtest/TASKS_CLOSED.md`,
задача KBD-1.
**ГЛАВНОЕ СЛЕДСТВИЕ:** пока `kbd_raw_open()` активен, `kbhit/getch/getkey/
@@ -387,7 +387,7 @@ MAME дёргает ОБЕ клавиатуры (PC ms_naturl + ZX-матриц
одновременно — наблюдался паразитный незатухающий бит от ZX-пути
(обычный код без EXT-префикса, застревал в DOWN) — не воспроизводится
на реальном сценарии (только PC/AT-клавиатура, без матрицы, см.
applications/PoP/docs/PORT_PLAN.md §2 — пользователь подтвердил, что
`../Applications/PoP-Archive/docs/PORT_PLAN.md` §2 — пользователь подтвердил, что
матрица на Sprinter давно не используется). Для будущих MAME-тестов
этой функции — бить только по `:kbd:ms_naturl:*`, не через
удобный `press_key` (или перепроверить точную семантику полей моста).