From 221553c7aa69dddd3f2ed960062080c60fcacf58 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 11 Aug 2015 09:04:49 -0500 Subject: [PATCH] dang!! something is pee of baka! modified: 16_CA.BCO modified: 16_MM.BCO modified: DEBUG.16 modified: EXMMBC.BCO modified: HEAP.16 modified: MMDUMP.16 modified: bcEXMM.MAP modified: bcexmm.exe modified: bcexmm.prj modified: exmmtest.exe modified: makefile modified: src/exmmtest.c modified: src/lib/16_ca.c modified: src/lib/16_mm.c modified: src/lib/16_mm.h --- 16_CA.BCO | Bin 5406 -> 5607 bytes 16_MM.BCO | Bin 22667 -> 22543 bytes DEBUG.16 | 16 +- EXMMBC.BCO | Bin 3690 -> 4100 bytes HEAP.16 | 10 +- MMDUMP.16 | Bin 66 -> 66 bytes bcEXMM.MAP | 1352 +++++++++++++++++++++++------------------------ bcexmm.exe | Bin 49259 -> 49598 bytes bcexmm.prj | Bin 7047 -> 7047 bytes exmmtest.exe | Bin 43666 -> 43634 bytes makefile | 2 +- src/exmmtest.c | 13 +- src/lib/16_ca.c | 34 +- src/lib/16_mm.c | 97 +++- src/lib/16_mm.h | 2 +- 15 files changed, 790 insertions(+), 736 deletions(-) diff --git a/16_CA.BCO b/16_CA.BCO index 49d47da26e2b021c13f0ea9af5646fc891eb198e..45dacb92502119dfd6ce5e0aadc625494771b5fb 100644 GIT binary patch delta 1821 zcmZ{kYfMyE6ouD5TxMh#=qQhl#v&E97O8+#MC2h16b=`c9)1*U?I zLJ&PxrHa*G_GME`G}xGGEod}0{-~M|)5Zr1H5F~0)@n@XzIUdi&mVX8Irn^P&A#WJ zyADPVOlwaGn~@!u{oKMr%i`SEGZ)7vF12J#w^SZ`^98@KxGe8VEU(1!N?zXd`Jc-L zG*J$VQC&y<4u~9yCvJaWK&`I=LzILxWMLk1u>{4ip%g2z3YDlv4OYX6wOEe^Y(g`( zq7^%^+N}fb5bI^DF3Gblt(v<;2R^`I96>iu;uKEfEP8Ps z7jO}ma2Z!{4Sl$d8@Po5+{2Gvch<`seNwOo``k&uU8Sykon0q)>SJRS?GH-m<&io@ zeT*S^V4`rcP$3nQ%WK1we4x(@E~6-S#@}p`{Hm(TqYWnT^Qhb5p}iwj^DCh;YNG9Q zmHO!+J@EQ5C6A4Y^Lt7=W&fy`66|8KrcwF?hDr9crXB1D`>75QSJC=!c=O$2)N z%*nKX@Y!WzqB}_KXXP53!)#E1Pc)wvF+5TYs-InyiESdvtL9Zz9oHtF{inK9+}G4< z)zmGbP3#xF^1Fa+Q>PGqw0oZ(^A|z!r{gl(@L@)+qrBR=g0~WG9 ztffq@@GWpODqj(4|nHOko3<1c<$8qVxvU+D}jjOsvV6rBh zsR{{*SD)nOOf$0Dd6y|rgPk^qv%c0Ya6)4feQcb@CYoVsA2H6Yv6ap%ue6sC@0i;3 zEESFfObpBZK$Ef1?j?qRNxO{Zuo3Azo1@54?zBswNX8h=jUx^4imKvsX3;#8eV##D z1IcEjw})}F!D_RX%9=WRmc68YdNYB2pUf`+_gX0 zBR7b_b3TxTJ9|QMh=-${>8lV4<>r_yYx(^ zkBO0eqwTbcN1djuKbdZkQ4rCcFMk>n)%f;-Ds0(fRkm!jigRm2No=XM>dvj=LGz$h zY3}3eGb=T>S^b(_R?%$bc{X3;cQ0tzUipdzvm-X^f=U6A!?}5 zg6Z*z_{;EwJRA}ptVVW)o4p6AWp{<_4T);J$+>%*Q+E(W7~<@G!0G#t^Y>>?;9od{ zA8`tMIER1bB>s)F_%WyP@0`a^IFX6gLr?=0+5~@UMi6a97`5Vg+JQ+N&C%3>7&?M@ z`U1148%cB$v*{F)=``lhS)@>JBU0%+(&z%x=_2ORC1lWLWYQJ9LD!H&eaNHhSU@*m zrCTVb0W70?sN$ThBM+QpqBWehE}BehIdj)hE^XlC-AM0H1LtommC!CuP{|qk9;fIY z>Y%;U#lKhSefoh8P(eR+(tSF};d-27^GgoSQ=}7LQK&dg5#kKRiLWVDoTYrxLpG7D h*hQ*RCeoBTQK4)T>y#F;QE3xR%6{?jc7AcrKL9z#@bmxx delta 1646 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 diff --git a/DEBUG.16 b/DEBUG.16 index aba24389..1b98e500 100644 --- a/DEBUG.16 +++ b/DEBUG.16 @@ -1,17 +1,17 @@ -Seg:0 Size:5522 Owner:0x2a1f -++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ +Seg:0 Size:5519 Owner:0xc0d ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ 0 -Seg:1592 Size:256 Owner:0x351c -++++_ +Seg:158f Size:256 Owner:0x351c ++++++_  -Seg:1692 Size:273 Owner:0x858c +Seg:168f Size:273 Owner:0x858c ++++_  -Seg:1ce1 Size:40 Owner:0x0 +Seg:1cde Size:40 Owner:0x0 +_ 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -Seg:ad09 Size:13047 Owner:0x0 +Seg:ad06 Size:13050 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_  Seg:e000 Size:8191 Owner:0x0 -_ +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++_ diff --git a/EXMMBC.BCO b/EXMMBC.BCO index 67ca904c1363893dae3b7eb2b1721e68c318d427..d2aeafe9eccd49b6bb86dcfeac97b3ff4a7e27ae 100644 GIT binary patch delta 666 zcmaDQ)1olJTExhW+np~s$T`L}!q+#%H8@1ixpbqyC9|l33%5HzP(t6w(@EdZEZ)~w z&tt>ngG^eJk25dFF1xvzrGb%mC*!3KRtARWAX;X!0Gk-QG@}~hRz{Y|+HCFuI~kdn z87pV7GkDx(U}0r6+T6re&&s%WGZT*>V?D3j4oilB7Yq!|M_68S%k6N0apZQm!_Gz1)tKDAK!7q~&&;hRJq6jXlgeXEj6XhA_UPYeX2CS{DErb3lwqKt>;k(FA1F zffyw~MgfSC3}nQE7(qaWABbTOWLSe3IzWa7Cy1p8WXVpp;SFZySnzQ2Bwp`&TOt7$ zLtbiPk*%s*0VhKml!09=DKkB(G%YQ)$d(hRnu|dVT>zPHZD3M?rUWcf)FIBm@PZL7 z@qp4(Ne2r^rh7{JWJbPN18K&|3~G#17z`PwGPp2KV+d!Q&XB=4gQ1dfCPO>pEQaZf Tvl*5$u4LHCIH!w=fuRHdBO}rv delta 253 zcmZoscqKEzTI5$Vr#oM8kaLV{gs*RiYjB93bJ0eBOJ-4C7cO^xpoG4Ur<1;+S-h{W zp2wBR2br`cA7@^UU3PObO9LaX4r6==D+9xG5G^%XfK7~5mQjOo$7EeLcL5znCT2#q z8SD%m?hGufj3+j?u+_6N8f<3a5oFZlm)l{<5b%P5q4@|)_tV(JayuN5xl`vvF|;a& z@g0?)EW;Pf%(uXMauJ`m%99Rp28I`mXnp{BtFVIwB-1@5d2%^_ERQVX5(W)MyDlaM Gh7thM#Yn{f diff --git a/HEAP.16 b/HEAP.16 index 2d7094f7..933dcaf0 100644 --- a/HEAP.16 +++ b/HEAP.16 @@ -1,11 +1,11 @@ == default == - USED block at 1d030016 of size 66 - FREE block at 1d030058 of size 18 - USED block at 1d03006a of size 136 - USED block at 1d0300f2 of size 20 - FREE block at 1d030106 of size 7926 + USED block at 1d000016 of size 66 + FREE block at 1d000058 of size 18 + USED block at 1d00006a of size 136 + USED block at 1d0000f2 of size 20 + FREE block at 1d000106 of size 7926 OK - end of heap == near == diff --git a/MMDUMP.16 b/MMDUMP.16 index 01f814d4decfb3774db3698d9e59c2fb85798f1b..e19325c0f282f91113ae1371cd1e49f7cad85c4a 100644 GIT binary patch delta 21 ccmZ>A;y0);Ffd8BGDtQ^QP9xspU7_v068)RYXATM delta 21 ccmZ>A;y0);Ffd8BGDzYl--%xvw99) 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 vuR)Wr0VBRNU0+)!`l7w1ZcNd|U$h3OuxfSJ?+k z?$Wk!g^VnU_fadw2dIbQLo`gW8ck8Gffw*vv`VoKZBcxLN);cY*Zp$;cJOuT)-#eg?uYq$fw{UJ{7;mx5mr(G`xaugJr%gUc-0B>-a8s z1K$mA;=AK*dVI-{YraH{}d0C}(0xISU6V zXX6m%QXH;ag=3U5?x_3#cUOLhvy`jxROMQ{R=EyuQLe{3l^gIrh4$9BeKOGqm;x_c2xE(DQOVCPjCz8co=mT*#S}lHp){38^kHkG_gSZzJi|{Ez{0waq%TS3} zj&_Rs(Jt`-`b4y&z2YIXPdtpu#3N|GcoZEJKSzhf3iP>n3>_1{KwpR_&}s1`suWM5 zv*Ky=jrb+HAf87TMcW1Ro%k*KLA-*lidWGM@fx}%UPnKPH_&bICi+#ph3<;Kp?l(8 zbYFC!Kg2)K6Y&XpDLzGRsy~sh>KTeuy+9V#OO&j7h1#nALY-7KC|&h8>ZhtjgH=v6 zRON|Bsl4$xl>+Cel=xkh51y+Mae+#O7ur;6yjUgSB`ROMR276*s`Pk^%7jZ)@p!MQ zIWAWv;0jesd{UK+PpewtGpZDPR+Wm+saoR;sx*92)dpWyb;94PI^!#LEByJp*@A&&1u;vvH={hHXRCbMa{Pd^}FQ08daa z#5w9kc#3*4&Q}-WY3e0-hPnvPRLgj_`h7fCy&f-AZ^BE}oAF2LEqJ$jJ3gx3iO;J) z#<$hG@ULn+u2LVykJLx-pXv%+t3HOYbR5&t7nqe!U^nS3_LjcJe$qEMK)Q;9r2p7( znDi5llzzrW={7b=zu~6RUEEB%hZCeKoGex26zKtOEj`3-rAN5E^ar*|k8x+|3GOQW zg}X~NxTnNYeI$+=Be_vCC3k9>ni7J)?s1o>b*a0bsIw9$)Q&KQhDH*6+ z(hTahWTPCCZ7v+0gI<}lStbA;-qIZ6$*X^v6Znsd}h%|&Xg=6k9@^CR`4<_fh- zbB)@gxlA3?+@vZsx2Q{+htv<6m(&f-E9#EMNmXkQ{ZfNzZ-1Kh^=Ii;{+@JSe=mBI zzc*dxub@Bo=jpHfmGlMpba>rAfPU;BNdM)pqs4$AIwU|(M+XGctpY-5TlauaIy=Bb z=LDGPxd9eh4roem2xvyz1Dey70WIhY0SWX^0g3eEfFzm?Y(-0fZRps*c63r;SGsFp zZ?Mkvn7|BrdSE6!CvX70G;k1I5;&5!2acjE11Hg61x^KrpvgMJn`ljgJqw4ZhX zZPqTNJ8R#!(cQHl(ml0n>4Dmf^f+xXJxjZpUZLGWf1)j=_h=8&`?ZJYue670QFnw6 z(;cPbb;sx=-Dx^i_a!|_cZMFL`mSoW`WLi8{}SvkIzeAUx6>mgQ-6ydqi2}qdJkr;-jg|?_hP=#do$lDVN5m^*qMQ>71K9_d3FIyj6`1&1@HU?bBZIGX7l9LbEZ1)G?;!EsDsu!VU) zxEZr1xCOH(IDxqn+@84?+>!Y`xGO`2^k4!*dNN5Ny_mN`dNTt<`ZD<;8O+>}fy{!C zLCmUo*n2gZ9j4dm)lo=8F8S{2%IrDC)omm|EIU|QwFk3>uV77;T$&`jxG8Lg;F^@yf zGPL1q#=~%l@iu(N_#3`wf(<_~5r(Ub*>H_%XSmLEG~8gi8GdAX8E!HC4L>nChM$=k zhF_SuhP#Yxa4?$;2bfYrHFL!9fVpIN$Xqo%wJ|phh`nu4vegEGtu^?t?qMRU3X@ph zFkd!2%#XE%`Lk`q0@$8mf$X3#Eju%_s}B!n zlfom|ap6(yituPw4sXWp4NqVz!jssi;i;@CB8}}4(UzSZ(T;sTqCHy@VS9_UM|5N_ zM`W=ck%QTw$ah#vhntc$phOLcS%c_j)SdH-`)?nPoMjAJ> zO^sXFRO2?bqj3kDWix)vjyCRQml{7|*BJM*TaDYFLXEc!WnI{F2BA-abBHTrM%d2}snV`H3bWXvlzDTd;#F$~u;M&SC! z_;3SbRNSx_HCGTLaUaC^ayw!)+@TnM?n+Dm_aG*aqhqz4CRWFpV}rQ2V)fkM*kEpI zYzVg_*2L|OwQ!}e&A2#IbFQ5!f$LyObpGWFn`rgYB7+>4XUy}2lJUoO_1!KIlq zx%TG%TtD+bZlHM(H^DrZn`|D!Eih+uh2~-0dh-ab*gTReGmqvDn&0Nmn&08ho5ylL zo5yo^%oDg5=1E+Q*_Oj8*(_VR0?T&pL(4wyilvOZ zZYk&PlzqSUGPWJU!(b^A0m}j(@6Yf&j9m+aQ;Kj@02~EZm5NX_zh19W_@D*A(V#z2 zDA7V#u9CkR#Xz(Kvj|oWFh}o;me=e3_<^u1!y+^2S)i}MG;xQ|MY-rB&@DE&u=5iT zS<;d}m;$41uvm)+j!`Z}yXrHxD|66ph}<0X3guX|r(TbO+3Q~51mX`f+R}Qxhv0+u z0VjdpOHiV(>-B6Q8Me15lnnZ4nAO_O*9WW@hM)_OK?($H5&EM`P&)GWmoNnX2nA{l zOgHI=Z$f19H^Aot`VV$PZGeaRknPaAzbLUCdJaDA;L^SFkR93-mmg z<1uw#1#R##D-E&m>8}F>j8nBl?)9GrOH}LN)1jN|lh0n&O4OuYPgCzgBIsSfzms}1 z@~{8ASfy@`0>Gym=#SK9q^9;C^f2jN6k6|JEVV@j%0|1s1(isxP(=Or z$J2Q`I6`+`1JGZrod*>U5ZD*4*-UPo)x+PkE>7rwt;0QP@b;O zNY#cKW*YdD{s*7$hU4j!hwE$7gQzSFvo#{a*StJb0GW*ePLH057S`*>qCZ57KpzYG z>F5<`Nqq)=V>0kk;PIdjj7i7K>h;~Rztby#CxTuYTSc#`*RNQVp6GqJ$bo?Ca`dJs z%OMW>-v59!ImJ{R2{#~jMvK> zwnf14(`~-;jcsXokF4Epjw(mGw%CX4y-V<6g?#dGonh<2AE9CdMXS>f$$8s@Jj&~@ zD&!BgCy;%H?XB@SSy2+9IaQxCQ}1!E{(7I>tt1HVlgF2Af*lIQjtDruwIkTKuDs71 z$_u%{X5YE8@jH4`DQgjW4|br@G8kU2C(m&exy#|uh;v4e;n$07d-R4q6x4?t`jSI; zT#8UP$m;KpBmCj>%wPu^ZocNemFmpAIs0=XYq6R0)8Q1 z$QSYN@yqxXyv(oR*YO+pP5d^#gx}5Y;XmW;{CE5{-c2bfLu|@$WsI_;vb%Dva;LIf zX;)S#FDS1lZ!4cFu^*j!8y zlSEsxm@1};ZAGitQS2gi6MKj~#ol6Hv7gvq94rnMM~ZKYXsx}v(N`b8C>)~OBZmg+QhC-o5ZX!SVt1a*#jiaK9CO+74bDjs+7K#E=ZT8TheXGA^G|?^X=l> z&9|5DyS}r07y26f%zlgf*7;H1FmfpY@wfnNpw7FZSdAn;irr}fiz z)^^wS)DG0n*RIeOYd_KM(eBq?(cadk>e}mu=|<_s=*HGE_lbhC7Obyd3XpyZ&g zL0f~K1~Gbfy+Lo*C+IWvWAroi1^R{h<@&XH+YS94eU<)^J}TH0+#z^GaBlGQ;JLwt z!E1u=1m6q(J(vpd4G9c+D`a5EqIS}%7$hRRcLzJQ6p~ldp&|aY# zp;@6LLf;Nu94d!y4=oM#HuxLNhF*sLhPejWP--}0xN5j*xNWF5_=Z`++J^NE8x%G+ zY_=_IPT1lwIlLnLyYL^wAB6uN{xp10L~cZW#O#R65%(hQM^KSWq(|i0sPChGj=CH5 zAWCD5G&VJ68OIxQjrqoRjSGy6j7yDMjpfFp#uLUf#>>X5#+ycm@uBgtQ5zi|ZH~4^ zcaDZvLiEy|8w>N%ZHXLmg|-~Wr}@YVz(h}I(F*bu9tlAv*FVjU zPsg6qaWljr9YVCkb;(jhi&UxoY^)gktr0153okfX_Xu(4pH!A61&NA?4r>Grp= z&g?TX%k3nzq%Up2)Xy=pjS0db@;as?^{k8hoM}vzcahDkmRiwS?#ODWsh#B!?0RZP zrmW^#@Z&S{kNBt;%z6Aa-Ts*z%Bke>oDoOM-*7{4W0`YXfTK!2cZ;N`yN`RK1XueW$$lN_nBWQK zZf}#2e}r-5c{=jk?S16ip2--?1}{y(Z%sjmbm#2_sjsVzKy>Qsbo;3UxsR7WwZ5tR ziB|+=OOT7ax?r>X#4Clm+eB{c9Z#KXDu3)9-1y5T_0yYO>EkbSNw>=+=Yot^1*tE+ z4(IsTQeWfLw_O~0FYSZm{oV%LS^mp=AoWXQxdT5GkC03GXdjaal9W-c(zRtbQM$de ze3$oE?M}%*LSgR6mW>LzoK>HyWaUn+|>(G|4g^Ppdg{PjK=BqPu>TF zmYugJ9kwgTHuY_~Bk#2%@0I-&mKP}ktgT3l{cb{C0A#V$&zT!ZVP6#dA9>iTwRK)+ ze)iGIy21-d;jXOg2L#}n!h9P6=TCcyas+Kz6jbd*8VI((vJ92lG7B8sZfD})VD1ij$AIj0}&cQ#kUx zyFddvyUqj!^jnwaI?E&3?vakB@f8s8*1rC2y<+Vx|5fa7j!X( zMNxHUoC$|V-pfD29m!^(L;E@ltLkH}j@|L8AT zRhfA$gj1$Qr#i^H@w%&ndS{i z(;d>>@pq*G)|Neh$aS*9PlJDz8~6>0c;X6QQ&R?sPpKd8Nu}H0$Yp*S%A%Do`hBE* zEEIB2g;Jk=4u=B{JfLSy|7UxyPpJ<%l-v7TDcGI#59ZXzQlDca+x@%YJ95i_KpF{WHv}FpY=HJk{;m&Ugc%Psn@42?D z9~@nUBe-sOipYpF7)w^k2B|;xD9k zaotQRJN3%h>B${k6I=QMN+tL5v33fCVC#)gb?17e-Ki}t=@~>qDGl>e?=TK{;iSGz z1C&1B@?4T18t=)mY%%wC5h zzT)xL&U;z(WDS)3puB)+MDeIqK4auCL;vW{|3~nbwZT+v@N!1pVlY!{NFj})*Zz+* zoBkt>qkIb^Cm6G-os7K9*pJ%F$p09JQz8{RS#I54;` zr-Ay(JJmV9(U#2xb-+7S0kPiNG8xp4?^MxM!dDXF$x=Ppi>u2-1uuiTTtei-FZH99=Jy2)DZG8u)s8CpWoYoD?wSojatSce$IqC{Akk-8-+k zp7+OhazH)#?mM}DH03UzZz$nZ88=i1>~XKFPF%gDc6T|pp_HxjsPhKZ^CrHNQ|if+ z-^umcdfhv@O}*$l9;6xp7SFmOn%DCV^>lhSzw<`a^Pcx4jb(Mb^Q!83m0opOHm)b9 zy_1{PldbP$zk2f0cXIs;vFn}eW336#j2RU(J7z^pNz93uYcbDaU&aWrk+CgfyTuNV zof-RO?Dp7Wv46zQv#hl2ww$)yu>4~YV+=8prGcf5rKbf3v`1iImP*EPjBC`Ebks|i z%fgGOT4~cB^*VnYyajV#3J&h5SA0e7$gUxG<8&b65@i2I!8k!~+-O9?Q7>1#HUHv|{I{{z+sC+t3i-Pxm#O{=c|}u;*c`^QFrwtVQr&ai3NMx2QOLhH)ll~p z@;^<#Btc6PqOE-u;}dMZoxgr;Zhv?`+79hgp%-^-zaE|YleeShh&|_>UgzjuF!xXI zR*8zfigCw_e)3+HZm)XN0|w;WjK~Y#jyGk9N`Jv!@J3XQvq@lho*rL8UeVez$i{v# zEdPjik)5PlP12>2gg5IF-gG6TP<8!;Hz46kl90?NY#B`cD+e^V!%-bL|8OZhtjKV) zWOg$*?E6NM|BoL$xIT3~xK1UOeBJzSOg&eWENgKX_l-^v6S5LC3ATh~3BM#X%Ny}2jb~k$xuFfm!3yBj`-%cIj==8RFi1QF; zHq}`Un38rc8U|iyI!k`iXn31P&5s-?$iF8yOdTl9PyMIVV-MPkk^Kh*W09i%H5n;t z^C-?1aO&%#0Z#q()Zp!0I=Iq{`hoQa8z9KtQp_r4%ixyHTQ&x3-qO?(s#?7&3<3~>-F4UQFR~*6T}W^f2Hvuj z3omIGauhlShEO2~nK=u!L^_MhjVwl}7Z)irZHD;%mAtU35^^KiR9cGvN|vXziEjQ^ za-o(%g<1}gtCNul^}Ce}ozCk*jsSUGPtIlSJKk2)cERB+o4knAoh1L!CLsP+a(Wm0 zhcr~BdwP7;{NHylKUV*E)#>k=ZciYNUNE)J@wXI^Q!0QAW#fCgkXy;%eoJQjPIp3t zfO7pUHpTUtm|^dYh`yDalg%no{slCy)r-Rq9l42+yZy&MJ^ysJ57bZx0O#@My_Vvw zWKy%P7F(0s$r-S%PL@At+Ye;>n>SEO&oTy1IuY7lKG-(T>lP{IcCuwPgr%frXk4jD z1K9GoR8y15DF0~k4(`YMiA^>Na!KlY)JCD?@6>o4yczBt&!Zgdina*V&~w~QhnAws zjOj_61vxEEBar~- zOTj&Tzk^P2Mdi@9V=)OV(R^UR#MiN7h+nC&h}#WTCcw46)V`p}KA|A#fFS30TpjWI z?jH0BxOyOKw+e0OD!R({)OOcYJ?@6>uL8?Cn=x9;~wp%FP zDy$xkigyaDN2B8H!fIISi!2r7#hv1O%3&p~LeMU}LNR;Y#}x2Wf)7!fs?boKk7O;n?B+qn$|o1Uag+DHdJ@9%US?UNyc| zE!ZyAzDv5;Y1G5{`YTO>88WO!db?aDGdrKfo_!UC*>8`fzCPzI_xf;`dcGn8Rd}7V z9o~SZ=g|3QQjT$_ykq6aE_XuCd6NmtbSs0V_`_mbe(GygdU0Qc^GyZsCOM{Scj`c9 zNkP{vOx|ktZab-Rp=8BJZ7?-oAz#Y~2`yCEj%}EZbKT%Aoo=6bC4bsmM{Zbt(n1B5 z^YP5_gq{4T`xKlekLsaz zuagRUm`TC=dxXS+mK#AbhqNguH;`0TTXtATkDT9*ffr^z2P68H80BhQo;2C3XM`fn zrxd|`20hqW#iX8#Nq*;hu66DF<;A^9b#RG1otLQfrP~{kE!8unC56WEa9Pe@e*tfP zc~EZ?iT|wk0J3}0yIJH>xc`M2)0i9Hx$eifqXLX?RQX9qK;=O_=bg(PC`^DBp7kH=lGUU zsAhO>ik1<#@pAU03_M`#pM)Zj(yf4xMVLLTHTQSWySmM1(ZTu(vh251!Z z@4%O!wSg0?|MTV%YE40n>-}{6j(!br$$MjlV(sDNW6pnwGBtq^pX*6v`+Iw`4f$Yk zzdQ2waZF-cc-ij4FX4r|lX?yxFc2Dt&e0qYho+B(L-@Jsr*m@c#*@w{c`#1E)&;03 zRK#D43Q-n;5M)E63Fy##w243{DnPdg=+QjX3x=KkVQ4nGM<5){McGgT{|Gb(%_0zq z)}f^YqR?7&oRt!2nIs zb)?e(B%nW0Zyi80bPZX1g#tB4SCOCxNJLlAaRM#SAE;Y6KudHP^)LV=q2JK~BS12$ zLUAU56m$t4BhU){hT6vgw1!jd0f5?|m1rt~_rQ)4XbX0eKq@+gK7_u6+JW`85=sLb zN8o+1=>*!N?@=Lv4q%H2d{7G=!6g%=6WCG$oogW-U^!7f1p9_Sms;owu$m~{z}6D@ z$O%^1W`_nC6HYUeE>EQr7zf40{v>C zKfv!q831-A9zpp7U4+me0HzUa27|REFa)eKfuUf12@C`KlfcJdRAbl-2Qv{E0XB=k zNU$mbqrhGh7!BsUi^ia@(PeTwjYYGNM^mUc+%E_<1484$UMIpP2Q0J&Y;wVt6Uak9 zqmu+CfSn~U5e$<%@)NM`1SWww@6pKs2*!wL3K$uIqN!kH42q_Kk>Mj0dl7}UA}}5O z=%N|u7i1zGXePRV8WYF|Ths}fp5?`ggOGO1lvxa z2wEhMboOGfJp@*PZ6UpWHCP_$^=r^sR6*cdbOt>muoj#$xewMsxX=Y)J&HiL32XrC z(G@lu(FrS>MQ9UPF@eosKM>f0ens~PY(+Cri*5khz*c+&o9*Z{swS`ljLU${PB0yT z60i-Kuqg#QKwuZx#vZWQjY3c^xsCRKO(al;qLB4iFQC0(w+ZY6^Xv_q{Ya1ACvX6) zfWUWP>j{*DJt8;VLG%MMX9HA##S%CKHk`m=FjzTfQ6=np5jX_0TvPX6_R~U;5Sf?dI4O59&(&O6(}dX0e%NKMc^{P z83KO*oFi}rpsxbpDnNe%*8t`d_!FQ|QEg@6wE*`4k!}EdO5iVmrvz>SWWy{4UN4Xl z0Xx8G0=EG+6SxCFW-{=aV$fCschPyYoxnYCl@quRaGbycfD;5BqJ`)#Kx6a>?zsCz zdJH$(Ljq60`R>ZJkB3Wm-(htEoLPt}gk=8i#43 zX=et>u`@m7Ez=KTZ@GL%yj(OxgS|`2XMBX&C8!CEg8cJCf|o*#p}$SW9D3=1$LSP+ z*90cvrE=H&u!t{_I|-P9m$@Q+@mHvV1k@?h@t5-Q{IJd|T#@;BxhrxkX3$d-sRZRY zfe?UK1ZH6hy(KUkz(Jrc)l6KIk33^$Es6Pzekc>CFQhtUvpqWHz zhd0anXC)2X=&JV;?C#3Z7w<;tBx?w8Rj3YnVoz7_=e4=jxl-{S*J;!#jPlKlTv$)mRZo&e5vtV{mibs#a$D+(vl^FN|V zGEZ`Omtt?{$kFo)h<5gfWuV+8=lLbTLjqrc%XvMQ130he3cSnJG+*Og@}fC`DK)v( z)dqA|*>%c)*N>Fw%zqHxCf}YDX05qe{~h_SOngYSiQ-Mb11jn4r{CaGSN&H)wl_(& ziva8dis3@uArJ($a-P~M0B6yw0i36{2Jf=gosz5Sbvf3RQCBLdVqHD{U3~qf`Hy@^ za%V6BXX~$mn$;zTSu>o_pxTzJE50tME?FIX3*ERb{r@F-T})jn0?yzO&_d4k7zJ=& zE|}+Ut!a+`K8w0U1e|3?;{C2{eDOh)08ck+Ev`Um1lHk0D2=rEdbm9I32cB89uwFI z&lzWnZ>oLr)b$m}(CW&uu8g`;H{-*ui@6GJb7!5m0Nius2$d(W6>@Z5)orz9Y=_2l z-okZd)MZ!)#N~|H0d=)HZ?&@qR@@#U#PJG05hILTqB4u%8@acHtEt~9&_b};gIACut*Kzm%~f@n;J3!oTqxeGertuFWg9$<&2Wy+`LYjCAp zJwHt6O6;}^zd#x@OkSd38aa+UR7>%5ln1W}i!CE&85IQ22JEyKXx$8tcELDqwnw`p z{3_q0-N$$>D0$B9r})$Mo+Tx=TeLNrUxVWL9Wb*jLCyJ6)Ry0cdhvT;g1Hy<<@ceH zd=<m>vht77O#TU)#Xm)J_-AM?{~Q(YFHj->5-sKtmU)bq z@-$w?Gx%%X8?WS5cnz<{>-aFdiEoT|@J;YezNr=O;uCNg-wf~Po8xjm5m)dn@L|3s zuH=*O_k1!w&Zpqhd>TH>zmG5Q9q>>52lzL>8?NGe?f3CgK!Wx5h`$+a2WR#5}0fuk?AM2 zU`7bTn3=*vW|lCSnJdg>J{NQ_wGKlogb1`oh(vpYD0Esd!Ytc@E($T|wh)UPLLBn7 z`ZPq5KJlo5Ph*&HC!hqMW+>0MIV$jd59Zw+&=SD{kzTXa}li;jrv&{1&%IxcQPC&bO@l(+?*5x1gq z;x=?a+>U-0cc6=63HnVeMOET1bXnYOMOVZ<=$g0}-4OSoo8o?C7Z0F2;&Z2QK<4Zic~&E(aNXDqI`y0D6P-Y2g(;HOZhh%tbB#WDE~nd zl&{e=aLDqNS4wzSU#iHsX?61nek*ZAGMAaR)Q}x0Ptagu6*saZl+Q&XWGbeWdGnfOHEFk?eSwbO(=+s__`Y{$2rmiJVAPd zKan2e$V)J?otONmpQT``O43r* zl8$;Ig;IY@dg`?lK`GUZDL-`rrBSz}^y(xkQQemMP@PI;soPMa)E`iV>Wdw@5 zbp}s9}B+ zs7ZbkDVyJ9YN_8;s@QKDRqAJ@s{N)@FZ^awfBVg%y#41;I{&%U$NmM>WdHfpQhyt@ z)xVHB=)ZtE?f)tDqyIP5MgLXQW&gF*GynCJd%y-NIA9Z{3s^(N1#G371#F|@PG@{w1A(ef`DJBtpQckv4Gzx-@waMMBpD(OyCtNG4LwY zD)1WBG4L)mFz_BVGVlR4JMba(dEg`J>%hm<*1#uJMc`BF$3O>lJrL1P0x6meqG=(B zrHw%x-7LtBZWZKCcM0;KtpkHR=?OtRJugV4R|cu*O+gyEJSZG2h^`8XqN{@p^y45C z{Wi!<`v*6njloUnX2GrK#NafrWV(BB2YP65M|xs#H+p_>23;JSNgoIvL{|h4p(}$w zrcVctrvC^YOFsx6M^l>dv{o~N)@kO^QJVR5qQ+*WXKM=SFEk72Z#AFNn>0)5?V2y> zUo~ISRhkv_1I^borTvDMv@7WlZ806HT}3z2uBO{**U&w+Yw6zFb@Wi}dU~>U1HDkY zkzS_V0=9$R0)N+AuH8$Y)$XHjY4_7_wB@uEa*&P;si1p?9H0k>9Hu9QRMLw>tUu68 zLr#F5qBn$`rgw#$r%!}zqpL!Grm^l4?WL=tqjkU2@w&@&vhEN1ece^MlkOUwse3^8 z);*#7>z>lNy65y9-3z)%_Yb{S_nQ7*_c#5E&OtxXVdftl#c-i4;~DD4=tA9@%utEx z6&k?w3)L_=p*m)vHB`@R3JqiSgoeX+oJhtV8pS*bZNR(;H8YIf!g%RhFoHgXk@W8| z(fW2wYyJC7AANgfxV{53L*J2Eq3^`3(|2Vy>ANv|^&c@u^aGgV`svJB{S4+8eLizZ zKbyIyFJNBj7cy+vB1RSV8RHlB1)~pJ#>9qw#aIW1EoXAWRxp#pRx{JWzGVu-*215a ztz*6n+sG7$ZDMwXZD#g`ZD9_Et!IveZDUS`?O?8l?PTtTl`>Dl${03$FXJ0Nm(hnG zV9ep=%zNPnnGWIKGo8cFGu^_kGFjo*m@(nknMvU{m^tCMn1XOSvn>2JvpT$*DGk4C zWh%q(F=xW>Gnd03GOxlPF zg`qRs&d`nRYUs=MFbrk;7>2Q93?H*|48vKQVFbI>Fq-|!Fpgbg7|(7u|x_Z_LOled(F6wWlWn{$+VNzn@U-;sgjK|9cP=G zeqdXfPO}-NGwd+aS$2Zy9Q&2&B)iGJnShogt z)*8^@4r^*q&9-lFm+jNw9-G_XK5J|6fGuwDkloYZ5qqw|WA=7~Cv1S(!D`GDr#G|Q zDl^CJGP`qo%^ut-vln;H?9E*_E4W)`fqP~4<=&b_&ex*iB#XpFTl}~N7Jn|;63Df& z1aTP_4cF76Oj76IuabwV*D2Ai0HF`FTaJK55=68ExEbhk1p%F` z(U%H|=oBm{C4#;}XpF39Y8>ZwP@!bt1fNWN84{D< zBHy#<3U))SfS34^g;3WoTWo_~KujAr94NL#f7j$+EWSdoU}oDE^o`;p#JIi(TH!NR z3S!}-UpsIVE1M(tnva52%CF#~p_}t#&kf~bH zkU*o}N5$79xadC?HG)h(0{yc8aMYxxfV6;#bOKa}EMs>H7)K}9#8(9OMJd2!Rl71c z3$?2GimB7IpxaX3&QC;9R!w92!l~;n1d&DS{<^>6Fr??wGU?+3c1FF}K93O=qc#Dn2O{Q%I<>SyCowJj0OvSTPu=Le*$@Yl>Fh$sCI zKHLq!li`eq0QWIu;aN2q9Wdsi*-+Rp&<`6&qj@!YoM|a40DU;zr!CqO#5ai_b&edxq59=SX>BOm+Wz} zCJiNeW&5oplpoiDJO|DBq1WXYr`^EM(jIP&X(G zR{KttRIcwzaqw|z0bV8tZ_)(9`bJk+EJ5AK<|DG{gttMfL$*CPM5XM2#>DV_rVlLf zpuS|&k8JwGrXn>B+H4TqyJ#@1`=B9&hLX)NSV%-+*aIEJh3Vm zffxJ)gV01s6Fv~qg|0$RAzSDt%oJt`bA``^rNRnfjj%^JC>#=w3a5qh!bPEh4=fw_ z6!6pdmdv4xl{b`Uego?^B*P#hwDERGOIiDSg^ zVy-wroGeZir;9ViS)z50I8U4}7K#f+SzIE1C4MayiyOtm;t}zvcw9Uoo)XW9=fn%* z&*DY#H?c~*EM5_>i8sWXqFuZr-W4B+kHx3rbMck3$6S(OKshm=Q^r<50!RmvO6m&#YlH%f<+ zQZXt{<*xEn@hVZ}uS!>SRrOGfR^_UusXkY&P!+3ItJbR4t2U{&sJ5wgs7h43Rr^(k zRIgNTRJ0Tzg-8)nywpTWkeW*^q*hWpsiTxGb(4BZSyCTqfHXuJCXJBBNY-&ujx<5~ zM4BvFr5RGbG)F3s&PzW_Rnk?dT6!V|1AegvTn*SBv@57Qs4D16(4RroL63us!HL1$gL?<}2_70eF?fFP zf#8bZ%HY$%&x0wAsL^V4nkY?sO*hSU&2G(4nqM_lnm;suYHn%nY944pwY{}4A<~v> zrI5iPc_EWRmWC9EYzR3KQWbJPXp^w34 z_{y-xaMp0eaMNHn+%vo|{B3w^kc^Q=i?NZhxv{OWgR!%*r?IbbpmC9LnX%YdW;|d# zY`kWaOnQ^q6lZE`$}sga4KqzJZ8DXaDow{sr%gYZtfmHu4ca#dFl)?ubCfy89A|E3 zPBgbMw>5V(cQ$u5cQ^Mk4=@ilk2g;;&owVJFE_6;?=_z@-!i{7*ZvjzSj&I@eS1pG zzyB`&fB#kdvsia7u6hdvK6*jE|>NjGvH4XoFJ~w0svD-Ja7O2 delta 205 zcmZoSZ#Umi!@->I%eA?l;}HjQlrPuh6v0g9SRj2tFq1dYm&;v;k%7UTfq`M^WH+IB z-V~rnJQD+h5m4mroUatsWSTnr4`H+KokGICDv;&PW|;C11e zyg{Um8OWP#DSC)`StIA{rNzv~2kBlUro;TJnRD_*v1$=yU1=a)K#9!>;_55_D_lNj diff --git a/exmmtest.exe b/exmmtest.exe index 93b8bb7eebfa669510a7e5b769760dda92bb5d95..40a9bef6504bfa3239c7289f43079e9c297ccdcc 100644 GIT binary patch delta 9882 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 t2H#9Hqy{_^%iwpzuXP{tq)Irn>+D delta 9939 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 if(length>0xfffflu) { printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; - length-=fat; + //segm=(length%0xfffflu)-1; + //fat=segm*0xfffflu; + //length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); + return 0; } - if(!fat&&!segm) - {*/ + //if(!fat&&!segm) + //{ __asm { push ds mov bx,[handle] @@ -291,20 +292,21 @@ End: boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) { boolean flag; - /*dword fat=0; - word segm=0; + //dword fat=0; + //word segm=0; //if(mm->EMSVer<0x40) if(length>0xfffflu) { printf("File is a fat bakapee\n"); - segm=(length%0xfffflu)-1; - fat=segm*0xfffflu; - length-=fat; + //segm=(length%0xfffflu)-1; + //fat=segm*0xfffflu; + //length-=fat; // printf("CA_FarRead doesn't support 64K reads yet!\n"); + return 0; } - if(!fat&&!segm) - {*/ + //if(!fat&&!segm) + //{ __asm { push ds mov bx,[handle] @@ -363,7 +365,7 @@ End: boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) { int handle; - dword size; + sdword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) @@ -394,7 +396,7 @@ boolean CA_ReadFile(char *filename, memptr *ptr, mminfo_t *mm) boolean CA_LoadFile(char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi) { int handle; - dword size; + sdword size; //long size; if((handle = open(filename,O_RDONLY | O_BINARY, S_IREAD)) == -1) diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index 31655c92..5dbeaa00 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -89,7 +89,6 @@ boolean MML_CheckForEMS(void) { boolean emmcfems; static char emmname[] = "EMMXXXX0"; //fix by andrius4669 -// mov dx,OFFSET emmname __asm { mov dx,OFFSET emmname //fix by andrius4669 mov ax,0x3d00 @@ -562,7 +561,7 @@ void MML_ShutdownXMS(mminfo_t *mm) ====================== */ -void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) +/*void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) { mmblocktype huge *scan,huge *last; word segm=1; @@ -589,38 +588,17 @@ void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) extra = oldend - (segstart+seglength); segmlen=extra; -// -// find out how many blocks it spans! -// - for(;segmlen>0x10000;segmlen-=0x10000) - { - //printf(" seglen=%lu\n", segmlen); - segm++; - } //++++emsver stuff! - if(segm>1/* || extra>=0x10000lu*/) + if(segm>1)/// || extra>=0x10000lu) //if(extra>0xfffflu) { scan->blob=segm; - /*__asm - { - push ds - mov ax,ds - inc ax - mov ds,ax - }*/ - //MML_UseSpace(segstart, seglength, mm); - /*__asm - { - pop ds - }*/ printf("MML_UseSpace: Segment spans two blocks!\n"); //} - printf("========================================\n"); printf("segm=%u ", segm); printf("ex=%lu ", extra); printf("old=%u ", oldend); @@ -629,7 +607,6 @@ void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) printf("len=%lu ", scan->length); printf("seglen=%lu ", seglength); printf("segmlen=%lu\n", segmlen); - printf("========================================\n"); } //++++todo: linked list of segment! if(segstart == scan->start) @@ -653,6 +630,76 @@ void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) mm->mmnew->attributes = LOCKBIT; }//else if(segm>0) goto segu; +}*/ +void MML_UseSpace(word segstart, dword seglength, mminfo_t *mm) +{ + mmblocktype far *scan,far *last; + word oldend; + sdword extra; + word segm=1; + + scan = last = mm->mmhead; + mm->mmrover = mm->mmhead; // reset rover to start of memory + +// +// search for the block that contains the range of segments +// + while (scan->start+scan->length < segstart) + { + last = scan; + scan = scan->next; + } + +// +// find out how many blocks it spans! +// + /*for(;seglength>=0x10000;seglength-=0xFFFF) + { + //printf(" seglen=%lu\n", segmlen); + segm++; + }*/ + +// +// take the given range out of the block +// + oldend = scan->start + scan->length; + extra = oldend - (segstart+((word)seglength)); + if (extra < 0) + { + printf("========================================\n"); + printf("start=%x ", scan->start); + printf("old=%u ", oldend); + printf("start+seglen=%lu\n", segstart+seglength); + printf("segsta=%x ", segstart); + printf("len=%lu ", scan->length); + printf("seglen=%lu ", seglength); + printf("\n"); + printf("MML_UseSpace: Segment spans two blocks! %d\n", extra); + printf("========================================\n"); + //return; + } + + if (segstart == scan->start) + { + last->next = scan->next; // unlink block + FREEBLOCK(scan); + scan = last; + } + else + scan->length = segstart-scan->start; // shorten block + + if (extra > 0) + { + GETNEWBLOCK; + mm->mmnew->useptr = NULL; + + mm->mmnew->next = scan->next; + scan->next = mm->mmnew; + mm->mmnew->start = segstart+seglength; + mm->mmnew->length = extra; + mm->mmnew->attributes = LOCKBIT; + } + } //========================================================================== diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index a27fb541..2db75561 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -131,7 +131,7 @@ typedef struct mmblockstruct { //word start,length; word start; dword length; - word blob; //fore data larger than 64k + word blob; //for data larger than 64k unsigned attributes; memptr *useptr; // pointer to the segment start struct mmblockstruct huge *next; -- 2.39.2