Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графика в Защищенном режиме, Как реализовать? 
:(
    Опции темы
gMan
  Дата 16.3.2005, 12:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может кто знает как установить графический режим и вывести точку на экран после перехода в защищенный? Или может кто знает где можно узнать?

Заранее спасибо.
  Вверх
oleg1973
Дата 16.3.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



в принципе все описано в спецификации vesa
ну а проще говоря нужно получить адрес LinearFrameBuffer
получить его можно вызвав (не помню номер) функцию прерывания 10 для режимов vesa
http://www.theworld.com/obi/Standards/VGA/vesa.txt


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Chingachguk
Дата 16.3.2005, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



gMan

Уточни, что за защищенный режим у тебя: собственный переключатель, используешь dpmi или еще что.

Например, при использовании dpmi можно выполнять через int 31h прерывания реального режима, в тч и BIOS.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
gMan
Дата 17.3.2005, 14:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нет я неизпользую DPMI следовательно не могу вызывать ф-ии БИОСа. Наверно надо как-то через порты? Да?
  Вверх
Chingachguk
Дата 19.3.2005, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Все зависит от того, какую задачу ты решаешь.

Если ты изучаешь защищенный режим и учишься программировать, то лучше научиться использовать режим виртуального V86. Об этом можно прочить в книге Финогенова. Благодаря нему можно вызывать подпрограммы BIOS, DOS и т.д.

Если ты решаешь конкретную задачу, то тут может быть много вариантов. В первую очередь непонятен твой отказ от DPMI. Если все же нужно прогрраммировать свой супервизор, то, во-первых, можно переключиться в графику до переключения в защиненный режим, ну а если прямо таки необходимо переключать режимы монитора внутри защищенного режима, то можно действительно изучить команды работы с видеоконтроллером. На эту тему множество документации, можно напрямую вызвать BIOS с функцией переключения режима, и трассируя его в отладчике, посмотреть команды in/out, которые переключают режим монитора.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Guest
Дата 20.3.2005, 11:05 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(Chingachguk @ 19.3.2005, 09:13)
изучить команды работы с видеоконтроллером

Да именно это мне и надо!

  Вверх
Shura
Дата 24.3.2005, 22:31 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди, помогите!! Поменял железо и VESA уже не пашет, а очень надо. Можно ли как-нибудь по-другому сделать 1024*768*24b или лучше 32b?? Заранее благодарен! smile
  Вверх
oleg1973
Дата 25.3.2005, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



как это vesa не пашет? ты что поставил видюху 1980 года выпуска? smile
давай чуть поподробней


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Guest
Дата 28.3.2005, 07:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











А где ссылка от Theworld.com/obi ?
  Вверх
Guest
Дата 28.3.2005, 07:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Может быть просто VESA другой версии?.
  Вверх
Shura
Дата 28.3.2005, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Видюха RADEON 9600PRO. Раньше был GF - работало, а сейчас вообще черный экран! Работает VGA, но этого мало! Может я что-то не так делаю?

text segment 'code'
assume CS:text

begin: mov AH,00
mov AL,10h
mov AX,4F02h
mov BX,118h
int 10h
mov SI,0
mov CX,640

line: push CX
mov AH,0Ch
mov AL,255 ; RED
mov BL,100 ; BLUE
mov BH,0
mov CX,SI
mov DX,SI
int 10h
inc SI
pop CX
loop line

mov AH,08h
int 21h
mov AH,00h
mov AL,03h
int 10h
mov AH,00h
mov AL,03h
int 10h
text ends
end begin

Управление цветами я нашел эксперементально, так что может в этом дело? если это верно, то как управлять зеленым? Постучавшимся в аську (288-576-179) буду рад smile А вы вообще как часто появляетесь?
PM MAIL   Вверх
oleg1973
Дата 28.3.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



а зачем ты точки через прерывания ставиш? этоже медленно


Код

mov ax,0x4f02
mov bx,118h
int 0x10

push 0xa000
pop es
xor di,di
mov eax,0x00112233
mov ecx,640
repnz stosd

в данном примере нада установить режим 32 бита на точку
или заменить stosd на stosw если режим 16 на точку
ну и значение в еах тоже подправить smile


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Shura
Дата 29.3.2005, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



В EAX, на сколько я понял, ты заносишь RGB, вывод точки осуществляется 5-10 строками, в ECX,EDX заносятся XY точки? А что ты в ES заносишь? Я от такого волосею, так бы все еще smile !
Благодарствую! smile
Добавлено @ 20:56
В EAX, на сколько я понял, ты заносишь RGB, вывод точки осуществляется 5-10 строками, в ECX,EDX заносятся XY точки? А что ты в ES заносишь? Я от такого волосею, так бы все еще smile !
Благодарствую! smile
PM MAIL   Вверх
oleg1973
Дата 29.3.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

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



в есх скажем так длинна строки
в еs сегмент видеобуфера


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
Shura
Дата 30.3.2005, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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