[ EXeX @ 22.05.2005. 00:58 ] @
Koristim WinXP i borlandov kompajler tc.
Kod kompajliram naredbom tcc pixel.c


Evo koda:

#include <dos.h>

void set_video_mode(unsigned char mode)
{
union REGS regs;
regs.h.ah = 0x00;
regs.h.al = mode;
int86(0x10,&regs,&regs);
return;
}

void plot_pixel_fast(int x,int y,unsigned char color)
{
unsigned char *VGA = (unsigned char *)0xA0000000L;
unsigned short offset = 320*y+x;
VGA[offset] = color;
return;

}

void main()
{
set_video_mode(0x13);/*256 color video mode*/
plot_pixel_fast(10,10,15);
return;
}

[ EXeX @ 22.05.2005. 01:40 ] @
Rijesio sam problem !!!!
Kao prvo trebalo je kompajlirati u LARGE MODU ,tj.
tcc -ml pixel.c

Kao drugo trebalo je funkciju za crtanje pixela staviti u neku petlju da popuni cijeli ekran bojom jer mi je onako fatalo slucajne vrijednosti iz memorije i bile su mi nebuloze na ekranu.Probajte ovo:

#include <stdlib.h>
#include <dos.h>

void set_video_mode(unsigned char mode)
{
union REGS regs;
regs.h.ah = 0x00;
regs.h.al = mode;
int86(0x10,&regs,&regs);
return;
}

void plot_pixel_fast(int x,int y,unsigned char color)
{
unsigned char *VGA = (unsigned char *)0xA0000000L;
unsigned short offset = y*320+x;
VGA[offset] = color;
return;

}

void main()
{
int x,y,color;
unsigned short i;

set_video_mode(0x13);
while(1)
for(i=0;i<50000L;i++)
{
x=rand()%320;
y=rand()%320;
color=rand()%256;
plot_pixel_fast(x,y,color);
}


}

Pozdrav...
[ leka @ 23.05.2005. 14:28 ] @
EXeX, na XP-u koristis arhaicne BIOS pozive za rad sa grafikom? Moze li se postaviti pitanje zasto? :)
[ Goran Arandjelovic @ 23.05.2005. 21:45 ] @
Koliko znam, OpenGL ti je mnogo bolje resenje, em sto mozes da ga presaltujes i na Linux... ako nekad budes hteo.
[ NastyBoy @ 23.05.2005. 22:12 ] @
Hehehe, pa 3D lib za crtanje tachke je kao maljem na komarca.

Nego mani se DOS poziva, to nije arhaichno, to je kriminal! :)
Odaberi neku od GUI biblioteka (imash saveta na es-u koliko ti volja).
[ Goran Arandjelovic @ 23.05.2005. 22:22 ] @
Otkud znam, mozda je covek hteo kasnije i mnogo vise od jedne tacke. Stvarno, OpenGL uopste nije tezak, a portabilnost je uvek tu.
[ EXeX @ 26.05.2005. 00:39 ] @
Nije stvar u bibliotekama,to je bar lako za koristiti.
Prije svega mene zanima kako to bas sve radi i krenuo sam od početka.
Dakle krenuo sam sa VGA programiranjem,a naravno da se neću na tome zadržati.
A konačni cilj je sklepati neki OS,pa osim bootloadera,GTD-a,ITD-a,ISRS-a itd...
potrebno je i napisati neki oblik drajvera koji će ispisati nešto na monitoru.Pa kako sam krenuo u izučavanje naletio sam na neke tutore i eto malo se izmedju ostaloga pozabavio ovime.

Izmedju ostaloga neradi se o arhaicnima DOS prekidima i funkcijama,vec se radi o standardiziranim BIOS interaptima.I jos malo asma i dosta C-a moze se sklepati dobar OS.

P.S. Izgleda još je veći gušt u asm-u programirati grafiku.E to je umjetnost.:)

Pozdrav.