OSDN Git Service

well, we could avoid some crashiness by saving/restoring CPU registers
authorJonathan Campbell <jonathan@castus.tv>
Fri, 6 May 2016 01:15:22 +0000 (18:15 -0700)
committerJonathan Campbell <jonathan@castus.tv>
Fri, 6 May 2016 01:15:22 +0000 (18:15 -0700)
in modexClearRegion.

pcx2vrl
pcxsscut
src/lib/modex16.c
vrl2vrs
vrsdump

diff --git a/pcx2vrl b/pcx2vrl
index bd947e5..06179c7 100755 (executable)
Binary files a/pcx2vrl and b/pcx2vrl differ
index 1deec74..2ce56d2 100755 (executable)
Binary files a/pcxsscut and b/pcxsscut differ
index ee7f156..6a5b279 100755 (executable)
@@ -324,6 +324,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 +365,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
diff --git a/vrl2vrs b/vrl2vrs
index b67956b..cee2d1d 100755 (executable)
Binary files a/vrl2vrs and b/vrl2vrs differ
diff --git a/vrsdump b/vrsdump
index dbaba30..a75a903 100755 (executable)
Binary files a/vrsdump and b/vrsdump differ