# 12. Баги BIOS, DSS и железа Sp2000 ## 12.1 DRV_VERIFY (54h) не существует Функция `54h DRV_VERIFY` описана во всей документации BIOS, но в реальности отсутствует — всегда возвращает CF=1. > [bugs.txt:58–59]: «Нет биосной функции "54h" (DRV_VERIFY) верификации секторов, описанной в документации. Поэтому она всегда возвращает установленный флаг "Carry".» Источники, содержащие описание несуществующей функции: - [BIOS_v3.txt:258–261] - [IvanMak.txt:2198–2210] ## 12.2 AY-3-8910 — ошибка в формирователе огибающей Третья версия AY в ППЛМ Sp2000 содержит ошибку в схеме формирователя огибающей (envelope generator). Детали не документированы. > [IvanMak.txt:224–229]: «Третья версия схемы AY ... включает в себя ... генератор огибающей. ... В схеме формирователя огибающей обнаружена небольшая ошибка. ... В следующей версии AY предполагается данный недостаток исключить.» ## 12.3 Акселератор — конфликт с прерываниями При работе акселератора система команд Z80 сильно меняется, что может приводить к сбоям в обработчиках прерываний. > [IvanMak.txt:844–846]: «Отключение прерываний во время работы акселератора необходимо, так как в этот момент сильно меняется система команд процессора и программа на прерывании не сможет работать нормально.» Новая прошивка акселератора позволяет работать с прерываниями — при приходе INT акселератор отключается и включается обратно по RETI [IvanMak.txt:846–848]. Без тестирования на реальном железе неизвестно, какая версия прошивки установлена. ## 12.4 Быстрое ОЗУ — конфликт с COVOX Порт `#FB` используется как для включения КЭШ-ОЗУ (IN), так и для вывода данных в COVOX (OUT). Если КЭШ-ОЗУ включено, запись в COVOX может давать неожиданные результаты. > [IvanMak.txt:850–851, 642] Перед вызовом RST или выходом в DOS КЭШ-ОЗУ обязательно отключать (`IN A,(#7B)`). ## 12.5 STA_VID — потеря старшего байта (0A8h?) > [bugs.txt:33]: «В БИОСе в функции STA_VID (возможно 0A8h) теряется старший байт параметра. В v2.12 функцию рекомендуется вызывать с учетом этого.» Относится к BIOS v2.12. Не проверялось, исправлено ли в v3.00. ## 12.6 Несовместимость с реальным железом — только MAME Многие перечисленные баги и квирки зафиксированы в документации, но не подтверждены на реальном Sprinter Sp2000. Все тесты тулчейна выполняются в MAME. Актуальность багов для реального железа неизвестна. > [TODO.md]: «Проверка на реальном железе — в планах» ## 12.7 Кросс-ссылки - BIOS v3.00: `02-bios.md` - DSS/ESTEX: `03-dss.md` - Акселератор: `06-accel.md` - Fast RAM: `04-memory.md §4.6` - Проектный TODO: `TODO.md` - Проектный список багов: `converted/bugs.txt`