home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / DIGSIM.EXE / ThreeToEightLineDecoder.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-05-21  |  2.2 KB  |  75 lines

  1. import java.awt.Graphics;
  2.  
  3. class ThreeToEightLineDecoder extends IntegratedCircuit {
  4.    public ThreeToEightLineDecoder(Pin[][] var1, int var2, int var3) {
  5.       super(var2, var3, 10, 11, 3, 1, 4, 9, 6, 8);
  6.       super.IPin[0] = new InputPin("0", 1, 2, 2, 0, 0, 0, 0);
  7.       super.IPin[1] = new InputPin("1", 1, 3, 2, 0, 0, 0, 0);
  8.       super.IPin[2] = new InputPin("2", 1, 4, 2, 0, 0, 0, 0);
  9.       super.IPin[3] = new InputPin("EN1", 1, 7, 2, 0, 0, 0, 3);
  10.       super.IPin[4] = new InputPin("EN2", 1, 8, 2, 0, 0, 0, 3);
  11.       super.IPin[5] = new InputPin("EN3", 1, 9, 2, 0, 0, 0, 2);
  12.       super.OPin[0] = new OutputPin("0", 9, 2, -2, 0, 0, 0, 1);
  13.       super.OPin[1] = new OutputPin("1", 9, 3, -2, 0, 0, 0, 1);
  14.       super.OPin[2] = new OutputPin("2", 9, 4, -2, 0, 0, 0, 1);
  15.       super.OPin[3] = new OutputPin("3", 9, 5, -2, 0, 0, 0, 1);
  16.       super.OPin[4] = new OutputPin("4", 9, 6, -2, 0, 0, 0, 1);
  17.       super.OPin[5] = new OutputPin("5", 9, 7, -2, 0, 0, 0, 1);
  18.       super.OPin[6] = new OutputPin("6", 9, 8, -2, 0, 0, 0, 1);
  19.       super.OPin[7] = new OutputPin("7", 9, 9, -2, 0, 0, 0, 1);
  20.       super.ComponentName = "3- to 8-line decoder";
  21.       super.ClassName = "ThreeToEightLineDecoder";
  22.       ((ElectronicComponent)this).RegisterPins(var1, var2, var3);
  23.    }
  24.  
  25.    public ThreeToEightLineDecoder(ElectronicComponent var1, int var2, int var3) {
  26.       super(var1, var2, var3);
  27.    }
  28.  
  29.    public ElectronicComponent Copy(int var1, int var2) {
  30.       ThreeToEightLineDecoder var3 = new ThreeToEightLineDecoder(this, var1, var2);
  31.       return var3;
  32.    }
  33.  
  34.    public void SimulateLogic() {
  35.       int var2 = 0;
  36.       if (super.IPin[3].getLevel() != 0 && super.IPin[4].getLevel() != 0 && super.IPin[5].getLevel() != 0) {
  37.          if (super.IPin[0].getLevel() == 5) {
  38.             var2 |= 1;
  39.          }
  40.  
  41.          if (super.IPin[1].getLevel() == 5) {
  42.             var2 |= 2;
  43.          }
  44.  
  45.          if (super.IPin[2].getLevel() == 5) {
  46.             var2 |= 4;
  47.          }
  48.  
  49.          for(int var3 = 0; var3 < 8; ++var3) {
  50.             if (var3 != var2) {
  51.                super.OPin[var3].Level = 0;
  52.             } else {
  53.                super.OPin[var3].Level = 5;
  54.             }
  55.          }
  56.  
  57.       } else {
  58.          for(int var1 = 0; var1 < 8; ++var1) {
  59.             super.OPin[var1].Level = 0;
  60.          }
  61.  
  62.       }
  63.    }
  64.  
  65.    public void draw(Graphics var1, int var2, int var3, int var4) {
  66.       super.draw(var1, var2, var3, var4);
  67.       int var5 = super.Pos.x - var2;
  68.       int var6 = super.Pos.y - var3;
  69.       var1.setColor(ElectronicComponent.ComponentColor);
  70.       var1.drawLine((var5 + 3) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4));
  71.       var1.drawLine((var5 + 5) * var4, (int)(((double)var6 + (double)6.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4));
  72.       var1.drawLine((var5 + 3) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4), (var5 + 5) * var4, (int)(((double)var6 + (double)9.5F) * (double)var4));
  73.    }
  74. }
  75.