]> 4ch.mooo.com Git - 16.git/commitdiff
facking modex
authorsparky4 <sparky4@cock.li>
Thu, 16 Jul 2015 22:07:57 +0000 (17:07 -0500)
committersparky4 <sparky4@cock.li>
Thu, 16 Jul 2015 22:07:57 +0000 (17:07 -0500)
modified:   16.exe
modified:   fontgfx.exe
modified:   fonttes0.exe
modified:   maptest.exe
modified:   palettec.exe
modified:   pcxtest.exe
modified:   src/fontgfx.c
modified:   src/fonttes0.c
modified:   src/lib/modex16.c
modified:   src/lib/modex16.h
modified:   test.exe
modified:   test2.exe

12 files changed:
16.exe
fontgfx.exe
fonttes0.exe
maptest.exe
palettec.exe
pcxtest.exe
src/fontgfx.c
src/fonttes0.c
src/lib/modex16.c
src/lib/modex16.h
test.exe
test2.exe

diff --git a/16.exe b/16.exe
index 3a9097a301fd508ff229df80e86cbc17f6a06f52..4f7763a7f9da62d03411639554e2922ee8f1bb86 100644 (file)
Binary files a/16.exe and b/16.exe differ
index f3aab825d29cc3648dd0ee7bc3331ebe8fef1c46..0582b4833eebde94dd38d75d99902efe2d445271 100644 (file)
Binary files a/fontgfx.exe and b/fontgfx.exe differ
index 60716ba0be15d43477bef00f8516eecaf0e7b417..01bc01ddcf025d57ac1f5a540ff93276e4a4b51a 100644 (file)
Binary files a/fonttes0.exe and b/fonttes0.exe differ
index ec0f08121b299c6b7f560e0158f2fc8c4d32d35a..cb6dd8c306500fc3cb5f00d6912fb562f95cfe2b 100644 (file)
Binary files a/maptest.exe and b/maptest.exe differ
index a86f64bfac42154fb48c4caf9c4871e4ea51c346..533a71d0d715a209b2feb9f58f62f7c67afeb4ab 100644 (file)
Binary files a/palettec.exe and b/palettec.exe differ
index c45738a7692e2a2a078bccb05b8d150ec881c681..2e3f94de165cc8185b3f2742f418d7f265ed8c33 100644 (file)
Binary files a/pcxtest.exe and b/pcxtest.exe differ
index 34154f06002364ceb2930c71c2f1f39f90f58d9a..d6599e6027cc6ce7a694289daf6099eaf549e0d1 100644 (file)
@@ -67,6 +67,7 @@ IIIIIII  BBBBBBBBB    MMMM    M    MMMM\n\
        screen = modexDefaultPage();\r
        screen.width += (16*2);\r
        screen.height += (16*2);\r
+//++++ modexShowPage(&screen);\r
        //modexprint(16, 16, 1, 15, "wwww");\r
        //getch();\r
        chx=0;\r
@@ -90,7 +91,8 @@ IIIIIII  BBBBBBBBB    MMMM    M    MMMM\n\
        //modexprint(100, 100, 1, 47, 0, "wwww");\r
        getch();\r
 //     modexprint(0, 0, 1, 0, colpee, &rose);\r
-       modexprint(&screen, 0, 0, 0, 0, colpee, &ibmlogo);\r
+//++++ modexprint(&screen, 0, 0, 0, 0, colpee, &ibmlogo);\r
+       modexprintbig(&screen, 0, 0, 1, colpee, 0, "IBM");\r
 //     modexprint(0, 0, 1, 0, colpee, ROSE);\r
        getch();\r
        modexLeave();\r
index 4365b812ca68a4d4e68807e2c4dc61ebf0ca7598..6414f7f3760f039ae238503ec0ba36e35cc29b91 100644 (file)
@@ -171,7 +171,7 @@ void main(int argc, char near *argv[])
                        //printf("%02x\n", l[i] & j);
                                //modexPutPixel(xp, i, l[i] & j ? 15:0);
                                //modexpixelwr(xp, i, 0, l[i] & j ? 15:0);
-                               modexputPixel(xp, i, l[i] & j ? 15:0);
+                               modexputPixel(&page, xp, i, l[i] & j ? 15:0);
                                //modexClearRegion(&page, xp*4, i*4, 4, 4, l[i] & j ? 15:0);
 //while(!getch());
                        xp++;
index ae0bd692316a3b6c4de6be6f38b2531cc5980790..3efba94c6286bb39f1286f7c237eb5f1bd23bb67 100644 (file)
@@ -942,12 +942,14 @@ no... wait.... no wwww
                 free(pal);\r
 }\r
 \r
-void modexputPixel(int x, int y, byte color)\r
-{\r
+void modexputPixel(page_t *page, int x, int y, byte color)\r
+{
+       word pageOff = (word) page->data;\r
         /* Each address accesses four neighboring pixels, so set\r
            Write Plane Enable according to which pixel we want\r
            to modify.  The plane is determined by the two least\r
-           significant bits of the x-coordinate: */\r
+           significant bits of the x-coordinate: */
+       //modexSelectPlane(PLANE(x));\r
        outp(SC_INDEX, 0x02);\r
        outp(SC_DATA, 0x01 << (x & 3));\r
 \r
@@ -955,7 +957,7 @@ void modexputPixel(int x, int y, byte color)
           offset = (width * y + x) / 4, and write the given\r
           color to the plane we selected above.  Heed the active\r
           page start selection. */\r
-       VGA[(unsigned)((SCREEN_WIDTH/4) * y) + (x / 4) + 0] = color;\r
+       VGA[(unsigned)((SCREEN_WIDTH/4) * y) + (x / 4) + pageOff] = color;\r
 \r
 }\r
 \r
@@ -1003,8 +1005,83 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
        for(; *str != '\0'; str++)\r
        {
        c = (*str);
-       if(c=='\n' || c=="\
-" || chw>=page->width-1)
+       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;
@@ -1034,12 +1111,13 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
                        xp=0;\r
                        while(j)
                        {
-                               modexputPixel(x+xp+chw, y+i, l[i] & j ? col:bgcol);
+                               //modexputPixel(page, x+xp+chw, y+i, l[i] & j ? col:bgcol);
+                               modexClearRegion(page, (x+xp+chw)*8, (y+i)*8, 8, 8, l[i] & j ? col:bgcol);
                                xp++;
                                j>>=1;
                        }
                }\r
-               chw += xp-1;\r
+               chw += xp;\r
        }\r
 }\r
 \r
index f311a69ede71c0b1a0d5dfe16c30f96872de06c0..122e11e3cc8197050d09ea38479e9b1ea9a75161 100644 (file)
@@ -93,8 +93,9 @@ void modexPalUpdate(bitmap_t *bmp, word *i, word qp, word aqoffset);
 void modexPalUpdate1(byte *p);
 void modexPalUpdate0(byte *p);
 void chkcolor(bitmap_t *bmp, word *q, word *a, word *aa, word *z, word *i/*, word *offset*/);
-void modexputPixel(int x, int y, byte color);
+void modexputPixel(page_t *page, int x, int y, byte color);
 void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str);
+void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str);
 void modexWaitBorder();
 
 /* -======================= Constants & Vars ==========================- */
index 81771e6696da578bfe01db717a6bbbf418cd16eb..6553fc9eb70a05f20f2027acda036dcc7888cbd2 100644 (file)
Binary files a/test.exe and b/test.exe differ
index 8305d8b563f60499214748ae68ff7df31558ade2..f33345c9692797e8e218dd9a8e66cad08ea02af6 100644 (file)
Binary files a/test2.exe and b/test2.exe differ