amiga_boottest

annotate src/startup.s @ 2:58ebd84822e7

it works
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 22 Feb 2018 12:44:20 +0200
parents 48093e4bd99a
children
rev   line source
nuclear@0 1 | vi:filetype=gas68k:
nuclear@0 2 .global halt_cpu
nuclear@1 3 .extern main
nuclear@0 4
nuclear@2 5 .section .startup,"a"
nuclear@1 6
nuclear@1 7 | enter supervisor mode (assumes VBR=0)
nuclear@1 8 move.l #super, 0x80
nuclear@1 9 trap #0
nuclear@1 10 super:
nuclear@1 11 ori.w #0x0300, %sr | disable interrupts
nuclear@1 12
nuclear@0 13 | zero the .bss section
nuclear@0 14 move.l #_bss_start, %a0
nuclear@0 15 move.l #_bss_end, %a1
nuclear@0 16 cmp.l %a0, %a1
nuclear@0 17 beq.s 1f | skip zeroing if the section is empty
nuclear@2 18 0: clr.b (%a0)+
nuclear@0 19 cmp.l %a0, %a1
nuclear@0 20 bne.s 0b
nuclear@0 21 1:
nuclear@0 22 | setup the stack
nuclear@0 23 move.l #_stacktop, %sp
nuclear@1 24 andi.w #0xf8ff, %sr | enable interrupts
nuclear@0 25
nuclear@1 26 jsr main
nuclear@1 27 0: bra.b 0b
nuclear@0 28
nuclear@0 29 halt_cpu:
nuclear@0 30 stop #0x2700