int main() { int x; joy_t joy; if ( joy_init(&joy) != 0) { printf("cannot find joystick\n"); return 1; } printf( " Joystick detected : %s \n \t %d axis \n\t %d buttons \n\n" ,joy.name, joy.num_of_axis , joy.num_of_buttons); // fcntl( joy_fd, F_SETFL , O_NONBLOCK ); // use non - blocking methods while(1) // infinite loop { // read the joystick joy_read(&joy); // print the results printf( " X:%6d y:%6d", joy.axis[0] , joy.axis[1]); if( joy.num_of_axis > 2) printf( " z:%6d" , joy.axis[2] ); if( joy.num_of_axis > 3) printf( " R:%6d" , joy.axis [3]); for( x=0 ; x<joy.num_of_buttons ; ++x) printf( " B%d:%d" , x, joy.button [x]); printf("\n"); fflush(stdout); } joy_close(&joy); return 0; }
int main (void) { unsigned char XSize, YSize; /* Set screen colors */ (void) textcolor (COLOR_WHITE); (void) bordercolor (COLOR_BLACK); (void) bgcolor (COLOR_BLACK); /* Clear the screen, put cursor in upper left corner */ clrscr (); /* Ask for the screen size */ screensize (&XSize, &YSize); /* Draw a border around the screen */ /* Top line */ cputc (CH_ULCORNER); chline (XSize - 2); cputc (CH_URCORNER); /* Vertical line, left side */ cvlinexy (0, 1, YSize - 2); /* Bottom line */ cputc (CH_LLCORNER); chline (XSize - 2); cputc (CH_LRCORNER); /* Vertical line, right side */ cvlinexy (XSize - 1, 1, YSize - 2); /* Write the greeting in the mid of the screen */ gotoxy ((XSize - strlen (Text)) / 2, YSize / 2); cprintf ("%s", Text); #if defined(__NES__) || defined(__PCE__) || defined(__GAMATE__) || defined(__ATARI5200__) /* Wait for the user to press a button */ joy_install (joy_static_stddrv); while (!joy_read (JOY_1)) ; joy_uninstall (); #else /* Wait for the user to press a key */ cgetc (); #endif /* Clear the screen again */ clrscr (); /* Done */ return EXIT_SUCCESS; }
int main (void) { unsigned char j; unsigned char count; unsigned char i; #ifdef __NES__ extern void *co65_joy; unsigned char Res = joy_install (&co65_joy); #else unsigned char Res = joy_load_driver (joy_stddrv); #endif if (Res != JOY_ERR_OK) { cprintf ("Error in joy_load_driver: %u\r\n", Res); cprintf ("os: %u, %s\r\n", _oserror, _stroserror (_oserror)); exit (EXIT_FAILURE); } clrscr (); count = joy_count (); cprintf ("Driver supports %d joystick(s)", count); while (1) { for (i = 0; i < count; ++i) { gotoxy (0, i+1); j = joy_read (i); cprintf ("%2d: %-6s%-6s%-6s%-6s%-6s%-6s", i, (j & joy_masks[JOY_UP])? " up " : " ---- ", (j & joy_masks[JOY_DOWN])? " down " : " ---- ", (j & joy_masks[JOY_LEFT])? " left " : " ---- ", (j & joy_masks[JOY_RIGHT])? "right " : " ---- ", (j & joy_masks[JOY_FIRE])? " fire " : " ---- ", (j & joy_masks[JOY_FIRE2])? "fire2 " : " ---- "); } } return 0; }
/*-----------------------------------------------------------------------------------*/ int main(int argc, char **argv) { /* irqload_init();*/ #ifdef WITH_UIP uip_init(); uip_main_init(); resolv_init(); #ifdef WITH_TFE cs8900a_init(); #endif /* WITH_TFE */ #ifdef WITH_RS232 rs232dev_init(); #endif /* WITH_RS232 */ #ifdef WITH_TAPDEV tapdev_init(); #endif /* WITH_TAPDEV */ #endif /* WITH_UIP */ conio_init(); textcolor(1);bgcolor(0); clrscr(); conio_update(); //joy_load_driver(joy_stddrv); #if 0 { int i,j; clrscr(); textcolor(0);bgcolor(1); while(1) { gotoxy(0,0); cprintf("%d\n",i++); conio_update(); if(kbhit()) { cprintf(" "); cprintf("%02x",cgetc()); cprintf("\n"); } else { cprintf("pressed: ---------\n"); } j=joy_read(0); cprintf("%08x\n",j); } } #endif ek_init(); dispatcher_init(); ctk_init(); contiki_init(); programs_init(); ctk_redraw(); ek_run(); clrscr(); return 0; argv = argv; argc = argc; }
u8 io_read(u16 adr) { u8 reg = adr & 0x00FF; switch(reg) { case 0x00: return joy_read(); break; case 0x01: /* return serial.sb;*/ break; case 0x02: /* return serial.sc;*/ break; case 0x04: return timers.div; break; case 0x05: return timers.tima; break; case 0x06: return timers.tma; break; case 0x07: return timers.tac; break; case 0x0F: return cpu.irq; break; case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x16: case 0x17: case 0x18: case 0x19: case 0x1A: case 0x1B: case 0x1C: case 0x1D: case 0x1E: case 0x20: case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x30: case 0x31: case 0x32: case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: case 0x3A: case 0x3B: case 0x3C: case 0x3D: case 0x3E: case 0x3F: return sound_read(reg); break; case 0x15: case 0x1F: return 0x00; break; case 0x40: return lcd.c; break; case 0x41: return lcd.stat; break; case 0x42: return lcd.scy; break; case 0x43: return lcd.scx; break; case 0x44: return lcd.ly; break; case 0x45: return lcd.lyc; break; case 0x46: return 0xFF; break; case 0x47: return lcd.bgp.b[0]; break; case 0x48: return lcd.obp.b[0]; break; case 0x49: return lcd.obp.b[1]; break; case 0x4A: return lcd.wy; break; case 0x4B: return lcd.wx; break; case 0x4D: return cpu.freq_switch | (cpu.freq == DOUBLE_CPU_FREQ ? 0x80 : 0x00); break; case 0x4F: return ram.selected_vrambank; break; case 0x51: return lcd.hdma_source >> 8; break; case 0x52: return lcd.hdma_source & 0xFF; break; case 0x53: return lcd.hdma_dest >> 8; break; case 0x54: return lcd.hdma_dest & 0xFF; break; case 0x55: return lcd.hdma_length | lcd.hdma_inactive; break; case 0x56: return 0x40; break; case 0x68: return lcd.bgp.s | lcd.bgp.i; break; case 0x69: return lcd.bgp.d[lcd.bgp.s]; break; case 0x6A: return lcd.obp.s | lcd.obp.i; break; case 0x6B: return lcd.obp.d[lcd.obp.s]; break; case 0x70: return ram.rambank_index | 0xF8; break; default:; #ifdef DEBUG printf("Unknown IO read: %.2X\n", reg); #endif } return 0xFF; // Avoids nasty warnings, precious }