/*============================================================================*/ Byte in_bus() { Byte si=0,d=0,mode=0,jn=0,sticknum=0; if ((p1 & 0x08) && (p1 & 0x10)) { /* Handle joystick read */ if (!(p1 & 0x04)) { si = (p2 & 7); } d=0xFF; if (si == 1) { mode = app_data.stick[0]; jn = 0; sticknum = app_data.sticknumber[0]-1; } else { mode = app_data.stick[1]; jn = 1; sticknum = app_data.sticknumber[1]-1; } switch(mode) { case 1: d = keyjoy(jn); break; case 2: #ifndef __O2EM_SDL__ /* TODO for SDL */ poll_joystick(); #endif if (joy[sticknum].stick[0].axis[1].d1) d &= 0xFE; /* joy_up*/ if (joy[sticknum].stick[0].axis[0].d2) d &= 0xFD; /* joy_right*/ if (joy[sticknum].stick[0].axis[1].d2) d &= 0xFB; /* joy_down*/ if (joy[sticknum].stick[0].axis[0].d1) d &= 0xF7; /* joy_left*/ if (joy[sticknum].button[0].b || joy[jn].button[1].b) d &= 0xEF; /* both main-buttons*/ break; } if (si == 1) { if (dbstick1) d = dbstick1; } else { if (dbstick2) d = dbstick2; } } return d; }
Byte in_bus(void){ Byte si=0,d=0,mode=0,jn=0,sticknum=0; if ((p1 & 0x08) && (p1 & 0x10)) { /* Handle joystick read */ if (!(p1 & 0x04)) { si = (p2 & 7); } d=0xFF; if (si == 1) { mode = app_data.stick[0]; jn = 0; sticknum = app_data.sticknumber[0]-1; } else { mode = app_data.stick[1]; jn = 1; sticknum = app_data.sticknumber[1]-1; } switch(mode) { case 1: d = keyjoy(jn); break; case 2: poll_joystick(); if (joy[sticknum].stick[0].axis[1].d1) d &= 0xFE; // joy_up if (joy[sticknum].stick[0].axis[0].d2) d &= 0xFD; // joy_right if (joy[sticknum].stick[0].axis[1].d2) d &= 0xFB; // joy_down if (joy[sticknum].stick[0].axis[0].d1) d &= 0xF7; // joy_left if (joy[sticknum].button[0].b || joy[jn].button[1].b) d &= 0xEF; // both main-buttons break; } if (si == 1) { if (dbstick1) d = dbstick1; } else { if (dbstick2) d = dbstick2; } } return d; }