-
Вложений: 4
Продолжу публиковать материалы по этому проекту: прошивка ПЗУ.
Для этой схемы, по сути, подойдёт любая из существующих прошивок Вектора, но я решил сделать нечто своё. Для начала ещё раз обращу внимание, что ПЗУ как бы делится на две части по 32 кб, переключение между ними осуществляется джампером, поэтому сделал прошивку также из двух частей, разных по функционалу.
Часть 1, тестовая.
Эта часть основана на опубликованном ранее тестовом ПЗУ, расширенном и дополненном.
При старте прошивка, так же, как и в исходной версии, переходит в режим мигания индикатором "РУС/ЛАТ", нажатие на клавиш "СС", "УС" или "РУС/ЛАТ", также выводит через ВИ53 частоты 3, 2 или 1 кГц соответственно.
Нажатие "СС"+"УС" запускает тестирование памяти, сначала верхние 32кб:
- Тестирование методом простого записи/чтения, для контроля последовательно используется байты 00h, FFh, AAh, 55h.
- Тестирование методом записи/чтения через стек, используются слово AA55h и счётчик
- Запись содержимого ПЗУ с тестированием
Если тестирование прошло без ошибок, то через автозапуск выполняется сброс системы и выполнение записанных в верхнюю память тестов. Далее из верхней памяти последовательно выполняются тесты банков памяти 0, 1 и 2 методом записи/чтения через стек, используются счётчик, слова 55AAh, AA55h, 0000h (очистка).
Если тестирование нижней памяти тоже прошло без ошибок, то туда копируется и запускается тест техпрогона, а если удерживать клавишу "УС", то будет запущен Тест Устройств.
Обнаруженные ошибки также, как и в blink, выводятся в порт ПУ.
И есть ещё дополнение, если при начальном мигании индикатора "РУС/ЛАТ" нажать одновременно "СС" и "РУС", то будет запущен тест клавиатуры -- нажатие клавиш будет озвучиваться, код нажатой клавиши отправляется в порт В (ПУ). И, как бонус, тестируется сам порт ПУ, если на нём установлена заглушка, как описано в документации к Тесту Устройств (Порт А <--> Порт В, Порт С 7-4 <--> Порт С 3-0). В случае удачного теста ПУ будет гореть индикатор РУС/ЛАТ.
Тестовая часть прошивки в архиве с исходниками: Вложение 75174
Часть 2, загрузочная.
Эта часть сделана на основе BOOT45. В связи с тем, что в ней не используются особенности моей схемы Вектора, её можно без проблем загружать в эмуляторах и на обычных Векторах.
Вложение 75177
Основные изменения:
- заменил загрузчик с 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
УС+СТР - загрузка модуля выгрузки данных через ПУ (в мониторе)
УС+др.комбинации или ничего - магнитофон
Загрузочная часть прошивки с исходниками: Вложение 75175
Ну и полная прошивка, все 64кб в одном файле: Вложение 75176
-
Вложений: 1
Тестируя загрузчик нашёл в схеме одну достадную ошибку -- я не сделал подтяжку шины данных к +5В, в результате чего при чтении из любого неподключённого порта программа получает шум на линии, случайные значения вместо FFh... Исправленная схема:
https://s8.hostingkartinok.com/uploa...e87e1fedcd.png
Архив со схемой, разводкой плат и гербер-файлами для их изготовления: Вложение 75182
Всё остальное работает, теперь, думаю, пора приступать к подключению видеокарты...
-
Вложений: 2
Перед новогодними праздниками обновил загрузчик, но не успел выложить. Отличия новой версии от предыдущего варианта:
В тестовую часть добавил тестирование экрана:
- при нажатии УС, кроме вывода звука, заполняется экранная область значением 55h, устанавливается цвет бордюра 00h
- при нажатии СС экранная область заполняется значением FFh, устанавливается цвет бордюра 00h
- при нажатии РУС экранная область заполняется значением 00h, устанавливается цвет бордюра 0Fh
- при нажатии УС+РУС выполняется загрузка палитры, экран заполняется ч/б градиентом по типу этого теста, устанавливается цвет бордюра 00h. Тут используется прерывание и требуется исправное ОЗУ по адресам FFFEh-FFFFh, в случае обнаружения ошибок по этим адресам загрузка палитры и тест градиентом не выполняется.
Примечание. Заполнение видеопамяти производится без программного тестирования, ошибки будут просто видны на экране, если он подключен.
Архив тестовой прошивки с исходниками: Вложение 76820
Изменения загрузочной части только в подпрограмме загрузки системы с КД, как было сделано тут ivagor и мной немного ранее, теперь файл OS.COM может быть и не первым в списке файлов. Ну и попутно обновил бейсик до версии 2.62.
Архив основной прошивки с исходниками: Вложение 76821
Вторую часть можно также, как и ранее, использовать отдельно на любом Векторе или подгружать её в эмуляторы.