From e42f649aa2ec07f95d127917fe27bc4131a63b01 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 19 Apr 2017 14:53:11 -0500 Subject: [PATCH] p16 is being worked on a bunch by me wwww [16_ca needs huge amounts of work and I should remember what needs to be done soon][OpenVGMFile needs to be ported to 16_snd.c]going to port rest of code to borland c some time so we can use the core components of id engine here [going to add 16_us.c eventually but the debug system and CA_ PM_ and MM_ usage is priority now]older zcroll renamed to xcroll][zcroll is now the pre menu game loop system with PROPER data usage with CAMMPM] wwww --- _pm_use.txt | 30 +++++++++++++++++- bcexmm.dsk | Bin 1984 -> 1957 bytes bcexmm.exe | Bin 154940 -> 154568 bytes bcexmm.prj | Bin 9979 -> 9983 bytes src/exmmtest.c | 6 ++-- src/lib/16_mm.c | 79 ++++++++++++++++++++++++++++++++++++++++++---- src/lib/16_tdef.h | 6 ++++ src/lib/16_vl.c | 6 ++-- src/lib/16_vl.h | 2 +- 9 files changed, 115 insertions(+), 14 deletions(-) diff --git a/_pm_use.txt b/_pm_use.txt index 43ba6c4a..bc694e8e 100755 --- a/_pm_use.txt +++ b/_pm_use.txt @@ -1,28 +1,53 @@ +------------------------------------------------------------------------------- + ./qwolf.sh start +------------------------------------------------------------------------------- +==== 16/wf3d8086 ==== 16/wf3d8086/contigsc.c: shape = PM_GetSpritePage (shapenum); 16/wf3d8086/contigsc.c: shape = PM_GetSpritePage (shapenum); 16/wf3d8086/id_sd.c: addr = PM_GetSoundPage(page); 16/wf3d8086/id_sd.c: PM_SetPageLock(PMSoundStart + page,pml_Locked); 16/wf3d8086/id_sd.c: PM_SetPageLock(i + PMSoundStart,pml_Unlocked); +16/wf3d8086/id_sd.c: DigiNextLen = (DigiLeft >= PMPageSize)? PMPageSize : (DigiLeft % PMPageSize); +16/wf3d8086/id_sd.c: DigiLastEnd = DigiPage + ((DigiLeft + (PMPageSize - 1)) / PMPageSize); +16/wf3d8086/id_sd.c: len = (DigiLeft >= PMPageSize)? PMPageSize : (DigiLeft % PMPageSize); 16/wf3d8086/id_sd.c: PM_UnlockMainMem(); +16/wf3d8086/id_sd.c: MM_GetPtr(&list,PMPageSize); 16/wf3d8086/id_sd.c: PM_CheckMainMem(); 16/wf3d8086/id_sd.c: p = (word far *)MK_FP(PM_GetPage(ChunksInFile - 1),0); +16/wf3d8086/id_sd.c: _fmemcpy((void far *)list,(void far *)p,PMPageSize); +16/wf3d8086/id_sd.c: pg = PMSoundStart; +16/wf3d8086/id_sd.c: for (i = 0;i < PMPageSize / (sizeof(word) * 2);i++,p += 2) +16/wf3d8086/id_sd.c: pg += (p[1] + (PMPageSize - 1)) / PMPageSize; 16/wf3d8086/id_sd.c: PM_UnlockMainMem(); 16/wf3d8086/wl_act2.c: PM_UnlockMainMem (); 16/wf3d8086/wl_act2.c: PM_CheckMainMem (); +16/wf3d8086/wl_debug.c: page = &PMPages[i]; +16/wf3d8086/wl_debug.c: if (i < PMSpriteStart) +16/wf3d8086/wl_debug.c: else if (i < PMSoundStart) 16/wf3d8086/wl_debug.c: addr = PM_GetPageAddress(i); +16/wf3d8086/wl_debug.c: if (i < PMSpriteStart) +16/wf3d8086/wl_debug.c: else if (i < PMSoundStart) +16/wf3d8086/wl_debug.c: SimpleScaleShape (160, i-PMSpriteStart, 64); +16/wf3d8086/wl_debug.c: k += (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; +16/wf3d8086/wl_debug.c: k = (DigiList[(j * 2) + 1] + (PMPageSize - 1)) / PMPageSize; +16/wf3d8086/wl_debug.c: (i >= PMSoundStart + DigiList[j * 2]) +16/wf3d8086/wl_debug.c: && (i < PMSoundStart + DigiList[j * 2] + k) +16/wf3d8086/wl_debug.c: US_PrintUnsigned(i - PMSoundStart - DigiList[j * 2]); +16/wf3d8086/wl_debug.c: i = PMSpriteStart; +16/wf3d8086/wl_debug.c: i = PMSoundStart; 16/wf3d8086/wl_debug.c: PM_GetPage(j); 16/wf3d8086/wl_debug.c: PM_GetPage(i); +16/wf3d8086/wl_draw.c:#define DOORWALL (PMSpriteStart-8) 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(doorpage); 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(doorpage+1); 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); 16/wf3d8086/wl_draw.c: *( ((unsigned *)&postsource)+1) = (unsigned)PM_GetPage(wallpic); - 16/wf3d8086/wl_draw.c: PM_NextFrame(); 16/wf3d8086/wl_game.c: PM_UnlockMainMem(); @@ -41,7 +66,9 @@ 16/wf3d8086/wl_main.c: PM_Startup (); 16/wf3d8086/wl_main.c: PM_UnlockMainMem (); +16/wf3d8086/wl_menu.c: StartCPMusic(MENUSONG); 16/wf3d8086/wl_menu.c: PM_CheckMainMem (); +16/wf3d8086/wl_menu.c: StartCPMusic(MENUSONG); 16/wf3d8086/wl_menu.c: PM_CheckMainMem (); 16/wf3d8086/wl_play.c: PM_CheckMainMem (); @@ -55,3 +82,4 @@ 16/wf3d8086/wolfhack.c: src = PM_GetPage(0); 16/wf3d8086/wolfhack.c: src = PM_GetPage(1); +=============== ./qwolf.sh end =============== diff --git a/bcexmm.dsk b/bcexmm.dsk index 1244a4fd62b3b5f88e8c6c5ca90ff61888d35afa..5a2cefe499af011a3d91d2edfa20246c7f2209d6 100755 GIT binary patch delta 103 zcmX@Wzm$K2Ig_jxs}uu+5d#n?$V^sCP=e7M3>ykVCI>QWPQJu+lM^nzc?*PRYF>Vfq4TYf$3`PtLwUgH|sWJO_I!$(DHJr@OEH}B9=_V&5 o0}xDB+o7^Kp7{bZ^H)Zb$pOsbEF26cw1N61*m&Ik|7TzT0G72C?EnA( diff --git a/bcexmm.exe b/bcexmm.exe index 8241cd6c3288721d9537d05de33d70fbb151e0d0..cf48e82b69377284885f0d7ba8eda40abc742248 100755 GIT binary patch delta 64008 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 delta 64417 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 bE}Z=+Wb@ngMBm(@8tueGo9DL^#pVA2+c-OR diff --git a/bcexmm.prj b/bcexmm.prj index 4ac8b0f3143c414fd0b579c479590239bd710f94..5c9dca3b18571442b51bdbb0ca9a10723455aaf9 100755 GIT binary patch literal 9983 zcmeI2Yjj*y7036@Ox`n-w3NOmhJ1PH8tGd_r7@dpxV^4FRm^p#lCQf!k5BYiWI#{ zd8E*5Orq059us_BmzWCuP-vbN{1MYaZ!)*iIgxW-@B))87eV?1 zm$CejL4N}N%uxOU>91rZ8X{3`6-Wq|ZV6Jn#f?0(cU5ib2l-Cy{&}IECcXz!w;nFG6|-_!96e@MYku zz}J9wpU2y}^Zx>}+dC7){RxUO0jYO1S=)+tA4 zSM}^muUA&m>WtOYW!0$9s<9!f#>T7~4OuldW!2c6Rbxw5jhnJ++?-Y8maH0EIdCuc z$94I`)2$TI`s#*yxWdEo#+n8mNkmPTziAqe;z}(Xre^V~Fbp2gRKV}rdk&8JO6bQ$ zG~68Vgwfh8pS}I@16fpZy1jP)8nq(e2{>zNH?C4Ef}v=eE38(8BcVW8S1UA51ftDO zw62zgRR{Ze_Nc2XyVabmTzcixhBB;+g`8_(Al}=xFW#TdsP2je(%qX$epR4dt=i#L zt3qnUT-QC5_RO@*m_eoohu!h6p}l+4dyoeA%+$!#nfmU3PwwmEF67O` z9lVc78-z4?fHmf@Xa6fMJYy)4;rKw`P=9w^)%to5r1xS(n?wI`RTXnx;oLTF+O>V3 z=R$AqfxiAh)!)ftzd^M7~AI6 zbx)8jnp?_=dDF9g1udinLe(#9E#%{b#hh-CY;k{DG`8Z2>anE#WZv|wm|BbJN?Ihu zu&{Njg{UgRM?k!DN4=i*KtN|BYzh})OUlc|6kSX2A(aZbOoR^e^Ln@#2OdOs^Hu7D z=1T3C$jimpHMEkh76o)+>pL75*z3N`U&&UB$K^)XCiu|Io4&ObbQN*v@n^fRb#?{O z(GsFCcU7_#KpZB0h~ox+ULtS$mWYO0M=TtNviwSo0&JIA=-y+V1bHfvv<od8VYTcw0$b z@uFf|5fxhs-zt1N|2GA{v;I8)mzImxpXR+``GN9s-q#hw_%7i~*+NXuKEZCWejO2HP|a@VNON#}f{zEwiMTIAOVxmIwU;Chi?Cs;4IL2#qE z+aTmkf}2Io7SV>A$k{XMyIIJ$&|t^Iz8i$RRnR5aNKdzq`ZOWC1wDdIg3W?nLBl}5 zQuRf4Y8b*5J87(AG*LwEW@fjTu6y@gVRqkiMXD3bhm~|i{eMQZlWr6KVGkSVuH=gG zQ7`H6QaC6X>qwip09vNw?C_ z;HXayrAskOy!-Fcbn#)JyKscGSuwDLsH{x+{V(S7`$Jk~3mI5lOr;P=Y9OWpV!}0F z`tviUroR-C-6sdfgn0(*6e*^}zLS57r)|O!=3B*#rqnf=84>1s%UpYz>o9W_Wf)k) zO?bCW-Y`4qdSS+Vwazzx=eqQh{mrL82*{Kb=>&IR(;ar{I-(P+Tj@D$_ajq&IBio0`eN!BJCKH{(R=;Q@W{|1o?9O15*PpSKY$S6lIyuZTK5zch2HJ=X zrxcxH{lVGt(B$akbI2((HQGQIsERkcyJ$CcQ6C+m!_-Z^eAw~;JxCv?BXo>DMq~VM zuJiOQ{)gCUdWb$vkII#H hyF7ZwZ;B3$r+8*CWxQIux+OI&At%m2O)VU9{~O)&OBetE literal 9979 zcmeI2dvIJ;9mjt+n|F3MX()YB+65Qbwl=S}Y18uP=I$ohWnbOBX_Izs$YW`%q^Wrz z6ikDHVzDWxGs=vAC>1C^3N4ENXz_tFLQ`;jlorQ99i4H;8Ak;awRrt~&)vgw#vl{UyAA| zTKppAkwPyqiOvXlOz^DGye#;=GTi;X;Az3n^Tfhn6 zY2Z7+b3i3rUV$Dg1g-=Y0gDwQhD*4hEL9NiWzb&*EQj)HNGlkYl_)w;ycYNX-~_G% zu1DpH8(3N+n)yf`i@O-ghk)Hc7tjs#014oBU=OgDLA}6!pbxr_LK=WH1nEvlAA@uk zq`QHGz&*gd3>pPKj^Z$I2p9qG13m$Kl0o-FdI0zoik}7^MDZ~25O4%|7a;$v!!6vaCiWfQ;nvh}Fy4}_mD$~|;q+WrM^vj6P~8S@tB!@*ni`^Y z%AwgcJ^R}0l@+u)V>27FTGVH?*qGH~Q&x+HtQMQIT5QQ`abs4Co3dKmoYmr%tQK22 zaWD7BefiVVqZHHnnudCW!prie+6JCUL`|2!Ybwv;Dm4VZ&c1y;j@4D&j-0$)dgC*?GOUS(oO@s((c5)LqTkG^=8gr;?#)DB9c*({ z@ANsU!w%^{o%(Tv!PDTWWJ&CTNJ$uX}NP|5ybux85r?<@;atFOr-+k|B&yI(X zHxsw>KEgB!Y48AB%;Cu1FClzcSE9p-fxe;s?u0|_>pfr|#i%-m@#ChPbKT(Fc5m9P zy~58zU+;mw{y|4zUsr!;|Gv)sCY61`$egaKoparwNxv_(`e!=c(f|Lr9>5$Vz2Y%+*_juaoS<$ECfzK~MP#wYx*{ zTYZ}54Y5aKOF23K1%7SWZo zP>3OVhhuomLR1|k8s?ol+V!>tgBm+wSGWjYk}ellbS+&&4l3e05#j4-2@X7nI{7M% zL3O8(OXzZOwvtxR)uKXF_N||9+&~U;5s#^WPYsE7iVe##9^weQ zZkm|$n%fs(XC29F4h|&K3MwZ%ACVI67QV)KTJujv306tt+8*erg|FmQY9I$OpZ(4xQ!o|@*8HBpD&ajD&Je~D|eL_mH*NHg8ec3efCcKR{Ki3V*icp zwC&5bgSK{Cy=|fGE$i>BFIk_qK5D(++GlOEHd@zOmsrXAhq717zFQVAJzg3sX)diT zsVFHfzF4dmzESjM!Ji8Mod0^k?=9!@&*zO<&MH65drr~y9}&JpE{annKa`f4H92-XVL3H>_3^@1A&>&4xT zLf$0UAT*ol)b0oTTWH(BsQ*SG-$X?ZAMsx&Ot$G9rP6Eml0qimyL8VW`-OadEOW^ zX8Ngd>E?$#dU=+Z&JPS%iiCL0VRp1qh-Z#54d-(pj69boe&*Q`5D%iDcn}#uG3<2= zR|-UO9pR!Ft>P!3{L9bJ2ZS5~vuCB89lCBZH!xf&5Xl7{a$*~m9X;YV8h>vEBy&!r zPmW|xV7O8!l51uch3Oj37CDtJ#Z%(lf0vr&hmPSQ5Yk3P#}cBdD(!E7ad#jPR;yY_ z$LeA#gJ8-6Id!XeeH$PWC&xP(37&3fD%7JO1VRgv|>kz>*RZ^)_g&46nZR3Q+13DA}g_0m6ZJCnACc0z2K*G8N0RG-K>*)0Lb&ti;+`Y5pXegYijesxc(=vLAX;EKDgu|>K{8zM0E@JJmcuaF= zjD=5h(rgq>YDg2gWoDpi?GbOLJ|NR@-?V{n$moLE7-O1;Pe(Gj=m@n2L?`hCnd+I{ z5o+=UGWL?4WbQ==r&-3|oBv@0eZ+=S%1*KVV6{9oIXn3ba!RF28|ea7^Je!p>ZC5} zql0u0byF|xr^ECReU|Q}2kA33#{bE6o_@gp9d?F}&==`T^e8<}PtcQel1|aHbef*$ zP4mmX-yddVVQ8MoG>>a-;1~gvcCxap5)!Nl9nW;%RdH!iw;eh*p DPeYH+ diff --git a/src/exmmtest.c b/src/exmmtest.c index d668c2db..ad274c7e 100755 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -274,9 +274,9 @@ PRINTBB; KEYP IN_ClearKey(scan); switch (scan) { - case sc_Space: - MM_ShowMemory(&gvar); - break; +// case sc_Space: +// MM_ShowMemory(&gvar); +// break; //#ifdef __WATCOMC__ case sc_O: VL_modexPalScramble(&gvar.video.palette); modexpdump(&gvar.video.page); diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index e2249abd..36b976a0 100755 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -1257,14 +1257,18 @@ void MM_SortMem (global_game_variables_t *gvar) ===================== */ -#define MMSMPANVID +#ifdef __WATCOMC__ +//#define MMSMPANVID +#define MMSMSCANINFO +#endif void MM_ShowMemory (global_game_variables_t *gvar) { mmblocktype far *scan; - unsigned color,temp,x,y ,w,width; + unsigned color,temp,x,y ,w,q,width; sdword end,owner; - byte scratch[160],scratch0[4096],str[16]; + byte scratch[160],scratch0[4096],str[16]; + mmshowmemoryinfo_t scaninfo[MAXBLOCKS]; if(!gvar->video.page[0].width) gvar->video.page[0].sw = gvar->video.page[0].width = 320; //to prevent division by 0 //-- VL_SetLineWidth(40, gvar); @@ -1276,11 +1280,12 @@ void MM_ShowMemory (global_game_variables_t *gvar) end = -1; w = 0; - width = gvar->video.page[0].width; + width = gvar->video.page[0].width; q = 0; CA_OpenDebug (gvar); while (scan) { + scaninfo[q].scan = scan; strcpy(scratch, AARESET); if(scan->attributes & PURGEBITS) { @@ -1311,6 +1316,8 @@ void MM_ShowMemory (global_game_variables_t *gvar) end = scan->length-1; y = scan->start/width; x = scan->start%width; + scaninfo[q].x = x; + scaninfo[q].y = y; VW_Hlin(x,x+end,y,color,gvar); VL_Plot(x,y,5,gvar); for(w=(scan->start)/80;w<=end/80;w++) @@ -1374,6 +1381,7 @@ void MM_ShowMemory (global_game_variables_t *gvar) //fprintf(stdout, "%s", scratch); scan = scan->next; + q++; //if(color!=6) IN_Ack(gvar); } @@ -1415,9 +1423,68 @@ void MM_ShowMemory (global_game_variables_t *gvar) gvar->video.page[0].dx = odx; gvar->video.page[0].dy = ody; } -#else - IN_Ack(gvar); #endif +#ifdef MMSMSCANINFO + { + unsigned maxq = q; + boolean done; + ScanCode scancode; + int xpos,ypos; + word qq, ccolor = 3; + IN_Ack(gvar); +// VL_ClearVideo (8); + for (qq = 0,done = false;!done;) + { + if(scaninfo[qq].scan->attributes & PURGEBITS) + { + ccolor = 6; // dark purple = purgable + }else{ + ccolor = 2; // medium blue = non purgable + } + if(scaninfo[qq].scan->attributes & LOCKBIT) + { + ccolor = 1; // red = locked + } +/*typedef struct mmblockstruct{ + word start,length; + unsigned attributes; + memptr *useptr; // pointer to the segment start + struct mmblockstruct far *next; +} mmblocktype;*/ + //modexprint(page, x, y, t, tlsw, color, bgcolor, vidsw, const byte *str); +#define MMSMPRINTMEMINFO modexprint(&(gvar->video.page[0]), xpos, ypos, 1, 0, ccolor, 8, gvar->video.VL_Started, global_temp_status_text); ypos+=8; + VL_ShowPage(&gvar->video.page[0], 1, 0); + if(!gvar->video.VL_Started) clrscr(); + sprintf(global_temp_status_text, "block #%04u", qq); MMSMPRINTMEMINFO +// sprintf(global_temp_status_text, "%Fp", scaninfo[qq].scan->useptr); MMSMPRINTMEMINFO + sprintf(global_temp_status_text, "%04x", (unsigned)scaninfo[qq].scan->useptr); MMSMPRINTMEMINFO + sprintf(global_temp_status_text, "size: %05u", (unsigned)scan->length); MMSMPRINTMEMINFO + sprintf(global_temp_status_text, "free: %05u", (unsigned)(scaninfo[qq].scan->next->start-scaninfo[qq].scan->start)); MMSMPRINTMEMINFO + //if (scan->next && scan->next->start > end+1) free + xpos = 16; + ypos = 16;//(gvar->video.page[0].sh-(32));//8*4 + while (!(scancode = gvar->in.inst->LastScan)){} + + IN_ClearKey(scancode); + switch (scancode) + { + case sc_LeftArrow: + if(qq>0) qq--; + else qq = maxq; + break; + case sc_RightArrow: + if(qqvideo.BOFS = (byte __far *)temp; } diff --git a/src/lib/16_tdef.h b/src/lib/16_tdef.h index fe5083a5..3aeb85b1 100755 --- a/src/lib/16_tdef.h +++ b/src/lib/16_tdef.h @@ -475,6 +475,12 @@ typedef struct mmblockstruct struct mmblockstruct far *next; } mmblocktype; +typedef struct mmshowmemoryinfo +{ + word x,y; + mmblocktype far *scan; +} mmshowmemoryinfo_t; + typedef struct { dword nearheap,farheap,EMSmem,XMSmem,mainmem; diff --git a/src/lib/16_vl.c b/src/lib/16_vl.c index 12d8c4b6..dc53d947 100755 --- a/src/lib/16_vl.c +++ b/src/lib/16_vl.c @@ -1107,7 +1107,7 @@ void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, wor } } -void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, word bgcol, boolean sw, const byte *str) +void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word color, word bgcolor, boolean vidsw, const byte *str) { word s, o, w; word x_draw; @@ -1116,7 +1116,7 @@ void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, word addrr; byte c; - switch(sw) + switch(vidsw) { case 0: printf("%s\n", str); @@ -1149,7 +1149,7 @@ void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, // no need for inline assembly! // NTS: It might even be faster to just let the modexDrawChar point directly at ROM font than to copy per char! --J.C. _fmemcpy(romFontsData.l,MK_FP(s,o+(w*c))/*ROM font location*/,w/*char size*/); - modexDrawChar(page, x_draw/*for mode X planar use*/, t, col, bgcol, addrr); + modexDrawChar(page, x_draw/*for mode X planar use*/, t, color, bgcolor, addrr); x_draw += 8; /* track X for edge of screen */ addrr += 2; /* move 8 pixels over (2 x 4 planar pixels per byte) */ } diff --git a/src/lib/16_vl.h b/src/lib/16_vl.h index 64c309e7..abea3773 100755 --- a/src/lib/16_vl.h +++ b/src/lib/16_vl.h @@ -251,7 +251,7 @@ static inline byte modexreadPixel(page_t *page, int x, int y, word addr) #endif void modexDrawChar(page_t *page, int x/*for planar selection only*/, word t, word col, word bgcol, word addr); -void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word col, word bgcol, boolean sw, const byte *str); +void modexprint(page_t *page, sword x, sword y, word t, boolean tlsw, word color, word bgcolor, boolean vidsw, const byte *str); void modexprintbig(page_t *page, word x, word y, word t, word col, word bgcol, const byte *str); void VL_modexPrintTextBox(global_game_variables_t *gvar); void modexpdump(page_t *pee); -- 2.39.2