]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
replace inline asm with _fmemcpy to copy ROM font char.
[16.git] / src / lib / modex16.c
index 2d018dc12f190f5abff840fd1cb0e020ac850e2f..20c468e2372a2750bd37b33a977ce93b26eecd9c 100755 (executable)
@@ -903,24 +903,11 @@ void modexprint(page_t *page, word x, word y, word t, word col, word bgcol, cons
                y += 8;\r
                continue;\r
        }\r
-       //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
-//TODO: OPTIMIZE THIS!!!!\r
+\r
+       // load the character into romFontsData.l\r
+       // no need for inline assembly!\r
+       // NTS: It might even be faster to just let the modexDrawChar point directly at ROM font than to copy per char! --J.C.\r
+               _fmemcpy(romFontsData.l,MK_FP(s,o)/*ROM font location*/,w/*char size*/);\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
@@ -1032,7 +1019,7 @@ void modexcls(page_t *page, byte color, byte *Where)
        _fmemset(Where, color, page->width*(page->height)/4);\r
 }\r
 \r
-/*void\r
+void\r
 modexWaitBorder() {\r
     while(inp(INPUT_STATUS_1)  & 8)  {\r
        // spin\r
@@ -1041,7 +1028,7 @@ modexWaitBorder() {
     while(!(inp(INPUT_STATUS_1)  & 8))  {\r
        // spin\r
     }\r
-}*/\r
+}\r
 \r
 void bios_cls() {\r
        VGA_ALPHA_PTR ap;\r