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

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.io.PrintStream;
  4.  
  5. class SevenSegmentDisplay extends IntegratedCircuit {
  6.    protected Color LEDColorOn;
  7.    static final Color LEDColorOff;
  8.    static final int seg_a = 0;
  9.    static final int seg_b = 1;
  10.    static final int seg_c = 2;
  11.    static final int seg_d = 3;
  12.    static final int seg_e = 4;
  13.    static final int seg_f = 5;
  14.    static final int seg_g = 6;
  15.    static final int seg_dp = 7;
  16.    // $FF: renamed from: ck int
  17.    static final int field_0 = 8;
  18.  
  19.    public SevenSegmentDisplay(Pin[][] var1, Color var2, int var3, int var4) {
  20.       super(var3, var4, 12, 12, 3, 1, 6, 8, 9, 0);
  21.       this.LEDColorOn = var2;
  22.       super.IPin[0] = new InputPin("a", 1, 2, 2, 0, 0, 0, 0);
  23.       super.IPin[1] = new InputPin("b", 1, 3, 2, 0, 0, 0, 0);
  24.       super.IPin[2] = new InputPin("c", 1, 4, 2, 0, 0, 0, 0);
  25.       super.IPin[3] = new InputPin("d", 1, 5, 2, 0, 0, 0, 0);
  26.       super.IPin[4] = new InputPin("e", 1, 6, 2, 0, 0, 0, 0);
  27.       super.IPin[5] = new InputPin("f", 1, 7, 2, 0, 0, 0, 0);
  28.       super.IPin[6] = new InputPin("g", 1, 8, 2, 0, 0, 0, 0);
  29.       super.IPin[7] = new InputPin("dp", 11, 8, -2, 0, 0, 0, 2);
  30.       super.IPin[8] = new InputPin("CK", 6, 11, 0, -2, 0, 0, 0);
  31.       super.ComponentName = "7-segment display";
  32.       super.ClassName = "SevenSegmentDisplay";
  33.       ((ElectronicComponent)this).RegisterPins(var1, var3, var4);
  34.    }
  35.  
  36.    public SevenSegmentDisplay(ElectronicComponent var1, int var2, int var3) {
  37.       super(var1, var2, var3);
  38.    }
  39.  
  40.    public ElectronicComponent Copy(int var1, int var2) {
  41.       SevenSegmentDisplay var3 = new SevenSegmentDisplay(this, var1, var2);
  42.       var3.LEDColorOn = this.LEDColorOn;
  43.       return var3;
  44.    }
  45.  
  46.    public void SimulateLogic() {
  47.    }
  48.  
  49.    public void Save(PrintStream var1) {
  50.       var1.println("describe component SevenSegmentDisplay");
  51.       var1.println(" pos " + super.Pos.x + " " + super.Pos.y);
  52.       if (this.LEDColorOn == Color.red) {
  53.          var1.println(" color red");
  54.       } else if (this.LEDColorOn == Color.green) {
  55.          var1.println(" color green");
  56.       } else if (this.LEDColorOn == Color.yellow) {
  57.          var1.println(" color yellow");
  58.       }
  59.  
  60.       var1.println("end describe");
  61.    }
  62.  
  63.    public void draw(Graphics var1, int var2, int var3, int var4) {
  64.       int var5 = super.Pos.x - var2;
  65.       int var6 = super.Pos.y - var3;
  66.       var1.setColor(Color.black);
  67.       var1.fillRect((var5 + super.HitBox.x) * var4, (var6 + super.HitBox.y) * var4, super.HitBoxSize.width * var4, super.HitBoxSize.height * var4);
  68.       if (super.IPin[0].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  69.          var1.setColor(this.LEDColorOn);
  70.       } else {
  71.          var1.setColor(LEDColorOff);
  72.       }
  73.  
  74.       var1.fillRect((int)(((double)var5 + (double)4.5F) * (double)var4 + (double)1.0F), (int)(((double)var6 + (double)1.25F) * (double)var4), (int)((double)var4 * (double)2.75F), var4 / 2);
  75.       if (super.IPin[1].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  76.          var1.setColor(this.LEDColorOn);
  77.       } else {
  78.          var1.setColor(LEDColorOff);
  79.       }
  80.  
  81.       var1.fillRect((int)(((double)var5 + (double)7.5F) * (double)var4), (int)(((double)var6 + (double)1.5F) * (double)var4), var4 / 2, var4 * 3 - 1);
  82.       if (super.IPin[2].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  83.          var1.setColor(this.LEDColorOn);
  84.       } else {
  85.          var1.setColor(LEDColorOff);
  86.       }
  87.  
  88.       var1.fillRect((int)(((double)var5 + (double)7.5F) * (double)var4), (int)(((double)var6 + (double)4.5F) * (double)var4 + (double)1.0F), var4 / 2, var4 * 3 - 1);
  89.       if (super.IPin[3].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  90.          var1.setColor(this.LEDColorOn);
  91.       } else {
  92.          var1.setColor(LEDColorOff);
  93.       }
  94.  
  95.       var1.fillRect((int)(((double)var5 + (double)4.5F) * (double)var4 + (double)1.0F), (int)(((double)var6 + (double)7.25F) * (double)var4), (int)((double)var4 * (double)2.75F), var4 / 2);
  96.       if (super.IPin[4].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  97.          var1.setColor(this.LEDColorOn);
  98.       } else {
  99.          var1.setColor(LEDColorOff);
  100.       }
  101.  
  102.       var1.fillRect((var5 + 4) * var4, (int)(((double)var6 + (double)4.5F) * (double)var4 + (double)1.0F), var4 / 2, var4 * 3 - 1);
  103.       if (super.IPin[5].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  104.          var1.setColor(this.LEDColorOn);
  105.       } else {
  106.          var1.setColor(LEDColorOff);
  107.       }
  108.  
  109.       var1.fillRect((var5 + 4) * var4, (int)(((double)var6 + (double)1.5F) * (double)var4), var4 / 2, var4 * 3 - 1);
  110.       if (super.IPin[6].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  111.          var1.setColor(this.LEDColorOn);
  112.       } else {
  113.          var1.setColor(LEDColorOff);
  114.       }
  115.  
  116.       var1.fillRect((int)(((double)var5 + (double)4.5F) * (double)var4 + (double)1.0F), (int)(((double)var6 + (double)4.25F) * (double)var4), (int)((double)var4 * (double)2.75F), var4 / 2);
  117.       if (super.IPin[7].getLevel() == 5 && super.IPin[8].getLevel() == 0) {
  118.          var1.setColor(this.LEDColorOn);
  119.       } else {
  120.          var1.setColor(LEDColorOff);
  121.       }
  122.  
  123.       var1.fillOval((var5 + 8) * var4 + 1, (int)(((double)var6 + (double)7.75F) * (double)var4), (int)((double)var4 / (double)1.5F + (double)1.0F), (int)((double)var4 / (double)1.5F + (double)1.0F));
  124.       super.draw(var1, var2, var3, var4);
  125.    }
  126.  
  127.    public void InitBeforeSimulate() {
  128.       for(int var1 = 0; var1 < 9; ++var1) {
  129.          super.IPin[var1].InitBeforeSimulate();
  130.          super.IPin[var1].setLevel(-1);
  131.       }
  132.  
  133.    }
  134.  
  135.    static {
  136.       LEDColorOff = Color.darkGray;
  137.    }
  138. }
  139.