static READ16_HANDLER( special_port1_r ) { int temp = readinputport(1); if (atarigen_cpu_to_sound_ready) temp ^= 0x0040; if (atarigen_get_hblank()) temp ^= 0x0010; return temp; }
static READ16_HANDLER( inputs_r ) { int temp = readinputport(2 + (offset & 1)); if (atarigen_cpu_to_sound_ready) temp ^= 0x0040; if (atarigen_get_hblank()) temp ^= 0x0010; return temp; }
static READ_HANDLER( special_port1_r ) { int result = input_port_1_r(offset); if (atarigen_get_hblank()) result ^= 0x8000; if (atarigen_cpu_to_sound_ready) result ^= 0x2000; return result; }
static READ16_HANDLER( special_port1_r ) { int result = readinputport(1); if (atarigen_get_hblank()) result ^= 0x8000; if (atarigen_cpu_to_sound_ready) result ^= 0x2000; return result; }
static READ16_HANDLER( special_port2_r ) { relief_state *state = (relief_state *)space->machine->driver_data; int result = input_port_read(space->machine, "260010"); if (state->atarigen.cpu_to_sound_ready) result ^= 0x0020; if (!(result & 0x0080) || atarigen_get_hblank(*space->machine->primary_screen)) result ^= 0x0001; return result; }
static READ16_HANDLER( special_port1_r ) { skullxbo_state *state = space->machine().driver_data<skullxbo_state>(); int temp = input_port_read(space->machine(), "FF5802"); if (state->m_cpu_to_sound_ready) temp ^= 0x0040; if (atarigen_get_hblank(*space->machine().primary_screen)) temp ^= 0x0010; return temp; }
static READ16_HANDLER( special_port1_r ) { toobin_state *state = (toobin_state *)space->machine->driver_data; int result = input_port_read(space->machine, "FF9000"); if (atarigen_get_hblank(*space->machine->primary_screen)) result ^= 0x8000; if (state->atarigen.cpu_to_sound_ready) result ^= 0x2000; return result; }
static READ16_HANDLER( special_port0_r ) { int result = readinputport(0); if ((result & 0x0800) && atarigen_get_hblank(Machine, 0)) result &= ~0x0800; return result; }
static READ16_HANDLER( special_port0_r ) { int result = input_port_read(space->machine(), "SYSTEM"); if ((result & 0x0800) && atarigen_get_hblank(*space->machine().primary_screen)) result &= ~0x0800; return result; }
static READ_HANDLER( special_port0_r ) { int result = input_port_0_r(offset); if ((result & 0x0800) && atarigen_get_hblank()) result &= ~0x0800; return result; }
static READ16_HANDLER( inputs_r ) { static const char *const iptnames[] = { "IN0", "IN1" }; blstroid_state *state = space->machine().driver_data<blstroid_state>(); int temp = input_port_read(space->machine(), iptnames[offset & 1]); if (state->m_cpu_to_sound_ready) temp ^= 0x0040; if (atarigen_get_hblank(*space->machine().primary_screen)) temp ^= 0x0010; return temp; }