From: sparky4 <sparky4@cock.li>
Date: Thu, 29 Sep 2016 20:04:45 +0000 (-0500)
Subject: xms Works but it is quick and dirty and reliese on older C code with _REG defs and... 
X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;h=093c85d77838f681dee4a6cf13264a3e30b63d4f;p=16.git

xms Works but it is quick and dirty and reliese on older C code with _REG defs and the Assembly translation is not smooth
---

diff --git a/DEBUG.16W b/DEBUG.16W
index 35c40cbf..dee25a22 100755
--- a/DEBUG.16W
+++ b/DEBUG.16W
@@ -1,210 +1,210 @@
-Seg:0	Size:9844	Owner:0x0
+Seg:0	Size:9855	Owner:0x0
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0
-Seg:2674	Size:256	Owner:0x18a8
+Seg:267f	Size:256	Owner:0x18a8
 ++++
-Seg:27f0	Size:44	Owner:0x0
+Seg:27fb	Size:44	Owner:0x0
 ++
-Seg:281c	Size:256	Owner:0x1696
+Seg:2827	Size:256	Owner:0x1696
 ++++
-Seg:291c	Size:256	Owner:0x1698
+Seg:2927	Size:256	Owner:0x1698
 ++++
-Seg:2a1c	Size:256	Owner:0x169a
-++++
-Seg:2b1c	Size:256	Owner:0x169c
+Seg:2a27	Size:256	Owner:0x169a
 +++++
-Seg:2c1c	Size:256	Owner:0x169e
+Seg:2b27	Size:256	Owner:0x169c
 ++++
-Seg:2d1c	Size:256	Owner:0x16a0
+Seg:2c27	Size:256	Owner:0x169e
 ++++
-Seg:2e1c	Size:256	Owner:0x16a2
+Seg:2d27	Size:256	Owner:0x16a0
 ++++
-Seg:2f1c	Size:256	Owner:0x16a4
+Seg:2e27	Size:256	Owner:0x16a2
 ++++
-Seg:301c	Size:256	Owner:0x16a6
+Seg:2f27	Size:256	Owner:0x16a4
 +++++
-Seg:311c	Size:256	Owner:0x16a8
+Seg:3027	Size:256	Owner:0x16a6
 ++++
-Seg:321c	Size:256	Owner:0x16aa
+Seg:3127	Size:256	Owner:0x16a8
 ++++
-Seg:331c	Size:256	Owner:0x16ac
+Seg:3227	Size:256	Owner:0x16aa
 ++++
-Seg:341c	Size:256	Owner:0x16ae
+Seg:3327	Size:256	Owner:0x16ac
 ++++
-Seg:351c	Size:256	Owner:0x16b0
+Seg:3427	Size:256	Owner:0x16ae
 +++++
-Seg:361c	Size:256	Owner:0x16b2
+Seg:3527	Size:256	Owner:0x16b0
 ++++
-Seg:371c	Size:256	Owner:0x16b4
+Seg:3627	Size:256	Owner:0x16b2
 ++++
-Seg:381c	Size:256	Owner:0x16b6
+Seg:3727	Size:256	Owner:0x16b4
 ++++
-Seg:391c	Size:256	Owner:0x16b8
+Seg:3827	Size:256	Owner:0x16b6
 ++++
-Seg:3a1c	Size:256	Owner:0x16ba
+Seg:3927	Size:256	Owner:0x16b8
 +++++
-Seg:3b1c	Size:256	Owner:0x16bc
+Seg:3a27	Size:256	Owner:0x16ba
 ++++
-Seg:3c1c	Size:256	Owner:0x16be
+Seg:3b27	Size:256	Owner:0x16bc
 ++++
-Seg:3d1c	Size:256	Owner:0x16c0
+Seg:3c27	Size:256	Owner:0x16be
 ++++
-Seg:3e1c	Size:256	Owner:0x16c2
+Seg:3d27	Size:256	Owner:0x16c0
 ++++
-Seg:3f1c	Size:256	Owner:0x16c4
+Seg:3e27	Size:256	Owner:0x16c2
 +++++
-Seg:401c	Size:256	Owner:0x16c6
+Seg:3f27	Size:256	Owner:0x16c4
 ++++
-Seg:411c	Size:256	Owner:0x16c8
+Seg:4027	Size:256	Owner:0x16c6
 ++++
-Seg:421c	Size:256	Owner:0x16ca
+Seg:4127	Size:256	Owner:0x16c8
 ++++
-Seg:431c	Size:256	Owner:0x16cc
+Seg:4227	Size:256	Owner:0x16ca
 ++++
-Seg:441c	Size:256	Owner:0x16ce
+Seg:4327	Size:256	Owner:0x16cc
 +++++
-Seg:451c	Size:256	Owner:0x16d0
+Seg:4427	Size:256	Owner:0x16ce
 ++++
-Seg:461c	Size:256	Owner:0x16d2
+Seg:4527	Size:256	Owner:0x16d0
 ++++
-Seg:471c	Size:256	Owner:0x16d4
+Seg:4627	Size:256	Owner:0x16d2
 ++++
-Seg:481c	Size:256	Owner:0x16d6
+Seg:4727	Size:256	Owner:0x16d4
 ++++
-Seg:491c	Size:256	Owner:0x16d8
+Seg:4827	Size:256	Owner:0x16d6
 +++++
-Seg:4a1c	Size:256	Owner:0x16da
+Seg:4927	Size:256	Owner:0x16d8
 ++++
-Seg:4b1c	Size:256	Owner:0x16dc
+Seg:4a27	Size:256	Owner:0x16da
 ++++
-Seg:4c1c	Size:256	Owner:0x16de
+Seg:4b27	Size:256	Owner:0x16dc
 ++++
-Seg:4d1c	Size:256	Owner:0x16e0
+Seg:4c27	Size:256	Owner:0x16de
 ++++
-Seg:4e1c	Size:256	Owner:0x16e2
+Seg:4d27	Size:256	Owner:0x16e0
 +++++
-Seg:4f1c	Size:256	Owner:0x16e4
+Seg:4e27	Size:256	Owner:0x16e2
 ++++
-Seg:501c	Size:256	Owner:0x16e6
+Seg:4f27	Size:256	Owner:0x16e4
 ++++
-Seg:511c	Size:256	Owner:0x16e8
+Seg:5027	Size:256	Owner:0x16e6
 ++++
-Seg:521c	Size:256	Owner:0x16ea
+Seg:5127	Size:256	Owner:0x16e8
 ++++
-Seg:531c	Size:256	Owner:0x16ec
+Seg:5227	Size:256	Owner:0x16ea
 +++++
-Seg:541c	Size:256	Owner:0x16ee
+Seg:5327	Size:256	Owner:0x16ec
 ++++
-Seg:551c	Size:256	Owner:0x16f0
+Seg:5427	Size:256	Owner:0x16ee
 ++++
-Seg:561c	Size:256	Owner:0x16f2
+Seg:5527	Size:256	Owner:0x16f0
 ++++
-Seg:571c	Size:256	Owner:0x16f4
+Seg:5627	Size:256	Owner:0x16f2
 ++++
-Seg:581c	Size:256	Owner:0x16f6
+Seg:5727	Size:256	Owner:0x16f4
 +++++
-Seg:591c	Size:256	Owner:0x16f8
+Seg:5827	Size:256	Owner:0x16f6
 ++++
-Seg:5a1c	Size:256	Owner:0x16fa
+Seg:5927	Size:256	Owner:0x16f8
 ++++
-Seg:5b1c	Size:256	Owner:0x16fc
+Seg:5a27	Size:256	Owner:0x16fa
 ++++
-Seg:5c1c	Size:256	Owner:0x16fe
+Seg:5b27	Size:256	Owner:0x16fc
 ++++
-Seg:5d1c	Size:256	Owner:0x1700
+Seg:5c27	Size:256	Owner:0x16fe
 +++++
-Seg:5e1c	Size:256	Owner:0x1702
+Seg:5d27	Size:256	Owner:0x1700
 ++++
-Seg:5f1c	Size:256	Owner:0x1704
+Seg:5e27	Size:256	Owner:0x1702
 ++++
-Seg:601c	Size:256	Owner:0x1706
+Seg:5f27	Size:256	Owner:0x1704
 ++++
-Seg:611c	Size:256	Owner:0x1708
+Seg:6027	Size:256	Owner:0x1706
 ++++
-Seg:621c	Size:256	Owner:0x170a
+Seg:6127	Size:256	Owner:0x1708
 +++++
-Seg:631c	Size:256	Owner:0x170c
+Seg:6227	Size:256	Owner:0x170a
 ++++
-Seg:641c	Size:256	Owner:0x170e
+Seg:6327	Size:256	Owner:0x170c
 ++++
-Seg:651c	Size:256	Owner:0x1710
+Seg:6427	Size:256	Owner:0x170e
 ++++
-Seg:661c	Size:256	Owner:0x1712
+Seg:6527	Size:256	Owner:0x1710
 ++++
-Seg:671c	Size:256	Owner:0x1714
+Seg:6627	Size:256	Owner:0x1712
 +++++
-Seg:681c	Size:256	Owner:0x1716
+Seg:6727	Size:256	Owner:0x1714
 ++++
-Seg:691c	Size:256	Owner:0x1718
+Seg:6827	Size:256	Owner:0x1716
 ++++
-Seg:6a1c	Size:256	Owner:0x171a
+Seg:6927	Size:256	Owner:0x1718
 ++++
-Seg:6b1c	Size:256	Owner:0x171c
+Seg:6a27	Size:256	Owner:0x171a
 ++++
-Seg:6c1c	Size:256	Owner:0x171e
+Seg:6b27	Size:256	Owner:0x171c
 +++++
-Seg:6d1c	Size:256	Owner:0x1720
+Seg:6c27	Size:256	Owner:0x171e
 ++++
-Seg:6e1c	Size:256	Owner:0x1722
+Seg:6d27	Size:256	Owner:0x1720
 ++++
-Seg:6f1c	Size:256	Owner:0x1724
+Seg:6e27	Size:256	Owner:0x1722
 ++++
-Seg:701c	Size:256	Owner:0x1726
+Seg:6f27	Size:256	Owner:0x1724
 ++++
-Seg:711c	Size:256	Owner:0x1728
+Seg:7027	Size:256	Owner:0x1726
 +++++
-Seg:721c	Size:256	Owner:0x172a
+Seg:7127	Size:256	Owner:0x1728
 ++++
-Seg:731c	Size:256	Owner:0x172c
+Seg:7227	Size:256	Owner:0x172a
 ++++
-Seg:741c	Size:256	Owner:0x172e
+Seg:7327	Size:256	Owner:0x172c
 ++++
-Seg:751c	Size:256	Owner:0x1730
+Seg:7427	Size:256	Owner:0x172e
 ++++
-Seg:761c	Size:256	Owner:0x1732
+Seg:7527	Size:256	Owner:0x1730
 +++++
-Seg:771c	Size:256	Owner:0x1734
+Seg:7627	Size:256	Owner:0x1732
 ++++
-Seg:781c	Size:256	Owner:0x1736
+Seg:7727	Size:256	Owner:0x1734
 ++++
-Seg:791c	Size:256	Owner:0x1738
+Seg:7827	Size:256	Owner:0x1736
 ++++
-Seg:7a1c	Size:256	Owner:0x173a
+Seg:7927	Size:256	Owner:0x1738
 ++++
-Seg:7b1c	Size:256	Owner:0x173c
+Seg:7a27	Size:256	Owner:0x173a
 +++++
-Seg:7c1c	Size:256	Owner:0x173e
+Seg:7b27	Size:256	Owner:0x173c
 ++++
-Seg:7d1c	Size:256	Owner:0x1740
+Seg:7c27	Size:256	Owner:0x173e
 ++++
-Seg:7e1c	Size:256	Owner:0x1742
+Seg:7d27	Size:256	Owner:0x1740
 ++++
-Seg:7f1c	Size:256	Owner:0x1744
+Seg:7e27	Size:256	Owner:0x1742
 ++++
-Seg:801c	Size:256	Owner:0x1746
+Seg:7f27	Size:256	Owner:0x1744
 +++++
-Seg:811c	Size:256	Owner:0x1748
+Seg:8027	Size:256	Owner:0x1746
 ++++
-Seg:821c	Size:256	Owner:0x174a
+Seg:8127	Size:256	Owner:0x1748
 ++++
-Seg:831c	Size:256	Owner:0x174c
+Seg:8227	Size:256	Owner:0x174a
 ++++
-Seg:841c	Size:256	Owner:0x174e
+Seg:8327	Size:256	Owner:0x174c
 ++++
-Seg:851c	Size:256	Owner:0x1750
+Seg:8427	Size:256	Owner:0x174e
 +++++
-Seg:861c	Size:256	Owner:0x1752
+Seg:8527	Size:256	Owner:0x1750
 ++++
-Seg:871c	Size:256	Owner:0x1754
+Seg:8627	Size:256	Owner:0x1752
 ++++
-Seg:881c	Size:256	Owner:0x1756
+Seg:8727	Size:256	Owner:0x1754
 ++++
-Seg:891c	Size:256	Owner:0x1758
+Seg:8827	Size:256	Owner:0x1756
 ++++
-Seg:8a1c	Size:256	Owner:0x175a
+Seg:8927	Size:256	Owner:0x1758
 +++++
-Seg:8b1c	Size:256	Owner:0x175c
+Seg:8a27	Size:256	Owner:0x175a
+++++
+Seg:8b27	Size:256	Owner:0x175c
 ++++
-Seg:8c1c	Size:273	Owner:0xe400
+Seg:8c27	Size:273	Owner:0xe400
 ++++
-Seg:b81c	Size:18403	Owner:0x0
+Seg:b827	Size:18392	Owner:0x0
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
\ No newline at end of file
diff --git a/HEAP.16W b/HEAP.16W
index df0e710e..bbcc2ad3 100755
--- a/HEAP.16W
+++ b/HEAP.16W
@@ -1,35 +1,35 @@
 
 	== default ==
 
-  USED block at 28120016 of size 66
-  USED block at 28120058 of size 66
-  FREE block at 2812009a of size 18
-  USED block at 281200ac of size 136
-  USED block at 28120134 of size 20
-  FREE block at 28120148 of size 7860
+  USED block at 281d0016 of size 66
+  USED block at 281d0058 of size 66
+  FREE block at 281d009a of size 18
+  USED block at 281d00ac of size 136
+  USED block at 281d0134 of size 20
+  FREE block at 281d0148 of size 7860
 OK - end of heap
 
 	== near ==
 
-  USED block at 1811e436 of size 12
-  USED block at 1811e442 of size 332
-  USED block at 1811e58e of size 52
-  USED block at 1811e5c2 of size 20
-  USED block at 1811e5d6 of size 20
-  USED block at 1811e5ea of size 20
-  USED block at 1811e5fe of size 20
-  USED block at 1811e612 of size 20
-  USED block at 1811e626 of size 6614
+  USED block at 181ce436 of size 12
+  USED block at 181ce442 of size 332
+  USED block at 181ce58e of size 52
+  USED block at 181ce5c2 of size 20
+  USED block at 181ce5d6 of size 20
+  USED block at 181ce5ea of size 20
+  USED block at 181ce5fe of size 20
+  USED block at 181ce612 of size 20
+  USED block at 181ce626 of size 6614
 OK - end of heap
 
 	== far ==
 
-  USED block at 28120016 of size 66
-  USED block at 28120058 of size 66
-  USED block at 2812009a of size 18
-  USED block at 281200ac of size 136
-  USED block at 28120134 of size 20
-  USED block at 28120148 of size 7860
+  USED block at 281d0016 of size 66
+  USED block at 281d0058 of size 66
+  USED block at 281d009a of size 18
+  USED block at 281d00ac of size 136
+  USED block at 281d0134 of size 20
+  USED block at 281d0148 of size 7860
 OK - end of heap
 
 Memory Type         Total      Used       Free
diff --git a/src/exmmtest.c b/src/exmmtest.c
index 6d6e9a85..f68d148e 100755
--- a/src/exmmtest.c
+++ b/src/exmmtest.c
@@ -177,12 +177,12 @@ for(w=0;w<2;w++)
 	printf("&bigb=%Fp ", &bigbuffer);
 	//printf("&bigb=%04x", &bigbuffer);
 	printf("\n");
-#endif
 	printf("========================================\n");
+#endif
 #ifdef __WATCOMC__
 //this is far	printf("Total free:			%lu\n", (dword)(GetFreeSize()));
-	printf("Total near free:		%lu\n", (dword)(GetNearFreeSize()));
-	printf("Total far free:			%lu\n", (dword)(GetFarFreeSize()));
+	printf("Total near free:		%lub\n", (dword)(GetNearFreeSize()));
+	printf("Total far free:			%lub\n", (dword)(GetFarFreeSize()));
 	heapdump(&gvar);
 	segatesuto();
 #endif
diff --git a/src/lib/16_mm.c b/src/lib/16_mm.c
index 51b4925a..282814bd 100755
--- a/src/lib/16_mm.c
+++ b/src/lib/16_mm.c
@@ -1616,25 +1616,24 @@ void MM_Report_(global_game_variables_t *gvar)
 	printf("========================================\n");
 	if(MML_CheckForEMS())
 	{
-		printf("	LIMEMS\n");
-		printf("		EMM v%x.%x available\n", gvar->pm.emm.EMSVer>>4,gvar->pm.emm.EMSVer&0x0F);
-		printf("		totalEMSpages:	%u	", gvar->pm.emm.totalEMSpages); printf("freeEMSpages:	%u\n", gvar->pm.emm.freeEMSpages);
-		printf("		EMSPageFrame:	%04x\n", gvar->pm.emm.EMSPageFrame);
+		printf("	%cLIMEMS	%u\n", 0xC9, gvar->pm.emm.EMSPresent);
+		printf("	%c%cEMM v%x.%x available\n", 0xC7, 0xC4, gvar->pm.emm.EMSVer>>4,gvar->pm.emm.EMSVer&0x0F);
+		printf("	%c%ctotalEMSpages:	%u	", 0xC7, 0xC4, gvar->pm.emm.totalEMSpages); printf("freeEMSpages:	%u\n", gvar->pm.emm.freeEMSpages);
+		printf("	%c%cEMSPageFrame:	%04x\n", 0xD3, 0xC4, gvar->pm.emm.EMSPageFrame);
 	}
 	if(MML_CheckForXMS())
 	{
-		printf("	XMS\n");
+		printf("	%cXMS	%u\n", 0xC9, gvar->pm.xmm.XMSPresent);
 //++++		printf("		XMS v%x.%x available\n", gvar->pm.xmm.XMSVer>>4,gvar->pm.xmm.XMSVer&0x0F);
-		printf("		XMSDriver:	%Fp\n", XMSDriver);
-		printf("		XMSHandle:	%04x\n", gvar->pm.xmm.XMSHandle);
+		printf("	%c%cXMSDriver:	%Fp\n", 0xC7, 0xC4, XMSDriver);
+		printf("	%c%cXMSHandle:	%04x\n", 0xD3, 0xC4, gvar->pm.xmm.XMSHandle);
 	}
-	printf("nearheap:	%lu		", gvar->mmi.nearheap); printf("farheap:	%lu\n", gvar->mmi.farheap);
-	if(MML_CheckForEMS()) printf("EMSmem:		%lu	", gvar->mmi.EMSmem); if(MML_CheckForXMS()) printf("XMSmem:		%lu", gvar->mmi.XMSmem); printf("\n");
-	printf("convmem:\n"); DebugMemory_(gvar, 0);
+	printf("	%cConv.	%u\n", 0xC9, gvar->pm.mm.MainPresent); DebugMemory_(gvar, 0);
 	//printf("mainmem:	%lu\n", gvar->mmi.mainmem);
 	//printf("Total convmem:	%lu	", gvar->mmi.mainmem); printf("TotalFree:	%lu	", MM_TotalFree(gvar)+gvar->mmi.EMSmem+gvar->mmi.XMSmem+gvar->mmi.XMSmem); printf("TotalUsed:	%lu\n", gvar->mmi.mainmem);
 	//printf("			UnusedMemory:	%lu\n", MM_UnusedMemory(gvar));
-
+	printf("nearheap:	%lu		", gvar->mmi.nearheap); printf("farheap:	%lu\n", gvar->mmi.farheap);
+	if(MML_CheckForEMS()) printf("EMSmem:		%lu	", gvar->mmi.EMSmem); if(MML_CheckForXMS()) printf("XMSmem:		%lu", gvar->mmi.XMSmem); printf("\n");
 }
 
 //==========================================================================
diff --git a/src/lib/16_pm.c b/src/lib/16_pm.c
index 191061f0..c7488a2a 100755
--- a/src/lib/16_pm.c
+++ b/src/lib/16_pm.c
@@ -1546,14 +1546,14 @@ PM_Startup(global_game_variables_t *gvar)
 		PML_StartupEMS(gvar);
 	if (!noxms && MML_CheckForXMS())
 		PML_StartupXMS(gvar);
+	if(!nomain)
+		PML_StartupMainMem(gvar);
 
-	if (!nomain && !gvar->pm.emm.EMSPresent)
+	if (!gvar->pm.mm.MainPresent && !gvar->pm.emm.EMSPresent && !gvar->pm.xmm.XMSPresent)
 	{
-		printf("PM_Startup: No main or EMS\n");
-		exit(-5);
+		Quit("PM_Startup: No main or EMS\n");
 		//return;
 	}
-	PML_StartupMainMem(gvar);
 
 	PM_Reset(gvar);
 
diff --git a/src/lib/16_tail.c b/src/lib/16_tail.c
index f9f6fb56..8ebc0c35 100755
--- a/src/lib/16_tail.c
+++ b/src/lib/16_tail.c
@@ -55,7 +55,7 @@ void DebugMemory_(global_game_variables_t *gvar, boolean q)
 	printf("		DebugMemory_\n");
 	printf("========================================\n");}
 	if(q) { printf("Memory Usage\n");
-	printf("------------\n"); }else printf("  ");
+	printf("------------\n"); }else printf("	%c%c", 0xD3, 0xC4);
 	printf("Total:	"); if(q) printf("	"); printf("%uk", gvar->mmi.mainmem/1024);
 	if(q) printf("\n"); else printf("	");
 	printf("Free:	"); if(q) printf("	"); printf("%uk", MM_UnusedMemory(gvar)/1024);