// 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); }
latch8_device(machine_config mconfig, string tag, device_t owner, uint32_t clock = 0) : base(mconfig, LATCH8, tag, owner, clock) { m_value = 0; m_has_write = 0; m_has_read = 0; m_maskout = 0; m_xorvalue = 0; m_nosync = 0; for (int i = 0; i < 8; i++) { m_write_cb[i] = new devcb_write_line(this); } for (int i = 0; i < 8; i++) { m_read_cb[i] = new devcb_read_line(this); } }