From 09ecd3b6ef2b74496e95edf9475fea7e16f0e701 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 29 Jul 2015 11:24:43 -0500 Subject: [PATCH] OK i got the borland C version of exmmtest.exe to compile and it dose not go BOOM! wwww WTF!?! modified: 16.hed modified: 16/exmmtest/16_ca.c modified: 16/exmmtest/16_head.h modified: 16/exmmtest/16_mm.c modified: 16/exmmtest/16_mm.h modified: 16/exmmtest/EXMMTEST.DSK new file: 16/exmmtest/EXMMTEST.EXE modified: 16/exmmtest/EXMMTEST.MAP modified: 16/exmmtest/EXMMTEST.PRJ renamed: PROFILE.16 -> 16/exmmtest/MMDUMP.16 new file: 16/exmmtest/PROFILE.16 modified: 16/exmmtest/exmmtest.c modified: 16/segm/WPEE modified: 16/segm/pee.c modified: 16/segm/pee.exe deleted: DEBUG.16 deleted: MMDUMP.16 modified: exmmtest.exe modified: src/exmmtest.c modified: src/lib/16_ca.c modified: src/lib/16_ca.h modified: src/lib/16_head.h --- 16.hed | Bin 30585 -> 30585 bytes 16/exmmtest/16_ca.c | 38 +- 16/exmmtest/16_head.h | 6 +- 16/exmmtest/16_mm.c | 102 ++-- 16/exmmtest/16_mm.h | 2 +- 16/exmmtest/EXMMTEST.DSK | Bin 1573 -> 1729 bytes 16/exmmtest/EXMMTEST.EXE | Bin 0 -> 41817 bytes 16/exmmtest/EXMMTEST.MAP | 698 +++++++++++++++++++++++++++- 16/exmmtest/EXMMTEST.PRJ | Bin 5950 -> 6501 bytes PROFILE.16 => 16/exmmtest/MMDUMP.16 | 0 16/exmmtest/PROFILE.16 | 0 16/exmmtest/exmmtest.c | 17 +- 16/segm/WPEE | 4 +- 16/segm/pee.c | 3 +- 16/segm/pee.exe | Bin 15344 -> 15344 bytes DEBUG.16 | 16 - MMDUMP.16 | Bin 318 -> 0 bytes exmmtest.exe | Bin 56432 -> 55985 bytes src/exmmtest.c | 13 +- src/lib/16_ca.c | 4 +- src/lib/16_ca.h | 4 +- src/lib/16_head.h | 9 +- 22 files changed, 811 insertions(+), 105 deletions(-) create mode 100644 16/exmmtest/EXMMTEST.EXE rename PROFILE.16 => 16/exmmtest/MMDUMP.16 (100%) create mode 100644 16/exmmtest/PROFILE.16 delete mode 100644 DEBUG.16 delete mode 100644 MMDUMP.16 diff --git a/16.hed b/16.hed index 6814787e9899c385b679ad06b6fc02d0ef866272..9ee3884070db330ef9688838897e02e89f55e6cd 100644 GIT binary patch delta 2583 zcmYM0TWnNC9EaO72j-Ms7F*d3dlJw{I3%rN#H5Lv2#F6%0!cmLp(cGGh`MS?s-mJ+ zZ6fNDKvEr49*8!Ix@gg20lAd>ZGo0MidqdQ(IqJeN)(bl`2FY5u}PEfo8QctIdj`{ z^Gf;6E9Je{E7bhY7HV^&qRrd5A<`9Q!-I8w9bb1CpRI`Adm%?N}U|gB9I4~fWE@mpxi5-jPz9dw4rfYo!Cx=(zw7|yCu@oMvJ{w z8zUW>*^PB3qw`+&RHPf@Olz;i1Mapqg5|J#tOdUI5{Dx_!&(OG-W}CNIzhU*HAokmf~V% zpq2=ffcXM?eBjLlW|>QsX|EodZT#_RRX8J086T*;Kpw~n6o62m2xx&4P&y6hsz4P4 zLLe`Y1+oG;AQZ?0TA%=wm@iWV@&Y9wC!njTED!=(APW?jK$8RV0(n3k2MWN&V?YsD zHUN}>MFP5pDL5MG7IUdO?F~SW7{4a1t`-S%HGw)IkQX=z6o6iVBG4sJ0@?+1ZJ?S3 zLSTkKwl?q@4n%sPnO>Xrs-Q>BoZ7VC$x<#VD=RBE)v1(59<#C-VObxyvNDxY$P>~) zb+Se#Oay9yKsLdU`y>67Sy#i5p{LDZs0C^>m!KwSvGHk{fJ}*&S7mSN34zxOw3~Ij zY!~#5ISl2XXKh&)dXBO{v0Ikd4puh^#-LCrn)BS z_pnOKtgXK-rI9zS%&SfMTaHBfEo+ynlm2S#ZP#p=^OU!?n1>8t%dM@fNvfqRj>*+? z$OZDi@IIgb3{ST5C)s{S;=b&BK~l*;R4I zm{Zt$afS`B#P7ST2m4?&Q%!asObk@Y?gL=0tZxojCXfe0R?rjxEl`{o_(R+dAI49l z?|$r~_=$<6YQjvI%=jS(=3|P-nCb~h|Hg?(e`4)2P0nF!T~@$8by*(!%w;Xu=hoIU z{Y_ZG+8{Qcleo@hGqEpRwx7fKrL{(;U@g{TO_p@`V5HZ(cHP)lu3bC!wQJXm^}2Rb zunpE^E0kg1Sd$%;VL$b`b^*50wUZ6C$+au7g*K12Q*D^hlL9qYAeYTme)D`!`nG4d{KcbrK(Y>&%kVS8Pc z!1lT9>Y+&QciC?2fXlkEgDz{w4!NuuE4pk7cGzWQ*b$d$F1e#FD{*oLT()9=qzB`S z9n^*$i!*jt20QMu06XEbZcf`tmvv&NT-J=8cG(Q+Ta$Hb#eT8Ix~XCLP1TdR zG6cfOf!_gKu(|B(R_s@6>}xNB{bu~hX%$HI!sLvmU3w-NP$)As1aoGZP`JXPE zgkIGfsGL4mzP+d=e-ClBCt@tS#!q1zE*kP*$>+#4bG_lNsjD|dy8c$JE?P^Ka{i^o f7F?pxJUqM3G&g4Jhp4S6skl``QKPS?ad6ImCg0*v delta 2576 zcmYM0U2GIp7>4_E2Ied5cAH(gK{pBs7rx&adTi3IWEXgZnoyP2a9+k;ccZNqZVp6` zU>QpRcgv$yR(S>`1w@ZBm_fV(z&be>h#AFw9^ES`7!%ca`7#}}#Fbuv!>|kB0%jQU zfE+^sFvwt5TB4W12CQR9R$4~ePLI~hRh2QL0d&7y19GvHDR~m(IiL;l3@8HHsOlB5 zw41n|aJ#s-kR=?3WC$|_Y>_8}m}#d+Tjd#0AE;B#fjU54lF+gdBnxO+&0tnp#timm zH;+j<(6*A2l2X}qW3_;6S5xT*?NC#h#zyH;gN%W8szC-oyVM{(pxr!((FW@E9}Toe zJz4~`S8nDBVi)d{M}sjM24&QMBjIWR*{`a$fDWkUb)bW)>>5sAA5TZj@;OX~6EuUx zIfT|_G7yZ?G#02|S$$=c#$bn)t%aT4>(LQq^MNQ$z#h@%j63_!;Kh1bfoYU_~tNQ#zZ5J-v{L4&DRyGD|cuBmo|;Z5lAl-~d{&hSCMZ8S=|4 z;`M#T?-664$6fHO-(x5$I{0R=qX}xoVR;V4|JH^ur%yFWdS_L4DOou{R}hD z!6y8S+rd82SsM1C&KhAK>8u)dT4#mb9(}B{JnR#l4Z=RvSuZTFvn1?{&TQCcI*a3W z`&?%sn5VNboSjKO!}b|~ec@-=S}E9kG_{w6Ej*sGjdf;jOsu?s2aR(0`{XaUbpi&(?9tc-uP+Qte?S7z(&qZMH$vjL~x3wS&RFEe^u>Ti%tN}shsy`KkQd!Yb&Eh3ig|%+L&nJ>TYd$P%dZGubj&n?cvIkM$l&0*PEpNt5U2$Ymvudy0FI$S@w=0C~|3Nruz diff --git a/16/exmmtest/16_ca.c b/16/exmmtest/16_ca.c index 46a29565..1783f87a 100644 --- a/16/exmmtest/16_ca.c +++ b/16/exmmtest/16_ca.c @@ -232,8 +232,7 @@ boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm) if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -245,17 +244,21 @@ boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm) jnc good mov errno,ax mov flag,0 - jmp End -good: + jmp End + } +good: + __asm { cmp ax,[WORD PTR length] je done // errno = EINVFMT; // user manager knows this is bad read mov flag,0 - jmp End -done: - mov flag,1 -End: + jmp End + } +done: + __asm { + mov flag,1 } +End: return flag; //}else return 0;//todo: EXPAND!!! } @@ -288,8 +291,7 @@ boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) if(!fat&&!segm) {*/ - __asm - { + __asm { push ds mov bx,[handle] mov cx,[WORD PTR length] @@ -301,17 +303,21 @@ boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) jnc good mov errno,ax mov flag,0 - jmp End -good: + jmp End + } +good: + __asm { cmp ax,[WORD PTR length] je done //errno = ENOMEM; // user manager knows this is bad write mov flag,0 - jmp End -done: - mov flag,1 -End: + jmp End + } +done: + __asm { + mov flag,1 } +End: return flag; //}else return 0; } diff --git a/16/exmmtest/16_head.h b/16/exmmtest/16_head.h index 7e75ce35..9e7bc93a 100644 --- a/16/exmmtest/16_head.h +++ b/16/exmmtest/16_head.h @@ -32,7 +32,7 @@ #ifndef _LIBHEAD_H_ #define _LIBHEAD_H_ -//#include +#include #include #include #include // just for wait @@ -40,9 +40,9 @@ #include #include #include -//#include +//#include #include -//#include +#include #include #include "../../src/lib/types.h" diff --git a/16/exmmtest/16_mm.c b/16/exmmtest/16_mm.c index e05076cf..e4223716 100644 --- a/16/exmmtest/16_mm.c +++ b/16/exmmtest/16_mm.c @@ -52,6 +52,13 @@ Open Watcom port by sparky4 #pragma warn -pro #pragma warn -use +/*#define GETNEWBLOCK {if(!(mmnew=mmfree))Quit("MM_GETNEWBLOCK: No free blocks!")\ + ;mmfree=mmfree->next;} + +//#define GETNEWBLOCK {if(!mmfree)MML_ClearBlock();mmnew=mmfree;mmfree=mmfree->next;} + +#define FREEBLOCK(x) {*x->useptr=NULL;x->next=mmfree;mmfree=x;}*/ + /* ============================================================================= @@ -120,15 +127,15 @@ boolean MML_CheckForEMS(void) // mov emmcfems,1 jmp End + } error: + __asm { // // EMS is bad // mov emmcfems,0 - End: } - End: - error: + End: return(emmcfems); } @@ -188,13 +195,17 @@ byte MML_SetupEMS(mminfo_t *mm) jle getpages mov bx,[freeEMSpages] jmp getpages + } low: + __asm { cmp bx,4 jle getpages // there is only 1,2,3,or 4 pages mov bx,4 // we can't use more than 4 pages + } getpages: + __asm { mov [EMSpagesmapped],bx mov ah,EMS_ALLOCPAGES // allocate up to 64k of EMS int EMS_INT @@ -202,19 +213,21 @@ getpages: jnz error mov [EMShandle],dx jmp End + } error: + __asm { mov err,ah mov errorflag,1 jmp End + } noEMS: End: - } if(errorflag==true) { //err = CPURegs.h.ah; strcpy(str,"MM_SetupEMS: EMS error "); //itoa(err,str2,16); - MM_EMSerr(&str, err); + MM_EMSerr(str, err); printf("%s\n",str); return err; } @@ -243,16 +256,15 @@ void MML_ShutdownEMS(mminfo_t *mm) if(!EMShandle) return; - __asm - { + __asm { mov ah,EMS_FREEPAGES mov dx,[EMShandle] int EMS_INT or ah,ah jz ok mov errorflag,1 - ok: } + ok: if(errorflag==true) printf("MML_ShutdownEMS: Error freeing EMS!\n"); //++++ add something } @@ -279,8 +291,7 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;i<4/*MAPPAGES*/;i++) { - __asm - { + __asm { mov ah,EMS_MAPPAGE mov bx,[i] // logical page mov al,bl // physical page @@ -289,11 +300,13 @@ byte MM_MapEMS(mminfo_t *mm, mminfotype *mmi) or ah,ah jnz error jmp End + } error: + __asm { mov err,ah mov errorflag,1 - End: } + End: if(errorflag==true) { //err = CPURegs.h.ah; @@ -345,8 +358,7 @@ byte MM_MapXEMS(mminfo_t *mm, mminfotype *mmi) for (i=0;inumUMBs = 0; - __asm - { + __asm { mov ax,0x4300 int 0x2f // query status of installed diver cmp al,0x80 je good mov errorflag,1 - good: } + good: if(errorflag==true) return false; else return true; } @@ -423,8 +436,7 @@ void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi) unsigned base,size; getmemory: - __asm - { + __asm { mov ax,0x4310 int 0x2f mov [WORD PTR XMSaddr],bx @@ -444,12 +456,13 @@ getmemory: call [DWORD PTR XMSaddr] // DX holds largest available UMB or ax,ax jz done // another error... - + } gotone: + __asm { mov [base],bx mov [size],dx -done: } +done: printf("base=%u ", base); printf("size=%u\n", size); MML_UseSpace(base,size, mm); mmi->XMSmem += size*16; @@ -476,8 +489,7 @@ void MML_ShutdownXMS(mminfo_t *mm) for (i=0;inumUMBs;i++) { base = mm->UMBbase[i]; - __asm - { + __asm { mov ah,XMS_FREEUMB mov dx,[base] call [DWORD PTR XMSaddr] @@ -672,10 +684,10 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) // // get all available near conventional memory segments // -//---- length=coreleft(); + length=coreleft(); printf(" nearheap making!\n"); - _heapgrow(); - length=_memmax();//(dword)GetFreeSize(); + //_heapgrow(); + //length=_memmax();//(dword)GetFreeSize(); start = (void huge *)(mm->nearheap = malloc(length)); length -= 16-(FP_OFF(start)&15); length -= SAVENEARHEAP; @@ -683,16 +695,16 @@ 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("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); printf(" near heap ok!\n"); // // get all available far conventional memory segments // -//---- length=farcoreleft(); - printf(" farheap making!\n"); - _fheapgrow(); - length=(dword)GetFarFreeSize();//0xffffUL*4UL; + length=farcoreleft(); + //printf(" farheap making!\n"); + //_fheapgrow(); + //length=(dword)GetFarFreeSize();//0xffffUL*4UL; //start = mm->farheap = halloc(length, 1); start = mm->farheap = _fmalloc(length); length -= 16-(FP_OFF(start)&15); @@ -701,7 +713,7 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) segstart = FP_SEG(start)+(FP_OFF(start)+15)/16; MML_UseSpace(segstart,seglength, mm); mmi->farheap = length; - printf("start=%FP segstart=%X seglen=%lu len=%lu\n", start, segstart, seglength, length); + printf("start=%Fp segstart=%x seglen=%l len=%l\n", start, segstart, seglength, length); printf(" far heap ok!\n"); mmi->mainmem = mmi->nearheap + mmi->farheap; @@ -714,9 +726,9 @@ void MM_Startup(mminfo_t *mm, mminfotype *mmi) printf(" EMS1\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! mmi->EMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < _argc;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm(_argv[i],ParmStringsexmm) == 0) goto emsskip; // param NOEMS } 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! @@ -742,9 +754,9 @@ printf(" EMS4\n"); // emsskip: mmi->XMSmem = 0; - for(i = 1;i < __argc;i++) + for(i = 1;i < _argc;i++) { - if(US_CheckParm(__argv[i],ParmStringsexmm) == 0) + if(US_CheckParm(_argv[i],ParmStringsexmm) == 0) goto xmsskip; // param NOXMS } 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! @@ -1545,12 +1557,12 @@ void MM_GetNewBlock(mminfo_t *mm) MML_ClearBlock(mm); mm->mmnew=mm->mmfree; mm->mmfree=mm->mmfree->next; - /*if(!(mm->mmnew=mm->mmfree)) - { - printf("MM_GETNEWBLOCK: No free blocks!"); - return; - } - mm->mmfree=mm->mmfree->next;*/ + //if(!(mm->mmnew=mm->mmfree)) + //{ + //printf("MM_GETNEWBLOCK: No free blocks!"); +// return; + //} + //mm->mmfree=mm->mmfree->next; } void MM_FreeBlock(mmblocktype *x, mminfo_t *mm) @@ -1560,7 +1572,7 @@ void MM_FreeBlock(mmblocktype *x, mminfo_t *mm) mm->mmfree=x; } -void MM_seguin(void) +/*void MM_seguin(void) { __asm { @@ -1577,7 +1589,7 @@ void MM_segude(void) { pop ds } -} +}*/ /* pull data from far and put it into ds var diff --git a/16/exmmtest/16_mm.h b/16/exmmtest/16_mm.h index 6a0b578f..a431bf7d 100644 --- a/16/exmmtest/16_mm.h +++ b/16/exmmtest/16_mm.h @@ -49,7 +49,7 @@ #define EMS_INT 0x67 -//#define EMS_STATUS 0x40 +#define EMS_STATUS 0x40 #define EMS_GETFRAME 0x41 #define EMS_GETPAGES 0x42 #define EMS_ALLOCPAGES 0x43 diff --git a/16/exmmtest/EXMMTEST.DSK b/16/exmmtest/EXMMTEST.DSK index b9eaf2e971e68a44032a1924d3d40368fc678afd..fffb53e9d77ed87823162f07dc38f63be737736b 100644 GIT binary patch literal 1729 zcmWG3ElSE)a8_{6&nro-C{b|B%t=*{VqoMI5@(cRVBkt&*v-Jkz`)SQkiuZWzz2ke zX7SFBdd>`t1Rw)QrH8Ad3$bc_eSs>a8MN6L8Ki(1J7i#RjqvpiaSaXuDrN#Yi;{;RB0v!DT!^EQV?ZPN11gKnw(5 z7~@%iAz=h!Ge}NWOHhK*Oh6^rWjGkl+DE|jFich}5C>_7(au&eQ89*QAO!OakR1>9 zKNCYU(Ar8oULwz2UK*Lp$S@b^*6DcM8%{=lTl5)HHrWYpvdOa>tNUknP&Kx@@moE`N% zAlAuAfgQvEQmK}p1f!W4m>42JVth;{lfN=4Gs0L3I5coDoVAaFSf|V9;p*t3=fPmY zAi==MAT-fYngwiD9Ah}poH$0K$uAgH!6riZAouBVd}TCY06AuIFPo$^(6KP5z-SI2 JJN(lkxel|oCJwh)yt5#a5qFh;ASiH&w)HejNva~Fv`F=BR5(+N=d;j0^e9!ZJfysMj zJ9FmDnKNh3%$ttAZ6G&@$izwr@%zK&T0H3|2Z1AJ3+}F9(Lea&kY0?i7GW=UT>Khg zC&C{T|NqJV*KuIuaWTUkukeinx1}ftJ28x$a<_+cK9d-I;#)qvK*j zt4+!2XI|(he5L*)!rR=4y(#YcB`^DzO2K=QQ@$7Wx-D+BwT!H}pQP_@XllH^a9hg6 zT|b>^*s1(<)&nF>tXgJMMuV*IAH_y(sESJeqVxDGbver;W2^FNbLJDFBDY#sn^Qw9 z6@xw8g!g%}Ev2Gg<21#xJQ9$#@w)dpn$#nA?W5#6G%^Me11(9A3{vjq8p*a^?)Zho zZK@-NCa2Mpi$1?Uo7lGKxXhnf+aK~#XkLAj__Hbz?nNj^n1yf;QFFNhb$=Qw=qUU! zmKEJfCKfk0D@Ph{the*qQZ|^##>}h|C}!(s$|BhP@kSbK6pqn}MS5=J?w|ezL_Q0-UIU62QqCCRdfkcwi)RJ02VPs(BF8VYcOt$HaVz3_f7Ka_XFX!k zf!s65Z9<%6aFt zYPGlTVC6#Xdx2;DXx9FsRXYpfmn~Yqvp~IChc?vDtQJof@*f#pRCEE+I>^HPS|vtw zEaLYdt`VJ#*qwn~O7!K3kEOX54;7-3z=mc*jiKXb3j9^4{8jDh)a1Grb9j?e`j8_& zKC|88xehhVsA2Kk1xRMlJV2eJii*^kR|e?)R}{lZN#7H5A$m13o;6*MO0B4*)nJXP zpGVMcO4b0D2Mx5H$5HSZ6bz8G?DC?b@OGzc@vP!}qQ$co*$Y@U#^)78Dn@CeN4vTa z@kxm5iz5Y*8CEDI0R5@&)(M+Swvygg2nA>>&+2EIVOeWX^vm)lY- zD)v)0cb=I+?SP^gbOKN;gN^};XHXlU1O}Y})N4KQeHdb;$T)*chnKlx`>G9S3T=IG4fVF@cOPM-&x>*!Ysh!4QV7R{JSJe77}@R*Fw8*{wLbSnqkC ze#z8xU^Yc{hIKrXryZSujz4B+{W=$npNrKxjy#KJ3|gEtLMz})@!L<;)tnONtw#4( zzG+hHlUs`QHg}-`J=3FS|NKM3Iw^^D3wq^NO6w(WEy&jBEKu?povgR$I_Sg@b)$1^ zh|a@QO#}vr(tT@pI;Vinjk$pVdiG*E4_Gds(>vcE8Uj8v1g&{V1Uh@vw#$drcIUgC z+2qstBoD-x45liEgZk=;vw)=W1TLM*3+v2u&HAX=$D0y~TYe;oc^*_(g zZnL9MsS;a?4K`)*)dOtG6IlZ=1DRH){kR~5M%;^Y2iV+C zTN}|LtB3?$=1!U+RfQZ^p^o=AN%_M#M zWsc6e;x4kVtdsB*z=UKIUM=e7cAUW~sMt?Pkp$dO6-T?U-R(H0brnVwTgH#61)b0m zP!HOyLo2Y>duVbTDg+C}UvIs1+@!2e%?OXw5iid`^{Ah+y`Kx)Gf3UhM z26H34$t8Fdl9!!x$UN^$i{}<#x)Yexu6CGml@`x@B;3dvc?i%*KmkEa?Vv5cj>G{h z`&~e3p=>N6nL7){QTg##$Epoyzz>V(dzA4Hq4o4)fqD`UQ%F?#VdARsr$7?1AX9qcC8CvSv+Q-ev+YPNQKj|0h^rQ!w_UFM25vP2~agF0(BT{J?b=T z9ScuzHMl_fyHg6aP0Unnvlbe#h?zrridL#yz*FPKsdZmdMO&XE<`P!$53W1$^=Z;1T1b2 zEUkLXt-76m5AXSaSk62bz0?p3MvPs=t8Ps zAq_5|6nhSmy04+WPMz^3`Ig zlv}D!*%VPn*KN05^%^*~bm-FUYPS6_ERIHW040Ki9)qo|wHeaJq2*SiaO42sgbl6Q z+(1j$JdKqhUB;GX-{mdEZRgP*bvuq|RQs!-4cpW?M#!dOKdLy6&<%v6P08<4uv|Ni zDfTw?;U2E0i>NT3SKHoIpgFi)h6g}_xGWbMF&Fp!w`*p8yHb2YQ{QS*52xTg(3Mx` z7v>AzU(eCz>lTQ_c}YvLS+N@whu)Un!ot$+od z>%PFVx&NEt>Ber&y3z-w1%_LpKHDz4lCvG6s~1z6!NFz9@;@=yAn5^Y60kYJZDt~D z2|SG!&o1<0#8pK_zDv9D<^ual(r_6mg3F_=G5`qeJY|OkuWFXWKTfi75bPYC5sq?Zjk;DXA$4<&<}4aB9K)% zbbs$Sp{eVD)$xv=EiW*4+7$=gJ+q0g#k^~XcQHdXc>`n8c7D%=skyWs7>d|)c6?8RzTM9Z?EKKj2361Ca3xE`(NA0hNGcX!jV!$uc zcopchcs!xHYiWYV(5)^E25M39>dn8YU8U9jC{(+YCa_NA>Dg+Ey`v{Yh-NUWVZXtX zq2c*7gr_%62#`1z`Y+Hk#@dL%p*FhhfHj>7DH+tJ zp@UTdQzYDe#HF)%zLC5V2V$vAobY2B)5)SOc|n6f+r)&XtPfjz2x+w*j=q7JP1*ML z1((f}va3#1rqbB4d5H@UYpaUwF4r16s!nL!`3>c+*XnB8i3^+F6MpBdRK-IBKoI3E z_M-(p5#QKpu|$X>5`VdoCjP<_0|QiVKiWtN>g~Van{7Q|FC%^|6G$}=o8D7Y9 zj?O5%*53a#VUJxzm^%3|tjYL8P^2tD z3U*L51zW=#ky3R&CD!7(6Dd<@O2Eec{0OtLBmG&iQ5H`ba_w4qJ)M4-zi=HO@d_j| zv&CO6BLhC>2a%e1K9w2&7SA%IO6OCV;cxM*MCvd7Ll~kpa@Qes4^0h_;y+hZG!7km z3+W$sOE2ou(p!-JauADx4Wd$Lrsj`OsK>UEZkz!c0h*{SwhN{2r=^2F?s~hvkznE5 z(3iaba8ib%%eHqp^>xksf#cp|B*Q=LdW+|P?DY|g=V#e_2#-$L`%gTgbl$J==&SR7 zfyb3P?%C9laf{yj2p$jU zy>2|#=)Di%(X98)vv~ICeO2&V>wUAaVGQ%#jd2U}O|f`B2=f&KTbOTx#bY!0(5Vpy z-;EZ}LW9q4@%+u;%e8pg48EZtD%^J^Mlal#0rrLaE`@>#_oZ4qlF^rB@$@wM;w_$h zqYpCjkkJPPzRF0C3Enqis7_7WC?MTdZLh}WEp87 z50gj8qvSF2IQa|tD_KsSAS=j|JWZY<&yv+-4S5d7(a)2miH|2fnYbqLrNlQ9 z-%b1=u_f`d#GQ$I689(mlz24pWMXF`pQKMRCB-K7O0p)|lKLkNO1e5JCuwxj^+^Ru zj-)%1CM8WzDob)E;fMk!JBl4EZ=T3TQ&S8>sbx59fGg;|`WT|D<-jAQz#~N?Zt6dB zGyfd*5}{6DQ=?@Dd{-f?-Mk8#ncW>#(CY`AnL5CLyLeTxZF~JX?H#~7>Nosxkj-ycVkq-6acpRNk zKUDZ8r!TP7ps&pAeku+d+bug(I8syLW^64`AMaK=Lg)yTt3$L5e$29yU-D(_U>=+zWK_PR7`Ux}J&#UC~CL>O#+6&Zc{Y4;>u3S*`Vr3lcv2gnd z>QIDLcuYMJ3#;{pmf~aB1M$>d19zQJ)gIhyz$J#Qoo0;U{2|fYKWFzt@K^tzVRs^0 z`mfm?)a;AXf_?Y!1hzVLnFTaYTPm!>0DKoKb_TvuX86-_4diU4rKmY-KhvK!CKb^$xlKWaK&4*X%xOqMw`Oj0sE?j+CfZ+R?%tT@%T&Me z!ExC=y&DnlbcKj$NG$Tb=1>8s|AG|c22#|A{LK`kx$0bhbCK!h%ujvscx-^2ndp-zKAAoRaw}ZPN0igdt7lY- zO-jBw{8N`ce5Z3p_&#T8M=M8MN#Q%^8anoN?8a`o?h9l1r-<$8*jKlQ)OCo8cY~D_ zX8JSRckJJ>bH~>^zR5mU5ne53AFq(ok0+kXJ@C`*9nEkM%gPqzn;pK6W;hac0c;bC z@7$^<9mhLbQGk0abEog;+fCzZPn#>v%I;nJcO7WoQ~R-bmoI$RXSH7QW0_664ty3W zuy>cb>#$bfV0g1uVCOFNGo48e|8%~wV^_zHx@N9!2k~7lG*^lXHxYBa_f2u<5B$k` zb(bn^uiuOf#_ts0kxq*rM)A`q{?nj+>ANnfP^g@)KZ-5Mft^1K+iSlfO6#tlb{-MF zulmNo#HS;Oqi9l$rKRC&)|)1idzrGjXO2G4_<KU0ByM4=)y%Pc!>;Cqafu_ zKH+w~OSg2d$7=Rr{i62gILJRe=2pY$(J!o$xqfU3&B4^0v1|Z6rSi^A21+4r`Dp4; zTYl-HS$B;ex&sqHz#O3ooDRASM@D|P!{D~V7h>-MLh9{RyKvHnQ#9xM+Gz`n)=heH zbG=G8qf~tA5AO0637^$}3puJg7@57p#b-A+Z;(i~X?bMj)yke72U{1fh{WOX#~Wiw z$6;mnmc<5>KM<2-Q$Z+Wf_rg-X#}lT@yTj~3G1n$3rAZnd7({j@}Kh%zMwJHiR4+-Zhfa5|*9-L`Xg#W_=-Kue${DQ9z3MmN z(p_NL52F#uN_-*(0y=L*KqCg!UF^9#o9nlzJgMLGrFqeQ0E_mEk6aR)d&w&l_rfE~ ziKDO;9!#v#M+)$D7|ZkZg&X|-K~2YA@7OVBVsq9KDX%O4h%0ma&Ew={i|+QPpMqEF zZht{x;AVq^u9{fV4|5t4uIA{n5AXKtZY#RIS?;8uyQWjA>1?TzZLdMwM-S`kj0#{~ z@U!}&-=}(i5ZqO5w%3sJBMN7J>drp~Q^87>|=T_)yj zGiGg(pe22=Xi*$j5MNl|x&jWgGX>+-%(L-OE$!huan^K#c>T0JAY4|n5&9y_KX}wA zcd-ccR^l{gDLq&;UZ*ykTR-%bc-?L4L+2=NkVMdfv&-@~rk`H?1rTQMSimbg;C%IfTT5?^?8{IcTr$B%=8NrN(h1^P1KoM9e40V;z}hi|<{#{JDJ zBN#1cSC4ClxUCbuvnERYvC~#Ne1MA^lfI)yz>NtSbB5R3PeQ6=Z?Y|s=(QcFeXT)% z{xP+&Q|W-{B$U`f=-|vW@3w)e++~`GL1fYy;Ysnc|-P|1?@=6#a)^81Jye^>+NS%Y%(3kK;|XsThsU2 z>cwFLocdu_r#LL#rL(=J4(=Rt!{V(6btvDz^T26<(dm0^uLb9!peA=7Xbaz06Q+EI zHo{QEJGK)%geYm;4-awQrwj1jQ$YIJj|ldoHn)UA5Hnp~o~>2FL4v7MscLJm>(Tl3 zebtR;>CAU^)Ycp+m@lY}XLWTohar?yrwKS<)s`+J+1GD#KXdx_emUtkq`T7}N&jp5 z>3$!kuS#E?{(QQn|7ZQn`Zx5C%(#L5^Y#0+A5_@tXUtHE4)OYq!v$;Bm~Rs{VHvw# z*n|lczt()`CNZ$uI0{#*@UjA+k-Ah1NBXga=e%NyP7nlEhxr*@f<=#oY-=RVw_0xAfE)jNifTKt7pd)xbQWzh`|cgaV@e6Go&_G#YnypkFHBn7V$#*f zZP3Zv%oBY3hUL1xdE49=z0F*E*6bYNiH;hyZ=2aeqTjaChgPXyt!Xj#I@|_=O1>l@ z($Gd1sB`>=rU_^;=RuO-_!)Pw6&{I!P`EU`UhUV;Im0#k1n zpIc={sq6hqY|og7%B#%I*wsiO>eYTEXZn#%b82%|nT4tt`pB&`(uXc&wLJGM%g%L* z>wEgbwH?{&2T51cb5FAjozse=(2a+2anj;>(OjTD*9F-zs-MtD(DZq3wN@4hWIYTy z;#s@a+$ygz6SAH>_k{Vma^S>s>N1vEmJjk>y>xd*wv5cUHF}b=-D94q`@MhO_|u10zk)B3~Jcd40`g3NvO-@?}R?b^>W#^e15nsGb)EzShI zK?GjA(MSW{&2WnA7DBmkVq+zDmt3j?I-UFDPTtpV;h zi=`NPX{%yH$EG&FE1T{mb{#MrV4?%QSpi@Gb~>Y#y$ySZps~s%C0-`kyIgIm&F@QA zKj`xHQmg#FIMCxWSD#SRx)h6^k%A6{_&h#C$yznYf$wJqIn+w{op4jx#oykX+^|Wu zj91Ww&g(xCiP8a^<@h?ZICyDOZbQ@3-MJ0BGySkAwk|wP%vHh$V&3sD`tSHUx+$(Q zFKv>DnHHpv-M(F{N%h=0$}GyljBHF5=V;}uaH^qI`86GvV6z~Tlvi>Al}2ocb_qLz zLX9_m+?ZoN2@gF{j;n7|Ov=}6G_>Nv?(uZ$oW*54tqI0spUfCcFT&y6A;4cq#Hv9V zYo8ee_r*}kcV|w3;W>=qR|gpm%nEKIW`9y)s@5sH&>DC<3cDY*rOOwG&1EjUWTGz| za*#?10=GlFMY~u#WqW$o{iJToHE+thj%H`=H@l)WpV``FkVb_-;rm7-??)y6Q36jo zUT(|Y1Y74At>*CKOML}?Ph~sZd4(%mP*h#J-|X9nSJH${cw?+pei+&zvk5)`W?(2L zH{O+73`2x2=Bo483aerQYRkjHq>^8&BLd6*ZGNUPVf$dy7w{P9*DS-;P23k;aa52M zDu#kxjB&_yXCmiCE|4&j~oo}38 z`&AFMRc}HA3c9Xc{tKMPY=`c4zNC4w&ma6SCoMbjrtDdRE|^f)q7e1zKwH#KsxZ^* z>7C{(eO+0nncmo~o7&k1OW&`#>nOh3oC7c{3|nM8Rv$Fu9S5S@mV(9Aq2=h*Z~bt% z7}T%uz-3wv#~Z~|VQJaSK8&EXIl9Ch#DW%J7Z2xHjfjCRgn8t}@inmA~8J(r>Xo_j_1@?;(bdUh1S+ zbN>XZWwS%yIJzE=e(GZ}QdgvrITS@@lTW5D$=N>#8O2snsWE(8$_mX6!~qfdsMNsc zA<~W(s!<@wna0{R(T>_hxK)Jh%f+VZMQKZv%D=vs&=Z9W)QuFr=?q~Z! zkzW1jBo$cpuHfK0yNowAaHFI*igX3aT?N-*{kJfNQ9MlboTP|pa};{Kw~X* zS$)Qn<~OZATwleVwMd*;@gs3nvZgIiV&Re1BtSC^_JJHD8#mi+Ty2fWA*nalWjA)& z4PAD9mtC%{G08|&V9OiWEgd8Kmf1IML%{8T^jth>hT4hu4~%d%-Q`D$R;YUgR_0gu z0Yhc9T#87&#(!Z&4f}Z{s)-`^F4ss2Hp!Z~4y}cV3DPpVJ1yObKM$*=e?ZIIT|rv3 z!U5#od;Rq}*gQ=&LATYH8S3+m^;L4cL$5w~oK6Y66ha=B51SvBk02a1!-88j+?~~C zcIO;3cQ#m?^rEuV6FJjasySP}Avyaj%W(pX!VhQ-|H*($x-2b@8u_32$%q zUe;11Y{j|^qAiEaqlA6JKIMdRB;8kWNcq8?@uPWZylOre<*p)29emwpF$*4o{b!s% z)0Z`|O7X0!g8nM#uRrT3!V&YDL*}*jkTt4#Z8=%OlvNzce4ScJk!ba5z4s z_v_fj48gmS`MGgcktF+lJ8(eU4AyBUM z_I@MI0TcrA-aGx&LJKUV9&RMYCG*qFofw-w;|e_dNG-yS-@9%r zs)+QEk;ubA1vQ%JG00axtUPZPIdGPyWG#r8Q(+(8{=c@3&)&BI`dMR^ifbJD_)Z52PNx*2|6xo+Fg>P3jy-aGILft=dvClPa$Y%xZeOCxCCzxytZ{i70&s1mxy#4L5igu{3{)~&=M%2O-!K!Fd z*LLEv$qTfWCcX|cJ#d2_Wd~w7x(^N;9W*vu5-`YgunN{Jk7S2HIQF?Mdwa!qp%OA9 z6h~ZC9?lDb`Zt_NX*Z!K-ehi8x zyP-|zJFbr21d)#%q5SH@-3-hC-O9{O>6?^KwD}B%r3 z3@*;Dd^`qPpp)0;Af*3~fm+7?dZCw6Ii<)R53@OlP@ciBM*1Kmj(=yeQ+8ylbC#MHy83^?y7 zQcWUmqg6B}(~5dpQNaC0S_0I}6L4RV6@{C3cLzPm(>o`gzs-Y*9zYbOA)>c<*eM!y zP!wZqv;jNcp!Yz4#t7O}aI1A?_g8fTEV`jO13oM9N5bW!e`A& zQ0I8#u+8)&I2lL5So?PDKYwVP{%QJ7>Xi$eh0_Z$*r34dG<0ksO)h;vy|gg~Gv2(4 zmkVXs+{ovgHEB7UB9+#cYdM#Wj=JjFkDa97l~$M263Ih};t*af+3!6^I$CkXo9aJ$ z7EHHtMj#NK!*SwJ;QO{?OB-=wb4OdC^9*|k9I)Y(Y7;3`=bb9@1>Vu4d$WF8UX}L+ zZ0xo1dLGUSnbw$h7it%(6OQ3Nn7#95G?}vSAH<5LYMm*4{UpMQJvmkikXi^E0uth* z9fhm5Q2n_JCmwjkt~cvh4@OcHEg6{T>YE)XAMT%bISL4vQN&EQ`^wh~5BN`oZy%@C z*1AZz+n|!a-*M3W#0u~yv}j->wVuPle8-R*ETBW!Pm@p@xlIZ}Nzwf4nEFK&#YkXi%^3$5|(EW@*62dti#waWZ ziLyu&8M^a!;+DBg59sH^T)?S3eG#wPh@S;8*2g=e@OwNUz$JORIqYO?1 zeMG>p8O&*Nul^0MuR z_t4o-b-sSQTB6~4j~0QY(6QU*{;x^<8|>o?NLz(hyy*(3Mh8i&C*DbZ?}N}a_$?dQ zQ{7Zd&+aNl%Pmk}{|*Dqu)6xvI+~L1MPJ;H?zt63a9NucYB`(^I1KtDuTC%#$-Sr6Wfpla^>V8x1srupJXG~6jYgi#Fe1p zUGYzJH*iHDSf@ZufQwxZSAyV8<-C=CHu`jx6I$o>p^dqW5DQy6>^`^7hy5?pA#+&M z5TlX)ZU}?#@e0~Y-x?Mw0^9;4&W?j^{#SIiefxWK&ZhQDcB^x~_a9xpITRNYzne9? z)UTUwg~){_L6Flu*i4|eF?{hCjX{CB0$WHn1cLXzE^Pqb_Vw=8A#LUR8>h7_cyEE# z(bdgCK!@6>R6#HOcrbkyfXn zlQr;Y$M)+cvWdCyNCPg>z#W;5pC7|-h|&84tM+&=;n0~}yntOPVb1l$FPrT+7_d~L z&a06^wR|rIJd~O1iV4~Qa-r&l8rI{j51OrA*8(d+n|9Y6_~FgSKv=pE4+fT3q z;nTwmRDpKdw&)^Y_5rH5pSCU00baJK0?yga%zf$G>-LfGee*_QUvQ?DR19S~Rh^kT z)7x;B&=HUIZWe7D9;7YKXl6N4*YiziG968hqUDz|8yG+LL+=jX=f4nzvL(E!D%Anc zM+I&Qsn!rO6OcLI1|DHk`WAZluiaat)(I>ojYSwS8TTa$d?}X3T+NOOSR|1JtkA-T zVe#Rx6|38z-FG&7=X9YuwMH`AgJymgCglxCMHU)q-~>@EKWNF|(v>igi?ax^;kcRQc?=6*HzycUrF) zGUN(tFmp_qb7lq^J)>&Ilu~PHMMZfqB{QwFE6S%;l+3a^ODks0C@XQ! zC@+h^&q@5dpQ@+}O3tLeAv3FFM%ks84ex88Z6LPF(rGRYoHS$FB-hlbr4_@&w5*F0 zGBPg5|0yNTlFRQYpHVq|Momq|?8$S;d3<4&&XNkJb?jIJ2@9K2URIid7S3n?XU&C$ z%`7jOVjxpWD(2m@W^vq4LUD8t;6xriHPmzU#laYt04<)-i;H-Pj@+|lvkH&`E;PIQ!7eKXOvB& zr9lV~j4kNIDhVPWXd z75{-aUm(nX7GanN{Rfy?h0On;!k@K%K_0_=<^LYc6PVb9g;BOrQDVZ*1}78)htFrB zd@ur8%PVyjI4g!)Z*n=UE)QsL;KEjStrePmR3^v zw4)VPi3t~`ozptC+*LM3lU|5_0VZhaQ0v9nfyr?rlgQs>8tBxSUS2(xkucP%JvC{y zmRC$Et*}mZRaCfUJ46puy1y0nRV>g(YKB*KrxUwa8BRZ)=T?N?mPK1Xd-P^ z26C;FD@seykqiTY9MEN|mn|~MRXNw1 zkzuVUbym!^&IAi8P_L?F=8P%U=~yLamJ$e3>C_oz(B8pXD1EQ1v=Z!s3|dQO&z?DB zGFt_qbghur(m>V9^9&@62J4J6Yh_7QDZ~djumGSa6>^}U3U_ijD4yd40hL(vW=x(@ zTILMQ04w7=t3MYF&-#-xp+O_}l~zE_(g8b9F)C`kn^`^$RAVtmzO~FXYZBzSv}`iw z4R}yGB~)(q^tqLPT96_b5bQ#T$xzi!%vRc2@Vvx2qY~_!Ig@DJ|4pB*Qz2<+^^ds{ zEOCA~DqWL;Bhqb<&xZCuGv}qGzZGSzC03dN zfuO_ToDRavT@{l{!M15Mae7Imby6v2Q+ZWsMRmmtr?a$-VC9+SoK7nQ3S&^GU{C`V zQLt|5oXOCEmDcmc14v6|V%?*2&gv|;md-${6@P#!Aczo;Do6wf!mv>bu5`|9Jb(bR z1zIxDVkM(;X31<)K6Pqksnc2w+z`AA20Ta=U7u+ex@Te#Sg!*V2a8@|9XpZ)x=LH` z-d9ZJQ0vp_m{&pv1ZDvvl`@W!6rl9?IYtM}8X8|xIlFZ7jHxrwzml13CSyz?XRIO2 zfeJc{MvonFK2AG(;W&fG|3T$SrqIFSnV8kV(INkSDr=HI1%=AprZ6sn8}gts96%)*Aez&`&UO z{>kND_~ApJKzc0uh`;mE3M8ANtULgoM${qTN0+?yni}tCih9 zy^x0fcTXZ2NE?OiY4^`aq>Y5@rTfQ$wEzG4cR3JCxVw1#6Ib)A|BE`gem_dY@VqF= zkh0h~DaI5pMe&x)`d>;v>>){)_2^;h{)z0L#`llxhXOH)Njxt_@;xr?7t=3LB+Zm` zX^*tNF_)5C#uku_K7Ak|#C&NP*6Yg%iH+rAWgq{nsDZfGHj~^QTa2Sc3PRx+RT=YJq{-rhzmf(S??11D>&(8k1i0bd^Aci>j{g&&Sw!V;vQnvjCJ zL86H1ogfLX*O2iPAv~~TDg|(_f=r_TetneuodRJ9RTKx^k}4DkM_5JyBe{w^3?KnV zMWhy36HH_Q*-U{*QbRri`UEpNV+4BqT-!Xdjsnr-ev*%N5@N`GglDQ-u4JO2q zIi#2Z@z^<;&|pFjQiUrK01}9cybINp(33bxb|ipapn%|diIhkx$uDqRB_xpw@@X`H z-sE1gECzsu%qEUl0Li4BY>NY6C1qrL4*)4-7BTh&kVhp5pJPC z4#Fe~T!Tv0%%Q;OAaE^!`836jP)mWlAaEUkhiJ+ege4TX zJ_y_Zgh@8UZbV3?z}O&=kF4P|5|DB3wnq>OKS~1@1?u{S=r-3dv1Z1DKC6odPvM zU;%)KXi9AmSO{P(O?d#}GzIDqZldD(AbwkE4h0@UsHeapgiENvE=I_qz!HQx+4yoJ zG*X}*A)Sh_g77Yt+@%ORDXKYqz&>Q1p}@BQIw|l^bT~E&z;~E5@f7$TJx`#(elVsN1^xwoBvIf1*kGZ+L14C0 z;1GaR3j6?seJG%k1h&Q-yvP!fYVct_mjQ@JNKex42Wx&Ny~r5~93_dQlLEhxB(e(K z<=aSavYrB=>LG;3kVQZ8aneTvPM{V`ISGUeXeSm8=wMBv@F_+FfYXH6vd%Dz1Sw~k zp#h+i*&qPU1#5K$3;Tm9guXn7kIV%Do-=4EhXeHJekFr3!@-0!ZV16o(hxqCyPAAU z|Cm@C)<(t+GitTbtVjUIC}09`f&vi$7=MfaPSKPo0E|(6fRHh&FQ>=fI760=yB5C| z2_S?y1kff}VOook5z6`n>!%)68$v0UaH7^0EzH`YO`M~cDIQkc#$87yT+mhsPYC!E zgduvm5kKaS5QgylJH%fa?CE7eQbW~$OIWB3?J^U{P+g9#+S3pj7qLHuBmoGFS3ou>#~6Qp+piFw5Mbl3C%F`1HV2E9 z0>grshX*m|K-)E3vD7NSbY=_vR;f1 zHgPR?Q*cag(zqHz7y@Xcj0}5FAVXOp;7`i@R^~&sLRnN@uwlyM@-@zffKV2#MVVl@ z4r9tjCj^ADLYOZA80InPDXSF%Xc?AujBR3|@Q)K}l>s=x_8b6CvTY53cD4rs@ZVc* z{$!Q8k)zfWFo%|#(Av~(-O&is-M}p&QxdU9`xQ3q=XANbo?A?|Q(ywdly$HO0GlA8 zl-sy^E$enp(X#GnQbuJO({jkQd^@;z#+xP|l( zZY2YR3FI1~h>R2_ksF1{WRidbU7?iJ3gzSxVK#YEs37kPPSPaIC7Xo%$mhcS?s8B~v3lEZTaS@3V-NYu=lgmVfTq!OiIbs7DBR)*Vi;t2!#mC4!;^X9g zu^1k~QnE;#O57s;#;7=*G>CVTN5p%`W8y6GSFwydA&1oS9dQYH4{iQkTuMF`pMazBDe}4aG}$4pCSQwd z$szH1@}szpsN##{u=p}LBECY7im#G3@ilTx{2MtTzD_#CH^^!6O>$Ozi<}eRCVsJz zaMC+OklrIQZr1Ci4a6XABu43dVv_z&qNEQ?VWv-B%zl{(>1?IJrQ zKlxhXxcw5({V0i?DoNa7N#=f*blfkJp8Hh_E%SuC|kK0Ih9M0`*5l9 zCER85rChpv8J8jV;|9vnxHa;%+&cL#?lpN5_oh6BdtWZ)Hp|nvt@7R64*4E#mpqgETAs!2 zmdm((ayj=;c{caGd@uJe*~J}{tGFNKxtvd)&;2Sd;CNjv7p<$~(sYZsD|CywYjsPw z>vhYyeBBD}7Trp&NVkfcq=@0(5>d~(XHiX>z?Q4>DF-zb#HMG;SCT) zw}ETWZR8%&z0dtc_W`#;_aXPBu8DhE_c6Cdw~1S;YvI=EHghlOTDezrpK!0~KIPWy zwsLRj{=qfszTn=|?c_GQ#%^iljX`e^hk8=7)z}%a0GU^QB>V{Jmjg_{y-c{F1Pn_~l^*{F<!^)4ZsBJeTloi!pYV$DQ+}0kEC0IjGrrmQIsc_`8-K$11>a@d z!CNA}=2IfR;nO2_^H)Xe;YUa8A8@*_>>_?t~#{Ou+` zUuu$tYLi}g)D$MHH}w$SHT4uWn0g7#rX*prskiXG$s(LKB@1zpR$)kFhL9b3r7$Wo zODK#SEKG{LTBwd3A}ou{7M_Y6A*_xZDYQh67B)xb3A-b&6MT_l1kQZD5N^Ivh%k>8 ztmb?n%Y2hC#(cAIgL$0bFpn2zm?sF8<~xKX=E=fJ^AzC~bE&Y&JXP3jo*}fE?-sbI zdxV&%X+m<;EMZ_&nQ(oSQy3fNLZ}udN6it+qvi<ejghF zJQe+_@O1Rwgtwz#7dA(~FMJyPk?=)yvv44~Md*y)B6LN6A|%FqD)fulD%fK_7m8!H z3DaY?3wOut6lTTj67GxnQgFu{5SGRKC_El>Sa>1ECp5+UENqJTMfg6ZO*k6!t6+#d zE~Lhu5ckoI3qS)oELk!=#ITo{7dXr z;=0(Y#g}4-i*Lu~h%K?#h+oI%ia*7U6x(926OYGUFP@FPL6qWd6isnAi7{~n;$?9+ ziy3j_#LT#{;?;4th}Xn9#G<%DabjGNI3w;(@xHiXaZ%g=@rk$+@wvFk;@{(@h|O_# zi>+~U#BFhl#INF(h-zHDcr0$IcrtF8cqZ;q{9xc?VnqC3#OV0HigEGFMQi*MVp{x@ z;^6pI;?42Th_}Q)D^|v@7VF|)6(5iPNPIiKN&F!GWAPvHo5Y{uo5j=dEux{vX0dON zE#lxFt>Se(J`oFhd@9cBu@%3N@R|5Xj~(J`JsuW6=<%iaNsm3^XFYxtxA$lhzv=O- z_;ZhA;>jNEVrP%jqMUF>j85njlM?)5dIBd6N)V)R38GY-pp&L1oD-`P4AO!GqogE6 zNXru~%B^lCzk^kzb=^iDz?LV~nEp_gD&jP8T=PlCHJ#UrX?&*+PdKOAQ_Z%m6 z^}JmQ?{$Y1(`&laqu1S1uU<2ylwPx>QN7BfTYHsD(|X-2&FxhoJ<+RDdJVr~wyBp( z+TE*4I@+sR5)g-lM?HtDT&LZyAvOg@JAG+#}k)JPbRLE)+DZyUP^pc zdL!{U>D|P2(g%qzNiB)5N}naZF6~TwQ`(c*DD6*tPx>iwqjWU!1Lx;p7!Qclt#X>`(0()CG)rGliN zB}Y=5bVt&0X;M2!;T=Hfz9ddok|N}^-jTAcw^<(8J6aypJ667`cbq)B zcf5R4?;i4u-WGXLZ>zkdcdD%PPLrSP-A8__cVBsPZ!69P)5x~oeaSbyZRAMrO9)Q> zaYUFwOqMH1jAbB+vt*J>Emx9(mMoHO8A?W3h7pHlIGJF%hD^3xO-e1J$UT;k_``13 zk|h>9e!(k`EVqoo>EaD!t>s3t&N7y~VHrm@SZ*PoS{&pHOCkBjGJzbxpL#!Jxsx2T zOe7~Qcad|JNhBtE2D`d6xRkGgt8hPJ}KM!qvoqS<^gY2@tg=5oq$#>TG$S?S%I4NZV ziBH)`(o^0inJJrblKMHxP5F$BO8EzIq--a*r|cvTrR*Y)rhG|OrhG-7PWgtsoU)s| zo3e*&O4&=kNcku6r+i1m)b%)geTx`V-zM>?jpWkQcX0;mAp=r3kgHPn;u!V_8J_wx z$w@s*Mx_2iMyIxsywqRG^{L0mjj6{;e(DKwQ|d`_b80)eCAEVTrJg0Xr*@L!)Gl&Y zs-Kjm3f#0*nVXra=k867<6NniaQCNP%FRo?j9ZY}k9#0BoqH&?Ker@x09T)y!7WX_ zoLiPUkb5}w3huGgLEICmS=`Fh!Q86UA>1>m*vO^kaO+Y>aId6};@(It;NDJka2rz# zxvx@-xIL-2afedx;Ka0vTzJ}DoH?z8i%To#dZoFzl(Z^tSlS#eH*GF=L)v}ZjI?>2 zJ8c2?NLnrT*R+M)lW8lsXVaeMUPybEdn;`X_ioyATvOUwZg<-A+`+VU+_|(DIenkr zVniRSXzr6D_Udz^*uT&1Vn&~0@rpiE#36lt#IA*Y9_D}LRBRMVXV~hL8~ZT=WxjApJ9G#Q$jR+N0YnuKdXU9^!j8V zkS5p(Nyz5u$aWIq7k)ubck?03QX*noiX_JgQ zA!XSVD1>C&U6w5zPTTDkD6q6V_jhOJQyg2%9^GAqGOp7M|)}^-{SZi}P2I0wC z4f1ftR^exc;b8BfZS%-L*CTj;PV8{8RFD~LWWa<<$-c`K4?1o0D5?EnKF;L`8f#ns=}Csa||~>2N9*FP$mu3;67st4~ z63kmX#`D9=)o^_QCgL)hN6=oI?U#>^Ar;^&q zO+K+-F{@vA8b!a)Jk>6z?e8+#-}$n?i)4S7Q9b*}^rGJ7(ymKNaw{D%>}4;>Mg9(% zzg3pE^ehwoJ*^$Be)r3AWnXQdlAYRRK1G)6FY#iWmQ2!9DS0cNoNkSmL*}#eS+SLV zy4ccd#iz^n*Ot$h?G@`8jmxQiYVq@FUB=XKbtzr&*G%HCE%6v~hCAY@U(leR2+FL2wg?)hN z5B_u?pFdWYo}-D+8}QHm!aVXr`CMhCz5`PK4<&Ee;YZR=V^aPI@t7~Km}Cdpuadu8 z{j>UeIzPHs>iKdk#{20~J%WFB68~I@Kh=*;)@S(vHnH#zg#wiVjRGCPAxy_`L>mUW z!iL^CD40TlVv7Je*oO6x-WOr?_6VbQNf^CZf(@#rA!&!Tn#;20tJh93&e&NH#!F zOMxH3UmTeS$QsD^HLOvft`-p-f(5VyS7Q@7r|gEZ-DRJaIm>IypC~_6{&abV(yLso z{GD=zvQ4>G*{OV6xn8+Zxmo$HvRm1s>{aem?pFRuIiTF9+^-x|9#9@qeysdN`4{CW z<*@Q^%3I3Y%5Rk4DZf|#puDU6QTagmNcpq!iSn89g<@07RZX?44z*IPR$Z!Btx^5z z8EQz4sxkE}b(%U|ouM|Wv(-83JaxXhKwYdZRpaUk^+L5<-LC$sHgO`dPZNb z=k$&GCjD}Ki++{9UEif&uivPDNB>9tHhr&tmwu1FU%yYkUq7fnr2j~NME{BYxZYqt z+dkbs%RblMW?x}nW$&_g+gIDy*faJ!>`&N#VSm+r!v4Db4g1^nkL{n?%PJOC6e@O9 zTwifx#jO=~N43N22szGiobTvxbUW5K(vBQ(iMBX!#P0aH<9){mj*lHHtJYVIR%NTk zs;;g2b5&LKdDTtTv#KwszNmV<`l0Gas~@X=ruuL-bNZYO&iT#-&bV`*bHDRh=V9j& z=L^o4oX4CeobNlUrmn&t$J#M<&(wFPhFy)W4%a2Fr0Xiz&8`EkdtDE@9&^3n`mO67 z*N3i|?%D1Rcb9wEy~TZ%d#C#*_g?p5_w()--M@B!c<=K*?0wh!zV{Qa$9I8mi7(^3 z+;@|2x9@J>Grl9fqrPLlvYM(Ica5(mQWL9bteI6aucoi&V9f(H57#_d^JMMMYG0^* zsrGp7hqa&9YX0f|x&B4|CH@xwDu0K+$Dj6Z@Q?ei^l$g?^55#e-M`QO1OGq!f9!w5 z|6Bhb{kDJ}s0_FR(*tH8703rJ4{Qxw6WANLFYs{S*}$Iyp9iMYdFpEG>gu9(o9lMe z?XDZFAF98sK3l)3ep~(a`W^Luy}!+R`59Z!*mXuMcvi46I4d|O*b?jtUK`vI+!Z_= zJQ6$_JQh42{C)6);Qs|b36_PlP<6-?@`VDSX`#l@f>1m(5K4wpp-gCfXe_ijv?FwD z==RV(p~pfmhK`4R9eOMDS*RlH3P-~;!smsX!k2_E4G)Dg;SFIN#)Y?pZwT)W-yOa` z{8aeo;g`a%hF=T65q>NDQCN*kiMS)vB8ww!k&7a|k>SXu$hOFhk=rA8MD|6FL|%-% z5;+lhJu*8wFSusdyLzSJB)jb{l@*qgT}+gADnXTukMlC@IkL zHZ$GBW@cg#SBzQ9@}92#?xjfV=;&%`ZD%H3cW2<*%{ZxP%jR*LRtNxHz>zy7cM__D z1QM3RA_<2>u^SIWZM1y%FN+=y%b1$K%P$xMWg1`#li~wpt zKblvp?2PwtnFL}GnI-Ik#SqGZpkW5w=NEJdUxBk0hyiCN-u&l+(#3zy^`z*^HYb;5 zM+Un_TM4{`^JrRUYMcW)aGshax$#5>Wt!zp+;)sKZfs9TM^WMkZsE(>68T9vg+OGc z8>e)enwkB*VkEm0dGs>gY<2;Np@nX#axOlcEu>DeZHatODlx>9Kwpg8<!s86~Y)2s+L7mX!lbnF!k?2WdYSLm&tlApt(VltIp85mI)+iik>a9toGU_pX3? z5g|bkl+fQJQbbHig6cH8n_GAtA{HT}z5UCmW)X{!q|5N^iICEWGtHG$)T;Lao{2IcV%t`7Db%VqGy7qi1z zfR-?GY?N*&BJV(V&&tleR;p^CyN^dbD2rLAm`mnR9j-&ChEr*bnHlfy@9Ttw--1k2 z31Bg00n7w4*_Z@e!6=Qbd6F{InS6mn=5Rv9dAfJc%rsmYVInUG0ARo&xWFO-(NL0= zXmc=6jV|yArB5~vPLy1Sq)tviw-uY6W1}*$M1be87G`ct5}9nWh`Dn8;5zET2pU<+ zz}5D&Hn+zI`cOe{yr;Fbb7dFEf#&v=EzNzcm#h}@u69hGu=SvH?r{Jpq&C5Zf{-x{ zVRGF_77rMnf&!Xq#c9c>)5Bv0bcUV*0eJwLM6d{QcXhXRwsnJ8-r7fTnqXBBS;GQ| z1@eb$jH(IjblX`lnD{gG*EGya0GO9BfzlG z=VCsYfZZr2pFxavBcn;s6x2f*TkIyQtL7%zS=h0;w{B3!NmFm4|14)N&sdIPB8}j zq6~f*Uz&!-i5*R6%_0b{fe)Av3X+f}@@z1hrCk>*42=VVi4{ahNKi~jxPbG>K9otP zp>jM4<09sDA;#jFLX^&7IV^IBGDHMWL=HvxL_8MoLmgiV85q^0l|zX5oIWxlruvbQ(bPD)fK`fN3;?!4ZIoCwtb~nIU_ezOdyW#`P}5xO z?l7J_W+~_(ND#!yG$G0H4yDOYK|vwD)aORS$f6dQLe83?L~YQSPq6GT06Z{6skI}F zuSax|pO>MEc}_CpD9~{Tkq73-+)q$?sCsmWXQpC;!2Si92y#ZkhcG->30j1b>o((O z69a}F%tbXOvFzphlJ4qDkD-}DK$U;qTmu?zt;OvLx1EZ0tJcdm^u<=l(lsKQCJX}(Bt3?&oJOJhMzWjWeu w7FZJhb5vuzS=1MAX40GZ@R8lgBz$;_gzLpdX--=QpXS71rr3z*wAjS{A9{YRRsaA1 literal 0 HcmV?d00001 diff --git a/16/exmmtest/EXMMTEST.MAP b/16/exmmtest/EXMMTEST.MAP index f2305ba2..3327d1b9 100644 --- a/16/exmmtest/EXMMTEST.MAP +++ b/16/exmmtest/EXMMTEST.MAP @@ -1,2 +1,698 @@ -Fatal: Unable to open file '16_MM.OBJ' + + Start Stop Length Name Class + + 00000H 04F29H 04F2AH _TEXT CODE + 04F30H 04F30H 00000H _FARDATA FAR_DATA + 04F30H 04F30H 00000H _FARBSS FAR_BSS + 04F30H 04F30H 00000H _OVERLAY_ OVRINFO + 04F30H 04F30H 00000H _1STUB_ STUBSEG + 04F30H 06029H 010FAH _DATA DATA + 0602AH 0602BH 00002H _CVTSEG DATA + 0602CH 06031H 00006H _SCNSEG DATA + 06032H 06032H 00000H _CONST CONST + 06032H 06043H 00012H _INIT_ INITDATA + 06044H 06044H 00000H _INITEND_ INITDATA + 06044H 06044H 00000H _EXIT_ EXITDATA + 06044H 06044H 00000H _EXITEND_ EXITDATA + 06044H 060A5H 00062H _BSS BSS + 060A6H 060A6H 00000H _BSSEND BSSEND + 060B0H 0612FH 00080H _STACK STACK + + +Detailed map of segments + + 0000:0000 028F C=CODE S=_TEXT G=(none) M=c0.ASM ACBP=28 + 0000:028F 01F1 C=CODE S=_TEXT G=(none) M=EXMMTEST.C ACBP=28 + 0000:0480 1947 C=CODE S=_TEXT G=(none) M=16_MM.C ACBP=28 + 0000:1DC7 0442 C=CODE S=_TEXT G=(none) M=16_HEAD.C ACBP=28 + 0000:2209 0232 C=CODE S=_TEXT G=(none) M=16_CA.C ACBP=28 + 0000:243B 0024 C=CODE S=_TEXT G=(none) M=ATEXIT ACBP=28 + 0000:245F 0049 C=CODE S=_TEXT G=(none) M=CLOCK ACBP=28 + 0000:24A8 0000 C=CODE S=_TEXT G=(none) M=CTYPE ACBP=28 + 0000:24A8 003D C=CODE S=_TEXT G=(none) M=DOSFATTR ACBP=28 + 0000:24E5 0089 C=CODE S=_TEXT G=(none) M=EXIT ACBP=28 + 0000:256E 0000 C=CODE S=_TEXT G=(none) M=FILES ACBP=28 + 0000:256E 0000 C=CODE S=_TEXT G=(none) M=FILES2 ACBP=28 + 0000:256E 0000 C=CODE S=_TEXT G=(none) M=FMODE ACBP=28 + 0000:256E 00AE C=CODE S=_TEXT G=(none) M=H_LDIV ACBP=28 + 0000:261C 0021 C=CODE S=_TEXT G=(none) M=H_LLSH ACBP=28 + 0000:263D 0021 C=CODE S=_TEXT G=(none) M=H_LURSH ACBP=28 + 0000:265E 0060 C=CODE S=_TEXT G=(none) M=H_PADD ACBP=28 + 0000:26BE 0028 C=CODE S=_TEXT G=(none) M=H_PSBP ACBP=28 + 0000:26E6 004B C=CODE S=_TEXT G=(none) M=IOERROR ACBP=28 + 0000:2731 0011 C=CODE S=_TEXT G=(none) M=ISATTY ACBP=28 + 0000:2742 00A2 C=CODE S=_TEXT G=(none) M=LONGTOA ACBP=28 + 0000:27E4 0029 C=CODE S=_TEXT G=(none) M=LSEEK ACBP=28 + 0000:280D 00B0 C=CODE S=_TEXT G=(none) M=MKNAME ACBP=28 + 0000:28BD 0021 C=CODE S=_TEXT G=(none) M=N_PCMP ACBP=28 + 0000:28DE 00B2 C=CODE S=_TEXT G=(none) M=SETUPIO ACBP=28 + 0000:2990 0000 C=CODE S=_TEXT G=(none) M=STKLEN ACBP=28 + 0000:2990 002C C=CODE S=_TEXT G=(none) M=TOLOWER ACBP=28 + 0000:29BC 0018 C=CODE S=_TEXT G=(none) M=UNLINK ACBP=28 + 0000:29D4 04DB C=CODE S=_TEXT G=(none) M=VPRINTER ACBP=28 + 0000:2EAF 009F C=CODE S=_TEXT G=(none) M=VRAM ACBP=28 + 0000:2F4E 0000 C=CODE S=_TEXT G=(none) M=WSCROLL ACBP=28 + 0000:2F4E 0030 C=CODE S=_TEXT G=(none) M=_STPCPY ACBP=28 + 0000:2F7E 0004 C=CODE S=_TEXT G=(none) M=CORELEFT ACBP=28 + 0000:2F82 014E C=CODE S=_TEXT G=(none) M=CPRINTF ACBP=28 + 0000:30D0 01A5 C=CODE S=_TEXT G=(none) M=CRTINIT ACBP=28 + 0000:3275 001F C=CODE S=_TEXT G=(none) M=CVTFAK ACBP=28 + 0000:3294 042D C=CODE S=_TEXT G=(none) M=FARHEAP ACBP=28 + 0000:36C1 013E C=CODE S=_TEXT G=(none) M=FBRK ACBP=28 + 0000:37FF 0050 C=CODE S=_TEXT G=(none) M=FCORELFT ACBP=28 + 0000:384F 0054 C=CODE S=_TEXT G=(none) M=GETCH ACBP=28 + 0000:38A3 00AC C=CODE S=_TEXT G=(none) M=GPTEXT ACBP=28 + 0000:394F 0029 C=CODE S=_TEXT G=(none) M=IOCTL ACBP=28 + 0000:3978 0012 C=CODE S=_TEXT G=(none) M=KBHIT ACBP=28 + 0000:398A 009D C=CODE S=_TEXT G=(none) M=MOVETEXT ACBP=28 + 0000:3A27 0017 C=CODE S=_TEXT G=(none) M=PUTCH ACBP=28 + 0000:3A3E 0004 C=CODE S=_TEXT G=(none) M=REALCVT ACBP=28 + 0000:3A42 01C7 C=CODE S=_TEXT G=(none) M=SCREEN ACBP=28 + 0000:3C09 0184 C=CODE S=_TEXT G=(none) M=SCROLL ACBP=28 + 0000:3D8D 0129 C=CODE S=_TEXT G=(none) M=SETARGV ACBP=28 + 0000:3EB6 001C C=CODE S=_TEXT G=(none) M=SETBLOCK ACBP=28 + 0000:3ED2 002C C=CODE S=_TEXT G=(none) M=WHEREXY ACBP=28 + 0000:3EFE 001D C=CODE S=_TEXT G=(none) M=CHMODA ACBP=28 + 0000:3F1B 0026 C=CODE S=_TEXT G=(none) M=CLOSE ACBP=28 + 0000:3F41 001E C=CODE S=_TEXT G=(none) M=CLOSEA ACBP=28 + 0000:3F5F 00B0 C=CODE S=_TEXT G=(none) M=FCLOSE ACBP=28 + 0000:400F 00C6 C=CODE S=_TEXT G=(none) M=FFLUSH ACBP=28 + 0000:40D5 0041 C=CODE S=_TEXT G=(none) M=FLENGTH ACBP=28 + 0000:4116 0040 C=CODE S=_TEXT G=(none) M=FLUSHALL ACBP=28 + 0000:4156 01FE C=CODE S=_TEXT G=(none) M=FOPEN ACBP=28 + 0000:4354 001C C=CODE S=_TEXT G=(none) M=FPRINTF ACBP=28 + 0000:4370 01D8 C=CODE S=_TEXT G=(none) M=FSEEK ACBP=28 + 0000:4548 0070 C=CODE S=_TEXT G=(none) M=LTOA1 ACBP=28 + 0000:45B8 0024 C=CODE S=_TEXT G=(none) M=MEMCPY ACBP=28 + 0000:45DC 0022 C=CODE S=_TEXT G=(none) M=MOVEDATA ACBP=28 + 0000:45FE 018D C=CODE S=_TEXT G=(none) M=OPEN ACBP=28 + 0000:478B 004F C=CODE S=_TEXT G=(none) M=OPENA ACBP=28 + 0000:47DA 001B C=CODE S=_TEXT G=(none) M=PRINTF ACBP=28 + 0000:47F5 03A4 C=CODE S=_TEXT G=(none) M=PUTC ACBP=28 + 0000:4B99 0111 C=CODE S=_TEXT G=(none) M=SETVBUF ACBP=28 + 0000:4CAA 003F C=CODE S=_TEXT G=(none) M=STRCAT ACBP=28 + 0000:4CE9 0029 C=CODE S=_TEXT G=(none) M=STRCPY ACBP=28 + 0000:4D12 001F C=CODE S=_TEXT G=(none) M=STRLEN ACBP=28 + 0000:4D31 0149 C=CODE S=_TEXT G=(none) M=WRITE ACBP=28 + 0000:4E7A 003C C=CODE S=_TEXT G=(none) M=WRITEA ACBP=28 + 0000:4EB6 0003 C=CODE S=_TEXT G=(none) M=WRITEU ACBP=28 + 0000:4EB9 003B C=CODE S=_TEXT G=(none) M=XFCLOSE ACBP=28 + 0000:4EF4 0036 C=CODE S=_TEXT G=(none) M=XFFLUSH ACBP=28 + 04F3:0000 0000 C=FAR_DATA S=_FARDATA G=(none) M=c0.ASM ACBP=68 + 04F3:0000 0000 C=FAR_BSS S=_FARBSS G=(none) M=c0.ASM ACBP=68 + 04F3:0000 0000 C=OVRINFO S=_OVERLAY_ G=(none) M=c0.ASM ACBP=68 + 04F3:0000 0000 C=STUBSEG S=_1STUB_ G=(none) M=c0.ASM ACBP=68 + 04F3:0000 0093 C=DATA S=_DATA G=DGROUP M=c0.ASM ACBP=68 + 04F3:0094 0137 C=DATA S=_DATA G=DGROUP M=EXMMTEST.C ACBP=48 + 04F3:01CC 0AFF C=DATA S=_DATA G=DGROUP M=16_MM.C ACBP=48 + 04F3:0CCC 0004 C=DATA S=_DATA G=DGROUP M=16_HEAD.C ACBP=48 + 04F3:0CD0 002C C=DATA S=_DATA G=DGROUP M=16_CA.C ACBP=48 + 04F3:0CFC 0002 C=DATA S=_DATA G=DGROUP M=ATEXIT ACBP=48 + 04F3:0CFE 0000 C=DATA S=_DATA G=DGROUP M=CLOCK ACBP=48 + 04F3:0CFE 0101 C=DATA S=_DATA G=DGROUP M=CTYPE ACBP=48 + 04F3:0E00 0000 C=DATA S=_DATA G=DGROUP M=DOSFATTR ACBP=48 + 04F3:0E00 0006 C=DATA S=_DATA G=DGROUP M=EXIT ACBP=48 + 04F3:0E06 0190 C=DATA S=_DATA G=DGROUP M=FILES ACBP=48 + 04F3:0F96 002A C=DATA S=_DATA G=DGROUP M=FILES2 ACBP=48 + 04F3:0FC0 0004 C=DATA S=_DATA G=DGROUP M=FMODE ACBP=48 + 04F3:0FC4 0000 C=DATA S=_DATA G=DGROUP M=H_LDIV ACBP=48 + 04F3:0FC4 0000 C=DATA S=_DATA G=DGROUP M=H_LLSH ACBP=48 + 04F3:0FC4 0000 C=DATA S=_DATA G=DGROUP M=H_LURSH ACBP=48 + 04F3:0FC4 0000 C=DATA S=_DATA G=DGROUP M=H_PADD ACBP=48 + 04F3:0FC4 0000 C=DATA S=_DATA G=DGROUP M=H_PSBP ACBP=48 + 04F3:0FC4 005B C=DATA S=_DATA G=DGROUP M=IOERROR ACBP=48 + 04F3:1020 0000 C=DATA S=_DATA G=DGROUP M=ISATTY ACBP=48 + 04F3:1020 0000 C=DATA S=_DATA G=DGROUP M=LONGTOA ACBP=48 + 04F3:1020 0000 C=DATA S=_DATA G=DGROUP M=LSEEK ACBP=48 + 04F3:1020 0009 C=DATA S=_DATA G=DGROUP M=MKNAME ACBP=48 + 04F3:102A 0000 C=DATA S=_DATA G=DGROUP M=N_PCMP ACBP=48 + 04F3:102A 0000 C=DATA S=_DATA G=DGROUP M=SETUPIO ACBP=48 + 04F3:102A 0002 C=DATA S=_DATA G=DGROUP M=STKLEN ACBP=48 + 04F3:102C 0000 C=DATA S=_DATA G=DGROUP M=TOLOWER ACBP=48 + 04F3:102C 0000 C=DATA S=_DATA G=DGROUP M=UNLINK ACBP=48 + 04F3:102C 0067 C=DATA S=_DATA G=DGROUP M=VPRINTER ACBP=48 + 04F3:1094 0000 C=DATA S=_DATA G=DGROUP M=VRAM ACBP=48 + 04F3:1094 0002 C=DATA S=_DATA G=DGROUP M=WSCROLL ACBP=48 + 04F3:1096 0000 C=DATA S=_DATA G=DGROUP M=_STPCPY ACBP=48 + 04F3:1096 0000 C=DATA S=_DATA G=DGROUP M=CORELEFT ACBP=48 + 04F3:1096 0000 C=DATA S=_DATA G=DGROUP M=CPRINTF ACBP=48 + 04F3:1096 0018 C=DATA S=_DATA G=DGROUP M=CRTINIT ACBP=48 + 04F3:10AE 0031 C=DATA S=_DATA G=DGROUP M=CVTFAK ACBP=48 + 04F3:10E0 0000 C=DATA S=_DATA G=DGROUP M=FARHEAP ACBP=48 + 04F3:10E0 0002 C=DATA S=_DATA G=DGROUP M=FBRK ACBP=48 + 04F3:10E2 0000 C=DATA S=_DATA G=DGROUP M=FCORELFT ACBP=48 + 04F3:10E2 0000 C=DATA S=_DATA G=DGROUP M=GETCH ACBP=48 + 04F3:10E2 0000 C=DATA S=_DATA G=DGROUP M=GPTEXT ACBP=48 + 04F3:10E2 0000 C=DATA S=_DATA G=DGROUP M=IOCTL ACBP=48 + 04F3:10E2 0002 C=DATA S=_DATA G=DGROUP M=KBHIT ACBP=48 + 04F3:10E4 0000 C=DATA S=_DATA G=DGROUP M=MOVETEXT ACBP=48 + 04F3:10E4 0000 C=DATA S=_DATA G=DGROUP M=PUTCH ACBP=48 + 04F3:10E4 0000 C=DATA S=_DATA G=DGROUP M=REALCVT ACBP=48 + 04F3:10E4 0000 C=DATA S=_DATA G=DGROUP M=SCREEN ACBP=48 + 04F3:10E4 0000 C=DATA S=_DATA G=DGROUP M=SCROLL ACBP=48 + 04F3:10E4 0010 C=DATA S=_DATA G=DGROUP M=SETARGV ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=SETBLOCK ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=WHEREXY ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=CHMODA ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=CLOSE ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=CLOSEA ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FCLOSE ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FFLUSH ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FLENGTH ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FLUSHALL ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FOPEN ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FPRINTF ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=FSEEK ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=LTOA1 ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=MEMCPY ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=MOVEDATA ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=OPEN ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=OPENA ACBP=48 + 04F3:10F4 0000 C=DATA S=_DATA G=DGROUP M=PRINTF ACBP=48 + 04F3:10F4 0001 C=DATA S=_DATA G=DGROUP M=PUTC ACBP=48 + 04F3:10F6 0004 C=DATA S=_DATA G=DGROUP M=SETVBUF ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=STRCAT ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=STRCPY ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=STRLEN ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=WRITE ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=WRITEA ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=WRITEU ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=XFCLOSE ACBP=48 + 04F3:10FA 0000 C=DATA S=_DATA G=DGROUP M=XFFLUSH ACBP=48 + 04F3:10FA 0000 C=DATA S=_CVTSEG G=DGROUP M=c0.ASM ACBP=48 + 04F3:10FA 0002 C=DATA S=_CVTSEG G=DGROUP M=CVTFAK ACBP=48 + 04F3:10FC 0000 C=DATA S=_CVTSEG G=DGROUP M=REALCVT ACBP=48 + 04F3:10FC 0000 C=DATA S=_SCNSEG G=DGROUP M=c0.ASM ACBP=48 + 04F3:10FC 0006 C=DATA S=_SCNSEG G=DGROUP M=CVTFAK ACBP=48 + 04F3:1102 0000 C=CONST S=_CONST G=DGROUP M=c0.ASM ACBP=48 + 04F3:1102 0000 C=INITDATA S=_INIT_ G=DGROUP M=c0.ASM ACBP=48 + 04F3:1102 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETUPIO ACBP=48 + 04F3:1108 0006 C=INITDATA S=_INIT_ G=DGROUP M=CRTINIT ACBP=48 + 04F3:110E 0006 C=INITDATA S=_INIT_ G=DGROUP M=SETARGV ACBP=48 + 04F3:1114 0000 C=INITDATA S=_INITEND_ G=DGROUP M=c0.ASM ACBP=28 + 04F3:1114 0000 C=EXITDATA S=_EXIT_ G=DGROUP M=c0.ASM ACBP=48 + 04F3:1114 0000 C=EXITDATA S=_EXITEND_ G=DGROUP M=c0.ASM ACBP=28 + 04F3:1114 0000 C=BSS S=_BSS G=DGROUP M=c0.ASM ACBP=48 + 04F3:1114 0000 C=BSS S=_BSS G=DGROUP M=EXMMTEST.C ACBP=48 + 04F3:1114 0006 C=BSS S=_BSS G=DGROUP M=16_MM.C ACBP=48 + 04F3:111A 0000 C=BSS S=_BSS G=DGROUP M=16_HEAD.C ACBP=48 + 04F3:111A 000A C=BSS S=_BSS G=DGROUP M=16_CA.C ACBP=48 + 04F3:1124 0040 C=BSS S=_BSS G=DGROUP M=ATEXIT ACBP=48 + 04F3:1164 0001 C=BSS S=_BSS G=DGROUP M=CLOCK ACBP=48 + 04F3:1166 0000 C=BSS S=_BSS G=DGROUP M=DOSFATTR ACBP=48 + 04F3:1166 0000 C=BSS S=_BSS G=DGROUP M=IOERROR ACBP=48 + 04F3:1166 0000 C=BSS S=_BSS G=DGROUP M=ISATTY ACBP=48 + 04F3:1166 0000 C=BSS S=_BSS G=DGROUP M=LONGTOA ACBP=48 + 04F3:1166 0000 C=BSS S=_BSS G=DGROUP M=LSEEK ACBP=48 + 04F3:1166 000D C=BSS S=_BSS G=DGROUP M=MKNAME ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=SETUPIO ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=UNLINK ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=VPRINTER ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=VRAM ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=CORELEFT ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=CRTINIT ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=GETCH ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=IOCTL ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=KBHIT ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=SETBLOCK ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=CHMODA ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=CLOSEA ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=FLENGTH ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=MEMCPY ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=MOVEDATA ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=OPEN ACBP=48 + 04F3:1174 0000 C=BSS S=_BSS G=DGROUP M=OPENA ACBP=48 + 04F3:1174 0001 C=BSS S=_BSS G=DGROUP M=PUTC ACBP=48 + 04F3:1176 0000 C=BSS S=_BSS G=DGROUP M=STRCAT ACBP=48 + 04F3:1176 0000 C=BSS S=_BSS G=DGROUP M=STRCPY ACBP=48 + 04F3:1176 0000 C=BSS S=_BSS G=DGROUP M=STRLEN ACBP=48 + 04F3:1176 0000 C=BSS S=_BSS G=DGROUP M=WRITEA ACBP=48 + 04F3:1176 0000 C=BSSEND S=_BSSEND G=DGROUP M=c0.ASM ACBP=28 + 060B:0000 0080 C=STACK S=_STACK G=(none) M=c0.ASM ACBP=74 + + Address Publics by Name + + 04F3:0000 idle DATASEG@ + 0000:028B idle DGROUP@ + 0000:2571 idle F_LDIV@ + 0000:2580 idle F_LMOD@ + 0000:2578 idle F_LUDIV@ + 0000:2588 idle F_LUMOD@ + 0000:261F idle F_LXLSH@ + 0000:2640 idle F_LXURSH@ + 0000:2661 idle F_PADD@ + 0000:26C1 idle F_PSBP@ + 0000:2690 idle F_PSUB@ + 0000:2571 idle LDIV@ + 0000:2580 idle LMOD@ + 0000:2578 idle LUDIV@ + 0000:2588 idle LUMOD@ + 0000:261F idle LXLSH@ + 0000:2640 idle LXURSH@ + 0000:256E idle N_LDIV@ + 0000:257D idle N_LMOD@ + 0000:2575 N_LUDIV@ + 0000:2585 idle N_LUMOD@ + 0000:261C N_LXLSH@ + 0000:263D N_LXURSH@ + 0000:265E N_PADD@ + 0000:28BD N_PCMP@ + 0000:26BE N_PSBP@ + 0000:268D idle N_PSUB@ + 0000:2661 idle PADD@ + 0000:26C1 idle PSBP@ + 0000:2690 idle PSUB@ + 0000:0276 _abort + 04F3:1116 idle _aftersort + 0000:1F69 idle _AllocateLargestFarFreeBlock + 0000:1E06 idle _AllocateLargestFreeBlock + 0000:243B idle _atexit + 04F3:1118 idle _beforesort + 0000:239F idle _CAL_OptimizeNodes + 0000:222A _CA_CloseDebug + 0000:2237 idle _CA_FarRead + 0000:2275 idle _CA_FarWrite + 0000:231A _CA_LoadFile + 0000:2209 _CA_OpenDebug + 0000:22B3 idle _CA_ReadFile + 0000:242E _CA_Shutdown + 0000:240D _CA_Startup + 0000:245F _clock + 0000:3F1B _close + 0000:2F7E _coreleft + 0000:30B4 idle _cprintf + 04F3:1120 _debughandle + 04F3:10A5 _directvideo + 04F3:111E idle _drawcachebox + 04F3:007F _errno + 0000:2533 _exit + 0000:37FF _farcoreleft + 0000:33D4 _farfree + 0000:34E8 _farmalloc + 0000:3649 idle _farrealloc + 0000:3F5F _fclose + 0000:400F _fflush + 0000:40D5 _filelength + 0000:20D8 idle _filesize + 04F3:111A idle _finishcachebox + 0000:4116 _flushall + 0000:431F _fopen + 0000:4354 _fprintf + 0000:480F idle _fputc + 0000:4998 idle _fputchar + 0000:33D4 _free + 0000:43F2 _fseek + 0000:446E _ftell + 0000:384F _getch + 0000:3868 idle _getche + 0000:200B idle _GetFarFreeSize + 0000:1E9C idle _GetFreeSize + 0000:38A3 _gettext + 0000:394F _ioctl + 0000:2731 _isatty + 0000:4548 idle _itoa + 0000:3978 _kbhit + 0000:27E4 _lseek + 0000:4590 idle _ltoa + 0000:028F _main + 0000:34DE _malloc + 0000:45B8 _memcpy + 0000:0480 idle _MML_CheckForEMS + 0000:074E idle _MML_CheckForXMS + 0000:0A0E idle _MML_ClearBlock + 0000:04C5 idle _MML_SetupEMS + 0000:0785 idle _MML_SetupXMS + 0000:05CB idle _MML_ShutdownEMS + 0000:082B idle _MML_ShutdownXMS + 0000:085E idle _MML_UseSpace + 0000:1D23 idle _MM_BombOnError + 0000:17D0 _MM_DumpData + 0000:1D88 idle _MM_FreeBlock + 0000:11EF _MM_FreePtr + 0000:1D32 idle _MM_GetNewBlock + 0000:0F3B _MM_GetPtr + 0000:060C idle _MM_MapEMS + 0000:06A5 idle _MM_MapXEMS + 0000:1A17 _MM_Report + 0000:138D idle _MM_SetLock + 0000:12C9 idle _MM_SetPurge + 0000:15CD _MM_ShowMemory + 0000:0EB6 _MM_Shutdown + 0000:1456 idle _MM_SortMem + 0000:0A74 _MM_Startup + 0000:197E idle _MM_TotalFree + 0000:190C idle _MM_UnusedMemory + 0000:45DC _movedata + 0000:398A _movetext + 0000:462B _open + 0000:47DA _printf + 04F3:1122 idle _profilehandle + 0000:3A27 _putch + 0000:38F9 _puttext + 0000:3642 idle _realloc + 0000:3EB6 _setblock + 0000:4B99 _setvbuf + 0000:4CAA _strcat + 0000:4CE9 _strcpy + 0000:4D12 _strlen + 0000:2990 _tolower + 0000:4573 _ultoa + 0000:3885 idle _ungetch + 0000:29BC _unlink + 04F3:111C idle _updatecachebox + 0000:2137 _US_CheckParm + 0000:1DC7 idle _wait + 0000:3EDC idle _wherex + 0000:3EEB idle _wherey + 0000:4EB6 _write + 04F3:1114 idle _XMSaddr + 0000:1000 idle __AHINCR + 0000:000C idle __AHSHIFT + 04F3:10E4 __argc + 04F3:10E6 __argv + 04F3:0CFC __atexitcnt + 04F3:1124 __atexittbl + 0000:3735 __brk + 04F3:008B __brklvl + 04F3:006B __C0argc + 04F3:006D __C0argv + 0000:3196 idle __c0crtinit + 04F3:0071 idle __C0environ + 04F3:10E3 __cChar + 0000:2554 idle __cexit + 04F3:10E2 __cFlag + 0000:0166 __checknull + 0000:3EFE __chmod + 0000:0153 __cleanup + 0000:3F41 __close + 0000:2F82 __CPUTN + 0000:31B3 idle __crtinit + 04F3:0CFE __ctype + 0000:0000 Abs __cvtfak + 0000:2562 idle __c_exit + 04F3:0FC4 __doserrno + 0000:271F __DOSERROR + 04F3:0FC6 idle __dosErrorToSV + 0000:24A8 __dos_getfileattr + 0000:24C8 idle __dos_setfileattr + 04F3:0075 __envLng + 04F3:0077 __envseg + 04F3:0079 idle __envSize + 0000:2542 __exit + 04F3:0E00 __exitbuf + 04F3:0E02 __exitfopen + 04F3:0E04 idle __exitopen + 04F3:0FC0 __fmode + 0000:47F5 idle __fputc + 0000:49AB __FPUTN + 0000:42D5 idle __GETFP + 04F3:0087 __heapbase + 04F3:008F __heaptop + 04F3:005B idle __Int0Vector + 04F3:005F idle __Int4Vector + 04F3:0063 idle __Int5Vector + 04F3:0067 idle __Int6Vector + 0000:26E6 __IOERROR + 0000:2742 __LONGTOA + 0000:280D __MKNAME + 0000:028D idle __MMODEL + 04F3:0F96 __nfile + 0000:3868 idle __Ngetche + 04F3:0FC2 __notUmask + 0000:3885 idle __Nungetch + 0000:478B __open + 04F3:0F98 __openfd + 0000:420C idle __OPENFP + 04F3:007D __osmajor + 04F3:007E idle __osminor + 04F3:007D idle __osversion + 04F3:007B __psp + 0000:3A3E __REALCVT + 04F3:10FA __RealCvtVector + 0000:01BC __restorezero + 0000:3774 __sbrk + 04F3:10FC idle __ScanTodVector + 0000:3B78 __SCREENIO + 0000:3C2B __SCROLL + 0000:0000 Abs __setargv__ + 0000:28DE __setupio + 04F3:0081 __StartTime + 04F3:102A __stklen + 0000:2F4E __stpcpy + 04F3:0E06 __streams + 0000:0167 __terminate + 0000:2866 idle __TMPNAM + 0000:0000 idle __turboCrt + 0000:27C4 __UTOA + 0000:3BB4 __VALIDATEXY + 04F3:007D idle __version + 04F3:1096 __video + 0000:310B __VideoInt + 0000:29EC __VPRINTER + 0000:2EAF __VPTR + 0000:2ED4 __VRAM + 0000:3ED2 __wherexy + 0000:4E7A __write + 04F3:1094 __wscroll + 0000:4EB9 __xfclose + 0000:4EF4 __xfflush + 04F3:0085 idle ___brklvl + 0000:3294 idle ___first + 0000:3296 idle ___last + 0000:3298 idle ___rover + 0000:4D31 ___write + + Address Publics by Value + + 0000:0000 Abs __setargv__ + 0000:0000 idle __turboCrt + 0000:0000 Abs __cvtfak + 0000:000C idle __AHSHIFT + 0000:0153 __cleanup + 0000:0166 __checknull + 0000:0167 __terminate + 0000:01BC __restorezero + 0000:0276 _abort + 0000:028B idle DGROUP@ + 0000:028D idle __MMODEL + 0000:028F _main + 0000:0480 idle _MML_CheckForEMS + 0000:04C5 idle _MML_SetupEMS + 0000:05CB idle _MML_ShutdownEMS + 0000:060C idle _MM_MapEMS + 0000:06A5 idle _MM_MapXEMS + 0000:074E idle _MML_CheckForXMS + 0000:0785 idle _MML_SetupXMS + 0000:082B idle _MML_ShutdownXMS + 0000:085E idle _MML_UseSpace + 0000:0A0E idle _MML_ClearBlock + 0000:0A74 _MM_Startup + 0000:0EB6 _MM_Shutdown + 0000:0F3B _MM_GetPtr + 0000:1000 idle __AHINCR + 0000:11EF _MM_FreePtr + 0000:12C9 idle _MM_SetPurge + 0000:138D idle _MM_SetLock + 0000:1456 idle _MM_SortMem + 0000:15CD _MM_ShowMemory + 0000:17D0 _MM_DumpData + 0000:190C idle _MM_UnusedMemory + 0000:197E idle _MM_TotalFree + 0000:1A17 _MM_Report + 0000:1D23 idle _MM_BombOnError + 0000:1D32 idle _MM_GetNewBlock + 0000:1D88 idle _MM_FreeBlock + 0000:1DC7 idle _wait + 0000:1E06 idle _AllocateLargestFreeBlock + 0000:1E9C idle _GetFreeSize + 0000:1F69 idle _AllocateLargestFarFreeBlock + 0000:200B idle _GetFarFreeSize + 0000:20D8 idle _filesize + 0000:2137 _US_CheckParm + 0000:2209 _CA_OpenDebug + 0000:222A _CA_CloseDebug + 0000:2237 idle _CA_FarRead + 0000:2275 idle _CA_FarWrite + 0000:22B3 idle _CA_ReadFile + 0000:231A _CA_LoadFile + 0000:239F idle _CAL_OptimizeNodes + 0000:240D _CA_Startup + 0000:242E _CA_Shutdown + 0000:243B idle _atexit + 0000:245F _clock + 0000:24A8 __dos_getfileattr + 0000:24C8 idle __dos_setfileattr + 0000:2533 _exit + 0000:2542 __exit + 0000:2554 idle __cexit + 0000:2562 idle __c_exit + 0000:256E idle N_LDIV@ + 0000:2571 idle LDIV@ + 0000:2571 idle F_LDIV@ + 0000:2575 N_LUDIV@ + 0000:2578 idle F_LUDIV@ + 0000:2578 idle LUDIV@ + 0000:257D idle N_LMOD@ + 0000:2580 idle F_LMOD@ + 0000:2580 idle LMOD@ + 0000:2585 idle N_LUMOD@ + 0000:2588 idle LUMOD@ + 0000:2588 idle F_LUMOD@ + 0000:261C N_LXLSH@ + 0000:261F idle LXLSH@ + 0000:261F idle F_LXLSH@ + 0000:263D N_LXURSH@ + 0000:2640 idle LXURSH@ + 0000:2640 idle F_LXURSH@ + 0000:265E N_PADD@ + 0000:2661 idle F_PADD@ + 0000:2661 idle PADD@ + 0000:268D idle N_PSUB@ + 0000:2690 idle F_PSUB@ + 0000:2690 idle PSUB@ + 0000:26BE N_PSBP@ + 0000:26C1 idle PSBP@ + 0000:26C1 idle F_PSBP@ + 0000:26E6 __IOERROR + 0000:271F __DOSERROR + 0000:2731 _isatty + 0000:2742 __LONGTOA + 0000:27C4 __UTOA + 0000:27E4 _lseek + 0000:280D __MKNAME + 0000:2866 idle __TMPNAM + 0000:28BD N_PCMP@ + 0000:28DE __setupio + 0000:2990 _tolower + 0000:29BC _unlink + 0000:29EC __VPRINTER + 0000:2EAF __VPTR + 0000:2ED4 __VRAM + 0000:2F4E __stpcpy + 0000:2F7E _coreleft + 0000:2F82 __CPUTN + 0000:30B4 idle _cprintf + 0000:310B __VideoInt + 0000:3196 idle __c0crtinit + 0000:31B3 idle __crtinit + 0000:3294 idle ___first + 0000:3296 idle ___last + 0000:3298 idle ___rover + 0000:33D4 _free + 0000:33D4 _farfree + 0000:34DE _malloc + 0000:34E8 _farmalloc + 0000:3642 idle _realloc + 0000:3649 idle _farrealloc + 0000:3735 __brk + 0000:3774 __sbrk + 0000:37FF _farcoreleft + 0000:384F _getch + 0000:3868 idle __Ngetche + 0000:3868 idle _getche + 0000:3885 idle __Nungetch + 0000:3885 idle _ungetch + 0000:38A3 _gettext + 0000:38F9 _puttext + 0000:394F _ioctl + 0000:3978 _kbhit + 0000:398A _movetext + 0000:3A27 _putch + 0000:3A3E __REALCVT + 0000:3B78 __SCREENIO + 0000:3BB4 __VALIDATEXY + 0000:3C2B __SCROLL + 0000:3EB6 _setblock + 0000:3ED2 __wherexy + 0000:3EDC idle _wherex + 0000:3EEB idle _wherey + 0000:3EFE __chmod + 0000:3F1B _close + 0000:3F41 __close + 0000:3F5F _fclose + 0000:400F _fflush + 0000:40D5 _filelength + 0000:4116 _flushall + 0000:420C idle __OPENFP + 0000:42D5 idle __GETFP + 0000:431F _fopen + 0000:4354 _fprintf + 0000:43F2 _fseek + 0000:446E _ftell + 0000:4548 idle _itoa + 0000:4573 _ultoa + 0000:4590 idle _ltoa + 0000:45B8 _memcpy + 0000:45DC _movedata + 0000:462B _open + 0000:478B __open + 0000:47DA _printf + 0000:47F5 idle __fputc + 0000:480F idle _fputc + 0000:4998 idle _fputchar + 0000:49AB __FPUTN + 0000:4B99 _setvbuf + 0000:4CAA _strcat + 0000:4CE9 _strcpy + 0000:4D12 _strlen + 0000:4D31 ___write + 0000:4E7A __write + 0000:4EB6 _write + 0000:4EB9 __xfclose + 0000:4EF4 __xfflush + 04F3:0000 idle DATASEG@ + 04F3:005B idle __Int0Vector + 04F3:005F idle __Int4Vector + 04F3:0063 idle __Int5Vector + 04F3:0067 idle __Int6Vector + 04F3:006B __C0argc + 04F3:006D __C0argv + 04F3:0071 idle __C0environ + 04F3:0075 __envLng + 04F3:0077 __envseg + 04F3:0079 idle __envSize + 04F3:007B __psp + 04F3:007D idle __osversion + 04F3:007D __osmajor + 04F3:007D idle __version + 04F3:007E idle __osminor + 04F3:007F _errno + 04F3:0081 __StartTime + 04F3:0085 idle ___brklvl + 04F3:0087 __heapbase + 04F3:008B __brklvl + 04F3:008F __heaptop + 04F3:0CFC __atexitcnt + 04F3:0CFE __ctype + 04F3:0E00 __exitbuf + 04F3:0E02 __exitfopen + 04F3:0E04 idle __exitopen + 04F3:0E06 __streams + 04F3:0F96 __nfile + 04F3:0F98 __openfd + 04F3:0FC0 __fmode + 04F3:0FC2 __notUmask + 04F3:0FC4 __doserrno + 04F3:0FC6 idle __dosErrorToSV + 04F3:102A __stklen + 04F3:1094 __wscroll + 04F3:1096 __video + 04F3:10A5 _directvideo + 04F3:10E2 __cFlag + 04F3:10E3 __cChar + 04F3:10E4 __argc + 04F3:10E6 __argv + 04F3:10FA __RealCvtVector + 04F3:10FC idle __ScanTodVector + 04F3:1114 idle _XMSaddr + 04F3:1116 idle _aftersort + 04F3:1118 idle _beforesort + 04F3:111A idle _finishcachebox + 04F3:111C idle _updatecachebox + 04F3:111E idle _drawcachebox + 04F3:1120 _debughandle + 04F3:1122 idle _profilehandle + 04F3:1124 __atexittbl + +Program entry point at 0000:0000 diff --git a/16/exmmtest/EXMMTEST.PRJ b/16/exmmtest/EXMMTEST.PRJ index 785304c705662ca809b9299250aa02d53783d46e..7a51675a5aaac9344e615159d70692a9a321ad61 100644 GIT binary patch delta 1075 zcmbW0L2DCH5XWct?WWsJ;wCYPiEYJ86)y`GY{82pyLnAulLa>g8(OO1#e>CD4K70ULJ$!}FM@snMf4z83LXUU1BB2_!;)CxM9t~@AWZl8th8x zW?=y?;1^3ez%l^5v)HKgF@9*C#e=WkGuKSl%$VPeSH@H0fpNpQY?O^(9o$(qqWq zGt%Z_>B`H)327baDM(wCwj}LI_;Gtk%krBFeAxL)Pr;>YV_K6Q&asPfb1phMT<~06 z-tro*hlFLA{})?)9GvX?e{2batiXjPNYZXKe93~y@Dk~8fcRhnC6tmStwCDMX&G}< zjK^!nxme2KO!XmE30wdnWVefmLP2)DIu}R%tDWAe+XgPAR^hhXH-TMDP`ga;SPfuF ztTejX{WNZR)G2iL$iCI(I=XdaNgh<0#pQD(LASfDuHeQ?BPMa8^=KpNH~PYd5(r<8 zdcA&-axkYdOD4fa5QJVjxLL6$#q&|$4?0Z|P1><%73(0?3wxa~m1_H8lseW_Q2a+G ox8e|rxm7D^vtX|U5>NG5Ox*KXzeQ!eq<0o+RLR`|`&7O47d+@f{{R30 delta 565 zcmaEAv`=pXBO@czW+uiecBa3co9j3pbMT6J{dJqj$iVQ2fq|iaa-LwU0FVI$|Dk|^ zVe)Ok7!C#oHlV^&%#-bfQZQ9)7CKR%$}9!cX2uZ8tjEmGe4l9t(ojm=6knm69h&C>_$GN|`>;$2+bkd<=- O9RjiHwA%(yX diff --git a/PROFILE.16 b/16/exmmtest/MMDUMP.16 similarity index 100% rename from PROFILE.16 rename to 16/exmmtest/MMDUMP.16 diff --git a/16/exmmtest/PROFILE.16 b/16/exmmtest/PROFILE.16 new file mode 100644 index 00000000..e69de29b diff --git a/16/exmmtest/exmmtest.c b/16/exmmtest/exmmtest.c index d2491c42..42d2d1b5 100644 --- a/16/exmmtest/exmmtest.c +++ b/16/exmmtest/exmmtest.c @@ -39,13 +39,13 @@ //file load or read definition #define FILERL -#define FILEREAD +//#define FILEREAD void main(int argc, char *argv[]) { mminfo_t mm; mminfotype mmi; - void _seg * segu; + unsigned __far *segu; #ifdef FILERL memptr bigbuffer; char *bakapee; @@ -57,7 +57,9 @@ main(int argc, char *argv[]) //mmi.segu=FP_SEG(segu); printf("&main()=%Fp\n", *argv[0]); - printf("&segu=%p\n", (segu)); + printf("&segu=%Fp\n", &segu); + printf("bigbuffer= %Fp\n", bigbuffer); + printf("&bigbuffer= %Fp\n", &bigbuffer); //printf("mmi.segu=%p\n", (mmi.segu)); #ifdef FILERL @@ -94,7 +96,9 @@ main(int argc, char *argv[]) exit(-5); }*/ printf("&main()=%Fp\n", *argv[0]); - printf("&segu=%p\n", (segu)); + printf("&segu=%Fp\n", &segu); + printf("bigbuffer= %Fp\n", bigbuffer); + printf("&bigbuffer= %Fp\n", &bigbuffer); //printf("mmi.segu=%p\n", (mmi.segu)); #ifdef FILERL // bakapeehandle = open(bakapee,O_RDONLY | O_BINARY, S_IREAD); @@ -112,7 +116,7 @@ main(int argc, char *argv[]) baka=0; // close(bakapeehandle); //hmm functions in cache system use the buffered stuff - printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); +// printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); #endif printf("dark purple = purgable\n"); printf("medium blue = non purgable\n"); @@ -138,5 +142,6 @@ main(int argc, char *argv[]) if(baka) printf("\nyay!\n"); else printf("\npoo!\n"); #endif - printf("_bios_memsize=%u\n", _bios_memsize()); + printf("bigbuffer= %Fp\n", bigbuffer); + printf("&bigbuffer= %Fp\n", &bigbuffer); } diff --git a/16/segm/WPEE b/16/segm/WPEE index 5317ade1..f008f6c9 100644 --- a/16/segm/WPEE +++ b/16/segm/WPEE @@ -16,8 +16,8 @@ local variable bee= 0bce far pointer value of pee= 0000:0000 pointer value of pee= 0000 ==compact is what project 16 uses== -local variable bee= 05d5:0c32 -local variable bee= 05d5:0c32 +local variable bee= 05d4:0c32 +local variable bee= 05d4:0c32 far pointer value of pee= 0000:0000 pointer value of pee= 0000:0000 ==large== diff --git a/16/segm/pee.c b/16/segm/pee.c index 03c13ab3..6532eed7 100644 --- a/16/segm/pee.c +++ b/16/segm/pee.c @@ -25,8 +25,7 @@ #include #ifdef __WATCOMC__ //typedef void __based(__self) * memptr; -//typedef __segment * memptr; -typedef __segment * memptr; +typedef __segment memptr; #endif #ifdef __BORLANDC__ typedef void _seg * memptr; diff --git a/16/segm/pee.exe b/16/segm/pee.exe index 6a00ab3d687347b8abc6741a2209fbdf1bbbcfc9..608fec8bda20851d06077c31ddcc16f4d2f4db51 100644 GIT binary patch delta 48 xcmexR{-Jz>1(R~H*p5(!0KOLq3=^7NEqx=4hs=mH^qo60`sS delta 48 zcmexR{-Jz>1(R}Mu-J}Jh5$ah7jX>DM>s&-5+L_Q0K)_zxARSG)alL9Oj9iZ&utR~ diff --git a/DEBUG.16 b/DEBUG.16 deleted file mode 100644 index 9ffc2254..00000000 --- a/DEBUG.16 +++ /dev/null @@ -1,16 +0,0 @@ -Seg:0 Size:6760 Owner:0x8709 -Seg:1b41 Size:33 Owner:0x6843 -Seg:1b62 Size:256 Owner:0xc25c -Seg:1f07 Size:45306 Owner:0x20 -Seg:d021 Size:4294967264 Owner:0xc70 -Seg:d021 Size:4294967264 Owner:0x102 -Seg:d021 Size:4294967264 Owner:0xe712 -Seg:d021 Size:4294967264 Owner:0x1f00 -Seg:d021 Size:4294967264 Owner:0xe70b -Seg:d021 Size:4294967264 Owner:0x656e -Seg:d021 Size:4294967264 Owner:0x5e7 -Seg:d021 Size:4294967264 Owner:0x2020 -Seg:d021 Size:4294967264 Owner:0x0 -Seg:d021 Size:4294967264 Owner:0x0 -Seg:d021 Size:525 Owner:0x1500 -Seg:e000 Size:4294909951 Owner:0xffff diff --git a/MMDUMP.16 b/MMDUMP.16 deleted file mode 100644 index f5d78c53ba057fdd5a6e1fd3c3291d8b0e75ece2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 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 delta 15329 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 diff --git a/src/exmmtest.c b/src/exmmtest.c index afbc9d04..60354499 100644 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -42,7 +42,6 @@ void main(int argc, char *argv[]) { mminfo_t mm; mminfotype mmi; - __segment segu; #ifdef FILERL memptr bigbuffer; char *bakapee; @@ -54,7 +53,7 @@ main(int argc, char *argv[]) //mmi.segu=FP_SEG(segu); printf("&main()=%Fp\n", *argv[0]); - printf("&segu=%p\n", (segu)); + printf("&bigbuffer=%Fp\n", &bigbuffer); //printf("mmi.segu=%p\n", (mmi.segu)); #ifdef FILERL @@ -91,11 +90,11 @@ main(int argc, char *argv[]) exit(-5); }*/ printf("&main()=%Fp\n", *argv[0]); - printf("&segu=%p\n", (segu)); + printf("&bigbuffer=%Fp\n", &bigbuffer); //printf("mmi.segu=%p\n", (mmi.segu)); #ifdef FILERL // bakapeehandle = open(bakapee,O_RDONLY | O_BINARY, S_IREAD); - printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); +// printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); // if(CA_FarRead(bakapeehandle,(void far *)&bigbuffer,sizeof(bigbuffer),&mm)) #ifdef FILEREAD printf(" read\n"); @@ -109,7 +108,7 @@ main(int argc, char *argv[]) baka=0; // close(bakapeehandle); //hmm functions in cache system use the buffered stuff - printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); +// printf("size of big buffer~=%u\n", _bmsize(segu, bigbuffer)); #endif printf("dark purple = purgable\n"); printf("medium blue = non purgable\n"); @@ -135,5 +134,7 @@ main(int argc, char *argv[]) if(baka) printf("\nyay!\n"); else printf("\npoo!\n"); #endif - printf("_bios_memsize=%u\n", _bios_memsize()); + //printf("_bios_memsize=%u\n", _bios_memsize()); + printf("bigbuffer= %Fp\n", bigbuffer); + printf("&bigbuffer= %Fp\n", &bigbuffer); } diff --git a/src/lib/16_ca.c b/src/lib/16_ca.c index f74a5710..b740655c 100644 --- a/src/lib/16_ca.c +++ b/src/lib/16_ca.c @@ -215,7 +215,7 @@ void CAL_GetGrChunkLength (int chunk) ========================== */ -boolean CA_FarRead(int handle, byte huge *dest, dword length, mminfo_t *mm) +boolean CA_FarRead(int handle, word huge *dest, dword length, mminfo_t *mm) { boolean flag; /*dword fat=0; @@ -271,7 +271,7 @@ End: ========================== */ -boolean CA_FarWrite(int handle, byte huge *source, dword length, mminfo_t *mm) +boolean CA_FarWrite(int handle, word huge *source, dword length, mminfo_t *mm) { boolean flag; /*dword fat=0; diff --git a/src/lib/16_ca.h b/src/lib/16_ca.h index 77809387..1dc0ce76 100644 --- a/src/lib/16_ca.h +++ b/src/lib/16_ca.h @@ -83,8 +83,8 @@ extern void (*finishcachebox) (void); void CA_OpenDebug (void); void CA_CloseDebug (void); -boolean CA_FarRead (int handle, byte huge *dest, dword length, mminfo_t *mm); -boolean CA_FarWrite (int handle, byte huge *source, dword length, mminfo_t *mm); +boolean CA_FarRead (int handle, word huge *dest, dword length, mminfo_t *mm); +boolean CA_FarWrite (int handle, word huge *source, dword length, mminfo_t *mm); boolean CA_ReadFile (char *filename, memptr *ptr, mminfo_t *mm); boolean CA_LoadFile (char *filename, memptr *ptr, mminfo_t *mm, mminfotype *mmi); diff --git a/src/lib/16_head.h b/src/lib/16_head.h index 807b297e..0fe12ce3 100644 --- a/src/lib/16_head.h +++ b/src/lib/16_head.h @@ -42,6 +42,7 @@ #include #include #include +//#include #include "src/lib/types.h" /* Control codes for all keys on the keyboard */ @@ -140,10 +141,12 @@ static dword far* clockdw= (dword far*) 0x046C; /* 18.2hz clock */ //static dword clockdw=0; extern int profilehandle,debughandle; //make it into game global -#define nil ((void *)0) - #define __DEBUG__ +//#define _SEGU(__p) ((unsigned)((unsigned long)(void __huge*)(__p) >> 16)) + +#define nil ((void *)0) + #define peekb(segm,ofs) (*(byte far*)MK_FP((segm),(ofs))) #define peekw(segm,ofs) (*(word far*)MK_FP((segm),(ofs))) #define pokeb(segm,ofs,value) (peekb((segm),(ofs)) = (byte)(value)) @@ -152,9 +155,9 @@ extern int profilehandle,debughandle; //make it into game global typedef union REGPACK regs_t; typedef enum {false,true} boolean; //I hope this is correct! -//__self typedef void __based(__self) * memptr; //typedef __segment * memptr; +//typedef fenp.op_ptr_seg * memptr;//=fenv_t.; typedef struct { int old_mode; //old video mode before game! -- 2.39.2