Esempio n. 1
0
        public void Write(int port, byte value)
        {
            _byte = value;

            var ramConfig = value & 2;
            var romConfig = (value >> 2) & 2;

            _ram.ZeroParity = (value & (1 << 4)) == 0;
            var kill = (value & (1 << 5)) == 0;

            if (_ram.KillParity && !kill)
            {
                _ram.ClearParityError();
            }
            _ram.KillParity = kill;

            switch (ramConfig)
            {
            case 0:
                _ram.RamConfig = RamConfig.Option0;
                break;

            case 1:
                _ram.RamConfig = RamConfig.Option1;
                break;

            case 2:
                _ram.RamConfig = RamConfig.Option2;
                break;

            case 3:
                _ram.RamConfig = RamConfig.Option3;
                break;
            }

            switch (romConfig)
            {
            case 0:
                _rom.RomConfig = RomConfig.Option0;
                break;

            case 1:
                _rom.RomConfig = RomConfig.Option1;
                break;

            case 2:
                _rom.RomConfig = RomConfig.Option2;
                break;

            case 3:
                _rom.RomConfig = RomConfig.Option3;
                break;
            }
        }