home *** CD-ROM | disk | FTP | other *** search
- Program test;
- {$I AUXSUBS.PAS } { I need some calls from here! }
- { This is the needed information for using LINEA.O }
- { Much is left to your imgaination and research! }
-
- Const LA_VPLANES = 0 ;
- LA_VWRAP = 2 ;
- LA_CONTRL = 4 ;
- LA_INTIN = 8 ;
- LA_PTSIN = 12 ;
- LA_INTOUT = 16 ;
- LA_PTSOUT = 20 ;
- LA_COLBIT0 = 24 ;
- LA_COLBIT1 = 26 ;
- LA_COLBIT2 = 28 ;
- LA_COLBIT3 = 30 ;
- LA_LSTLIN = 32 ;
- LA_LNMASK = 34 ;
- LA_WMODE = 36 ;
- LA_X1 = 38 ;
- LA_Y1 = 40 ;
- LA_X2 = 42 ;
- LA_Y2 = 44 ;
- LA_PATPTR = 46 ;
- LA_PATMSK = 50 ;
- LA_MFILL = 52 ;
- LA_CLIP = 54 ;
- LA_XMINCL = 56 ;
- LA_YMINCL = 58 ;
- LA_YMAXCL = 60 ;
- LA_XMAXCL = 62 ;
- LA_XDDA = 64 ;
- LA_DDAINC = 66 ;
- LA_SCALDIR = 68 ;
- LA_MONO = 70 ;
- LA_SOURCEX = 72 ;
- LA_SOURCEY = 74 ;
- LA_DESTX = 76 ;
- LA_DESTY = 78 ;
- LA_DELX = 80 ;
- LA_DELY = 82 ;
- LA_FBASE = 84 ;
- LA_FWIDTH = 88 ;
- LA_STYLE = 90 ;
- LA_LITEMASK = 92 ;
- LA_SKEWMASK = 94 ;
- LA_WEIGHT = 96 ;
- LA_ROFF = 98 ;
- LA_LOFF = 100 ;
- LA_SCALE = 102 ;
- LA_CHUP = 104 ;
- LA_TEXTFG = 106 ;
- LA_SCRTCHP = 108 ;
- LA_SCRPT2 = 112 ;
- LA_TEXTBG = 114 ;
- LA_COPYTRAN = 116 ;
- LA_SEEDABORT = 118 ;
-
- { YUK. GOT THAT OUT OF THE WAY! }
-
- TYPE AVERAGE_ARRAY = ARRAY[0..500] of integer;
- AVER_ARRAY_PTR = ^AVERAGE_ARRAY;
-
- VAR LineA_Vars,
- Contrl,
- Intin,
- Ptsin,
- Intout,
- Ptsout : Aver_Array_Ptr;
-
- FUNCTION Addr( Var what : AVERAGE_ARRAY ) : Long_integer;
- External;
-
- FUNCTION Ptr( where : long_integer ) : Aver_array_ptr ;
- External;
-
- { Ok - Here are my assembly routines }
-
- {* Returns address of LINEA variables *}
- FUNCTION Linea_init : Long_integer;
- External;
-
- {* Set a pixel - See docs *}
- PROCEDURE Linea_putpixel;
- External;
-
- {* Returns pixel color - See docs *}
- FUNCTION Linea_getpixel : Integer;
- External;
-
- {* Draw a line - See docs *}
- PROCEDURE Linea_line ;
- External;
-
- {* Draw a Hline - See docs *}
- Procedure Linea_Hline ;
- External;
-
- {* Filled Rectangle - See docs *}
- Procedure Linea_rct;
- External;
-
- {* Filled Polygon - See docs *}
- Procedure Linea_ply;
- External;
-
- {* Text Blit - real iffy! *}
- Procedure Linea_txtblt;
- External;
-
- {* Show mouse *}
- Procedure Linea_Showms;
- External;
-
- {* Hide cursor ( mouse I believe ) *}
- Procedure Linea_hdcurs;
- External;
-
- {* Transform mouse *}
- Procedure Linea_tranms;
- External;
-
- {* Undraw_Sprite - See docs *}
- Procedure Undraw_Sprite( Sprite_Save_Block : Aver_Array_Ptr );
- External;
-
- {* Draw_Sprite - See docs *}
- Procedure Draw_Sprite( Sprite_Define_Block , Sprite_Save_Block :
- Aver_Array_Ptr );
- External;
-
- {* My special init routine to set up arrays properly *}
- Procedure Init_Linea;
- Var Table : Long_Integer;
- Begin
- Table := Linea_init; { Now work has addr for linea variables }
- linea_vars := ptr(Table); { link linea variables to an array! }
- Contrl := ptr(lpeek(Table + LA_Contrl)); { Contrl array! }
- Intin := ptr(lpeek(Table + LA_Intin)); { Intin array! }
- Ptsin := ptr(lpeek(Table + LA_Ptsin)); { Ptsin array! }
- Intout := ptr(lpeek(Table + LA_Intout)); { Intout array! }
- Ptsout := ptr(lpeek(Table + LA_Ptsout)); { Ptsout array! }
- End;
-
- Procedure do_test;
- Var test : char;
- Var X1,Y1,X2,Y2,Work : Integer;
- Begin
- for X1 := 1 to 100 do
- for y1 := 1 to 100 do
- Begin
- intin^[0] := 1 ;
- Ptsin^[0] := X1 ;
- Ptsin^[1] := Y1 ;
- Linea_Putpixel;
- End;
- readln( Test );
- End;
-
- Begin
- Init_Linea;
- do_test;
- End.
-