+ if((c=='\n'/* || c=="\
+"*/) || chw
+>=page->width)
+ {
+ chw=0;
+ y+=w;
+ continue;
+ }
+ //load the letter 'A'\r
+ __asm {\r
+ MOV DI, addr\r
+ MOV SI, o\r
+ MOV ES, s\r
+ SUB AH, AH\r
+ MOV AL, c ; the letter\r
+ MOV CX, w\r
+ MUL CX\r
+ ADD SI, AX ;the address of charcter\r
+ L1: MOV AX, ES:SI\r
+ MOV DS:DI, AX\r
+ INC SI\r
+ INC DI\r
+ DEC CX\r
+ JNZ L1\r
+ }
+\r
+ for(i=0; i<w; i++)
+ {\r
+ j=1<<8;
+ xp=0;\r
+ while(j)
+ {
+ modexputPixel(page, x+xp+chw, y+i, l[i] & j ? col:bgcol);
+ xp++;
+ j>>=1;
+ }
+ }\r
+ chw += xp;\r
+ }\r
+}
+
+void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
+{
+ word i, s, o, w, j, xp;
+ byte l[1024];\r
+ word addr = (word) l;
+ word chw=0;
+ byte c;
+
+ switch(t)\r
+ {\r
+ case 0:
+ w=14;\r
+ break;\r
+ case 1:
+ w=8;\r
+ break;\r
+ case 2:
+ w=8;\r
+ break;\r
+ case 3:
+ w=16;\r
+ break;\r
+ default:
+ t=3;\r
+ w=16;\r
+ break;\r
+ }
+\r
+ s=romFonts[t].seg;\r
+ o=romFonts[t].off;
+\r
+ for(; *str != '\0'; str++)\r
+ {
+ c = (*str);
+ if((c=='\n'/* || c=="\
+"*/)/* || chw>=page->width*/)
+ {
+ chw=0;
+ y+=w;
+ continue;
+ }