diff --git a/src/dos/dos_execute.cpp b/src/dos/dos_execute.cpp index ba02cc51..b27decdb 100644 --- a/src/dos/dos_execute.cpp +++ b/src/dos/dos_execute.cpp @@ -356,14 +356,6 @@ bool DOS_Execute(char * name,PhysPt block_pt,Bit8u flags) { maxsize=0xffff; /* resize to full extent of memory block */ DOS_ResizeMemory(pspseg,&maxsize); - /* now try to lock out memory above segment 0x2000 */ - if ((real_readb(0x2000,0)==0x5a) && (real_readw(0x2000,1)==0) && (real_readw(0x2000,3)==0x7ffe)) { - /* MCB after PCJr graphics memory region is still free */ - if (pspseg+maxsize==0x17ff) { - DOS_MCB cmcb((Bit16u)(pspseg-1)); - cmcb.SetType(0x5a); // last block - } - } } loadseg=pspseg+16; if (!iscom) { diff --git a/src/dos/dos_memory.cpp b/src/dos/dos_memory.cpp index 8cdd810f..b8d6a33f 100644 --- a/src/dos/dos_memory.cpp +++ b/src/dos/dos_memory.cpp @@ -50,14 +50,7 @@ void DOS_FreeProcessMemory(Bit16u pspseg) { if (mcb.GetPSPSeg()==pspseg) { mcb.SetPSPSeg(MCB_FREE); } - if (mcb.GetType()==0x5a) { - /* check if currently last block reaches up to the PCJr graphics memory */ - if ((machine==MCH_PCJR) && (mcb_segment+mcb.GetSize()==0x17fe) && - (real_readb(0x17ff,0)==0x4d) && (real_readw(0x17ff,1)==8)) { - /* re-enable the memory past segment 0x2000 */ - mcb.SetType(0x4d); - } else break; - } + if (mcb.GetType()==0x5a) break; if (GCC_UNLIKELY(mcb.GetType()!=0x4d)) E_Exit("Corrupt MCB chain"); mcb_segment+=mcb.GetSize()+1; mcb.SetPt(mcb_segment); @@ -307,10 +300,10 @@ bool DOS_FreeMemory(Bit16u segment) { void DOS_BuildUMBChain(bool umb_active,bool ems_active) { - if (umb_active && (machine!=MCH_TANDY)) { + if (umb_active && (!IS_TANDY_ARCH)) { Bit16u first_umb_seg = 0xd000; Bit16u first_umb_size = 0x2000; - if(ems_active || (machine == MCH_PCJR)) first_umb_size = 0x1000; + if(ems_active) first_umb_size = 0x1000; dos_infoblock.SetStartOfUMBChain(UMB_START_SEG); dos_infoblock.SetUMBChainState(0); // UMBs not linked yet diff --git a/src/dos/dos_programs.cpp b/src/dos/dos_programs.cpp index 41853a30..f2231815 100644 --- a/src/dos/dos_programs.cpp +++ b/src/dos/dos_programs.cpp @@ -441,9 +441,7 @@ public: Bit16u seg,blocks;blocks=0xffff; DOS_AllocateMemory(&seg,&blocks); - if ((machine==MCH_PCJR) && (real_readb(0x2000,0)==0x5a) && (real_readw(0x2000,1)==0) && (real_readw(0x2000,3)==0x7ffe)) { - WriteOut(MSG_Get("PROGRAM_MEM_CONVEN"),0x7ffe*16/1024); - } else WriteOut(MSG_Get("PROGRAM_MEM_CONVEN"),blocks*16/1024); + WriteOut(MSG_Get("PROGRAM_MEM_CONVEN"),blocks*16/1024); if (umb_start!=0xffff) { DOS_LinkUMBsToMemChain(1);