4 .global move_init_stack
11 | enter supervisor mode (assumes VBR=0)
15 or.w #0x0700, %sr | disable interrupts
17 | zero the .bss section
18 move.l #_bss_start, %a0
21 beq.s 1f | skip zeroing if the section is empty
26 | setup a temporary stack
28 and.w #0xf8ff, %sr | enable interrupts
30 | initialize early exception handlers
37 move.l #0x40000, %a1 | a1 <- old stack
38 move.l 4(%sp), %a0 | a0 <- new stack
52 move.w #0x7fff, DMACON(%a0) | clear all DMACON bits
53 move.w #0xf00, COLOR0(%a0)
57 add.l #8, %sp | also get rid of the reutrn address
62 str_panic: .asciz "Kernel panic!\n~~~~~~~~~~~~~\n"