From 6ca6ac83797249d4f46c245d12aa974427779573 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Sat, 27 Jun 2015 14:46:44 -0500 Subject: [PATCH] wwww debugy~ modified: exmmtest.exe modified: src/exmmtest.c modified: src/lib/16_mm.c modified: src/lib/16_mm.h --- exmmtest.exe | Bin 54626 -> 54691 bytes src/exmmtest.c | 2 ++ src/lib/16_mm.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++-- src/lib/16_mm.h | 7 +++++-- 4 files changed, 55 insertions(+), 4 deletions(-) diff --git a/exmmtest.exe b/exmmtest.exe index f6c00a319cce96f0103c173be4932dcccf191eef..4708e6851c8c8821c1b72bacaeabf1c41fb213d1 100644 GIT binary patch delta 14328 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 Ij}h|!0NlxbeE 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 diff --git a/src/exmmtest.c b/src/exmmtest.c index 587fbd5b..b950051b 100644 --- a/src/exmmtest.c +++ b/src/exmmtest.c @@ -30,7 +30,9 @@ main(int argc, char *argv[]) printf("start!\n"); MM_Startup(); printf("done!\n"); + printf("&main()=%Fp\n", *argv[0]); MM_ShowMemory(); + MM_Report(); printf("stop!\n"); MM_Shutdown(); printf("done!\n"); diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index dcb1428c..acb71982 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -115,6 +115,7 @@ void MML_SetupEMS (void) boolean errorflag=false; union REGS CPURegs; + EMSVer = 0; totalEMSpages = freeEMSpages = EMSpageframe = EMSpagesmapped = 0; __asm @@ -128,6 +129,7 @@ void MML_SetupEMS (void) int EMS_INT or ah,ah jnz error + mov [EMSVer],ax // set EMSVer cmp al,0x32 // only work on ems 3.2 or greater jb error @@ -1019,7 +1021,7 @@ fprintf(stdout, "%s", scratch); ====================== */ -long MM_UnusedMemory (void) +dword MM_UnusedMemory (void) { unsigned free; mmblocktype far *scan; @@ -1049,7 +1051,7 @@ long MM_UnusedMemory (void) ====================== */ -long MM_TotalFree (void) +dword MM_TotalFree (void) { unsigned free; mmblocktype far *scan; @@ -1070,6 +1072,48 @@ long MM_TotalFree (void) //========================================================================== +/* +===================== += += MM_Report += +===================== +*/ + +void MM_Report(void) +{ + printf("EMM %x available\n", EMSVer); + printf("totalEMSpages=%u\n", totalEMSpages); + printf("freeEMSpages=%u\n", freeEMSpages); + printf("EMSpageframe=%Fp\n", EMSpageframe); + printf("UnusedMemory=%lu\n", MM_UnusedMemory()); + printf("TotalFree=%lu\n", MM_TotalFree()); +} + +//========================================================================== + +/* +===================== += += MM_EMSVer += +===================== + + +int MM_EMSVer(void) +{ + int EMSver; + __asm + { + mov ah,EMS_VERSION + int EMS_INT + mov EMSver,ax + } + return(EMSver); +}*/ + +//========================================================================== + /* ===================== = @@ -1083,6 +1127,8 @@ void MM_BombOnError (boolean bomb) bombonerror = bomb; } +//========================================================================== + /////////////////////////////////////////////////////////////////////////// // // US_CheckParm() - checks to see if a string matches one of a set of diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index fecff72c..a18f0db7 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -161,6 +161,7 @@ static mmblocktype far mmblocks[MAXBLOCKS] static boolean bombonerror; static unsigned totalEMSpages,freeEMSpages,EMSpageframe,EMSpagesmapped,EMShandle; +static unsigned int EMSVer; static void (* XMSaddr) (void); // far pointer to XMS driver @@ -183,8 +184,10 @@ void MM_SortMem (void); void MM_ShowMemory (void); -long MM_UnusedMemory (void); -long MM_TotalFree (void); +dword MM_UnusedMemory (void); +dword MM_TotalFree (void); +void MM_Report(void); +//int MM_EMSVer(void); void MM_BombOnError (boolean bomb); -- 2.39.5