Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Ремонт CGA видеоадаптера на 6845
RSS

Ремонт CGA видеоадаптера на 6845

Нужна помощь зала

<<Назад  Вперед>> Страницы: 1 2 3 4 5
Печать
 
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Есть советский видеоадаптер на км1809вг6 (аналог 6845).
память - 16 шт РУ6, куча мелкой логики.
При старте компьютер издает один длинный и два коротких писка (ошибка видеоадаптера).
При загрузке и работе в командной строке DOS мудрит с аттрибутами (включает серый фон, мограние символов, у некоторых символов иногда аттрибуты нормальные).
Вот пример фото (моргающие символы на светлом фоне на фото не видны ).
В панелях VC работает вообще без нареканий.

Тест видеопамяти checkit'ом проходит без ошибок (как стандартным тестом так и тестом ОЗУ с B8000h по BF000h).
При работе в checkit'е в текстовых меню глюков нет.
Тест графрежима сетка рисует только в mode 04,05,06 и рисует странно: mode04, mode05, mode06.
Цветные квадраты тоже со странной полосой: фото

Куда посоветуете копать. Всё (включая ВГ6) без панелек, поэтому метод поиска тотальной заменой хочется оставить на крайний случай.
Что BIOS при старте тестирует в видяхе (кроме видеопамяти)?
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
dk_spb написал:
[q]
Что BIOS при старте тестирует в видяхе (кроме видеопамяти)?
[/q]
Насколько я знаю, в CGA - ничего. Потому и пищит, т.к. биосу что есть CGA, что нет CGA - без разницы, она эту видеокарту никак не детектирует, если не ошибаюсь.
georgel
Junior Member


Всего сообщений: 93
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 мар. 2010
DrPass написал:
[q]
Насколько я знаю, в CGA - ничего. Потому и пищит, т.к. биосу что есть CGA, что нет CGA - без разницы, она эту видеокарту никак не детектирует, если не ошибаюсь.
[/q]
Как раз биос на мамке детектирует и поддерживает CGA/MDA. Можно фотку самого адаптера?
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
georgel написал:
[q]
Можно фотку самого адаптера?
[/q]
Будете лечить по фото? ;-)



DrPass написал:
[q]
Насколько я знаю, в CGA - ничего.
[/q]
неправда. В ес1841 точно тестируется видеопамять. В XT тоже.
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
dk_spb написал:
[q]
неправда. В ес1841 точно тестируется видеопамять. В XT тоже.
[/q]
Видеопамять - само собой. Я про то, что CGA не предоставляет обратной связи для проверки, работает она или нет, там всего два регистра управления и регистр состояния.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Вот в том-то и вопрос: что не нравится тесту из BIOS, если с видеопамятью проблем нет?
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Дизассемблер???
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Tronix Сложные пути я знаю, я простые ищу ;-)
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
Я же смотрю, это ЕС7978 - странная, непонятная и аппаратно ни на что не похожая штука. Еще не факт, что у него длинный и два коротких сигнала как-то связаны с видеоадаптером.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
DrPass написал:
[q]
Я про то, что CGA не предоставляет обратной связи для проверки, работает она или нет, там всего два регистра управления и регистр состояния.
[/q]
Опять неправда Ваша.
Родной XT BIOS читает CRT Status port в процессе:
; CRT INTERFACE LINES TEST
; SENSE ON/OFF TRANSITION OF THE
; VIDEO ENABLE AND HORIZONTAL SYNC LINES.


DrPass написал:
[q]
ЕС7978 - странная, непонятная и аппаратно ни на что не похожая штука.
[/q]
чем же она такая?
Обычная XT. Или если форм-факто платы другой то сразу странная?
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
dk_spb написал:
[q]
Опять неправда Ваша.
Родной XT BIOS читает CRT Status port в процессе:
[/q]
Ну как это неправда? А ты посмотри, зачем он его читает - при выводе на экран, чтобы дождаться окончания обратного хода луча, дабы избежать "снега". Это не тест видеокарты.


dk_spb написал:
[q]
Обычная XT. Или если форм-факто платы другой то сразу странная?
[/q]
Ну да. Примерно настолько же ХТ, насколько и ЕС 1841. Вон, даже на этом видеоадаптере микросхема внизу - это, небось, 537РУ8. Или экранный буфер, или загрузка пользовательских шрифтов, верно? В ХТ такой штуки не было :)
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
DrPass написал:
[q]
Ну как это неправда?
[/q]
Обычная обыденная неправда, вызванная переоценкой достаточности информации ;-)
Во-первых, я же написал что кусок кода называется CRT INTERFACE LINES TEST
И в нем если мы не получаем нужного в регистре статуса, то бибикаем один длинный и два коротких.

>Примерно настолько же ХТ, насколько и ЕС 1841
Нет, ну Вы же всё знаете. Что я Вам пытаюсь доказать? И главное зачем?
Я, в отличие от Вас, эту машинку хотя бы видел внутри.
Она гораздо больше XT, чем 1841. И что, у нас уже 1841 перестала быть XT?

>Вон, даже на этом видеоадаптере микросхема внизу - это, небось, 537РУ8
Не "небось". Это вообще РТшка. На ней даже номер прошивки подписан.
В общем всё понятно: И XT уже не XT, и тест стал "выводом текста", и РТшка селектора адресов стала статическим ОЗУ.
Жаль, а я ждал помощи по существу вопроса....
DrPass
Advanced Member


Откуда: Донецк
Всего сообщений: 3566
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
17 апр. 2005
dk_spb написал:
[q]
Обычная обыденная неправда, вызванная переоценкой достаточности информации ;-)
[/q]
У меня есть дизассемблированная XT BIOS, я вообще-то туда тоже заглянул, прежде чем писать. ;)
Там действительно нет никаких тестов CGA, кроме теста видеопамяти, и обращения к регистру состояния сводятся к проверке обратного хода луча. Я не спорю, что у вас там может быть какой-то другой исходник... мало ли их там было написано-переписано. Кстати, если у вас там тест - покажите хоть, что как он тестирует, и какая реакция на прохождение этого теста.


dk_spb написал:
[q]
Нет, ну Вы же всё знаете. Что я Вам пытаюсь доказать? И главное зачем?
[/q]
Да я ничего не пытаюсь доказать, кто там и насколько ХТ. Я просто говорю очевидную вещь, что вероятность встретить в старой советской машине (которая делалась не тупым копированием, а как обычно у нас, с никому не нужной индивидуальностью) привычные нам звуковые оповещения и с тем же смыслом невелика. И что не стоило бы увязывать неисправность видеокарты и это пиканье при старте. Хотите - верьте, хотите - нет. Только и всего.
Если там не РУ8, а РТ5... ну и слава богу. В оригинальной CGA дешифрация адреса, вроде как, с помощью 74LS688 реализовывалась :Р
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
DrPass написал:
[q]
У меня есть дизассемблированная XT BIOS, я вообще-то туда тоже заглянул, прежде чем писать. ;)
Там действительно нет никаких тестов CGA, кроме теста видеопамяти, и обращения к регистру состояния сводятся к проверке обратного хода луча. Я не спорю, что у вас там может быть какой-то другой исходник...
[/q]
Я пользовался оригиналом из IBM_5155_5160_Technical_Reference_6280089_MAR86.pdf страница 5-89 строки, например, 589-608.
Мы же говорили об XT, не правда ли?


DrPass написал:
[q]
И что не стоило бы увязывать неисправность видеокарты и это пиканье при старте. Хотите - верьте, хотите - нет. Только и всего.
[/q]
Так я и не спорю же? Я просто констатирую факт что Вы неправы. Дисасм конкретного BIOS'а показал что причиной одного длинного и двух коротких может быть три:
1) ошибка теста памяти B800:0-B800:4000
2) наличие двух старших бит в порту 62h (I/O and parity check error) после теста в пункте 1
3) еще одно недоизученное место.


DrPass написал:
[q]
В оригинальной CGA дешифрация адреса, вроде как, с помощью 74LS688 реализовывалась
[/q]
Спасибо, именно эта информация от Вас была сегодня наиболее полезной ;-)
Жаль что как всегда не совсем точной (http://www.minuszerodegrees.net/5150_5160/cards/ibm_cga.jpg)
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
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 написал:
[q]
uav1606, нет, этот тест я дал для примера того что оригинальная XT полоучает что-то от 6845, что может влияет на результат теста.
[/q]
А, то есть в Вашем конкретном BIOS этого теста нет?
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
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
dk_spb написал:
[q]
тут пробовал ставить сразу cld и retn, так что ошибка возникает раньше.
[/q]
Мне кажется, что ошибка как раз тут. Поставленные Вами cld и retn тут не помогут, т.к. сигнализирует об ошибке флаг Z: если Z=0, то ошибки нет, если 1 - есть. Флаг проверяется после возврата из процедуры. А устанавливается он в процедуре при выполнении and al, 0Ch. Т.е., видимо, есть какие-то ошибки чётности или ввода-вывода, поэтому после and al, 0Ch флаг Z становится равным 1. А retn и cld значения флага не меняют, он на этом этапе вполне может быть 1, поэтому всё равно вылазит ошибка.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
uav1606 Насколько я понимаю на метку loc_F0E639 (где я ставил cld и retn) мы попадаем только при переходе с адреса E625. И это переход срабатывает только при Z=0. Соответственно по retn мы и возвращаемся с Z=0=ошибки нет.
Или нет?
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
dk_spb, а почему Вы решили, что Z должен быть 0? Его значение на этом этапе может быть любым из-за предыдущих операций.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
uav1606 jz short loc_F0E639
Если я ничего не путаю, то этот переход произойдет только если Z=0. Или нет?
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
dk_spb, прошу прощения, это я всё напутал. %-)
JZ - переход, если Z=1
Другими словами, после jz short loc_F0E639 флаг Z будет равен 1. А признак ошибки - Z=0. Т.е. обратное тому, что я написал. Если Вы ставили retn, и это не помогло, тогда и правда ошибка не там...

Добавлено:
Запускал этот тест на реальном компьютере и на эмуляторе PicoXT - он проходит нормально, если отключить проверку parity и уменьшить объём видеопамяти до 16 КБ (это, насколько я знаю, стандартно для CGA).
По поводу того, что другие тесты вроде CheckIt ошибок у Вас не показывают - могу только предположить, что там другие паттерны, например, или там нет теста с обратным отсчётом.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Да у меня этот BIOS в эмуляторе тоже никаких проблем не вызывает.
Написал на C этот тест, сейчас на реале попробую
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Чудны дела твои, Господи....

Написал тест
=================
p=(char far*) 0xb8000000L;//starting address of vdu memory

//filling memory
for(i=0;i>0x4000;i++)
{
*p=0xFF;
p++;
}

//checking memory
strcpy(w,"\nChecking mem - ");
err=0;
p=(char far*) 0xb8000000L;
for(i=0;i>0x4000;i++)
{
if (*p != 0xFF) err++;
*p=1;
p++;
}
itoa(err,w1,10);
strcat(w,w1);
clrscr();
printf("%s",w);
========================
Так на каждый запуск стабильно от 340 до 380 ошибок!
И куда только Checkit и прочие смотрят????
Fe-Restorator
Гость

Ссылка

Ты-б записывал сбойные адреса - было-б понятно, один чип сбоит или фиговый контакт на конкретной адресной дороге. Или ошибки равномерно рассеяны по всей тестируемой поляне, что укажет на глюк самой программы теста.
Ну, и задержку в несколько десятков ms (20..40) добавить в цикл заполнения видеопамяти. Дабы избежать проблем с медленной памятью.
Сейчас на форуме
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
И что не менее забавно: если заполнять при прямом проходе чем-либо кроме 255, то ошибка в каждом байте.
А при обратном проходе чем не заполняй - ошибок нет.
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Мистика
georgel
Junior Member


Всего сообщений: 93
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 мар. 2010
А поконкретнее по каким адресам проблема? И что там читается как ошибочного байта? Даже если ошибки выглядят случайными, думаю реальных примеров можно привести...
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
georgel Могу переписать программу, но хотелось бы понять что мы будем ловить.
georgel
Junior Member


Всего сообщений: 93
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 мар. 2010
Количество ошибок не дает никакую информацию. Ловишь проблему. Пока на етапе сбора как можно больше инфо о проблеме Возможность подключить другого видеоадаптера полагаю нету?
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Другого адаптера нету.
Еще раз информация: при обратном счете какую бы константу не писал ошибок нет.
При прямом счете пробовал писать степени двойки (2,4,8,16,32,128) и их инверсию - ошибка в каждом байте (8192 ошибок).
Если пишу 255 - ошибок меньше 1000.
Если забить в debug
fb8000:0,2000,ff (или 55 вместо FF)
а потом db800:1000 - FF (или 55) никак не искажаются.
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
dk_spb, тут ещё многое может зависеть от скорости и алгоритма записи, например. Т.е. если большой объём данных быстро переносится в видеопамять через, скажем, stosb, то один эффект, а если изменяются отдельные байты (и другими командами) - другой. И от установленного видеорежима может что-то зависеть...
А почему "в каждом байте" - это 8192? Вроде ж всего должно быть 32768 байт?
Тут ещё могут быть какие-то эффекты, связанные именно с компилятором C - кто его знает, что там на выходе получается в машинных кодах, лучше для этого асм использовать.
georgel
Junior Member


Всего сообщений: 93
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 мар. 2010
И если ошибка, то что на самом деле читается по сравнению с записи? Если только читать несколько раз, то ошибки возникают?
alecv
Advanced Member


Откуда: Санкт-Петербург
Всего сообщений: 5545
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
5 окт. 2004
dk_spb Там процессор случайно не 8086 (16-бит данные)? Тогда может глючить мукс обмена байтами (т.е. пишет не в тот адрес).
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
Алсо, в коде Super PC/Turbo XT BIOS 2.5 перед тем, как начать читать-писать байты, они делают какую-то магию с CRT регистрами:
[q]
\tmov\tal, [ds:65h]\t\t\t; Get CRT hardware mode
\tand\tal, 11110111b\t\t\t; disable video
\tmov\tdx, [ds:63h]\t\t\t; Get 6845 index port
\tadd\tdx, 4\t\t\t\t; add offset for
\tout\tdx, al\t\t\t\t; 6845 controller port
[/q]
И еще неплохо на всякий сделать перед тестом cli, для запрета внешних прерываний, а то мало ли че там еще в таймере или где вызывается и портит регистры какие-нить.
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Как-то кроме матерных ругательств и сказать-то нечего (шшшшш, модератор где-то рядом ;-)

В выходные после снятия стрессов появилась способность и время раскинуть остатками мозгов.
Погонял свой тест в разных вариантах. Выводы:
1) по-прежнему ищется хороший тест памяти с возможностью задания адресов для теста
2) при пословных операциях проблемы нет.
3) при побайтовой записи младшей половины слова (четный байт) в старшую половину слова (нечетный байт) пишется в 95-100% случаев FF, в остальных - что попало.

Теперь хоть понятно куда копать. Жаль что нет схемы :-( Но схему мне вроде добрые люди пообещали.
Tronix
Advanced Member


Откуда: Москва
Всего сообщений: 1749
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
15 янв. 2008
dk_spb написал:
[q]
3) при побайтовой записи младшей половины слова (четный байт) в старшую половину слова (нечетный байт)
[/q]
Какие-то взаимоисключающие параграфы. Если побайтово то какие еще младшие половины слова? Код в студию.

Кстати, если есть программатор, можно попробовать вместо BIOS зашить тесты из архива . http://rghost.ru/50760899 Они "из тех" времен, должны нормально отрабатывать.

Первый тест имеет такую функцию тестирования видео-памяти (TST_A608.BIO):

Видео-тесты: http://habrastorage.org/storag...91ec5a.png

Второй тест как бы все в одном, но мож тоже чем нибудь пригодится (TST_X120.BIO):
http://habrastorage.org/storag...fc1fb8.png
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
>Если побайтово то какие еще младшие половины слова?
А у Вас что, байты сами по себе, слов они не образуют?

>вместо BIOS зашить тесты из архива
Именно эти тесты я и гонял и выше про это писал. Они оба для машин на 8088. Supersoft вообще никаких ошибок не видит, PC_inmate ругается на все три канала 8253. К видеопамяти ни у одного из тестов нареканий нет.
А у меня машинка на 8086. Соответственно механизм побайтовой записи в память они не тестируют.

Я по схеме Искры-1030 посмотрел как этот механизм приблизительно устроен. Попробую посмотреть что у меня на платке....
dk_spb
Advanced Member


Всего сообщений: 5056
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 сен. 2009
Вообщем банальный непропай сигнала BHE в разъеме.
Починил.
Теперь пойду второй такой же чинить. Тот просто вешает машину наглухо если подключен к мамке.
Скорее всего АП5 по шине данных сказала досвидания
<<Назад  Вперед>> Страницы: 1 2 3 4 5
Печать
Полигон-2 »   IBM PC-совместимое. До 2000 года включительно »   Ремонт CGA видеоадаптера на 6845
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS