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 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();
 }