void main (void) { init_clock(); while(1) { switch (get_key()) { case 0: motor_start(); break; case 1: motor_stop(); break; case 2: drill_down(); break; case 3: drill_up(); break; case 4: step(); break; case 5: drill_hole(); break; case 6: ref_pos(); break; case 7: do_auto(pattern); break; } } }
int main(UNUSED int argc, char **argv) { argv++; if (!*argv) usage(); enum { MANUAL, AUTO } mode; if (!strcmp(*argv, "manual")) mode = MANUAL; else if (!strcmp(*argv, "auto")) mode = AUTO; else usage(); argv++; int patch_size; if (mode == MANUAL) { if (!*argv) usage(); patch_size = atoi(*argv++); } struct arch_dis_ctx arch; arch_dis_ctx_init(&arch); #ifdef TARGET_arm if (!*argv) usage(); int thumb = atoi(*argv++); arch.pc_low_bit = thumb; #endif static uint8_t in[1048576]; size_t in_size = fread(in, 1, sizeof(in), stdin); if (mode == MANUAL) do_manual(in, in_size, patch_size, arch); else do_auto(in, in_size, arch); }