From e6b81a7e9ec87843d27bee052ff2f793f71896ab Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 21 Jul 2015 12:02:22 -0500 Subject: [PATCH] bakapee!!!! modified: 16.exe modified: DEBUG.TXT modified: MMDUMP.TXT modified: exmmtest.exe modified: fmemtest.exe modified: fontgfx.exe modified: fonttes0.exe modified: fonttest.exe modified: inputest.exe modified: makefile modified: maptest.exe modified: miditest.exe modified: palettec.exe modified: pcxtest.exe modified: sountest.exe modified: src/lib/16_mm.c modified: src/lib/16_mm.h modified: test.exe modified: test2.exe modified: tsthimem.exe --- 16.exe | Bin 45547 -> 45547 bytes DEBUG.TXT | 10 ++--- MMDUMP.TXT | Bin 150 -> 0 bytes exmmtest.exe | Bin 57198 -> 58755 bytes fmemtest.exe | Bin 20822 -> 20822 bytes fontgfx.exe | Bin 39420 -> 39420 bytes fonttes0.exe | Bin 38762 -> 38762 bytes fonttest.exe | Bin 22650 -> 22650 bytes inputest.exe | Bin 35761 -> 35761 bytes makefile | 2 +- maptest.exe | Bin 45487 -> 45487 bytes miditest.exe | Bin 62964 -> 62964 bytes palettec.exe | Bin 36448 -> 36448 bytes pcxtest.exe | Bin 63674 -> 63674 bytes sountest.exe | Bin 57836 -> 57836 bytes src/lib/16_mm.c | 115 +++++++++++++++++++++++++----------------------- src/lib/16_mm.h | 2 +- test.exe | Bin 36797 -> 36797 bytes test2.exe | Bin 39549 -> 39549 bytes tsthimem.exe | Bin 30749 -> 30749 bytes 20 files changed, 67 insertions(+), 62 deletions(-) diff --git a/16.exe b/16.exe index 3bc10dcf6093ca0896fe16deb61f81fd74437f42..06506b05d29d13f3054669555b70bc35cee16c8b 100644 GIT binary patch delta 37 vcmV+=0NVfS;{xmB0uoJHL;*Vh-~c)RW(@!T$OnMCu@VKO0)V@-8Klw;Bb*Or delta 37 tcmaF;nCbOnCL!M_7e;G_2MksWdW`@7pI~R;*eJxhgo%M;v*eOXyZ{EG47~sV diff --git a/DEBUG.TXT b/DEBUG.TXT index d71980c4..b442a8f8 100644 --- a/DEBUG.TXT +++ b/DEBUG.TXT @@ -1,7 +1,7 @@ -Seg:0 Size:140384 Owner:0x84a -Seg:2246 Size:4096 Owner:0xfb32 -Seg:2346 Size:31344 Owner:0x1c68 -Seg:3054 Size:1026592 Owner:0x468b -Seg:3924 Size:683456 Owner:0x5657 +Seg:0 Size:114096 Owner:0xfd10 +Seg:1bdb Size:4096 Owner:0xb512 +Seg:1e4b Size:8512 Owner:0x8ebc +Seg:22ef Size:774416 Owner:0x8e2e +Seg:e000 Size:31344 Owner:0xd648 MM_ShowMemory: Memory block order currupted! diff --git a/MMDUMP.TXT b/MMDUMP.TXT index 18431f44413f4c806ff4c46b43ab50d342aa1a68..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 150 zcmXr0FfcGlwlc6VNmS6#b<7U`SXPB!P_jk17GQBQ43;2q?jTkN^O|(;$cd diff --git a/exmmtest.exe b/exmmtest.exe index a99bb92273ba35d02696a1025699aa0ff181c388..e979fbdb99311ca30fd169e1f18bd5325824858d 100644 GIT binary patch delta 19153 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 delta 18215 zcmZ`>3tUvy*57l^00RPph`@-Byyc++DxiXhf`d;S1wl<2LBJQU3o~G)4!+XE;FRs| zwQes_>st5bBP>bFP!zH(UuB4dvA-4gm#uHKt_#5C2K*j_@ZUUMoLg@rT^pgmA6|gi3 z9hnRZ0*ue&@+!cTj1urB;3%LG&;|H-3Lyz8glGY$0apP}YY6!W@XK^U_!)#m0VV^+ z&xGJvgcJbY0ki?y0S^JLv(f8x_{m%h5#V(|O$Nq)MkdA`;JW|<0g5a_0s#{NX@G@* z3cwD)8-RBJX93-SfQ5vF17ZNP0WARiVnSX78~_{!d=9t`2z~;J0=57S0$Ks?OGXl+ zUP8zyz+6BDfCBadegMSk2&n=HfH!nh!~bA3_!9CZAVNjRalnuv@GF47A0Z8ZPXWV+ z5i%B#0>}ca06YyCKb(*w0dO}!JKzDpClIm#v4Au{7T_;{_W_>(ZUKG+I0O-r6a<6) z6*mU}p8|da3?4zqPk^>C;KDJxA_%z;$QXr&0T%%CMq?xalcNaP2uO+s4X_^IFb2j4 zL;{ikd4MMY&jJ1cI05(ya2G(v4kcvVSVFb}_5;2E{2Sm1Uv(QtH4aNOv5MMD+J}39wCJDaiTD)YH-Xu) zA(mPkf{dTXZD};{?cb4)WyF;A&{7kx75TEjmniW;S_z&;vnE8^GkEgvecD5`J6=P> z?hI3V$+9TkvW(lI`LXt*V7j+$wYmKv^bF5Sq3&8s-Z3gikDs5^(#?F|edRGGC3c3Yu=y zG#B$JA-yLQV(8OO!A8B?-nDKWf9;4AIxXD^!YSb->ICB9nZ&J)dcJ+7b?YUAJD#6R zWRms#2N2iVQICert(%kdZp7d$cf z%Sb=5L&Eo)?<%%ydIYLg1PzW=gkLtdUcAjJZS(XnX}X1NUNlP)1&X=#kfPbq+rz!t zG0ekb&rpv&f%NYR|53jr!gh7=FP3O7fkM3+)V0c+{}$9 zw!6`PE7l=ynp^9(xCxpEb zrQ_&|f#b%(;0rhy#gz5PayCwA7A|5))EK5A*2+iL%5KqDen7?7T{fRqH1t?4PUGnL zfrBTV9B;n4-N}44r7P9NLw^@8@~OpTqS$tm<$PpEO}EW-3ZX@~BIG=TpB#6RVT3L7 z;%IQapnU4X=oX)0L5x0)(^|6RA{|eqoEFy9;2D#< z%kp*z4fEX!?gPHd2f(ea@tU49>Md?`s7m9)o@Eck$0F5h9+FZfcse}Fw9Tu2$dG8+ zAF%frcClZG%=LlWeE3dnR*xle3^ff6;2PcNfuU)}&3Bh+&27<*+cn+Mci_^3rVDBa zntLYAJvg#S(8Z^%^SMp>!XjPn$W?T zCKJpd_K|OQ?(3h}xhV9*s_A0<>n`B_B~#9$!|s>AyWALaYU3@UMj@mrglrdE@5H`+ zX6xIVeSLe=5~}LoHzWG?W?$ca?e5pNCfh_^f?X&p%_V3hCbZTE;r#c?@?-Wh;&zLz{RqGh7I^uE6YPG6Is|GY0l+}+9 z89a}8NRN7j@LG>m_*=Ktr0J1X{Vt4d1|&HmI7t{QFjMF^{x!1EbY;MNZv80wVL-Uw zyQ72_Q&!J$4vXtOByXKDXInI#NT?@_dOk3`fO(37*IMrW4q4X9E^Flj(X|Ew*9x3s zzLbrq@chZ|=A4H>S>r{PNTA-6s{Je?#saZVLi}j0yes08fP0Rb1AV=Ajy&!{gckFu zn6vPImKGRC(qn-`xlKN_H87lu8%g<~$PwqfLC@;JYHN)=o#O&uZ3{JR^9Tqvz3v$h zb5>}B6w94Rx*%vy;9nz!CIm&yBPVl?t8kz3^|Hx{#SlqP2aO&+Es{wwC7Sfy)-Hn_ zDM%ul#SevhF=s7dk#u0NuhCuPiMfWx86P8BZblkTi=CK>PF()2-&8v8Xs>=Hf~in@ z(&S{y=1e&~mPRN0Otkr{t9E|IJh*IAwUHypCW3i$PNym7UUM2Ji#gkz#><4(7UMQK z(%;&)mTitGkB=jk4H4i$zOqdbAY^r$Sh33`05etS(HwUd$MGdgISe3NWRV8uoE^dN z$RA+6hcRbgvSjwBj*fug(BDu|VHSa$;7r1ANKrQSWJhxA_KTy^BXP-WT=!a>Frl(K zThchV%mFW^I{izCm+_wIb&mk^E1m(20a)QaEXT~h%QFDJW;qoiae2W; zto~m$F}77UB6cvWQL(xS<}vMZ3=p=t2ADS76LxvK2Us>nSnfeh%eh;OXPS$U^?-(j zPSV`tH4o6yl*i_ryQZ96OgeuOWim;d>usRDTE#E|-2Fxp@ImUDe*$N@6%arCQ zoQnS8xCg2JPAQxZzf4;~{f!XS1ySETvWYUvO+KbHj?b14L`?S-ouh;osvNaKwufcj zf53J^2EB1^09s3$3-oV=-z3DPs@93QyPOfst!LCpD%oRX8KU1DKjLP2d8C+YzJm@k zt&!xnq#0dpa@?7mgrro}`lu8ACEV{XVKI|19^%u`X0x2JulrI|@f99vc&Fvv2jWV7 z&+_TREsc72k@PiO`|k`dSp?HI=B%~yXUX73$>M5ZmwN!#uZ-HZ;{@H5i5}i$`GmAz zVVRc(?X`$~T+g=$NO?P&w4^Y(mbDMWeM`86KO?CUW>;mu6mC8PyBEXR^u^$4V=lQ` zWH!~Tm7R1$n78pB^LNCCNxzGX7a=VN{kaeAQJF0Q6$4>CQ~F)#Tia&2_Mi6MJ^c~K zy4s)Z>CTwPI8!`N*Y=z}#FH!6_(5CXf`6@)3(p*g0u9mMP!W0WAOYgI8 zJ%1lI94xdV0}A?&SnC03Qy5J|F8mGjH^tk@4@J5a^Z=R>K7zaALDz*3=kA5jSHpd{ zt0DCL@DT3Z5c*AcB)2t$xUy&0kQJghWneq=Qs3HOn(TM9y`GBSlr2&S2lGq}zm z`g)|AyAVV_jvU4v4x%?AeYthP^kL*kEM}SaXddckusGQ%s`RQvb~5R>gd7`rvPeV7wd4os z$1vqZUZJwvQW8i5MvWZ96i9*s>R*^yS%%Zp%Vr4*WcQj!*lS@$!PcP1;t@!VqXIa0 zH@at3B6l!=-WuhfvLgU`p9(ekgktInFSxQ*WQ%(MHfUQAO9Qzq&c~mwjS6vMabv;B{a)f-qb4dQJ1naC$##)STks;vhP)eK4${>5(kQ z7CuXyzky0&pntrDK5YIo*&|iNptLVQ%>Q@0quumZIyy;E#L z91)Y`E%z)X&PWq+Yysn-rO9fljq#F=qy;f!xE0Ryr5L|}tHW5eE+-y`9A9!Rnzatd zd%j3)Hs)&?ckrABQ77V_VnxYpLO;ck~$yu!1&6`szLa|INDvWNWW z&9Q?Aoc9-{n_I=qeVF_@Yr%h9?BMY#oVmmV_SZJVkFFj!WYW)mND+qp*Ycv{jyJ0b zb9h+7nY4%h7cG6fOKxsFzDxdr)jGEE-htmP&Zun^KE;mVWZig`RmDyP35AgS5X)+ACyW z*;AfexiE2`K09%*;im@UjsZ+!dnajsOxk}X?Y=Tp-X)6oyFMfFMZ>2Jg0sltAZvG) zwY$mM2g=$9Gp^bSpG2X2N#&A6lOeZZtdq#a$=V%dm3fKg@@17P5}z{^G<+)&_KI5k zle8Zsl>v!c%EKz75}z>`$24qmWEC6!BX+H0RD)c4R*6MN7%-!x+sKAQiL_FB4(u4w za6q~Z>4<2!BoVu$Vu09c!xE{ek&3sZ;xnmugu;lHJrtq>XQZM_Dn^T)ZkQnz?@7f& zsYrAYD^yCwF{yA94cQPN6%oZ1VcJe5hjQ%!R z%^BONPjben`3+w(Zp$;n8UkdJJAFAo%P^~lo7>IZ+lM`?hqiwh` zKx^T@rQap*>wR2si#|8yWgOp(ocgp|z+G#l3(lmim5L8y>5-{hvqb^Rlr4_SlsNHj z)XSQVC_WE}z61T(VVpjEBRV;4D@@2xqR>SdyCNVm`?ZT-~aik#1Qc zhv90zx_2#oE``p9?32gW4B6bItiIhDDyWwzLu=JpO8&ZpF<&&@1~x}&x_t3R>0fAd z(qbhsOftE1q_#2glZ1=q1CZM{#8055sVe78rKyc?4Xw+fJ5$x35Rc_Q2~vfmN{Gg> z@5$6bjtiBc+d~)8w$uXSQ_5P$bxPB9)0sW_O8?LeN&(y-tQqpLr$^-ZL*)M3o0AIB zoNq%^!rnqZ#nMu$_6X3yg1YnJCqHAxvhH#-Y}U@ zec(YFWU~7Q7wQvCtqnsa)PDM5$B+!|{Mz&8o5#2r6KLbKVceVv^yV~`EVlmlX|p&5 zv-swuY9*aLJ%BwlhSqITQp5Cy;Y=>0Aa`xwNG9E~Ry}kWN)jA5DJyu!GkZqeKvo-T zdxB%DTjeBE+!Z(4Gb3hBtD7nAOSg{CVj5Ywx7DqqQ5-DOY!?AM6MipOB3C>mJhZ&` zSU83A)hOFowz^fZ$Of5uc}H!BLU3<&qw8kgoWyX)ti5dyA5upVcU4F&mR+*8gp`L8cNLR8Lo#yl1L#;5%mP zHN$8~IWe0CrmcL5It)Dzri)_;)xJcr{*w$7NZS-mwh zYhFA%o@_NS!D#8lc_X-`u?lq7t>K0n3dfkn#c)rEI$oS^ZvCKnO5F`NllLt*OAO~Q zA$s#AviF9YfM?-C^&Ml!WvOeZ=q%OeZ1XLqQSiRuw)YlJKr>BT`V9J3rjGURYK{97 zRJq_r@BM=XQ^Z#rb(u;B4-(vYST3Bp{39lnyXfZn0S&}s!iA~;rj^+-OBr)*){&W? z2h_Gk;vu|AXvHDBN98vit>G6$pF1o!d1umRvVzB=wKi$2w|41AiNqbVJxoiyCVZy% z5+6-In}6i0zw0sSh|74Hn7962b3&(Q)N9ywz4wf;e%E77T zqnhF7)@WzDQSRi_#cR~bgwcaU4ui=Uvw9+`hzh}t3qdzCNx(mOkT2k z6HZkv7JGv8A9lc_ckM?>mikyF{}Vn;!o%fpBIIv-_!1BL7bi4Vx=ILm`p+Fx+VhBA zpg-CgBhvn_wtSDp(wtnMSoqp~OV0PO0^AVFCZLrHXH%*Rn~PP0a_~Yxk}oNLzM~rR zkiMN8=*w!D)XP*R_dHcyzN!Tin)q9~_tQJMnPJ4^_;sbwv;7k`*cIN@lR1OK<|fCE z&WUNV@-E> zw{dHgCiPQFllwZQHLg-wSE#a#Cdb)e?47R?yfamGQ!yS%|qAiDhuhgr>FfTM+zAbBt zIeYOoDsOCp8C!*%Zngrl9vv>5C`+Vw%kCgcxcHZO1K@busp}9Q7;Fyr~jIw-~*vGmWBtFk5 zg}CiX*+Y|et#aT!@tx8}#~LMBvJr?-hmNl@m`A*9HD8N#T&(i*UZTPq==lt{4Y<9F zF`7$Mh;gFC%}GcXv4xV6rXvHSbdgpX4Pi{V>ZFBAzC616vDP4e*S*83`f*^n>fJ%8 zCoLy6+ssNjsCtwb_1Ric?tq0E{@G;mKBvS>P4yQ_*=3UxP#N>kzWJKS#E$d8;@->h zncxEydxvN`ZElNnT!Pp_YP~Ngn-We}42?XkW|7a_y70Hw1kkD!wHFc`FDUig@Fw@g z4G#>*>BrTFe8JIn@scwx7fCOWkTFc@H zj;!O(DP><&f02wy*~;ED#x!<(a@=a|_|+(pI{wW(!+fne=}Tm$@|Z>#U3;#>F*|EU z>a@9N1V;?gIGEdb$4sS#BTOfI+)wb%QI<~^E+3X7>%ZKAki=sR6PuQjeGlv-@EY_g zOL}BYby-StBg=yP8WEHY5+f2QEKM|Nb1>JwwmyIJ?>w?g0m(_twqRPg&EP$gE$xZ_i==?qhC;bIjvTrAbS;wRslyfwLg!z(|_Quo0&(uXS!>mAnPZhUkC zuCihH!VLKdK6oVlPwCn9w1HhC8IP9&;_IQZ zTKe(p^Au%npz|)V)OYvv417sLWOz{Mbh^To1-WHJUioL#{L;#Taw1>b4?jD%d__Tp zK4aBW1yje_=-07J73J3NUZL>xkmS<9x(SMETZ{F}>(28&TYBYWrA;C72ylwkX1wv7 z>@ID4W5}pveAfo02$?fSHz&6YX44Tq8Xvj!LoSrCaeg%5P1U$ceD!7{&emlV=nZ8H z#Y$oLUaSwl(xA^Tttyd7PtlS$ef-X;`!S>x737vrEh=5U2JMy8-ER(F{1m=$v$vXI zs}JI%e(1CUy;ffiWCXr~v-4`o3koFcbbJ?Q$3io$0hR;vM5_G9;IwFbDA!9YE!WQ} zCe;C zettn2S^?4n}RV9$~+@Fy7P*8rz<{k>&a%TJdDk4A9i_+$n7iZ|pSCy=&C|Fxu z41bZF10I`KP*_@CP=O8+`AC)I0YK*#>I=#x>}VS=eQm!Fw_ia!-}Rwi>~|cp+pb2+ z6y4mif|AsNJi`j8*NntuzmM@!Ke8sbe11W0K8V$Eww|IAu-WCS^vt}Y@#(8*G@u!$ zW>pbG*YrcrF6~8ojql~2ji&XhiZO-KOY;jVP)8#X>6W)VjJA7x#5qNmq0cRcOT$zb zdhOC{s_0&O6s{^+Rk3n;?(&rdd8KQKd`vGTzdX094?nIKZz#*p)feyVBBd5|Y11-O)fpHZ7ByKUku=e1w9|Cu`VzuNCD7V`Mygm;m8w(} z=N1*|mSZF!DLR2(_-9n!#9njg5br99JgE<1!%XeNfMq$6r}iNj3ozf=;vx&Nxh16~ zu*P{KM;x*SgOWp98*uUSmbD_B9~SNdV+z*DA!V2j+XHWK~fop`U) zlWh`LmFUOEt%Wt7NT#X-LEP44nsmT7XKS*(MR9O-U>h^mK0?pfiMA1|w?Eq$9Q5KI zrqHy5pD z1#7XIoAHS6FYuFdt4i}mGw11VuhKjsp9yb*5H`08i{Y(AKE0pEv0#R12`wwgc=_yp zloZyld^=5U`IA$|#Spop-6;ni4)95bvf|8PQ9xH_(8II%!WneN;Xu!*nZ35r&X_{@ zu$grI;o+W|KJ<)nsf2%aCOvRCfb*I~FM>K9U*X#fI%C`%!cU(?xpzZHE$c-yPhC-7 zitpX|KBSnF*s!^?=z@16xUXi>jqip|AA&FXMFmSsik{S!mK5mn#2^s`yx7i4+kD_# zdofacBK4?gv$Je9{pDSM&s%nus$5Zs`y3ijA2{k?b8ND(=CQSnM!Tg#`>TLPHR*BseUJcQ<1=V1is%fw^hj_>YKE<{PG_G1p$ly7*e1Y|1@z4$!JM#woI;;`Pq2lU33YL0= z!-D?Ql0K?55m`+(D9B>_NVCgQit}}|SCs($RDZN~MR9s=F|Z5!u%%cCRwL@l7ySXZ zs)XV20>rK-_{7=wgbhWXdf$J@9s5A&N+eg4YwdC2$orAp^(^}B`zr2c7VUmNp8GwE z#vTphhGbLS(ZP$xWZQ;yIouXLSeVQ5t_8r_CXHrB$twMPeMtr37xiKLkVpEE8V%yR z#M+QeKR+6-*kISP=cqq7bRqR`h)iXB3HyYEXx$VnacJ_%UNnY+EqlN%S!DOQj4~+4 zax#{$lrN^wHVjtGM;}=jqyK6M;$B!xF9L@*C8DM1&kYd@oT*9={vU*JZ!D&1ABRQAa~Rgbms?NLo=V~Wtoz{+EAgNQe0{%VTr(-PtcPejO6N< z&|e_&%o6H-ES&p(37vAxN3q4;*s^26x?k}}G`2ogz_F0#mXxACzw{62X{mGP06XYU z*!fe^)20C*^e6m`^sFhffsb2CZy$@|l9y7i?J5AzPepY+%?W3E!j`n_96uN;ryZt5uaVWjWlWqlk)h6)zWz>}3r zr+qkrdm@*XpfKdpT_1*V1M=ue6ybTaVgzT&r{O0eM;&EnpJBH^0lSNICPrQ^5R_P zL}!a6ewzKU`|yXh2O`DZs#VAXAsO2aa26KREgz3G{->hXcB}G=vD_e3Gb8F(EnmY_ zc4ixL$))XRU{?SungkI_+*peHc8N_wVX{IW`C{8NQXr)QqIebJKt;jw(vtiNBL7)Q z9GLJ}I<7I0GwbQX#$fIZJ>Ae4swi?5TfqEl3|0i&A6grOjsLZ`%?7$0)0r8CGuXQ! zA)}e98*o9TU(Ti7PsM1TwdwZC*4%Vef84{^fTtp zky7mE4Ycm$(6M`Lvy~;s=^D1268XMBD z(ry`@m~yNtWicK$z+uYnCKb263OWx8#2VQY12wzD(O&; z<>z({#+@GFx2$){!2&DQ32YW7GXOnG^vYy6uG^aV3ySAl`2R=296I4=)pHDXc? ztZmX2=gq*xnTrJ2zFl73&$x4@rew^h$jn7WB7cNd#M!j7CBQ4%E*N`NN#nsAXmd*l zSGj@y)Dq^iZG*jGL~4XIw#nkRZJ;AR2_HJgXs78?R<6m+T-58}f|35^lW^a^^)j&O zBxNat-(#fjeiF$YGSZu$_>MmZ9~X0yReB4`E&&L>!$jYPtV9XKRH!j9!Yn<;Xo74tJ5Y2@ci&xK2dR-cMggUWs0w4ouqdl0XW9lw;(bTFbB^aT_(4(h!ufgJd#*I-!Z>3h@8IXTYN=xOc-|o+ zvn;W?`UPIG#@9b{NmwS4$q?GKK7^OUmj80#t`3r=@=lX|eb+C@^iPe(t=4xZ?_&yn za^rMuEU!oj+0E}X2Jy`#C^I!y8=PA3VrpWlFCU%}!Vie#*ZM?{Pv!ZPb$x!>v&fqU3}3lzHl$^Qpy)?V|FM#jUtN7C*~i@Dvgbm8TER-CxJgu6AH z4*jx#6`Q}DIv`%L56;bguJpo};R9Tq9oao#43&Rne`d=?93B5v_~3X2UR#LABd*RP zfyJpWD3xD@%UtR1uL6c?abTMR_IO2>Ga<>Kx;p#gIs{K~^u||yLF{l3e?$(RBLf&; zAfA>1T%9p8#9!nadc}{OV%6R8Rn#Jfk+ZX`MOV}uPOhH35@uv)RfH5l1pCD*{Kb+9 zv!RIeKNZ-}D53!z@j}1koG0$bh}~rLSn)1`HS5f}-S@-UH0taU>xjquVz+^0;eh=l zhI1kVI~~G*Utn*aJ=o~3I3keabckW_=SKa0QvLBFeGv|d2-($-YOh}?(mO>uFVd6k zT%ow($O|F^J82^1A|M|i4I{%yKdC8S{MCew{ybV+obx1cgz40;TUKDN`oW+0hFAy8}Q8z?C+( z4j=C7yc+zzc$SRM{7f?bcu{%}+Q%0`epl5T4lEK-XlBwUP~d>#X%sk+cp1gAS@bvx zoHAUys!kA38AvlkU59YVh45heNh-MxVk)yE1bn840lFn|(z2UgP9mvbE}h$^<~S`a zMS<=7vna5gKZqhVgPuo$z4|XGuvb@J3ygGij<7c&mQp(hy;(bKkBR@&0FZ1qn&Lkq z1>4Ifuc_I-Que*CqSS|RV|V$%wLr`r*j6zP#*wq_-|yGd6U0|Zqzd{@6@8OUj=rDN z;%%|Q3v8=K1_C_5%|s1{z_ROpY%ljqo3COkmRUKse=&XMx|(guK1YE~*-zKi%I}x3 zy3FsrY;_0IsBav(UzgDMZ`5q>l#K#=rz#ZK8vXK}FFgo)h>jiw23w)8Q9NEoe?x&y zkIxM?+w{bvz@{e~1vWiZD6r|-g#w$NqbRWH`TB->q$hJ#0;eRJ|D%tR&kj;E<^A(% zz)iJ>_-2iqM};e5?4WhGyc8=%j-v&1%}q6zP)JQT)j@18fd7pI;LZBwtiT=EY_2y` z9GP=B{aB{nj#|jnmDhY-kNUH=m^B_N=%`ym9OSr-`f2}8^jopBk%lHox+l1Lb8}|qm(9Ax@c9_O5aaXH5ARtIhF!T8ssy5 zm=i{ph!m|@)3L7_?j)@ShOn9}xW|c3J6n8qT}$VFr{=b-rKKp4eLjl<+2=tN$Ue`b zK=%0yiskF5^0t~~n^CvbD)Hs1=(`cj)Z$`LDC$ypdw6V|^B;AWqWE0A$CGm`-ISIe zHWwueE*7;qcH57OUQfS9E65PBhEU}lM-B<0&mA>4$4KK*{LM(S@2HiB#88fx%w)CQ o0E$)NOgxgbI`Fks(~~HWaD9sc37719H4-iw@O_T_x`vSd0rg#UqW}N^ diff --git a/fmemtest.exe b/fmemtest.exe index 624bc60e3c0778ebfc955ae0e52d32f11e85b1b7..d9ccddbf8de1c675d8b4cb07df4d8d8d3c231f8d 100644 GIT binary patch delta 37 tcmcb%i1FGYMj_uQ9!5!qA_jSeGu;3GvobgA-YC@I!PKyO^AwLm902or4V(Y~ delta 37 tcmcb%i1FGYMj_uQ9!5!qA_jSeDGdMrvobSqY!qtnU}E6dJjLS>2LRT93iAK} diff --git a/fontgfx.exe b/fontgfx.exe index d182022a808c6bbbc061602b8a3ca1a7b2098238..3dd39f3824ed7a76b1aee3b4bbf63518bf8ec76a 100644 GIT binary patch delta 37 tcmeyfnd#4FCL!ObNespe2N;YPVtM}m-^13hd!vw6FH^(r&33)}cmN)j4>kY* delta 37 tcmeyfnd#4FCL!ObNespe2N;YPR2l#O-^0ehu~A5?mx+O6vt92#9smKH42=K) diff --git a/fonttes0.exe b/fonttes0.exe index 14e72e35180f48ed6e82d6b5bd5b03f93c2c0187..ae601be34a382d386347788c3101c9e0fe9f1ce1 100644 GIT binary patch delta 37 vcmV+=0NVfRt^(?=0uoJH0st}q#{e_{T@3&Kkp_Ufu@bC`0)V@-z>2C24OtIA delta 37 tcmaF0j_K7pCL!M_CI%yh;|wMYs*L~tPh?}@*eJB7i;00_^MS5aJOJ=e43+=@ diff --git a/fonttest.exe b/fonttest.exe index be48aee686d85a3d55fe4b4d8a7b972b5cbe9098..1e5af570c040803f45ff9a0149b14ccf76e9ee24 100644 GIT binary patch delta 37 tcmeyhf$`S{Mj_uQ9Y$$}Dh5S{v)upxyD>NH-YCT4&(yGcvxI*VCjbK64J7~o delta 37 tcmeyhf$`S{Mj_uQ9Y$$}Dh5S{sSN-ByD>9xY!qVgXJX*kEa9KT2>|8O3VZ+n diff --git a/inputest.exe b/inputest.exe index d13563f3e3bf9aa2df5bc2f94c5dacf5d917d014..5824e8ee5aa20a6030d5f53684f9db2cec5fca90 100644 GIT binary patch delta 37 tcmdluooVBACL!Ob1q`|j1&nbFH@W}+_hoI^y-~=to~dE?X3zQz9smJs4g3HA delta 37 tcmdluooVBACL!Ob1q`|j1&nbF3mN|Z_hn_^*eGOL&&0s7*|R=_2LR+_3sV39 diff --git a/makefile b/makefile index d0770dba..1c56ca55 100644 --- a/makefile +++ b/makefile @@ -13,7 +13,7 @@ TARGET_OS = dos #-zkl = current codepage DFLAGS=-DTARGET_MSDOS=16 -DMSDOS=1# -zm -CFLAGS=-zk0 -wo -x -mc -zu# -zdp# -zp16 -zq +CFLAGS=-zk0 -wo -x -mc -zu -k48000# -zdp# -zp16 -zq OFLAGS=-ot -ox -ob -oh -or# -om -ol -ol+ FLAGS=-0 -d1 -lr $(OFLAGS) $(CFLAGS) $(DFLAGS) #-d2 SRC=src$(DIRSEP) diff --git a/maptest.exe b/maptest.exe index 356698ef42edaa10334e8def4d80b8fea1190076..80f3a40b3100c61f6c65215a8721bc5049522e58 100644 GIT binary patch delta 37 vcmV+=0NVer;{vba0uoJHya77^?f^ajXAJ-U%m;wGu@b+d0)V@-)1%xCEJzUf delta 37 vcmV+=0NVer;{vba0uoJHya77^?f^ajF9HAm%m)Anu@b+d0ssiJ)1%xC4^9qH diff --git a/miditest.exe b/miditest.exe index 06dc46fb27b2433e8d2ee6fc7afa4d21c1aea1dc..55eb2bf23e330b1222c3b52c821fc45daddda99b 100644 GIT binary patch delta 37 tcmezJn)%CXW+C6G2F7p(UPd>Da-RSH1GyV^ZxlN4jHzMw<}1$>_yHwV5Ci}K delta 37 tcmezJn)%CXW+C6G2F7p(UPdBv}`N}f|egFtt4O;*J diff --git a/palettec.exe b/palettec.exe index 393babfde024678779544ec09f7f5dd1b204d858..376d8f4668f9a193df7d479a896b745514a025a7 100644 GIT binary patch delta 37 tcmaDbhv~r_CL!ObZ;W~j8yNH$VtD@lH)U(sy;0~}BU8if&0I}kJOCD#4y^zH delta 37 tcmaDbhv~r_CL!ObZ;W~j8yNH$R2cvNH)Uhs*eLX^k%@t0Ggng>4*>a&3H%2*=>Ru@VC50)V@-7U`r9G#n69 delta 37 tcmdn>k$KlgW+C6GSB#MiFBxnZd>Q}$U&qbBu~CTWB@+Y3X0ew`_yHFp4XOYD diff --git a/sountest.exe b/sountest.exe index 10eefab6aa47af06c9b09462ad163a2dddbb5110..a41715799dddfaee53285d13c22df49037491a77 100644 GIT binary patch delta 37 vcmV+=0NVfT!vpNY0}@SIfB{YbpaE(C3k?7Np$UMyu@WxR0)V@-Ler`a9Pkfw delta 37 tcmaEJnEB0NW+C6G21Y-I1&mn?ml^*5U&zV8u~A6xG7|&GW~a-m_y7~*4aooi diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 13cafcb9..b88d3a3a 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -137,7 +137,7 @@ boolean MML_CheckForEMS(void) byte MML_SetupEMS(mminfo_t *mm) { - char str[80];//,str2[10]; + byte str[160]; byte err; boolean errorflag=false; @@ -207,9 +207,9 @@ End: if(errorflag==true) { //err = CPURegs.h.ah; - strcpy(str,"MM_SetupEMS: EMS error"); + strcpy(str,"MM_SetupEMS: EMS error "); //itoa(err,str2,16); - strcat(str,MM_EMSerr(err)); + MM_EMSerr(&str, err); printf("%s\n",str); return err; } @@ -265,7 +265,7 @@ void MML_ShutdownEMS(mminfo_t *mm) byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) { - char str[80]; + byte str[160]; unsigned EMShandle; byte err; boolean errorflag=false; @@ -292,9 +292,9 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) if(errorflag==true) { //err = CPURegs.h.ah; - strcpy(str,"MM_MapEMS: EMS error"); + strcpy(str,"MM_MapEMS: EMS error "); //itoa(err,str2,16); - strcat(str,MM_EMSerr(err)); + MM_EMSerr(str, err); printf("%s\n",str); //printf("FACK! %x\n", err); return err; @@ -329,7 +329,7 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi) // EMS.Error = (Regs.ax AND 0xFF00&) \ 0x100 //Store the status code //END SUB - char str[80]; + byte str[160]; byte err; word EMShandle; boolean errorflag=false; @@ -360,9 +360,9 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi) { //err = CPURegs.h.ah; //strcpy(str,"MM_MapXEMS: EMS error 0x"); - strcpy(str,"MM_MapXEMS: EMS error"); + strcpy(str,"MM_MapXEMS: EMS error "); //itoa(err,str2,16); - strcat(str,MM_EMSerr(err)); + MM_EMSerr(&str, err); printf("%s\n",str); //printf("%s%x\n",str, err); //printf("FACK! %x\n", err); @@ -642,6 +642,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // set up the linked list (everything in the free list; // + printf(" linked list making!\n"); mm->mmhead = NULL; mm->mmfree = &(mm->mmblocks[0]); for(i=0;immhead = mm->mmnew; // this will allways be the first node mm->mmnew->start = 0; @@ -666,6 +668,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // get all available near conventional memory segments // + printf(" nearheap making!\n"); //---- length=coreleft(); _nheapgrow(); length=_memavl(); @@ -676,12 +679,13 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->nearheap = length; - //printf("near heap ok!\n"); + printf(" near heap ok!\n"); // // get all available far conventional memory segments // //---- length=farcoreleft(); + printf(" farheap making!\n"); _fheapgrow(); length=_memavl(); start = mm->farheap = halloc(length, sizeof(byte)); @@ -693,13 +697,13 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; mmi->mainmem = mmi->nearheap + mmi->farheap; - //printf("far heap ok!\n"); + printf(" far heap ok!\n"); // // detect EMS and allocate up to 64K at page frame // - printf("EMS1\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! + printf(" EMS1\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! mmi->EMSmem = 0; for(i = 1;i < __argc;i++) { @@ -709,13 +713,13 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! if(MML_CheckForEMS()) { -printf("EMS2\n"); +printf(" EMS2\n"); MML_SetupEMS(mm); // allocate space -printf("EMS3\n"); +printf(" EMS3\n"); printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! //TODO: EMS4! AND EMS 3.2 MASSIVE DATA HANDLMENT! MML_UseSpace(mm->EMSpageframe,(MAPPAGES)*0x4000lu, mm); -printf("EMS4\n"); +printf(" EMS4\n"); if(mm->EMSVer<0x40) MM_MapEMS(mm, mmi); // map in used pages else @@ -735,7 +739,7 @@ emsskip: printf("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); //bug! if(MML_CheckForXMS(mm)) { - printf("XMS!\n"); + printf(" XMS!\n"); //MML_SetupXMS(mm, mmi); // allocate as many UMBs as possible } @@ -1386,90 +1390,91 @@ void MM_Report(page_t *page, mminfo_t *mm, mminfotype *mmi) ===================== */ -byte *MM_EMSerr(byte err) +static void MM_EMSerr(byte *stri, byte err) { //Returns a text string describing the error code in EMS.Error. switch(err) { case 0x0: - return "successful"; + strcat(stri, "successful"); case 0x80: - return "internal error"; + strcat(stri, "internal error"); case 0x81: - return "hardware malfunction"; + strcat(stri, "hardware malfunction"); case 0x82: - return "busy .. retry later"; + strcat(stri, "busy .. retry later"); case 0x83: - return "invalid handle"; + strcat(stri, "invalid handle"); case 0x84: - return "undefined function requested by application"; + strcat(stri, "undefined function requested by application"); case 0x85: - return "no more handles available"; + strcat(stri, "no more handles available"); case 0x86: - return "error in save or restore of mapping context"; + strcat(stri, "error in save or restore of mapping context"); case 0x87: - return "insufficient memory pages in system"; + strcat(stri, "insufficient memory pages in system"); case 0x88: - return "insufficient memory pages available"; + strcat(stri, "insufficient memory pages available"); case 0x89: - return "zero pages requested"; + strcat(stri, "zero pages requested"); case 0x8A: - return "invalid logical page number encountered"; + strcat(stri, "invalid logical page number encountered"); case 0x8B: - return "invalid physical page number encountered"; + strcat(stri, "invalid physical page number encountered"); case 0x8C: - return "page-mapping hardware state save area is full"; + strcat(stri, "page-mapping hardware state save area is full"); case 0x8D: - return "save of mapping context failed"; + strcat(stri, "save of mapping context failed"); case 0x8E: - return "restore of mapping context failed"; + strcat(stri, "restore of mapping context failed"); case 0x8F: - return "undefined subfunction"; + strcat(stri, "undefined subfunction"); case 0x90: - return "undefined attribute type"; + strcat(stri, "undefined attribute type"); case 0x91: - return "feature not supported"; + strcat(stri, "feature not supported"); case 0x92: - return "successful, but a portion of the source region has been overwritten"; + strcat(stri, "successful, but a portion of the source region has been overwritten"); case 0x93: - return "length of source or destination region exceeds length of region allocated to either source or destination handle"; + strcat(stri, "length of source or destination region exceeds length of region allocated to either source or destination handle"); case 0x94: - return "conventional and expanded memory regions overlap"; + strcat(stri, "conventional and expanded memory regions overlap"); case 0x95: - return "offset within logical page exceeds size of logical page"; + strcat(stri, "offset within logical page exceeds size of logical page"); case 0x96: - return "region length exceeds 1 MB"; + strcat(stri, "region length exceeds 1 MB"); case 0x97: - return "source and destination EMS regions have same handle and overlap"; + strcat(stri, "source and destination EMS regions have same handle and overlap"); case 0x98: - return "memory source or destination type undefined"; + strcat(stri, "memory source or destination type undefined"); case 0x9A: - return "specified alternate map register or DMA register set not supported"; + strcat(stri, "specified alternate map register or DMA register set not supported"); case 0x9B: - return "all alternate map register or DMA register sets currently allocated"; + strcat(stri, "all alternate map register or DMA register sets currently allocated"); case 0x9C: - return "alternate map register or DMA register sets not supported"; + strcat(stri, "alternate map register or DMA register sets not supported"); case 0x9D: - return "undefined or unallocated alternate map register or DMA register set"; + strcat(stri, "undefined or unallocated alternate map register or DMA register set"); case 0x9E: - return "dedicated DMA channels not supported"; + strcat(stri, "dedicated DMA channels not supported"); case 0x9F: - return "specified dedicated DMA channel not supported"; + strcat(stri, "specified dedicated DMA channel not supported"); case 0xA0: - return "no such handle name"; + strcat(stri, "no such handle name"); case 0xA1: - return "a handle found had no name, or duplicate handle name"; + strcat(stri, "a handle found had no name, or duplicate handle name"); case 0xA2: - return "attempted to wrap around 1M conventional address space"; + strcat(stri, "attempted to wrap around 1M conventional address space"); case 0xA3: - return "source array corrupted"; + strcat(stri, "source array corrupted"); case 0xA4: - return "operating system denied access"; + strcat(stri, "operating system denied access"); default: - return "undefined error"; + strcat(stri, "undefined error"); } } + //========================================================================== /* diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index 27a397c9..0ee0c8e3 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -187,7 +187,7 @@ void MM_DumpData(mminfo_t *mm); dword MM_UnusedMemory(mminfo_t *mm); dword MM_TotalFree(mminfo_t *mm); void MM_Report(page_t *page, mminfo_t *mm, mminfotype *mmi); -byte *MM_EMSerr(byte err); +static void MM_EMSerr(byte *stri, byte err); void MM_BombOnError(boolean bomb, mminfo_t *mm); void MM_GetNewBlock(mminfo_t *mm); void MM_FreeBlock(mmblocktype *x, mminfo_t *mm); diff --git a/test.exe b/test.exe index 6fb52b99b442a8229daea97a7478a3f74d35a348..9ab02f96776a6d21dc91df82eef7923b48bdba31 100644 GIT binary patch delta 37 tcmdlxpK0%WCL!M_F-Coc4Gek=F+BhOyR$Xy-Y68@%+#=Zb9!?a4*>Cp4P5{L delta 37 tcmdlxpK0%WCL!M_F-Coc4Gek=DvbaCyR$KHY!nJ^W@6yjoZcM90|3;G3bX(K diff --git a/test2.exe b/test2.exe index 4433bb27e60fb2c98134619d3c7ecf163440fa19..65ee9440e3b0279a48a33e08e6d64d57ca15fa3a 100644 GIT binary patch delta 37 vcmV+=0NVfkv;zIK0uoJHLI5)Wy#O)*WDNiRz6OB1u@a$;0)V@-wT;LO9b6CS delta 37 tcmeynh3W4WCL!M_CkA7Ny$nVSI*kAS?_*=&*eJBHmx+O6^VZ%IJOBV<4L<+? diff --git a/tsthimem.exe b/tsthimem.exe index 72f3e0bfa28f591434960813991e3877ce71d297..bb81bf53a82a9a165ebeec030ac8ba3b77753711 100644 GIT binary patch delta 37 tcmbRHfpP8!Mj_uQ1_m{ThYZ#Xr?~(BpU%>-d!rD09#g~a&C+>HTmT3v4SoOs delta 37 tcmbRHfpP8!Mj_uQ1_m{ThYZ#XlNkR0pU%R-u~CRUkBNa}vveL47Xa%a3e^Ar -- 2.39.2