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

> Правила раздела!

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

> Совсем прямое обращение к видеопамяти., навеяло работой с режимом VGA 640x480
TarasBer
сообщение 4.03.2009 23:18
Сообщение #1


Злостный любитель
*****

Группа: Пользователи
Сообщений: 1 755
Пол: Мужской

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


В режиме 640 на 480 видеопамять состоит из 4 цветовых слоёв. Которые в оперативной памяти расположены... по одному и тому же адресу! Для доступа к тому или иному слою надо записать какое-то значение в порты. Но тогда получается, что физическое расположение видеопамяти - это вовсе не $A000: $0000, ведь иначе один слой затирал бы информацию о другом. Можно ли обратиться к видеопамяти ещё более непосредственно, минуя механизм обращения по известному адрему? Или это на уровне железа так сделано, и по другому никак? Ведь помню, когда с портами баловался - экран покрывался цветными пятнами, причём разрешение экрана было довольно высокое.


--------------------
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
andriano
сообщение 8.03.2009 14:51
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

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


Цитата(TarasBer @ 4.03.2009 23:18) *

В режиме 640 на 480 видеопамять состоит из 4 цветовых слоёв. Которые в оперативной памяти расположены... по одному и тому же адресу!
Совершенно верно.
Цитата
Для доступа к тому или иному слою надо записать какое-то значение в порты. Но тогда получается, что физическое расположение видеопамяти - это вовсе не $A000: $0000, ведь иначе один слой затирал бы информацию о другом.
С какой стати?
Во-первых, сам по себе "слой" ничего затереть не может, т.к. ничего никуда не пишет. А пишет и, соответственно, может затереть - только процессор (или другое устройство, которое можно настроить на работу с видеопамятью). И когда рпоцессор пишет некоторое число в адресное пространоство памяти, это число оказывается записанным одновременно в несколько "слоев": от 0 до 4. В зависимости от настроек видеоадаптера в данный момент.
Цитата
Можно ли обратиться к видеопамяти ещё более непосредственно, минуя механизм обращения по известному адрему?
Это самый прямой из всех известных способов доступа к памяти.
Цитата
Или это на уровне железа так сделано, и по другому никак?
Можно придумать и другие способы, но явно не более простые.
Цитата
Ведь помню, когда с портами баловался - экран покрывался цветными пятнами, причём разрешение экрана было довольно высокое.
Ну, для баловства вполне закономерный результат. Чтобы сделать что-то осмысленное, нужно понимать, что делаешь.

PS. Режимы с 4 цветовыми слоями сегодня представляют лишь академический (или исторический) интерес. Так что если интерес имеет практический характер, советую забыть о 16-цветных режимах как о кошмарном сне.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 18.07.2025 23:56
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"