mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-10-14 02:17:36 +08:00
MCB dump routine: Show PSP segment and update code to support --boothax msdos if DOSBox-X DOS kernel is inactive
This commit is contained in:
@@ -41,23 +41,28 @@ uint16_t first_umb_size = 0x2000;
|
|||||||
|
|
||||||
static uint16_t memAllocStrategy = 0x00;
|
static uint16_t memAllocStrategy = 0x00;
|
||||||
|
|
||||||
static void DOS_Mem_MCBdump(void) {
|
void DOS_Mem_MCBdump(void) {
|
||||||
uint16_t mcb_segment=dos.firstMCB;
|
uint16_t mcb_segment=dos_kernel_disabled ? guest_msdos_mcb_chain : dos.firstMCB;
|
||||||
DOS_MCB mcb(mcb_segment);
|
DOS_MCB mcb(mcb_segment);
|
||||||
DOS_MCB mcb_next(0);
|
DOS_MCB mcb_next(0);
|
||||||
Bitu counter=0;
|
Bitu counter=0;
|
||||||
char name[10];
|
char name[10];
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
|
if (mcb_segment == 0) return;
|
||||||
|
|
||||||
LOG_MSG("DOS MCB dump:\n");
|
LOG_MSG("DOS MCB dump:\n");
|
||||||
while ((c=(char)mcb.GetType()) != 'Z') {
|
while ((c=(char)mcb.GetType()) != 'Z') {
|
||||||
if (counter++ > 10000) break;
|
if (counter++ > 10000) break;
|
||||||
if (c != 'M') break;
|
if (c != 'M') break;
|
||||||
|
|
||||||
mcb.GetFileName(name);
|
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.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_next.SetPt((uint16_t)(mcb_segment+mcb.GetSize()+1));
|
||||||
mcb_segment+=mcb.GetSize()+1;
|
mcb_segment+=mcb.GetSize()+1;
|
||||||
mcb.SetPt(mcb_segment);
|
mcb.SetPt(mcb_segment);
|
||||||
@@ -65,8 +70,8 @@ static void DOS_Mem_MCBdump(void) {
|
|||||||
|
|
||||||
mcb.GetFileName(name);
|
mcb.GetFileName(name);
|
||||||
c = (char)mcb.GetType(); if (c < 32) c = '.';
|
c = (char)mcb.GetType(); if (c < 32) c = '.';
|
||||||
LOG_MSG("FINAL: Type=0x%02x(%c) Seg=0x%04x size=0x%04x name='%s'\n",
|
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(),name);
|
mcb.GetType(),c,mcb_segment+1,mcb.GetSize(),mcb.GetPSPSeg(),name);
|
||||||
LOG_MSG("End dump\n");
|
LOG_MSG("End dump\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user