home *** CD-ROM | disk | FTP | other *** search
- unit graftext;
-
- interface
-
-
- Procedure Gtxttran(gdx,gdy,color,lines:word;fnt:pointer;st:string);
- Procedure Gtxtsol(gdx,gdy,backgnd,color,lines:word;fnt:pointer;st:string);
- Procedure Font8;
- Procedure Font14;
- Procedure SetYofset(yofs:word); {number of scan lines to scroll up the screen}
-
-
-
- { To Write on areas off the visible screen, consider the graphics page to be a
- virtual space of 640 wide and 819 tall. (64K addresses / (80 bytes/line)
- = 819.2. At EGA resolution, you can have two separate virtual screens of 350
- lines, with space left over. At 480 lines, you can have only 1 independent
- screen (assuming 256K of video memory) }
-
-
-
-
-
- implementation
-
- {$L Graftex1} { a transparent text writing routine}
- Procedure Gtxttran(gdx,gdy,color,lines:word;fnt:pointer;st:string);
- external;
-
-
- {$L Graftex2} { a text writing routine with solid background}
- Procedure Gtxtsol(gdx,gdy,backgnd,color,lines:word;fnt:pointer;st:string);
- external;
-
- { Note: other fonts can be linked by converting them to .OBJ files
- to do this use BINOBJ. The supplied 8x8 font was converted as follows:
-
- BINOBJ 8x8.fnt 8x8 Font8
-
- }
-
-
-
-
- {$L 8x8.obj}
- Procedure Font8;
- external;
-
- {$L 8x14.obj}
- Procedure Font14;
- external;
-
- Procedure SetYofset(yofs:word);
- begin {set CRT controller Start Address hi/low}
- yofs := yofs * 80; {assuming 640 pixels, across screen is 80 bytes}
- port[$3d4] := $C;
- port[$3d5] := hi(yofs);
- port[$3d4] := $D;
- port[$3d5] := lo(yofs);
- end;
-
-
- end.