public CallOperation(short _targetOperationAddress, OperationStack _operationStack, ProgramCounter _programCounter, RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.targetOperationAddress = _targetOperationAddress;
     this.programCounter = _programCounter;
     this.operationStack = _operationStack;
 }
 public ProgramCounter(RegisterFileMap _registerFileMap)
 {
     this.registerFileMap = _registerFileMap;
     this.upperBits = new Data.DataAdapter<byte>();
     onPclChangeListener = new Data.DataAdapter<byte>.OnDataChanged(onPclChange);
     registerFileMap.registerDataListener(onPclChangeListener, RegisterConstants.PCL_ADDRESS);
     initializeValue();
 }
 public LogicOperation(byte _arg1, byte _arg2, LogicOperator _op, short _targetAddress, RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.arg1 = _arg1;
     this.arg2 = _arg2;
     this.op = _op;
     this.targetAddress = _targetAddress;
 }
 public ArithmeticOperation(byte _arg1, byte _arg2, ArithmeticOperator _op, short _target, RegisterFileMap _registerFileMap, bool _conditional, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.arg1 = _arg1;
     this.arg2 = _arg2;
     this.op = _op;
     this.targetAddress = _target;
 }
        public IOForm(RegisterFileMap _registerFileMap)
        {
            this.registerFileMap = _registerFileMap;

            // Listener fuer GUI-Aktualisierung
            this.portAListener = new DataAdapter<byte>.OnDataChanged(onPortAChange);
            this.portBListener = new DataAdapter<byte>.OnDataChanged(onPortBChange);
            this.trisAListener = new DataAdapter<byte>.OnDataChanged(onTrisAChange);
            this.trisBListener = new DataAdapter<byte>.OnDataChanged(onTrisBChange);

            registerFileMap.registerDataListener(portAListener, RegisterConstants.PORTA_ADDRESS);
            registerFileMap.registerDataListener(portBListener, RegisterConstants.PORTB_ADDRESS);
            registerFileMap.registerDataListener(trisAListener, RegisterConstants.TRISA_BANK1_ADDRESS);
            registerFileMap.registerDataListener(trisBListener, RegisterConstants.TRISB_BANK1_ADDRESS);

            Disposed += delegate { registerFileMap.unregisterDataListener(portAListener, RegisterConstants.PORTA_ADDRESS); };
            Disposed += delegate { registerFileMap.unregisterDataListener(portBListener, RegisterConstants.PORTB_ADDRESS); };
            Disposed += delegate { registerFileMap.unregisterDataListener(trisAListener, RegisterConstants.TRISA_BANK1_ADDRESS); };
            Disposed += delegate { registerFileMap.unregisterDataListener(trisBListener, RegisterConstants.TRISB_BANK1_ADDRESS); };
            int i = 0;
            // PORT-Checkboxes dynamisch erstellen
            for (i = 0; i < 8; i++)
            {
                PortA[i] = new CheckBox();
                PortA[i].Location = new Point(58 + i * 21, 50);
                PortA[i].MouseClick += new MouseEventHandler(CheckboxChanged);
                PortA[i].Name = "checkBoxBitA" + (7 - i).ToString();
                PortA[i].Width = 15;
                PortA[i].Height = 15;

                PortB[i] = new CheckBox();
                PortB[i].Location = new Point(58 + i * 21, 96);
                PortB[i].MouseClick += new MouseEventHandler(CheckboxChanged);
                PortB[i].Name = "checkBoxBitB" + (7 - i).ToString();
                PortB[i].Width = 15;
                PortB[i].Height = 15;
            }

            HexBoxPortA = new RegisterItem(registerFileMap.getAdapter(RegisterConstants.PORTA_ADDRESS), 58 + i * 21, 50, this);
            HexBoxPortB = new RegisterItem(registerFileMap.getAdapter(RegisterConstants.PORTB_ADDRESS), 58 + i * 21, 96, this);

            this.Controls.AddRange(PortA);
            this.Controls.AddRange(PortB);
            this.Controls.Add(HexBoxPortA);

            InitializeComponent();

            updateTrisA(registerFileMap.Get(RegisterConstants.TRISA_BANK1_ADDRESS));
            updateTrisB(registerFileMap.Get(RegisterConstants.TRISB_BANK1_ADDRESS));
            updatePortA(registerFileMap.Get(RegisterConstants.PORTA_ADDRESS));
            updatePortB(registerFileMap.Get(RegisterConstants.PORTB_ADDRESS));
        }
 public ClearOperation(short _targetAddress, RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.targetAddress = _targetAddress;
 }
 public BaseOperation(RegisterFileMap _registerFileMap, short _neededCycles, short _operationAddress)
 {
     this.registerFileMap = _registerFileMap;
     this.neededCycles = _neededCycles;
     this.operationAddress = _operationAddress;
 }
 public ClearWdtOperation(PIC _pic, RegisterFileMap _registerFileMap, short _address)
     : base(_registerFileMap, CYCLES, _address)
 {
     this.pic = _pic;
 }