Added tool tips for CPU status display on Qt debugger.

This commit is contained in:
mjbudd77 2021-07-06 19:58:12 -04:00
parent a993487d13
commit 47da5cbc17
2 changed files with 97 additions and 56 deletions

View File

@ -551,11 +551,13 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
mainLayouth->addLayout( vbox4, 5 ); mainLayouth->addLayout( vbox4, 5 );
mainLayouth->addLayout( vbox1, 4 ); mainLayouth->addLayout( vbox1, 4 );
cpuFrame = new QGroupBox( tr("CPU Status") );
grid = new QGridLayout(); grid = new QGridLayout();
vbox1->addLayout( hbox1 ); vbox1->addWidget( cpuFrame );
hbox1->addLayout( vbox2, 1 ); hbox1->addLayout( vbox2, 1 );
vbox2->addLayout( grid ); vbox2->addLayout( grid );
cpuFrame->setLayout( hbox1 );
//button = new QPushButton( tr("Run") ); //button = new QPushButton( tr("Run") );
//grid->addWidget( button, 0, 0, Qt::AlignLeft ); //grid->addWidget( button, 0, 0, Qt::AlignLeft );
@ -596,6 +598,7 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
lbl = new QLabel( tr("PC:") ); lbl = new QLabel( tr("PC:") );
lbl->setToolTip( tr("Program Counter Register") );
pcEntry = new QLineEdit(); pcEntry = new QLineEdit();
pcEntry->setFont( font ); pcEntry->setFont( font );
pcEntry->setMaxLength( 4 ); pcEntry->setMaxLength( 4 );
@ -603,6 +606,7 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
pcEntry->setAlignment(Qt::AlignCenter); pcEntry->setAlignment(Qt::AlignCenter);
pcEntry->setMinimumWidth( 6 * fontCharWidth ); pcEntry->setMinimumWidth( 6 * fontCharWidth );
pcEntry->setMaximumWidth( 6 * fontCharWidth ); pcEntry->setMaximumWidth( 6 * fontCharWidth );
pcEntry->setToolTip( tr("Program Counter Register Hex Value") );
hbox->addWidget( lbl ); hbox->addWidget( lbl );
hbox->addWidget( pcEntry, 1, Qt::AlignLeft ); hbox->addWidget( pcEntry, 1, Qt::AlignLeft );
grid->addLayout( hbox, 0, 0, Qt::AlignLeft ); grid->addLayout( hbox, 0, 0, Qt::AlignLeft );
@ -613,6 +617,7 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
lbl = new QLabel( tr("A:") ); lbl = new QLabel( tr("A:") );
lbl->setToolTip( tr("Accumulator Register") );
regAEntry = new QLineEdit(); regAEntry = new QLineEdit();
regAEntry->setFont( font ); regAEntry->setFont( font );
regAEntry->setMaxLength( 2 ); regAEntry->setMaxLength( 2 );
@ -620,12 +625,14 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
regAEntry->setAlignment(Qt::AlignCenter); regAEntry->setAlignment(Qt::AlignCenter);
regAEntry->setMinimumWidth( 4 * fontCharWidth ); regAEntry->setMinimumWidth( 4 * fontCharWidth );
regAEntry->setMaximumWidth( 4 * fontCharWidth ); regAEntry->setMaximumWidth( 4 * fontCharWidth );
regAEntry->setToolTip( tr("Accumulator Register Hex Value") );
hbox->addWidget( lbl ); hbox->addWidget( lbl );
hbox->addWidget( regAEntry, 1, Qt::AlignLeft ); hbox->addWidget( regAEntry, 1, Qt::AlignLeft );
grid->addLayout( hbox, 0, 1 ); grid->addLayout( hbox, 0, 1 );
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
lbl = new QLabel( tr("X:") ); lbl = new QLabel( tr("X:") );
lbl->setToolTip( tr("X Index Register") );
regXEntry = new QLineEdit(); regXEntry = new QLineEdit();
regXEntry->setFont( font ); regXEntry->setFont( font );
regXEntry->setMaxLength( 2 ); regXEntry->setMaxLength( 2 );
@ -633,12 +640,14 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
regXEntry->setAlignment(Qt::AlignCenter); regXEntry->setAlignment(Qt::AlignCenter);
regXEntry->setMinimumWidth( 4 * fontCharWidth ); regXEntry->setMinimumWidth( 4 * fontCharWidth );
regXEntry->setMaximumWidth( 4 * fontCharWidth ); regXEntry->setMaximumWidth( 4 * fontCharWidth );
regXEntry->setToolTip( tr("X Index Register Hex Value") );
hbox->addWidget( lbl ); hbox->addWidget( lbl );
hbox->addWidget( regXEntry, 1, Qt::AlignLeft ); hbox->addWidget( regXEntry, 1, Qt::AlignLeft );
grid->addLayout( hbox, 0, 2 ); grid->addLayout( hbox, 0, 2 );
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
lbl = new QLabel( tr("Y:") ); lbl = new QLabel( tr("Y:") );
lbl->setToolTip( tr("Y Index Register") );
regYEntry = new QLineEdit(); regYEntry = new QLineEdit();
regYEntry->setFont( font ); regYEntry->setFont( font );
regYEntry->setMaxLength( 2 ); regYEntry->setMaxLength( 2 );
@ -646,10 +655,26 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
regYEntry->setAlignment(Qt::AlignCenter); regYEntry->setAlignment(Qt::AlignCenter);
regYEntry->setMinimumWidth( 4 * fontCharWidth ); regYEntry->setMinimumWidth( 4 * fontCharWidth );
regYEntry->setMaximumWidth( 4 * fontCharWidth ); regYEntry->setMaximumWidth( 4 * fontCharWidth );
regYEntry->setToolTip( tr("Y Index Register Hex Value") );
hbox->addWidget( lbl ); hbox->addWidget( lbl );
hbox->addWidget( regYEntry, 1, Qt::AlignLeft ); hbox->addWidget( regYEntry, 1, Qt::AlignLeft );
grid->addLayout( hbox, 0, 3 ); grid->addLayout( hbox, 0, 3 );
QHBoxLayout *regPHbox = new QHBoxLayout();
lbl = new QLabel( tr("P:") );
lbl->setToolTip( tr("Status Register") );
regPEntry = new QLineEdit();
regPEntry->setFont( font );
regPEntry->setMaxLength( 2 );
regPEntry->setInputMask( ">HH;0" );
regPEntry->setAlignment(Qt::AlignCenter);
regPEntry->setMinimumWidth( 4 * fontCharWidth );
regPEntry->setMaximumWidth( 4 * fontCharWidth );
regPEntry->setToolTip( tr("Status Register Hex Value") );
regPHbox->addWidget( lbl );
regPHbox->addWidget( regPEntry, 1, Qt::AlignLeft );
//grid->addLayout( regPHbox, 0, 4 );
cpuCyclesLbl1 = new QLabel( tr("CPU Cycles:") ); cpuCyclesLbl1 = new QLabel( tr("CPU Cycles:") );
//cpuCyclesLbl2 = new QLabel( tr("(+0):") ); //cpuCyclesLbl2 = new QLabel( tr("(+0):") );
cpuCyclesVal = new QLineEdit( tr("(+0):") ); cpuCyclesVal = new QLineEdit( tr("(+0):") );
@ -754,14 +779,24 @@ ConsoleDebugger::ConsoleDebugger(QWidget *parent)
Z_chkbox = new QCheckBox( tr("Z") ); Z_chkbox = new QCheckBox( tr("Z") );
C_chkbox = new QCheckBox( tr("C") ); C_chkbox = new QCheckBox( tr("C") );
grid->addWidget( N_chkbox, 0, 0, Qt::AlignCenter ); N_chkbox->setToolTip( tr("Negative" ) );
grid->addWidget( V_chkbox, 0, 1, Qt::AlignCenter ); V_chkbox->setToolTip( tr("Overflow" ) );
grid->addWidget( U_chkbox, 0, 2, Qt::AlignCenter ); U_chkbox->setToolTip( tr("Unused" ) );
grid->addWidget( B_chkbox, 0, 3, Qt::AlignCenter ); B_chkbox->setToolTip( tr("Break" ) );
grid->addWidget( D_chkbox, 1, 0, Qt::AlignCenter ); D_chkbox->setToolTip( tr("Decimal" ) );
grid->addWidget( I_chkbox, 1, 1, Qt::AlignCenter ); I_chkbox->setToolTip( tr("Interrupt") );
grid->addWidget( Z_chkbox, 1, 2, Qt::AlignCenter ); Z_chkbox->setToolTip( tr("Zero" ) );
grid->addWidget( C_chkbox, 1, 3, Qt::AlignCenter ); C_chkbox->setToolTip( tr("Carry" ) );
grid->addLayout( regPHbox, 0, 0, 2, 1);
grid->addWidget( N_chkbox, 0, 1, Qt::AlignLeft );
grid->addWidget( V_chkbox, 0, 2, Qt::AlignLeft );
grid->addWidget( U_chkbox, 0, 3, Qt::AlignLeft );
grid->addWidget( B_chkbox, 0, 4, Qt::AlignLeft );
grid->addWidget( D_chkbox, 1, 1, Qt::AlignLeft );
grid->addWidget( I_chkbox, 1, 2, Qt::AlignLeft );
grid->addWidget( Z_chkbox, 1, 3, Qt::AlignLeft );
grid->addWidget( C_chkbox, 1, 4, Qt::AlignLeft );
vbox1->addWidget( bpFrame); vbox1->addWidget( bpFrame);
vbox2->addWidget( sfFrame); vbox2->addWidget( sfFrame);
@ -2764,6 +2799,10 @@ void ConsoleDebugger::updateRegisterView(void)
regYEntry->setText( tr(stmp) ); regYEntry->setText( tr(stmp) );
sprintf( stmp, "%02X", X.P );
regPEntry->setText( tr(stmp) );
N_chkbox->setChecked( (X.P & N_FLAG) ? true : false ); N_chkbox->setChecked( (X.P & N_FLAG) ? true : false );
V_chkbox->setChecked( (X.P & V_FLAG) ? true : false ); V_chkbox->setChecked( (X.P & V_FLAG) ? true : false );
U_chkbox->setChecked( (X.P & U_FLAG) ? true : false ); U_chkbox->setChecked( (X.P & U_FLAG) ? true : false );

View File

@ -248,11 +248,13 @@ class ConsoleDebugger : public QDialog
QLineEdit *regAEntry; QLineEdit *regAEntry;
QLineEdit *regXEntry; QLineEdit *regXEntry;
QLineEdit *regYEntry; QLineEdit *regYEntry;
QLineEdit *regPEntry;
//QLineEdit *cpuCycExdVal; //QLineEdit *cpuCycExdVal;
//QLineEdit *instrExdVal; //QLineEdit *instrExdVal;
QLineEdit *selBmAddr; QLineEdit *selBmAddr;
QLineEdit *cpuCyclesVal; QLineEdit *cpuCyclesVal;
QLineEdit *cpuInstrsVal; QLineEdit *cpuInstrsVal;
QGroupBox *cpuFrame;
QGroupBox *stackFrame; QGroupBox *stackFrame;
QGroupBox *bpFrame; QGroupBox *bpFrame;
QGroupBox *sfFrame; QGroupBox *sfFrame;