Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Ремонт CGA видеоадаптера на 6845 |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 | Печать |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 декабря 2013 18:37 Сообщение отредактировано: 5 декабря 2013 19:57
dk_spb написал: Мне кажется, что ошибка как раз тут. Поставленные Вами cld и retn тут не помогут, т.к. сигнализирует об ошибке флаг Z: если Z=0, то ошибки нет, если 1 - есть. Флаг проверяется после возврата из процедуры. А устанавливается он в процедуре при выполнении and al, 0Ch. Т.е., видимо, есть какие-то ошибки чётности или ввода-вывода, поэтому после and al, 0Ch флаг Z становится равным 1. А retn и cld значения флага не меняют, он на этом этапе вполне может быть 1, поэтому всё равно вылазит ошибка. тут пробовал ставить сразу cld и retn, так что ошибка возникает раньше. |
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 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 5 декабря 2013 18:51 Сообщение отредактировано: 5 декабря 2013 18:51
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 |
NEW! Сообщение отправлено: 5 декабря 2013 23:06 Сообщение отредактировано: 5 декабря 2013 23:20
Ты-б записывал сбойные адреса - было-б понятно, один чип сбоит или фиговый контакт на конкретной адресной дороге. Или ошибки равномерно рассеяны по всей тестируемой поляне, что укажет на глюк самой программы теста. Ну, и задержку в несколько десятков 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 |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |