📄 am2901.java
字号:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
public class am2901{
private kernel KERNEL;
private final static String TITLE = "Am2901 Simulator";
private int i,j;
public int data[] = new int[16];
public int ds[] = new int[3];
public int df[] = new int[4];
public int mi_l[] = new int[12];
public int mi_r[] = new int[12];
private final JTextField jt1 = new JTextField("0000");
private final JTextField jt2 = new JTextField("0000");
private final JTextField jt3 = new JTextField("0000");
private final JTextField jt4 = new JTextField("0000");
private final JPanel basicControl = new JPanel();
private JButton step = new JButton("STEP");
private JButton reset = new JButton("RESET");
private JButton ldmc = new JButton("LDMC / RESET");
private JButton DataOn0 = new JButton();
private JButton DataOn1 = new JButton();
private JButton DataOn2 = new JButton();
private JButton DataOn3 = new JButton();
private JButton DataOn4 = new JButton();
private JButton DataOn5 = new JButton();
private JButton DataOn6 = new JButton();
private JButton DataOn7 = new JButton();
private JButton DataOn8 = new JButton();
private JButton DataOn9 = new JButton();
private JButton DataOn10 = new JButton();
private JButton DataOn11 = new JButton();
private JButton DataOn12 = new JButton();
private JButton DataOn13 = new JButton();
private JButton DataOn14 = new JButton();
private JButton DataOn15 = new JButton();
private JButton DataOff0 = new JButton();
private JButton DataOff1 = new JButton();
private JButton DataOff2 = new JButton();
private JButton DataOff3 = new JButton();
private JButton DataOff4 = new JButton();
private JButton DataOff5 = new JButton();
private JButton DataOff6 = new JButton();
private JButton DataOff7 = new JButton();
private JButton DataOff8 = new JButton();
private JButton DataOff9 = new JButton();
private JButton DataOff10 = new JButton();
private JButton DataOff11 = new JButton();
private JButton DataOff12 = new JButton();
private JButton DataOff13 = new JButton();
private JButton DataOff14 = new JButton();
private JButton DataOff15 = new JButton();
private JButton sOn0 = new JButton();
private JButton sOn1 = new JButton();
private JButton sOn2 = new JButton();
private JButton sOff0 = new JButton();
private JButton sOff1 = new JButton();
private JButton sOff2 = new JButton();
private JButton fOn0 = new JButton();
private JButton fOn1 = new JButton();
private JButton fOn2 = new JButton();
private JButton fOn3 = new JButton();
private JButton fOff0 = new JButton();
private JButton fOff1 = new JButton();
private JButton fOff2 = new JButton();
private JButton fOff3 = new JButton();
public am2901(){
KERNEL = new kernel();
createAndShowGUI();
}
public void changeColor(Color c){
jt1.setBackground(c);
jt2.setBackground(c);
jt3.setBackground(c);
jt4.setBackground(c);
step.setBackground(c);
reset.setBackground(c);
ldmc.setBackground(c);
DataOn0.setBackground(c);
DataOn1.setBackground(c);
DataOn2.setBackground(c);
DataOn3.setBackground(c);
DataOn4.setBackground(c);
DataOn5.setBackground(c);
DataOn6.setBackground(c);
DataOn7.setBackground(c);
DataOn8.setBackground(c);
DataOn9.setBackground(c);
DataOn10.setBackground(c);
DataOn11.setBackground(c);
DataOn12.setBackground(c);
DataOn13.setBackground(c);
DataOn14.setBackground(c);
DataOn15.setBackground(c);
DataOff0.setBackground(c);
DataOff1.setBackground(c);
DataOff2.setBackground(c);
DataOff3.setBackground(c);
DataOff4.setBackground(c);
DataOff5.setBackground(c);
DataOff6.setBackground(c);
DataOff7.setBackground(c);
DataOff8.setBackground(c);
DataOff9.setBackground(c);
DataOff10.setBackground(c);
DataOff11.setBackground(c);
DataOff12.setBackground(c);
DataOff13.setBackground(c);
DataOff14.setBackground(c);
DataOff15.setBackground(c);
sOn0.setBackground(c);
sOn1.setBackground(c);
sOn2.setBackground(c);
sOff0.setBackground(c);
sOff1.setBackground(c);
sOff2.setBackground(c);
fOn0.setBackground(c);
fOn1.setBackground(c);
fOn2.setBackground(c);
fOn3.setBackground(c);
fOff0.setBackground(c);
fOff1.setBackground(c);
fOff2.setBackground(c);
fOff3.setBackground(c);
}
public void clear(){
jt1.setText("0000");
jt2.setText("0000");
jt3.setText("0000");
jt4.setText("0000");
KERNEL.clearRegistersAndFlags();
KERNEL.specifyData(data);
KERNEL.specifyMI(mi_l,mi_r);
}
public void refreshSignals_arithmetic(){
int[] receive;
receive = KERNEL.calculate();
StringBuffer temp1 = new StringBuffer("");
StringBuffer temp2 = new StringBuffer("");
StringBuffer temp3 = new StringBuffer("");
StringBuffer temp4 = new StringBuffer("");
temp1.append(receive[0]);
temp1.append(receive[1]);
temp1.append(receive[2]);
temp1.append(receive[3]);
jt1.setText(String.valueOf(temp1));
temp2.append(receive[4]);
temp2.append(receive[5]);
temp2.append(receive[6]);
temp2.append(receive[7]);
jt2.setText(String.valueOf(temp2));
temp3.append(receive[8]);
temp3.append(receive[9]);
temp3.append(receive[10]);
temp3.append(receive[11]);
jt3.setText(String.valueOf(temp3));
temp4.append(receive[12]);
temp4.append(receive[13]);
temp4.append(receive[14]);
temp4.append(receive[15]);
jt4.setText(String.valueOf(temp4));
}
public void refreshSignals_flags(){
int[] receive;
receive = KERNEL.getFlags();
StringBuffer temp = new StringBuffer("");
jt1.setText("0000");
jt2.setText("0000");
jt3.setText("0000");
temp.append(receive[0]);
temp.append(receive[1]);
temp.append(receive[2]);
temp.append(receive[3]);
jt4.setText(String.valueOf(temp));
}
public void show(){
if(df[0]==1){
if(ds[2]==1&&ds[1]==1&&ds[0]==0){
refreshSignals_arithmetic();
}
else if(ds[2]==0&&ds[1]==0&&ds[0]==0){
refreshSignals_flags();
}
}
else{
JOptionPane.showMessageDialog(basicControl,"Current version only support single mode!\nPlease set FS4 to 1");
}
}
public void addComponentToPane(){
GridLayout layout0 = new GridLayout(1,3);
GridLayout layout1 = new GridLayout(1,4);
GridLayout layout2 = new GridLayout(9,1);
GridLayout layout3 = new GridLayout(1,2);
BorderLayout layout4 = new BorderLayout();
layout0.setHgap(10);
layout1.setHgap(10);
layout2.setHgap(10);
layout2.setVgap(10);
layout3.setHgap(100);
layout4.setHgap(50);
final JPanel blank1 = new JPanel();
final JPanel blank2 = new JPanel();
final JPanel left = new JPanel(new BorderLayout());
final JPanel right = new JPanel(new BorderLayout());
final JPanel DataIn0 = new JPanel();
final JPanel DataIn1 = new JPanel();
final JPanel DataIn2 = new JPanel();
final JPanel DataIn3 = new JPanel();
final JPanel DataIn4 = new JPanel();
final JPanel DataIn5 = new JPanel();
final JPanel DataIn6 = new JPanel();
final JPanel DataIn7 = new JPanel();
final JPanel DataIn8 = new JPanel();
final JPanel DataIn9 = new JPanel();
final JPanel DataIn10 = new JPanel();
final JPanel DataIn11 = new JPanel();
final JPanel DataIn12 = new JPanel();
final JPanel DataIn13 = new JPanel();
final JPanel DataIn14 = new JPanel();
final JPanel DataIn15 = new JPanel();
final JPanel S0 = new JPanel();
final JPanel S1 = new JPanel();
final JPanel S2 = new JPanel();
final JPanel F0 = new JPanel();
final JPanel F1 = new JPanel();
final JPanel F2 = new JPanel();
final JPanel F3 = new JPanel();
final JPanel jp876 = new JPanel(new BorderLayout());
final JPanel jp543 = new JPanel(new BorderLayout());
final JPanel jp210 = new JPanel(new BorderLayout());
final JPanel jpSst = new JPanel(new BorderLayout());
final JPanel jpAdr_a = new JPanel(new BorderLayout());
final JPanel jpAdr_b = new JPanel(new BorderLayout());
final JPanel jpSci = new JPanel(new BorderLayout());
final JPanel jpSsh = new JPanel(new BorderLayout());
final JPanel jpGroupA = new JPanel(new BorderLayout());
final JPanel jpGroupB = new JPanel(new BorderLayout());
final JPanel jpl1 = new JPanel();
final JPanel jpl2 = new JPanel();
final JPanel jpl3 = new JPanel();
final JPanel jpl4 = new JPanel();
final JPanel jpr1 = new JPanel();
final JPanel jpr2 = new JPanel();
final JPanel jpr3 = new JPanel();
final JPanel jpr4 = new JPanel();
final JPanel right_row1 = new JPanel();
final JPanel right_row2 = new JPanel();
final JPanel wrap_step_reset = new JPanel(layout3);
final JPanel wrap_ldmc = new JPanel(layout4);
JPanel gatherDataIn = new JPanel(new GridLayout(1,16));
JPanel gatherS = new JPanel(layout0);
JPanel gatherF = new JPanel(layout1);
JPanel gatherTextField = new JPanel(new GridLayout(1,9));
JPanel jpSignal = new JPanel(new GridLayout(2,1));
JPanel ps0 = new JPanel(new BorderLayout());
JPanel ps1 = new JPanel(new BorderLayout());
JPanel ps2 = new JPanel(new BorderLayout());
JPanel pf0 = new JPanel(new BorderLayout());
JPanel pf1 = new JPanel(new BorderLayout());
JPanel pf2 = new JPanel(new BorderLayout());
JPanel pf3 = new JPanel(new BorderLayout());
JPanel pd0 = new JPanel(new BorderLayout());
JPanel pd1 = new JPanel(new BorderLayout());
JPanel pd2 = new JPanel(new BorderLayout());
JPanel pd3 = new JPanel(new BorderLayout());
JPanel pd4 = new JPanel(new BorderLayout());
JPanel pd5 = new JPanel(new BorderLayout());
JPanel pd6 = new JPanel(new BorderLayout());
JPanel pd7 = new JPanel(new BorderLayout());
JPanel pd8 = new JPanel(new BorderLayout());
JPanel pd9 = new JPanel(new BorderLayout());
JPanel pd10 = new JPanel(new BorderLayout());
JPanel pd11 = new JPanel(new BorderLayout());
JPanel pd12 = new JPanel(new BorderLayout());
JPanel pd13 = new JPanel(new BorderLayout());
JPanel pd14 = new JPanel(new BorderLayout());
JPanel pd15 = new JPanel(new BorderLayout());
ActionListener a0;
ActionListener a1;
ActionListener a2;
ActionListener a3;
ActionListener a4;
ActionListener a5;
ActionListener a6;
ActionListener a7;
ActionListener a8;
ActionListener a9;
ActionListener a10;
ActionListener a11;
ActionListener a12;
ActionListener a13;
ActionListener a14;
ActionListener a15;
ActionListener sa0;
ActionListener sa1;
ActionListener sa2;
ActionListener fa0;
ActionListener fa1;
ActionListener fa2;
ActionListener fa3;
final CardLayout cy0 = new CardLayout();
final CardLayout cy1 = new CardLayout();
final CardLayout cy2 = new CardLayout();
final CardLayout cy3 = new CardLayout();
final CardLayout cy4 = new CardLayout();
final CardLayout cy5 = new CardLayout();
final CardLayout cy6 = new CardLayout();
final CardLayout cy7 = new CardLayout();
final CardLayout cy8 = new CardLayout();
final CardLayout cy9 = new CardLayout();
final CardLayout cy10 = new CardLayout();
final CardLayout cy11 = new CardLayout();
final CardLayout cy12 = new CardLayout();
final CardLayout cy13 = new CardLayout();
final CardLayout cy14 = new CardLayout();
final CardLayout cy15 = new CardLayout();
final CardLayout cs0 = new CardLayout();
final CardLayout cs1 = new CardLayout();
final CardLayout cs2 = new CardLayout();
final CardLayout cf0 = new CardLayout();
final CardLayout cf1 = new CardLayout();
final CardLayout cf2 = new CardLayout();
final CardLayout cf3 = new CardLayout();
JLabel jl = new JLabel("TEC-2 ALU SIMULATOR");
JLabel signal = new JLabel("Signals",SwingConstants.CENTER);
JLabel js0 = new JLabel("S0",SwingConstants.CENTER);
JLabel js1 = new JLabel("S1",SwingConstants.CENTER);
JLabel js2 = new JLabel("S2",SwingConstants.CENTER);
JLabel jf0 = new JLabel("FS4",SwingConstants.CENTER);
JLabel jf1 = new JLabel("FS3",SwingConstants.CENTER);
JLabel jf2 = new JLabel("FS2",SwingConstants.CENTER);
JLabel jf3 = new JLabel("FS1",SwingConstants.CENTER);
JLabel jd0 = new JLabel("D0",SwingConstants.CENTER);
JLabel jd1 = new JLabel("D1",SwingConstants.CENTER);
JLabel jd2 = new JLabel("D2",SwingConstants.CENTER);
JLabel jd3 = new JLabel("D3",SwingConstants.CENTER);
JLabel jd4 = new JLabel("D4",SwingConstants.CENTER);
JLabel jd5 = new JLabel("D5",SwingConstants.CENTER);
JLabel jd6 = new JLabel("D6",SwingConstants.CENTER);
JLabel jd7 = new JLabel("D7",SwingConstants.CENTER);
JLabel jd8 = new JLabel("D8",SwingConstants.CENTER);
JLabel jd9 = new JLabel("D9",SwingConstants.CENTER);
JLabel jd10 = new JLabel("D10",SwingConstants.CENTER);
JLabel jd11 = new JLabel("D11",SwingConstants.CENTER);
JLabel jd12 = new JLabel("D12",SwingConstants.CENTER);
JLabel jd13 = new JLabel("D13",SwingConstants.CENTER);
JLabel jd14 = new JLabel("D14",SwingConstants.CENTER);
JLabel jd15 = new JLabel("D15",SwingConstants.CENTER);
JLabel l1 = new JLabel("MI876",SwingConstants.CENTER);
JLabel l2 = new JLabel("MI543",SwingConstants.CENTER);
JLabel l3 = new JLabel("MI210",SwingConstants.CENTER);
JLabel l4 = new JLabel("SST",SwingConstants.CENTER);
JLabel r1 = new JLabel("ADDR A",SwingConstants.CENTER);
JLabel r2 = new JLabel("ADDR B",SwingConstants.CENTER);
JLabel r3 = new JLabel("SCI",SwingConstants.CENTER);
JLabel r4 = new JLabel("SSH",SwingConstants.CENTER);
JCheckBox ca1 = new JCheckBox();
JCheckBox ca2 = new JCheckBox();
JCheckBox ca3 = new JCheckBox();
JCheckBox ca4 = new JCheckBox();
JCheckBox ca5 = new JCheckBox();
JCheckBox ca6 = new JCheckBox();
JCheckBox ca7 = new JCheckBox();
JCheckBox ca8 = new JCheckBox();
JCheckBox ca9 = new JCheckBox();
JCheckBox ca10 = new JCheckBox();
JCheckBox ca11 = new JCheckBox();
JCheckBox ca12 = new JCheckBox();
JCheckBox cb1 = new JCheckBox();
JCheckBox cb2 = new JCheckBox();
JCheckBox cb3 = new JCheckBox();
JCheckBox cb4 = new JCheckBox();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -