X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=blobdiff_plain;f=src%2Flib%2F16_mm.c;h=18c02bbb7da332a4260ca928391fd4d0cad08888;hp=f3af11cca75109991407e94d48522573ca9c3ff9;hb=be16a39d3ed2b062cca8167096a24dd7aa826b44;hpb=e646dd0bd9df6a064b2c7192eb675c2a4191c3b8 diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index f3af11cc..18c02bbb 100755 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -1361,14 +1361,14 @@ extern char global_temp_status_text2[512]; void MM_ShowMemory (global_game_variables_t *gvar) { mmblocktype far *scan; - unsigned color,temp,x,y ,w,width; + unsigned color,temp,x,y ,w,width,sw; sdword end,owner; byte scratch[160],scratch0[4096],str[16]; #ifdef MMSMSCANINFO mmshowmemoryinfo_t scaninfo[MAXBLOCKS]; byte scratch1[4]; unsigned xpos,ypos, oldq,q,maxq; - boolean done,restarted; + boolean done,restarted,mmsmscaninfoxyposinew; ScanCode scancode; #endif @@ -1379,7 +1379,7 @@ void MM_ShowMemory (global_game_variables_t *gvar) temp = BDOFSCONV gvar->video.BOFS; gvar->video.BOFS = gvar->video.DOFS; #ifdef MMSMSCANINFO - oldq = 0; restarted = false; + oldq = 0; restarted = false; mmsmscaninfoxyposinew = false; reset: q = 0; #endif @@ -1387,7 +1387,7 @@ reset: end = -1; w = 0; - width = gvar->video.page[0].width; + width = gvar->video.page[0].width; sw = gvar->video.page[0].sw; CA_OpenDebug (gvar); while (scan) @@ -1419,9 +1419,10 @@ reset: Quit (gvar, "MM_ShowMemory: Memory block order currupted!"); } end = scan->length-1; - y = scan->start/width; - x = scan->start%width; -#ifdef MMSMSCANINFO + y = gvar->video.page[0].dx+(scan->start/sw); + x = gvar->video.page[0].dy+(scan->start%sw); +#if 0 +//def MMSMSCANINFO if(restarted){ y += gvar->video.page[0].dy; x += gvar->video.page[0].dx; @@ -1505,8 +1506,7 @@ reset: CA_CloseDebug (gvar); -#if 0 -//def MMSMPANVID +#ifdef MMSMPANVID { int dx,dy,odx,ody; odx = gvar->video.page[0].dx; @@ -1544,8 +1544,6 @@ reset: } #endif #ifdef MMSMSCANINFO -//#define MMSMSCANINFOXYPOSNEW -//{ maxq = q; if(restarted) q = oldq; else q = 0; @@ -1578,7 +1576,7 @@ reset: if(gvar->video.VL_Started) { VL_ShowPage(&gvar->video.page[0], 1, 0); - modexClearRegion(&gvar->video.page[0], 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 8); + 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); }else #endif clrscr(); @@ -1593,17 +1591,18 @@ reset: }else ypos+=8; if(gvar->video.VL_Started) { - y = scaninfo[q].scan->start/width; - x = scaninfo[q].scan->start%width; -#ifndef MMSMSCANINFOXYPOSNEW - y = ypos; - x = xpos; -#else - //y = scaninfo[q].y; - //x = scaninfo[q].x; - y += gvar->video.page[0].dy; - x += gvar->video.page[0].dx; -#endif + y = scaninfo[q].scan->start/sw; + x = scaninfo[q].scan->start%sw; + if(!mmsmscaninfoxyposinew) + { + y = ypos; + x = xpos; + }else{ + //y = scaninfo[q].y; + //x = scaninfo[q].x; + y += gvar->video.page[0].dy; + x += gvar->video.page[0].dx; + } VW_Hlin(x,x+end,y,color,gvar); VL_Plot(x,y,5,gvar); } @@ -1611,7 +1610,6 @@ reset: { printf("%s", scratch1); printf("%s", AAGREY); printf("_"); - if(scaninfo[q].scan->length<64000) for(w=(scaninfo[q].scan->start)/80;w<=end/80;w++) { //strcat(scratch1, "+"); @@ -1638,7 +1636,7 @@ reset: { //if (scan->next && scan->next->start > end+1) free xpos = gvar->video.page[0].dx; - ypos = gvar->video.page[0].dy;//(gvar->video.page[0].sh-(32));//8*4 + ypos = gvar->video.page[0].dy; } else { @@ -1653,6 +1651,11 @@ reset: IN_ClearKey(scancode); switch (scancode) { + case sc_Enter: + if(!mmsmscaninfoxyposinew) mmsmscaninfoxyposinew = true; + else mmsmscaninfoxyposinew = false; + //mmsmscaninfoxyposinew!=mmsmscaninfoxyposinew; + break; case sc_LeftArrow: if(q>0) q--; else q = maxq; @@ -1662,19 +1665,17 @@ reset: else q = 0; break; case sc_UpArrow: - if(q>10) q-=10; + if(q>9) q-=10; else q = maxq; break; case sc_DownArrow: - if(qmm.mmhead; -// x = gvar->video.page[0].dx; -// y = gvar->video.page[0].dy;//(gvar->video.page[0].sh-(32));//8*4 oldq = q; restarted = true; + 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); goto reset; break; case sc_Escape: @@ -1682,145 +1683,16 @@ reset: break; } } -//} -// MM_ShowMemoryDetail (x, y, w, q, end, &scaninfo, gvar); +#else + if(gvar->video.VL_Started) IN_Ack(gvar); #endif - -//?? if(gvar->video.VL_Started) IN_Ack(gvar); - gvar->video.BOFS = (byte __far *)temp; } -#if 0 -//def MMSMSCANINFO -void MM_ShowMemoryDetail (unsigned x, unsigned y, unsigned w, unsigned q, sdword end, mmshowmemoryinfo_t *scaninfo, global_game_variables_t *gvar) - { - byte scratch1[4]; - unsigned maxq = q; - boolean done; - ScanCode scancode; - int xpos,ypos; - word ccolor = 3; - IN_Ack(gvar); -// VL_ClearVideo (8); - for (q = 0,done = false;!done;) - { - if(scaninfo[q].scan->attributes & PURGEBITS) - { - ccolor = 6; // dark purple = purgable - strcpy(scratch1, AAMAGENTA); // dark purple = purgable - //printf("%s", AAMAGENTA); - }else{ - ccolor = 2; // medium blue = non purgable - strcpy(scratch1, AABLUE); // medium blue = non purgable - //printf("%s", AABLUE); - } - if(scaninfo[q].scan->attributes & LOCKBIT) - { - ccolor = 1; // red = locked - strcpy(scratch1, AARED); // red = locked - //printf("%s", AARED); - } - end = scaninfo[q].scan->length-1; -//modexprint(page, x, y, t, tlsw, color, bgcolor, vidsw, const byte *str); -#define MMSMPRINTMEMINFO modexprint(&(gvar->video.page[0]), xpos, ypos, 1, 1, ccolor, 8, gvar->video.VL_Started, global_temp_status_text); ypos+=8; -#ifdef __WATCOMC__ - if(gvar->video.VL_Started) - { - VL_ShowPage(&gvar->video.page[0], 1, 0); - modexClearRegion(&gvar->video.page[0], 0, 0, gvar->video.page[0].width, gvar->video.page[0].height, 8); - }else -#endif - clrscr(); - sprintf(global_temp_status_text, "block #%04u", q); MMSMPRINTMEMINFO -// sprintf(global_temp_status_text, "%Fp", scaninfo[q].scan->useptr); MMSMPRINTMEMINFO - sprintf(global_temp_status_text, "start: %04x", (unsigned)scaninfo[q].scan->start); MMSMPRINTMEMINFO - sprintf(global_temp_status_text, "useptr: %04x", (unsigned)scaninfo[q].scan->useptr); MMSMPRINTMEMINFO - sprintf(global_temp_status_text, "size: %05u", (unsigned)scaninfo[q].scan->length); MMSMPRINTMEMINFO - if (scaninfo[q].scan->next && scaninfo[q].scan->next->start > end+1) - { - sprintf(global_temp_status_text, "free: %05u", (unsigned)(scaninfo[q].scan->next->start-scaninfo[q].scan->start)); MMSMPRINTMEMINFO - } - if(gvar->video.VL_Started) - { - y = ypos;//scaninfo[q].scan->start/width; - x = xpos;//scaninfo[q].scan->start%width; - VW_Hlin(x,x+end,y,ccolor,gvar); - VL_Plot(x,y,5,gvar); - } - else - { - printf("%s", scratch1); - printf("%s", AAGREY); printf("_"); - if(scaninfo[q].scan->length<64000) - for(w=(scaninfo[q].scan->start)/80;w<=end/80;w++) - { - //strcat(scratch1, "+"); - printf("+"); - } - } - - - if (scaninfo[q].scan->next && scaninfo[q].scan->next->start > end+1) if(!gvar->video.VL_Started) - { - //strcat(scratch1, AARESET); - printf("%s", AARESET); - //strcat(scratch1,AAGREEN); - printf("%s", AAGREEN); - for(w=(end+1)/80;w<=((scaninfo[q].scan->next->start-scaninfo[q].scan->start)/80);w++) - { - //strcat(scratch1,"0"); - printf("0"); - } - }else VW_Hlin(x+end+1,x+(scaninfo[q].scan->next->start-scaninfo[q].scan->start),y,3,gvar); // black = free//now green - - - if(gvar->video.VL_Started) - { - //if (scan->next && scan->next->start > end+1) free - xpos = gvar->video.page[0].dx; - ypos = gvar->video.page[0].dy;//(gvar->video.page[0].sh-(32));//8*4 - } - else - { - //printf("%s\n", scratch1); - printf("%s", AARESET); - printf("\n"); - } -//0000printf("%s", AABLACK); fprintf(stdout, "q=%u maxq=%u\n", q, maxq); printf("%s", AARESET); -//fprintf(stdout, ""); //this is a HAX to make it decrement and increment properly when it is at 0 and qmax - while (!(scancode = gvar->in.inst->LastScan)){} - - IN_ClearKey(scancode); - switch (scancode) - { - case sc_LeftArrow: - if(q>0) q--; - else q = maxq; - break; - case sc_RightArrow: - if(q10) q-=10; - else q = maxq; - break; - case sc_DownArrow: - if(q