Sir,
I am currently at Stage 12 of the roadmap. I had run into some problems with stage 12, and hadn't been able to fix it properly.
The doubts I had was after the timer interrupt handler is called and it changes the process, the Instruction Pointer is popped from the stack of the new process, in this case, it was the idle process. But no return address has been pushed into the stack of the idle process. And as such my program terminates after the timer interrupt handler returns back to user mode.
I might not be understanding it completely, but I would like to know what exactly the problem could be. I feel like it's something wrong with assigning process table entries for the idle and init programs, most notably the UPTR and KPTR values, but I do not know.