summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/dsp16/dsp16.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/dsp16/dsp16.c')
-rw-r--r--src/emu/cpu/dsp16/dsp16.c204
1 files changed, 102 insertions, 102 deletions
diff --git a/src/emu/cpu/dsp16/dsp16.c b/src/emu/cpu/dsp16/dsp16.c
index 411496ec88b..3ceb0e26014 100644
--- a/src/emu/cpu/dsp16/dsp16.c
+++ b/src/emu/cpu/dsp16/dsp16.c
@@ -18,7 +18,7 @@
// * Handle virtual shift addressing using RB & RE (when RE is enabled) (page 2-6)
// * The ALU sign-extends 32-bit operands from y or p to 36 bits and produces a 36-bit output
// * Interrupt lines (page 2-15)
-//
+//
//**************************************************************************
// DEVICE INTERFACE
@@ -176,13 +176,13 @@ void dsp16_device::device_reset()
m_pc = 0x0000;
m_pi = 0x0000;
m_sioc = 0x0000; // (page 5-4)
-
+
// SRTA is unaltered by reset
m_pioc = 0x0008;
m_rb = 0x0000;
m_re = 0x0000;
-
- // AUC is not affected by reset
+
+ // AUC is not affected by reset
m_ppc = m_pc;
// Hacky cache emulation.
@@ -202,8 +202,8 @@ void dsp16_device::device_reset()
const address_space_config *dsp16_device::memory_space_config(address_spacenum spacenum) const
{
return (spacenum == AS_PROGRAM) ? &m_program_config :
- (spacenum == AS_DATA) ? &m_data_config :
- NULL;
+ (spacenum == AS_DATA) ? &m_data_config :
+ NULL;
}
@@ -220,101 +220,101 @@ void dsp16_device::state_string_export(const device_state_entry &entry, astring
string.printf("(below)");
break;
- case DSP16_AUC:
- {
- astring alignString;
- const UINT8 align = m_auc & 0x03;
- switch (align)
- {
- case 0x00: alignString.printf("xy"); break;
- case 0x01: alignString.printf("/4"); break;
- case 0x02: alignString.printf("x4"); break;
- case 0x03: alignString.printf(",,"); break;
- }
- string.printf("%c%c%c%c%c%s",
- m_auc & 0x40 ? 'Y':'.',
- m_auc & 0x20 ? '1':'.',
- m_auc & 0x10 ? '0':'.',
- m_auc & 0x08 ? '1':'.',
- m_auc & 0x04 ? '0':'.',
- alignString.cstr());
- break;
- }
-
- case DSP16_PSW:
- string.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
- m_psw & 0x8000 ? 'M':'.',
- m_psw & 0x4000 ? 'E':'.',
- m_psw & 0x2000 ? 'L':'.',
- m_psw & 0x1000 ? 'V':'.',
- m_psw & 0x0800 ? ',':',',
- m_psw & 0x0400 ? ',':',',
- m_psw & 0x0200 ? 'O':'.',
- m_psw & 0x0100 ? '1':'.',
- m_psw & 0x0080 ? '1':'.',
- m_psw & 0x0040 ? '1':'.',
- m_psw & 0x0020 ? '1':'.',
- m_psw & 0x0010 ? 'O':'.',
- m_psw & 0x0008 ? '1':'.',
- m_psw & 0x0004 ? '1':'.',
- m_psw & 0x0002 ? '1':'.',
- m_psw & 0x0001 ? '1':'.');
- break;
-
- case DSP16_PIOC:
- {
- astring strobeString;
- const UINT8 strobe = (m_pioc & 0x6000) >> 13;
- switch (strobe)
- {
- case 0x00: strobeString.printf("1T"); break;
- case 0x01: strobeString.printf("2T"); break;
- case 0x02: strobeString.printf("3T"); break;
- case 0x03: strobeString.printf("4T"); break;
- }
- string.printf("%c%s%c%c%c%c%c%c%c%c%c%c%c%c%c",
- m_pioc & 0x8000 ? 'I':'.',
- strobeString.cstr(),
- m_pioc & 0x1000 ? 'O':'I',
- m_pioc & 0x0800 ? 'O':'I',
- m_pioc & 0x0400 ? 'S':'.',
- m_pioc & 0x0200 ? 'I':'.',
- m_pioc & 0x0100 ? 'O':'.',
- m_pioc & 0x0080 ? 'P':'.',
- m_pioc & 0x0040 ? 'P':'.',
- m_pioc & 0x0020 ? 'I':'.',
- m_pioc & 0x0010 ? 'I':'.',
- m_pioc & 0x0008 ? 'O':'.',
- m_pioc & 0x0004 ? 'P':'.',
- m_pioc & 0x0002 ? 'P':'.',
- m_pioc & 0x0001 ? 'I':'.');
- break;
- }
-
+ case DSP16_AUC:
+ {
+ astring alignString;
+ const UINT8 align = m_auc & 0x03;
+ switch (align)
+ {
+ case 0x00: alignString.printf("xy"); break;
+ case 0x01: alignString.printf("/4"); break;
+ case 0x02: alignString.printf("x4"); break;
+ case 0x03: alignString.printf(",,"); break;
+ }
+ string.printf("%c%c%c%c%c%s",
+ m_auc & 0x40 ? 'Y':'.',
+ m_auc & 0x20 ? '1':'.',
+ m_auc & 0x10 ? '0':'.',
+ m_auc & 0x08 ? '1':'.',
+ m_auc & 0x04 ? '0':'.',
+ alignString.cstr());
+ break;
+ }
+
+ case DSP16_PSW:
+ string.printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
+ m_psw & 0x8000 ? 'M':'.',
+ m_psw & 0x4000 ? 'E':'.',
+ m_psw & 0x2000 ? 'L':'.',
+ m_psw & 0x1000 ? 'V':'.',
+ m_psw & 0x0800 ? ',':',',
+ m_psw & 0x0400 ? ',':',',
+ m_psw & 0x0200 ? 'O':'.',
+ m_psw & 0x0100 ? '1':'.',
+ m_psw & 0x0080 ? '1':'.',
+ m_psw & 0x0040 ? '1':'.',
+ m_psw & 0x0020 ? '1':'.',
+ m_psw & 0x0010 ? 'O':'.',
+ m_psw & 0x0008 ? '1':'.',
+ m_psw & 0x0004 ? '1':'.',
+ m_psw & 0x0002 ? '1':'.',
+ m_psw & 0x0001 ? '1':'.');
+ break;
+
+ case DSP16_PIOC:
+ {
+ astring strobeString;
+ const UINT8 strobe = (m_pioc & 0x6000) >> 13;
+ switch (strobe)
+ {
+ case 0x00: strobeString.printf("1T"); break;
+ case 0x01: strobeString.printf("2T"); break;
+ case 0x02: strobeString.printf("3T"); break;
+ case 0x03: strobeString.printf("4T"); break;
+ }
+ string.printf("%c%s%c%c%c%c%c%c%c%c%c%c%c%c%c",
+ m_pioc & 0x8000 ? 'I':'.',
+ strobeString.cstr(),
+ m_pioc & 0x1000 ? 'O':'I',
+ m_pioc & 0x0800 ? 'O':'I',
+ m_pioc & 0x0400 ? 'S':'.',
+ m_pioc & 0x0200 ? 'I':'.',
+ m_pioc & 0x0100 ? 'O':'.',
+ m_pioc & 0x0080 ? 'P':'.',
+ m_pioc & 0x0040 ? 'P':'.',
+ m_pioc & 0x0020 ? 'I':'.',
+ m_pioc & 0x0010 ? 'I':'.',
+ m_pioc & 0x0008 ? 'O':'.',
+ m_pioc & 0x0004 ? 'P':'.',
+ m_pioc & 0x0002 ? 'P':'.',
+ m_pioc & 0x0001 ? 'I':'.');
+ break;
+ }
+
// Placeholder for a better view later (TODO)
case DSP16_SIOC:
- {
- astring clkString;
- const UINT8 clk = (m_sioc & 0x0180) >> 7;
- switch (clk)
- {
- case 0x00: clkString.printf("/4"); break;
- case 0x01: clkString.printf("12"); break;
- case 0x02: clkString.printf("16"); break;
- case 0x03: clkString.printf("20"); break;
- }
- string.printf("%c%s%c%c%c%c%c%c%c",
- m_sioc & 0x0200 ? 'I':'O',
- clkString.cstr(),
- m_sioc & 0x0040 ? 'L':'M',
- m_sioc & 0x0020 ? 'I':'O',
- m_sioc & 0x0010 ? 'I':'O',
- m_sioc & 0x0008 ? 'I':'O',
- m_sioc & 0x0004 ? 'I':'O',
- m_sioc & 0x0002 ? '2':'1',
- m_sioc & 0x0001 ? '2':'1');
- break;
- }
+ {
+ astring clkString;
+ const UINT8 clk = (m_sioc & 0x0180) >> 7;
+ switch (clk)
+ {
+ case 0x00: clkString.printf("/4"); break;
+ case 0x01: clkString.printf("12"); break;
+ case 0x02: clkString.printf("16"); break;
+ case 0x03: clkString.printf("20"); break;
+ }
+ string.printf("%c%s%c%c%c%c%c%c%c",
+ m_sioc & 0x0200 ? 'I':'O',
+ clkString.cstr(),
+ m_sioc & 0x0040 ? 'L':'M',
+ m_sioc & 0x0020 ? 'I':'O',
+ m_sioc & 0x0010 ? 'I':'O',
+ m_sioc & 0x0008 ? 'I':'O',
+ m_sioc & 0x0004 ? 'I':'O',
+ m_sioc & 0x0002 ? '2':'1',
+ m_sioc & 0x0001 ? '2':'1');
+ break;
+ }
}
}
@@ -441,9 +441,9 @@ void dsp16_device::execute_run()
m_pc += pcAdvance;
m_icount -= cycles;
- // The 16 bit PI "shadow" register gets set to PC on each instruction except
- // when an interrupt service routine is active (TODO: Interrupt check) (page 2-4)
- m_pi = m_pc;
+ // The 16 bit PI "shadow" register gets set to PC on each instruction except
+ // when an interrupt service routine is active (TODO: Interrupt check) (page 2-4)
+ m_pi = m_pc;
} while (m_icount > 0);
}