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

  1. class BCDToSevenSegDecoder extends IntegratedCircuit {
  2.    // $FF: renamed from: LE int
  3.    static final int field_0 = 0;
  4.    // $FF: renamed from: BI int
  5.    static final int field_1 = 1;
  6.    // $FF: renamed from: LT int
  7.    static final int field_2 = 2;
  8.    // $FF: renamed from: A int
  9.    static final int field_3 = 3;
  10.    // $FF: renamed from: B int
  11.    static final int field_4 = 4;
  12.    // $FF: renamed from: C int
  13.    static final int field_5 = 5;
  14.    // $FF: renamed from: D int
  15.    static final int field_6 = 6;
  16.    // $FF: renamed from: a int
  17.    static final int field_7 = 0;
  18.    // $FF: renamed from: b int
  19.    static final int field_8 = 1;
  20.    // $FF: renamed from: c int
  21.    static final int field_9 = 2;
  22.    // $FF: renamed from: d int
  23.    static final int field_10 = 3;
  24.    // $FF: renamed from: e int
  25.    static final int field_11 = 4;
  26.    // $FF: renamed from: f int
  27.    static final int field_12 = 5;
  28.    // $FF: renamed from: g int
  29.    static final int field_13 = 6;
  30.    static final int[][] SegLev = new int[][]{{5, 5, 5, 5, 5, 5, 0}, {0, 5, 5, 0, 0, 0, 0}, {5, 5, 0, 5, 5, 0, 5}, {5, 5, 5, 5, 0, 0, 5}, {0, 5, 5, 0, 0, 5, 5}, {5, 0, 5, 5, 0, 5, 5}, {5, 0, 5, 5, 5, 5, 5}, {5, 5, 5, 0, 0, 0, 0}, {5, 5, 5, 5, 5, 5, 5}, {5, 5, 5, 5, 0, 5, 5}, {5, 5, 5, 0, 5, 5, 5}, {0, 0, 5, 5, 5, 5, 5}, {5, 0, 0, 5, 5, 5, 0}, {0, 5, 5, 5, 5, 0, 5}, {5, 0, 0, 5, 5, 5, 5}, {5, 0, 0, 0, 5, 5, 5}};
  31.    int ActVal;
  32.  
  33.    public BCDToSevenSegDecoder(Pin[][] var1, int var2, int var3) {
  34.       super(var2, var3, 10, 13, 3, 1, 4, 11, 7, 7);
  35.       super.IPin[0] = new InputPin("LE", 1, 2, 2, 0, 0, 0, 1);
  36.       super.IPin[1] = new InputPin("BI", 1, 4, 2, 0, 0, 0, 1);
  37.       super.IPin[2] = new InputPin("LT", 1, 6, 2, 0, 0, 0, 1);
  38.       super.IPin[3] = new InputPin("A", 1, 8, 2, 0, 0, 0, 0);
  39.       super.IPin[4] = new InputPin("B", 1, 9, 2, 0, 0, 0, 0);
  40.       super.IPin[5] = new InputPin("C", 1, 10, 2, 0, 0, 0, 0);
  41.       super.IPin[6] = new InputPin("D", 1, 11, 2, 0, 0, 0, 0);
  42.       super.OPin[0] = new OutputPin("a", 9, 3, -2, 0, 0, 0, 0);
  43.       super.OPin[1] = new OutputPin("b", 9, 4, -2, 0, 0, 0, 0);
  44.       super.OPin[2] = new OutputPin("c", 9, 5, -2, 0, 0, 0, 0);
  45.       super.OPin[3] = new OutputPin("d", 9, 6, -2, 0, 0, 0, 0);
  46.       super.OPin[4] = new OutputPin("e", 9, 7, -2, 0, 0, 0, 0);
  47.       super.OPin[5] = new OutputPin("f", 9, 8, -2, 0, 0, 0, 0);
  48.       super.OPin[6] = new OutputPin("g", 9, 9, -2, 0, 0, 0, 0);
  49.       super.ComponentName = "BCD to 7-segment decoder";
  50.       super.ClassName = "BCDToSevenSegDecoder";
  51.       ((ElectronicComponent)this).RegisterPins(var1, var2, var3);
  52.    }
  53.  
  54.    public BCDToSevenSegDecoder(ElectronicComponent var1, int var2, int var3) {
  55.       super(var1, var2, var3);
  56.    }
  57.  
  58.    public ElectronicComponent Copy(int var1, int var2) {
  59.       BCDToSevenSegDecoder var3 = new BCDToSevenSegDecoder(this, var1, var2);
  60.       return var3;
  61.    }
  62.  
  63.    public void SimulateLogic() {
  64.       if (super.IPin[2].getLevel() == 5) {
  65.          for(int var3 = 0; var3 < 7; ++var3) {
  66.             super.OPin[var3].Level = 5;
  67.          }
  68.  
  69.       } else if (super.IPin[1].getLevel() == 5) {
  70.          for(int var2 = 0; var2 < 7; ++var2) {
  71.             super.OPin[var2].Level = 0;
  72.          }
  73.  
  74.       } else {
  75.          if (super.IPin[0].getLevel() == 5) {
  76.             this.ActVal = 0;
  77.             if (super.IPin[3].getLevel() == 5) {
  78.                ++this.ActVal;
  79.             }
  80.  
  81.             if (super.IPin[4].getLevel() == 5) {
  82.                this.ActVal += 2;
  83.             }
  84.  
  85.             if (super.IPin[5].getLevel() == 5) {
  86.                this.ActVal += 4;
  87.             }
  88.  
  89.             if (super.IPin[6].getLevel() == 5) {
  90.                this.ActVal += 8;
  91.             }
  92.          }
  93.  
  94.          for(int var1 = 0; var1 < 7; ++var1) {
  95.             super.OPin[var1].Level = SegLev[this.ActVal][var1];
  96.          }
  97.  
  98.       }
  99.    }
  100. }
  101.