|
42 / 42 / 27
Регистрация: 29.01.2013
Сообщений: 277
|
||||||
Прямой доступ к видеопамяти18.07.2013, 17:10. Показов 15356. Ответов 41
Метки нет (Все метки)
Требуется написать программу, которая будет напрямую обращаться в видеопамяти. Описание:
Реализовать функцию, принимающую три параметра - цвет фона, цвет тона и код символа и производящую заполнение этим символом всего экрана. Реализовать функцию очистки экрана с использованием созданной функции. Для заполнения видеопамяти воспользуйтесь указателем на беззнаковый символ. Для присвоения ему значения 0хВ8000000 необходимо осуществить явное преобразование типов. Непосредственное значение 0хВ8000000 имеет тип int. Следует сначала привести тип этого значения к void* а затем - к unsigned char* для того, чтобы присовение стало возможным. Для обращения к различным байтам видеопамяти воспользуйтесь этим указателем. Видеопамять организована следующим образом: байт по адресу 0хВ8000000 содержит код символа в левом верхнем углу экрана. Следующий за ним байт содержит цвет фона и цвет тона этого символа. В старшей половине этого байта содержится цвет фона, в младшей - цвет тона. Коды некоторых цветов: 0х0 - черный, 0х7 - серый, 0хf - белый При выполенини работы производите периодическое сохранение программы, так как некорректная работа с памятью может привести к ошибке ЭВМ и потере данных в оперативной памяти. КОД, КОТОРЫЙ НЕ РАБОТАЕТ:
Доступно ли прямое обращение к памяти в Windows 7 в режиме user mode?
0
|
||||||
| 18.07.2013, 17:10 | |
|
Ответы с готовыми решениями:
41
Прямой доступ к видео памяти вопрос по си-подключение видеопамяти |
|
|
|
| 03.07.2023, 14:03 | |
|
KSergey9, и раньше и сейчас не было никакого "видео в ОЗУ", обращение к видеоадресам сразу перенаправлялось в железо видеокарты, а оно там само решало "как рисовать точку" видеопроцессор для этого нужен или видеопамять или что-то ещё. Так же и сейчас, операционка решает обратиться к коду драйвера, драйвер решает, что скомандовать видеокарте. Видеокарта внутри себя решает, что куда положить для выполнения команды.
Относись к видеокарте как к чёрному ящику, который понимает набор команд, и абсолютно неважно, где у неё лежит память. Соответственно к видеоАПИ тоже как к чёрному ящику, который понимает набор других команд, и абсолютно неважно, в какие команды они транслируются драйверу. И в какие видеокарте.
0
|
|
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
||
| 03.07.2023, 14:10 | ||
|
Но что-то мне подсказывает, что ТС просто не знает, что его задача решается каким-то более простым способом, и ломится не в ту сторону.
0
|
||
| 03.07.2023, 22:58 | ||||
|
Добавлено через 9 минут Добавлено через 2 минуты
0
|
||||
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
||||||
| 03.07.2023, 23:09 | ||||||
|
0
|
||||||
| 03.07.2023, 23:12 | |||
|
Добавлено через 2 минуты
0
|
|||
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 859
|
|
| 03.07.2023, 23:15 | |
|
У ТС это задание для реального режима ДОС
0хВ8000000 - это на самом деле 0хВ800:0x0000 - и это для текстового режима видеоадаптера
0
|
|
| 03.07.2023, 23:21 | ||||
|
Добавлено через 2 минуты Добавлено через 2 минуты
0
|
||||
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 04.07.2023, 07:14 | ||
|
Не по теме:
Я сугубо из интереса без практической задачи интересовался лишь тем, как железячно нынче устроено "соединение" видео-изображения. Причем только на запись, а не чтение. Чтобы делать скриншоты - это много материала встречалось в инете (обычно в рамках разработки собственного ПО для удалённого коннекта). И там много хитрых нюансов. Например, RDP от MS для простоты и надёжности свой видеодрайвер подсовывает для удалённого сеанса.
0
|
||
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
|||||
| 04.07.2023, 09:28 | |||||
|
Но напоминаю: это годится только для обучения. Потом стоит все же изучить возможности видеокарты - создание окна, OpenGL и т.д. С файлами OpenGL работать не умеет. Кажется, умеет SDL, да и в любом случае у какого-нибудь bmp формат довольно простой, у меня он занял 57 строк кода. Кстати, надо бы и мне самому последовать своему совету.
0
|
|||||
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
||
| 04.07.2023, 10:02 | ||
|
1
|
||
|
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
|
||||||
| 04.07.2023, 22:48 | ||||||
|
Добавлено через 1 минуту Добавлено через 4 минуты Добавлено через 5 минут Добавлено через 8 минут Добавлено через 5 минут Кстати, погуглил я тут. Вполне вероятно что shadowPlay не делает скриншот за скриншотом, а делает как видеокодеки - скриншот полный, 2-3-5 карт изменений (которые меньше весят, меньше надо записывать и обрабатывать) и опять полный скриншот. И получается что захват на высокой частоте кадров. Ну и опять же не обязательно это всё сразу обрабатывается, оно в простое может обрабатываться или по завершению записи. Возможно то шустрее тех же 40 кадров полных скриншотов и не получится даже и через драйвер. Ну и давайте по существу - для определения скорости объекта, его направления - хватит и кадров 15 смело
1
|
||||||
|
0 / 0 / 0
Регистрация: 28.03.2017
Сообщений: 7
|
|
| 22.10.2023, 00:17 | |
|
Laborant666, COKPOWEHEU, если вдруг знаете хорошие книги/материалы по теме архитектуры ПК, посоветуйте пожалуйста. Что-то вроде Танненбаума наверное.
0
|
|
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,260
|
|
| 22.10.2023, 08:34 | |
|
Теоретически должна быть область памяти, в которой формируется изображение, которое затем поступает в видеокарту. "Нарисовать линию, нарисовать окружность" это конечно хорошо. Но можно представить изображение, в котором каждый пиксель имеет свой уникальный цвет - и тут уже командами "нарисуй что-то" не обойдешься. Но эта область памяти тщательно охраняется и скрывается виндой, что-бы кто попало туда не лезли, даже только для чтения.
Копайте в сторону линукса. У него открытые исходники, и где-то в самой глубине, в ядре - должна прятаться та самая заветная область памяти, из которой читает видеокарта. Несколько лет труда - и наверняка вы до неё доберётесь. Добавлено через 27 минут И ещё. Картинка на экране рисуется и без ОС, например БИОСом. Так что область памяти для работы с видеокартой должна находиться где-то в железе материнской платы. Можно предположить, что для этого выделяется часть памяти ОЗУ, но тогда без вставленных плат ОЗУ мат. плата должна быть мёртвой - т.е. не выдавать никакой картинки вообще, даже БИОС. А это скорее всего не так.
0
|
|
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
|||
| 22.10.2023, 14:14 | |||
int 33h.
0
|
|||
| 22.10.2023, 16:36 | ||||
|
0
|
||||
|
736 / 700 / 110
Регистрация: 29.05.2015
Сообщений: 4,260
|
|||
| 22.10.2023, 18:31 | |||
|
Добавлено через 12 минут
0
|
|||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 22.10.2023, 18:35 | |
|
Есть же VESA BIOS Extensions.
0
|
|
|
Модератор
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
|
||
| 22.10.2023, 20:49 | ||
|
А памяти у компьютера всего 16 кБайт (в продвинутом 32 кБайт). Как так?
0
|
||
|
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
|
|
| 22.10.2023, 21:10 | |
|
Денис Рубан, Цифровая схемотехника и архитектура компьютера второе издание Дэвид М. Харрис и Сара Л. Харрис
0
|
|
|
4078 / 2676 / 432
Регистрация: 09.09.2017
Сообщений: 11,887
|
||||
| 22.10.2023, 22:27 | ||||
|
Нет, у нормальной видеокарты, разумеется, есть свой видеобуфер, и не один. Но вот доступа к нему у обычного приложения нет. Но бывают и векторные дисплеи, в которых хранятся описания фигур. Кажется, современный xterm умеет такое эмулировать. Вроде бы X11 подобным способом может работать - не рисовать окно, а говорить "окно там-то и там-то". Да и я когда-то делал подобное - вывод трехмерной графики на stm32f103 с 20 кБ оперативки на экран 320х240, 16 бит на пиксель.
0
|
||||
| 22.10.2023, 22:27 | |
|
Помогаю со студенческими работами здесь
40
Прямой доступ к видеопамяти Прямой доступ к видеопамяти в DirectХ 9 Прямой доступ к видеопамяти в режиме VESA
Доступ к видеопамяти Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|