]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_mm.c
the memory management stuff is not working on the XT. and it is odd in xcroll.exe
[16.git] / src / lib / 16_mm.c
index 7383b693c016d2d72de5441eaff123f3e2e9ed3a..dc807cbd1a0daf49985c0b743e0838e48908fcc6 100755 (executable)
@@ -1361,7 +1361,7 @@ extern char global_temp_status_text2[512];
 void MM_ShowMemory (global_game_variables_t *gvar)\r
 {\r
        mmblocktype far *scan;\r
-       unsigned color,temp,x,y         ,w,width;\r
+       unsigned color,temp,x,y         ,w,width,sw;\r
        sdword  end,owner;\r
        byte            scratch[160],scratch0[4096],str[16];\r
 #ifdef MMSMSCANINFO\r
@@ -1387,7 +1387,7 @@ reset:
 \r
        end = -1; w = 0;\r
 \r
-       width = gvar->video.page[0].width;\r
+       width = gvar->video.page[0].width; sw = gvar->video.page[0].sw;\r
 \r
        CA_OpenDebug (gvar);\r
        while (scan)\r
@@ -1419,8 +1419,8 @@ reset:
                        Quit (gvar, "MM_ShowMemory: Memory block order currupted!");\r
                }\r
                end = scan->length-1;\r
-               y = scan->start/width;\r
-               x = scan->start%width;\r
+               y = gvar->video.page[0].dx+(scan->start/sw);\r
+               x = gvar->video.page[0].dy+(scan->start%sw);\r
 #if 0\r
 //def MMSMSCANINFO\r
                if(restarted){\r
@@ -1505,6 +1505,7 @@ reset:
        }\r
 \r
        CA_CloseDebug (gvar);\r
+       if (gvar->video.VL_Started) IN_Ack(gvar);\r
 \r
 #ifdef MMSMPANVID\r
        {\r
@@ -1544,13 +1545,15 @@ reset:
        }\r
 #endif\r
 #ifdef MMSMSCANINFO\r
-       maxq = q-1;\r
+       maxq = q;\r
        if(restarted) q = oldq;\r
        else q = 0;\r
        restarted = false;\r
 \r
-       IN_Ack(gvar);\r
-//     VL_ClearVideo (8);\r
+       while (!(scancode = gvar->in.inst->LastScan)){}\r
+//     IN_ClearKey(scancode);\r
+//     IN_Ack(gvar);\r
+\r
        for (done = false;!done;)\r
        {\r
                if(scaninfo[q].scan->attributes & PURGEBITS)\r
@@ -1576,7 +1579,7 @@ reset:
                if(gvar->video.VL_Started)\r
                {\r
                        VL_ShowPage(&gvar->video.page[0], 1, 0);\r
-                       modexClearRegion(&gvar->video.page[0], 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 8);\r
+                       modexClearRegion(&gvar->video.page[0], gvar->video.page[0].dx, gvar->video.page[0].dy, gvar->video.page[0].sw, gvar->video.page[0].sh, 8);\r
                }else\r
 #endif\r
                        clrscr();\r
@@ -1591,8 +1594,8 @@ reset:
                }else   ypos+=8;\r
                if(gvar->video.VL_Started)\r
                {\r
-                       y = scaninfo[q].scan->start/width;\r
-                       x = scaninfo[q].scan->start%width;\r
+                       y = scaninfo[q].scan->start/sw;\r
+                       x = scaninfo[q].scan->start%sw;\r
                        if(!mmsmscaninfoxyposinew)\r
                        {\r
                                y = ypos;\r
@@ -1665,17 +1668,17 @@ reset:
                                else q = 0;\r
                        break;\r
                        case sc_UpArrow:\r
-                               if(q>10) q-=10;\r
+                               if(q>9) q-=10;\r
                                else    q = maxq;\r
                        break;\r
                        case sc_DownArrow:\r
-                               if(q<maxq+10) q+=10;\r
+                               if(q<maxq-9) q+=10;\r
                                else q = 0;\r
                        break;\r
                        case sc_Space:\r
                                oldq = q;\r
                                restarted = true;\r
-                               modexClearRegion(&gvar->video.page[0], 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 8);\r
+                               modexClearRegion(&gvar->video.page[0], gvar->video.page[0].dx, gvar->video.page[0].dy, gvar->video.page[0].sw, gvar->video.page[0].sh, 8);\r
                                goto reset;\r
                        break;\r
                        case sc_Escape:\r
@@ -1683,8 +1686,8 @@ reset:
                        break;\r
                }\r
        }\r
-#else\r
-       if(gvar->video.VL_Started) IN_Ack(gvar);\r
+//#else\r
+//     if(gvar->video.VL_Started) IN_Ack(gvar);\r
 #endif\r
 \r
        gvar->video.BOFS = (byte __far *)temp;\r