VESA рисование точки

Тема в разделе "WASM.OS.DEVEL", создана пользователем Daggo, 13 янв 2012.

  1. Daggo

    Daggo Артём

    Публикаций:
    0
    Регистрация:
    12 янв 2012
    Сообщения:
    7
    Адрес:
    Самара
    Пробовал работать с графикой в PM через B8000h, там всё просто. Записал байт - появилась точка. Но таки разрешение экрана маленькое что огорчает.
    Охото поюзать VESA, но к сожалению толковых доков с примерами таки не нашёл.
    На сколько я понимаю, нужно ещё в RM через int 10h установить видеорежим и получить адрес буфера видеопамяти, а потом в PM можно будет так же как в B8000h писать?
    Может кто поделится сорсами по этой теме? Желательно пример рисования точки =)
     
  2. reversecode

    reversecode Guest

    Публикаций:
    0
    гугл запустить не судьба?
     
  3. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    что бы нарисовать пиксель тебе надо будет вычислить его линейное смещение относительно начального адреса буфера видеопамяти.
    Еще надо учитывать, если у тебя режим 24-битных цветов, то каждый пиксель представляет собой 3 байта.
    Забудь про 0xB8000, там другой адрес, тот который получишь от функции.
    исходный кусок кода могу потом выложить, если нужен пример...
     
  4. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    Этих VESA было минимум три версии, плюс варианты с доступом через переключение банков или линейный буфер... В общем, поищи по файлопомойкам библиотеку для работы с SVGA- режимами, их раньше полно было, под любой язык и компилятор.
     
  5. Daggo

    Daggo Артём

    Публикаций:
    0
    Регистрация:
    12 янв 2012
    Сообщения:
    7
    Адрес:
    Самара
    ну, да это очевидно)

    а это не очевидно. подскажите, как установить видеорежим и получить адрес буфера видеопамяти.

    на сколько я знаю режим устанавливается int 10h функция 4F02h. а дальше как? как получить адрес?

    PS: извиняюсь, если задаю нубсние вопросы. просто не так давно этим занимаюсь, а раньше был web-кодером)
     
  6. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Daggo
    Гугли. У зубкова описано, в Компьютере были статьи, У Фроловых в их серии книг.
    Стандарт найти и скачать не проблема.
    256 битах примеров полно.
     
  7. Daggo

    Daggo Артём

    Публикаций:
    0
    Регистрация:
    12 янв 2012
    Сообщения:
    7
    Адрес:
    Самара
    в поисках ответа на вопрос наткнулся на интересную доку
    http://www.delorie.com/djgpp/doc/rbinter/ix/10/4F.html

    всё здорово, почти разобрался, но остался один вопрос: вот, прерывание нам грит адрес видео буфера, а можно ли его куда-нибудь сместить? тобеш самому указать где будет видео буфер... такое возможно?
     
  8. Hell_Knight

    Hell_Knight New Member

    Публикаций:
    0
    Регистрация:
    3 ноя 2009
    Сообщения:
    51
    ну физический адрес ты не поменяешь...
    вот если у тебя страничная адресация... то можно назначить удобный тебе логический адрес
     
  9. shm

    shm New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    93
    Сместить можно, но это может оказаться сложно, открыто не документировано, а главное и модельно специфично. Короче для этих целей лучше виртуальную память использовать.