From 00b7c5122e0b9f63c6b644e95a525c80883248bf Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Tue, 3 Feb 2004 14:57:12 +0000 Subject: [PATCH] Added patch [ 889704 ] Proper TPA setup (fizzban) Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1655 --- src/dos/dos_memory.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/dos/dos_memory.cpp b/src/dos/dos_memory.cpp index e2e3d9d3..0eef6c1f 100644 --- a/src/dos/dos_memory.cpp +++ b/src/dos/dos_memory.cpp @@ -180,11 +180,17 @@ bool DOS_FreeMemory(Bit16u segment) { void DOS_SetupMemory(void) { - DOS_MCB mcb((Bit16u)MEM_START); + // Create a dummy device MCB with PSPSeg=0x0008 + DOS_MCB mcb_devicedummy((Bit16u)MEM_START); + mcb_devicedummy.SetPSPSeg(0x0008); // Devices + mcb_devicedummy.SetSize(1); + mcb_devicedummy.SetType(0x4d); // More blocks will follow + + DOS_MCB mcb((Bit16u)MEM_START+2); mcb.SetPSPSeg(MCB_FREE); //Free - mcb.SetSize(0x9FFE - MEM_START); + mcb.SetSize(0x9FFE - MEM_START - 2); mcb.SetType(0x5a); //Last Block + dos.firstMCB=MEM_START; dos_infoblock.SetFirstMCB(MEM_START); } -