\r
void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str, boolean q)\r
{\r
- word i, s, o, w, j, k, xp;\r
- byte l[1024];\r
- word addr = (word) l;\r
- word chw=0;\r
+ word s, o, w;\r
+ word addr = (word) romFontsData.l;\r
byte c;\r
- byte z[10];\r
- //byte near *bakapee;\r
-\r
- switch(t)\r
- {\r
- case 0:\r
- w=14;\r
- break;\r
- case 1:\r
- w=8;\r
- break;\r
- case 2:\r
- w=8;\r
- break;\r
- case 3:\r
- w=16;\r
- break;\r
- default:\r
- t=3;\r
- w=16;\r
- break;\r
- }\r
\r
s=romFonts[t].seg;\r
o=romFonts[t].off;\r
+ w=romFonts[t].charSize;\r
+ romFontsData.chw=0;\r
\r
for(; *str != '\0'; str++)\r
{\r
c = (*str);\r
if((c=='\n'/* || c=="\\r
-"*/) || chw\r
+"*/) || romFontsData.chw\r
>=page->width)\r
{\r
- chw=0;\r
- y+=w;\r
+ romFontsData.chw=0;\r
+ y+=romFonts[t].charSize;\r
continue;\r
}\r
//load the letter 'A'\r
DEC CX\r
JNZ L1\r
}\r
- //bakapee = _nmalloc(sizeof(byte)*8);\r
//TODO: OPTIMIZE THIS!!!!\r
- for(i=0; i<w; i++)\r
- {\r
- /*modexSelectPlane(PLANE(x));\r
- j=1<<8;\r
- *bakapee=(l[i] & j ? col:bgcol);\r
- _fmemcpy(page->data + (((page->width/4) * (y+page->dy+i)) + ((x+page->dx+chw) / 4)), bakapee, 8);*/\r
- j=1<<8;\r
- k=0;\r
- xp=0;\r
- //every "pixel" row\r
- while(j)\r
- {\r
- if(q)\r
- //_fmemcpy(page->data + (((page->width/4) * (y)) + ((x) / 4)), l[i] & j ? col:bgcol, 8);\r
- modexputPixel(page, x+xp+chw, y+i, l[i] & j ? col:bgcol);\r
- else\r
- //printf("l[i]=%c j=%02u l[i] & j=%02u %c\n", l[i] , j, l[i] & j, l[i] & j ? '*':' ');\r
- //printf("%c", l[i] & j ? '*':' ');\r
- z[k]=l[i] & j ? '*':' ';\r
- xp++;\r
- j>>=1;\r
- k++;\r
- }\r
- if(!q)\r
- {\r
- for(k=0;k<10;k++)\r
- {\r
- printf("%c", z[k]);\r
- }\r
- printf("\n");\r
- }\r
- }\r
- if(!q) getch();\r
- chw += xp;\r
+ modexDrawCharPBuf(page, x, y, t, col, bgcol, q);\r
+\r
+ //if(!q) getch();\r
}\r
- //_nfree(bakapee);\r
}\r
\r
void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
/* set map mask to all 4 planes */\r
outpw(SC_INDEX, 0xff02);\r
//_fmemset(VGA, color, 16000);\r
- _fmemset(Where, color, page->width*(page->height));\r
+ _fmemset(Where, color, page->width*(page->height)/4);\r
}\r
\r
void\r