[ Mikky @ 08.08.2001. 15:34 ] @
da li je moguce nekako da pointeru zadam literal vrednost
znaci npr

char *video_buffer = 0xA0000000;

znaci ovo mi treba jer adresa a000:0000 predstavlja pocetak video buffera za vga mod u dosu
ovde mi kompajler javlja gresku da nemogu to da uradim
[ kajla @ 08.08.2001. 19:24 ] @
Citat:
Mikky je napisao:
da li je moguce nekako da pointeru zadam literal vrednost
znaci npr

char *video_buffer = 0xA0000000;

znaci ovo mi treba jer adresa a000:0000 predstavlja pocetak video buffera za vga mod u dosu
ovde mi kompajler javlja gresku da nemogu to da uradim

probaj sa far pointer-om znaci:

Code:

char far *video_buffer = 0xA0000000;


poz.
[ tOwk @ 08.08.2001. 21:48 ] @
Mozda nije problem u tome, vec da si ti tu deklaraciju stavio izvan funkcije, ili na nepropisno mesto (neki kompajleri ponekad ne dozvoljavaju to na svakom mestu). Mozes da probas prvo sa definisanjem
Code:
char *vid_mem;
a posle dodeljivanje u nekoj funkciji sa
Code:
vid_mem=0xA000000;


Sto se same sintakse tice, onda je potpuno propisna u 32-bitnim kompajlerima, ali posto se radi o DOS-u, mozda ce tu trebati malo vise da se uradi. Usput, probaj sa ispisivanjem pointera, i da vidis kakvog je oblika, pa ga takvog i dodeljuj.

Osim ovog kajlinog, i ovog (glupljeg) mojeg, ne vidim da bi nesto trece moglo biti problem.

Toliko.
[ spiridon @ 27.08.2001. 01:25 ] @
Citat:
Mikky je napisao:
da li je moguce nekako da pointeru zadam literal vrednost
znaci npr

char *video_buffer = 0xA0000000;



probaj ovo ... mora da radi!

unsigned char *video_buffer = (unsigned char *) MK_FP(0xA000, 0);

Ne zaboravi #include<dos.h> zbog MK_FP