Продолжу публиковать материалы по этому проекту: прошивка ПЗУ.
Для этой схемы, по сути, подойдёт любая из существующих прошивок Вектора, но я решил сделать нечто своё. Для начала ещё раз обращу внимание, что ПЗУ как бы делится на две части по 32 кб, переключение между ними осуществляется джампером, поэтому сделал прошивку также из двух частей, разных по функционалу.
Часть 1, тестовая.
Эта часть основана на опубликованном ранее тестовом ПЗУ, расширенном и дополненном.
При старте прошивка, так же, как и в исходной версии, переходит в режим мигания индикатором "РУС/ЛАТ", нажатие на клавиш "СС", "УС" или "РУС/ЛАТ", также выводит через ВИ53 частоты 3, 2 или 1 кГц соответственно.
Нажатие "СС"+"УС" запускает тестирование памяти, сначала верхние 32кб:
- Тестирование методом простого записи/чтения, для контроля последовательно используется байты 00h, FFh, AAh, 55h.
- Тестирование методом записи/чтения через стек, используются слово AA55h и счётчик
- Запись содержимого ПЗУ с тестированием
Если тестирование прошло без ошибок, то через автозапуск выполняется сброс системы и выполнение записанных в верхнюю память тестов. Далее из верхней памяти последовательно выполняются тесты банков памяти 0, 1 и 2 методом записи/чтения через стек, используются счётчик, слова 55AAh, AA55h, 0000h (очистка).
Если тестирование нижней памяти тоже прошло без ошибок, то туда копируется и запускается тест техпрогона, а если удерживать клавишу "УС", то будет запущен Тест Устройств.
Обнаруженные ошибки также, как и в blink, выводятся в порт ПУ.
И есть ещё дополнение, если при начальном мигании индикатора "РУС/ЛАТ" нажать одновременно "СС" и "РУС", то будет запущен тест клавиатуры -- нажатие клавиш будет озвучиваться, код нажатой клавиши отправляется в порт В (ПУ). И, как бонус, тестируется сам порт ПУ, если на нём установлена заглушка, как описано в документации к Тесту Устройств (Порт А <--> Порт В, Порт С 7-4 <--> Порт С 3-0). В случае удачного теста ПУ будет гореть индикатор РУС/ЛАТ.
Тестовая часть прошивки в архиве с исходниками: blink48.7z
Часть 2, загрузочная.
Эта часть сделана на основе BOOT45. В связи с тем, что в ней не используются особенности моей схемы Вектора, её можно без проблем загружать в эмуляторах и на обычных Векторах.
Основные изменения:
- заменил загрузчик с HDD на новый, работающий в LBA, заменил иконку НЖМД на более красивую
- удалил ненужный тест техпрогона (он есть в первой части)
- обновил бейсик до версии 2.61
- увеличил скорость загрузки программ из ПЗУ
- изменил горячие клавиши и порядок выбора устройств для загрузки. Теперь это работает так:
КЛАВИША - РЕЖИМ
нет - квазидиск
F1 - магнитофон
F2 - жесткий диск
F1+F2 - дисковод
F1+F3 - сетевой адаптер
F3 - Бейсик v2.61
F4 - Монитор СуперМонстр v3.5
F5 - МППЗУ
F5+AP2 - самотестирование ПЗУ
AP2 - загрузка из РС через порты ПУ-LPT
Если для загрузки выбрано неподключенное устройство, загрузка будет производиться со следующего подключенного устройства согласно приоритету:
- КД
- НЖМД
- НГМД
- МППЗУ
- сетевой адаптер
- магнитофон
Удерживание клавиши УС при перезагрузке отменяет очистку ОЗУ (кроме экранной области c адресами 0C000H-0DFFFH) и позволяет войти в режимы:
КЛАВИША - РЕЖИМ
УС+F4 - реанимация 0 блока монитора (режим загрузки детектируется)
УС+F5 - загрузка из модуля МППЗУ
УС+AP2 - загрузка данных из РС через порты ПУ-LPT
УС+СТР - загрузка модуля выгрузки данных через ПУ (в мониторе)
УС+др.комбинации или ничего - магнитофон
Загрузочная часть прошивки с исходниками: BOOT21.7z
Ну и полная прошивка, все 64кб в одном файле: vector20.7z