Вопрос все еще остается открытым... Получается с помощью драйвера и программы форматирования получается писать МХ, а вот загрузочным этот МХ сделать не получается...
Вид для печати
Вопрос все еще остается открытым... Получается с помощью драйвера и программы форматирования получается писать МХ, а вот загрузочным этот МХ сделать не получается...
Вопрос к Гуру по ДВК, и ассемблеру DEC....
Имеется вот эта ПЗУ: http://www.tis.kz/large/IMG_el100-ro1.jpg
Вот ее схема, правда не до конца дорисовал... :
http://www.tis.kz/temp/pzu_el100-25.jpg
У нее проблема с чтением третьего бита загрузочного
под-ПЗУ на четырех КР556RT4А, Как выяснилось это
подохла сама микросхема №0 КР556RT4А...
Просьба следующая, надо понять этот код ПЗУ и исправить
в нем третий бит в должный вид...
Вот код того загрузочного под-ПЗУ:
173000 005037 177570 012716 007776 004077 000652 005015 026512
173020 060572 071157 075175 060553 005015 026532 062570 062572
173040 060572 072570 065573 005015 026534 062574 072173 006571
173060 037412 000010 004777 000634 001757 120037 000112 001410
173100 120037 000132 001532 120037 000134 001336 000177 000350
173120 012737 000236 000234 012737 000012 000236 012715 175010
173140 012714 170012 012713 010010 004777 000416 004777 000352
173160 101017 004077 000510 006417 073412 066153 077150 020151
173200 066556 030154 073474 037153 000010 004777 000476 000754
173220 005035 005035 012711 000010 004777 000254 101053 001453
173240 005311 001014 004077 000416 006417 067412 020173 072176
173260 067155 070551 066450 000154 000010 000776 012713 177777
173300 012773 000112 000014 004777 000214 101356 004077 000356
173320 006417 067412 020173 067577 073572 060572 060574 000010
173340 000010 000776 012710 010016 012711 002010 012015 077112
173360 012711 000010 000731 004777 000170 005010 012711 000410
173400 012715 175010 005035 005035 011530 077112 005010 022710
173420 000250 001012 000137 000010 004077 000232 006417 067412
173440 020173 060572 071157 075175 064553 000010 000010 000776
173460 010710 062710 000174 012037 173776 012011 012012 013732
173500 173776 077113 011010 000110 010310 012730 174010 012730
173520 010016 012710 000112 010314 000011 005714 100411 000217
173540 032773 040010 177776 001412 000274 000412 000254 000271
173560 000217 012773 000016 000014 010314 105714 100376 000217
173600 000010 000010 000010 000010 007577 000010 000210 007577
173620 007570 000010 000210 017377 007217 000010 000210 026576
173640 003773 000010 000210 032571 000333 001010 001010 033114
173660 000674 100010 100010 105737 177574 100375 112037 177576
173700 105710 001371 042710 000011 005730 000210 005056 105737
173720 177570 100375 113710 177572 105737 177574 100375 110037
173740 177576 122710 000015 001412 010016 000771 105737 177574
173760 100375 112737 000012 177576 012610 105710 000217 013436
И немного другой вид Вложение 15958
Вот дизассемблированный вариант. Так по-моему проще. Уже сразу навскидку видно, что есть лишние биты, которые установленны там где должны быть нулями.
Вобщем в прошивке везде установлен 3й бит. Навскидку поправил что попалось на глаза без вдумчивости. После ";" написан код какой был до правки (если код не написан - значит не менялось, но я согласен с тем что было). Для текста старый код не писал - там все и так ясно. Мог и ошибиться где-нибудь впрочем. :)
Код где правил мог забыть поправить, но инструкции исправлял везде...
Основная часть кода которая используется в видимой прошивке отсутствует и ее еще вытащить надо (способ вытаскивания впрочем ясен). Здесь же виден сразу какой-то загрузчик с устройства вроде электронного диска.
Глядя на схему и на плату ПЗУ, я предположил, что основное ПЗУ (на 16 микросхемах РФ2) имеет последовательную адресацию, т.е. читается по какому-то одному регистру, подобно данным с последовательного порта. А в бутроме (который на РТ4 и которое как раз испорчено) сидит загрузчик, который перекидывает этот блок в ОЗУ платы МС1201.02 и потом запускает. Правда, подробно я не разбирался.
Отчасти так и есть. Там перекидывается кусок из этого последовательного и запускается. В коде который я слегка разобрал видно два блока параметров для перекидывания с разными адресами в скрытой области и разной длиной. А сам способ доступа простой: в 173776 пишется номер слова с которого начинать читать, а потом из него же последовательно вычитывается все.
Вот Вложение 15976
По просьбе Andrey_Ak предлагаю вариант временной замены 556РТ4 на AT29C010A, которую можно прошить хотсвопом (у Андрея нет программатора). Конечно, испотьзовать 1024 бит из мегабита не самое выгодное решение, но для проверки прошивки сойдет.
В таблице просто указано, что с чем соединять. В первые 512 байт AT29C010A заливается восстановленный бутром. На вывод 12 подавать 0 или +5, я забыл какой байт идет первым - старший или младший.Код:556РТ4 AT29C010A
1 5
2 6
3 7
4 8
5 11
6 10
7 9
9 17
10 15
11 14
12 13
15 27
12 (выбор старшего/младшего байта)
GND:
8,13,14|2,3,4,16,22,23,24,25,26,28,29
+5В:
16 31,32