PROCESS_THREAD(ctk_conio_service_process, ev, data) { PROCESS_BEGIN(); s_ctk_draw_init(); ctk_restore(); SERVICE_REGISTER(ctk_conio_service); while(ev != PROCESS_EVENT_SERVICE_REMOVED && ev != PROCESS_EVENT_EXIT) { PROCESS_WAIT_EVENT(); } SERVICE_REMOVE(ctk_conio_service); PROCESS_END(); }
/*--------------------------------------------------------------------------*/ EK_EVENTHANDLER(eventhandler, ev, data) { EK_EVENTHANDLER_ARGS(ev, data); switch(ev) { case EK_EVENT_INIT: case EK_EVENT_REPLACE: s_ctk_draw_init(); ctk_restore(); break; case EK_EVENT_REQUEST_REPLACE: VIC.ctrl1 = 0x1b; /* $D011 */ VIC.addr = 0x17; /* $D018 */ VIC.ctrl2 = 0xc8; /* $D016 */ CIA2.pra = 0x03; /* $DD00 */ ek_replace((struct ek_proc *)data, NULL); LOADER_UNLOAD(); break; } }