Exemplo n.º 1
0
        protected m6805_base_device(
            machine_config mconfig,
            string tag,
            device_t owner,
            uint32_t clock,
            device_type type,
            configuration_params params_,
            address_map_constructor internal_map)
            : base(mconfig, type, tag, owner, clock)
        {
            //m_class_interfaces.Add(new device_execute_interface_m6805_base(mconfig, this));
            m_class_interfaces.Add(new device_memory_interface_m6805_base(mconfig, this));
            m_class_interfaces.Add(new device_state_interface_m6805_base(mconfig, this));
            //m_class_interfaces.Add(new device_disasm_interface_m6805_base(mconfig, this));

            m_dimemory = GetClassInterface <device_memory_interface_m6805_base>();
            m_distate  = GetClassInterface <device_state_interface_m6805_base>();


            init_s_hmos_s_ops();


            m_params         = params_;
            m_program_config = new address_space_config("program", ENDIANNESS_BIG, 8, (u8)params_.m_addr_width, 0, internal_map);
        }
Exemplo n.º 2
0
        protected override void device_config_complete()
        {
            // don't replace existing config, so we don't lose the reference (see device_memory_interface_memory_space_config)
            var config = new address_space_config("program", m_endianness, m_data_width, m_addr_width, (s8)m_shift);  //m_program_config = address_space_config( "program", m_endianness, m_data_width, m_addr_width, m_shift );

            config.CopyTo(m_program_config);
        }
Exemplo n.º 3
0
        // construction/destruction
        public mb88_cpu_device(machine_config mconfig, device_type type, string tag, device_t owner, uint32_t clock, int program_width, int data_width)
            : base(mconfig, type, tag, owner, clock)
        {
            m_class_interfaces.Add(new device_execute_interface_mb88(mconfig, this));
            m_class_interfaces.Add(new device_memory_interface_mb88(mconfig, this));
            m_class_interfaces.Add(new device_state_interface_mb88(mconfig, this));
            m_class_interfaces.Add(new device_disasm_interface_mb88(mconfig, this));


            m_program_config = new address_space_config("program", endianness_t.ENDIANNESS_BIG, 8, (byte)program_width, 0, (program_width == 9) ? program_9bit : (program_width == 10) ? program_10bit : (address_map_constructor)program_11bit);
            m_data_config    = new address_space_config("data", endianness_t.ENDIANNESS_BIG, 8, (byte)data_width, 0, (data_width == 4) ? data_4bit : (data_width == 5) ? data_5bit : (data_width == 6) ? data_6bit : (address_map_constructor)data_7bit);
            m_PLA            = null;
            m_read_k         = new devcb_read8(this);
            m_write_o        = new devcb_write8(this);
            m_write_p        = new devcb_write8(this);
            for (int i = 0; i < 4; i++)
            {
                m_read_r[i] = new devcb_read8(this);
            }
            for (int i = 0; i < 4; i++)
            {
                m_write_r[i] = new devcb_write8(this);
            }
            m_read_si  = new devcb_read_line(this);
            m_write_so = new devcb_write_line(this);
        }
Exemplo n.º 4
0
 protected m6800_cpu_device(machine_config mconfig, device_type type, string tag, device_t owner, uint32_t clock, op_func [] insn, uint8_t [] cycles, address_map_constructor internal_)
     : base(mconfig, type, tag, owner, clock)
 {
     m_program_config           = new address_space_config("program", ENDIANNESS_BIG, 8, 16, 0, internal_);
     m_decrypted_opcodes_config = new address_space_config("program", ENDIANNESS_BIG, 8, 16, 0);
     m_insn   = insn;
     m_cycles = cycles;
 }
Exemplo n.º 5
0
Arquivo: m6502.cs Projeto: kwanboy/mcs
        m6502_device(machine_config mconfig, device_type type, string tag, device_t owner, u32 clock)
            : base(mconfig, type, tag, owner, clock)
        {
            m_class_interfaces.Add(new device_execute_interface_m6502(mconfig, this));
            m_class_interfaces.Add(new device_memory_interface_m6502(mconfig, this));
            m_class_interfaces.Add(new device_state_interface_m6502(mconfig, this));
            m_class_interfaces.Add(new device_disasm_interface_m6502(mconfig, this));


            sync_w          = new devcb_write_line(this);
            program_config  = new address_space_config("program", endianness_t.ENDIANNESS_LITTLE, 8, 16);
            sprogram_config = new address_space_config("decrypted_opcodes", endianness_t.ENDIANNESS_LITTLE, 8, 16);
            PPC             = 0;
            NPC             = 0;
            PC                            = 0;
            SP                            = 0;
            TMP                           = 0;
            TMP2                          = 0;
            A                             = 0;
            X                             = 0;
            Y                             = 0;
            P                             = 0;
            IR                            = 0;
            inst_state_base               = 0;
            mintf                         = null;
            inst_state                    = 0;
            inst_substate                 = 0;
            icountRef.i                   = 0; //icount = 0;
            nmi_state                     = false;
            irq_state                     = false;
            apu_irq_state                 = false;
            v_state                       = false;
            irq_taken                     = false;
            sync                          = false;
            inhibit_interrupts            = false;
            count_before_instruction_step = 0;


            cache_disabled = false;
        }
Exemplo n.º 6
0
 // this function is needed when passing in a non-static address_map_constructor in the ctor.  'this' isn't available
 protected void m6805_base_device_after_ctor(address_map_constructor internal_map)
 {
     m_program_config = new address_space_config("program", ENDIANNESS_BIG, 8, (u8)m_params.m_addr_width, 0, internal_map);
 }