From 565462932f26c7e63232c2314727f3807de76657 Mon Sep 17 00:00:00 2001
From: sparky4 <sparky4@cock.li>
Date: Mon, 20 Jul 2015 12:17:42 -0500
Subject: [PATCH] untested reversion to older version with updated parts 
 modified:   DEBUG.TXT 	modified:   MMDUMP.TXT 	modified:   exmmtest.exe 
 modified:   src/lib/16_mm.c 	modified:   src/lib/16_mm.h

---
 DEBUG.TXT       |  10 +--
 MMDUMP.TXT      | Bin 125 -> 125 bytes
 exmmtest.exe    | Bin 54864 -> 54634 bytes
 src/lib/16_mm.c | 199 ++++++++++++++++++++++++------------------------
 src/lib/16_mm.h |   3 +-
 5 files changed, 104 insertions(+), 108 deletions(-)

diff --git a/DEBUG.TXT b/DEBUG.TXT
index 727d142b..ca05d1aa 100644
--- a/DEBUG.TXT
+++ b/DEBUG.TXT
@@ -1,5 +1,5 @@
-Seg:0	Size:140000	Owner:0xb80b
-Seg:222e	Size:4096	Owner:0xfba0
-Seg:3035	Size:1028480	Owner:0x5040
-Seg:3974	Size:682176	Owner:0xeb70
-Seg:e000	Size:131056	Owner:0x1e8d
+Seg:0	Size:177392	Owner:0x7410
+Seg:2b4f	Size:4096	Owner:0xfba0
+Seg:3956	Size:544	Owner:0x30b8
+Seg:479f	Size:624144	Owner:0xbcfe
+Seg:e000	Size:131056	Owner:0xadeb
diff --git a/MMDUMP.TXT b/MMDUMP.TXT
index 36624a83cacdfa2f36acdbbca88ceb4e2ddc3348..d03b87c78770300e4fb4dcb62664e8011698964b 100644
GIT binary patch
literal 125
zcmXr0FfcGlwlX$IvQW^_Rnk<jRWP!!H00$nfJm5|7#aX2{4pdFQ&N+F68|wIl9JO>
Uff9+R5=JRjX-SD7qZkkp0M02JY5)KL

literal 125
zcmXr0FfcGlwlYk$NKw$x{jaHDt6*edX~@fE0Ff{?Ffjm1NMJ}LSr{Y%CG;>PQj^R<
TI(kqgj8d%9k`h4@3<wDT-cK6Z

diff --git a/exmmtest.exe b/exmmtest.exe
index d7feac32cc234493f47ccb84d067db4521579d8c..37842048508d983763778fbc99f62992999515fc 100644
GIT binary patch
delta 17703
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
DKT+(n

delta 17894
zcmZ{M4P2DP_WwM)%d#vA=prEKvLK>>FQDX0C~D%8rMQaWOUVX;f+=ue7s`yq)b#Pe
ztsK+atu(S%E7Pz-=^BcHTE3uOLoBnhdXTR9QzAlQ|KFM21?>0x+vn`=oO9;PIcLtC
zIWx~gH})vceW0|>UVK}4kc0~llSskgSnNeKghY%Z#6X<?J}x4}W+CKxz!ktBfH*55
zlL4uKJiuna8-P=Qn*gDhkU@aqfFwZPYC={6!k#8XvxbnZfKLF8Ylw{mK0`<>U>)Ez
zAh?u}7XeS&2ssAuEW=;`kFkXK0s;ZU06BnwctWZH)9)kXB;Z#-8^B{6A(enB;|YnJ
zK*%P*#rp~Q3-Ip*LY|pK$OXXdNf_WS{AihsZ-6=x0{{$wG(hMSLSC6l$UZ>CG(si<
zu1qIna1tSNjD#!&JP+6f*q=;D(1VZzm@$)(Er3ISlYmCRuK;ltA-4d+Y<Ly0!Zw$X
zsCk5#0PTRYsf5S?#e8@IFbpsOkP27@*Z|l9cn|OmKu9CR3(yZR0`LxC{z7;UU<bSi
z_z+MFP%VN70a<|O0aXCoO?-3#`YtA9G$0jF1lR<q0}NO~$O1qvU;|(;;1ocaPDm!;
zDL^w|k{Pbgfc1cjnXnQNvy_mj01-d|9|5jq5i+KLkdFa(3P=p`EQC7&GXYBg`GC8C
zz#@1BU<IUTy)`?Es9o`ctu%;`tAO}{gd79}216F$7+~NaLPi2615AJnfE6%CPsnqC
zgiz=TFdGQD4(I^*g<%2!@qh(@6#y$>BVapVKcEeu2}e|fBVNbj#|*#<z*@k+0ha)`
z0sV(y@JKjq7-n!daDeP6LPDYmd3prA4rm8FHIk5D0Lw>VCIQPvg9dmDFdz<!0#X1O
z01M!sfR6xmaS-?|ezXF-#}E<@7{@^4t+^kN2q63)wX3oxcx%efo2uf;I%BKBw9eRO
zkaq^GJEq$5T+LOvWpI_Z##A+lm}D`)p5AqQ@Md4oV*fk0%A3Y`=xrCquCK8wn|~l*
z2t-P2mw$~n@g64hNQ4+QZ{?sB%Y^b)8Cv1ptyhU@%T5gC$1vsR<?47jQ?bQ(qr5@B
zsbt^h<$!4Ut$3zS`S~sBm*k}*<#USi2G9a*<>ym*?-QdTn*B0W?IGn2CiJQqz^pK~
z%dHX4zH&ksA0O68X`S-xj4l~F<gEA&4$Cl3+7Hz>F}(Qe5_9_E+InM0IH@;wdTW|@
zb;UWF2RS%f6>0f8b#B^%M`*G-Y_7M)-Y6N{6V&aV#aWV1o9Bj;mR#_Or{b>I8^v29
zP;$jMv35g^b&hyjJRw(4z|U_FfhDEGemTw|8at&KTKiEkr7IF*=s|TvR;%akcF&fV
zT4Kaoa{5H^sCWc@!qJc?Zm6*+n{yl+&Rc!ZzA}+XwkQumTw_Zm2DUe@OKkNdRxdH2
z)wB5#M~m)wdZ)NRWp9eR0)xe5Me|gLy=iwlo#r`pfVU><g1xcfM@HGWRVx`g#f{tO
zcF)nE*c<n0>eSn{K6UDMwSI5Bs(s@P+T>{%Ip=;jXwjp!sdMMS3*t}fe)Y$=TS|XD
zbWCY)EI%jts5FvZt+Ce})@bN3&6>VUR)tC<8e1#Wn#z5e>p}=e4Fc+Bg&v=`DhwL&
zs%X4X5w5BHNE@PZGDLuMqaqTYzg7&_h-Vmkw5IYWpGYCuTN8IBax?52eqz(cJ=#gO
zl97|96noU+_mt_zwRefK@LJU#EgUVUd(0utEp=j(Jl}&)?xLeABA$yqhmLff-vj+w
zoY!FbJ-spgRSt)ImcH$G-&i>H5e0lArFF<r@nW6W0JrNg6~T_;4o7h(kB4jMw@bV3
zn5L@BAup#s{Q@S1jkABZ$<uy$dRvm#&+;px;FP>#JRiAM9v#)Pxzpu1jaV;U64Toe
z3e|#uNtE}~$NPoPSuviE+9e0NdZjJkW2pp_?BO2kbZpD9&eVAzR0{;5uRSysUr;{0
zYw@GCy(yIq{l*J}yfspBo4rZewx@5@QSqET{kqU775{8<#A7{2=%Q8LnlIoEU9{j$
zpV3X@{O$ig{wCe4U@P%A<MV6(sb1cid0WzNK?`aa;Ez_rj|fDFn>=8@&_aJ35FlKn
z>HsD>E?_V|=L8J)WnO<17LE4cxq?0&U<XAT$mqiZ2M=NNDGHOErgG<!T!jg)G@^~g
z+a_y=(44>x;Jz8S)Eg0XMQQ9hu2*U3V?jo22=*&NJ8ymvwA0V2l7t{fFi9J?RW2SF
zE8K&<&9MIp9x8ZSH1iNP<!N2AL{Ei;E2e7b&5)V46()OAY|SQPSL}5}tZ2L~8E+$|
zC1a~->|iU%*mhv*>E+t%R`UTP|6U+IcgrzpOyQgZ(|9{s+}Y|l@BsgvAZ~ASh&wwR
z-d8N+*B!p)m|EC30nJih37^dxvhJ>`R9THc-Fe$_VEXCh^w1!^ahsUz!<Vri8#cK=
zQz6+O8AwbHkf2m@P+W~O#2>A#GyX*mZ%}M0-M-1lV)c+8Ve4~C`p<N(KD<xomg1k~
zxY0nAZl^ZAK^L$kZ95AmQ`PJ6`p7QCAhit+6$0q4!BLn~%ogxp(}ux;Hn^hB*hR!z
zDLDYv*BjdjVR<mwzbNiNlC-nkvAI^--r?Y;Dw{n>-E&<Ip{%q^u!MlmVQj~zl>RC@
z6rTN?$|s=m&cCUA(_T~Fuwb()a+Aj-V(CZCdVe(xxGA^Mr}V>pT}u(_wRSSK_vsBn
zFm2E$KD1X?uHL6R;CIO3aOn5yylbq!Wq0>k`ycRgHZ2-)XO~0V-szBxUC#aM2E;7t
zM9e{w6LSZcWV$Fcen4=;kIHmRc9)nuNJ{T;BnPjv1=BY|!)?K&c(e$7T8ACcklqz3
zB@Ysf?Fafv+uQlj4kVKFHppCO>{28o2N!<ro~TZDBK0$+&OM&4l{TuvSV(PDhe^c<
zt4{H=K0tJd8-2p0w61Ce5pTtvl$VaM16OZvij)Q^>2!lW<ewwNdM87@@ixjTaMc@c
zp<oOhLDv|fY-|oYVax3fSm!8ia}>Ao`Swtn<g37G=3#FKPhYgpblB6|fpU!Js8FD)
zo!xG7#4sTCI1x7-#lLdg7~r<UJ2z1-plgE4`c$<RYLquY-IAEmtWj@28g~*Q%(mg|
z7_pYA-#1d4p%8tcI`$_C4oK<4HanUc7OfZ*Lv3L(kz)p+7wEU-pQ4YYYsEU&Z=+vW
zq_nGlSlmgm39{u=^juirLKjk0iH{+B-((Ig)=Inl!tAg14^tX{6+P|geZ)JgcXww6
zk)Muc%CKeif6!G#ew0oLkLatyh&$9_Y_ynYS`Z$h@QJ2d!h>wBQB0?}D^PQiWKoFi
z;%)hOwDlNwOd=d}8Qyf(7T7$i)r4`tEuTlRVatz5p3(x?-X-7kbjO8jm(ZH#rOvfC
ziM3@m1;OsWLdj)jDos*)tNd)cJsomvb;$|=1Jore1+lRn5kyFNQ$0e6pMd1FC@`bi
z*r*8;)4C+~wL^=b>J+<-)jm8_UX~w%3&aM5C_F7kL@_)vOInB69(VF(c|>ojItng;
z`d!1FUbD4}o-8r_ff-!ewLr1vUADl}I-FdWITzHH(r%loGL`k7gqZ4+6$s5^f57D|
zp~IHn`@<GKFFX2&iEI_X)lzY*d-7N}aEN!{WHx)?!eWr0hIE^~sovA!_&XKzmd?kn
z_bmHgT``B#Ttq^+HoQAuejEEZ3&u<(n{Jc1!zWA*{)6dR+A2?ulJ{cT<hQ?P9cF07
zv^H82F?oKg(%1%{47_VkXNyE)J7T#~oMIA76!M#G=q;ZdE+<4`!;U*I9+9Oe^oQYM
zvKk^Jd@j(4M`M4k_9JCK_=;zvF2uFbjtGOzCHO6@$(xWW+EhGTl*uYF*$*R$C2CXE
zE6RSiP2z(7awr>#$H;q#yMArxbXb6asQiJgPu9YVjbKR_cTBg27w{@Zus0spAJz$X
zQHOBp)$tlRA%>Ngw&oAvJT@{){rcoSE;&9-PD0`_-7}*P_m*&{w}g&pNSFZe$r!Uv
z#n{(e<jQ@G08YCt7yiz?YHXF)x390U_;6B?$|Nslc&C4Cj^dkfCmqGN*wnE35HUS^
zHYezpTHaJm{N#y(tH9bvnqOf1ff3`?a~q#gHitQjcMK^jnOu3o@BHu*<-`*eS4HN5
z2vu@^=W3{-#zo*#oZkFeiMcWz6o_2I7@?b^__mbXA89o1itPO-@6*RAYNuP&sWy)8
z4|Mu1d1EX5NWYGZvPJ4RUXLMCTJ4va50bUgf<AIzCm{-i`<M`UMJxO=Kx{<m<KYx`
zA7}#^jU%J~0R3(LvtK(GIu-Ok?|_a><4Pg{EQv@)EI_SzRZ7=T+b}PikFPylyI*zT
z=7qCyU2A`F_{JeKIM-F&Nw%`~M6lH@jz6BR>9yq4M1GMIB%{n${m)qQ_j0IkaANz;
z3TOY~+ic~6McRdpEFBxaQ=AXWqr7-xsY0Gi1BZtRA#~#KLBfwTZFsot$`F?KM3x+F
zieu^Qyx_|EEJ1uJdWs7a_Vk~nbQwuY^u!3qcld>g7x>R!8e^ruFhok}a^|WoalFV*
zLf9O{JMv=@mMQqfH0i+N%^AX(QnZq%NdFk_AKBbjGTvZ)JH$H}UmhG`J;F@EK+;BN
zu>&S;^r3N4{>zcDx{c#|M2~HE!nxS-5_c6ga|t2Lsz>bU&3jO5v6+EiWF6uPyVbp-
znsd5XCFtBp-=!Z!g$kSKS5bN)m$pO=934Ld+rr!~hw&C_z{yJTO!8!bSoKWHQVknO
zVoPNUaw+7>YC1OBg!<T2^)TY(%q_YlI%I;1ZKB3bc-N&kEC1Lwur<u3xDC5gYurh2
z^kI7-<_>XSq1U4I!XwlXJ-Gj%aLX9x#aqmeVsWP&Nk_#588N!CE0WbNEpKdaSc5jS
zS=oWnRAs~HZNIT7W(V%t?ym9`gEK6!ouX3UTAZNeG2w!deiWlOFu%1)>wWOm4jrWR
z7~yjtrax+>E}X&s8xv-mVSw64Bc(vpVG40uA4WzO9D*79He_>6m?fGOWGU_4sNW6N
ztz5O&pqf{=YV5cuy^74U9+~G=3=cs#gTpK~DJ*Ed4rQakIc38-fs@v2T!VZ;Um6k3
zHEwlk-1fgT?v$<cyAffwR4yY@@{E+s3K3dD<5yv16H^cQCCI?^ZIx1ByGy!<!Mcs>
z`#JO-c+>4luJ3y2`zrJWFB8+e0{SxDxW2#WyY;nkefxx|xl_*44I?A<Y%f@sxJSpT
zjW3Y-Z%J%hW<_Zy;)9+X8KGOIXJsg>c-&Jof9t4G!caPTR7l)Sy_NR#awlwP%2GBH
z{eg~Hecfe_BVZ4GdepN*8tobtBHT}dM-Q?M9xSEY;(^EKUmB0~4<+Qck#5>>*@OUr
z+y5BESP*Jh(4}3XP0@U|%MtK_&MleezO}!8j@#3<|Hb})*=fWY7UZI_6o+NeSS%V>
z%ey?+m6qbtWL@bRf-9{bM<O?@k<v=x8w~RzAEwPy3DQMHz41v8oOOE0h4hEfal%yU
zADcXM$K@(tT!z({s^IBAP2wGsWIQUbz3k%WT3@7Pv57(Pm*J1Y8V^&|*UBxW$FMuB
zkvHDJQT$Tu{lZhUUtF}RuLqh_;zkQU(fqh@VL9Cjq(4K}#KnZ?1T*8y8*r?XJh!B0
z&5J$1r8rC87|Kp`$Lx*v8oDcPuu9MPM~%7fi7Fkg)tU{xHTiZRcd@4kYmya+H)AQg
zC1R$@ZwF)Y2md9XQ*C*>jIad?!@Wpz)L+p1i_0o|P4#8fL5E{(&F#H^G|Vio5l`WC
zd8DFBC$Fbx#)RQ`FUNaU8$7DQJ+O0~q+MfTJP?x`)O6I?(itoP%=a)k4<YiZuyx1$
zHk`+Z^Bn8C99EnTTcxx%`8j8%Smt4p*Zk5Q-jCMupdaZ$|7Yyr@jNWC@a?;tnX8?j
zHbw^_IFGV&JW^6cO7j)6VxT34#jKO=OJ~H-AB(K#aQAa1*Fd<0tz@<i7bvjqo({77
zgRL7U9cec{IAj&)LUxI(5z@N))ib$HdMXv}3l=8OLH8xvxR!e8-u4r8mt%g$KD`h@
zm>e|Jm+VJDkQ{VDcAhX-gX<i)H1_WtCC(aXKT!V$O3hHL$TL;d0=37D>d#RZf!e`P
z*#A4^cV!HrY<?SSR_m}?6zpyX{eA~i(NDm!^PENPu&6lN0rX?tXsyGd;b@K8B+uwZ
z`#3CpINBfRQQheN4vSMKgW80F2Qb~mMtSdF^PC2aRGZ>~@4D{9hjzK}Qy`_8ArVnX
ztB`DObd1}pGgZmZ=InJ^IxfhjMTXXd;i652n7H5m9r7tKIIgVs;}yd;cI0y-<+THx
zQH<%be<y-f1gkk6wGZ2h<bf?M|L#m<smgw&K1q#AKM92}b}$XLv5gQqUn?f{i4;FW
zyL^{6EWMTv7(Zm>ys8v6yF66utHK1QO(|*<!`uk9H^Je%t8|N5AmVPbimn=;z;8$v
z!o1yd|M<7~{>oav|3Dv~@Cq)eIww5cxB0)0Vl58Gj$+M0Z@PZsh6TL;HLrU0H7`6r
zsj&#P2Q;U{Vz1+Rm0dSlqSkhJYb=q7Ln}M>q29)gvPFlR<14JnPS)Cwuxn$_5-->*
zzdsnC_RF~4ef)m<FxZb&xA?EC^)37HR-~x^#w)U1f5}VvjT2*UkbVUAs+V-3;fC|S
z$g;#HFJhf6`6x(vP0WdehC*)~R;qT;#Drk4i(XQbvN5va63s}^<I<GvuZa*UCbmH`
z?yg@<(5V}}A~!`|rh5{yZ5>|a>P|1|8|nBP*S!ppU0x!%54QM!u~i#$b|1O3XI<jY
z7%iyk`3bv!_A2+0y>{Qg*RNi?Z{q8g*VzA7*(dD2jo+<aRSqHt4VFI{#HPUB)VU=Q
zhmWHN{YaG{-1%ssB|&PeT0O4()aOqONHxtXKWqQ)knkRTev)4JknWunEO=L*ob<2)
zPe0i9L$q|zlrYw)iL6j)>5M5=p-d{Hu>8N4OuptQY4;dJ64VN9k&^KYnp)A1^~Nrm
zpkAmco-B<^)6g?h<7O|^NaN;fTE2{{Vc)wKYFcXeOi8n}B6ueLS?G((@u=7?e{xqm
zil}DKE7(LX)ReHL1(_CAOL>b%1cuI<_T6NLJLDjafW?|BKO(;x$hmlvksJY!VXZay
z>zF4V{ofRt^S~&?B1}sNP-*F|2WmW7r?rWvDwj>S3Ika~(x1>t0jG4h&mObkiggsE
z9R7;7CKU|D9_^2ac9QLvd4&xsDnUHXXcy5>^f^^2&e*EJjVsG}_A8EnIvV-lcy<Hp
z6pWE_9vr4v;;n(PeXG*hmpZOyF=7*<s#m4h8xPh^t3Y)c@Hno#6&@2~*PSQ3QQo61
zo-4a<Yq{Vw4IRCl{S~gYhP%Rmbj|L^HT2hqBw;Uo^5Lgotca%=n>X&H9S^57V=r&^
zxkAmeu6F-Unmvs_s;Ri><>5ynZtYizM=#vK^77#UZ}F}oeiP4?gfSKE>Pud6R~|m_
z(CM)9#uzlBYQ;u8Pw*@Lwxu!Z91p+!Dk<P1y)-)l&j?Tg@rmEiW*NzeTW0x5kNHph
z(&EpXQsBB9in1TNB(q95*CHSCt{j;XARsK0=1dfdXz84IA+fS@PJqC|iya?2Hiz09
zV;yZ9f1ypLG~B~)f_1TuWFXX2t&`xwO?TW3v*s4@n{Fw+bMvm9l_%$ZuXN6Xu{A**
zuBD$ma)5<-lN2ydOaGA;dJplHwAYx2t{^n%lm+K-JqX5e=X9_nabjJGM)DVKPdr+(
zn45tMGm8S0KD{VYod%Yu{)Qj!#3T4o>>FH-`Dj@FIkB#|j}w8Izu7XaIg_{r8Zg!v
zPW!*c3OeLX_bv>)50iaIzIq*AKtMv-1dLMTB_(Ousw~l^<JpH(zEk<LEoE4dv}0j-
zAnPINujwS8A9NMhb@f=<#2^o%V;4O#yi8mDm{#oCbYkt@GHp>n*%XD<V_mJf<<|Yl
zLSdVDb#t=N^4r?3GP-Zk{lm9vtIHU(y!P(azcZKgFmI*(7mrS5`|lxaZ|wUh|7IIr
zyO*Tz@REEwy&U7(yefXy$)iX$n~UA&bz;CpUBywX&(C$ckLh+_2ckw-aR^^O=yo60
z?Y>60El$OTA}>x*oZeG8^wE5QO<iNfMf5qZV~Y*z8Vg1|hbYy_1>Y{Nb!UnSq7?&(
zc5!W7O>Ju00<jK*GFM)Sb4Ys3&=pJHiB}7~;M(sHuPwhh-MmI2KBmHh(g#HB$XBe>
zICe{tpEPJ)T|j+O2cfzpBchQ5tDXEMik44O`OgZ-tg-mxIf1#q<S8_ID3DSw(%dBp
zJSnln`u>s#AFe*pg4JtX;zj!Hk`SP98ES7->MwdF=<)C<eYgQ!P3+|CRMeXfu+F9;
zRwMLYf-*NHJq&&+NFOqe31kMm<{EV3t)hyS=5?iAgNl^RquHeo=(s&sp+vYNd*B*f
ztb>4)>67^uQLk2MD}Bt#3Op1$e1a~@NQ8%ZV*Cm|K7;L7^n?s{`_L%rzd}wt(|zb*
z&qeuEO8PU1wXbyWnAe7rR*!U+UBoZ#K#Ps#O*qrcQGih%-Dtlej&llWInJLgv!|-;
z@i`_HG8k==u@e&;!PZlGdRKKOQbpI=yQjR0yxWqsN{eP)ZU2_vn)j1tiaR+-l~kyC
z5l-kDaE8vyG{GgJRSl~HPUtF5>Fjta>@OxMFi81P=8H~o+zH+8Q&7!)daCMA<bkv?
zGgR^C8}!f2SoR#3U2l&&rNjO~$1UX#*%~W&^+KOpI#w88d1&cV3hzrgtial;Mtsr4
zWtWCAI}T@R$|7IXw2Mc|d|uS3aN)HETWtWhF|Gz`?mj~kmIvSe%1%s0S{DLXg=k2J
zm54d!>e;<@?-FM)&BX!ESxjV_)906uPblCuTipM&Y^yhRd23p>^gN|j?N^Gm7k(6K
z<4!jGh|X(k;lxHUy_0Q(%pf7>e&KUEDd#$hg|OVY-Uz|+%W0^-jjfJ=G%YQ&6e7Cr
zSf=WjLF*D_oR6C~r^~U9%^O=PjaI?A3<qAS&}b*t6%Mtk6B5<hLiQR3=25E^(GtgL
zv_iWS&_~<vHZM`vs<m43*jgYWJzD;g%HrV_hy6;7x=9xj@Qn_S+2=9bM&NcgVJ^SX
zA;EEp>k?5iqLLR#?E!CR$w=#pt;5-9Wr>Ym%EH*PyC$pZW1kk!vb*7h13zXLi_X1d
z^F|*nU0O1dr+l_i6nbEPMs(In0kgDtc&ks*3Kt|#pi<{zeESv7q+|hHEBSP@d?^M3
z#h#W*$Lvip>TkRj*OKx8leRYDSka)EV|teN?2QZmXiNaDL{ok)L2c4n6rr^~i>odc
zRa4(5_XUBYso|Q0A=%(-?|N&j>a`saTKe^qF}85ztE)QsmvV%~1uTA7V4UW1C7*EZ
z;RtQR_x7U;8k+CCr8{}&O>@hBCoQE@N(|S=fF-u3;roVP>_?TQT?;l}1LON(++)W2
z-#v@J^AM1t-5suN*~FfHVyc{qpbE2UY)lb%E=|$OFE~rP-6`6NtJpziX(L$A#qd&^
z=$w{{aP7p}LO<~cuHZ_?V|IiSQ|0C^E;&ITt}PlSUT*jvrAGvgOMO@t!M*#qSz6&t
z*_o+Wl8x-(5?9l5qT1nT`5&8;)bb094EvR`#Q9h?s<;|B-Skz9dO_OEq#1KC2+o(z
zd9XJr)fc^F1z|e5vwlLrRj<Ma#S8mYsQfRqAR#GnWzL6o7W{rVOO&6pUuNZwP+M`y
z%U;9kpO6|~BpoLsN+)bg)V?}GI9XY_x?LG?jIXs>O)N-U#&6!$LXVWbj<dgb3CFh5
zHZkqv%`few1-3>kotb5NL8LillZA)r+hrqwxlk6~2fRn^R~mjeuAil)!rDNdfO*5P
zc6<!hY5fgd)RBF{v}DXOrp>&lcJ90d2)ToT5LaVw`r?Lex2)T}SWBN>JB{xo^=es%
z=M-w78rDwY8x2s@|5+pZ-NaZko-M#Q){$&4p_iZijx|Q}M$Nh;DCV*L0en8V{yyY_
z()AaW!YG=tDJnQGJEPE$lbumu$bTYCOP2Mt=$uWz8?<EhY;$V1#bhm9o_)XJftC47
zpD^U*TMWzct$A5tTAC@=7@jQ1$ji#kGOWs8m0$RjVO2(6#`5e!LqTD7QFfkXl!1nA
zj*Rdk%L=ozXUtA50I_KDP^*@h@XN5QFk@A=VQTD?Lu2D<&gR_8^P6`Hv|y8p7L*%N
z2$w3nHR~1L^o#Nk<xi7;s{FS6Hz6qkC8G1Cuk6*?tMO~X3ls1u{PhSv4JR_$=i);4
z`6k|_BL<1_2=f-Q-#WaGNBl=yso(QQg){WR^FxH^=pWAy6MSgs3v)HMaIa64T5tN~
z3lFB^y(1!^p)s4y%b1sls_pNndHKcJg+$ff3qLCZ-YT-B=C00uAl^lP49}>zT-}Sy
zHCxeOa_O@#PSmjXPZ_1M_QkWxKowffA=8ql5!D`dxA$IpL1?4*Zx0^v5Z(a<2Vqk)
zJEH(DH528YdyxyB*jQS&JvhDqFABOk%wm&iEm+9=gopIT=U6RS`6YQyl7*hx9vD(L
zxEI6pl?W9c02prN)*S;DzY*R|HmAC}gBFfg0^Ry0BXlf<K+eNEf^MV{f#Adz4C}$V
zqYTWMG=Il{<b_eai1~$<+1aZ=8yC|Ho0DGxEP@V%t$3@@JwlRoRY6jQB?IVB>6bf#
zXC}t>5a;JxGFCDjK-J={LU*Tm*##H{$XR&3(2aZ`e^ut3ycvas`P_;zbkskCZ2NjK
zFhOpwT<wJ~%3f~G&4aXCe?w+rTve=V&Nb$xY)NI65LJ9P%9K&KD%Db$o433u`^i<S
z5Cl4|5W+Asds%+rr0gOnN>sRWW_kjhvCNWP=tS=AMq(y2va$;C)Lg*3nTRpG4=YTe
z!pnLE8B4=n4oHq1>oRouH1qV8`9;}D*_qbm(0NQRf-$3TUUo(nu-ERzE-1{kFdy1!
z>B|8@H{yF_&C1WnGUl#iL<{}k<v~Gj;|*o*Q4G{8Qr@Q5ULIgGbsOI8i+$ZjEX&Qy
zEy`J%u{0+;Gyh4V`na2tRhUuIgFn!Xw-#h&Sh9O4pLSCU3iFpis~lvjmDxm9<s=|0
zTK_dv_>8{tuVKOoTKlh|x*y!?nwPPp1v7r2cmFjdoaKQ$>&lfGh1nTI$=(^~Mwyou
zSu%L!{7D~sWw3t)a*>l@&VDkNMbz{ObjvG)b<gz>l4s0MN@c$L_bWld^YqdyBZ628
zb9O6Qm9cWAd1*ci73B*w_|@3VL)})Gkz9(2>TnOjg*n=T0n1XNI@W_=EWl*CvI)y)
z8F~46@#BfA%$;FAcr`+Jfi}E4T6mobuLTJ!Xz**%LOq@F+6dtwEqraHV4|<THez<_
zB)6V<OwatKi0Ap;SqmOwi83>LIZ>tc!p_D-J_v#<9WHc{=)j%hbrF+Y5_9t`6UIFW
zqpRuCoe{R5fX5oe>&wjRPG=Tc*rH+-my0<G9mkAyd;4cM(dB&|Zq}U4PK0W4FTHwt
z64hh9@J7=Ns@@f`d}McLbACZ~o_X2IjO9hpU@YE~cj{)&%I6fK)K7H}w5-U5de)6v
z=0Zq7@O}vPqHHq@NJv{qU)(ip)ahyN{tUm;oM~OQESu$>Z4bCQVH?U_2{dq@(Vurk
z&YC~HyGvHSQzTLT)q^Z@=j9>`f|eyvf4s=gy|K*2uBvmz30?U5Fd?0my*@PRVZ7bX
znF_I3&`EN)i<}5mI$Q-ayy=<OLu{G7{Fa-aNmQqB^^5Loy)0XWFea)Ky<%|={D}Mp
zb&81Ut6qfZ%q3afq@2G+>$o_gdhYKyWLKI~F(6<sG~|Be9xbq15SGe1N-HA!ZA^9<
zW3}Y7E#W#nRblAw`=ASJHk)QnBTCJKw6h|#Ut|w@W_%J+=F<^xgbS^7&KrjQ!)JDP
znHfKuD2LCaYu|_*Ikg+jB7b>dehCKYLGr@Eg`GB&UVI~3_=Gy%7#7okeq81Jyp>Ox
z^YgOJnLJzgKI9rE$F;naRdnv|K?=c(9;x=Hw`#Thl{Idjk__JGCf&7r$cXZXT|Key
zvW<yVAkZaxmJ7{%Q{=?0p*MF2YR+Mz_%!x?GqnE<{CNhSbn8l|qYlu-HzT5d0Gg}0
zI=e96T)?-2FH+p97nw_3`#|40wEWFTyysB)<}iidT>8zM5kn*9y7<gy_li)bx<+v=
zh)Jn*=vxtZ?*GtR!-SQz@U3XuMQG&;pQYBq%)%##>YE-^>ilWbAD%U50a0E38*=^}
z6H&3p4(`sGPgxLqKlH-n<gUyjs_Q+Ny!;7Bg137RW~0qC!|dE7P}g1Rp%fIM{=@yg
zTm15Di#fk|r5V|ODO9}CLqX+h$uG?AO}*Jeb*?+slg$T8${y0Jg6XTW%(HUyfbQsx
zHZ5P3f<l?78hfz$*e6!tk4IFO@4@BfF&v(Hxb*}dUxQa%DEjByhTvoFX)xzG_c+x#
z*Gi;g--*Gsf%%<a;S0L@oe9EaTKP`Yj1K(m4G)8*h)Tp9J2@b>`m>Uo<!BcgCkSBg
z1D1!9*=(Gdmus14$txntiI32*cXff=dJ&D-7M#R?(ud!T)^xdbeCAz)&`Ec`J0gP>
z^)6XVlzAHVKMb)5fA`}=V;<O^2;8Iv?r=*jfR3z?V!4_X{%&nBo=bx2JPd~F_}h>7
zh6olq=e+<8o|Z69Z@TKeXbo;tosC`Z4HY)f<L`~sZ-OLlt(i^I6OR<6WS7il+Zsmc
zyNLSj@ehe#)Xg$2YlXGQGHn&kN~{Waj!xM#QlNCzo=D*>x@}LiaGZXzCrG1mkMrH0
z2t~tUdSt(DAW{CfxLfHW1lo+GIkO?-4vl+1Fj)EMy|kGrY13wb8t^F1e1EjU@F=D4
zM=C}=N~_-=7*Yaem(J`&X6e~hUZ%gjA1Qo813riv;IX7zB#Vb-%%U<n|AQC=LD>f*
zg07_Z&{tZESZV^tI5R!=!7xRFnf~{KVR&n1z=u(IJATTCQ3|ie>52~{71JK4TR)5x
z3h2QPhY7FH?>`(a+@{*S!Q=nT=$6OUQ5G_PVPPKf3p*~TF1cb+W9C?dy*oG`-5ahT
znbfwI6>IP89WippQkQwI{m-eG4^DY}%ALEM6RFGE`q2noh?`_K7Zh69R$4))d=zAx
zlj9PUU7WGfz0JSwMzXlZ9=Z}G08t+9jm@{@V3Y2q4bOFnS+>d&pOek1neA?rG55*r
zEK@#e4zn@8a8(A2iuYDH`RS#Pd_o&t4dP6yCAla8AsI&ja2lVW%6%g=JJsAYZ#sTo
zr0^e_zArSZ`5&$^&1U9IOYYJqz@LoTpZfp_ha>ornAcOzV}}`w0V=4PTnj<tM65#X
zkz16#G(Rs38+0C`ldqER_k|02RJEV2h3NgmG(WrbShPPp;9K`tY$gk_Aer4i&=>dX
zgl1Z^KS)KC(~A(<291wfUh{r^(Cnh_C`it>%$zgZS@Ras(2oa?4F@M%jI3HsF|w_T
zs3Lmdxc1J}Hp_*k`5zAzUZO939NF)^9?_}uA12C^^sA49gg5C=A4dt-sc+>7;TD}#
z8Kv;I(B+lGHS^pOc2q_N##-EJ!5Z^Ylqzhd=Fy9lu^~8lIlT&Bv#mZipQ!*ct`tHK
z3>=?h?WW^M>o!SswcE!|C%X+Q$GF_R`3HuCo#^R1BM(P9=WQ6Puie^J9vBvK4WitB
z;kgVOnhQmLKM*#9T{XDqsr+EFa3<kpz6&`6CEedpPQFFp>%N+J^phc)pWR}g`($*#
zU){<TVMm6&cWK=x5ks<y-R36c&rF#=4}^Ds;t3}!Ki9$>-}lpD!ngFkPa_nX)%4L%
zhbRJ9)3Q&8DuP$jcRr0&OkYjUemY#prtO~&Hl+0^Z=PXH#uCM9Sw>U~-5$8_vtf9r
z&}kvf`Ya-_7?(S+45x(LqE(rhxTfG0E8X?kps*XgTs8ZF>8Ue|=4XI|s8)lYyZxKb
z!gMdVCE%3dtbA}gR23;)qT{QggkNYzl|Md<tD^CYv!ZGsBD%UNI;d@pdt4qQyqqUW
z#WVD;s+f6x&$xWR5^h%J(jv2k4Giy$a8s7D3zd6mDWEw`F|W#WEzZSm!&e`S^p7fa
zGpuseaZ#o8z`@~)`%CH7gL>g3`q#ne0S=p+YgsnGoWrmVI_c0bMQj<(J~T|2Te;=X
z36<wQCA%0HN%vPr(6TS$QZFdIhQvnT-%x+$KVk+=YJBrS<$&ok1`SpE3{hHQl-_fc
zzBZ+5ic%Rea+=b&NU0rS@>do!&Wa>uZ1M~u2=IU@kSJB~?sbLYHdWQ+s47&74{1S7
zux(n>B&A14|J)^-Srg_fRm&%3O)4wfHdX1FA7q&S*zoy=q#&hwX;9EJOXeHym9@=7
z;pi{KP5^mA(2L3dDdMTM51Q^%dQBhty7EQa5M>=1GC%1)Q$$j35<X@rqe6x%y<(KB
z17jy7C9P5V?oetHsOCtY(0k>Us}+9+2@93JW0k5em7Wh5(6L7z8GJ9#v!04tgD_C3
zeCIW#N=l+{9eE_=UXFih6s?iMT4iQndBl7=;AoWKN2eSOj5%bBQL4u)Pm_<7UJ0}A
z?NjNc_-&M+^cX*4XoS+^32Hk!B{V5&)4fdlwF)U7>M0i_EzHTGO-GlqyPGMsS?uer
z+Q)<%syMa`pSj1Td-v7sM9{H+o9SoAqP#b2kf90QZ72I^OLv>y1RbEE$D;=H)!?3;
z_%VJB{zRAHnh=yF$D@>+H7Xi*Tt{C$-Y0Y)ZV4BnQ(w&`gv(UUZNO(RDzyU|HRFpp
ztijz9R05iO2HsH^xG($rVe&Wt((q~E{95{boz61_F|AU3MnmgDv5QZ^=MU6e7d3=k
zsSvUf64*a)je&nNSuPY=Oy92y9k7pE#)y^tS2UANzpD$u1;$-Sd!2^VhvMoY0iOry
zqxdw@r|U!ev8xM08UUyPpqH9yLl4)hJ=qlmAxG%idL6x5ukOdM9>{~ht>Bz0#;N%Z
ze;}Yzj7+3{C-lN;I{HMYFFSw}qJ<;JaV5e|5AYldpQ;q;^r;h}{n$ww#W5fc;CAfi
zC$wRkH7n372w0~%Y_go@OyI84a954#$7JoL!pTr!BMmzls=z@t{Y+5bi=4oYtAw24
ztRDRtYb#xQGSrhDRUw?=`!3>mb|A$cdUMW?Ip!1k{mD>YehMXZpnU^%HdEhIA^q6t
z5-)GT>DL$z(ZKwaa!T#V&WMD(#@l(P)R;HxsZh@!O$<AdWA}o~Z!T;5^Y$6E`7w~p
zpkeUtO|)}U8C}WgK3}R8D^qFgxga{~OD#e#nomN?mug>jM!}zt1EzNS)<2LL`8l<H
z8H$6+E_`;-FTNZiY^Kcfsc@%C(McU&hW6tR14s#sc!2v;#pDi9;G$fmu&_Fwz=OmO
zbl#V){7UPT(zlrNY~Vax$-ZxL46pu)H#4JeI97{FK^HSQ{h1+sjU4k9#~Aon?BZRe
zIL<L_8Tz}%3K1IU<kO+7PES9rXLWk%X+7%j*MRd_LJy<y1^xDPsBne;1r)05sdYh~
z^@EtSN9g1;p{TK!oC#$$cIg>CtFd>U(WA!xHz=>rZ_kAGyPd)GLbMX2%XT(_hO=r<
zlF2A1xR0lvRrli$OUPN^OnlLfVzzj0)U&a6(0`l_9meWq{C^$#vQPIvsDhp2d;FgT
zREkpGFOnw$UjxJZ=O2vkWk3M4ScB|9AkY=(5A|r|S!H1SdDQn@D5}cQ=R)JyDtJnx
zK-l&Ci^NX_86C!WS)oZt0RY$7knPVb39RNcR!tJVXvc6Gw`H0!ob`K&(|j32_rF;D
zQV<KL^9My_Dlm`pzW5*!0IW?OrhW}-^>r?TUaRw`u?=d^Tf7;;$tJY@Q5oWY1H#({
z4X$9KFEpqXu@?Hz2K_)*Iueow+gLO>*Ln(%?6VCazO49jj*0B<ib<dIS|v-eZ1zT-
z*9r$%l+%>+YEM>;;eUF;DS7ABLKd~25B2=^DTa;V*uCJ=tY&Rr-adnNAa6St-p%uB
zR)Ot29YlRDs96;ja6uo!AE)t^@g|?waP(isJ;IZKw+|lKs1ysi)~har3}n@pbL)u4
zw=<J1=G2M{EFJ&*La5@>)6{?f?mwJ${e}K@Arytw;ESPnpf&kos4uUT$UwMdMYrK)
y7u5=sHt0rQ$4`_u?_Sh<vcd-cGZt>nHK0+>y#8g-*8ix5xzzJNW>vb8kpBm0goa1}

diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c
index 12add7c0..a021f2b6 100644
--- a/src/lib/16_mm.c
+++ b/src/lib/16_mm.c
@@ -143,7 +143,7 @@ unsigned MML_SetupEMS(mminfo_t *mm)
 	union REGS CPURegs;
 
 	unsigned int EMSVer = 0;
-	//byte	EMSstatus;
+	byte	EMS_status;
 	unsigned	totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle;
 	totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0;
 
@@ -152,7 +152,7 @@ unsigned MML_SetupEMS(mminfo_t *mm)
 		mov	ah,EMS_STATUS
 		int	EMS_INT						// make sure EMS hardware is present
 		or	ah,ah
-		//mov	[EMSstatus],ah
+		mov	[EMS_status],ah
 		jnz	error
 
 		mov	ah,EMS_VERSION
@@ -219,7 +219,6 @@ End:
 	mm->EMSpagesmapped=EMSpagesmapped;
 	mm->EMShandle=EMShandle;
 	mm->EMSVer=EMSVer;
-	//mm->EMSstatus=EMSstatus;
 	return 0;
 }
 
@@ -273,7 +272,7 @@ unsigned MM_MapEMS(mminfo_t *mm)
 	union REGS CPURegs;
 	EMShandle=mm->EMShandle;
 
-	for (i=0;i<mm->EMSpagesmapped;i++)
+	for (i=0;i<4/*mm->EMSpagesmapped*/;i++)
 	{
 		__asm
 		{
@@ -303,33 +302,33 @@ unsigned MM_MapEMS(mminfo_t *mm)
 	return 0;
 }
 
-void MM_MapXEMS(mminfo_t *mm)
-{
-	union REGS CPURegs;
-
-//SUB EMS.MapXPages(PhysicalStart, LogicalStart, NumPages, Handle)
+/*
+SUB EMS.MapXPages (PhysicalStart, LogicalStart, NumPages, Handle)
 
-	//Maps up to 4 logical EMS pages to physical pages in the page frame, where:
-	//
-	//PhysicalStart = Physical page first logical page is mapped to
-	//LogicalStart  = First logical page to map
-	//NumPages      = Number of pages to map (1 to 4)
-	//Handle        = EMS handle logical pages are allocated to
+  'Maps up to 4 logical EMS pages to physical pages in the page frame, where:
+  '
+  'PhysicalStart = Physical page first logical page is mapped to
+  'LogicalStart  = First logical page to map
+  'NumPages      = Number of pages to map (1 to 4)
+  'Handle        = EMS handle logical pages are allocated to
 
-  ///Create a buffer containing the page information
-  /*FOR x = 0 TO NumPages - 1
+  'Create a buffer containing the page information
+  FOR x = 0 TO NumPages - 1
     MapInfo$ = MapInfo$ + MKI$(LogicalStart + x) + MKI$(PhysicalStart + x)
   NEXT
 
-	Regs.ax = &H5000                           //Map the pages in the buffer
-	Regs.cx = NumPages                         //to the pageframe
-	Regs.dx = Handle
-	Regs.ds = VARSEG(MapInfo$)
-	Regs.si = SADD(MapInfo$)
-	InterruptX &H67, Regs, Regs
-	EMS.Error = (Regs.ax AND &HFF00&) \ &H100  //Store the status code*/
+  Regs.ax = &H5000                           'Map the pages in the buffer
+  Regs.cx = NumPages                         'to the pageframe
+  Regs.dx = Handle
+  Regs.ds = VARSEG(MapInfo$)
+  Regs.si = SADD(MapInfo$)
+  InterruptX &H67, Regs, Regs
+  EMS.Error = (Regs.ax AND &HFF00&) \ &H100  'Store the status code
 
-//END SUB
+END SUB
+*/
+void MM_MapXEMS(mminfo_t *mm)
+{
 
 }
 
@@ -596,7 +595,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi)
 
 	if(mm->mmstarted)
 		MM_Shutdown(mm);
-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!
+
 	mm->mmstarted = true;
 	mm->bombonerror = true;
 //
@@ -609,7 +608,7 @@ 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\
 		mm->mmblocks[i].next = &(mm->mmblocks[i+1]);
 	}
 	mm->mmblocks[i].next = NULL;
-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!
+
 //
 // locked block of all memory until we punch out free space
 //
@@ -620,7 +619,7 @@ 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\
 	mm->mmnew->attributes = LOCKBIT;
 	mm->mmnew->next = NULL;
 	mm->mmrover = mm->mmhead;
-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!
+
 //	farlen=_bios_memsize()*1024;
 
 //
@@ -636,7 +635,7 @@ 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\
 	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
@@ -653,7 +652,7 @@ 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\
 	MML_UseSpace(segstart,seglength, mm);
 	mmi->farheap = length;
 	mmi->mainmem = mmi->nearheap + mmi->farheap;
-	printf("far heap ok!\n");
+	//printf("far heap ok!\n");
 
 
 //
@@ -695,7 +694,6 @@ emsskip:
 	if(MML_CheckForXMS(mm))
 	{
 		printf("XMS!\n");
-		//====needs work!
 		//MML_SetupXMS(mm, mmi);					// allocate as many UMBs as possible
 	}
 
@@ -729,6 +727,8 @@ void MM_Shutdown(mminfo_t *mm)
 	printf("far freed\n");
 	free(mm->nearheap);
 	printf("near freed\n");
+	//hfree(mm->hugeheap);
+	//printf("huge freed\n");
 	if(MML_CheckForEMS()){ MML_ShutdownEMS(mm); printf("EMS freed\n"); }
 	if(MML_CheckForXMS(mm)){ MML_ShutdownXMS(mm); printf("XMS freed\n"); }
 }
@@ -863,7 +863,7 @@ void MM_FreePtr(memptr *baseptr, mminfo_t *mm)
 
 	if(!scan)
 	{
-		printf("MM_FreePtr: Block not found!\n");
+		printf("MM_FreePtr: Block not found!");
 		return;
 	}
 
@@ -900,7 +900,7 @@ void MM_SetPurge(memptr *baseptr, int purge, mminfo_t *mm)
 			mm->mmrover = mm->mmhead;
 		else if(mm->mmrover == start)
 		{
-			printf("MM_SetPurge: Block not found!\n");
+			printf("MM_SetPurge: Block not found!");
 			return;
 		}
 
@@ -1140,7 +1140,6 @@ CA_OpenDebug ();
 		VW_Plot(x,y,15);
 		if (scan->next && scan->next->start > end+1)
 			VW_Hlin(x+end+1,x+(scan->next->start-scan->start),y,0);	// black = free
-
 */
 
 //****#if 0
@@ -1173,70 +1172,70 @@ CA_CloseDebug ();
 }
 //****#endif
 
-//==========================================================================
-
-/*
-=====================
-=
-= MM_DumpData
-=
-=====================
-*/
-
-void MM_DumpData(mminfo_t *mm)
-{
-	mmblocktype far *scan,far *best;
-	long	lowest,oldlowest;
-	word	owner;
-	byte	lock,purge;
-	FILE	*dumpfile;
-
-
-	free (mm->nearheap);
-	dumpfile = fopen ("mmdump.txt","w");
-	if (!dumpfile){
+//==========================================================================
+
+/*
+=====================
+=
+= MM_DumpData
+=
+=====================
+*/
+
+void MM_DumpData(mminfo_t *mm)
+{
+	mmblocktype far *scan,far *best;
+	long	lowest,oldlowest;
+	word	owner;
+	byte	lock,purge;
+	FILE	*dumpfile;
+
+
+	free (mm->nearheap);
+	dumpfile = fopen ("mmdump.txt","w");
+	if (!dumpfile){
 		printf("MM_DumpData: Couldn't open MMDUMP.TXT!");
 		return;
-	}
-
-	lowest = -1;
-	do
-	{
-		oldlowest = lowest;
-		lowest = 0xffff;
-
-		scan = mm->mmhead;
-		while (scan)
-		{
-			owner = (word)scan->useptr;
-
-			if (owner && owner<lowest && owner > oldlowest)
-			{
-				best = scan;
-				lowest = owner;
-			}
-
-			scan = scan->next;
-		}
-
-		if (lowest != 0xffff)
-		{
-			if (best->attributes & PURGEBITS)
-				purge = 'P';
-			else
-				purge = '-';
-			if (best->attributes & LOCKBIT)
-				lock = 'L';
-			else
-				lock = '-';
-			fprintf (dumpfile,"0x%p (%c%c) = %u\n"
-			,(word)lowest,lock,purge,best->length);
-		}
-
-	} while (lowest != 0xffff);
-
-	fclose (dumpfile);
-	printf("MMDUMP.TXT created.");
+	}
+
+	lowest = -1;
+	do
+	{
+		oldlowest = lowest;
+		lowest = 0xffff;
+
+		scan = mm->mmhead;
+		while (scan)
+		{
+			owner = (word)scan->useptr;
+
+			if (owner && owner<lowest && owner > oldlowest)
+			{
+				best = scan;
+				lowest = owner;
+			}
+
+			scan = scan->next;
+		}
+
+		if (lowest != 0xffff)
+		{
+			if (best->attributes & PURGEBITS)
+				purge = 'P';
+			else
+				purge = '-';
+			if (best->attributes & LOCKBIT)
+				lock = 'L';
+			else
+				lock = '-';
+			fprintf (dumpfile,"0x%p (%c%c) = %u\n"
+			,(word)lowest,lock,purge,best->length);
+		}
+
+	} while (lowest != 0xffff);
+
+	fclose (dumpfile);
+	printf("MMDUMP.TXT created.");
 }
 
 //==========================================================================
@@ -1315,14 +1314,12 @@ dword MM_TotalFree(mminfo_t *mm)
 
 void MM_Report(page_t *page, mminfo_t *mm, mminfotype *mmi)
 {
-	printf("\n");
 	if(MML_CheckForEMS())
 	{
-		printf("Expanded memory manager present. EMM v%x.%x available\n", mm->EMSVer>>4,mm->EMSVer&0x0F);
-		printf("totalEMSpages=%u	", mm->totalEMSpages);
+		printf("EMM v%x.%x available\n", mm->EMSVer>>4,mm->EMSVer&0x0F);
+		printf("totalEMSpages=%u\n", mm->totalEMSpages);
 		printf("freeEMSpages=%u\n", mm->freeEMSpages);
-		printf("Page frame @0x%04x\n", mm->EMSpageframe);
-		//printf("EMSpageframe=%x\n", );
+		printf("EMSpageframe=%x\n", mm->EMSpageframe);
 	}
 	if(MML_CheckForXMS(mm)) printf("XMSaddr=%Fp\n", *XMSaddr);
 	printf("near=%lu\n", mmi->nearheap);
diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h
index f1634d9e..70075287 100644
--- a/src/lib/16_mm.h
+++ b/src/lib/16_mm.h
@@ -35,7 +35,6 @@
 #define OUT_OF_MEM_MSG	"\npee\n"
 #endif
 
-//#define VIDMEMP2			12800	// size of 2nd video memory blob
 
 #define SAVENEARHEAP	0x200		// space to leave in data segment
 #define SAVEFARHEAP		0			// space to leave in far heap
@@ -135,7 +134,7 @@ typedef struct
 	boolean		mmstarted, bombonerror, mmerror;
 	void huge	*farheap;
 	void		*nearheap;
-	//byte		EMSstatus;
+	byte		EMS_status;
 	unsigned	totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle;
 	unsigned int EMSVer;
 	word numUMBs,UMBbase[MAXUMBS];
-- 
2.39.5