From 385fc70398ba29a6daab72623dd6345778d7d5f3 Mon Sep 17 00:00:00 2001 From: AJR Date: Tue, 6 Dec 2022 21:46:55 -0500 Subject: [PATCH] toaplan1.cpp: Clean up coin counter/lockout handling --- src/mame/toaplan/toaplan1_m.cpp | 32 +++++--------------------------- 1 file changed, 5 insertions(+), 27 deletions(-) diff --git a/src/mame/toaplan/toaplan1_m.cpp b/src/mame/toaplan/toaplan1_m.cpp index 4d432088958..f600a192429 100644 --- a/src/mame/toaplan/toaplan1_m.cpp +++ b/src/mame/toaplan/toaplan1_m.cpp @@ -201,33 +201,11 @@ WRITE_LINE_MEMBER(toaplan1_rallybik_state::coin_lockout_2_w) void toaplan1_state::coin_w(u8 data) { - logerror("Z80 writing %02x to coin control\n",data); - /* This still isnt too clear yet. */ - /* Coin C has no coin lock ? */ - /* Are some outputs for lights ? (no space on JAMMA for it though) */ - - switch (data) - { - case 0xee: machine().bookkeeping().coin_counter_w(1,1); machine().bookkeeping().coin_counter_w(1,0); break; /* Count slot B */ - case 0xed: machine().bookkeeping().coin_counter_w(0,1); machine().bookkeeping().coin_counter_w(0,0); break; /* Count slot A */ - /* The following are coin counts after coin-lock active (faulty coin-lock ?) */ - case 0xe2: machine().bookkeeping().coin_counter_w(1,1); machine().bookkeeping().coin_counter_w(1,0); machine().bookkeeping().coin_lockout_w(1,1); break; - case 0xe1: machine().bookkeeping().coin_counter_w(0,1); machine().bookkeeping().coin_counter_w(0,0); machine().bookkeeping().coin_lockout_w(0,1); break; - - case 0xec: machine().bookkeeping().coin_lockout_global_w(0); break; /* ??? count games played */ - case 0xe8: break; /* ??? Maximum credits reached with coin/credit ratio */ - case 0xe4: break; /* ??? Reset coin system */ - - case 0x0c: machine().bookkeeping().coin_lockout_global_w(0); break; /* Unlock all coin slots */ - case 0x08: machine().bookkeeping().coin_lockout_w(2,0); break; /* Unlock coin slot C */ - case 0x09: machine().bookkeeping().coin_lockout_w(0,0); break; /* Unlock coin slot A */ - case 0x0a: machine().bookkeeping().coin_lockout_w(1,0); break; /* Unlock coin slot B */ - - case 0x02: machine().bookkeeping().coin_lockout_w(1,1); break; /* Lock coin slot B */ - case 0x01: machine().bookkeeping().coin_lockout_w(0,1); break; /* Lock coin slot A */ - case 0x00: machine().bookkeeping().coin_lockout_global_w(1); break; /* Lock all coin slots */ - default: logerror("PC:%04x Writing unknown data (%04x) to coin count/lockout port\n",m_audiocpu->pcbase(),data); break; - } + // Upper 4 bits are junk (normally 1110 or 0000, which are artifacts of sound command processing) + machine().bookkeeping().coin_counter_w(0, BIT(data, 0)); + machine().bookkeeping().coin_counter_w(1, BIT(data, 1)); + machine().bookkeeping().coin_lockout_w(0, !BIT(data, 2)); + machine().bookkeeping().coin_lockout_w(1, !BIT(data, 3)); } WRITE_LINE_MEMBER(toaplan1_state::reset_callback)