From 64b3563a0346e4fd8d7ff18333643792470cabe8 Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 1 Sep 2026 10:26:02 +0300 Subject: [PATCH] Revert TSU_SEN enable in text mode - no benefit, not worth the risk Uncommenting it in int_text_on didn't fix the mouse cursor clipping above the bottom panel (confirmed on hardware), and it was commented out in the original code for presumably a good reason. Not worth carrying an unexplained hardware-register change with zero upside. --- README.md | 3 +-- _spg/ZIFI/zifi.spg | Bin 43520 -> 43520 bytes zifi.asm | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index cee8415..47b20f7 100644 --- a/README.md +++ b/README.md @@ -46,8 +46,7 @@ AT+CIPSNTPTIME? — получить текущее врем **Мелкие исправления:** - перевёл обращение к порту `#EFF7` (общий системный регистр — управляет не только доступом к часам, но и видеорежимом/turbo/кэшем) на read-modify-write вместо прямой перезаписи всего байта, чтобы не сбивать остальные настройки; - исправил баг в разборе двузначного GMT-смещения из `zifi.ini` (например `+10`) — были перепутаны местами разряды; -- теперь DMA-очистка под индикатор громкости дожидается завершения перед тем, как CPU начинает рисовать поверх той же области (была гонка записи); -- включил в текстовом режиме (`int_text_on`) бит `TSU_SEN` (аппаратные спрайты TSU), который раньше был закомментирован — на всякий случай, чтобы курсор мыши мог отображаться и поверх текстовой области тоже. +- теперь DMA-очистка под индикатор громкости дожидается завершения перед тем, как CPU начинает рисовать поверх той же области (была гонка записи). **Известная нерешённая мелочь:** курсор мыши (аппаратный спрайт TSU) обрывается по фиксированной строке экрана прямо над нижней панелью управления — похоже на границу, завязанную на тайминг переключения видеорежима или на аппаратный бордюр, а не на что-то, что двигается вместе с содержимым панели. Я не нашёл способ поправить это без риска сломать что-то ещё, оставил как есть. diff --git a/_spg/ZIFI/zifi.spg b/_spg/ZIFI/zifi.spg index bd53871875741633619f8b0e17e2266420738e9d..9686c6c11491682c0ed7216f6c2e280faf83e140 100644 GIT binary patch delta 5696 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