From 2059e9b4398c1ca63578166a885a2fc7c54d315a Mon Sep 17 00:00:00 2001 From: Jonathan Campbell Date: Tue, 7 Oct 2025 08:05:29 -0700 Subject: [PATCH] MCB dump routine: Show PSP segment and update code to support --boothax msdos if DOSBox-X DOS kernel is inactive --- src/dos/dos_memory.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/dos/dos_memory.cpp b/src/dos/dos_memory.cpp index a94ad81ed..96915a004 100644 --- a/src/dos/dos_memory.cpp +++ b/src/dos/dos_memory.cpp @@ -41,23 +41,28 @@ uint16_t first_umb_size = 0x2000; static uint16_t memAllocStrategy = 0x00; -static void DOS_Mem_MCBdump(void) { - uint16_t mcb_segment=dos.firstMCB; +void DOS_Mem_MCBdump(void) { + uint16_t mcb_segment=dos_kernel_disabled ? guest_msdos_mcb_chain : dos.firstMCB; DOS_MCB mcb(mcb_segment); DOS_MCB mcb_next(0); Bitu counter=0; char name[10]; char c; + if (mcb_segment == 0) return; + LOG_MSG("DOS MCB dump:\n"); while ((c=(char)mcb.GetType()) != 'Z') { if (counter++ > 10000) break; if (c != 'M') break; mcb.GetFileName(name); - LOG_MSG(" Type=0x%02x(%c) Seg=0x%04x size=0x%04x name='%s'\n", + LOG_MSG(" Type=0x%02x(%c) Seg=0x%04x size=0x%04x PSP=0x%04x name='%s'\n", mcb.GetType(),c, - mcb_segment+1,mcb.GetSize(),name); + mcb_segment+1, + mcb.GetSize(), + mcb.GetPSPSeg(), + name); mcb_next.SetPt((uint16_t)(mcb_segment+mcb.GetSize()+1)); mcb_segment+=mcb.GetSize()+1; mcb.SetPt(mcb_segment); @@ -65,8 +70,8 @@ static void DOS_Mem_MCBdump(void) { mcb.GetFileName(name); c = (char)mcb.GetType(); if (c < 32) c = '.'; - LOG_MSG("FINAL: Type=0x%02x(%c) Seg=0x%04x size=0x%04x name='%s'\n", - mcb.GetType(),c,mcb_segment+1,mcb.GetSize(),name); + LOG_MSG("FINAL: Type=0x%02x(%c) Seg=0x%04x size=0x%04x PSP=0x%04x name='%s'\n", + mcb.GetType(),c,mcb_segment+1,mcb.GetSize(),mcb.GetPSPSeg(),name); LOG_MSG("End dump\n"); }