Debugger I/O improvements
This commit is contained in:
parent
59002166cd
commit
faf179d2d3
2 changed files with 30 additions and 30 deletions
|
|
@ -4511,8 +4511,8 @@ if (DEBUGGER) {
|
|||
}
|
||||
var port = this.parseValue(sPort);
|
||||
if (port !== undefined) {
|
||||
var data = this.bus.checkPortInputNotify(port);
|
||||
this.println(str.toHexWord(port) + ": " + str.toHexByte(data));
|
||||
var byte = this.bus.checkPortInputNotify(port);
|
||||
this.println(str.toHexWord(port) + ": " + str.toHexByte(byte));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -4784,17 +4784,17 @@ if (DEBUGGER) {
|
|||
};
|
||||
|
||||
/**
|
||||
* doOutput(sPort, sData)
|
||||
* doOutput(sPort, sByte)
|
||||
*
|
||||
* @this {Debugger}
|
||||
* @param {string|undefined} sPort
|
||||
* @param {string|undefined} sData
|
||||
* @param {string|undefined} sByte (string representation of 1 byte)
|
||||
*/
|
||||
Debugger.prototype.doOutput = function(sPort, sData)
|
||||
Debugger.prototype.doOutput = function(sPort, sByte)
|
||||
{
|
||||
if (!sPort || sPort == "?") {
|
||||
this.println("\noutput commands:");
|
||||
this.println("\to [p] [d]\twrite data [d] to port [p]");
|
||||
this.println("\to [p] [b]\twrite byte [b] to port [p]");
|
||||
/*
|
||||
* NOTE: Regarding this warning, it might be nice if we had an "Unchecked" version of
|
||||
* bus.checkPortOutputNotify(), since all Debugger memory accesses are unchecked, too.
|
||||
|
|
@ -4807,9 +4807,10 @@ if (DEBUGGER) {
|
|||
return;
|
||||
}
|
||||
var port = this.parseValue(sPort, "port #");
|
||||
var data = this.parseValue(sData);
|
||||
if (port !== undefined && data !== undefined) {
|
||||
this.bus.checkPortOutputNotify(port, data);
|
||||
var byte = this.parseValue(sByte);
|
||||
if (port !== undefined && byte !== undefined) {
|
||||
this.bus.checkPortOutputNotify(port, byte);
|
||||
this.println(str.toHexWord(port) + ": " + str.toHexByte(byte));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1144,7 +1144,6 @@ Card.CRTC = {
|
|||
ADDR_HI_MASK: 0x3F
|
||||
};
|
||||
|
||||
|
||||
if (DEBUGGER) {
|
||||
Card.CRTC.REGS = ["HORZ_TOTAL","HORZ_DISP","HORZ_SYNC_POS","HORZ_SYNC_WIDTH","VERT_TOTAL","VERT_TOTAL_ADJ",
|
||||
"VERT_DISP","VERT_SYNC_POS","INTERLACE_POS","MAX_SCAN_LINE","CURSOR_START","CURSOR_END",
|
||||
|
|
@ -4947,7 +4946,7 @@ Video.prototype.outFeat = function(port, bOut, addrFrom)
|
|||
Video.prototype.inATC = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardEGA.fATCData? this.cardEGA.regATCData[this.cardEGA.regATCIndx & Card.ATC.INDX_MASK] : this.cardEGA.regATCIndx;
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.ATC.PORT, null, addrFrom, "ATC." + (this.cardEGA.fATCData? this.cardEGA.asATCRegs[this.cardEGA.regATCIndx & Card.ATC.INDX_MASK] : "INDX"), b);
|
||||
}
|
||||
this.cardEGA.fATCData = !this.cardEGA.fATCData;
|
||||
|
|
@ -4971,11 +4970,11 @@ Video.prototype.outATC = function(port, bOut, addrFrom)
|
|||
this.cardEGA.fATCData = true;
|
||||
if ((bOut & Card.ATC.INDX_PAL_ENABLE) && !fPalEnabled) {
|
||||
if (!this.buildFonts()) {
|
||||
if (DEBUG && this.messageEnabled()) {
|
||||
if (DEBUG && (!addrFrom || this.messageEnabled())) {
|
||||
this.printMessage("outATC(" + str.toHexByte(bOut) + "): no font changes required");
|
||||
}
|
||||
} else {
|
||||
if (DEBUG && this.messageEnabled()) {
|
||||
if (DEBUG && (!addrFrom || this.messageEnabled())) {
|
||||
this.printMessage("outATC(" + str.toHexByte(bOut) + "): redraw screen for font changes");
|
||||
}
|
||||
this.updateScreen(true);
|
||||
|
|
@ -4985,7 +4984,7 @@ Video.prototype.outATC = function(port, bOut, addrFrom)
|
|||
var iReg = this.cardEGA.regATCIndx & Card.ATC.INDX_MASK;
|
||||
if (iReg >= Card.ATC.PALETTE_REGS || !fPalEnabled) {
|
||||
if (Video.TRAPALL || this.cardEGA.regATCData[iReg] !== bOut) {
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(port, bOut, addrFrom, "ATC." + this.cardEGA.asATCRegs[iReg]);
|
||||
}
|
||||
this.cardEGA.regATCData[iReg] = bOut;
|
||||
|
|
@ -5139,7 +5138,7 @@ Video.prototype.outSEQIndx = function(port, bOut, addrFrom)
|
|||
Video.prototype.inSEQData = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardEGA.regSEQData[this.cardEGA.regSEQIndx];
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.SEQ.DATA.PORT, null, addrFrom, "SEQ" + this.cardEGA.asSEQRegs[this.cardEGA.regSEQIndx], b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5156,7 +5155,7 @@ Video.prototype.inSEQData = function(port, addrFrom)
|
|||
Video.prototype.outSEQData = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (Video.TRAPALL || this.cardEGA.regSEQData[this.cardEGA.regSEQIndx] !== bOut) {
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.SEQ.DATA.PORT, bOut, addrFrom, "SEQ." + this.cardEGA.asSEQRegs[this.cardEGA.regSEQIndx]);
|
||||
}
|
||||
this.cardEGA.regSEQData[this.cardEGA.regSEQIndx] = bOut;
|
||||
|
|
@ -5177,7 +5176,7 @@ Video.prototype.outSEQData = function(port, bOut, addrFrom)
|
|||
Video.prototype.inDACMask = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardEGA.regDACMask;
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.MASK.PORT, null, addrFrom, "DAC.MASK", b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5194,7 +5193,7 @@ Video.prototype.inDACMask = function(port, addrFrom)
|
|||
Video.prototype.outDACMask = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (Video.TRAPALL || this.cardEGA.regDACMask !== bOut) {
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.MASK.PORT, bOut, addrFrom, "DAC.MASK");
|
||||
}
|
||||
this.cardEGA.regDACMask = bOut;
|
||||
|
|
@ -5212,7 +5211,7 @@ Video.prototype.outDACMask = function(port, bOut, addrFrom)
|
|||
Video.prototype.inDACState = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardEGA.regDACState;
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.STATE.PORT, null, addrFrom, "DAC.STATE", b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5228,7 +5227,7 @@ Video.prototype.inDACState = function(port, addrFrom)
|
|||
*/
|
||||
Video.prototype.outDACRead = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.ADDR.PORT_READ, bOut, addrFrom, "DAC.READ");
|
||||
}
|
||||
this.cardEGA.regDACAddr = bOut;
|
||||
|
|
@ -5246,7 +5245,7 @@ Video.prototype.outDACRead = function(port, bOut, addrFrom)
|
|||
*/
|
||||
Video.prototype.outDACWrite = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.ADDR.PORT_WRITE, bOut, addrFrom, "DAC.WRITE");
|
||||
}
|
||||
this.cardEGA.regDACAddr = bOut;
|
||||
|
|
@ -5265,7 +5264,7 @@ Video.prototype.outDACWrite = function(port, bOut, addrFrom)
|
|||
Video.prototype.inDACData = function(port, addrFrom)
|
||||
{
|
||||
var b = (this.cardEGA.regDACData[this.cardEGA.regDACAddr] >> this.cardEGA.regDACShift) & 0x3f;
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.DATA.PORT, null, addrFrom, "DAC.DATA[" + str.toHexByte(this.cardEGA.regDACAddr) + "][" + str.toHexByte(this.cardEGA.regDACShift) + "]", b);
|
||||
}
|
||||
this.cardEGA.regDACShift += 6;
|
||||
|
|
@ -5287,7 +5286,7 @@ Video.prototype.inDACData = function(port, addrFrom)
|
|||
Video.prototype.outDACData = function(port, bOut, addrFrom)
|
||||
{
|
||||
var dw = this.cardEGA.regDACData[this.cardEGA.regDACAddr];
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.DAC.DATA.PORT, bOut, addrFrom, "DAC.DATA[" + str.toHexByte(this.cardEGA.regDACAddr) + "][" + str.toHexByte(this.cardEGA.regDACShift) + "]");
|
||||
}
|
||||
this.cardEGA.regDACData[this.cardEGA.regDACAddr] = (dw & ~(0x3f << this.cardEGA.regDACShift)) | ((bOut & 0x3f) << this.cardEGA.regDACShift);
|
||||
|
|
@ -5409,7 +5408,7 @@ Video.prototype.outGRCIndx = function(port, bOut, addrFrom)
|
|||
Video.prototype.inGRCData = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardEGA.regGRCData[this.cardEGA.regGRCIndx];
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.GRC.DATA.PORT, null, addrFrom, "GRC." + this.cardEGA.asGRCRegs[this.cardEGA.regGRCIndx], b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5426,7 +5425,7 @@ Video.prototype.inGRCData = function(port, addrFrom)
|
|||
Video.prototype.outGRCData = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (Video.TRAPALL || this.cardEGA.regGRCData[this.cardEGA.regGRCIndx] !== bOut) {
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(Card.GRC.DATA.PORT, bOut, addrFrom, "GRC." + this.cardEGA.asGRCRegs[this.cardEGA.regGRCIndx]);
|
||||
}
|
||||
this.cardEGA.regGRCData[this.cardEGA.regGRCIndx] = bOut;
|
||||
|
|
@ -5553,7 +5552,7 @@ Video.prototype.outCGAMode = function(port, bOut, addrFrom)
|
|||
Video.prototype.inCGAColor = function(port, addrFrom)
|
||||
{
|
||||
var b = this.cardColor.regColor;
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(port /* this.cardColor.port + 5 */, null, addrFrom, this.cardColor.type + ".COLOR", b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5569,7 +5568,7 @@ Video.prototype.inCGAColor = function(port, addrFrom)
|
|||
*/
|
||||
Video.prototype.outCGAColor = function(port, bOut, addrFrom)
|
||||
{
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(port /* this.cardColor.port + 5 */, bOut, addrFrom, this.cardColor.type + ".COLOR");
|
||||
}
|
||||
if (this.cardColor.regColor !== bOut) {
|
||||
|
|
@ -5661,7 +5660,7 @@ Video.prototype.inCRTCData = function(card, port, addrFrom)
|
|||
* it prefers (normally 0xff).
|
||||
*/
|
||||
if (card.fActive && card.regCRTIndx < card.nCRTCRegs) b = card.regCRTData[card.regCRTIndx];
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(port /* card.port + 1 */, null, addrFrom, "CRTC." + card.asCRTCRegs[card.regCRTIndx], b);
|
||||
}
|
||||
return b;
|
||||
|
|
@ -5680,7 +5679,7 @@ Video.prototype.outCRTCData = function(card, port, bOut, addrFrom)
|
|||
{
|
||||
if (card.regCRTIndx < card.nCRTCRegs) {
|
||||
if (Video.TRAPALL || card.regCRTData[card.regCRTIndx] !== bOut) {
|
||||
if (this.messageEnabled()) {
|
||||
if (!addrFrom || this.messageEnabled()) {
|
||||
this.printMessageIO(port /* card.port + 1 */, bOut, addrFrom, "CRTC." + card.asCRTCRegs[card.regCRTIndx]);
|
||||
}
|
||||
card.regCRTData[card.regCRTIndx] = bOut;
|
||||
|
|
@ -5699,7 +5698,7 @@ Video.prototype.outCRTCData = function(card, port, bOut, addrFrom)
|
|||
}
|
||||
this.checkCursor();
|
||||
} else {
|
||||
if (DEBUG && this.messageEnabled()) {
|
||||
if (DEBUG && (!addrFrom || this.messageEnabled())) {
|
||||
this.printMessage("outCRTCData(): ignoring unexpected write to CRTC[" + str.toHexByte(card.regCRTIndx) + "]: " + str.toHexByte(bOut));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue