_BC_ Если есть такая возможность - протестируй при запущеной 3D игре или др. приложении во весь экран. Там frame buffer BASE вообще летает по видеопамяти раз 60 за секунду.
PROFi Отработала ок - но без видимого результата. так и должно быть? Лог DbgView прикрепил. P.S. прогу прогонял несколько раз - значения всегда одинаковые. это на всякий случай
PROFi - фигасе ты там намудрил. У мене на w2k ток было "Loading..." а потом черный экран и все сглючило. Или у тя эта тема под вислу? ps: хм.. хотя архивы какието битые блин. Пришлось чек-сумму поправлять у дровины. Се равно в релокейшоны мусор попал. Могло из за этого сглючить? А пересобирать влом.)))
разобрался с неверным смещением начала -- у нвидии оно в отличие от ати не задается в байтах, а вычисляется в соответствии с pitch и bpp. Невнимательность. планируемый "roadmap" пока такой: - старая ати-карта TheDeath - gf8 - правильное вычисление размера экрана на новых ати Для полноценной реализации кстати надо будет еще как минимим добавлять поддержку мутных цветовых режимов и 2х дисплеев. l_inc попробуй, также в разных режимах:
_BC_ BSOD Код (Text): PAGE_FAULT_IN_NONPAGED_AREA STOP: 0x00000050 (0xBA657000, 0x00000008, 0xBA656FFE, 0x00000000) r0video.sys - Address BA656FFE base at BA656000, DateStamp 4736ee2 ATI MOBILITY Radeon X1400
Jupiter всё верно, до новых ати руки еще не дошли. TheDeath небольшое уточнение -- карта RageXL (DID 4752h), по регистрам схожа с Mach 64.
но старый код хотя бы не бсодил %) вероятно, имеет смысл детектить (хотя бы поверхностно) тип карточки и выгружать дров, если карта не поддерживается.
_BC_ Крест на всех разрешениях получился точно посередине. Извиняюсь, что так долго. У меня на рабочем столе 90 значков, и, чтобы при смене разрешения не восстанавливать их руками на место, решил написать программку, которая сохранит их положение, а потом восстановит. Так вот пока писал, три раза сбивал их положение и три раза восстанавливал. БОльшая часть времени ушла на восстановление положения значков на рабочем столе.
_BC_ Слушай ты хоть отладочную инфу куда-нибудь всунь, что б в dbgview можно было почитать почему "An error occured while drawing"
Jupiter Понял, послушай пришли ветку реестра \\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Class\\{4D36E968-E325-11CE-BFC1-08002BE10318}
у BC устроено все довольно просто... У меня крест выводиться простейшей прогой Код (Text): program hello; uses windows; var h,b : cardinal; procedure startdriver (); begin //...cut end; begin startdriver (); h := CreateFileA ('\\.\R0VIDEO', $80000000, 0, nil, 3, $80, 0); DeviceIoControl ( h, $340008, 0, 0, 0, 0, b, nil); CloseHandle (h); end. А дальше - телодвижения дровины... Как понял считываеться PCI-cfg, ряд какихто еще значений ну и мэппируеться LFB (мож с этим и облом-с какой)... Странно а в DOS на VESA как хоть дела обстоят у 8800-джифорсов?
Jupiter Спасибо причина найдена - ты 2х кратно переустанавливал драйвера видеокарты (не думал что так может быть) Тебе нужно заменить строчку в драйвере SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000 stealth.sys на SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0001 и пересчитать контрольную сумму. Доработаю такую возможность в драйвере в ближайшее время.