E... ovako... prvo sto treba da uradis je da od tvojih bgi drajvera napravis obj fajlove. U Bin direktorijumu paskala imas exe koji se zove BinObj.exe. On ce ti pomoci da napravis bin fajlove. Recimo da hoces da napravis bin od VGA.BGI, to radis ovako:
Code:
BinObj VGA.BGI VGADRV.OBJ VGADriver
Prvi parametar je fajl od kojeg hoces da napravis obj fajl, drugi parametar je ime obj fajla koji ce biti kreiran i treci parametar je ime na osnovu kojeg ces u svom programu da nadjes pokazivac na svoj blok podataka u obj fajlu.
Kada si napravio obj fajl za svoj(e) drajver(e) treba da ih ucitas u programu. To se radi ovako
Code:
procedure VGADriver; external;
{$L VGADRV.OBJ }
Ime procedure mora da bude isto kao treci parametar prilikom kreiranja obj fajla programom BinObj. VGADRV.OBJ je... pretpostavi sam :)
Sada imas "proceduru" koju bas i ne mozes da pozoves jer to i nije procedura vec samo blok podataka, ali kada nekoj funkciji prosledis ovu proceduru na ovaj nacin @VGADriver ona dobije pokazivac na pocetak tog bloka podataka. E, pa, RegisterBGIdriver(@VGADriver) uzima taj blok i kreira drajver za graficku karticu :)
To je to :)
BinObj moze da ti napravi obj od bilo kog fajla. Mozes na primer imati fajl
Code:
Pera.txt
Pera je car!
i da napises nesto kao
Code:
BinObj Pera.txt Pera.obj Recenica
pa da posle u kodu napises
Code:
procedure Recenica; external;
{$L Pera.obj }
i kada zelis da pristupis memoriji na koju pokazuje @Recenica naicices na 'Pera je car!' :) Zgodna stvarcica ;)
Nadam se da ti je pomoglo.