From fa6e5edb63e179496bf10150ec3a14715d852101 Mon Sep 17 00:00:00 2001 From: sparky4 <sparky4@cock.li> Date: Mon, 20 Jul 2015 20:46:58 -0500 Subject: [PATCH] ok about to add the massive page management stuff modified: exmmtest.exe modified: src/lib/16_mm.c modified: src/lib/16_mm.h --- exmmtest.exe | Bin 54562 -> 54563 bytes src/lib/16_mm.c | 42 +++++++++++++++++++++++++++++++++++++++++- src/lib/16_mm.h | 1 + 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/exmmtest.exe b/exmmtest.exe index 858770f84b011519f39e6d69c1795b58a5a61948..45ae666753ac250f49b98dc31c5bba3caa7133eb 100644 GIT binary patch delta 123 zcmV->0EGXdssp2{1F({h0l|}#k0Swjledp20Rgk$kKqUbGPA*$I0^yulfjr6vl62L z90H{SlfA+$lfab)lSaQ~0@VPMtiKuot&_*UX#wezF~C;=<&%lPWC7Zf?!a{c(UWAs dZ2|R@(!pl|^^-cnTmp*=vzWq$5(H63003GtH!uJI delta 122 zcmV-=0EPdfsso~`1F({h0l<@!k0Swiledp20RXe#kKqUbF|)y#I0^ytlfjr6vl62L z90H^RlfJ?%lfab)lSaQ~0WFiQzZwCBlgPhm0l||pz*hmilZwD(0kV_tz;ywslV!ne c0nL-s!Dj)@lRLs(0^<s^nZkw=1W-l*0P{XI$p8QV diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c index c7577924..24f78c5b 100644 --- a/src/lib/16_mm.c +++ b/src/lib/16_mm.c @@ -307,7 +307,7 @@ byte MM_MapEMS(mminfo_t *mm) return 0; } -void MM_MapXEMS(mminfo_t *mm) +byte MM_MapXEMS(mminfo_t *mm) { //SUB EMS.MapXPages (PhysicalStart, LogicalStart, NumPages, Handle) @@ -332,6 +332,46 @@ void MM_MapXEMS(mminfo_t *mm) // EMS.Error = (Regs.ax AND &HFF00&) \ &H100 //Store the status code //END SUB +/* +char str[80];//,str2[10]; + unsigned EMShandle; + byte err; + boolean errorflag=false; + int i; + union REGS CPURegs; + EMShandle=mm->EMShandle; + + for (i=0;i<MAPPAGES;i++) + { + __asm + { + mov ah,EMS_MAPPAGE + mov bx,[i] // logical page + mov al,bl // physical page + mov dx,[EMShandle] // handle + int EMS_INT + or ah,ah + jnz error + jmp End + error: + mov err,ah + mov errorflag,1 + End: + } + if(errorflag==true) + { + //err = CPURegs.h.ah; + strcpy(str,"MM_MapEMS: EMS error 0x"); + //itoa(err,str2,16); + //strcat(str,&err); + //printf("%s\n",str); + printf("%s%x\n",str, err); + //printf("FACK! %x\n", err); + return err; + } + } + return 0; +*/ } //========================================================================== diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index a665b224..8570016c 100644 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -166,6 +166,7 @@ boolean MML_CheckForEMS(void); byte MML_SetupEMS(mminfo_t *mm); void MML_ShutdownEMS(mminfo_t *mm); byte MM_MapEMS(mminfo_t *mm); +byte MM_MapXEMS(mminfo_t *mm); boolean MML_CheckForXMS(mminfo_t *mm); void MML_SetupXMS(mminfo_t *mm, mminfotype *mmi); void MML_ShutdownXMS(mminfo_t *mm); -- 2.39.5