Beispiel #1
0
        protected virtual void InitM_test6502()
        {
            Disp_Raster dr;
            stateName = "test6502";
            interval = 1;
            InstructsPerMilisec = 2;
            refreshVal = 8;

            _programMemory = _workingMemory = new Mem_Base(4069);
            m_video = new Vid_Base();
            m_cpu = cpu_test6502 = new C_6502(_programMemory, m_video);
            m_display = new Disp_Raster(m_video);
            m_video.resolution = new Size(64, 32);
            dr = (Disp_Raster)m_display;
        }
Beispiel #2
0
        protected virtual void InitM_C64()
        {
            //byte[] bts;
            Disp_Raster dr;
            stateName = "C64";
            interval = 1;
            InstructsPerMilisec = 2;
            refreshVal = 8;
            _programMemory = _workingMemory = new Mem_Base(80000);

            #region Connect ROMs
            #region Basic
            _basicROM = new Mem_ROM(
                (0xBFFF - 0xA000)
            ,	file.LoadBytes(dir.Join(
                    _pathSettings.bios_commodore_c64
                ,	"Basic.bin"
                ))
            );
            #endregion
            #region Kernal
            _kernalROM = new Mem_ROM(
                (0xFFFF - 0xE000)
            ,	file.LoadBytes(dir.Join(
                    _pathSettings.bios_commodore_c64
                ,	"Kernal.bin"
                ))
            );
            #endregion
            #endregion

            m_video = new Vid_Base();
            m_cpu = cpu_6502 = new C_6502(_programMemory, m_video);
            m_display = new Disp_Raster(m_video);
            m_video.resolution = new Size(320, 200);
            dr = (Disp_Raster)m_display;
            m_cpu.PC = (ushort)(
                (_programMemory._bank[0xFFFD] << 8)
            |	_programMemory._bank[0xFFFC]
            );
        }
Beispiel #3
0
        protected virtual void InitM_Chip8()
        {
            _memStartAdress = 0x0200;
            Disp_Raster dr;
            stateName = "CHIP8";
            interval = 1;
            InstructsPerMilisec = 2;
            refreshVal = 8;
            //refreshVal = 10;

            _programMemory = new Mem_Chip8();
            _workingMemory = _programMemory;
            m_video = new Vid_Chip8();
            m_cpu = cpu_Chip8 = new C_Chip8(_programMemory, m_video);
            _keyboard = new Keyboard_Chip8(m_cpu.keys);
            m_display = new Disp_Raster(m_video);
            m_video.resolution = new Size(64, 32);
            dr = (Disp_Raster)m_display;
            //m_video.buffer = dr.pixels;
            //_keyboard.ConnectTo(m_display);

            //interval = 16.666666666666666666666666666667;
            //interval = 6.6;
        }