amiga_boottest

annotate src/startup.s @ 1:48093e4bd99a

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