From b6ab0456519b48cf5f978db36a1d2b245820e719 Mon Sep 17 00:00:00 2001 From: mjbudd77 Date: Thu, 8 Jul 2021 18:00:35 -0400 Subject: [PATCH] Updated short descriptions for opcode tool tips. --- src/drivers/Qt/ConsoleDebugger.cpp | 7 +-- src/drivers/Qt/ConsoleUtilities.cpp | 66 ++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 4 deletions(-) diff --git a/src/drivers/Qt/ConsoleDebugger.cpp b/src/drivers/Qt/ConsoleDebugger.cpp index 982c4964..3673e8b5 100644 --- a/src/drivers/Qt/ConsoleDebugger.cpp +++ b/src/drivers/Qt/ConsoleDebugger.cpp @@ -3679,16 +3679,17 @@ bool QAsmView::event(QEvent *event) { int line; QHelpEvent *helpEvent = static_cast(event); - bool showOpcodeDesc = false; + bool opcodeValid, showOpcodeDesc = false; QPoint c = convPixToCursor(helpEvent->pos()); line = lineOffset + c.y(); - showOpcodeDesc = (c.x() >= 22) && (c.x() < 25) && - (line < asmEntry.size()) && (asmEntry[line]->size > 0) && + opcodeValid = (line < asmEntry.size()) && (asmEntry[line]->size > 0) && (asmEntry[line]->type == dbg_asm_entry_t::ASM_TEXT); + showOpcodeDesc = (c.x() >= 22) && (c.x() < 25) && opcodeValid; + if ( showOpcodeDesc ) { QString qs = fceuGetOpcodeToolTip(asmEntry[line]->opcode, asmEntry[line]->size ); diff --git a/src/drivers/Qt/ConsoleUtilities.cpp b/src/drivers/Qt/ConsoleUtilities.cpp index be4696d8..bd49cbb5 100644 --- a/src/drivers/Qt/ConsoleUtilities.cpp +++ b/src/drivers/Qt/ConsoleUtilities.cpp @@ -587,24 +587,32 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x18: title = "CLC - Clear Carry Flag"; + synopsis = "C = 0"; + longDesc = "Clears the carry flag (C)."; break; // CLD - Clear Decimal Mode case 0xD8: title = "CLD - Clear Decimal Mode"; + synopsis = "D = 0"; + longDesc = "Clears the decimal mode flag (D)."; break; // CLI - Clear Interrupt Disable case 0x58: title = "CLI - Clear Interrupt Disable"; + synopsis = "I = 0"; + longDesc = "Clears the interrupt disable flag (I)."; break; // CLV - Clear Overflow Flag case 0xB8: title = "CLV - Clear Overflow Flag"; + synopsis = "V = 0"; + longDesc = "Clears the overflow flag (V)."; break; // CMP - Compare @@ -618,6 +626,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xD1: title = "CMP - Compare"; + synopsis = "Z,C,N = A-M"; + if ( opcode[0] == 0xC9 ) { addrMode = "Immediate"; @@ -631,6 +641,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xEC: title = "CPX - Compare X Register"; + synopsis = "Z,C,N = X-M"; + if ( opcode[0] == 0xE0 ) { addrMode = "Immediate"; @@ -644,6 +656,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xCC: title = "CPY - Compare Y Register"; + synopsis = "Z,C,N = Y-M"; + if ( opcode[0] == 0xE0 ) { addrMode = "Immediate"; @@ -658,18 +672,24 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xDE: title = "DEC - Decrement Memory"; + synopsis = "M,Z,N = M-1"; + longDesc = "Subtracts one from the byte at the specified memory address."; break; // DEX - Decrement X Register case 0xCA: title = "DEX - Decrement X Register"; + synopsis = "X,Z,N = X-1"; + longDesc = "Subtracts one from the X register."; break; // DEY - Decrement Y Register case 0x88: title = "DEY - Decrement Y Register"; + synopsis = "Y,Z,N = Y-1"; + longDesc = "Subtracts one from the Y register."; break; // EOR - Exclusive OR @@ -683,6 +703,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x51: title = "EOR - Exclusive OR"; + synopsis = "A,Z,N = A^M"; + if ( opcode[0] == 0x49 ) { addrMode = "Immediate"; @@ -695,7 +717,9 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xF6: case 0xEE: case 0xFE: - title = "INC - Decrement Memory"; + title = "INC - Increment Memory"; + + synopsis = "M,Z,N = M+1"; longDesc = "Adds one to the the byte at the specified memory address."; break; @@ -703,12 +727,16 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xE8: title = "INX - Increment X Register"; + synopsis = "X,Z,N = X+1"; + longDesc = "Adds one to the X register."; break; // INY - Increment Y Register case 0xC8: title = "INY - Increment Y Register"; + synopsis = "Y,Z,N = Y+1"; + longDesc = "Adds one to the Y register."; break; // JMP - Jump @@ -735,6 +763,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xB1: title = "LDA - Load Accumulator"; + synopsis = "A,Z,N = M"; + if ( opcode[0] == 0xA9 ) { addrMode = "Immediate"; @@ -750,6 +780,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xBE: title = "LDX - Load X Register"; + synopsis = "X,Z,N = M"; + if ( opcode[0] == 0xA2 ) { addrMode = "Immediate"; @@ -765,6 +797,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xBC: title = "LDY - Load Y Register"; + synopsis = "Y,Z,N = M"; + if ( opcode[0] == 0xA0 ) { addrMode = "Immediate"; @@ -780,6 +814,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x5E: title = "LSR - Logical Shift Right"; + synopsis = "A,C,Z,N = A/2 or M,C,Z,N = M/2"; + if ( opcode[0] == 0x4A ) { addrMode = "Accumulator"; @@ -803,6 +839,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x11: title = "ORA - Logical Inclusive OR"; + synopsis = "A,Z,N = A|M"; + if ( opcode[0] == 0x09 ) { addrMode = "Immediate"; @@ -887,6 +925,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0xF1: title = "SBC - Subtract with Carry"; + synopsis = "A,Z,C,N = A-M-(1-C)"; + if ( opcode[0] == 0xE9 ) { addrMode = "Immediate"; @@ -898,18 +938,24 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x38: title = "SEC - Set Carry Flag"; + synopsis = "C = 1"; + longDesc = "Sets the carry flag (C)."; break; // SED - Set Decimal Flag case 0xF8: title = "SED - Set Decimal Flag"; + synopsis = "D = 1"; + longDesc = "Sets the decimal mode flag (D)."; break; // SEI - Set Interrupt Disable case 0x78: title = "SEI - Set Interrupt Disable"; + synopsis = "I = 1"; + longDesc = "Sets the interrupt disable flag (I)."; break; // STA - Store Accumulator @@ -922,6 +968,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x91: title = "STA - Store Accumulator"; + synopsis = "M = A"; + longDesc = "Stores the contents of the accumulator into memory."; break; // STX - Store X Register @@ -930,6 +978,8 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x8E: title = "STX - Store X Register"; + synopsis = "M = X"; + longDesc = "Stores the value of the X register into memory."; break; // STY - Store Y Register @@ -938,42 +988,56 @@ QString fceuGetOpcodeToolTip( uint8_t *opcode, int size ) case 0x8C: title = "STY - Store Y Register"; + synopsis = "M = Y"; + longDesc = "Stores the value of the Y register into memory."; break; // TAX - Transfer Accumulator to X Register case 0xAA: title = "TAX - Transfer Accumulator to X Register"; + synopsis = "X = A"; + longDesc = "Copies the accumulator into the X register."; break; // TAY - Transfer Accumulator to Y Register case 0xA8: title = "TAY - Transfer Accumulator to Y Register"; + synopsis = "Y = A"; + longDesc = "Copies the accumulator into the Y register."; break; // TSX - Transfer Stack Pointer to X Register case 0xBA: title = "TSX - Transfer Stack Pointer to X Register"; + synopsis = "X = S"; + longDesc = "Copies the stack pointer into the X register."; break; // TXA - Transfer X Register to Accumulator case 0x8A: title = "TXA - Transfer X Register to Accumulator"; + synopsis = "A = X"; + longDesc = "Copies the X register into the accumulator."; break; // TXS - Transfer X Register to Stack Pointer case 0x9A: title = "TXS - Transfer X Register to Stack Pointer"; + synopsis = "S = X"; + longDesc = "Copies the X register into the stack pointer."; break; // TYA - Transfer Y Register to Accumulator case 0x98: title = "TYA - Transfer Y Register to Accumulator"; + synopsis = "A = Y"; + longDesc = "Copies the Y register into the accumulator."; break; default: