Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2016, 21:11   #1
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию Запись в видеопамять в рельном режиме

У меня есть некоторые вопросы по устройству видеопамяти:
1. По каким принципам создаётся цветовая палитра?
2. Размер видимой видеопамяти 128 Кб, но есть режимы, которые используют больше, чем 128 Кб памяти, как тогда адресовать видеопамять за этими 128 Кб?
3. Как получать нестандартные видеорежимы например 320x240 256 цветов или 1024x600x16?
timcryt вне форума Ответить с цитированием
Старый 30.04.2016, 21:19   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

1)зависит от формата.
обычно они хорошо описаны.
2)окна, вы выбираете на какую часть видео памяти ваше окно смотрит.
ну или LFB через нереальный режим.
3)запросить у видео карты список режимов.
http://wiki.osdev.org/VESA_Video_Modes

старое вспоминать заставляете
(писал одно время мини-ОС)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.04.2016, 21:36   #3
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

1. Как создаётся цветовая палитра
1. 256 цветов
2. 16 бит
3. 24 бит
2. А как эти окна менять?
3. Там написано про VESA, но есть же ещё особые режимы VGA, которые не относятся к VESA (например тот же 320x240 256 цветов).
Кстати, я тоже пишу мини ОС.
timcryt вне форума Ответить с цитированием
Старый 30.04.2016, 22:38   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
6.7 Function 05h - CPU Video Memory Window Control

This function sets or gets the position of the specified window in the video memory. The function allows direct access to the hardware paging registers. To use this function properly, the software should use VESA BIOS Function 01h (Return Super VGA mode information) to determine the size, location, and granularity of the windows.
Input: AH = 4Fh Super VGA support
AL = 05h Super VGA video memory window control
BH = 00h Select Super VGA video memory window
BL = Window number
0 = Window A
1 = Window B
DX = Window position in video memory
(in window granularity units)

Output: AX = Status
(See notes below)


Input: AH = 4Fh Super VGA support
AL = 05h Super VGA video memory window control
BH = 01h Return Super VGA video memory window
BL = Window number
0 = Window A
1 = Window B

Output: AX = Status
DX = Window position in video memory
(in window granularity units)
(See notes below)
Notes

This function is also directly accessible through a far call from the application. The address of the BIOS function may be obtained by using VESA BIOS Function 01h, Return Super VGA mode information. A field in the ModeInfoBlock contains the address of this function. Note that this function may be different among video modes in a particular BIOS implementation, so the function pointer should be obtained after each set mode.

In the far call version, no status information is returned to the application. Also, the AX and DX registers will be destroyed. Therefore, if AX and/or DX must be preserved, the application must do so priot to making the far call.

The application must load the input arguments in BH, BL, and DX (for set window) but does not need to load either AH or AL in order to use the far call version of this function.
http://www.monstersoft.com/tutorial1...tro.html#5.1.1
если уж так охота извращений с реальным режимом, кстати, а почему он то?

Цитата:
1. 256 цветов
2. 16 бит
3. 24 бит
какой формат пикселей?
для 8 бит бывает например RRGGGBBB
а бывает и RRGGBBXX
(для примера, это не реальные значения)
карта режима все это расскажет.
Цитата:
3. Там написано про VESA, но есть же ещё особые режимы VGA, которые не относятся к VESA (например тот же 320x240 256 цветов).
видео их все равно вернет.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 30.04.2016, 22:46   #5
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

Работа с файловой системой реализована в реальном режиме. Да и в защищённом режиме очень большие проблемы с загрузчкиком, а GRUB тяжеловат.
timcryt вне форума Ответить с цитированием
Старый 02.05.2016, 17:58   #6
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

У меня появился вопрос, получается окон только два, значит адресовать можно только 256 Кб видео памяти, но есть же режимы, которые требуют больше. Также я нашёл объяснения цветовой палитры, но очень плохо их понял (например как понять 1:5:5:5).
timcryt вне форума Ответить с цитированием
Старый 02.05.2016, 18:12   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

записали данные на окно, переместили, записали еще. и тп.

по поводу палитры
там еще смещение должно быть поидее.
это битовый формат одного пикселя.
из вашего выходит примерно так(без смещений он не полный, да и я как пример)
XRRRRRGGGGGBBBBB
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 02.05.2016, 19:28   #8
timcryt
Форумчанин
 
Регистрация: 25.01.2016
Сообщений: 105
По умолчанию

А как тогда окна перемещать, в туториале про это ничего не написано, и что за цвет такой - X (B - blue, G - green, R - red, а X что?)?

Последний раз редактировалось timcryt; 02.05.2016 в 19:41.
timcryt вне форума Ответить с цитированием
Старый 02.05.2016, 20:12   #9
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

http://www.osp.ru/pcworld/1998/07/159374/
Я вам ссылку уже давал там всё описано. Если среди рекламы вы не заметили, то там 4 страницы.

Цитата:
Функция 5 управляет экранным окном. Она позволяет переместить окно, через которое процессор обращается к различным участкам видеопамяти, а также узнать, в котором положении установлено текущее окно. Для повышения производительности эта функция может быть вызвана напрямую по адресу, возвращаемому функцией 1.
На входе: AX = 4F05h;
BH = 0 - функция установки положения окна;
= 1 - функция запроса положения окна;
BL = 0 - окно А;
= 1 - окно В;
DX - положение окна в видеопамяти
(при BH = 0).
На выходе:
AX - статус завершения;
DX - положение окна (при BH = 1).

В версиях до 1.2 включительно функция, вызванная напрямую, не возвращала статуса завершения. Ее нельзя вызывать в режиме LFB. В этом случае она возвращает код ошибки, равный 3.
Цитата:
Также я нашёл объяснения цветовой палитры, но очень плохо их понял (например как понять 1:5:5:5).
Существует 2 основных способа кодирования цвета в изображении при помощи палитры и непосредственно указанием яркости цвета.

Палитра это способ кодирование цвета пикселя его порядковым номером.
Палитра бывает 16, 256 цветов. Реже 65536 цветов.
Собственно не помню чтобы железо поддерживала палитру более 256 цветов.
Да и стандарт Vesa ограничивает палитру 256 цветами.


Про непосредственное кодирование лучше прочитать тут:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Цитата:
X (B - blue, G - green, R - red, а X что?)?
Х - это просто биты для выравнивания структуры. Более не для чего не используются.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
озу и видеопамять komra2 Компьютерное железо 6 18.04.2016 13:20
Нужны советы. Видеопамять metodeus Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 22.01.2015 21:24
Видеопамять нетбука u135dx Ivan2 Компьютерное железо 1 18.01.2012 16:51
вывод через видеопамять untitled Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 27.06.2010 21:14
Видеопамять lilufonel Паскаль, Turbo Pascal, PascalABC.NET 4 28.05.2010 17:00