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

Полигон-2

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

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

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

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

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

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

<<Назад  Вперед>> Страницы: 1 2 3 4 5
Печать
 
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
Мистика
<<Назад  Вперед>> Страницы: 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