?

Log in

No account? Create an account
Тестовое ПЗУ для МВЦ "Партнёр 01.01" - C3 00 F8 [entries|archive|friends|userinfo]
xlat

[ userinfo | userinfo ]
[ archive | old ]

Тестовое ПЗУ для МВЦ "Партнёр 01.01" [Jan. 11th, 2016|10:12 am]
xlat
[Tags|, , , ]

"Партнёр 01.01" 1991го выпуска, несмотря на свой возраст, теперь чувствует себя лучше - его удалось починить. Проблема скрывалась в неисправной микросхеме D38 (КР565РУ5Г). Вкратце о неисправности: инициализация видеоконтроллера происходила (по крайней мере, если верить осциллографу), но вывода надписи "Партнёр 01.01" и командной строки "Монитора" не следовало.
Начала копать в сторону оперативки. Проверила сигналы CAS и RAS (в альбоме схем от "Партнёра" они обозначены как CASL и RASL) и сигнал MX (управление мультиплексорами адреса ОЗУ) - подозрений они не вызвали, что несколько осложнило задачу и натолкнуло на мысль о тестовом ПЗУ. Тестовое ПЗУ от "Радио-86РК" к "Партнёру" не подошло из-за отличий в схеме распределения памяти - в частности, из-за других адресов портов ввода-вывода. Готового варианта к "Партнёру" тоже не нашлось, поэтому решили с Ромой сделать своё. В итоге, получилась прошивка, проверяющая ОЗУ и видеоконтроллер (связку КР580ВГ75 и КР580ВТ57).


Тест видеоконтроллера


Тестовое ПЗУ для "Партнёр 01.01" в процессе выполнения на реальном железе (самое интересное - после 48й секунды)

Если кому нужно, прошивку ПЗУ и её исходник скачать можно отсюда:
Прошивка ПЗУ (Bitbucket)
Исходник (Bitbucket)

Ну и небольшой ман. Содержимое файла testrom.bin необходимо прошить в ПЗУ объёмом 8Кб (например, в К573РФ4 или в 2764) и установить на место ПЗУ BIOS (D32). Тест начинает выполняться автоматически при включении питания компьютера, либо при нажатии на кнопку "Сброс". После короткого звукового сигнала (~1/4 сек.), во время которого ненадолго загорается светодиод LAT, в течение 48 секунд проверяются все 64Кб ОЗУ. Используется алгоритм "moving inversions". Кстати, наличие самой оперативки не влияет на работоспособность программы, так как задействованы только регистры CPU :)
В случае обнаружения неисправностей, тест выдаёт длинный звуковой сигнал (~1 сек.). Линии канала А параллельного порта (D28), соответствующие разрядам шины, к которым подключены неисправные микросхемы, устанавливаются в состояние логической единицы.
Если неисправностей нет - раздаётся короткий звуковой сигнал, при котором загорается и остаётся включённым светодиод LAT. Затем на экран выводится изображение, состоящее из рамки, в середине которой располагаются наборы символов каждого из восьми знакогенераторов. Чуть ниже находится строка, демонстрирующая работу атрибутов подчёркивания и инверсии символов. Курсор, при этом, имеет вид мигающего прямоугольника в левом верхнем углу внутри рамки.

З.Ы. Мы с мужем молодцы, чо :)
LinkReply

Comments:
[User Picture]From: ker_laeda
2016-01-11 05:29 am (UTC)
Ну, ты в З.Ы. уже всё написала, чо :)))
(Reply) (Thread)
[User Picture]From: xlat
2016-01-11 05:32 am (UTC)
:)))
(Reply) (Parent) (Thread)
[User Picture]From: klapaucy
2016-01-11 05:55 am (UTC)
Уважаю!
(Reply) (Thread)
[User Picture]From: xlat
2016-01-11 01:13 pm (UTC)
Спасибо :)
(Reply) (Parent) (Thread)
[User Picture]From: _luden_
2016-01-11 06:59 am (UTC)
Круто!
Больше ничего и не скажешь.
(Reply) (Thread)
[User Picture]From: xlat
2016-01-11 01:14 pm (UTC)
Спасибо! :)
(Reply) (Parent) (Thread)
[User Picture]From: e_groont
2016-01-11 08:39 am (UTC)
Это прекрасно! :)
(Reply) (Thread)
[User Picture]From: xlat
2016-01-11 01:14 pm (UTC)
Спасибо! :)
(Reply) (Parent) (Thread)
[User Picture]From: 32bit_me
2016-01-11 12:01 pm (UTC)
Мегареспект, это очень круто!
Сразу вопрос, на чём вы отлаживаете эти программы? На каком-либо эмуляторе или прямо в железе?
(Reply) (Thread)
[User Picture]From: xlat
2016-01-11 01:21 pm (UTC)
Спасибо :)
Конкретно эту программу частично отлаживали на эмуляторе отсюда: http://bashkiria-2m.narod.ru/index/emul/0-8
Частично - из-за того, что эмулятор многое не эмулирует :) Например, низкоуровневую работу контроллера дисплея и прямого доступа к памяти - их можно даже не инициализировать, на эмуляторе всё равно всё будет работать. Поэтому без реальной железки в таких случаях никак не обойтись. Кроме того, в нескольких эмуляторах "Партнёра" обнаружились некоторые несоответствия с работой даже такого компонента, как центральный процессор. Я про это как-нибудь напишу пост :)
(Reply) (Parent) (Thread)
[User Picture]From: 32bit_me
2016-01-11 02:41 pm (UTC)
Ясно. А на железе как отлаживали?
Или написали и всё заработало?
(Reply) (Parent) (Thread)
[User Picture]From: xlat
2016-01-11 02:46 pm (UTC)
На железе сразу заработало без особых проблем.
(Reply) (Parent) (Thread)
[User Picture]From: 32bit_me
2016-01-11 02:59 pm (UTC)
Ясно.
(Reply) (Parent) (Thread)
[User Picture]From: nushaman
2016-03-31 09:44 am (UTC)
Коммент в виде поста :)
http://nushaman.livejournal.com/26068.html
(Reply) (Thread)
[User Picture]From: xlat
2016-03-31 03:27 pm (UTC)
Это эмулятора глюк.
У меня был про отличия эмуляторов от реала пост: http://xlat.livejournal.com/594519.html :)
(Reply) (Parent) (Thread)