]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/modex16.c
wwww johncampbell it is much easier to see the issue in test.exe now /home/sparky4 ^^
[16.git] / src / lib / modex16.c
index a32bd964393616e9d0e793f73e871bdef95979af..02313272d9855ae8da34aff0a7aa749e178b9e7b 100755 (executable)
@@ -291,21 +291,18 @@ modexShowPage(page_t *page) {
     outp(AC_INDEX, (page->dx & 0x03) << 1);\r
 }\r
 \r
-\r
 void\r
 modexPanPage(page_t *page, int dx, int dy) {\r
     page->dx = dx;\r
     page->dy = dy;\r
 }\r
 \r
-\r
 void\r
 modexSelectPlane(byte plane) {\r
     outp(SC_INDEX, MAP_MASK);    /* select plane */\r
     outp(SC_DATA,  plane);\r
 }\r
 \r
-\r
 void\r
 modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {\r
     word pageOff = (word) page->data;\r
@@ -324,6 +321,14 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
     }\r
 \r
     __asm {\r
+           PUSHF\r
+           PUSH ES\r
+           PUSH AX\r
+           PUSH BX\r
+           PUSH CX\r
+           PUSH DX\r
+           PUSH SI\r
+           PUSH DI\r
                MOV AX, SCREEN_SEG      ; go to the VGA memory\r
                MOV ES, AX\r
                MOV DI, poffset  ; go to the first pixel\r
@@ -357,6 +362,14 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte  color) {
                ADD DI, nextRow  ; go to the next row\r
                DEC h\r
                JNZ SCAN_START\r
+           POP DI\r
+           POP SI\r
+           POP DX\r
+           POP CX\r
+           POP BX\r
+           POP AX\r
+           POP ES\r
+           POPF\r
     }\r
 }\r
 \r