⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 am2901.java

📁 是对am2901处理器的模拟
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
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 + -