Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
xxXAKEPxx
2 / 2 / 2
Регистрация: 30.01.2013
Сообщений: 149
1

Вывод графики напрямую

10.02.2016, 19:51. Просмотров 1556. Ответов 25
Метки нет (Все метки)

Добрый день.
Как реализовать вывод графики напрямую на видеокарту/видеоадаптер (в видеопамять).
Нашёл такую статью: http://www.quadrathell.cn.ua/publ/15-1-0-116.
Но там описан метод для MS-DOS. Мне же нужно выводить графику на Windows, а лучше не зависимо от ОС.
Знаю, что BIOS предоставляет упрощённый интерфейс взаимодействия с устройствами компьютера, в том числе и с видеоадаптером. Как используя только функционал процессора и BIOS выводить графику без обращения к каким-либо специальным API.

Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2016, 19:51
Ответы с готовыми решениями:

Вывод графики
Помогите разобраться с алгоритмом программы или подскажите где можно почитать:...

Работа с видеопамятью напрямую
Есть ли какой-нибудь способ управлять мерцанием символа, не устанавливая...

работа с видеобуфером напрямую
Доброго времени суток! Столкнулся с проблемой - взял пример из книги Марек...

TASM + VESA чтение и запись видеопамяти напрямую
Столкнулся с проблемой: есть некоторое изображение представленное битами...

При обращении напрямую к видеопамяти, вывести изображение
Кто может помочь с решением задачи на Ассемблере, откликнитесь пожалуйста!

25
Mikl___
Автор FAQ
11988 / 6255 / 596
Регистрация: 11.11.2010
Сообщений: 11,317
16.02.2016, 13:26 21
Цитата Сообщение от kolobok0 Посмотреть сообщение
- "Кто не верит, пусть проверит."
Пруфы, или не было
0
kolobok0
46 / 46 / 9
Регистрация: 24.01.2010
Сообщений: 225
16.02.2016, 15:14 22
Цитата Сообщение от Constantin Cat Посмотреть сообщение
выделена память с 0A0000h до 0BFFFFh.
Что адаптер с ней делает, это не наше дело
вообще-то как было сказано выше это зависит от режимов работы адаптера. Более того - речь идёт о способе дэтекции(записи-чтения по указанному адресу) присутствия этой самой памяти видеоадаптера. Если мы не рассматриваем режимы работы в наших рассуждениях - то Вы полностью правы. Можно воспринимать видеоадаптер как волшебный чёрный ящик.

Уважаемый Mikl__ привёл цитату Скотта Миллера(человек достигший безусловно многого). Давайте продолжим его цитирование:

Как и для адаптера EGA, области видеопамяти активны только при работе в определённом режиме. Например, при работе в графическом режиме
используется только сегмент A000, в цветном текстовом режиме занята только верхняя половина сегмента B000.
Ну и ежели мы начали цитировать, то осмелюсь привести один из первых учебников именно по программированию компьютеров семейства IBM PC XT Роберта Джурдена:

Стартовый адрес буфера дисплея программируем, поэтому буфер начинается с адреса A000H для улучшенных графических режимов, и с B000H и B800H для совместимости со стандартными монох-
ромным и цветным графическим режимами.
Надеюсь его авторитет не вызывает сомнений? Тем более его книга выпущена раньше чем техническая инфа Скотта
Засим откланяюсь...

удачи вам
она вам потребуется
(круглый)
0
Constantin Cat
2377 / 1073 / 368
Регистрация: 28.02.2015
Сообщений: 2,378
Завершенные тесты: 1
16.02.2016, 16:29 23
Цитата Сообщение от kolobok0 Посмотреть сообщение
память видеоадаптера в реальном режиме линейна. начинается обычно для с B000h или B800h адреса сегмента.
Раставим точки над И.
Память видеоадаптера находится в самом видеоадаптере и может иметь объем от килобайтов до мегабайтов. Адреса 0A0000h - 0BFFFFh, принадлежат адресному пространству процессора. Это две различные памяти. Видеоадаптер синхронизирует свою память с памятью РС(механизмы синхронизации к теме не относятся) и перекачивает к себе информацию из выделенной ему участка памяти(адресного пространства процессора) начиная с 0A0000h и по 0BFFFFh. Как расположена информация в самом адаптере к теме не относится.

Сама тема называется Вывод графики напрямую. Поэтому настаивать на адресах 0B8000h - 0BFFFFh текстового режима
Цитата Сообщение от kolobok0 Посмотреть сообщение
начинается обычно для с B000h или B800h адреса сегмента
не имеет смысла т.к. это уже флуд и я начну ругатся.
Вместо этого могли бы расказать о работе с портами адаптера или в адресном пространстве 0A0000h - 0BFFFFh.
0
shmkv
16.02.2016, 16:52
  #24

Не по теме:

Что-то я не замечаю интереса ТС к теме.

0
Constantin Cat
16.02.2016, 17:31
  #25

Не по теме:

shmkv, ТС получил ответ в первый день, но тему периодически оживляли.

0
Fulcrum_013
1477 / 1117 / 129
Регистрация: 14.12.2014
Сообщений: 9,470
Завершенные тесты: 3
23.02.2016, 06:01 26
Цитата Сообщение от xxXAKEPxx Посмотреть сообщение
Как реализовать вывод графики напрямую на видеокарту/видеоадаптер (в видеопамять)
В винде для этого вместо INT 10H прописался DirectX. А отрисовка в каждую видеокарту специфична для самой карты (переключение банков памяти и т.п.) поэтому видеокарты и работают через дрова.
0
23.02.2016, 06:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.02.2016, 06:01

Вывод графики напрямую без посредников...
Собственно сабж... Вообще меня OpenGL всегда устраивал (имхо лучший вариант...

Как описать вывод документа напрямую на принтер
Будьте добры, подскажите мне как написать скрипт на РНР или HTML, чтоб страница...

Вывод текста по точкам напрямую в видеопамять в графическом режиме
Здравствуйте. Написал такую программу для вывода с помощью битовых карт текста....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru