inline void Sap_Emu::call_init( int track ) { switch ( info.type ) { case 'B': r.a = track; run_routine( info.init_addr ); break; case 'C': r.a = 0x70; r.x = info.music_addr&0xFF; r.y = info.music_addr >> 8; run_routine( info.play_addr + 3 ); r.a = 0; r.x = track; run_routine( info.play_addr + 3 ); break; } }
void task_manage(void) { uint8_t task_index; for(task_index = 0; task_index < TASK_END; task_index++) { if(task_tick[task_index] > 0) { task_tick[task_index]--; if(task_tick[task_index] == 0) { push_task(task_index); } } } run_routine(); }