home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Graphics;
-
- class ThreeToEightLineDecoder extends IntegratedCircuit {
- public ThreeToEightLineDecoder(Pin[][] var1, int var2, int var3) {
- super(var2, var3, 10, 11, 3, 1, 4, 9, 6, 8);
- super.IPin[0] = new InputPin("0", 1, 2, 2, 0, 0, 0, 0);
- super.IPin[1] = new InputPin("1", 1, 3, 2, 0, 0, 0, 0);
- super.IPin[2] = new InputPin("2", 1, 4, 2, 0, 0, 0, 0);
- super.IPin[3] = new InputPin("EN1", 1, 7, 2, 0, 0, 0, 3);
- super.IPin[4] = new InputPin("EN2", 1, 8, 2, 0, 0, 0, 3);
- super.IPin[5] = new InputPin("EN3", 1, 9, 2, 0, 0, 0, 2);
- super.OPin[0] = new OutputPin("0", 9, 2, -2, 0, 0, 0, 1);
- super.OPin[1] = new OutputPin("1", 9, 3, -2, 0, 0, 0, 1);
- super.OPin[2] = new OutputPin("2", 9, 4, -2, 0, 0, 0, 1);
- super.OPin[3] = new OutputPin("3", 9, 5, -2, 0, 0, 0, 1);
- super.OPin[4] = new OutputPin("4", 9, 6, -2, 0, 0, 0, 1);
- super.OPin[5] = new OutputPin("5", 9, 7, -2, 0, 0, 0, 1);
- super.OPin[6] = new OutputPin("6", 9, 8, -2, 0, 0, 0, 1);
- super.OPin[7] = new OutputPin("7", 9, 9, -2, 0, 0, 0, 1);
- super.ComponentName = "3- to 8-line decoder";
- super.ClassName = "ThreeToEightLineDecoder";
- ((ElectronicComponent)this).RegisterPins(var1, var2, var3);
- }
-
- public ThreeToEightLineDecoder(ElectronicComponent var1, int var2, int var3) {
- super(var1, var2, var3);
- }
-
- public ElectronicComponent Copy(int var1, int var2) {
- ThreeToEightLineDecoder var3 = new ThreeToEightLineDecoder(this, var1, var2);
- return var3;
- }
-
- public void SimulateLogic() {
- int var2 = 0;
- if (super.IPin[3].getLevel() != 0 && super.IPin[4].getLevel() != 0 && super.IPin[5].getLevel() != 0) {
- if (super.IPin[0].getLevel() == 5) {
- var2 |= 1;
- }
-
- if (super.IPin[1].getLevel() == 5) {
- var2 |= 2;
- }
-
- if (super.IPin[2].getLevel() == 5) {
- var2 |= 4;
- }
-
- for(int var3 = 0; var3 < 8; ++var3) {
- if (var3 != var2) {
- super.OPin[var3].Level = 0;
- } else {
- super.OPin[var3].Level = 5;
- }
- }
-
- } else {
- for(int var1 = 0; var1 < 8; ++var1) {
- super.OPin[var1].Level = 0;
- }
-
- }
- }
-
- public void draw(Graphics var1, int var2, int var3, int var4) {
- super.draw(var1, var2, var3, var4);
- int var5 = super.Pos.x - var2;
- int var6 = super.Pos.y - var3;
- var1.setColor(ElectronicComponent.ComponentColor);
- var1.drawLine((var5 + 3) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4));
- var1.drawLine((var5 + 5) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4));
- var1.drawLine((var5 + 3) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4));
- }
- }
-