Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Putpixel, Народ подскажите как его сделать на асм 
:(
    Опции темы
dima_mak
Дата 14.7.2004, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Народ подскажите как его сделать на асм для разрешения 640х480 и ещё так, что бы можно было засунуть его в С и он работал smile.gif

Спасибо зарание
PM MAIL   Вверх
_Chingachguk_
Дата 15.7.2004, 08:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Перписать это на СИ:

Цитата

procedure pixel10(color:byte; x,y:integer);
begin
asm
push bp
mov bp,sp
push dx
push bx
push si
push di
mov  ax,0a000h
mov  es,ax
mov  ax,[bp+6]
mov  bx,[bp+8]
mov cl,bl
shl ax,1
shl ax,1
shl ax,1
shl ax,1
mov si,ax
shl ax,1
shl ax,1
add ax,si
shr bx,1
shr bx,1
shr bx,1
add bx,ax
and cl,7
xor cl,7
mov ah,1
shl ah,cl
mov dx,3ceh
mov al,8
out dx,ax
mov ax,205h
out dx,ax
mov ax,1802h
out dx,ax
mov al,es:[bx]
mov al,[bp+10]
mov es:[bx],al
mov ax,0ff08h
out dx,ax
mov ax,05h
out dx,ax
mov ax,03h
out dx,ax
pop  di
pop  si
pop  bx
pop  dx
pop  bp
end;
end;
procedure graph10;
begin
asm
xor ah,ah
mov al,10h
int 10h
end;
end;
procedure close10;
begin
asm
xor ah,ah
mov al,03h
mov bh,ah
int 10h
end;
end;

  Вверх
cardinal
Дата 15.7.2004, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: нет
Всего: 99



out dx,ax wink.gif
В Windows такое насколько я знаю не проидет...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
oleg1973
Дата 15.7.2004, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


asm fanat
****


Профиль
Группа: Экс. модератор
Сообщений: 3283
Регистрация: 16.7.2003
Где: Italy

Репутация: 7
Всего: 34



ну дык это 16 цветный режим smile.gif
_Chingachguk_
тыб еще монохромный вспомнил smile.gif

вот тут есть http://realtech-vr.com/vesa/ некая SDK которая поможет в написании на С


--------------------
SST 465555
icq 200-512-712
PM MAIL WWW ICQ   Вверх
dima_mak
Дата 15.7.2004, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Цитата

procedure pixel10(color:byte; x,y:integer);
begin
asm
push bp
mov bp,sp
push dx
push bx
push si
push di
mov  ax,0a000h
mov  es,ax
mov  ax,[bp+6]
mov  bx,[bp+8]
mov cl,bl
shl ax,1
shl ax,1
shl ax,1
shl ax,1
mov si,ax
shl ax,1
shl ax,1
add ax,si
shr bx,1
shr bx,1
shr bx,1
add bx,ax
and cl,7
xor cl,7
mov ah,1
shl ah,cl
mov dx,3ceh
mov al,8
out dx,ax
mov ax,205h
out dx,ax
mov ax,1802h
out dx,ax
mov al,es:[bx]
mov al,[bp+10]
mov es:[bx],al
mov ax,0ff08h
out dx,ax
mov ax,05h
out dx,ax
mov ax,03h
out dx,ax
pop  di
pop  si
pop  bx
pop  dx
pop  bp
end;
end;
procedure graph10;
begin
asm
xor ah,ah
mov al,10h
int 10h
end;
end;
procedure close10;
begin
asm
xor ah,ah
mov al,03h
mov bh,ah
int 10h
end;
end;

что то я не догоняю. Где ты в первой функцие пользуешься координатами и цветом которые получаешь? Вродебы нигде, но когда я меняю значения при вызове функции, что то меняеться, но непонятно как(меняю х и иногда меняеться цвет, меняю у ничего вродебы не миняеться, короче какаято хренотень)

Это сообщение отредактировал(а) dima_mak - 15.7.2004, 10:32
PM MAIL   Вверх
dima_mak
Дата 15.7.2004, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист любитель
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.5.2004

Репутация: нет
Всего: нет



Цитата(oleg1973 @ 15.7.2004, 09:39)
ну дык это 16 цветный режим smile.gif
_Chingachguk_
тыб еще монохромный вспомнил smile.gif

вот тут есть http://realtech-vr.com/vesa/ некая SDK которая поможет в написании на С

мне 16 цветов достаточно.
и мне надо это сделать голыми руками(без постороних библиотек)
Добавлено @ 10:38
Цитата(dima_mak @ 15.7.2004, 10:19)
что то я не догоняю. Где ты в первой функцие пользуешься координатами и цветом которые получаешь? Вродебы нигде, но когда я меняю значения при вызове функции, что то меняеться, но непонятно как(меняю х и иногда меняеться цвет, меняю у ничего вродебы не миняеться, короче какаято хренотень)

ито меняеться только если я запускаю это функцию в цикле 200 раз, а если без цикла, то рисуеться точка справа посредине(примерно) синего цвета
PM MAIL   Вверх
_Chingachguk_
Дата 15.7.2004, 10:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Держи на СИ.

Код

#include <stdio.h>
#include <conio.h>
#include <io.h>
#include <fcntl.h>
#include <sys\stat.h>
#include <string.h>

void pixel10(unsigned char color, unsigned int x, unsigned int y)
{
asm {
push dx
push bx
push si
push di
mov  ax,0a000h
mov  es,ax
mov  ax,y
mov  bx,x
mov cl,bl
shl ax,1
shl ax,1
shl ax,1
shl ax,1
mov si,ax
shl ax,1
shl ax,1
add ax,si
shr bx,1
shr bx,1
shr bx,1
add bx,ax
and cl,7
xor cl,7
mov ah,1
shl ah,cl
mov dx,0x3ce
mov al,8
out dx,ax
mov ax,0x205
out dx,ax
mov ax,0x1802
out dx,ax
mov al,es:[bx]
mov al,color
mov es:[bx],al
mov ax,0x0ff08
out dx,ax
mov ax,0x05
out dx,ax
mov ax,0x03
out dx,ax
pop  di
pop  si
pop  bx
pop  dx
}
}
void graph10(void)
{
asm {
xor ah,ah
mov al,0x10
int 0x10
}
}
void close10(void)
{
asm {
xor ah,ah
mov al,0x03
mov bh,ah
int 0x10
}
}
void main(void)
{
 int x,y;
 unsigned char color;
 unsigned char TestStr[]= "test string";

 printf("\nStart=%",TestStr);

 graph10();

 color= 1;
 y= 100;
 for (x=10; x<200; x++)
 {
    pixel10(color, x, y);
    if (!(x & 0x0F))
    {
       y+= 10;
       color++;
    }
 }

 getchar();

 close10();
}

  Вверх
Vasan
Дата 9.8.2004, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 22
Регистрация: 9.8.2004

Репутация: нет
Всего: нет



dima_mak ! Если будет нужно, скину исходник на асме, как работать с любыми графическими режимами и большими цветами из-под доса (только). Тебе что-нибудь говорит 1024х768х32бит. Если да, то дай знать: [email protected]

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.