mirror of
https://github.com/joncampbell123/dosbox-x.git
synced 2025-10-14 02:17:36 +08:00
Debugger: DOS MCBS command should indicate the segment immediately following the last MCB block in the chain
This commit is contained in:
@@ -1,4 +1,6 @@
|
|||||||
Next version
|
Next version
|
||||||
|
- Debugger: DOS MCBS command now also prints the segment immediately
|
||||||
|
following the last MCB block (joncampbell123).
|
||||||
- Tseng ET3000/ET4000: Update Status register 3DAh behavior when emulating
|
- Tseng ET3000/ET4000: Update Status register 3DAh behavior when emulating
|
||||||
Tseng chipsets to reflect Tseng datasheet, and VGAKIT SVGA detection code
|
Tseng chipsets to reflect Tseng datasheet, and VGAKIT SVGA detection code
|
||||||
expectations. Bit 7 is expected, as documented by Tseng, to be the inverse
|
expectations. Bit 7 is expected, as documented by Tseng, to be the inverse
|
||||||
|
@@ -4678,23 +4678,25 @@ static void LogMCBChain(uint16_t mcb_segment) {
|
|||||||
psp_seg_note = "";
|
psp_seg_note = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
DEBUG_ShowMsg(" %04X %12u %04X %-7s %s",mcb_segment,mcb.GetSize() << 4,mcb.GetPSPSeg(), psp_seg_note, filename);
|
DEBUG_ShowMsg(" %04X %12u %04X %-7s %s",mcb_segment,mcb.GetSize() << 4,mcb.GetPSPSeg(), psp_seg_note, filename);
|
||||||
|
|
||||||
// print a message if dataAddr is within this MCB's memory range
|
// print a message if dataAddr is within this MCB's memory range
|
||||||
PhysPt mcbStartAddr = PhysMake(mcb_segment+1,0);
|
PhysPt mcbStartAddr = PhysMake(mcb_segment+1,0);
|
||||||
PhysPt mcbEndAddr = PhysMake(mcb_segment+1+mcb.GetSize(),0);
|
PhysPt mcbEndAddr = PhysMake(mcb_segment+1+mcb.GetSize(),0);
|
||||||
if (dataAddr >= mcbStartAddr && dataAddr < mcbEndAddr) {
|
if (dataAddr >= mcbStartAddr && dataAddr < mcbEndAddr) {
|
||||||
DEBUG_ShowMsg(" (data addr %04hX:%04X is %u bytes past this MCB)",dataSeg,DOS_dataOfs,dataAddr - mcbStartAddr);
|
DEBUG_ShowMsg(" (data addr %04hX:%04X is %u bytes past this MCB)",dataSeg,DOS_dataOfs,dataAddr - mcbStartAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if we've just processed the last MCB in the chain, break out of the loop
|
// if we've just processed the last MCB in the chain, break out of the loop
|
||||||
if (mcb.GetType()==0x5a) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// else, move to the next MCB in the chain
|
|
||||||
mcb_segment+=mcb.GetSize()+1;
|
mcb_segment+=mcb.GetSize()+1;
|
||||||
|
if (mcb.GetType()==0x5a)
|
||||||
|
break;
|
||||||
|
|
||||||
|
// else, move to the next MCB in the chain
|
||||||
mcb.SetPt(mcb_segment);
|
mcb.SetPt(mcb_segment);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DEBUG_ShowMsg(" %04X END OF CHAIN",mcb_segment);
|
||||||
}
|
}
|
||||||
|
|
||||||
#include "regionalloctracking.h"
|
#include "regionalloctracking.h"
|
||||||
|
Reference in New Issue
Block a user