| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > VESA |
| Автор: renji 28.5.2006, 19:16 | ||||
| 1. Как достать информацию о поддерживаемьіх режимах? Не понимаю я почти ничего в ассемлерньіх штуках. Вот шаблон как запрос делать:
С AX, и тому подобньіми кажется немножко разобрался, но не знаю что делать с ES:DI, как его в union REGS оформить?. Если можно, пример кода пожалуйста. Структура возвращаемого буфера тоже мне непонятна.
Насколько я понимаю мне нужно добьіть VideoModePtr, то есть список поддержьіваемьіх SVGA режимов, но совсем не понимаю как на практике сделать. Короче, нуждаюсь в примере |
| Автор: bsa 28.5.2006, 19:48 | ||
Если я не ошибся с LEA (Load Effective Address) - всегда с ней проблемы были, то должно работать. Добавлено @ 19:51 Данный код расчитан для работы из-под Borland C++ 3.1 (реальный режим процессора, то есть). Если модель памяти по умолчанию far или huge, то far можно убрать из декларации указателей. |
| Автор: sergejzr 28.5.2006, 20:02 |
| Модератор: Пожалуйста, один топик - один вопрос. Модератор: Название темы должно отражать ее суть! |
| Автор: bsa 28.5.2006, 20:25 |
| sergej.z, у человека и задан один вопрос + 1/2 решения. |
| Автор: renji 28.5.2006, 21:46 | ||
| Спасибо з а ответ. Извиняюсь если плохо оформил названия темьі. Но наверное вопросов собираюсь задавать много Как проверить значения ah на вьіходе? (с ассемблерньіми включениями никогда дела не имел просто) Добавлено @ 21:57 И еще такое - например я хочу вьівести на екран значения Signature структурьі VgaInfoBlock, почему так не работает:
говорит "Improper use of typedef 'VgaInfoBlock'" |
| Автор: bsa 29.5.2006, 17:02 | ||
| Я тебе показал пример функции, а не полную реализацию. VgaInfoBlock - у тебя это тип, а не переменная. Для получения содержимого регистра AH, тебе надо присвоить какой либо переменной значение переменной _AH:
|
| Автор: regis 30.5.2006, 13:36 | ||||
Проблема, как я понимаю, заключается в том, откуда взять ES? Правильный ответ зависит от модели памяти, в которой компилируется ваша программа. Если Используется tiny, small или compact (насчет последней не уверен), то ES должно совпадать с сегментом данных программы (DGROUP). Если medium, large или huge -- все указатели будут far, то есть содержат сегментную часть, которую нужно перегрузить в ES при вызове. |