Пробовал работать с графикой в PM через B8000h, там всё просто. Записал байт - появилась точка. Но таки разрешение экрана маленькое что огорчает. Охото поюзать VESA, но к сожалению толковых доков с примерами таки не нашёл. На сколько я понимаю, нужно ещё в RM через int 10h установить видеорежим и получить адрес буфера видеопамяти, а потом в PM можно будет так же как в B8000h писать? Может кто поделится сорсами по этой теме? Желательно пример рисования точки =)
что бы нарисовать пиксель тебе надо будет вычислить его линейное смещение относительно начального адреса буфера видеопамяти. Еще надо учитывать, если у тебя режим 24-битных цветов, то каждый пиксель представляет собой 3 байта. Забудь про 0xB8000, там другой адрес, тот который получишь от функции. исходный кусок кода могу потом выложить, если нужен пример...
Этих VESA было минимум три версии, плюс варианты с доступом через переключение банков или линейный буфер... В общем, поищи по файлопомойкам библиотеку для работы с SVGA- режимами, их раньше полно было, под любой язык и компилятор.
ну, да это очевидно) а это не очевидно. подскажите, как установить видеорежим и получить адрес буфера видеопамяти. на сколько я знаю режим устанавливается int 10h функция 4F02h. а дальше как? как получить адрес? PS: извиняюсь, если задаю нубсние вопросы. просто не так давно этим занимаюсь, а раньше был web-кодером)
Daggo Гугли. У зубкова описано, в Компьютере были статьи, У Фроловых в их серии книг. Стандарт найти и скачать не проблема. 256 битах примеров полно.
в поисках ответа на вопрос наткнулся на интересную доку http://www.delorie.com/djgpp/doc/rbinter/ix/10/4F.html всё здорово, почти разобрался, но остался один вопрос: вот, прерывание нам грит адрес видео буфера, а можно ли его куда-нибудь сместить? тобеш самому указать где будет видео буфер... такое возможно?
ну физический адрес ты не поменяешь... вот если у тебя страничная адресация... то можно назначить удобный тебе логический адрес
Сместить можно, но это может оказаться сложно, открыто не документировано, а главное и модельно специфично. Короче для этих целей лучше виртуальную память использовать.