+ // #4 Map in kernel pages
+ for( i = 256; i < 512; i ++ )
+ {
+ // Skip addresses:
+ // 320 0xFFFFA.... - Kernel Stacks
+ if( i == 320 ) continue;
+ // 509 0xFFFFFE0.. - Fractal mapping
+ if( i == 509 ) continue;
+ // 510 0xFFFFFE8.. - Temp fractal mapping
+ if( i == 510 ) continue;
+ }
+
+ // #5 Set fractal mapping
+ TMPMAPLVL4(509) = ret | 3;
+ TMPMAPLVL4(510) = 0; // Temp
+
+ // #6 Create kernel stack
+ TMPMAPLVL4(320) = 0;
+ for( i = 0; i < KERNEL_STACK_SIZE/0x1000-1; i ++ )
+ {
+ tPAddr phys = MM_AllocPhys();
+ tVAddr tmpmapping;
+ MM_MapEx(kstackbase+i*0x1000, phys, 1, 0);
+
+ tmpmapping = MM_MapTemp(phys);
+ memcpy((void*)tmpmapping, (void*)(kstackbase+i*0x1000), 0x1000);
+ MM_FreeTemp(tmpmapping);
+ }