Форум программистов, компьютерный форум, киберфорум
Наши страницы

Assembler, MASM, TASM

Войти
Регистрация
Восстановить пароль
 
 
xxXAKEPxx
2 / 2 / 0
Регистрация: 30.01.2013
Сообщений: 149
#1

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

10.02.2016, 19:51. Просмотров 1295. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вывод графики напрямую (Assembler):

Вывод графики - Assembler
Помогите разобраться с алгоритмом программы или подскажите где можно почитать: ; Copper bars by Patch (hamell@rigel.cs.pdx.edu) ;...

работа с видеобуфером напрямую - Assembler
Доброго времени суток! Столкнулся с проблемой - взял пример из книги Марек "Ассемблер на примерах" ORG 100h ; directive...

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

TASM + VESA чтение и запись видеопамяти напрямую - Assembler
Столкнулся с проблемой: есть некоторое изображение представленное битами (14х20), его нужно вывести по заданным координатам. Режим 103h...

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

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

25
kolobok0
46 / 46 / 8
Регистрация: 24.01.2010
Сообщений: 225
16.02.2016, 12:51 #16
Начало памяти видеоадаптера зависит от режима его работы.
для текстового режима начало памяти B800h или B000h (VGA/EGA)
данный режим остаётся по умолчанию после отработки кода аппаратуры(находящегося в пзу видеоадаптера) - управление ему передаётся из биоса, после нахождения заголовка и совпадения црц из области пзу.

Если мы переводим в графический режим - то да, адрес памяти будет меняться в зависимости от режима и типа видео адаптера (EGA, VGA, CGA, mono и т.п.).

(круглый)
0
Mikl___
Автор FAQ
11211 / 5867 / 523
Регистрация: 11.11.2010
Сообщений: 10,893
16.02.2016, 12:58 #17
kolobok0,
Цитата Сообщение от kolobok0 Посмотреть сообщение
адрес (начала видео-)памяти будет меняться в зависимости от режима и типа видео адаптера (EGA, VGA, CGA, mono и т.п.)
Да, ну?
А как насчет совместимости программ?
1
Constantin Cat
2099 / 893 / 286
Регистрация: 28.02.2015
Сообщений: 2,144
Завершенные тесты: 1
16.02.2016, 12:59 #18
Цитата Сообщение от kolobok0 Посмотреть сообщение
Начало памяти видеоадаптера зависит от режима его работы.

То, что память не используется адаптером в данный момент, ещё не значит, что эта область памяти не выделена адаптеру.
2
Миниатюры
Вывод графики напрямую  
kolobok0
46 / 46 / 8
Регистрация: 24.01.2010
Сообщений: 225
16.02.2016, 13:07 #19
У Вас вызывает трудности осязания, что видимость аппаратуры может зависеть от включения-отключения пинов на шине адресации?
Так это всё азы электроники. Обычно палы раньше ставили. Или на рассыпухе. Сейчас это плисины обычно решают.

Или я не так Вас понял?

По поводу дедовского метода обнаружения памяти - то практически все 99% вирусов(да и обычных программ известных и менее известных брэндов) так делали. Даже вызов биоса - было не всегда правильно дёргать.

(круглый)
ЗЫ
Отвечу как один профессор математики, по памяти читающий лекции по вышке.
- "Кто не верит, пусть проверит."
0
Constantin Cat
2099 / 893 / 286
Регистрация: 28.02.2015
Сообщений: 2,144
Завершенные тесты: 1
16.02.2016, 13:24 #20
kolobok0,
Для адаптера выделена память с 0A0000h до 0BFFFFh.
Что адаптер с ней делает, это не наше дело. Что он там себе закачивает и с каких адресов - безразлично. У него свои мозги есть, вот пусть они и думают.
1
Mikl___
Автор FAQ
11211 / 5867 / 523
Регистрация: 11.11.2010
Сообщений: 10,893
16.02.2016, 13:26 #21
Цитата Сообщение от kolobok0 Посмотреть сообщение
- "Кто не верит, пусть проверит."
Пруфы, или не было
0
kolobok0
46 / 46 / 8
Регистрация: 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
2099 / 893 / 286
Регистрация: 28.02.2015
Сообщений: 2,144
Завершенные тесты: 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
Заблокирован
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
Привет! Вот еще темы с ответами:

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

Вывод графики - C#
В общем, сам в шоке, что над такой ерундой заморочился, но никак не получается. Требуется вывести графику (точку, линию, кривую и т.д.) при...

Вывод 3D графики вручную - Графика и игры
Собственно вопрос. Посоветуйте литературу по этой теме. Вывод 3Д графики вручную. Без использования OpenGL и тому подобное. По пикселям.

Вывод графики в Image - Delphi БД
В программе нужно реализовать вывод изображений в Image. Названия указаны в таблице (тип поля String). Причем, каждой записи соответствуют...


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

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

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