Поиск-2 Ремонт
Moderator: Shaos
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
Насколько полно и подробно нужно реверсить биос?
Т.е. просто обозначить процедуры и основные куски или же с указанием всех локаций в CMOS/BDA/etc?
Или нужно найти конкретный участок?
Если нужно макс. полно - нужна схема, иначе, например, непонятно что такое порт 3DF (в смысле - где он в железе и что происходит при записи в него).
Т.е. просто обозначить процедуры и основные куски или же с указанием всех локаций в CMOS/BDA/etc?
Или нужно найти конкретный участок?
Если нужно макс. полно - нужна схема, иначе, например, непонятно что такое порт 3DF (в смысле - где он в железе и что происходит при записи в него).
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Поиск-2 Ремонт
если бы я понимал хоть половину что тут написано -мне нужно после сброса процессора проследить что он выдает на шину адресса и данных и управление,что он читает из ПЗУ при старте - там в пзу идет инициальизация устройств и проверка озу.Vic3Dexe wrote:Насколько полно и подробно нужно реверсить биос?
Т.е. просто обозначить процедуры и основные куски или же с указанием всех локаций в CMOS/BDA/etc?
Или нужно найти конкретный участок?
Потом на процессоре проверяй, если у него есть тактирование и RESET, то проц должен после снятия RESET выдавать адрес FFFF:0h, по этому адресу должен быть низкий CS на ПЗУ. Соответственно, проверишь "базовую" работоспособность процессора и дешифратора адреса.
http://zx-pk.ru/threads/24663-pomogite- ... post829507добились старта из ПЗУ, выбирает первый jmp по адресу 0xFFFF0, правильно переходит, дальше там стоит длинный цикл, тоже выполняется правильно. На этом все - видеокарту не инициализирует, не пищит, на тест ОЗУ не переходит.
эта вся информация что есть, вроде как обычна XT машина
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
После "длинного цикла" там идет обмен со CMOS (порты 70h, 71h). Она есть? Жива? Батарея в норме?
Если "длинный цикл" выполняется, значит с процом/биосом и шинами между ними все в порядке.
В процессе обмена со CMOS есть одно чтение ОЗУ (физ. адрес 00472h), читает слово. Происходит это чтение в реале или нет?
После теста CMOS сразу идут обращения к DMA:
Если "длинный цикл" выполняется, значит с процом/биосом и шинами между ними все в порядке.
В процессе обмена со CMOS есть одно чтение ОЗУ (физ. адрес 00472h), читает слово. Происходит это чтение в реале или нет?
После теста CMOS сразу идут обращения к DMA:
Code: Select all
sub ax, ax
out 0A0h, al ; <=== это вроде PIC-slave, он есть на плате? Если нет, надо понять, что это за порт
out 83h, al ; DMA page register 74LS612:
out 0Dh, al ; DMA controller, 8237A-5.
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Поиск-2 Ремонт
на сколько помню - сам удивлялся почему на вт37,вн59,вв55,ви53 - везде cs- в 1 ,а кмос по схеме сидит идет через инвертор на PG бп . PG -проверял сразу +5в - и через инвертор 0.Vic3Dexe wrote:После "длинного цикла" там идет обмен со CMOS (порты 70h, 71h). Она есть? Жива? Батарея в норме?
Если "длинный цикл" выполняется, значит с процом/биосом и шинами между ними все в порядке.
В процессе обмена со CMOS есть одно чтение ОЗУ (физ. адрес 00472h), читает слово. Происходит это чтение в реале или нет?
Проверю еще раз обвязку CMOS и гляну осцилом что твориться .
физическое ОЗУ на ру7 ??? или ОЗУ в CMOSe ? до проверки озу и инициальзации ВИ53 и вт37 не будет регенарации РУ7 и врядли они смогут что то хранить.есть одно чтение ОЗУ (физ. адрес 00472h),
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
Не понял нифигаа кмос по схеме сидит идет через инвертор на PG бп . PG -проверял сразу +5в - и через инвертор 0.

ОЗУ - оно одно. Разумеется на РУ7 или на чем оно там.физическое ОЗУ на ру7 ??? или ОЗУ в CMOSe ? до проверки озу и инициальзации ВИ53 и вт37 не будет регенарации РУ7 и врядли они смогут что то хранить.
Что касается регена - это не мешает его читать. В данном случае читается флаг warm boot. Т.е. некая софтина пишет туда 1234h, после чего выполняет jmp far 0FFFFh:0FFF0h, т.е. имитирует ребут. При этом DMA продолжает регенерацию (т.к. ее никто не отменял).
Обычно используется при обработке ctrl+alt+del, т.е. биос знает, что его ребутнули клавой, а не питанием.
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Поиск-2 Ремонт
dma и не начинало регенарацию так как CS устройства не выбран! в z состоянии выходы dma. на озу есть активность -чтение-запись.Vic3Dexe wrote:Не понял нифигаа кмос по схеме сидит идет через инвертор на PG бп . PG -проверял сразу +5в - и через инвертор 0.PowerGood что ли? Ну вполне, это девайс мамки, имеет право.
ОЗУ - оно одно. Разумеется на РУ7 или на чем оно там.физическое ОЗУ на ру7 ??? или ОЗУ в CMOSe ? до проверки озу и инициальзации ВИ53 и вт37 не будет регенарации РУ7 и врядли они смогут что то хранить.
Что касается регена - это не мешает его читать. В данном случае читается флаг warm boot. Т.е. некая софтина пишет туда 1234h, после чего выполняет jmp far 0FFFFh:0FFF0h, т.е. имитирует ребут. При этом DMA продолжает регенерацию (т.к. ее никто не отменял).
Обычно используется при обработке ctrl+alt+del, т.е. биос знает, что его ребутнули клавой, а не питанием.
по поводу ВИ1 часов -у нее cs -после включения всегда выбран.Сейчас проверю что там с чтение записью.
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
Так в вашем случае и не должно быть, холодный ребут ведь! Я ж про флаг warm boot, т.е. когда dma УЖЕ проинициализировано при холодной загрузке.palsw wrote: dma и не начинало регенарацию так как CS устройства не выбран! в z состоянии выходы dma. на озу есть активность -чтение-запись.
Но так или иначе читать память это все не мешает - другое дело, что прочитается мусор.
Last edited by Vic3Dexe on 18 May 2016 03:57, edited 1 time in total.
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Поиск-2 Ремонт
Ну там идея какая - смотря где хочешь затормозиться. По ссылке человеку надо было затормозиться на обращение к ПЗУ.palsw wrote:а вот с сигналом /mrd не совсем понятно. то есть я смогу тормозить проц и шагать только при обрашении к ОЗУ-ПЗУ ,а когда проц дойдет по настройки внешних устройств то улетит не затормозив?
А тебе может удобней тормозиться на порты а не на каждый такт 3.
Вобщем - каким-то сигналом выставить RDY, а кнопкой его отпустить.
iLavr
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
что процессор после резета что то пишет и читает из озу и к портам не обращается
Вот совсем не понял, это как?выбирает первый jmp по адресу 0xFFFF0, правильно переходит, дальше там стоит длинный цикл, тоже выполняется правильно. На этом все - видеокарту не инициализирует
Вот участок кода сразу после jmp far, стрелками показал обращения к портам
Code: Select all
seg000:E05B cli
seg000:E05C mov bx, 0C800h
seg000:E05F mov ds, bx
seg000:E061 assume ds:nothing
seg000:E061 xor bx, bx
seg000:E063 mov bx, [bx]
seg000:E065 cmp bx, 4321h
seg000:E069 jnz short @1
seg000:E06B jmp far ptr 0C800h:2 ; init addon card
seg000:E070 ; ---------------------------------------------------------------------------
seg000:E070
seg000:E070 @1: ; CODE XREF: start+Ej
seg000:E070 mov dx, 3DFh
seg000:E073 xor al, al
seg000:E075 out dx, al ; <====================
seg000:E076 mov dx, 3D8h
seg000:E079 out dx, al ; <==================== CGA
seg000:E07A mov dl, 0FFh
seg000:E07C mov cx, 100h
seg000:E07F <=============================================== здесь начинается "длинный цикл"
seg000:E07F @2: ; CODE XREF: start+2Ej
seg000:E07F out 0E0h, al
seg000:E081 xchg al, dl
seg000:E083 out 0F0h, al ; AT 80287 latch clear.
seg000:E083 ; 'Busy' gets latched upon an unmasked 287 error.
seg000:E085 xchg al, dl
seg000:E087 inc al
seg000:E089 loop @2
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Поиск-2 Ремонт
эти 2 цитаты я взял с другого форума - сам еще только подключаю шаговый режим и смотрю осцилографом на ви1
-
- Novelist
- Posts: 45
- Joined: 16 Dec 2014 13:52
- Location: Украина-Измаил
Re: Поиск-2 Ремонт
вот написал,что аж смешно.
1.На моей плате есть обращение к ПЗУ .на процессоре есть сигнал чтения и записи памяти. к внешним устройствам и портам нет обращения .
1.На моей плате есть обращение к ПЗУ .на процессоре есть сигнал чтения и записи памяти. к внешним устройствам и портам нет обращения .
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Поиск-2 Ремонт
Ну из этих соображений ясно только одно: либо неисправен процессор, либо он не делает то, что написано в ПЗУ.palsw wrote:вот написал,что аж смешно.
1.На моей плате есть обращение к ПЗУ .на процессоре есть сигнал чтения и записи памяти. к внешним устройствам и портам нет обращения .
Поэтому я и дал ссылку, где в пошаговом режиме выполняется код NOP - выставленный на шине данных резисторами безо всякой ПЗУ.
Я и предложил начать с этого теста: вынимаем из панельки ПЗУ, резисторам по ШД в панельке выставляем код NOP.
И в пошаговом режиме смотрим: проц обратился к "ПЗУ" и завис по RDY.
Тыкаем по всем шинам данных и адреса - правильно ли проходит адрес и код NOP.
Отпускаем RDY - смотрим всё на следующем шаге - адрес на 1 больше и т.д.
А дизассемблировать БИОС - на мой взгляд так с ходу не поможет, я считаю.
Процесор явно делает что-то не то, что записано в БИОС, если, конечно, там записано то, что надо...
iLavr
-
- Doomed
- Posts: 370
- Joined: 16 Dec 2014 11:58
- Location: Киев
Re: Поиск-2 Ремонт
эти 2 цитаты я взял с другого форума - сам еще только подключаю шаговый режим и смотрю осцилографом на ви1
Реверсить биос вообще бессмысленно. Ибо абсолютно непонятно что работает, а что "с другого форума".А дизассемблировать БИОС - на мой взгляд так с ходу не поможет, я считаю.
Топикстартер, без обид, но как-то... поответственней что ли к вопросу подходи. Люди на тебя свое личное время тратят как бы...
jmp far по FFFF0h выполняется?к внешним устройствам и портам нет обращения
Если нет, то:
- перешить биос на что-то типа набора nop-ов (как уже советовали, но я бы рекомедовал jmp $, т.е. EB FE) и посмотреть на результат. Если без изменений (т.е. нопы/джампы не выполняются) - заменить проц/биос/искать проблемы в дорогах на матери.
Если да (и если приложеный бинарник верный, и биос не битый), то я бы искал того, кто сидит по C8000h. Ибо это единственное, что стоит между jmp far и обращением к портам.
Хосспади, я бы не додумалсярезисторам по ШД в панельке выставляем код NOP.

(я в хорошем смысле)
-
- Supreme God
- Posts: 16676
- Joined: 21 Oct 2009 08:08
- Location: Россия
Re: Поиск-2 Ремонт
Да это трюк довольно известый... вот пример для 6502:Vic3Dexe wrote:Хосспади, я бы не додумалсяLavr wrote:резисторам по ШД в панельке выставляем код NOP.
(я в хорошем смысле)

Не очень аккуратно... но тем не менее:
Да и на нашем форуме это всё разжевали давно уже...This will place the opcode EA on the 6502 data bus.
In this mode we take advantage of the fact that the NOP instruction for this CPU is 0EAH.
viewtopic.php?p=116673#p116673
В пошаговом режиме, когда проц завис по RDY, ему можно резисторами в панельке практически любой
подходящий код задать...

Но лучше начать всё же с NOP, я думаю, некоторая определенность теста есть...
P.S. Хотя сам я делаю этот трюк не так: в каждую нужную дырку ШД - втыкаю резистор,
а торчащие вверх выводы - одним проводочком - к +5В панельки, другие - проводком к 0.
iLavr
-
- Maniac
- Posts: 208
- Joined: 18 Nov 2013 15:15
- Location: все оттуда ;)
Re: Поиск-2 Ремонт
В исходниках BIOS написано:Vic3Dexe wrote:что процессор после резета что то пишет и читает из озу и к портам не обращаетсяВот совсем не понял, это как?выбирает первый jmp по адресу 0xFFFF0, правильно переходит, дальше там стоит длинный цикл, тоже выполняется правильно. На этом все - видеокарту не инициализирует
Вот участок кода сразу после jmp far, стрелками показал обращения к портамТо есть либо обращения к портам таки идут, но вы их смотрите не там, либо "длинный цикл" не там и проц выполняет вообще непонятно что...Code: Select all
seg000:E05B cli seg000:E05C mov bx, 0C800h seg000:E05F mov ds, bx seg000:E061 assume ds:nothing seg000:E061 xor bx, bx seg000:E063 mov bx, [bx] seg000:E065 cmp bx, 4321h seg000:E069 jnz short @1 seg000:E06B jmp far ptr 0C800h:2 ; init addon card seg000:E070 ; --------------------------------------------------------------------------- seg000:E070 seg000:E070 @1: ; CODE XREF: start+Ej seg000:E070 mov dx, 3DFh seg000:E073 xor al, al seg000:E075 out dx, al ; <==================== seg000:E076 mov dx, 3D8h seg000:E079 out dx, al ; <==================== CGA seg000:E07A mov dl, 0FFh seg000:E07C mov cx, 100h seg000:E07F <=============================================== здесь начинается "длинный цикл" seg000:E07F @2: ; CODE XREF: start+2Ej seg000:E07F out 0E0h, al seg000:E081 xchg al, dl seg000:E083 out 0F0h, al ; AT 80287 latch clear. seg000:E083 ; 'Busy' gets latched upon an unmasked 287 error. seg000:E085 xchg al, dl seg000:E087 inc al seg000:E089 loop @2
Code: Select all
;-----EGA РЕЖИМ И ГАШЕНИЕ ЭКРАНА
NOT_BIOS:
MOV DX,3DFH
XOR AL,AL
OUT DX,AL
MOV DX,3D8H
OUT DX,AL


Code: Select all
;----------------------------------------------------------------------------
; ТЕСТ РЕГИСТРОВ R0...R3 УСТРОЙСТВА EMS ОЗУ И ДЕШИФРАТОРА
; ФИЗИЧЕСКИХ АДРЕСОВ ОЗУ
;------------------------------------------------------------------------------