From f140a355c36fae1da7e962c9828983e1fa131ad1 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Wed, 28 Sep 2016 14:42:57 -0500 Subject: [PATCH] ====XMS MOSTLY translated but crashes EXMMTEST.EXE ==== --- DEBUG.16W | 212 ++++++++++++++++++++++++------------------------ HEAP.16W | 52 ++++++------ MMDUMP.16W | Bin 2244 -> 2244 bytes bcexmm.exe | Bin 105984 -> 106056 bytes bcexmm.prj | Bin 6926 -> 6926 bytes src/lib/16_mm.c | 2 +- src/lib/16_mm.h | 3 +- src/lib/16_pm.c | 38 ++++----- 8 files changed, 154 insertions(+), 153 deletions(-) diff --git a/DEBUG.16W b/DEBUG.16W index 5aadb17d..0d535963 100755 --- a/DEBUG.16W +++ b/DEBUG.16W @@ -1,210 +1,210 @@ -Seg:0 Size:9818 Owner:0x0 +Seg:0 Size:9830 Owner:0x0 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++0 -Seg:265a Size:256 Owner:0x18a8 -++++ -Seg:27d7 Size:44 Owner:0x0 +Seg:2666 Size:256 Owner:0x18a8 ++++++ +Seg:27e2 Size:44 Owner:0x0 ++ -Seg:2803 Size:256 Owner:0x1696 +Seg:280e Size:256 Owner:0x1696 ++++ -Seg:2903 Size:256 Owner:0x1698 +Seg:290e Size:256 Owner:0x1698 ++++ -Seg:2a03 Size:256 Owner:0x169a +Seg:2a0e Size:256 Owner:0x169a ++++ -Seg:2b03 Size:256 Owner:0x169c +Seg:2b0e Size:256 Owner:0x169c ++++ -Seg:2c03 Size:256 Owner:0x169e +Seg:2c0e Size:256 Owner:0x169e +++++ -Seg:2d03 Size:256 Owner:0x16a0 +Seg:2d0e Size:256 Owner:0x16a0 ++++ -Seg:2e03 Size:256 Owner:0x16a2 +Seg:2e0e Size:256 Owner:0x16a2 ++++ -Seg:2f03 Size:256 Owner:0x16a4 +Seg:2f0e Size:256 Owner:0x16a4 ++++ -Seg:3003 Size:256 Owner:0x16a6 +Seg:300e Size:256 Owner:0x16a6 ++++ -Seg:3103 Size:256 Owner:0x16a8 +Seg:310e Size:256 Owner:0x16a8 +++++ -Seg:3203 Size:256 Owner:0x16aa +Seg:320e Size:256 Owner:0x16aa ++++ -Seg:3303 Size:256 Owner:0x16ac +Seg:330e Size:256 Owner:0x16ac ++++ -Seg:3403 Size:256 Owner:0x16ae +Seg:340e Size:256 Owner:0x16ae ++++ -Seg:3503 Size:256 Owner:0x16b0 +Seg:350e Size:256 Owner:0x16b0 ++++ -Seg:3603 Size:256 Owner:0x16b2 +Seg:360e Size:256 Owner:0x16b2 +++++ -Seg:3703 Size:256 Owner:0x16b4 +Seg:370e Size:256 Owner:0x16b4 ++++ -Seg:3803 Size:256 Owner:0x16b6 +Seg:380e Size:256 Owner:0x16b6 ++++ -Seg:3903 Size:256 Owner:0x16b8 +Seg:390e Size:256 Owner:0x16b8 ++++ -Seg:3a03 Size:256 Owner:0x16ba +Seg:3a0e Size:256 Owner:0x16ba ++++ -Seg:3b03 Size:256 Owner:0x16bc +Seg:3b0e Size:256 Owner:0x16bc +++++ -Seg:3c03 Size:256 Owner:0x16be +Seg:3c0e Size:256 Owner:0x16be ++++ -Seg:3d03 Size:256 Owner:0x16c0 +Seg:3d0e Size:256 Owner:0x16c0 ++++ -Seg:3e03 Size:256 Owner:0x16c2 +Seg:3e0e Size:256 Owner:0x16c2 ++++ -Seg:3f03 Size:256 Owner:0x16c4 +Seg:3f0e Size:256 Owner:0x16c4 ++++ -Seg:4003 Size:256 Owner:0x16c6 +Seg:400e Size:256 Owner:0x16c6 +++++ -Seg:4103 Size:256 Owner:0x16c8 +Seg:410e Size:256 Owner:0x16c8 ++++ -Seg:4203 Size:256 Owner:0x16ca +Seg:420e Size:256 Owner:0x16ca ++++ -Seg:4303 Size:256 Owner:0x16cc +Seg:430e Size:256 Owner:0x16cc ++++ -Seg:4403 Size:256 Owner:0x16ce +Seg:440e Size:256 Owner:0x16ce ++++ -Seg:4503 Size:256 Owner:0x16d0 +Seg:450e Size:256 Owner:0x16d0 +++++ -Seg:4603 Size:256 Owner:0x16d2 +Seg:460e Size:256 Owner:0x16d2 ++++ -Seg:4703 Size:256 Owner:0x16d4 +Seg:470e Size:256 Owner:0x16d4 ++++ -Seg:4803 Size:256 Owner:0x16d6 +Seg:480e Size:256 Owner:0x16d6 ++++ -Seg:4903 Size:256 Owner:0x16d8 +Seg:490e Size:256 Owner:0x16d8 ++++ -Seg:4a03 Size:256 Owner:0x16da +Seg:4a0e Size:256 Owner:0x16da +++++ -Seg:4b03 Size:256 Owner:0x16dc +Seg:4b0e Size:256 Owner:0x16dc ++++ -Seg:4c03 Size:256 Owner:0x16de +Seg:4c0e Size:256 Owner:0x16de ++++ -Seg:4d03 Size:256 Owner:0x16e0 +Seg:4d0e Size:256 Owner:0x16e0 ++++ -Seg:4e03 Size:256 Owner:0x16e2 +Seg:4e0e Size:256 Owner:0x16e2 ++++ -Seg:4f03 Size:256 Owner:0x16e4 +Seg:4f0e Size:256 Owner:0x16e4 +++++ -Seg:5003 Size:256 Owner:0x16e6 +Seg:500e Size:256 Owner:0x16e6 ++++ -Seg:5103 Size:256 Owner:0x16e8 +Seg:510e Size:256 Owner:0x16e8 ++++ -Seg:5203 Size:256 Owner:0x16ea +Seg:520e Size:256 Owner:0x16ea ++++ -Seg:5303 Size:256 Owner:0x16ec +Seg:530e Size:256 Owner:0x16ec ++++ -Seg:5403 Size:256 Owner:0x16ee +Seg:540e Size:256 Owner:0x16ee +++++ -Seg:5503 Size:256 Owner:0x16f0 +Seg:550e Size:256 Owner:0x16f0 ++++ -Seg:5603 Size:256 Owner:0x16f2 +Seg:560e Size:256 Owner:0x16f2 ++++ -Seg:5703 Size:256 Owner:0x16f4 +Seg:570e Size:256 Owner:0x16f4 ++++ -Seg:5803 Size:256 Owner:0x16f6 +Seg:580e Size:256 Owner:0x16f6 ++++ -Seg:5903 Size:256 Owner:0x16f8 +Seg:590e Size:256 Owner:0x16f8 +++++ -Seg:5a03 Size:256 Owner:0x16fa +Seg:5a0e Size:256 Owner:0x16fa ++++ -Seg:5b03 Size:256 Owner:0x16fc +Seg:5b0e Size:256 Owner:0x16fc ++++ -Seg:5c03 Size:256 Owner:0x16fe +Seg:5c0e Size:256 Owner:0x16fe ++++ -Seg:5d03 Size:256 Owner:0x1700 +Seg:5d0e Size:256 Owner:0x1700 ++++ -Seg:5e03 Size:256 Owner:0x1702 +Seg:5e0e Size:256 Owner:0x1702 +++++ -Seg:5f03 Size:256 Owner:0x1704 +Seg:5f0e Size:256 Owner:0x1704 ++++ -Seg:6003 Size:256 Owner:0x1706 +Seg:600e Size:256 Owner:0x1706 ++++ -Seg:6103 Size:256 Owner:0x1708 +Seg:610e Size:256 Owner:0x1708 ++++ -Seg:6203 Size:256 Owner:0x170a +Seg:620e Size:256 Owner:0x170a ++++ -Seg:6303 Size:256 Owner:0x170c +Seg:630e Size:256 Owner:0x170c +++++ -Seg:6403 Size:256 Owner:0x170e +Seg:640e Size:256 Owner:0x170e ++++ -Seg:6503 Size:256 Owner:0x1710 +Seg:650e Size:256 Owner:0x1710 ++++ -Seg:6603 Size:256 Owner:0x1712 +Seg:660e Size:256 Owner:0x1712 ++++ -Seg:6703 Size:256 Owner:0x1714 +Seg:670e Size:256 Owner:0x1714 ++++ -Seg:6803 Size:256 Owner:0x1716 +Seg:680e Size:256 Owner:0x1716 +++++ -Seg:6903 Size:256 Owner:0x1718 +Seg:690e Size:256 Owner:0x1718 ++++ -Seg:6a03 Size:256 Owner:0x171a +Seg:6a0e Size:256 Owner:0x171a ++++ -Seg:6b03 Size:256 Owner:0x171c +Seg:6b0e Size:256 Owner:0x171c ++++ -Seg:6c03 Size:256 Owner:0x171e +Seg:6c0e Size:256 Owner:0x171e ++++ -Seg:6d03 Size:256 Owner:0x1720 +Seg:6d0e Size:256 Owner:0x1720 +++++ -Seg:6e03 Size:256 Owner:0x1722 +Seg:6e0e Size:256 Owner:0x1722 ++++ -Seg:6f03 Size:256 Owner:0x1724 +Seg:6f0e Size:256 Owner:0x1724 ++++ -Seg:7003 Size:256 Owner:0x1726 +Seg:700e Size:256 Owner:0x1726 ++++ -Seg:7103 Size:256 Owner:0x1728 +Seg:710e Size:256 Owner:0x1728 ++++ -Seg:7203 Size:256 Owner:0x172a +Seg:720e Size:256 Owner:0x172a +++++ -Seg:7303 Size:256 Owner:0x172c +Seg:730e Size:256 Owner:0x172c ++++ -Seg:7403 Size:256 Owner:0x172e +Seg:740e Size:256 Owner:0x172e ++++ -Seg:7503 Size:256 Owner:0x1730 +Seg:750e Size:256 Owner:0x1730 ++++ -Seg:7603 Size:256 Owner:0x1732 +Seg:760e Size:256 Owner:0x1732 ++++ -Seg:7703 Size:256 Owner:0x1734 +Seg:770e Size:256 Owner:0x1734 +++++ -Seg:7803 Size:256 Owner:0x1736 +Seg:780e Size:256 Owner:0x1736 ++++ -Seg:7903 Size:256 Owner:0x1738 +Seg:790e Size:256 Owner:0x1738 ++++ -Seg:7a03 Size:256 Owner:0x173a +Seg:7a0e Size:256 Owner:0x173a ++++ -Seg:7b03 Size:256 Owner:0x173c +Seg:7b0e Size:256 Owner:0x173c ++++ -Seg:7c03 Size:256 Owner:0x173e +Seg:7c0e Size:256 Owner:0x173e +++++ -Seg:7d03 Size:256 Owner:0x1740 +Seg:7d0e Size:256 Owner:0x1740 ++++ -Seg:7e03 Size:256 Owner:0x1742 +Seg:7e0e Size:256 Owner:0x1742 ++++ -Seg:7f03 Size:256 Owner:0x1744 +Seg:7f0e Size:256 Owner:0x1744 ++++ -Seg:8003 Size:256 Owner:0x1746 +Seg:800e Size:256 Owner:0x1746 ++++ -Seg:8103 Size:256 Owner:0x1748 +Seg:810e Size:256 Owner:0x1748 +++++ -Seg:8203 Size:256 Owner:0x174a +Seg:820e Size:256 Owner:0x174a ++++ -Seg:8303 Size:256 Owner:0x174c +Seg:830e Size:256 Owner:0x174c ++++ -Seg:8403 Size:256 Owner:0x174e +Seg:840e Size:256 Owner:0x174e ++++ -Seg:8503 Size:256 Owner:0x1750 +Seg:850e Size:256 Owner:0x1750 ++++ -Seg:8603 Size:256 Owner:0x1752 +Seg:860e Size:256 Owner:0x1752 +++++ -Seg:8703 Size:256 Owner:0x1754 +Seg:870e Size:256 Owner:0x1754 ++++ -Seg:8803 Size:256 Owner:0x1756 +Seg:880e Size:256 Owner:0x1756 ++++ -Seg:8903 Size:256 Owner:0x1758 +Seg:890e Size:256 Owner:0x1758 ++++ -Seg:8a03 Size:256 Owner:0x175a +Seg:8a0e Size:256 Owner:0x175a ++++ -Seg:8b03 Size:256 Owner:0x175c +Seg:8b0e Size:256 Owner:0x175c +++++ -Seg:8c03 Size:273 Owner:0xe3f0 +Seg:8c0e Size:273 Owner:0xe400 ++++ -Seg:b803 Size:18428 Owner:0x0 +Seg:b80e Size:18417 Owner:0x0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ \ No newline at end of file diff --git a/HEAP.16W b/HEAP.16W index 59a1b45b..536fe06c 100755 --- a/HEAP.16W +++ b/HEAP.16W @@ -1,47 +1,47 @@ == default == - USED block at 27f90016 of size 66 - USED block at 27f90058 of size 66 - FREE block at 27f9009a of size 18 - USED block at 27f900ac of size 136 - USED block at 27f90134 of size 20 - FREE block at 27f90148 of size 7860 + USED block at 28040016 of size 66 + USED block at 28040058 of size 66 + FREE block at 2804009a of size 18 + USED block at 280400ac of size 136 + USED block at 28040134 of size 20 + FREE block at 28040148 of size 7860 OK - end of heap == near == - USED block at 17f8e426 of size 12 - USED block at 17f8e432 of size 332 - USED block at 17f8e57e of size 52 - USED block at 17f8e5b2 of size 20 - USED block at 17f8e5c6 of size 20 - USED block at 17f8e5da of size 20 - USED block at 17f8e5ee of size 20 - USED block at 17f8e602 of size 20 - USED block at 17f8e616 of size 6630 + USED block at 1803e436 of size 12 + USED block at 1803e442 of size 332 + USED block at 1803e58e of size 52 + USED block at 1803e5c2 of size 20 + USED block at 1803e5d6 of size 20 + USED block at 1803e5ea of size 20 + USED block at 1803e5fe of size 20 + USED block at 1803e612 of size 20 + USED block at 1803e626 of size 6614 OK - end of heap == far == - USED block at 27f90016 of size 66 - USED block at 27f90058 of size 66 - USED block at 27f9009a of size 18 - USED block at 27f900ac of size 136 - USED block at 27f90134 of size 20 - USED block at 27f90148 of size 7860 + USED block at 28040016 of size 66 + USED block at 28040058 of size 66 + USED block at 2804009a of size 18 + USED block at 280400ac of size 136 + USED block at 28040134 of size 20 + USED block at 28040148 of size 7860 OK - end of heap Memory Type Total Used Free ---------------- -------- -------- -------- Default 8166 288 7878 -Near 7126 496 6630 +Near 7110 496 6614 Far 8166 0 7878 ---------------- -------- -------- -------- -coreleft = 6628 -farcoreleft = 30736 +coreleft = 6612 +farcoreleft = 30720 GetFreeSize = 24128 -GetNearFreeSize = 6630 +GetNearFreeSize = 6614 GetFarFreeSize = 24128 -memavl = 6628 +memavl = 6612 stackavail = 31588 diff --git a/MMDUMP.16W b/MMDUMP.16W index e231e3c76d962e78e7b52c5eecf0b37e13decb13..cb01f5beec81552a1dad5e9db36e08d725416db8 100755 GIT binary patch delta 22 dcmX>ictmi+HV!@$0|NyOT|rF+TLlANE&xr31ug&p delta 22 dcmX>ictmi+HV!`HGy??}YF~jq18oDX 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 T(8?W`rqa@&9a9(3KKuUxTw@3@ diff --git a/bcexmm.prj b/bcexmm.prj index e49efa5b8f0924c40ac1f1f0e94dbe3b929d1f67..f3336226bba52291cc36249a156ed569717e27dc 100755 GIT binary patch delta 98 zcmeA(>oeO>!@oeO>!@=Z`ySa|zF$b?hu8k*y6azy7D+9yR$$5hDOebmmi.nearheap); printf("farheap: %lu\n", gvar->mmi.farheap); if(MML_CheckForEMS()) printf("EMSmem: %lu ", gvar->mmi.EMSmem); if(MML_CheckForXMS(gvar)) printf("XMSmem: %lu", gvar->mmi.XMSmem); printf("\n"); diff --git a/src/lib/16_mm.h b/src/lib/16_mm.h index e816d885..59716d49 100755 --- a/src/lib/16_mm.h +++ b/src/lib/16_mm.h @@ -79,7 +79,7 @@ extern boolean dbg_debugpm; #define XMS_GDISABLEA20 0x04 #define XMS_LENABLEA20 0x05 #define XMS_LDISABLEA20 0x06 -#define XMS_QUERYA20 0x07 +#define XMS_QUERYA20 0x07 #define XMS_QUERYFREE 0x08 #define XMS_ALLOC 0x09 @@ -106,6 +106,7 @@ extern boolean dbg_debugpm; extern void (* beforesort) (void); extern void (* aftersort) (void); extern void (* XMSaddr) (void); // far pointer to XMS driver +extern dword XMSDriver; //========================================================================== diff --git a/src/lib/16_pm.c b/src/lib/16_pm.c index bb08180d..29156f92 100755 --- a/src/lib/16_pm.c +++ b/src/lib/16_pm.c @@ -48,7 +48,7 @@ boolean dbg_debugpm=0; // XMS specific variables //boolean XMSPresent; //word gvar->pm.xmm.XMSAvail,gvar->pm.xmm.XMSPagesAvail,gvar->pm.xmm.XMSHandle; - word XMSDriver; + dword XMSDriver; /* int gvar->pm.xmm.XMSProtectPage = -1; // File specific variables @@ -92,9 +92,9 @@ PML_MapEMS(word logical, byte physical, global_game_variables_t *gvar) __asm { mov ah,EMS_MAPPAGE - mov al,physical - mov bx,logical - mov dx,EMShandle + mov al,[physical] + mov bx,[logical] + mov dx,[EMShandle] int EMS_INT or ah,ah jnz error @@ -240,7 +240,7 @@ PML_StartupEMS(global_game_variables_t *gvar) */ __asm { mov ah,EMS_ALLOCPAGES - mov bx,[EMSAvail]; + mov bx,[EMSAvail] int EMS_INT or ah,ah jnz erroreuu @@ -359,7 +359,7 @@ PML_StartupXMS(global_game_variables_t *gvar) boolean errorflag; word XMSAvail, XMSHandle; errorflag=gvar->pm.xmm.XMSPresent = false; // Assume failure - XMSAvail = gvar->pm.xmm.XMSAvail = 0; + gvar->pm.xmm.XMSAvail = gvar->mmi.XMSmem = 0; __asm { mov ax,0x4300 @@ -374,7 +374,7 @@ PML_StartupXMS(global_game_variables_t *gvar) //XMS_CALL(XMS_QUERYFREE); // Find out how much XMS is available mov ah,XMS_QUERYFREE - call [WORD PTR XMSDriver] + call [DWORD PTR XMSDriver] mov [XMSAvail],ax or ax,ax // AJR: bugfix 10/8/92 jz errorxu @@ -396,9 +396,11 @@ PML_StartupXMS(global_game_variables_t *gvar) #ifdef __WATCOMC__ } #endif - gvar->pm.xmm.XMSAvail &= ~(PMPageSizeKB - 1); // Round off to nearest page size - if (gvar->pm.xmm.XMSAvail < (PMPageSizeKB * 2)) // Need at least 2 pages + XMSAvail &= ~(PMPageSizeKB - 1); // Round off to nearest page size + if (XMSAvail < (PMPageSizeKB * 2)){ // Need at least 2 pages + printf("PISS! %u\n", XMSAvail); goto error; + } __asm { mov dx,[XMSAvail] @@ -431,11 +433,13 @@ PML_StartupXMS(global_game_variables_t *gvar) if(errorflag==false) { gvar->pm.xmm.XMSAvail = XMSAvail; - gvar->mmi.XMSmem += gvar->pm.xmm.XMSAvail * 1024; + gvar->mmi.XMSmem += gvar->pm.xmm.XMSAvail * (dword)1024; gvar->pm.xmm.XMSHandle = XMSHandle; gvar->pm.xmm.XMSPresent = true; - } + printf(" %u %u %u\n", gvar->mmi.XMSmem, gvar->pm.xmm.XMSAvail, XMSAvail); + getch(); + }else printf(" errorflag\n"); error: return(gvar->pm.xmm.XMSPresent); } @@ -1470,17 +1474,13 @@ PM_Startup(global_game_variables_t *gvar) if (!noems) PML_StartupEMS(gvar); - /*if (!noxms) - { - //++++ - printf("PML_StartupXMS "); - PML_StartupXMS(gvar); //TODO: convert - printf("ok!\n"); - }*/ + if (!noxms) + PML_StartupXMS(gvar); if (!nomain && !gvar->pm.emm.EMSPresent) { - Quit("PM_Startup: No main or EMS\n"); + printf("PM_Startup: No main or EMS\n"); + exit(-5); //return; } PML_StartupMainMem(gvar); -- 2.39.5