1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| TarasBer |
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
В режиме 640 на 480 видеопамять состоит из 4 цветовых слоёв. Которые в оперативной памяти расположены... по одному и тому же адресу! Для доступа к тому или иному слою надо записать какое-то значение в порты. Но тогда получается, что физическое расположение видеопамяти - это вовсе не $A000: $0000, ведь иначе один слой затирал бы информацию о другом. Можно ли обратиться к видеопамяти ещё более непосредственно, минуя механизм обращения по известному адрему? Или это на уровне железа так сделано, и по другому никак? Ведь помню, когда с портами баловался - экран покрывался цветными пятнами, причём разрешение экрана было довольно высокое.
-------------------- |
![]() ![]() |
| OCTAGRAM |
Сообщение
#2
|
![]() Большевик–концептуал ![]() ![]() ![]() Группа: Пользователи Сообщений: 194 Пол: Мужской Реальное имя: Иван Левашев Jabber: bu_gen@octagram.name Skype: i.levashew QQ: 3152538431 Ада: Сторонник Embarcadero Delphi: Сторонник Free Pascal: Разработчик Turbo Pascal: Установлен Репутация: 1 |
Вот как раз линейный видеобуффер и имелся в виду.
Но, чтобы это работало, надо без EMM загружаться. Сейчас это разве что при программировании кофейных автоматов может заинтересовать. -------------------- If you want to get to the top, you have to start at the bottom
|
| andriano |
Сообщение
#3
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Вот как раз линейный видеобуффер и имелся в виду. Но, чтобы это работало, надо без EMM загружаться. Сейчас это разве что при программировании кофейных автоматов может заинтересовать. Вообще-то линейный буфер полезен и целесообразен в 32-разрядном режиме DOS. Где он, собственно, интенсивно использовался. Помнится, любая уважающая себя игра имела в корневом каталоге файл dos4gw.exe. И, кстати, EMM этому не мешал. Сейчас же неприятность состоит в том, что WinXP не поддерживает линейный буфер для DOS приложений, и все, что было написано с использованием этого режима, под Виндой не запускается (под 95 запускалось), кроме, разве что, DOSBox. обратил внимание еще на одну фразу: Цитата и обрабатывать прерывание клавиатуры, потому что DOS несколько клавиш одновременно не понимает как надо. Насколько я помню, проблема была не в распознавании нескольких нажатых клавиш (такая проблема тоже была, но она была исключительно аппаратной, а потому неразрешимой программными средствами), а в отсутствии индикации отпускания клавиши. И свой обработчик прерывания клавиатуры приходилось писать именно для того, чтобы знать, когда клавиша отпущена. И, кстати, это проблема BIOS, а не DOS.Сообщение отредактировано: OCTAGRAM - |
TarasBer Совсем прямое обращение к видеопамяти. 5.03.2009 3:18
Ozzя http://frolov-lib.ru/books/bsp/v21/ch3_2.htm 5.03.2009 16:21
andriano
В режиме 640 на 480 видеопамять состоит из 4 цвет… 8.03.2009 18:51
TarasBer
С какой стати?
Во-первых, сам по себе "слой… 8.03.2009 21:26
andriano
Я про то место, где видеоадаптер на самом деле хр… 9.03.2009 14:21
TarasBer
Нет, это ни в коей мере не "окно".
Орга… 10.03.2009 2:18
andriano На старых компьютерах можно было вынуть микросхемы… 10.03.2009 2:29
OCTAGRAM На EGA/VGA можно переключать слой. Чтобы делать пр… 13.03.2009 14:53
andriano OCTAGRAM,
Вроде программирование VGA достаточно по… 14.03.2009 2:23![]() ![]() |
|
Текстовая версия | 10.12.2025 14:37 |