OSDN Git Service

wwww
[proj16/16.git] / src / lib / 16text.c
1 #include "16text.h"\r
2 \r
3 /* this array holds the rom font descriptors */\r
4 font_t romFonts[4];\r
5 \r
6 \r
7 static void getRomFontAddr(char fontNum, int index) {\r
8     word fontSeg;\r
9     word fontOff;\r
10 \r
11     __asm {\r
12                 PUSH BP\r
13                 MOV AX, 0x1130          ;I can haz font info plz?\r
14                 MOV BH, fontNum         ;  where ur fontNum\r
15                 INT 0x10                ;kthxbae\r
16                 MOV AX, ES              ;save teh segmentz\r
17                 MOV BX, BP              ;and all the base!\r
18                 POP BP                  ;u can haz ur frame back!\r
19                 MOV fontSeg, AX         ;Storage\r
20                 MOV fontOff, BX         ;Storage\r
21     }\r
22     romFonts[index].seg = fontSeg;\r
23     romFonts[index].off = fontOff;\r
24 \r
25 }\r
26 \r
27 /* This function initializes the text engine */\r
28 void textInit() {\r
29     getRomFontAddr(0x02, ROM_FONT_8x14);\r
30     getRomFontAddr(0x03, ROM_FONT_8x8_LOW);\r
31     getRomFontAddr(0x04, ROM_FONT_8x8_HIGH);\r
32     getRomFontAddr(0x06, ROM_FONT_8x16);\r
33     romFonts[ROM_FONT_8x14].charSize=14;\r
34     romFonts[ROM_FONT_8x8_LOW].charSize=8;\r
35     romFonts[ROM_FONT_8x8_HIGH].charSize=8;\r
36     romFonts[ROM_FONT_8x16].charSize=16;\r
37 }\r