Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Boriss
Статус: Академик
Рейтинг: 2406
∙ повысить рейтинг »
_Ayl_
Статус: Профессионал
Рейтинг: 1849
∙ повысить рейтинг »
vladisslav
Статус: 6-й класс
Рейтинг: 1227
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Программирование / Assembler (Ассемблер)

Номер выпуска:1346
Дата выхода:28.05.2010, 23:00
Администратор рассылки:Лысков Игорь Витальевич, Модератор
Подписчиков / экспертов:261 / 63
Вопросов / ответов:1 / 1
IRC-канал по теме:#assembler

Вопрос № 178577: Здравствуйте! Помогите пожалуйста с программированием видеокарты SuperVGA с помощью стандарта VESA. Задание - вывести информацию о ЦАП. Предпочтителен - TASM, но буду рад и другим вариантам. Процессор - 64-битный. Спаси...



Вопрос № 178577:

Здравствуйте!

Помогите пожалуйста с программированием видеокарты SuperVGA с помощью стандарта VESA.

Задание - вывести информацию о ЦАП.

Предпочтителен - TASM, но буду рад и другим вариантам.
Процессор - 64-битный.

Спасибо!

Отправлен: 22.05.2010, 22:01
Вопрос задал: Гальцов Андрей, Практикант
Всего ответов: 1
Страница вопроса »


Отвечает Лысков Игорь Витальевич, Модератор :
Здравствуйте, Гальцов Андрей.
Даю маленькую программку вместе со справкой от Ralf Brown
Код:
comment ~
INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
AX = 4F00h
ES:DI -> buffer for SuperVGA information (see #00077)
Return: AL = 4Fh if function supported
AH = status
00h successful
ES:DI buffer filled
01h failed
---VBE v2.0---
02h function not supported by current hardware configuration
03h function invalid in current video mode
Desc: determine whether VESA BIOS extensions are present and the capabilities
supported by the display adapter
SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
Index: installation check;VESA SuperVGA

Format of Su perVGA information:
Offset Size Description (Table 00077)
00h 4 BYTEs (ret) signature ("VESA")
(call) VESA 2.0 request signature ("VBE2"), required to receive
version 2.0 info
04h WORD VESA version number (one-digit minor version -- 0102h = v1.2)
06h DWORD pointer to OEM name
"761295520" for ATI
0Ah DWORD capabilities flags (see #00078)
0Eh DWORD pointer to list of supported VESA and OEM video modes
(list of words terminated with FFFFh)
12h WORD total amount of video memory in 64K blocks
---VBE v1.x ---
14h 236 BYTEs reserved
---VBE v2.0 ---
14h WORD OEM software version (BCD, high byte = major, low byte = minor)
16h DWORD pointer to vendor name
1Ah DWORD pointer to product name
1Eh DWORD pointer to product revision string
22h WORD (if capabilities bit 3 set) VBE/AF version (BCD)
0100h for v1.0P
24h DWORD (if capabilities bit 3 set) pointer to list of suppor ted
accelerated video modes (list of words terminated with FFFFh)
28h 216 BYTEs reserved for VBE implementation
100h 256 BYTEs OEM scratchpad (for OEM strings, etc.)
Notes: the list of supported video modes is stored in the reserved portion of
the SuperVGA information record by some implementations, and it may
thus be necessary to either copy the mode list or use a different
buffer for all subsequent VESA calls
not all of the video modes in the list of mode numbers may be
supported, e.g. if they require more memory than currently installed
or are not supported by the attached monitor. Check any mode you
intend to use through AX=4F01h first.
the 1.1 VESA document specifies 242 reserved bytes at the end, so the
buffer should be 262 bytes to ensure that it is not overrun; for
v2.0, the buffer should be 512 bytes
the S3 specific video modes will most likely follow the FFFFh
terminator at the end of the standard modes. A search must then
be made to find them, FFFFh will also terminate this second list
in some cases, only a "stub" VBE may be present, supporting only
AX=4F00h; this case may be assumed if the list of supported video
modes is empty (consisting of a single word of FFFFh)

Bitfields for VESA capabilities:
Bit(s) Description (Table 00078)
0 DAC can be switched into 8-bit mode
1 non-VGA controller
2 programmed DAC with blank bit (i.e. only during blanking interval)
3 (VBE v3.0) controller supports hardware stereoscopic signalling
3 controller supports VBE/AF v1.0P extensions
4 (VBE v3.0) if bit 3 set:
=0 stereo signalling via external VESA stereo connector
=1 stereo signalling via VESA EVC connector
4 (VBE/AF v1.0P) must call EnableDirectAccess to access framebuffer
5 (VBE/AF v1.0P) controller supports hardware mouse cursor
6 (VBE/AF v1.0P) controller supports hardwa re clipping
7 (VBE/AF v1.0P) controller supports transparent BitBLT
8-31 reserved (0)

INT 10 - VESA SuperVGA BIOS v2.0+ - G ET/SET PALETTE ENTRIES
AX = 4F09h
BL = subfunction
00h set (primary) palette
01h get (primary) palette
02h set secondary palette data
03h get secondary palette data
80h set palette during vertical retrace
CX = number of entries to change
DX = starting palette index
ES:DI -> palette buffer, array of DAC entries (see #00086)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"

Format of VESA VBE palette entry:
Offset Size Description (Table 00086)
00h BYTE red
01h BYTE green
02h BYTE blue
03h BYTE alpha or alignment byte
~
.model tiny
.code
.startup

;GET SuperVGA INFORMATION
mov ax, 4F00h
lea di, SuperVGABuffer ;ES:DI -> buffer for SuperVGA information (see #00077)
int 10h
cmp ax,004fh
jne SuperVGA_NotFound

;GET PALETTE ENTRIES
mov ax, 4F09h mov bl, 1 ;get (primary) palette
xor dx, dx
lea di, SuperVGABuffer ;ES:DI -> buffer for RGBA
mov cx, 100h ;количество
int 10h
cmp ax, 004fh ;проверка на корректность
jne SuperVGA_NoPalette

;get secondary palette data
mov ax, 4F09h
mov bl, 2 ;get secondary palette data
xor dx, dx ;стартовый индекс
lea di, SuperVGABuffer ;ES:DI -> buffer for RGBA
mov cx, 100h ;количество
int 10h
cmp ax, 004fh ;проверка на корректность
jne SuperVGA_NoPalette

SuperVGA_NotFound:
SuperVGA_NoPalette:
mov ax, 4c00h
int 21h

SuperVGABuffer label byte

end

-----
Удачи!

Ответ отправил: Лысков Игорь Витальевич, Модератор
Ответ отправлен: 23.05.2010, 18:17
Номер ответа: 261587
Украина, Кировоград
Тел.: +380957525051
ICQ # 234137952
Mail.ru-агент: igorlyskov@mail.ru
Абонент Skype: igorlyskov

Оценка ответа: 5
Комментарий к оценке:
Спасибо!...

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 261587 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:

  • Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.16 от 26.05.2010

    В избранное