From de4d33a05ca28e5332570749f3a1c1648db896a3 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Fri, 15 May 2015 13:33:19 -0500 Subject: [PATCH] We actually have a working EMS library now~ yay! I am going to experiment and play with it a whole bunch.... wwww new file: src/lib/exmm/BAKAPEE.EXE modified: src/lib/exmm/EMM.EXE deleted: src/lib/exmm/MEMORY.MAP new file: src/lib/exmm/bakapee.c modified: src/lib/exmm/emm.c modified: src/lib/exmm/memory.c modified: src/lib/exmm/memory.h modified: src/lib/exmm/x.bat --- src/lib/exmm/BAKAPEE.EXE | Bin 0 -> 15286 bytes src/lib/exmm/EMM.EXE | Bin 17230 -> 17394 bytes src/lib/exmm/MEMORY.MAP | 35 ------ src/lib/exmm/bakapee.c | 53 ++++++++ src/lib/exmm/emm.c | 2 +- src/lib/exmm/memory.c | 255 ++++++++++++++++++++++----------------- src/lib/exmm/memory.h | 3 +- src/lib/exmm/x.bat | 16 +-- 8 files changed, 209 insertions(+), 155 deletions(-) create mode 100644 src/lib/exmm/BAKAPEE.EXE delete mode 100644 src/lib/exmm/MEMORY.MAP create mode 100644 src/lib/exmm/bakapee.c diff --git a/src/lib/exmm/BAKAPEE.EXE b/src/lib/exmm/BAKAPEE.EXE new file mode 100644 index 0000000000000000000000000000000000000000..260695932ae3570ddb44569bf899d4734564b8e8 GIT binary patch literal 15286 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 literal 0 HcmV?d00001 diff --git a/src/lib/exmm/EMM.EXE b/src/lib/exmm/EMM.EXE index 2232aceec19f24af2df5462a2b6e9fa7c69e2e5a..b9f72c3adccdf8df0512399b16c1407470d5d802 100644 GIT binary patch delta 4699 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 diff --git a/src/lib/exmm/MEMORY.MAP b/src/lib/exmm/MEMORY.MAP deleted file mode 100644 index 7c39ab42..00000000 --- a/src/lib/exmm/MEMORY.MAP +++ /dev/null @@ -1,35 +0,0 @@ -Error: Segment _TEXT exceeds 64K - - Start Stop Length Name Class - - 00000H 004F2H 004F3H MEMORY_TEXT CODE - 004F3H 40507H 40015H _TEXT CODE - 504F2H 5057DH 0008CH MEMORY_DATA FAR_DATA - 50580H 50581H 00002H FSBDTR5_FAR FAR_DATA - 50590H 50590H 00000H IOSTSTD5_FAR FAR_DATA - 50590H 505C3H 00034H IOSTSTD6_FAR FAR_DATA - 505D0H 505D0H 00000H IOSTSTD7_FAR FAR_DATA - 505D0H 50601H 00032H IOSTSTD8_FAR FAR_DATA - 50610H 50610H 00000H IOSTSTD9_FAR FAR_DATA - 50610H 50641H 00032H IOSTSTD10_FAR FAR_DATA - 50650H 50650H 00000H IOSTSTD11_FAR FAR_DATA - 50650H 50681H 00032H IOSTSTD12_FAR FAR_DATA - 50690H 50693H 00004H IOSTSTD13_FAR FAR_DATA - 506A0H 506A3H 00004H IOSTSTD14_FAR FAR_DATA - 506B0H 506B3H 00004H IOSTSTD15_FAR FAR_DATA - 506C0H 506C3H 00004H STDTR5_FAR FAR_DATA - 506D0H 506D3H 00004H STDTR6_FAR FAR_DATA - 506E0H 506E3H 00004H STDTR7_FAR FAR_DATA - 506F0H 506F3H 00004H STDTR8_FAR FAR_DATA - 50700H 50701H 00002H STDTR9_FAR FAR_DATA - 50710H 50713H 00004H STSYNC5_FAR FAR_DATA - 50720H 50723H 00004H STSYNC6_FAR FAR_DATA - 50730H 50733H 00004H STSYNC7_FAR FAR_DATA - 50734H 5161BH 00EE8H _DATA DATA - 5161CH 5161DH 00002H _CVTSEG DATA - 5161EH 51623H 00006H _SCNSEG DATA - 51624H 5164DH 0002AH _INIT_ INITDATA - 5164EH 51651H 00004H _BSS BSS - 51652H 5165DH 0000CH _EXIT_ EXITDATA - - diff --git a/src/lib/exmm/bakapee.c b/src/lib/exmm/bakapee.c new file mode 100644 index 00000000..36fd1e15 --- /dev/null +++ b/src/lib/exmm/bakapee.c @@ -0,0 +1,53 @@ +#include +#include +#include + +#include "emmret.h" +#include "emmsize.h" + +#define CMM 0 +#define EMM 1 + +static int +EMReady(void) +{ + int EMSready; + _asm { + mov ah,0x40 /* get EM Manager Status */ + int 0x67 + or ah,ah + jns Ready /* returns 80, 81, or 84 hex on error */ + mov EMSready,FALSE + jmp End + Ready: + mov EMSready,TRUE + End: + } + return(EMSready); + +//Ready: +// return(TRUE); +} /* End of EMReady() */ + +static int +EMVer(void) +{ + int EMSver; + _asm { + mov ah,0x46 + int 0x67 + mov EMSver,ax + } + return(EMSver); +} + +int main() +{ + int pee; + int rpee; + pee=EMVer(); + rpee=EMReady(); + printf("%x\n", pee); + printf("%x\n", rpee); + return 0; +} diff --git a/src/lib/exmm/emm.c b/src/lib/exmm/emm.c index f76a59e1..60238150 100644 --- a/src/lib/exmm/emm.c +++ b/src/lib/exmm/emm.c @@ -41,7 +41,7 @@ void main(void) exit(1); } else - printf("Emm available\n"); + printf("Emm %x available\n", EMVer()); pEmmData = (char *)EMMalloc(&hEData, 6); // get 6 * 16K bytes - 96K if ( pEmmData == NULL ) diff --git a/src/lib/exmm/memory.c b/src/lib/exmm/memory.c index 423c89ef..75b86646 100644 --- a/src/lib/exmm/memory.c +++ b/src/lib/exmm/memory.c @@ -3,11 +3,13 @@ * Module: All Modules * Author(s): Chris Somers * Date: December 1, 1992 - * Version: V.1.1 + * Version: V.1.1w minor mods by Alex Russell to simplify Must use memory model with FAR code + + Open Watcom patch by sparky4~ */ @@ -29,7 +31,7 @@ static int ActiveEMList[MAXEMHANDLES]; static unsigned int EMMSeg; //forward declarations --------------------------------- - + static int EMPresent(void); static int EMReady(void); static unsigned int GetEMMSeg(void); @@ -39,7 +41,21 @@ static int FreeEMHandle(int Handle); static int GetNumPages(int Handle); static int EMStateSave(int Handle); static void EMStateRestore(int Handle); - + +/********************************************************************/ + +int +EMVer(void) +{ + int EMSver; + _asm + { + mov ah,0x46 + int 0x67 + mov EMSver,ax + } + return(EMSver); +} /********************************************************************/ int @@ -80,22 +96,25 @@ EMMInstalled(void) unsigned long EMMCoreLeft(void) { - unsigned Pages; - unsigned long RtnVal = 0UL; - - _asm { - mov ah,0x42 /* get EMM free page count */ - int 0x67 - or ah,ah - js InternalError /* returns 80, 81, or 84 hex on error */ - mov Pages,bx /* number of unallocated 16K pages */ + unsigned Pages; + unsigned long RtnVal = 0UL; + unsigned short interr=0; + + _asm { + mov ah,0x42 /* get EMM free page count */ + int 0x67 + or ah,ah + js InternalError /* returns 80, 81, or 84 hex on error */ + mov Pages,bx /* number of unallocated 16K pages */ + jmp End InternalError: - ret - } - RtnVal = ((unsigned long)Pages << 14); /* Pages * 16K rtns bytes*/ + mov interr,1 + End: + } + if(!interr) + RtnVal = ((unsigned long)Pages << 14); /* Pages * 16K rtns bytes*/ -//InternalError: - return(RtnVal); + return(RtnVal); } /* End of EMMCoreLeft() */ /********************************************************************/ @@ -131,25 +150,24 @@ EMMalloc(int *Handle, int Pages) int EMMRealloc(int Handle, int Pages) { - int RtnCode = FALSE; - - if (!EMMSeg || (Pages < 0) || (Pages > 1020)) { - return (FALSE); - } - _asm { - mov ah,0x51 /* change # of pages */ - mov bx,Pages - mov dx,Handle - int 0x67 - or ah,ah - js NoGo /* returns 80 to 88 hex on error */ + int RtnCode = FALSE; + + if (!EMMSeg || (Pages < 0) || (Pages > 1020)) { + return (FALSE); + } + _asm { + mov ah,0x51 /* change # of pages */ + mov bx,Pages + mov dx,Handle + int 0x67 + or ah,ah + js NoGo /* returns 80 to 88 hex on error */ + mov RtnCode,TRUE NoGo: - ret - } - RtnCode = TRUE; + } //NoGo: - return(RtnCode); + return(RtnCode); } /* End of EMMRealloc() */ /********************************************************************/ @@ -253,16 +271,20 @@ EMPresent(void) static int EMReady(void) -{ - _asm { - mov ah,0x40 /* get EM Manager Status */ - int 0x67 - or ah,ah - jns Ready /* returns 80, 81, or 84 hex on error */ +{ + int EMSready; + _asm { + mov ah,0x40 /* get EM Manager Status */ + int 0x67 + or ah,ah + jns Ready /* returns 80, 81, or 84 hex on error */ + mov EMSready,FALSE + jmp End Ready: - ret - } - return(FALSE); + mov EMSready,TRUE + End: + } + return(EMSready); //Ready: // return(TRUE); @@ -273,18 +295,20 @@ EMReady(void) static unsigned int GetEMMSeg(void) { - unsigned int EMSegment; - - _asm { - mov ah,0x41 /* get EMM page frame segment */ - int 0x67 - or ah,ah - js NotReady /* returns 80, 81, or 84 hex on error */ - mov EMSegment,bx + unsigned int EMSegment; + + _asm { + mov ah,0x41 /* get EMM page frame segment */ + int 0x67 + or ah,ah + js NotReady /* returns 80, 81, or 84 hex on error */ + mov EMSegment,bx + jmp End NotReady: - ret - } - return(EMSegment); /*lint !e530 */ + mov EMSegment,NOTREADY + End: + } + return(EMSegment); /*lint !e530 */ //NotReady: // return(NOTREADY); @@ -295,19 +319,21 @@ GetEMMSeg(void) static int GetEMHandle(int NumPages) { - int NewHandle; - - _asm { - mov ah,0x43 /* get handle and allocate EM */ - mov bx,NumPages /* number of 16K pages to allocate */ - int 0x67 - or ah,ah /* returns 80 to 89 hex on error */ - js NoHandle - mov NewHandle,dx /* retrieve handle */ + int NewHandle; + + _asm { + mov ah,0x43 /* get handle and allocate EM */ + mov bx,NumPages /* number of 16K pages to allocate */ + int 0x67 + or ah,ah /* returns 80 to 89 hex on error */ + js NoHandle + mov NewHandle,dx /* retrieve handle */ + jmp End NoHandle: - ret - } - return(NewHandle); + mov NewHandle,NO_DATA + End: + } + return(NewHandle); //NoHandle: // return(NO_DATA); @@ -318,40 +344,46 @@ GetEMHandle(int NumPages) static int EMMap(int Handle, int LogPg, int PhyPg) { - int RtnCode = NO_DATA; - - _asm { - mov ax,PhyPg /* physical page: 0 - 3 in AL only */ - mov ah,0x44 /* map logical to physical page */ - mov bx,LogPg /* logical page: 0 - 1020 */ - mov dx,Handle - int 0x67 - or ah,ah /* returns 80 to 8B hex on error */ - js NoMapping + int RtnCode = NO_DATA; + + _asm { + mov ax,PhyPg /* physical page: 0 - 3 in AL only */ + mov ah,0x44 /* map logical to physical page */ + mov bx,LogPg /* logical page: 0 - 1020 */ + mov dx,Handle + int 0x67 + or ah,ah /* returns 80 to 8B hex on error */ + js NoMapping + mov RtnCode,SUCCESS +// jmp End NoMapping: - ret - } - RtnCode = SUCCESS; +// End: + } +// RtnCode = SUCCESS; //NoMapping: - return(RtnCode); + return(RtnCode); } /* End of EMMap() */ /********************************************************************/ static int FreeEMHandle(int Handle) -{ - _asm { - mov ah,0x45 /* free handle and deallocate EM */ - mov dx,Handle - int 0x67 - or ah,ah /* returns 80 to 86 hex on error */ - js NotFreed +{ + int FreeEMShandle; + _asm { + mov ah,0x45 /* free handle and deallocate EM */ + mov dx,Handle + int 0x67 + or ah,ah /* returns 80 to 86 hex on error */ + js NotFreed + mov FreeEMShandle,SUCCESS + jmp End NotFreed: /* must retry if unsuccessful */ - ret - } - return(SUCCESS); + mov FreeEMShandle,NO_DATA + End: + } + return(FreeEMShandle); //NotFreed: /* must retry if unsuccessful */ // return(NO_DATA); @@ -362,21 +394,22 @@ FreeEMHandle(int Handle) static int GetNumPages(int Handle) { - int NumPages = 0; - - _asm { - mov ah,0x4C /* get allocated pages for Handle */ - mov dx,Handle - int 0x67 - or ah,ah /* returns 80 to 84 hex on error */ - js BadHandle - mov NumPages,bx + int NumPages = 0; + + _asm { + mov ah,0x4C /* get allocated pages for Handle */ + mov dx,Handle + int 0x67 + or ah,ah /* returns 80 to 84 hex on error */ + js BadHandle + mov NumPages,bx +// jmp End BadHandle: - ret - } +// End: + } //BadHandle: - return(NumPages); + return(NumPages); } /* End of GetNumPages() */ /********************************************************************/ @@ -384,17 +417,17 @@ GetNumPages(int Handle) static int EMStateSave(int Handle) { - int RtnCode = NO_MEMORY; - _asm { - mov ah,0x47 /* save page map under Handle */ - mov dx,Handle - int 0x67 - or ah,ah - js Unsaved /* out of save space error */ + int RtnCode = NO_MEMORY; + _asm { + mov ah,0x47 /* save page map under Handle */ + mov dx,Handle + int 0x67 + or ah,ah + js Unsaved /* out of save space error */ + mov RtnCode,SUCCESS Unsaved: - ret - } - RtnCode = SUCCESS; + } +// RtnCode = SUCCESS; //Unsaved: return(RtnCode); diff --git a/src/lib/exmm/memory.h b/src/lib/exmm/memory.h index 8abc7d6b..9cd266b2 100644 --- a/src/lib/exmm/memory.h +++ b/src/lib/exmm/memory.h @@ -18,7 +18,8 @@ #define CMM 0 #define EMM 1 - + +extern int EMVer(void); extern int OpenEMM(void); extern void CloseEMM(void); extern int EMMInstalled(void); diff --git a/src/lib/exmm/x.bat b/src/lib/exmm/x.bat index 81079d7c..ca0abb37 100644 --- a/src/lib/exmm/x.bat +++ b/src/lib/exmm/x.bat @@ -1,7 +1,9 @@ -bcc -mh -c memory.c -bcc -mh emm.c memory.obj -move emm.exe em0.exe -move memory.obj memory.ob -wdis -a memory.ob > memory.asm -wasm -c -mh -0 memory.asm -wcp -ecc -mh emm.c memory.obj \z\borlandc\lib\ch.lib \ No newline at end of file +rem bcc -mh -c memory.c +rem bcc -mh emm.c memory.obj +rem move emm.exe em0.exe +rem move memory.obj memory.ob +rem wdis -a memory.ob > memory.asm +rem wasm -c -mh -0 memory.asm +rem wcp -ecc -mh emm.c memory.obj \z\borlandc\lib\ch.lib +wcc -0 -mh memory.c +wcp -mh emm.c memory.obj -- 2.39.5