From faf179d2d359eb1363a165802bcc67fa13ae35cf Mon Sep 17 00:00:00 2001 From: Jeff Parsons Date: Fri, 5 Jun 2015 09:09:23 -0700 Subject: [PATCH] Debugger I/O improvements --- modules/pcjs/lib/debugger.js | 19 +++++++++-------- modules/pcjs/lib/video.js | 41 ++++++++++++++++++------------------ 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/modules/pcjs/lib/debugger.js b/modules/pcjs/lib/debugger.js index 2c1d8a811..1531adcbd 100644 --- a/modules/pcjs/lib/debugger.js +++ b/modules/pcjs/lib/debugger.js @@ -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)); } }; diff --git a/modules/pcjs/lib/video.js b/modules/pcjs/lib/video.js index d0d4bdc63..65462f73b 100644 --- a/modules/pcjs/lib/video.js +++ b/modules/pcjs/lib/video.js @@ -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)); } }