diff options
| author | 2013-03-19 07:22:20 +0000 | |
|---|---|---|
| committer | 2013-03-19 07:22:20 +0000 | |
| commit | 0e1f5ad25b25df7c2ec707ec45c544288eb3c683 (patch) | |
| tree | eeef04fdf999692be30c25457fb9b329e1dbfdde /src/emu/cpu/m6502 | |
| parent | 86614c802b9d611d83520fdb43388ae51d31f553 (diff) | |
Cleanups and version bumpmame0148u2
Diffstat (limited to 'src/emu/cpu/m6502')
| -rw-r--r-- | src/emu/cpu/m6502/m3745x.c | 185 | ||||
| -rw-r--r-- | src/emu/cpu/m6502/m3745x.h | 30 | ||||
| -rw-r--r-- | src/emu/cpu/m6502/m740.c | 10 | ||||
| -rw-r--r-- | src/emu/cpu/m6502/m740.h | 32 | ||||
| -rw-r--r-- | src/emu/cpu/m6502/om740.lst | 1 |
5 files changed, 128 insertions, 130 deletions
diff --git a/src/emu/cpu/m6502/m3745x.c b/src/emu/cpu/m6502/m3745x.c index 87ecd7b5b25..bc3851ddb1e 100644 --- a/src/emu/cpu/m6502/m3745x.c +++ b/src/emu/cpu/m6502/m3745x.c @@ -11,16 +11,16 @@ // Interrupt control bits (interpolated from C68 program; need 7450 Group manual badly) -#define IRQ1_INT1 (0x04) -#define IRQ1_INT2 (0x08) // guess, not used in C68 -#define IRQ1_INT3 (0x10) // guess, not used in C68 +#define IRQ1_INT1 (0x04) +#define IRQ1_INT2 (0x08) // guess, not used in C68 +#define IRQ1_INT3 (0x10) // guess, not used in C68 -#define IRQ2_SERIALRX (0x08) -#define IRQ2_SERIALTX (0x10) -#define IRQ2_ADC (0x20) +#define IRQ2_SERIALRX (0x08) +#define IRQ2_SERIALTX (0x10) +#define IRQ2_ADC (0x20) -#define ADCTRL_CH_MASK (0x07) // AD ctrl reg. channel mask -#define ADCTRL_COMPLETE (0x08) // AD ctrl "start"/"complete" bit +#define ADCTRL_CH_MASK (0x07) // AD ctrl reg. channel mask +#define ADCTRL_COMPLETE (0x08) // AD ctrl "start"/"complete" bit //************************************************************************** // DEVICE DEFINITIONS @@ -75,7 +75,7 @@ void m3745x_device::device_start() write_p3.resolve_safe(); write_p4.resolve_safe(); write_p5.resolve_safe(); - write_p6.resolve_safe(); + write_p6.resolve_safe(); read_ad_0.resolve_safe(0); read_ad_1.resolve_safe(0); read_ad_2.resolve_safe(0); @@ -109,7 +109,7 @@ void m3745x_device::device_reset() { m740_device::device_reset(); - SP = 0x01ff; // we have the "traditional" stack in page 1, not 0 like some M740 derivatives + SP = 0x01ff; // we have the "traditional" stack in page 1, not 0 like some M740 derivatives for (int i = 0; i < NUM_TIMERS; i++) { @@ -179,7 +179,7 @@ void m3745x_device::execute_set_input(int inputnum, int state) } break; - case M3745X_SET_OVERFLOW: // the base 740 class can handle this + case M3745X_SET_OVERFLOW: // the base 740 class can handle this m740_device::execute_set_input(M740_SET_OVERFLOW, state); break; } @@ -190,7 +190,7 @@ void m3745x_device::execute_set_input(int inputnum, int state) void m3745x_device::recalc_irqs() { UINT16 all_ints = 0; - int static const irq_lines[16] = + int static const irq_lines[16] = { -1, -1, -1, M740_INT11_LINE, M740_INT12_LINE, M740_INT13_LINE, -1, -1, -1, -1, M740_INT2_LINE, M740_INT3_LINE, M740_INT4_LINE, -1, -1, -1 @@ -199,7 +199,7 @@ void m3745x_device::recalc_irqs() all_ints = (m_intreq1 & m_intctrl1) << 8; all_ints |= (m_intreq2 & m_intctrl2); -// printf("recalc_irqs: last_all_ints = %04x last_ints = %04x (req1 %02x ctrl1 %02x req2 %02x ctrl2 %02x)\n", all_ints, m_last_all_ints, m_intreq1, m_intctrl1, m_intreq2, m_intctrl2); +// printf("recalc_irqs: last_all_ints = %04x last_ints = %04x (req1 %02x ctrl1 %02x req2 %02x ctrl2 %02x)\n", all_ints, m_last_all_ints, m_intreq1, m_intctrl1, m_intreq2, m_intctrl2); // check all 16 IRQ bits for changes for (int i = 0; i < 16; i++) @@ -210,19 +210,19 @@ void m3745x_device::recalc_irqs() // and wasn't last time if (!(m_last_all_ints & (1 << i))) { -// printf(" asserting irq %d (%d)\n", i, irq_lines[i]); +// printf(" asserting irq %d (%d)\n", i, irq_lines[i]); if (irq_lines[i] != -1) { m740_device::execute_set_input(irq_lines[i], ASSERT_LINE); } } } - else // bit is clear now + else // bit is clear now { // ...and wasn't clear last time if (m_last_all_ints & (1 << i)) { -// printf(" clearing irq %d (%d)\n", i, irq_lines[i]); +// printf(" clearing irq %d (%d)\n", i, irq_lines[i]); if (irq_lines[i] != -1) { m740_device::execute_set_input(irq_lines[i], CLEAR_LINE); @@ -258,103 +258,103 @@ void m3745x_device::send_port(address_space &space, UINT8 offset, UINT8 data) UINT8 m3745x_device::read_port(UINT8 offset) { - UINT8 incoming = 0; + UINT8 incoming = 0; - switch (offset) - { - case 0: - incoming = read_p3(); - break; + switch (offset) + { + case 0: + incoming = read_p3(); + break; - case 1: - incoming = read_p4(); - break; + case 1: + incoming = read_p4(); + break; - case 2: - incoming = read_p5(); - break; + case 2: + incoming = read_p5(); + break; - case 3: - incoming = read_p6(); - break; - } + case 3: + incoming = read_p6(); + break; + } - // apply data direction registers - incoming &= (m_ddrs[offset] ^ 0xff); - // OR in ddr-masked version of port writes - incoming |= (m_ports[offset] & m_ddrs[offset]); + // apply data direction registers + incoming &= (m_ddrs[offset] ^ 0xff); + // OR in ddr-masked version of port writes + incoming |= (m_ports[offset] & m_ddrs[offset]); - return incoming; + return incoming; } READ8_MEMBER(m3745x_device::ports_r) { - switch (offset) - { - case 0: - return read_port(0); + switch (offset) + { + case 0: + return read_port(0); - case 1: - return m_ddrs[0]; + case 1: + return m_ddrs[0]; - case 2: - return read_port(1); + case 2: + return read_port(1); - case 4: - return read_port(2); + case 4: + return read_port(2); - case 5: - return m_ddrs[2]; + case 5: + return m_ddrs[2]; - case 6: - return read_port(3); + case 6: + return read_port(3); - case 7: - return m_ddrs[3]; - } + case 7: + return m_ddrs[3]; + } - return 0xff; + return 0xff; } WRITE8_MEMBER(m3745x_device::ports_w) { - switch (offset) - { - case 0: // p3 - send_port(space, 0, data & m_ddrs[0]); - m_ports[0] = data; - break; - - case 1: // p3 ddr - send_port(space, 0, m_ports[0] & data); - m_ddrs[0] = data; - break; - - case 2: // p4 - send_port(space, 1, data & m_ddrs[1]); - m_ports[1] = data; - break; - - case 4: // p5 - send_port(space, 2, data & m_ddrs[2]); - m_ports[2] = data; - break; - - case 5: // p5 ddr - send_port(space, 2, m_ports[2] & data); - m_ddrs[2] = data; - break; - - case 6: // p6 - send_port(space, 3, data & m_ddrs[3]); - m_ports[3] = data; - break; - - case 7: // p6 ddr - send_port(space, 3, m_ports[3] & data); - m_ddrs[3] = data; - break; - } + switch (offset) + { + case 0: // p3 + send_port(space, 0, data & m_ddrs[0]); + m_ports[0] = data; + break; + + case 1: // p3 ddr + send_port(space, 0, m_ports[0] & data); + m_ddrs[0] = data; + break; + + case 2: // p4 + send_port(space, 1, data & m_ddrs[1]); + m_ports[1] = data; + break; + + case 4: // p5 + send_port(space, 2, data & m_ddrs[2]); + m_ports[2] = data; + break; + + case 5: // p5 ddr + send_port(space, 2, m_ports[2] & data); + m_ddrs[2] = data; + break; + + case 6: // p6 + send_port(space, 3, data & m_ddrs[3]); + m_ports[3] = data; + break; + + case 7: // p6 ddr + send_port(space, 3, m_ports[3] & data); + m_ddrs[3] = data; + break; + } } READ8_MEMBER(m3745x_device::intregs_r) @@ -495,4 +495,3 @@ m37450_device::m37450_device(const machine_config &mconfig, device_type type, co m3745x_device(mconfig, type, name, tag, owner, clock, ADDRESS_MAP_NAME(m37450_map)) { } - diff --git a/src/emu/cpu/m6502/m3745x.h b/src/emu/cpu/m6502/m3745x.h index 43798a5b83a..83178649083 100644 --- a/src/emu/cpu/m6502/m3745x.h +++ b/src/emu/cpu/m6502/m3745x.h @@ -63,31 +63,31 @@ public: const address_space_config m_program_config; - template<class _read, class _write> void set_p3_callbacks(_read rd, _write wr) + template<class _read, class _write> void set_p3_callbacks(_read rd, _write wr) { read_p3.set_callback(rd); write_p3.set_callback(wr); } - template<class _read, class _write> void set_p4_callbacks(_read rd, _write wr) + template<class _read, class _write> void set_p4_callbacks(_read rd, _write wr) { read_p4.set_callback(rd); write_p4.set_callback(wr); } - template<class _read, class _write> void set_p5_callbacks(_read rd, _write wr) + template<class _read, class _write> void set_p5_callbacks(_read rd, _write wr) { read_p5.set_callback(rd); write_p5.set_callback(wr); } - template<class _read, class _write> void set_p6_callbacks(_read rd, _write wr) + template<class _read, class _write> void set_p6_callbacks(_read rd, _write wr) { read_p6.set_callback(rd); write_p6.set_callback(wr); } - template<class _read, class _read2, class _read3, class _read4> void set_ad14_callbacks(_read rd, _read2 rd2, _read3 rd3, _read4 rd4) + template<class _read, class _read2, class _read3, class _read4> void set_ad14_callbacks(_read rd, _read2 rd2, _read3 rd3, _read4 rd4) { read_ad_0.set_callback(rd); read_ad_1.set_callback(rd2); @@ -95,7 +95,7 @@ public: read_ad_3.set_callback(rd4); } - template<class _read, class _read2, class _read3, class _read4> void set_ad58_callbacks(_read rd, _read2 rd2, _read3 rd3, _read4 rd4) + template<class _read, class _read2, class _read3, class _read4> void set_ad58_callbacks(_read rd, _read2 rd2, _read3 rd3, _read4 rd4) { read_ad_4.set_callback(rd); read_ad_5.set_callback(rd2); @@ -108,12 +108,12 @@ public: devcb2_read8 read_ad_0, read_ad_1, read_ad_2, read_ad_3; devcb2_read8 read_ad_4, read_ad_5, read_ad_6, read_ad_7; - DECLARE_READ8_MEMBER(ports_r); - DECLARE_WRITE8_MEMBER(ports_w); - DECLARE_READ8_MEMBER(adc_r); - DECLARE_WRITE8_MEMBER(adc_w); - DECLARE_READ8_MEMBER(intregs_r); - DECLARE_WRITE8_MEMBER(intregs_w); + DECLARE_READ8_MEMBER(ports_r); + DECLARE_WRITE8_MEMBER(ports_w); + DECLARE_READ8_MEMBER(adc_r); + DECLARE_WRITE8_MEMBER(adc_w); + DECLARE_READ8_MEMBER(intregs_r); + DECLARE_WRITE8_MEMBER(intregs_w); bool are_port_bits_output(UINT8 port, UINT8 mask) { return ((m_ddrs[port] & mask) == mask) ? true : false; } @@ -127,11 +127,11 @@ protected: virtual const address_space_config *memory_space_config(address_spacenum spacenum) const { return (spacenum == AS_PROGRAM) ? &m_program_config : NULL; } void send_port(address_space &space, UINT8 offset, UINT8 data); - UINT8 read_port(UINT8 offset); + UINT8 read_port(UINT8 offset); void recalc_irqs(); - UINT8 m_ports[6], m_ddrs[6]; + UINT8 m_ports[6], m_ddrs[6]; UINT8 m_intreq1, m_intreq2, m_intctrl1, m_intctrl2; UINT8 m_adctrl; UINT16 m_last_all_ints; @@ -140,7 +140,7 @@ private: emu_timer *m_timers[NUM_TIMERS]; }; -class m37450_device : public m3745x_device +class m37450_device : public m3745x_device { public: m37450_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); diff --git a/src/emu/cpu/m6502/m740.c b/src/emu/cpu/m6502/m740.c index 9aa42f13c37..f6035794c1e 100644 --- a/src/emu/cpu/m6502/m740.c +++ b/src/emu/cpu/m6502/m740.c @@ -88,12 +88,12 @@ UINT8 m740_device::do_seb(UINT8 in, UINT8 bit) // doesn't affect the flags UINT8 m740_device::do_rrf(UINT8 in) { - return ((in&0xf)<<4) | ((in&0xf0)>>4); + return ((in&0xf)<<4) | ((in&0xf0)>>4); } void m740_device::execute_set_input(int inputnum, int state) { - switch(inputnum) + switch(inputnum) { case M740_INT0_LINE: case M740_INT1_LINE: @@ -109,9 +109,9 @@ void m740_device::execute_set_input(int inputnum, int state) case M740_INT11_LINE: case M740_INT12_LINE: case M740_INT13_LINE: - case M740_INT14_LINE: // 37450 has 15 IRQ lines, no other known variant has that many + case M740_INT14_LINE: // 37450 has 15 IRQ lines, no other known variant has that many set_irq_line(inputnum - M740_INT0_LINE, state); - break; + break; case V_LINE: if(!v_state && state == ASSERT_LINE) @@ -151,7 +151,7 @@ void m740_device::set_irq_line(int line, int state) } } -// printf("M740 single IRQ state is %d (MPX %08x, vector %x)\n", irq_state, m_irq_multiplex, m_irq_vector); +// printf("M740 single IRQ state is %d (MPX %08x, vector %x)\n", irq_state, m_irq_multiplex, m_irq_vector); } #include "cpu/m6502/m740.inc" diff --git a/src/emu/cpu/m6502/m740.h b/src/emu/cpu/m6502/m740.h index 4e085f95cda..cdf738956c2 100644 --- a/src/emu/cpu/m6502/m740.h +++ b/src/emu/cpu/m6502/m740.h @@ -46,16 +46,16 @@ class m740_device : public m6502_device { public: enum { - M740_INT0_LINE = INPUT_LINE_IRQ0, // (fffc) - M740_INT1_LINE, // (fffa) - M740_INT2_LINE, // (fff8) - M740_INT3_LINE, // (fff6) - M740_INT4_LINE, // (fff4) - M740_INT5_LINE, // (fff2) - M740_INT6_LINE, // (fff0) - M740_INT7_LINE, // (ffee) - M740_INT8_LINE, // (ffec) - M740_INT9_LINE, // (ffea) + M740_INT0_LINE = INPUT_LINE_IRQ0, // (fffc) + M740_INT1_LINE, // (fffa) + M740_INT2_LINE, // (fff8) + M740_INT3_LINE, // (fff6) + M740_INT4_LINE, // (fff4) + M740_INT5_LINE, // (fff2) + M740_INT6_LINE, // (fff0) + M740_INT7_LINE, // (ffee) + M740_INT8_LINE, // (ffec) + M740_INT9_LINE, // (ffea) M740_INT10_LINE, // (ffe8) M740_INT11_LINE, // (ffe6) M740_INT12_LINE, // (ffe4) @@ -68,14 +68,14 @@ public: m740_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); m740_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock); - virtual void device_reset(); + virtual void device_reset(); - static const disasm_entry disasm_entries[0x100]; + static const disasm_entry disasm_entries[0x100]; - virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options); - virtual void do_exec_full(); - virtual void do_exec_partial(); - virtual void execute_set_input(int inputnum, int state); + virtual offs_t disasm_disassemble(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 options); + virtual void do_exec_full(); + virtual void do_exec_partial(); + virtual void execute_set_input(int inputnum, int state); protected: #define O(o) void o ## _full(); void o ## _partial() diff --git a/src/emu/cpu/m6502/om740.lst b/src/emu/cpu/m6502/om740.lst index 49f9c4a782b..048fa1304ea 100644 --- a/src/emu/cpu/m6502/om740.lst +++ b/src/emu/cpu/m6502/om740.lst @@ -143,4 +143,3 @@ brk740_imp P |= F_I; // Do *not* move after the prefetch prefetch(); inst_state = -1; - |
