static WRITE8_HANDLER( mikie_coin_counter_w ) { coin_counter_w(space->machine, offset, data); }
static WRITE8_HANDLER( tiamc1_control_w ) { coin_lockout_w(space->machine, 0, ~data & 0x02); coin_counter_w(space->machine, 0, data & 0x04); }
static WRITE8_HANDLER( gng_coin_counter_w ) { coin_counter_w(space->machine(), offset, data); }
static WRITE16_HANDLER( ripribit_control_w ) { coin_counter_w(space->machine(), 0, data & 1); ticket_dispenser_w(space->machine().device("ticket"), 0, ((data >> 1) & 1) << 7); output_set_lamp_value(0, (data >> 2) & 1); }
static WRITE8_HANDLER( kangaroo_coin_counter_w ) { coin_counter_w(space->machine(), 0, data & 1); coin_counter_w(space->machine(), 1, data & 2); }
static WRITE8_HANDLER( sauro_coin2_w ) { coin_counter_w(space->machine(), 1, data); coin_counter_w(space->machine(), 1, 0); // to get the coin counter working in sauro, as it doesn't write 0 }
static WRITE8_HANDLER( liberatr_coin_counter_w ) { coin_counter_w(offset ^ 0x01, data & 0x10); }
static WRITE8_HANDLER( funkybee_coin_counter_w ) { coin_counter_w(offset,data); }
static WRITE8_DEVICE_HANDLER( trvquest_coin_w ) { coin_counter_w(device->machine(), 0, ~data & 1); }
static WRITE8_HANDLER( coincounter_w ) { coin_counter_w(0, data & 1); }
static WRITE8_HANDLER( cliff_coin_counter_w ) { coin_counter_w(space->machine(), 0, (data & 0x40) ? 1 : 0 ); }
static WRITE8_DEVICE_HANDLER( upscope_cia_1_porta_w ) { /* on a low transition of POUT, we latch stuff for the NVRAM */ if ((prev_cia1_porta & 2) && !(data & 2)) { /* if SEL == 1 && BUSY == 0, we latch an address */ if ((data & 5) == 4) { if (LOG_IO) logerror("Latch address: %02X\n", parallel_data); nvram_address_latch = parallel_data; } /* if SEL == 1 && BUSY == 1, we write data to internal registers */ else if ((data & 5) == 5) { switch (nvram_address_latch) { case 0x01: /* lamps: 01 = Enemy Right 02 = Enemy Left 04 = Torpedo 1 08 = Torpedo 2 10 = Torpedo 3 20 = Torpedo 4 40 = Sight 80 = Bubble Light */ break; case 0x02: /* coin counter */ coin_counter_w(0, data & 1); break; case 0x03: /* Written $98 at startup and nothing afterwards */ break; default: logerror("Internal register (%d) = %02X\n", nvram_address_latch, parallel_data); break; } } /* if SEL == 0 && BUSY == 1, we write data to NVRAM */ else if ((data & 5) == 1) { if (LOG_IO) logerror("NVRAM data write @ %02X = %02X\n", nvram_address_latch, parallel_data); generic_nvram[nvram_address_latch] = parallel_data; } /* if SEL == 0 && BUSY == 0, who knows? */ else { logerror("Unexpected: POUT low with SEL == 0/BUSY == 0\n"); } } /* on a low transition of BUSY, we latch stuff for reading */ else if ((prev_cia1_porta & 1) && !(data & 1)) { /* if SEL == 1, we read internal data registers */ if (data & 4) { if (LOG_IO) logerror("Internal register (%d) read\n", nvram_address_latch); nvram_data_latch = (nvram_address_latch == 0) ? input_port_read(device->machine, "IO0") : 0xff; } /* if SEL == 0, we read NVRAM */ else { nvram_data_latch = generic_nvram[nvram_address_latch]; if (LOG_IO) logerror("NVRAM data read @ %02X = %02X\n", nvram_address_latch, nvram_data_latch); } } /* remember the previous value */ prev_cia1_porta = data; }
static WRITE8_HANDLER( sbasketb_coin_counter_w ) { coin_counter_w(offset,data); }
static WRITE8_HANDLER( crimfght_coin_w ) { coin_counter_w(space->machine(), 0, data & 1); coin_counter_w(space->machine(), 1, data & 2); }
static void kangaroo_coin_counter_w(int offset, int data) { coin_counter_w(0, data & 1); coin_counter_w(1, data & 2); }
static WRITE8_HANDLER( sonson_coin2_counter_w ) { coin_counter_w(space->machine(), 1, data & 1); }
static WRITE8_HANDLER( cloud9_coin_counter_w ) { coin_counter_w(space->machine, offset, data & 0x80); }
static WRITE8_HANDLER( ambush_coin_counter_w ) { coin_counter_w(0, data & 0x01); coin_counter_w(1, data & 0x02); }
static void finalizr_coin_w(int offset,int data) { coin_counter_w(0,data & 0x01); coin_counter_w(1,data & 0x02); }
static WRITE8_HANDLER( wink_coin_counter_w ) { coin_counter_w(offset,data & 1); }
static WRITE8_HANDLER( out_lamps1 ) { coin_counter_w(1,~data & 1); }
static WRITE8_HANDLER( out_coin0 ) { coin_lockout_global_w(data & 4); coin_counter_w(0,~data & 8); }
static WRITE8_HANDLER( coincounter_w ) { coin_counter_w(space->machine, 0, data & 1); }
static WRITE8_HANDLER( megazone_coin_counter_w ) { coin_counter_w(1-offset,data); /* 1-offset, because coin counters are in reversed order */ }
static WRITE_HANDLER( ccastles_coin_counter_w ) { /* this is not working, haven't investigated why */ coin_counter_w(offset^1, ~data); }
static WRITE8_HANDLER( pacland_coin_w ) { coin_lockout_global_w(data & 1); coin_counter_w(0,~data & 2); coin_counter_w(1,~data & 4); }
static WRITE8_HANDLER( hyperspt_coin_counter_w ) { coin_counter_w(offset,data); }
static WRITE16_HANDLER( dassault_control_w ) { coin_counter_w(0,data&1); if (data&0xfffe) logerror("Coin cointrol %04x\n",data); }
static WRITE8_HANDLER( hcastle_coin_w ) { coin_counter_w(0,data & 0x40); coin_counter_w(1,data & 0x80); }
static WRITE8_DEVICE_HANDLER( out_lamps1 ) { coin_counter_w(device->machine, 1, ~data & 1); }