Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » графика на ассемблере под дос

Ответить
Настройки темы
графика на ассемблере под дос


Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Почти дописал на паскале прогу - просмотрщик файлов
в формате pcx но есть одна проблема. Алгоритм обработки файла пашет
без глюков, есть проблемы с отображением, а точнее с передачей цветов.
Цвета где более чётко выражены компоненты цвета R,G,B передаются нормально,
а всякие там серенькие, извиняюсь поносные и др., на экране неограниченно стремяться
к черному. Ну например цвет 808080 (R=80h, G=80h, B=80h) это серый, даже
ближе к светло-серому, а у меня гад черный. Так же и с другими. Но повторюсь
алгоритм в порядке, все дело в передаче цвета. Привожу упрощенный ассемблерный кусок, т.к.
стандартные средства паскаля не покатили в силу их ограниченности.

инициализирую граф. режим 256 цветов, 320*200
mov ax,0013h
int 10h

тут цикл, заношу считанную из файла палитру
mov dh,R
mov ch,G
mov cl,B
mov bx,color
mox ax,1010h
int 10h

поточечный цикл вывода на экран
(с видеостраницами не парюсь пока не отлажу все до конца)
mov ah,0ch
mov al,color
mov cx,x
mov dx,y
int 10h

Заранее благодарен за ответы.
Т.к. ассемблерщик я начинающий, то буду весьма признателен любым советам.



Отправлено: 22:12, 23-07-2003

 

Аватара для XXXX Pro

Пользователь


Сообщения: 130
Благодарности: 0

Профиль | Сайт | Цитировать


Дело в том, что при задании палитры в режиме 13h для каждого цвета используется только 6 бит, причем младших, а старшие просто отбрасываются. (Соответственно 80h становиться 00h и ты видишь черный.) Поэтому сдвигай dh,dl,cl вправо на 2 разряда каждый перед вызовом функции 1010h, и все станет нормально.

-------
Объединенный Открытый Проект OpenProj.Ru - сайт для Настоящих Компьютерщиков


Отправлено: 02:23, 28-07-2003 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


XXXX Pro все класс! shr и готово!

Отправлено: 13:51, 29-07-2003 | #3


Аватара для Guest

Guest


Профиль | Цитировать


а скорость вывода графики тебя не беспокоит? ведь 10h интеррапт он же медленный как зараза (как и все интеррапты). на прямую в память писать не пробовал?

видеопамять обычно начинается с 0хА000. делаешь так:

push 0a000h
pop es
mov al,color   ; 0-255 index of  palette array
mov es:[di],al


в 0х13 режиме видеопамять только 64К так что DI'я хватит вполне. Да и заполнение всего экрана происходит мгновенно.


Отправлено: 17:27, 22-10-2003 | #4


Аватара для Guest

Guest


Профиль | Цитировать


Guest конечно же тормозит, я для простоты так написал, меня в тот момент беспокоила не скорость а передача цветов. С видеопамятью давным давно разобрался, заваял уже прсмотрщик под дос 24-битного bmp в SVGA-режиме (у pcx дальше 256 цветов не пошло, 24-битный pcx - формат убитый, влом писать обработчик)

Отправлено: 22:49, 22-10-2003 | #5



Сообщения: 196
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


блин забыл авторизоваться...в общем это я написал

Отправлено: 22:51, 22-10-2003 | #6

lss007


Сообщения: n/a

Профиль | Цитировать


Помогите советом, кто может! Подскажите пожалуйста, как запрограммировать 16- или 32-разрядный цвет под ДОС. Заранее спасибо.

Отправлено: 12:30, 17-09-2004 | #7


Аватара для hasherfrog

Старый параноик


Сообщения: 2423
Благодарности: 85

Профиль | Отправить PM | Цитировать


lss007
Во-первых, приветствуем на форуме

Что же касается графики для SVGA под DOS, то тут такая история, емнип:
Давным-давно , когда ещё не было Win95, существовало много видеокарт от разных производителей. Все они могли работать как SVGA, но аппаратные реализации поддержки больших разрешений и многоцветности были разными. Поэтому писать игрушки стало трудно. В результате был разработан специальный "пакет" VESA, который был неким API для DOS-программеров, что-то типа GDI. Универсальность и поддержка большого количества видеоадаптеров привела к большой популярности этого пакета и в последние годы существования DOS как распространённой операционки все игры шли в комплекте с vesa-драйвером. Он запускался как экзешник или был вшит в саму игрушку.

К чему это я? К тому, что: Ищите VESA. К сожалению, я не смог зайти на сайт разработчиков, может они и скопытились

Отправлено: 13:02, 17-09-2004 | #8

lss007


Сообщения: n/a

Профиль | Цитировать


Спасибо hasherfrog'у за информацию

Отправлено: 09:46, 21-09-2004 | #9



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » графика на ассемблере под дос

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Assm - Простые проги на ассемблере под dos Dimaev Программирование и базы данных 2 08-05-2009 11:18
Программы ДОС под ХР wolf Microsoft Windows 2000/XP 3 19-12-2005 17:20
Системный блок под Фотошоп (2D графика) до 800$ irtish Выбор отдельных компонентов компьютера и конфигурации в целом 33 07-10-2005 19:01
из под ДОС в сеть skulida Хочу все знать 5 10-02-2003 00:13
печать под ДОС Guest Сетевые технологии 1 31-01-2003 18:17




 
Переход