Поиск:

Ответ в темуСоздание новой темы Создание опроса
> vesa - запись точки 
:(
    Опции темы
vovan_666
Дата 7.10.2007, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.10.2007

Репутация: нет
Всего: нет



как писать точку в графических режимах 12h или 13h понятно, но я не могу понять как писать точку, используя такой режим (vesa):
mov ax,4f02h
mov bx,105h
int 10h
обычная запись в видеопамять ничего не дает. Кто знает, напишите пожалуйста, как же мне забабахать точку.
PM MAIL   Вверх
Lonley
Дата 8.10.2007, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



Код

pocedure VESAINIT;Assembler;
asm
    mov ax,4f02h    { функция VESA }
    mov bx,10fh    { режим 320*200 16-милионов }
    int 10h        {BIOS video interrupt}
    mov ax,0a000h    {video memory adress}
    mov es,ax    {init es for video memory}
end


Добавлено @ 13:50
Код

Procedure VESAPix(x,y:Word);Assembler;
asm
    mov ah,4fh    { востанавливаем окно }
    mov al,05    {--}
    mov bh,0    {--}
    mov bl,0    {--}
    mov dx,0    {--}
    int 10h        {--}
    mov ax,1280
    mul y        { ;умножаем на У }
    cmp dx,1    { если в dx 1 то на 1 шаг }
    je @corect1    {}
    cmp dx,2    { на 2 шага }
    je @corect2    {}
    cmp dx,3    { на 3 шага }
    je @corect3    {}
    shl x,2        {}
    add ax,x    {}
    adc dx,0    { сложение с корректировкой }
    cmp dx,1    { 1 шаг }
    je @corect1t    {}
    cmp dx,2    { 2 шага }
    je @corect2t    {}
    cmp dx,3    { 3 шага }
    je @corect3t    {}
    mov si,ax    { ;теперь адресуем видео память }
@out:
    jmp @exits    { ;выходим }
@corect1:        {}
    shl x,2        { ;сдвиг на 2 умножаем на 4 }
    add ax,x    { ;в ax конечный результат }
    adc dx,0    { ;сложение с корректировкой }
@corect1t:        {}
    mov si,ax    { ;в si ax }
    cmp dx,2    { cмотрим в dx число то есть какой шаг стоит }
    je @corect2t    {}
    cmp dx,3    { 3 шага }
    je @corect2t    {}
@not_cor:        {}
    mov ah,4fh    {}
    mov al,05    { ;62454 }
    mov bh,0    {;---------}
    mov bl,0    {;---------}
    mov dx,1    { ;переносим окно на один шаг }
    int 10h        {}
    jmp @out    {}
@corect2:        {}
    shl x,2        { ;сдвиг на 2 умножаем на 4 }
    add ax,x    { ;в ax конечный результат }
    adc dx,0    {}
    cmp dx,3    {}
    jz @corect3t    {}

@corect2t:        {}
    mov si,ax    { ;в si ax }
    mov ah,4fh    {;}
    mov al,05    { ;62454 }
    mov bh,0    {;---------}
    mov bl,0    {;---------}
    mov dx,2    { ;переносим окно на один шаг }
    int 10h        {}
    jmp @out    {}
@corect3:        {}
    shl x,2        { ;сдвиг на 2 умножаем на 4 }
    add ax,x    { ;в ax конечный результат }
    adc dx,0    { сложение с корректировкой }
@corect3t:        {}
    mov si,ax    { ;в si ax }
    mov ah,4fh    { функция }
    mov al,05    { ;62454 }
    mov bh,0    { ;страница }
    mov bl,0    { ;номер окна }
    mov dx,3    { ;переносим окно на 1 шаг }
    int 10h        { BIOS interrupt }
    jmp @out    { на вывод пиксель }
@exits:
end

------------------------------------------------
это было аж в 2003 году уже давно не занимался VESA-ой
да кстати посмотри видео карта може не все режимы поддерживать
сначало нужно проделать тест smile

Добавлено @ 13:58
да есть книга Пирогов.... вроде автор по ASM там  про VESA рассказано...
---
на сколько я помню адресное окно видео памяти одинаковое
---

Это сообщение отредактировал(а) Lonley - 8.10.2007, 13:59


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
vovan_666
Дата 9.10.2007, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.10.2007

Репутация: нет
Всего: нет



спасибо! очень благодарен! буду пробовать
PM MAIL   Вверх
Lonley
Дата 9.10.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



да вот еще что... на сколько я помню т.к. адресно просторанство вывода одинаковое... то оно имеет свойтва окна ... стало быть это окно необходимо перемещать и выводить точку ужет относительно него.. его..  smile т.е. останольное все тоже самое за исключением нет палитры... цвет кодируется на прямую...т.е. 00.00.00h три байта в видео и кладешь... помещаешь  smile 

Это сообщение отредактировал(а) Lonley - 9.10.2007, 10:26


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.