Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Ремонт CGA видеоадаптера на 6845 |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 | Печать |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
dk_spb написал: Ну как это неправда? А ты посмотри, зачем он его читает - при выводе на экран, чтобы дождаться окончания обратного хода луча, дабы избежать "снега". Это не тест видеокарты. Опять неправда Ваша. dk_spb написал: Ну да. Примерно настолько же ХТ, насколько и ЕС 1841. Вон, даже на этом видеоадаптере микросхема внизу - это, небось, 537РУ8. Или экранный буфер, или загрузка пользовательских шрифтов, верно? В ХТ такой штуки не было Обычная XT. Или если форм-факто платы другой то сразу странная? |
dk_spb
Advanced Member
Всего сообщений: 5056 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 сен. 2009 |
DrPass написал: Обычная обыденная неправда, вызванная переоценкой достаточности информации ;-) Ну как это неправда? Во-первых, я же написал что кусок кода называется CRT INTERFACE LINES TEST И в нем если мы не получаем нужного в регистре статуса, то бибикаем один длинный и два коротких. >Примерно настолько же ХТ, насколько и ЕС 1841 Нет, ну Вы же всё знаете. Что я Вам пытаюсь доказать? И главное зачем? Я, в отличие от Вас, эту машинку хотя бы видел внутри. Она гораздо больше XT, чем 1841. И что, у нас уже 1841 перестала быть XT? >Вон, даже на этом видеоадаптере микросхема внизу - это, небось, 537РУ8 Не "небось". Это вообще РТшка. На ней даже номер прошивки подписан. В общем всё понятно: И XT уже не XT, и тест стал "выводом текста", и РТшка селектора адресов стала статическим ОЗУ. Жаль, а я ждал помощи по существу вопроса.... |
DrPass
Advanced Member
Откуда: Донецк Всего сообщений: 3566 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 17 апр. 2005 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 декабря 2013 14:00 Сообщение отредактировано: 3 декабря 2013 14:02
dk_spb написал: У меня есть дизассемблированная XT BIOS, я вообще-то туда тоже заглянул, прежде чем писать. Обычная обыденная неправда, вызванная переоценкой достаточности информации ;-) Там действительно нет никаких тестов CGA, кроме теста видеопамяти, и обращения к регистру состояния сводятся к проверке обратного хода луча. Я не спорю, что у вас там может быть какой-то другой исходник... мало ли их там было написано-переписано. Кстати, если у вас там тест - покажите хоть, что как он тестирует, и какая реакция на прохождение этого теста. dk_spb написал: Да я ничего не пытаюсь доказать, кто там и насколько ХТ. Я просто говорю очевидную вещь, что вероятность встретить в старой советской машине (которая делалась не тупым копированием, а как обычно у нас, с никому не нужной индивидуальностью) привычные нам звуковые оповещения и с тем же смыслом невелика. И что не стоило бы увязывать неисправность видеокарты и это пиканье при старте. Хотите - верьте, хотите - нет. Только и всего. Нет, ну Вы же всё знаете. Что я Вам пытаюсь доказать? И главное зачем? Если там не РУ8, а РТ5... ну и слава богу. В оригинальной CGA дешифрация адреса, вроде как, с помощью 74LS688 реализовывалась :Р |
dk_spb
Advanced Member
Всего сообщений: 5056 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 сен. 2009 |
DrPass написал: Я пользовался оригиналом из IBM_5155_5160_Technical_Reference_6280089_MAR86.pdf страница 5-89 строки, например, 589-608. У меня есть дизассемблированная XT BIOS, я вообще-то туда тоже заглянул, прежде чем писать. Мы же говорили об XT, не правда ли? DrPass написал: Так я и не спорю же? Я просто констатирую факт что Вы неправы. Дисасм конкретного BIOS'а показал что причиной одного длинного и двух коротких может быть три: И что не стоило бы увязывать неисправность видеокарты и это пиканье при старте. Хотите - верьте, хотите - нет. Только и всего. 1) ошибка теста памяти B800:0-B800:4000 2) наличие двух старших бит в порту 62h (I/O and parity check error) после теста в пункте 1 3) еще одно недоизученное место. DrPass написал: Спасибо, именно эта информация от Вас была сегодня наиболее полезной ;-) В оригинальной CGA дешифрация адреса, вроде как, с помощью 74LS688 реализовывалась Жаль что как всегда не совсем точной (http://www.minuszerodegrees.net/5150_5160/cards/ibm_cga.jpg) |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 3 декабря 2013 14:44 Сообщение отредактировано: 3 декабря 2013 14:48
dk_spb, как я понимаю, на первом этапе этот (CRT INTERFACE LINES TEST) тест проверяет бит 3 регистра 3DAh или 3BAh. Этот бит становится равным 1 при обратном ходе луча (VSYNC). Тест проверяет, меняется ли этот бит. Т.е. сначала в цикле ждёт, пока бит не станет единицей. Если не стал - ошибка. Потом ждёт, не станет ли он нулём. Не стал - ошибка. На втором этапе аналогично проверяется бит 0 - на этот раз HSYNC, т.е. обратный ход луча в конце каждой линии. Проверяется так же. Исходник я смотрел вот этот: http://www.iee.et.tu-dresden.d...OMBIOS.ALL Не знаю, правда, что за BIOS... Т.е. если Вы считаете, что ошибка именно в этом тесте, то тут два варианта - видеокарта не отслеживает обратный ход луча, т.е. один из этих битов не меняется по какой-то причине, второй вариант - тест проходит слишком быстро. Т.е. проверка идёт 65536 циклов (в том исходнике), если за это время состояние бита не изменилось, значит - ошибка. Если проц достаточно быстрый, то эти 65536 циклов могут проскочить слишком быстро, т.е. до очередного обратного хода луча. Да, а текстовые тесты в CheckIt как проходят? |
alecv
Advanced Member
Откуда: Санкт-Петербург Всего сообщений: 5545 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 5 окт. 2004 |
dk_spb Не хочешь махнуть ВГ-шку не глядя ? Они иногда встречались глюкавые и даже ноги от керамики отслаивались. "Светлана" не очень качественно делала. В магазинах их навалом. Тупо скусить и новую впаять. |
dk_spb
Advanced Member
Всего сообщений: 5056 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 сен. 2009 |
uav1606, нет, этот тест я дал для примера того что оригинальная XT полоучает что-то от 6845, что может влияет на результат теста. >Да, а текстовые тесты в CheckIt как проходят? Без проблем. >Дисасм конкретного BIOS'а показал что причиной одного длинного и двух коротких может быть три: Судя по дисасму третий случай можно отбросить. Поскольку тест памяти чекита тоже не ругается остается только вариант что возникает parity или i/o error. Выкину это место из BIOS и проверю. Но вообще-то меня изначально больше волновал вопрос что может быть (хотя бы теоретически) причиной такого странного искажения графики. Да, боюсь ВГ придется менять, хотя очень не хочется..... |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
dk_spb написал: А, то есть в Вашем конкретном BIOS этого теста нет? uav1606, нет, этот тест я дал для примера того что оригинальная XT полоучает что-то от 6845, что может влияет на результат теста. |
dk_spb
Advanced Member
Всего сообщений: 5056 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 сен. 2009 |
>А, то есть в Вашем конкретном BIOS этого теста нет? Да, в BIOS копаемой машины такого нет. Только три места где вызываются один длинный и два коротких. Причем в третьем проверяется DS, если он больше C800h - пишем на экран "Сбой ПЗУ". А если меньше - гудим 1+2. В общем потыркаюсь вечером с переделанным BIOS. |
dk_spb
Advanced Member
Всего сообщений: 5056 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 сен. 2009 |
В общем застрял я. BIOS однозначно ругается на тест видеопамяти. Никак не могу понять что такого особенного в этом тесте что ни Checkit, ни одна из двух ПЗУшных XT тестировалок тестируют память без ошибок, а этот тест сбоит.... seg000:E252 mov bx, 0B800h seg000:E255 mov ch, 40h ; '@' ; объем тестируемой памяти, пробовал менять на 01 (то есть cx=100h) - не помогло seg000:E257 cmp word ptr ds:472h, 1234h seg000:E25D mov es, bx seg000:E25F jz short loc_F0E27D ; если не холодный рестарт - видеопамять не проверяем seg000:E261 mov ds, bx seg000:E263 mov dx, 3D8h seg000:E266 xor ax, ax seg000:E268 out dx, al seg000:E269 sub di, di seg000:E26B push cx seg000:E26C dec ax seg000:E26D rep stosw ; залили всю видеопамять FF seg000:E26F pop cx seg000:E270 call sub_F0E5FD ; тест видеопамяти seg000:E273 jz short loc_F0E27D seg000:E275 mov dx, 102h ; сначала я тут поставил 106h чтобы однозначно понять что ловлю бипы именно этого места seg000:E278 pop ds seg000:E279 push ds seg000:E27A call beep_error_sub seg000:E27D seg000:E27D loc_F0E27D: ===== собственно сама подпрограмма теста видеопамяти ================== seg000:E5FD sub_F0E5FD proc near ; CODE XREF: seg000:E1ACj seg000:E5FD cld seg000:E5FE sub di, di seg000:E600 mov si, di seg000:E602 mov bx, cx seg000:E604 shl bx, 1 ; так как работаем побайтно увеличиваем CX=4000h -> 8000h (у нас 32K видеопамяти) seg000:E606 mov ah, 0FFh seg000:E608 mov dx, 1 seg000:E60B in al, 61h ; PC/XT PPI port B bits: seg000:E60B ; 0: Tmr 2 gate =T= OR 03H=spkr ON seg000:E60B ; 1: Tmr 2 data =- AND 0fcH=spkr OFF seg000:E60B ; 3: 1=read high switches seg000:E60B ; 4: 0=enable RAM parity checking seg000:E60B ; 5: 0=enable I/O channel check seg000:E60B ; 6: 0=hold keyboard clock low seg000:E60B ; 7: 0=enable kbrd seg000:E60D or al, 30h seg000:E60F out 61h, al ; PC/XT PPI port B bits: seg000:E611 and al, 0CFh seg000:E613 out 61h, al ; PC/XT PPI port B bits: seg000:E615 loc_F0E615: seg000:E615 mov si, di seg000:E617 mov cx, bx seg000:E619 loc_F0E619: seg000:E619 lodsb seg000:E61A xor al, ah ; проверяем сохранилось ли ранее залитое FF seg000:E61C jnz short loc_F0E63F ; сразу на выход с ошибкой seg000:E61E mov al, dl seg000:E620 stosb ; меняем видеопамять с FF на 01 (в прямом проходе) и с 01 на 00 в обратном seg000:E621 loop loc_F0E619 seg000:E623 and ah, ah ;тест завершен? seg000:E625 jz short loc_F0E639 seg000:E627 mov ah, al ; меняем ah с FF на 01 (в прямом проходе) и с 01 на 00 в обратном seg000:E629 xchg dh, dl ; устанавливаем признак окончания теста seg000:E62B and ah, ah seg000:E62D jnz short loc_F0E635 seg000:E62F mov dl, ah seg000:E631 cld seg000:E632 inc di seg000:E633 jmp short loc_F0E615 seg000:E635 ; --------------------------------------------------------------------------- seg000:E635 loc_F0E635: ; подготовка к прогони теста в обратном порядке seg000:E635 dec di seg000:E636 std seg000:E637 jmp short loc_F0E615 seg000:E639 ; --------------------------------------------------------------------------- seg000:E639 loc_F0E639: ; тут пробовал ставить сразу cld и retn, так что ошибка возникает раньше. seg000:E639 in al, 62h ; PC/XT PPI port C. Bits: seg000:E639 ; 0-3: values of DIP switches seg000:E639 ; 5: 1=Timer 2 channel out seg000:E639 ; 6: 1=I/O channel check seg000:E639 ; 7: 1=RAM parity check error occurred. seg000:E63B and al, 0C0h seg000:E63D mov al, 0 seg000:E63F seg000:E63F loc_F0E63F: seg000:E63F cld seg000:E640 retn seg000:E640 sub_F0E5FD endp |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Ремонт CGA видеоадаптера на 6845 |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |