From a39cea93729e64e0add2e947af8e451782dbb002 Mon Sep 17 00:00:00 2001 From: hap Date: Sun, 7 Aug 2022 16:50:10 +0200 Subject: tdracula: flip output pla --- src/devices/cpu/tms1000/tms0980.cpp | 2 +- src/devices/cpu/tms1000/tms1100.h | 18 +++++++++--------- src/devices/cpu/tms1000/tms1400.cpp | 8 +++++--- src/mame/handheld/hh_tms1k.cpp | 10 +++++++--- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/devices/cpu/tms1000/tms0980.cpp b/src/devices/cpu/tms1000/tms0980.cpp index 5ebc720a6f7..664adb877ed 100644 --- a/src/devices/cpu/tms1000/tms0980.cpp +++ b/src/devices/cpu/tms1000/tms0980.cpp @@ -163,7 +163,7 @@ void tms0980_cpu_device::read_opcode() { debugger_instruction_hook(m_rom_address); m_opcode = m_program->read_word(m_rom_address) & 0x1ff; - m_c4 = bitswap<8>(m_opcode,7,6,5,4,0,1,2,3) & 0xf; // opcode operand is bitswapped for most opcodes + m_c4 = bitswap<4>(m_opcode,0,1,2,3); // opcode operand is bitswapped for most opcodes m_fixed = m_fixed_decode[m_opcode]; m_micro = read_micro(); diff --git a/src/devices/cpu/tms1000/tms1100.h b/src/devices/cpu/tms1000/tms1100.h index 3855a3958b4..4121a25f64e 100644 --- a/src/devices/cpu/tms1000/tms1100.h +++ b/src/devices/cpu/tms1000/tms1100.h @@ -43,15 +43,15 @@ K1 7 | | 34 R5 K2 8 | | 33 R4 K4 9 | | 32 R3 - K8 10 | TMS1300 | 31 R1 - INIT 11 | | 30 R0 - O7 12 | | 29 Vss - NC 13 | | 28 OSC2 - NC 14 | | 27 OSC1 - NC 15 | | 26 O0 - O6 16 | | 25 O1 - O5 17 | | 24 O2 - O4 18 | | 23 NC + K8 10 | TMS1300 | 31 R2 + INIT 11 | TMS1370 | 30 R1 + O7 12 | | 29 R0 + NC 13 | | 28 Vss + NC 14 | | 27 OSC2 + NC 15 | | 26 OSC1 + O6 16 | | 25 O0 + O5 17 | | 24 O1 + O4 18 | | 23 O2 O3 19 | | 22 NC NC 20 |___________| 21 NC diff --git a/src/devices/cpu/tms1000/tms1400.cpp b/src/devices/cpu/tms1000/tms1400.cpp index 26f7a612d05..64eb906a2d1 100644 --- a/src/devices/cpu/tms1000/tms1400.cpp +++ b/src/devices/cpu/tms1000/tms1400.cpp @@ -5,12 +5,14 @@ TMS1000 family - TMS1400, TMS1470, TMS1475, TMS1600, TMS1670 TMS1400 follows the TMS1100, it doubles the ROM size again (4 chapters of 16 pages), and adds a 3-level callstack -- rotate the view and mirror the OR-mask to get the proper layout of the mpla, the default is identical to tms1100 +- rotate the view and mirror the OR-mask to get the proper layout of the mpla, the default is identical to TMS1100 - the opla size is increased from 20 to 32 terms +TMS1475 adds more R pins (indexed from X MSB) +- opla OR order appears to be flipped: O7-O0 + TMS1600 adds more I/O to the TMS1400, input pins are doubled with added L1,2,4,8 -- rotate the view and mirror the OR-mask to get the proper layout of the mpla, the default is identical to tms1100 -- the opla size is increased from 20 to 32 terms +- mpla and opla are the same as TMS1400 TODO: - emulate TMS1600 L-pins diff --git a/src/mame/handheld/hh_tms1k.cpp b/src/mame/handheld/hh_tms1k.cpp index c0114fee6c1..2a31fe0ae6c 100644 --- a/src/mame/handheld/hh_tms1k.cpp +++ b/src/mame/handheld/hh_tms1k.cpp @@ -117,7 +117,7 @@ on Joerg Woerner's datamath.org: http://www.datamath.org/IC_List.htm @MP2110 TMS1370 1980, Gakken Invader/Tandy Fire Away @MP2139 TMS1370 1981, Gakken Galaxy Invader 1000/Tandy Cosmic 1000 Fire Away @MP2726 TMS1040 1979, Tomy Break Up - *MP2788 TMS1070? 1980, Bandai Flight Time (? note: VFD-capable) + *MP2788 TMS1040? 1980, Bandai Flight Time (? note: VFD-capable) @MP3005 TMS1730 1989, Tiger Copy Cat (model 7-522) @MP3200 TMS1000 1978, Parker Brothers Electronic Master Mind @MP3201 TMS1000 1977, Milton Bradley Electronic Battleship (1977, model 4750A) @@ -14191,7 +14191,7 @@ void tdracula_state::write_r(u32 data) void tdracula_state::write_o(u16 data) { // O0-O7: VFD plate - m_plate = (m_plate & ~0xff) | bitswap<8>(data,0,1,2,3,4,5,6,7); + m_plate = (m_plate & ~0xff) | data; update_display(); } @@ -14253,7 +14253,7 @@ ROM_START( tdracula ) ROM_REGION( 867, "maincpu:mpla", 0 ) ROM_LOAD( "tms1100_common2_micro.pla", 0, 867, CRC(7cc90264) SHA1(c6e1cf1ffb178061da9e31858514f7cd94e86990) ) ROM_REGION( 557, "maincpu:opla", 0 ) - ROM_LOAD( "tms1400_tdracula_output.pla", 0, 557, CRC(52e2258e) SHA1(3dcbef72d2309aeb2375041522acd1a879b9e881) ) + ROM_LOAD( "tms1400_tdracula_output.pla", 0, 557, CRC(54408672) SHA1(8fdc6910a27c22c1df2cadeb25c74118d5774481) ) ROM_REGION( 416612, "screen", 0) ROM_LOAD( "tdracula.svg", 0, 416612, CRC(71b5e164) SHA1(357528d5df7433609931cd9f9a2e5d56fbd29774) ) @@ -14271,6 +14271,10 @@ ROM_END * TMS1024 I/O expander * cyan/red/green VFD display NEC FIP9AM31T no. 21-84, 1-bit sound + Two versions are known, one with a red trigger button and blue slot button, + and one with a blue trigger button and red slot button. The game itself is + assumed to be the same. + ***************************************************************************/ class tgpachi_state : public hh_tms1k_state -- cgit v1.2.3-70-g09d2