init
This commit is contained in:
commit
d1ac414c5e
34 changed files with 64721 additions and 0 deletions
105
runtime/crt0.s
Normal file
105
runtime/crt0.s
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
STACK_AREA equ $1ff000
|
||||
ROM equ $000000
|
||||
RAM equ $100000
|
||||
|
||||
section VECTORS
|
||||
|
||||
vector_table:
|
||||
dc.l STACK_AREA
|
||||
dc.l init
|
||||
dc.l unhandled_exception ; 2: bus error
|
||||
dc.l unhandled_exception ; 3: address error
|
||||
dc.l unhandled_exception ; 4: illegal instruction
|
||||
dc.l unhandled_exception ; 5: zero divide
|
||||
dc.l unhandled_exception ; 6: chk
|
||||
dc.l unhandled_exception ; 7: trapv
|
||||
dc.l unhandled_exception ; 8: privilege violation
|
||||
dc.l unhandled_exception ; 9: trace
|
||||
dc.l unhandled_exception ; 10: 1010
|
||||
dc.l unhandled_exception ; 11: 1111
|
||||
dc.l unhandled_exception ; 12: -
|
||||
dc.l unhandled_exception ; 13: -
|
||||
dc.l unhandled_exception ; 14: -
|
||||
dc.l unhandled_exception ; 15: uninitialized interrupt
|
||||
dc.l unhandled_exception ; 16: -
|
||||
dc.l unhandled_exception ; 17: -
|
||||
dc.l unhandled_exception ; 18: -
|
||||
dc.l unhandled_exception ; 19: -
|
||||
dc.l unhandled_exception ; 20: -
|
||||
dc.l unhandled_exception ; 21: -
|
||||
dc.l unhandled_exception ; 22: -
|
||||
dc.l unhandled_exception ; 23: -
|
||||
dc.l unhandled_exception ; 24: spurious interrupt
|
||||
dc.l timer_irq ; 25: l1 irq
|
||||
dc.l unhandled_exception ; 26: l2 irq
|
||||
dc.l unhandled_exception ; 27: l3 irq
|
||||
dc.l unhandled_exception ; 28: l4 irq
|
||||
dc.l unhandled_exception ; 29: l5 irq
|
||||
dc.l unhandled_exception ; 30: l6 irq
|
||||
dc.l unhandled_exception ; 31: l7 irq
|
||||
dc.l unhandled_exception ; 32: trap 0
|
||||
dc.l unhandled_exception ; 33: trap 1
|
||||
dc.l unhandled_exception ; 34: trap 2
|
||||
dc.l unhandled_exception ; 35: trap 3
|
||||
dc.l unhandled_exception ; 36: trap 4
|
||||
dc.l unhandled_exception ; 37: trap 5
|
||||
dc.l unhandled_exception ; 38: trap 6
|
||||
dc.l unhandled_exception ; 39: trap 7
|
||||
dc.l unhandled_exception ; 40: trap 8
|
||||
dc.l unhandled_exception ; 41: trap 9
|
||||
dc.l unhandled_exception ; 42: trap 10
|
||||
dc.l unhandled_exception ; 43: trap 11
|
||||
dc.l unhandled_exception ; 44: trap 12
|
||||
dc.l unhandled_exception ; 45: trap 13
|
||||
dc.l unhandled_exception ; 46: trap 14
|
||||
dc.l unhandled_exception ; 47: trap 15
|
||||
|
||||
section CODE
|
||||
xref _main
|
||||
xref _tick
|
||||
xref _DATA_LOAD
|
||||
xref _DATA_START
|
||||
xref _DATA_END
|
||||
xref _BSS_START
|
||||
xref _BSS_END
|
||||
|
||||
init:
|
||||
move.w #$2700,sr
|
||||
|
||||
lea _DATA_START,a0
|
||||
lea _DATA_END,a1
|
||||
lea _DATA_LOAD,a2
|
||||
jsr copy
|
||||
|
||||
lea _BSS_START,a0
|
||||
lea _BSS_END,a1
|
||||
jsr clear
|
||||
|
||||
jsr _main
|
||||
|
||||
move.w #$2000,sr
|
||||
|
||||
bra.s *
|
||||
|
||||
copy:
|
||||
cmpa.l a1,a0
|
||||
bhs.s .done
|
||||
move.l (a2)+,(a0)+
|
||||
bra.s copy
|
||||
.done:
|
||||
rts
|
||||
|
||||
clear:
|
||||
cmpa.l a1,a0
|
||||
bhs.s .done
|
||||
clr.l (a0)+
|
||||
bra.s clear
|
||||
.done:
|
||||
rts
|
||||
|
||||
unhandled_exception:
|
||||
bra.s *
|
||||
|
||||
timer_irq:
|
||||
jsr _tick
|
||||
rte
|
||||
Loading…
Add table
Add a link
Reference in a new issue