#define VBATT_DEFAULT_MIN (4550) #define VBATT_DEFAULT_MAX (5150) #include "lolevel.h" #include "platform.h" #include "core.h" #include "keyboard.h" /* Ours stuff */ extern long link_bss_start; extern long link_bss_end; extern void boot(); extern void mykbd_task(long ua, long ub, long uc, long ud, long ue, long uf); static void core_hook_task_create(__attribute__ ((unused))void *tcb) { } static void core_hook_task_delete(void *tcb) { char *name = (char*)(*(long*)((char*)tcb+0x34)); if (strcmp(name,"tInitFileM")==0) core_spytask_can_start(); } static int stop_hooking; static void (*taskprev)( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9); static void (*taskfsprev)( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9); void spytask(long ua, long ub, long uc, long ud, long ue, long uf) { (void)ua; (void)ub; (void)uc; (void)ud; (void)ue; (void)uf; core_spytask(); } static void task_start_hook( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9) { _CreateTask("SpyTask", 0x19, 0x2000, spytask, 0); taskprev(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 ); } static void remount_filesystem() { _Unmount_FileSystem(); _Mount_FileSystem(); } static void task_fs( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9) { remount_filesystem(); taskfsprev(p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 ); } static void capt_seq_hook( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9) { (void)p0; (void)p1; (void)p2; (void)p3; (void)p4; (void)p5; (void)p6; (void)p7; (void)p8; (void)p9; capt_seq_task(); } static void movie_record_hook( long p0, long p1, long p2, long p3, long p4, long p5, long p6, long p7, long p8, long p9) { (void)p0; (void)p1; (void)p2; (void)p3; (void)p4; (void)p5; (void)p6; (void)p7; (void)p8; (void)p9; movie_record_task(); } static int my_ncmp(const char *s1, const char *s2, long len) { int i; for (i=0;i (MEMISOSTART + MEMISOSIZE)){ started(); shutdown(); } // initialize .bss senment while (bss<&link_bss_end) *bss++ = 0; // fill memory with this magic value so we could see what // parts of memory were or not used // update: // this seems to be required for unknown reason // or else sryproc startup will fail from // time to time... #if 0 long *ptr; for (ptr=(void*)MEMBASEADDR;((long)ptr)fl_tbl[NUM_FL-1].zp) return fl_tbl[NUM_FL-1].fl; else for (i=1; i