]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
remove wraparound check in modex print, add addr adjust for newline.
[16.git] / src / lib / modex16.c
index 2246595c58dbb7d73e5f974a2f6d1a975544f3bc..2d018dc12f190f5abff840fd1cb0e020ac850e2f 100755 (executable)
@@ -880,8 +880,10 @@ byte modexgetPixel(page_t *page, int x, int y)
 void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str)\r
 {\r
        word s, o, w;\r
+       word x_draw = x;\r
        word addr = (word) romFontsData.l;\r
        word addrq = (page->width/4) * y + (x / 4) + ((word)page->data);\r
+       word addrr = addrq;\r
        byte c;\r
 \r
        s=romFonts[t].seg;\r
@@ -892,12 +894,13 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
        for(; *str != '\0'; str++)\r
        {\r
        c = (*str);\r
-       if((c=='\n'/* || c=="\\r
-"*/) || romFontsData.chw\r
->=page->width)\r
+       if(c=='\n')\r
        {\r
-               romFontsData.chw=0;\r
-               y+=romFonts[t].charSize;\r
+               x = x_draw;\r
+               romFontsData.chw = 0;\r
+               addrq += (page->width / 4) * 8;\r
+               addrr = addrq;\r
+               y += 8;\r
                continue;\r
        }\r
        //load the letter 'A'\r
@@ -918,10 +921,9 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
                JNZ L1\r
        }\r
 //TODO: OPTIMIZE THIS!!!!\r
-               modexDrawChar(page, x/*for mode X planar use*/, t, col, bgcol, addrq);\r
-               addrq += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
-\r
-               //if(!q) getch();\r
+               modexDrawChar(page, x_draw/*for mode X planar use*/, t, col, bgcol, addrr);\r
+               x_draw += 8; /* track X for edge of screen */\r
+               addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */\r
        }\r
 }\r
 \r