static void joystick_latch_matrix(CLOCK offset) { BYTE idx; if (network_connected()) { idx = network_joystick_value[0]; if (idx > 0) { joystick_value[idx] = network_joystick_value[idx]; } else { memcpy(joystick_value, network_joystick_value, sizeof(joystick_value)); } } else { memcpy(joystick_value, latch_joystick_value, sizeof(joystick_value)); } if (joystick_machine_func != NULL) { joystick_machine_func(); } if (joyport_joystick[0]) { joyport_display_joyport(JOYPORT_ID_JOY1, joystick_value[1]); } if (joyport_joystick[1]) { joyport_display_joyport(JOYPORT_ID_JOY2, joystick_value[2]); } if (joyport_joystick[2]) { joyport_display_joyport(JOYPORT_ID_JOY3, joystick_value[3]); } if (joyport_joystick[3]) { joyport_display_joyport(JOYPORT_ID_JOY4, joystick_value[4]); } if (joyport_joystick[4]) { joyport_display_joyport(JOYPORT_ID_JOY4, joystick_value[5]); } }
static uint8_t cx21_read_dig(int p) { uint8_t retval = 0; if (keys[KEYPAD_KEY_3]) { if (port & 1) { retval = 0x10; } } if (keys[KEYPAD_KEY_6]) { if (port & 2) { retval = 0x10; } } if (keys[KEYPAD_KEY_9]) { if (port & 4) { retval = 0x10; } } if (keys[KEYPAD_KEY_HASH]) { if (port & 8) { retval = 0x10; } } joyport_display_joyport(JOYPORT_ID_CX21_KEYPAD, (uint8_t)retval); return (uint8_t)~retval; }
static BYTE cardkey_read_dig(int port) { unsigned int retval = 0; unsigned int tmp; /* KEY3 */ tmp = keys[KEYPAD_KEY_0] | keys[KEYPAD_KEY_1] | keys[KEYPAD_KEY_2] | keys[KEYPAD_KEY_3] | keys[KEYPAD_KEY_4] | keys[KEYPAD_KEY_5] | keys[KEYPAD_KEY_6] | keys[KEYPAD_KEY_7]; tmp <<= 3; retval |= tmp; /* KEY2 */ tmp = keys[KEYPAD_KEY_0] | keys[KEYPAD_KEY_1] | keys[KEYPAD_KEY_2] | keys[KEYPAD_KEY_3] | keys[KEYPAD_KEY_8] | keys[KEYPAD_KEY_9] | keys[KEYPAD_KEY_PLUS] | keys[KEYPAD_KEY_MINUS]; tmp <<= 2; retval |= tmp; /* KEY1 */ tmp = keys[KEYPAD_KEY_0] | keys[KEYPAD_KEY_1] | keys[KEYPAD_KEY_8] | keys[KEYPAD_KEY_9] | keys[KEYPAD_KEY_4] | keys[KEYPAD_KEY_5] | keys[KEYPAD_KEY_DIV] | keys[KEYPAD_KEY_MULT]; tmp <<= 1; retval |= tmp; /* KEY0 */ tmp = keys[KEYPAD_KEY_0] | keys[KEYPAD_KEY_8] | keys[KEYPAD_KEY_4] | keys[KEYPAD_KEY_DIV] | keys[KEYPAD_KEY_2] | keys[KEYPAD_KEY_PLUS] | keys[KEYPAD_KEY_6] | keys[KEYPAD_KEY_DOT]; retval |= tmp; retval |= 0xf0; joyport_display_joyport(JOYPORT_ID_CARDCO_KEYPAD, (BYTE)~retval); return (BYTE)retval; }
static BYTE paperclip64_read(int port) { BYTE retval = 0xff; if (counter != -1) { retval &= (keys[counter] | 0xfc); joyport_display_joyport(JOYPORT_ID_BBRTC, (BYTE)(~retval & 3)); } return retval; }