📄 cu.java
字号:
import java.awt.*;
import java.awt.event.*;
public
class CU
extends Frame
implements ActionListener
{
public CU( Frame parent, String windowTitle )
{
super( windowTitle );
CPUBox = ( CPU ) parent;
MenuBar mbar = new MenuBar();
setMenuBar( mbar );
Menu file = new Menu( "File" );
closeWindowMenuItem = new MenuItem( "Close Window" );
closeWindowMenuItem.addActionListener( this );
file.add( closeWindowMenuItem );
mbar.add( file );
addWindowListener(
new WindowAdapter()
{
public void windowClosing( WindowEvent e )
{
setVisible( false );
}
}
);
setSize( 340, 365 );
}
public void clear()
{
m =0;
n =0;
o =0;
m2 =0;
n2 =0;
o2 =0;
m3 =0;
n3 =0;
o3 =0;
m4 =0;
n4 =0;
o4 =0;
m5 =0;
n5 =0;
o5 =0;
m6 =0;
n6 =0;
o6 =0;
m7 =0;
n7 =0;
o7 =0;
m8 =0;
n8 =0;
o8 =0;
m9 =0;
n9 =0;
o9 =0;
m10 =0;
n10 =0;
o10 =0;
m11 =0;
n11 =0;
o11 =0;
m12 =0;
n12 =0;
o12 =0;
m13 =0;
n13 =0;
o13 =0;
m14 =0;
n14 =0;
o14 =0;
m15 =0;
n15 =0;
o15 =0;
m16 =0;
n16 =0;
o16 =0;
m17 =0;
n17 =0;
o17 =0;
m18 =0;
n18 =0;
o18 =0;
m19 =0;
n19 =0;
o19 =0;
m20 =0;
n20 =0;
o20 =0;
m21 =0;
n21 =0;
o21 =0;
m22 =0;
n22 =0;
o22 =0;
m23 =0;
n23 =0;
o23 =0;
m24 =0;
n24 =0;
o24 =0;
m25 =0;
n25 =0;
o25 =0;
m26 =0;
n26 =0;
o26 =0;
}
public void setActive( boolean b )
{
active = b;
}
public boolean getActive()
{
return ( active );
}
public void actionPerformed( ActionEvent evt )
{
Object eventSource = evt.getSource();
if ( eventSource == closeWindowMenuItem )
{
setVisible( false );
}
}
public void paint( Graphics g )
{
if ( ! hasBeenPainted )
{
setSize( 340, 365 );
hasBeenPainted = true;
}
Color c0 = Color.black;
Color c1 = new Color( m, n, o );
Color c2 = new Color( m2, n2, o2 );
Color c3 = new Color(m3,n3,o3);
Color c4 = new Color(m4,n4,o4);
Color c5 = new Color(m5,n5,o5);
Color c6 = new Color(m6,n6,o6);
Color c7 = new Color(m7,n7,o7);
Color c8 = new Color(m8,n8,o8);
Color c9 = new Color(m9,n9,o9);
Color c10 = new Color(m10,n10,o10);
Color c11 = new Color(m11,n11,o11);
Color c12 = new Color(m12,n12,o12);
Color c13 = new Color(m13,n13,o13);
Color c14 = new Color(m14,n14,o14);
Color c15 = new Color(m15,n15,o15);
Color c16 = new Color(m16,n16,o16);
Color c17 = new Color(m17,n17,o17);
Color c18 = new Color(m18,n18,o18);
Color c19 = new Color(m19,n19,o19);
Color c20 = new Color(m20,n20,o20);
Color c21 = new Color(m21,n21,o21);
Color c22 = new Color(m22,n22,o22);
Color c23 = new Color(m23,n23,o23);
Color c24 = new Color(m24,n24,o24);
Color c25 = new Color(m25,n25,o25);
Color c26 = new Color(m26,n26,o26);
Font f3 = new Font( "Times New Roman", Font.PLAIN, 9 );
g.setFont( f3 );
g.drawRect(190,53,70,193); //Decoder
/* g.setColor(c1);
g.drawString("E",82,333);
g.drawLine(85,335,85,370);
g.drawLine(85,370,81,370);
g.setColor(c0);
*/
g.setColor(c2);
g.drawLine(260,63,266,63);
g.drawString("FETCH1",272,67);
g.setColor(c0);
g.setColor(c3);
g.drawLine(260,80,266,80);
g.drawString("FETCH2",272,84);
g.setColor(c0);
g.setColor(c4);
g.drawLine(260,97,266,97);
g.drawString("FETCH3",272,101);
g.setColor(c0);
g.setColor(c5);
g.drawLine(260,131,266,131);
g.drawString("ADD1",272,135);
g.setColor(c0);
g.setColor(c6);
g.drawLine(260,148,266,148);
g.drawString("ADD2",272,152);
g.setColor(c0);
g.setColor(c7);
g.drawLine(260,165,266,165);
g.drawString("AND1",272,169);
g.setColor(c0);
g.setColor(c8);
g.drawLine(260,182,266,182);
g.drawString("AND2",272,186);
g.setColor(c0);
g.setColor(c9);
g.drawLine(260,199,266,199);
g.drawString("JMP1",272,204);
g.setColor(c0);
g.setColor(c10);
g.drawLine(260,233,266,233);
g.drawString("INC1",272,237);
g.setColor(c0);
/*
g.setColor(c11);
g.drawLine(115,218,121,218);
g.drawString("ISUB",124,221);
g.setColor(c0);
g.setColor(c12);
g.drawLine(115,235,121,235);
g.drawString("IINAC",124,238);
g.setColor(c0);
g.setColor(c13);
g.drawLine(115,252,121,252);
g.drawString("ICLAC",124,255);
g.setColor(c0);
g.setColor(c14);
g.drawLine(115,269,121,269);
g.drawString("IAND",124,272);
g.setColor(c0);
g.setColor(c15);
g.drawLine(115,286,121,286);
g.drawString("IOR",124,289);
g.setColor(c0);
g.setColor(c16);
g.drawLine(115,303,121,303);
g.drawString("IXOR",124,306);
g.setColor(c0);
g.setColor(c17);
g.drawLine(115,320,121,320);
g.drawString("INOT",124,323);
*/
g.setColor(c0);
g.drawString("DECODER",201,118);
g.drawString("0",250,67);
g.drawString("1",250,84);
g.drawString("2",250,101);
// g.drawString("3",250,120);
// g.drawString("4",108,137);
// g.drawString("5",108,154);
// g.drawString("6",108,171);
// g.drawString("7",108,188);
g.drawString("8",250,135);
g.drawString("9",250,152);
g.drawString("10",246,169);
g.drawString("11",246,186);
g.drawString("12",246,204);
// g.drawString("13",104,290);
g.drawString("14",246,237);
g.fillOval(250,216,4,4);
g.fillOval(250,107,4,4);
g.fillOval(250,116,4,4);
// g.drawString("15",104,324);
// g.drawArc(33,355,10,30,90,-173); //NOR
// g.drawArc(-6,355,80,30,84,-166); //NOR
// g.drawOval(75,367,6,6); //NOR
g.setColor(c14);
g.drawString("FETCH3",56,254);// at the or gate
g.drawLine(70,235,70,245);
g.drawString("LD",65,233);
g.setColor(c0);
g.setColor(c22);
g.drawString("CLR",107,233);
g.drawLine(115,235,115,275);
g.drawLine(115,275,133,275);
g.drawArc(173,260,10,30,90,180); //small part of the arc
g.drawArc(134,260,80,30,87,188); //big part of the arc
g.setColor(c0);
g.setColor(c16);
g.drawLine(175,265,180,265); // at the or gate
g.drawString("ADD2",182,269); // at the or gate
g.setColor(c18);
g.drawLine(173,272,210,272); // at the or gate
g.drawString("AND2",213,276); // at the or gate
g.setColor(c19);
g.drawLine(173,280,180,280); // at the or gate
g.drawString("JMP1",182,284); // at the or gate
g.setColor(c20);
g.drawLine(175,286,210,286); // at the or gate
g.drawString("INC1",213,291); // at the or gate
g.setColor(c21);
g.drawString("INC",85,233);
g.drawLine(93,235,93,319);
g.drawLine(93,319,133,319);
g.drawArc(173,304,10,30,90,180); //small part of the arc
g.drawArc(134,304,80,30,87,188); //big part of the arc
g.setColor(c0);
g.setColor(c12);
g.drawLine(175,309,180,309); // at the or gate
g.drawString("FETCH1",182,313);// at the or gate
g.setColor(c0);
g.setColor(c13);
g.drawLine(173,316,210,316); // at the or gate
g.drawString("FETCH2",213,321); // at the or gate
g.setColor(c15);
g.drawLine(173,324,180,324); // at the or gate
g.drawString("ADD1",182,328); // at the or gate
g.setColor(c17);
g.drawLine(175,330,210,330); // at the or gate
g.drawString("AND1",213,335); // at the or gate
g.setColor(c0);
// g.drawString("IR[7..4]",7,373);
g.setColor(c14);
g.drawLine(60,145,50,145);
g.drawString("1IR[1..0]0",10,148);
g.setColor(c0);
g.drawLine(130,145,190,145);
g.drawRect(60,60,70,175); //COUNTER
g.drawString("COUNTER",74,118);
/*
g.drawString("0",219,137);
g.drawString("1",219,154);
g.drawString("2",219,171);
g.drawString("3",219,188);
g.drawString("4",219,205);
g.drawString("5",219,222);
g.drawString("6",219,239);
g.drawString("7",219,256);
g.setColor(c18);
g.drawLine(199,262,199,268); // line to clk
g.drawString("CLK",191,277);
g.setColor(c0);
g.setColor(c19);
g.drawLine(228,133,233,133);
g.drawString("T0",235,136);
g.setColor(c0);
g.setColor(c20);
g.drawLine(228,150,233,150);
g.drawString("T1",235,153);
g.setColor(c0);
g.setColor(c21);
g.drawLine(228,167,233,167);
g.drawString("T2",235,170);
g.setColor(c0);
g.setColor(c22);
g.drawLine(228,184,233,184);
g.drawString("T3",235,187);
g.setColor(c0);
g.setColor(c23);
g.drawLine(228,201,233,201);
g.drawString("T4",235,204);
g.setColor(c0);
g.setColor(c24);
g.drawLine(228,218,233,218);
g.drawString("T5",235,221);
g.setColor(c0);
g.setColor(c25);
g.drawLine(228,235,233,235);
g.drawString("T6",235,238);
g.setColor(c0);
g.setColor(c26);
g.drawLine(228,252,233,252);
g.drawString("T7",235,255);
g.setColor(c0);
*/
}
public int m = 0;
public int n = 0;
public int o = 0;
public int m2 = 0;
public int n2 = 0;
public int o2 = 0;
public int m3 = 0;
public int n3 = 0;
public int o3 = 0;
public int m4 = 0;
public int n4 = 0;
public int o4 = 0;
public int m5 = 0;
public int n5 = 0;
public int o5 = 0;
public int m6 = 0;
public int n6 = 0;
public int o6 = 0;
public int m7 = 0;
public int n7 = 0;
public int o7 = 0;
public int m8 = 0;
public int n8 = 0;
public int o8 = 0;
public int m9 = 0;
public int n9 = 0;
public int o9 = 0;
public int m10 = 0;
public int n10 = 0;
public int o10 = 0;
public int m11 = 0;
public int n11 = 0;
public int o11 = 0;
public int m12 = 0;
public int n12 = 0;
public int o12 = 0;
public int m13 = 0;
public int n13 = 0;
public int o13 = 0;
public int m14 = 0;
public int n14 = 0;
public int o14 = 0;
public int m15 = 0;
public int n15 = 0;
public int o15 = 0;
public int m16 = 0;
public int n16 = 0;
public int o16 = 0;
public int m17 = 0;
public int n17 = 0;
public int o17 = 0;
public int m18 = 0;
public int n18 = 0;
public int o18 = 0;
public int m19 = 0;
public int n19 = 0;
public int o19 = 0;
public int m20 = 0;
public int n20 = 0;
public int o20 = 0;
public int m21 = 0;
public int n21 = 0;
public int o21 = 0;
public int m22 = 0;
public int n22 = 0;
public int o22 = 0;
public int m23 = 0;
public int n23 = 0;
public int o23 = 0;
public int m24 = 0;
public int n24 = 0;
public int o24 = 0;
public int m25 = 0;
public int n25 = 0;
public int o25 = 0;
public int m26 = 0;
public int n26 = 0;
public int o26 = 0;
private CPU CPUBox;
private MenuItem closeWindowMenuItem;
private boolean hasBeenPainted = false;
private boolean active;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -