branches/kale/src/emu/cpu/amis2000/amis2000.h
| r244611 | r244612 | |
| 34 | 34 | #define MCFG_AMI_S2152_FOUT_CB(_devcb) \ |
| 35 | 35 | amis2000_base_device::set_write_f_callback(*device, DEVCB_##_devcb); |
| 36 | 36 | |
| 37 | // S2000 has a hardcoded 7seg table, that (unlike S2200) is officially |
| 38 | // uncustomizable, but wildfire proves to be an exception to that rule. |
| 39 | #define MCFG_AMI_S2000_7SEG_DECODER(_pla) \ |
| 40 | amis2000_base_device::set_7seg_table(*device, _ptr); |
| 37 | 41 | |
| 42 | |
| 38 | 43 | class amis2000_base_device : public cpu_device |
| 39 | 44 | { |
| 40 | 45 | public: |
| r244611 | r244612 | |
| 46 | 51 | , m_bu_bits(bu_bits) |
| 47 | 52 | , m_callstack_bits(callstack_bits) |
| 48 | 53 | , m_callstack_depth(callstack_depth) |
| 54 | , m_7seg_table(NULL) |
| 49 | 55 | , m_read_k(*this) |
| 50 | 56 | , m_read_i(*this) |
| 51 | 57 | , m_read_d(*this) |
| r244611 | r244612 | |
| 61 | 67 | template<class _Object> static devcb_base &set_write_d_callback(device_t &device, _Object object) { return downcast<amis2000_base_device &>(device).m_write_d.set_callback(object); } |
| 62 | 68 | template<class _Object> static devcb_base &set_write_a_callback(device_t &device, _Object object) { return downcast<amis2000_base_device &>(device).m_write_a.set_callback(object); } |
| 63 | 69 | template<class _Object> static devcb_base &set_write_f_callback(device_t &device, _Object object) { return downcast<amis2000_base_device &>(device).m_write_f.set_callback(object); } |
| 70 | static void set_7seg_table(device_t &device, const UINT8 *ptr) { downcast<amis2000_base_device &>(device).m_7seg_table = ptr; } |
| 64 | 71 | |
| 65 | 72 | protected: |
| 66 | 73 | // device-level overrides |
| r244611 | r244612 | |
| 115 | 122 | UINT16 m_a; // 13-bit a-pins latch (master strobe latch) |
| 116 | 123 | |
| 117 | 124 | // i/o handlers |
| 125 | const UINT8 *m_7seg_table; |
| 118 | 126 | devcb_read8 m_read_k; |
| 119 | 127 | devcb_read8 m_read_i; |
| 120 | 128 | devcb_read8 m_read_d; |
branches/kale/src/emu/cpu/amis2000/amis2000op.inc
| r244611 | r244612 | |
| 216 | 216 | // 0-F digits in bit order [DP]abcdefg |
| 217 | 217 | 0x7e, 0x30, 0x6d, 0x79, 0x33, 0x5b, 0x5f, 0x70, 0x7f, 0x7b, 0x77, 0x1f, 0x4e, 0x3d, 0x4f, 0x47 |
| 218 | 218 | }; |
| 219 | | m_d = lut_segment_decoder[m_acc] | (m_carry ? 0x80 : 0x00); |
| 219 | const UINT8 *ptr = (m_7seg_table != NULL) ? m_7seg_table : lut_segment_decoder; |
| 220 | m_d = ptr[m_acc] | (m_carry ? 0x80 : 0x00); |
| 220 | 221 | d_latch_out(true); |
| 221 | 222 | } |
| 222 | 223 | |
branches/kale/src/emu/cpu/tms0980/tms0980.h
| r244611 | r244612 | |
| 64 | 64 | , m_pc_bits(pc_bits) |
| 65 | 65 | , m_byte_bits(byte_bits) |
| 66 | 66 | , m_x_bits(x_bits) |
| 67 | | , c_output_pla(NULL) |
| 67 | , m_output_pla_table(NULL) |
| 68 | 68 | , m_read_k(*this) |
| 69 | 69 | , m_write_o(*this) |
| 70 | 70 | , m_write_r(*this) |
| r244611 | r244612 | |
| 76 | 76 | template<class _Object> static devcb_base &set_write_o_callback(device_t &device, _Object object) { return downcast<tms1xxx_cpu_device &>(device).m_write_o.set_callback(object); } |
| 77 | 77 | template<class _Object> static devcb_base &set_write_r_callback(device_t &device, _Object object) { return downcast<tms1xxx_cpu_device &>(device).m_write_r.set_callback(object); } |
| 78 | 78 | template<class _Object> static devcb_base &set_power_off_callback(device_t &device, _Object object) { return downcast<tms1xxx_cpu_device &>(device).m_power_off.set_callback(object); } |
| 79 | | static void set_output_pla(device_t &device, const UINT16 *output_pla) { downcast<tms1xxx_cpu_device &>(device).c_output_pla = output_pla; } |
| 79 | static void set_output_pla(device_t &device, const UINT16 *output_pla) { downcast<tms1xxx_cpu_device &>(device).m_output_pla_table = output_pla; } |
| 80 | 80 | |
| 81 | 81 | protected: |
| 82 | 82 | // device-level overrides |
| r244611 | r244612 | |
| 185 | 185 | address_space *m_program; |
| 186 | 186 | address_space *m_data; |
| 187 | 187 | |
| 188 | | const UINT16 *c_output_pla; |
| 188 | const UINT16 *m_output_pla_table; |
| 189 | 189 | devcb_read8 m_read_k; |
| 190 | 190 | devcb_write16 m_write_o; |
| 191 | 191 | devcb_write16 m_write_r; |