jace/src/main/java/jace/ui/DebuggerPanel.java

455 lines
25 KiB
Java

/*
* Copyright (C) 2012 Brendan Robert (BLuRry) brendan.robert@gmail.com.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA
*/
package jace.ui;
import jace.EmulatorUILogic;
/**
* Simple debugger panel user interface. It gets the job done, but only just.
* @author Brendan Robert (BLuRry) brendan.robert@gmail.com
*/
public class DebuggerPanel extends javax.swing.JPanel {
/**
* Creates new form DebuggerPanel
*/
public DebuggerPanel() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
labelA = new javax.swing.JLabel();
labelX = new javax.swing.JLabel();
labelY = new javax.swing.JLabel();
labelSP = new javax.swing.JLabel();
labelPC = new javax.swing.JLabel();
labelINST = new javax.swing.JLabel();
valueA = new javax.swing.JLabel();
valueX = new javax.swing.JLabel();
valueY = new javax.swing.JLabel();
valueSP = new javax.swing.JLabel();
valuePC = new javax.swing.JLabel();
valueINST = new javax.swing.JLabel();
enableDebug = new javax.swing.JCheckBox();
labelPC1 = new javax.swing.JLabel();
valuePC2 = new javax.swing.JLabel();
stepForwardButton = new javax.swing.JButton();
labelBreakPoints = new javax.swing.JLabel();
labelWatches = new javax.swing.JLabel();
textBP1 = new javax.swing.JTextField();
textBP2 = new javax.swing.JTextField();
textBP3 = new javax.swing.JTextField();
textBP4 = new javax.swing.JTextField();
textW1 = new javax.swing.JTextField();
textW2 = new javax.swing.JTextField();
textW3 = new javax.swing.JTextField();
textW4 = new javax.swing.JTextField();
valueW1 = new javax.swing.JLabel();
valueW2 = new javax.swing.JLabel();
valueW3 = new javax.swing.JLabel();
valueW4 = new javax.swing.JLabel();
enableTrace = new javax.swing.JCheckBox();
setBackground(new java.awt.Color(0, 0, 40));
setDoubleBuffered(false);
setPreferredSize(new java.awt.Dimension(100, 492));
labelA.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelA.setForeground(new java.awt.Color(255, 255, 102));
labelA.setText("A:");
labelX.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelX.setForeground(new java.awt.Color(255, 255, 102));
labelX.setText("X:");
labelY.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelY.setForeground(new java.awt.Color(255, 255, 102));
labelY.setText("Y:");
labelSP.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelSP.setForeground(new java.awt.Color(255, 255, 102));
labelSP.setText("SP:");
labelPC.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelPC.setForeground(new java.awt.Color(255, 255, 102));
labelPC.setText("PC:");
labelINST.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelINST.setForeground(new java.awt.Color(255, 255, 102));
labelINST.setText("Instruction:");
valueA.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueA.setForeground(new java.awt.Color(255, 255, 255));
valueA.setText("00");
valueX.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueX.setForeground(new java.awt.Color(255, 255, 255));
valueX.setText("00");
valueY.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueY.setForeground(new java.awt.Color(255, 255, 255));
valueY.setText("00");
valueSP.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueSP.setForeground(new java.awt.Color(255, 255, 255));
valueSP.setText("00");
valuePC.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valuePC.setForeground(new java.awt.Color(255, 255, 255));
valuePC.setText("00");
valueINST.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueINST.setForeground(new java.awt.Color(255, 255, 255));
valueINST.setText("BRK");
enableDebug.setBackground(new java.awt.Color(0, 0, 255));
enableDebug.setForeground(new java.awt.Color(255, 255, 102));
enableDebug.setText("Debug?");
enableDebug.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
enableDebug.setContentAreaFilled(false);
enableDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
enableDebugActionPerformed(evt);
}
});
labelPC1.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelPC1.setForeground(new java.awt.Color(255, 255, 102));
labelPC1.setText("FL:");
valuePC2.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valuePC2.setForeground(new java.awt.Color(255, 255, 255));
valuePC2.setText("00");
stepForwardButton.setText("Step");
stepForwardButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
stepForwardButtonActionPerformed(evt);
}
});
labelBreakPoints.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelBreakPoints.setForeground(new java.awt.Color(255, 255, 102));
labelBreakPoints.setText("Breakpoints:");
labelWatches.setFont(new java.awt.Font("Arial", 0, 11)); // NOI18N
labelWatches.setForeground(new java.awt.Color(255, 255, 102));
labelWatches.setText("Watches:");
textBP1.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textBP1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textBP1breakpointKeyPressed(evt);
}
});
textBP2.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textBP2.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textBP2breakpointKeyPressed(evt);
}
});
textBP3.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textBP3.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textBP3breakpointKeyPressed(evt);
}
});
textBP4.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textBP4.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textBP4breakpointKeyPressed(evt);
}
});
textW1.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textW1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textW1watchKeyPressed(evt);
}
});
textW2.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textW2.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textW2watchKeyPressed(evt);
}
});
textW3.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textW3.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textW3watchKeyPressed(evt);
}
});
textW4.setFont(new java.awt.Font("Arial", 0, 10)); // NOI18N
textW4.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
textW4watchKeyPressed(evt);
}
});
valueW1.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueW1.setForeground(new java.awt.Color(255, 255, 255));
valueW1.setText("00");
valueW2.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueW2.setForeground(new java.awt.Color(255, 255, 255));
valueW2.setText("00");
valueW3.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueW3.setForeground(new java.awt.Color(255, 255, 255));
valueW3.setText("00");
valueW4.setFont(new java.awt.Font("Arial", 1, 11)); // NOI18N
valueW4.setForeground(new java.awt.Color(255, 255, 255));
valueW4.setText("00");
enableTrace.setBackground(new java.awt.Color(0, 0, 255));
enableTrace.setForeground(new java.awt.Color(255, 255, 102));
enableTrace.setText("Trace?");
enableTrace.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
enableTrace.setContentAreaFilled(false);
enableTrace.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
enableTraceActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(labelWatches, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(textW4, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textW3, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textW2, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textW1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 34, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(valueW4)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(valueW3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(valueW2)
.addComponent(valueW1)))
.addGap(24, 24, 24))
.addComponent(enableDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createSequentialGroup()
.addComponent(labelBreakPoints)
.addGap(0, 0, Short.MAX_VALUE))
.addComponent(enableTrace, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(stepForwardButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGap(51, 51, 51))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(labelA)
.addComponent(labelPC1)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(valuePC2, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(labelPC)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(valuePC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(labelSP)
.addComponent(labelY)
.addComponent(labelX))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(valueSP, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(valueY, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(valueA, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(valueX, javax.swing.GroupLayout.DEFAULT_SIZE, 18, Short.MAX_VALUE))))
.addComponent(labelINST)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(textBP4, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textBP3, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textBP2, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textBP1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(valueINST, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelA)
.addComponent(valueA))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelX)
.addComponent(valueX, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelY)
.addComponent(valueY, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelSP)
.addComponent(valueSP))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelPC)
.addComponent(valuePC))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(labelPC1)
.addComponent(valuePC2, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelINST)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(valueINST, javax.swing.GroupLayout.PREFERRED_SIZE, 13, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelBreakPoints, javax.swing.GroupLayout.PREFERRED_SIZE, 14, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textBP1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textBP2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textBP3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textBP4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(labelWatches)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(textW1, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(valueW1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(textW2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(valueW2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(textW3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(valueW3))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textW4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(valueW4))
.addGap(6, 6, 6)
.addComponent(stepForwardButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(enableDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(enableTrace)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
}// </editor-fold>//GEN-END:initComponents
private void enableDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_enableDebugActionPerformed
EmulatorUILogic.enableDebug(enableDebug.isSelected());
}//GEN-LAST:event_enableDebugActionPerformed
private void stepForwardButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_stepForwardButtonActionPerformed
EmulatorUILogic.stepForward();
}//GEN-LAST:event_stepForwardButtonActionPerformed
private void textBP1breakpointKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textBP1breakpointKeyPressed
EmulatorUILogic.updateBreakpointList(this);
}//GEN-LAST:event_textBP1breakpointKeyPressed
private void textBP2breakpointKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textBP2breakpointKeyPressed
EmulatorUILogic.updateBreakpointList(this);
}//GEN-LAST:event_textBP2breakpointKeyPressed
private void textBP3breakpointKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textBP3breakpointKeyPressed
EmulatorUILogic.updateBreakpointList(this);
}//GEN-LAST:event_textBP3breakpointKeyPressed
private void textBP4breakpointKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textBP4breakpointKeyPressed
EmulatorUILogic.updateBreakpointList(this);
}//GEN-LAST:event_textBP4breakpointKeyPressed
private void textW1watchKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textW1watchKeyPressed
EmulatorUILogic.updateWatchList(this);
}//GEN-LAST:event_textW1watchKeyPressed
private void textW2watchKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textW2watchKeyPressed
EmulatorUILogic.updateWatchList(this);
}//GEN-LAST:event_textW2watchKeyPressed
private void textW3watchKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textW3watchKeyPressed
EmulatorUILogic.updateWatchList(this);
}//GEN-LAST:event_textW3watchKeyPressed
private void textW4watchKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_textW4watchKeyPressed
EmulatorUILogic.updateWatchList(this);
}//GEN-LAST:event_textW4watchKeyPressed
private void enableTraceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_enableTraceActionPerformed
EmulatorUILogic.enableTrace(enableTrace.isSelected());
}//GEN-LAST:event_enableTraceActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
public javax.swing.JCheckBox enableDebug;
public javax.swing.JCheckBox enableTrace;
private javax.swing.JLabel labelA;
private javax.swing.JLabel labelBreakPoints;
private javax.swing.JLabel labelINST;
private javax.swing.JLabel labelPC;
private javax.swing.JLabel labelPC1;
private javax.swing.JLabel labelSP;
private javax.swing.JLabel labelWatches;
private javax.swing.JLabel labelX;
private javax.swing.JLabel labelY;
private javax.swing.JButton stepForwardButton;
public javax.swing.JTextField textBP1;
public javax.swing.JTextField textBP2;
public javax.swing.JTextField textBP3;
public javax.swing.JTextField textBP4;
public javax.swing.JTextField textW1;
public javax.swing.JTextField textW2;
public javax.swing.JTextField textW3;
public javax.swing.JTextField textW4;
public javax.swing.JLabel valueA;
public javax.swing.JLabel valueINST;
public javax.swing.JLabel valuePC;
public javax.swing.JLabel valuePC2;
public javax.swing.JLabel valueSP;
public javax.swing.JLabel valueW1;
public javax.swing.JLabel valueW2;
public javax.swing.JLabel valueW3;
public javax.swing.JLabel valueW4;
public javax.swing.JLabel valueX;
public javax.swing.JLabel valueY;
// End of variables declaration//GEN-END:variables
}