Enhanced INT return handling, and reorganized some disks.
This commit is contained in:
parent
c722a8ec16
commit
27359de735
140 changed files with 701 additions and 503 deletions
|
|
@ -1583,6 +1583,41 @@ if (DEBUGGER) {
|
|||
this.aMessageRegs[asRegs[20]] = str.toHexWord(cpu.regIP);
|
||||
};
|
||||
|
||||
/**
|
||||
* message(sMessage, fAddress)
|
||||
*
|
||||
* @this {Debugger}
|
||||
* @param {string} sMessage is any caller-defined message string
|
||||
* @param {boolean} [fAddress] is true to display the current CS:IP
|
||||
*/
|
||||
Debugger.prototype.message = function(sMessage, fAddress)
|
||||
{
|
||||
if (fAddress) {
|
||||
sMessage += " @" + str.toHexAddr(this.cpu.regIP, this.cpu.segCS.sel);
|
||||
}
|
||||
|
||||
if (this.sMessagePrev && sMessage == this.sMessagePrev) return;
|
||||
|
||||
if (!SAMPLER) this.println(sMessage); // + " (" + this.cpu.getCycles() + " cycles)"
|
||||
|
||||
this.sMessagePrev = sMessage;
|
||||
|
||||
if (this.cpu) {
|
||||
if (this.bitsMessage & Messages.HALT) {
|
||||
this.cpu.stopCPU();
|
||||
}
|
||||
/*
|
||||
* We have no idea what the frequency of println() calls might be; all we know is that they easily
|
||||
* screw up the CPU's careful assumptions about cycles per burst. So we call yieldCPU() after every
|
||||
* message, to effectively end the current burst and start fresh.
|
||||
*
|
||||
* TODO: See CPU.calcStartTime() for a discussion of why we might want to call yieldCPU() *before*
|
||||
* we display the message.
|
||||
*/
|
||||
this.cpu.yieldCPU();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* messageInt(nInt, addr)
|
||||
*
|
||||
|
|
@ -1668,41 +1703,6 @@ if (DEBUGGER) {
|
|||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* message(sMessage, fAddress)
|
||||
*
|
||||
* @this {Debugger}
|
||||
* @param {string} sMessage is any caller-defined message string
|
||||
* @param {boolean} [fAddress] is true to display the current CS:IP
|
||||
*/
|
||||
Debugger.prototype.message = function(sMessage, fAddress)
|
||||
{
|
||||
if (fAddress) {
|
||||
sMessage += " @" + str.toHexAddr(this.cpu.regIP, this.cpu.segCS.sel);
|
||||
}
|
||||
|
||||
if (this.sMessagePrev && sMessage == this.sMessagePrev) return;
|
||||
|
||||
if (!SAMPLER) this.println(sMessage); // + " (" + this.cpu.getCycles() + " cycles)"
|
||||
|
||||
this.sMessagePrev = sMessage;
|
||||
|
||||
if (this.cpu) {
|
||||
if (this.bitsMessage & Messages.HALT) {
|
||||
this.cpu.stopCPU();
|
||||
}
|
||||
/*
|
||||
* We have no idea what the frequency of println() calls might be; all we know is that they easily
|
||||
* screw up the CPU's careful assumptions about cycles per burst. So we call yieldCPU() after every
|
||||
* message, to effectively end the current burst and start fresh.
|
||||
*
|
||||
* TODO: See CPU.calcStartTime() for a discussion of why we might want to call yieldCPU() *before*
|
||||
* we display the message.
|
||||
*/
|
||||
this.cpu.yieldCPU();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* traceInit()
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in a new issue