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
}\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
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