Вызов прерывания в Win32
От: DaDa Cloun Россия  
Дата: 22.08.03 11:05
Оценка:
Обресую ситуацию: нужно получить адрес видео памяти, чтоб быстро туда писать.
Хотел вызвать 10 прервывания ah=4f al=1. А в регистры es:di передаю адрес масива на 256 байт.
Прервыание возращает информцию у выдеорежиме переданном в регистр (не помню какой. не важно), в том числе и адрес для плоской модели памятти.
А вопрос следющий: как мне передать в регистры es:di адрес, когда у меня модель памяти flat и адреса все выглядят как двойнове слово?!
Спасибр за помощ.
Re: Вызов прерывания в Win32
От: cz Ниоткуда  
Дата: 22.08.03 11:48
Оценка:
Здравствуйте, DaDa Cloun, Вы писали:

DC>Обресую ситуацию: нужно получить адрес видео памяти, чтоб быстро туда писать.

DC>Хотел вызвать 10 прервывания ah=4f al=1. А в регистры es:di передаю адрес масива на 256 байт.
DC>Прервыание возращает информцию у выдеорежиме переданном в регистр (не помню какой. не важно), в том числе и адрес для плоской модели памятти.
DC>А вопрос следющий: как мне передать в регистры es:di адрес, когда у меня модель памяти flat и адреса все выглядят как двойнове слово?!
DC>Спасибр за помощ.

Если правильно понял вопрос. В Win32 пытаешься вызвать прерывание 0x10 (функцию VESы). Но оно будет работать только в реальном режиме процессора. А Win32 — защищенный и там его нет(точнее оно не является тем, чем хочешь). Вобщем никак не вызвать и никак не передать.
Re[2]: Вызов прерывания в Win32
От: DaDa Cloun Россия  
Дата: 22.08.03 12:56
Оценка:
Здравствуйте, cz, Вы писали:

cz>Здравствуйте, DaDa Cloun, Вы писали:


DC>>Обресую ситуацию: нужно получить адрес видео памяти, чтоб быстро туда писать.

DC>>Хотел вызвать 10 прервывания ah=4f al=1. А в регистры es:di передаю адрес масива на 256 байт.
DC>>Прервыание возращает информцию у выдеорежиме переданном в регистр (не помню какой. не важно), в том числе и адрес для плоской модели памятти.
DC>>А вопрос следющий: как мне передать в регистры es:di адрес, когда у меня модель памяти flat и адреса все выглядят как двойнове слово?!
DC>>Спасибр за помощ.

cz>Если правильно понял вопрос. В Win32 пытаешься вызвать прерывание 0x10 (функцию VESы). Но оно будет работать только в реальном режиме процессора. А Win32 — защищенный и там его нет(точнее оно не является тем, чем хочешь). Вобщем никак не вызвать и никак не передать.


А... спасибо. Понял. Тогда как же мне такое провернуть? Только через DirectDraw?
Re: Вызов прерывания в Win32
От: Евгений Коробко  
Дата: 24.08.03 07:00
Оценка:
ИСпользовать прерывания под Windows не стоит — они будут эмулироваться через API. Оптимальный вариант — через DirectDraw
"DaDa Cloun" <forum@rsdn.ru> wrote in message news:361540@news.rsdn.ru...
From: DaDa Cloun

Обресую ситуацию: нужно получить адрес видео памяти, чтоб быстро туда писать.
Хотел вызвать 10 прервывания ah=4f al=1. А в регистры es:di передаю адрес масива на 256 байт.
Прервыание возращает информцию у выдеорежиме переданном в регистр (не помню какой. не важно), в том числе и адрес для плоской модели памятти.
А вопрос следющий: как мне передать в регистры es:di адрес, когда у меня модель памяти flat и адреса все выглядят как двойнове слово?!
Спасибр за помощ.

Оценить
Posted via RSDN NNTP Server 1.7 beta
Евгений Коробко
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.