ogrebattle64/src/boot.c

37 lines
942 B
C

#include "common.h"
#include "nu/nusys.h"
extern OSThread nuThreadIdle;
extern DECLARE_STACK(nuStackIdle, NU_IDLE_STACK_SIZE);
extern OSThread obThreadMain;
extern DECLARE_STACK(obStackMain, NU_MAIN_STACK_SIZE);
void nuIdle(void* arg);
void nuBoot(void) {
osInitialize();
osCreateThread(&nuThreadIdle, NU_IDLE_THREAD_ID, nuIdle, NULL, STACK_START(nuStackIdle), NU_MAIN_THREAD_PRI);
osStartThread(&nuThreadIdle);
}
void nuIdle(void* arg) {
nuIdleFunc = NULL;
nuPiInit();
nuScCreateScheduler(OS_VI_NTSC_LAN1, 1);
osViSetSpecialFeatures(OS_VI_DIVOT_ON | OS_VI_DITHER_FILTER_ON | OS_VI_GAMMA_OFF | OS_VI_GAMMA_DITHER_OFF);
osCreateThread(&obThreadMain, NU_MAIN_THREAD_ID, obMain, NULL, STACK_START(obStackMain), NU_MAIN_THREAD_PRI);
osStartThread(&obThreadMain);
osSetThreadPri(&nuThreadIdle, NU_IDLE_THREAD_PRI);
while(1) {
if (nuIdleFunc != NULL)
nuIdleFunc();
}
}