IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Адресация,что-ли?
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской
Реальное имя: Левон

Репутация: -  -4  +


Помогите пожалуста сообразить...Почитал про VESA 1.2 в статье С.А.Андрианова.Понравилось.
http://www.osp.ru/pcworld/1998/07/159374/

Но у меня есть проблеммммма.
Прямо с нулевой функции,которая возвращает инфу о наличии весы.
Как организовать эти 256 байт для буфера и записать его адрес в регистры es:di ?

Цитата

Функция 0 возвращает информацию о версии VESA и производителе видеоплаты. Перед ее вызовом необходимо выделить в нижней памяти буфер длиной 256 байт. В версии 2.0 функция позволяет получить некоторую дополнительную информацию, если в первые четыре байта выделенного буфера предварительно записать 4-байтную сигнатуру "VBE2". При этом размер буфера должен составлять 512 байт.

На входе:
AX = 4F00h;
ES:DI - указатель на буфер,
в который надо поместить информацию,
в формате сегмент:смещение
(обратите внимание: именно сегмент
реального режима, а не селектор защищенного).
На выходе:
AX - статус завершения.

Пишу в компиляторе паскаля,не 32.


--------------------
"Непросто тем,кто полагается на истину авторитета,вместо того,чтобы полагаться на авторитет истины"
Джэрольд Мэсси
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
Тут очепятка с word
Нет... Я ж не предлагаю тебе TWordArray использовать в качестве буффера... Указатель на TWordArray присутствует 6-ым полем в структуре. А размер самой структуры TBuffer равен 256 байт.

Цитата
Значит,код будет выглядеть примерно по-следуйщему,если просто с массивом?
Если с массивом - то вот так:
type TBuffer = array[0 .. 255] of byte;
function IsInstalled(var Buffer: TBuffer): Boolean; assembler;
asm
mov ax, 4F00h
les di, Buffer
int 10h
end;

var
buff: TBuffer;
begin
if IsInstalled(buff) then begin
{ Здесь работаешь дальше }
end
else writeln('Vesa не установлена...');
end.
, не придумывай сам себе проблемы. Пишешь на Паскале со вставками - так пиши именно на Паскале, а не пытайся ВСЕ подряд делать на вставках. Хочешь все делать на ассемблере - пиши на ассемблере.

Цитата
Тут как-бы без записей(я их не понимаю как-то...),type и прочего...
А не рановато тебе с Vesa-ой работать, если в записях не разобрался?
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.05.2024 13:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name