mirror of
https://github.com/holub/mame
synced 2025-04-09 18:17:44 +03:00
mb86233: add /3 clock divider
This commit is contained in:
parent
0197c170bf
commit
cfa56c0d33
@ -73,6 +73,8 @@ protected:
|
||||
virtual void device_start() override ATTR_COLD;
|
||||
virtual void device_reset() override ATTR_COLD;
|
||||
|
||||
virtual u64 execute_clocks_to_cycles(u64 clocks) const noexcept override { return (clocks + 3 - 1) / 3; }
|
||||
virtual u64 execute_cycles_to_clocks(u64 cycles) const noexcept override { return (cycles * 3); }
|
||||
virtual uint32_t execute_min_cycles() const noexcept override { return 1; }
|
||||
virtual uint32_t execute_max_cycles() const noexcept override { return 1; }
|
||||
virtual void execute_run() override;
|
||||
|
@ -53,6 +53,7 @@ public:
|
||||
|
||||
void internal_abus(address_map &map) ATTR_COLD;
|
||||
void internal_bbus(address_map &map) ATTR_COLD;
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start() override ATTR_COLD;
|
||||
@ -74,7 +75,6 @@ protected:
|
||||
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
|
||||
|
||||
private:
|
||||
|
||||
struct mb86235_flags
|
||||
{
|
||||
uint32_t az;
|
||||
@ -181,9 +181,9 @@ private:
|
||||
{
|
||||
compiler_state &operator=(compiler_state const &) = delete;
|
||||
|
||||
uint32_t cycles; /* accumulated cycles */
|
||||
uint8_t checkints; /* need to check interrupts before next instruction */
|
||||
uml::code_label labelnum; /* index for local labels */
|
||||
uint32_t cycles; /* accumulated cycles */
|
||||
uint8_t checkints; /* need to check interrupts before next instruction */
|
||||
uml::code_label labelnum; /* index for local labels */
|
||||
};
|
||||
|
||||
void run_drc();
|
||||
@ -235,7 +235,7 @@ private:
|
||||
static void full_fifoout0(void *param);
|
||||
static void full_fifoout1(void *param);
|
||||
|
||||
// interpreter
|
||||
// interpreter
|
||||
void execute_op(uint32_t h, uint32_t l);
|
||||
void do_alu1(uint32_t h, uint32_t l);
|
||||
void do_alu2(uint32_t h, uint32_t l);
|
||||
|
@ -25,7 +25,6 @@ protected:
|
||||
virtual bool describe(opcode_desc &desc, const opcode_desc *prev) override;
|
||||
|
||||
private:
|
||||
|
||||
mb86235_device *m_core;
|
||||
|
||||
void describe_alu(opcode_desc &desc, uint32_t aluop);
|
||||
|
@ -1723,7 +1723,7 @@ void model1_state::model1(machine_config &config)
|
||||
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(model1_state::model1_interrupt), "screen", 0, 1);
|
||||
|
||||
MB86233(config, m_tgp_copro, 40_MHz_XTAL / 3);
|
||||
MB86233(config, m_tgp_copro, 40_MHz_XTAL);
|
||||
m_tgp_copro->set_addrmap(AS_PROGRAM, &model1_state::copro_prog_map);
|
||||
m_tgp_copro->set_addrmap(AS_DATA, &model1_state::copro_data_map);
|
||||
m_tgp_copro->set_addrmap(AS_IO, &model1_state::copro_io_map);
|
||||
|
@ -2514,7 +2514,7 @@ void model2o_state::model2o(machine_config &config)
|
||||
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(model2_state::model2_interrupt), "screen", 0, 1);
|
||||
|
||||
MB86234(config, m_copro_tgp, 50_MHz_XTAL / 3);
|
||||
MB86234(config, m_copro_tgp, 50_MHz_XTAL);
|
||||
m_copro_tgp->set_addrmap(AS_PROGRAM, &model2o_state::copro_tgp_prog_map);
|
||||
m_copro_tgp->set_addrmap(AS_DATA, &model2o_state::copro_tgp_data_map);
|
||||
m_copro_tgp->set_addrmap(AS_IO, &model2o_state::copro_tgp_io_map);
|
||||
@ -2664,7 +2664,7 @@ void model2a_state::model2a(machine_config &config)
|
||||
m_maincpu->set_addrmap(AS_PROGRAM, &model2a_state::model2a_crx_mem);
|
||||
TIMER(config, "scantimer").configure_scanline(FUNC(model2_state::model2_interrupt), "screen", 0, 1);
|
||||
|
||||
MB86234(config, m_copro_tgp, 50_MHz_XTAL / 3);
|
||||
MB86234(config, m_copro_tgp, 50_MHz_XTAL);
|
||||
m_copro_tgp->set_addrmap(AS_PROGRAM, &model2a_state::copro_tgp_prog_map);
|
||||
m_copro_tgp->set_addrmap(AS_DATA, &model2a_state::copro_tgp_data_map);
|
||||
m_copro_tgp->set_addrmap(AS_IO, &model2a_state::copro_tgp_io_map);
|
||||
|
Loading…
Reference in New Issue
Block a user