From: sparky4 Date: Wed, 29 Jul 2015 16:24:43 +0000 (-0500) Subject: OK i got the borland C version of exmmtest.exe to compile and it dose not go BOOM... X-Git-Url: http://4ch.mooo.com/gitweb/?p=16.git;a=commitdiff_plain;h=09ecd3b6ef2b74496e95edf9475fea7e16f0e701 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 --- diff --git a/16.hed b/16.hed index 6814787e..9ee38840 100644 Binary files a/16.hed and b/16.hed differ 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 b9eaf2e9..fffb53e9 100644 Binary files a/16/exmmtest/EXMMTEST.DSK and b/16/exmmtest/EXMMTEST.DSK differ diff --git a/16/exmmtest/EXMMTEST.EXE b/16/exmmtest/EXMMTEST.EXE new file mode 100644 index 00000000..ec0e8fee Binary files /dev/null and b/16/exmmtest/EXMMTEST.EXE differ 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 785304c7..7a51675a 100644 Binary files a/16/exmmtest/EXMMTEST.PRJ and b/16/exmmtest/EXMMTEST.PRJ differ 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 6a00ab3d..608fec8b 100644 Binary files a/16/segm/pee.exe and b/16/segm/pee.exe differ 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 f5d78c53..00000000 Binary files a/MMDUMP.16 and /dev/null differ diff --git a/exmmtest.exe b/exmmtest.exe index 38fcc595..44c68638 100644 Binary files a/exmmtest.exe and b/exmmtest.exe differ 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!