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

  1. class EightBitParInShiftReg extends IntegratedCircuit {
  2.    int[] Mem = new int[8];
  3.  
  4.    public EightBitParInShiftReg(Pin[][] var1, int var2, int var3) {
  5.       super(var2, var3, 10, 17, 3, 1, 4, 15, 11, 2);
  6.       super.IPin[0] = new InputPin("CLK", 1, 2, 2, 0, 0, 0, 4);
  7.       super.IPin[1] = new InputPin("CLR", 1, 4, 2, 0, 0, 0, 1);
  8.       super.IPin[2] = new InputPin("LD", 1, 6, 2, 0, 0, 0, 1);
  9.       super.IPin[3] = new InputPin("1", 1, 8, 2, 0, 0, 0, 0);
  10.       super.IPin[4] = new InputPin("2", 1, 9, 2, 0, 0, 0, 0);
  11.       super.IPin[5] = new InputPin("3", 1, 10, 2, 0, 0, 0, 0);
  12.       super.IPin[6] = new InputPin("4", 1, 11, 2, 0, 0, 0, 0);
  13.       super.IPin[7] = new InputPin("5", 1, 12, 2, 0, 0, 0, 0);
  14.       super.IPin[8] = new InputPin("6", 1, 13, 2, 0, 0, 0, 0);
  15.       super.IPin[9] = new InputPin("7", 1, 14, 2, 0, 0, 0, 0);
  16.       super.IPin[10] = new InputPin("8", 1, 15, 2, 0, 0, 0, 0);
  17.       super.OPin[0] = new OutputPin("Q", 9, 13, -2, 0, 0, 0, 0);
  18.       super.OPin[1] = new OutputPin("Q", 9, 15, -2, 0, 0, 0, 1);
  19.       super.ComponentName = "8-bit parallel in shift register";
  20.       super.ClassName = "EightBitParInShiftReg";
  21.       ((ElectronicComponent)this).RegisterPins(var1, var2, var3);
  22.    }
  23.  
  24.    public EightBitParInShiftReg(ElectronicComponent var1, int var2, int var3) {
  25.       super(var1, var2, var3);
  26.    }
  27.  
  28.    public ElectronicComponent Copy(int var1, int var2) {
  29.       EightBitParInShiftReg var3 = new EightBitParInShiftReg(this, var1, var2);
  30.       return var3;
  31.    }
  32.  
  33.    public void SimulateLogic() {
  34.       if (super.IPin[2].getLevel() == 5) {
  35.          for(int var1 = 0; var1 < 8; ++var1) {
  36.             this.Mem[var1] = super.IPin[var1 + 3].getLevel();
  37.          }
  38.       }
  39.  
  40.       if (super.IPin[1].getLevel() == 5) {
  41.          for(int var2 = 0; var2 < 8; ++var2) {
  42.             this.Mem[var2] = 0;
  43.          }
  44.       }
  45.  
  46.       if (super.IPin[0].OldLevel == 0 && super.IPin[0].getLevel() == 5) {
  47.          for(int var3 = 7; var3 > 0; --var3) {
  48.             this.Mem[var3] = this.Mem[var3 - 1];
  49.          }
  50.  
  51.          this.Mem[0] = 0;
  52.       }
  53.  
  54.       super.OPin[0].setLevel(this.Mem[7]);
  55.       super.OPin[1].setLevel(this.Mem[7]);
  56.       super.IPin[0].OldLevel = super.IPin[0].getLevel();
  57.    }
  58.  
  59.    public void Simulate(int var1) {
  60.       ((ElectronicComponent)this).InformConnectedComponentsOldLevel(var1);
  61.    }
  62. }
  63.