X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fmodex16.c;h=02313272d9855ae8da34aff0a7aa749e178b9e7b;hb=b6b0bffba1968bc405ae6dea1a271811700cf03b;hp=a32bd964393616e9d0e793f73e871bdef95979af;hpb=c60a37b1fcd07f11b76d699e20c5d203e6636bd0;p=16.git diff --git a/src/lib/modex16.c b/src/lib/modex16.c index a32bd964..02313272 100755 --- a/src/lib/modex16.c +++ b/src/lib/modex16.c @@ -291,21 +291,18 @@ modexShowPage(page_t *page) { outp(AC_INDEX, (page->dx & 0x03) << 1); } - void modexPanPage(page_t *page, int dx, int dy) { page->dx = dx; page->dy = dy; } - void modexSelectPlane(byte plane) { outp(SC_INDEX, MAP_MASK); /* select plane */ outp(SC_DATA, plane); } - void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color) { word pageOff = (word) page->data; @@ -324,6 +321,14 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte color) { } __asm { + PUSHF + PUSH ES + PUSH AX + PUSH BX + PUSH CX + PUSH DX + PUSH SI + PUSH DI MOV AX, SCREEN_SEG ; go to the VGA memory MOV ES, AX MOV DI, poffset ; go to the first pixel @@ -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 DEC h JNZ SCAN_START + POP DI + POP SI + POP DX + POP CX + POP BX + POP AX + POP ES + POPF } }