diff --git a/src/sys/init/main.c b/src/sys/init/main.c index ab15d2b..ad2de7a 100644 --- a/src/sys/init/main.c +++ b/src/sys/init/main.c @@ -112,7 +112,7 @@ //sysExec("sys:/init", 0x0, 0x0, 0x0); execThread(systemTask, (uInt32)sysTask+0x2000,0x0); - execFile("sys:/init",0x0,0x0,0x0); + //execFile("sys:/init",0x0,0x0,0x0); /* start the scheduler */ sched(); diff --git a/src/sys/kernel/sched.c b/src/sys/kernel/sched.c index d718f37..9fffee3 100644 --- a/src/sys/kernel/sched.c +++ b/src/sys/kernel/sched.c @@ -25,14 +25,14 @@ void LoadTaskState(uInt16 selector) { - asm ("ltr %0": : "m" (selector)); + //asm ("ltr %0": : "m" (selector)); return; } uInt16 StoreTaskState() { uInt16 selector = 0x0; - asm volatile("str %0": : "r" (selector)); + //asm volatile("str %0": : "r" (selector)); return selector; } @@ -56,11 +56,14 @@ ubixGDT[4].descriptor.access = '\x89'; /* enable interrupts, particularly the timer interrupt */ - irqEnable(0x0); + //irqEnable(0x0); //kernel = StoreTaskState(); //LoadTaskState(kernel); - Switch(kernel); + //Switch(kernel); + asm("ljmp $0x20,$0\n"); + kprintf("WOOT!!\n"); + while (1); /* no interrupts can occur at the dispatch level */ irqDisable(0x0); @@ -124,6 +127,7 @@ { case READY: tmpTask->state = RUNNING; + kprintf("sending task to CPU\n"); SendTaskToProcessor(tmpTask, cpu); tmpTask->state = WAIT; break;