• SprPoP 0.8.3: DSS больше не крадёт скан-коды

    snark13 released this 2026-08-28 11:48:40 +03:00 | 70 commits to main since this release

    Корень залипания клавиш и несработавших нажатий: обработчик прерывания DSS
    (IM1 по 0x0038) первым делом зовёт KEYSCAN, а тот вычерпывает FIFO SIO.
    Наш трамплин проверял «есть ли байт» только на входе в прерывание, а хвост
    кадрового пути уходил в DSS — байт, прилетевший позже, доставался DSS без
    всякого Rx-overrun. Окно измерено в MAME: 738 тактов (~34 мкс) на каждом
    кадровом прерывании.

    Правка: пока raw-канал открыт, обработчик DSS не вызывается совсем
    (приватный RETI) — окно ровно ноль. Цена: на это время у DSS замирают
    опрос мыши и мигание текстового курсора.

    Проверено в MAME: до правки брейк на входе KEYSCAN срабатывал 50 раз в
    секунду, после — молчит; кража поймана «живьём» на старой сборке
    (DSS прочитал 0x74 при нашем pending=EXT).

    Downloads