summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/m6502')
-rw-r--r--src/emu/cpu/m6502/m3745x.c185
-rw-r--r--src/emu/cpu/m6502/m3745x.h30
-rw-r--r--src/emu/cpu/m6502/m740.c10
-rw-r--r--src/emu/cpu/m6502/m740.h32
-rw-r--r--src/emu/cpu/m6502/om740.lst1
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;
-