--- /dev/null
+
+ .text
+
+! Master Vector Base Table at 0x06000000
+
+ .long mstart /* Cold Start PC */
+ .long 0x06040000 /* Cold Start SP */
+ .long mstart /* Manual Reset PC */
+ .long 0x06040000 /* Manual Reset SP */
+ .long main_err /* Illegal instruction */
+ .long 0x00000000 /* reserved */
+ .long main_err /* Invalid slot instruction */
+ .long 0x20100400 /* reserved */
+ .long 0x20100420 /* reserved */
+ .long main_err /* CPU address error */
+ .long main_err /* DMA address error */
+ .long main_err /* NMI vector */
+ .long main_err /* User break vector */
+ .space 76 /* reserved */
+ .long main_err /* TRAPA #32 */
+ .long main_err /* TRAPA #33 */
+ .long main_err /* TRAPA #34 */
+ .long main_err /* TRAPA #35 */
+ .long main_err /* TRAPA #36 */
+ .long main_err /* TRAPA #37 */
+ .long main_err /* TRAPA #38 */
+ .long main_err /* TRAPA #39 */
+ .long main_err /* TRAPA #40 */
+ .long main_err /* TRAPA #41 */
+ .long main_err /* TRAPA #42 */
+ .long main_err /* TRAPA #43 */
+ .long main_err /* TRAPA #44 */
+ .long main_err /* TRAPA #45 */
+ .long main_err /* TRAPA #46 */
+ .long main_err /* TRAPA #47 */
+ .long main_err /* TRAPA #48 */
+ .long main_err /* TRAPA #49 */
+ .long main_err /* TRAPA #50 */
+ .long main_err /* TRAPA #51 */
+ .long main_err /* TRAPA #52 */
+ .long main_err /* TRAPA #53 */
+ .long main_err /* TRAPA #54 */
+ .long main_err /* TRAPA #55 */
+ .long main_err /* TRAPA #56 */
+ .long main_err /* TRAPA #57 */
+ .long main_err /* TRAPA #58 */
+ .long main_err /* TRAPA #59 */
+ .long main_err /* TRAPA #60 */
+ .long main_err /* TRAPA #61 */
+ .long main_err /* TRAPA #62 */
+ .long main_err /* TRAPA #63 */
+ .long main_irq /* Level 1 IRQ */
+ .long main_irq /* Level 2 & 3 IRQ's */
+ .long main_irq /* Level 4 & 5 IRQ's */
+ .long main_irq /* PWM interupt */
+ .long main_irq /* Command interupt */
+ .long main_irq /* H Blank interupt */
+ .long main_irq /* V Blank interupt */
+ .long main_irq /* Reset Button */
+ .long main_irq /* DMA1 TE INT */
+
+! Slave Vector Base Table at 0x06000124
+
+ .long sstart /* Cold Start PC */
+ .long 0x0603f800 /* Cold Start SP */
+ .long sstart /* Manual Reset PC */
+ .long 0x0603f800 /* Manual Reset SP */
+ .long slav_err /* Illegal instruction */
+ .long 0x00000000 /* reserved */
+ .long slav_err /* Invalid slot instruction */
+ .long 0x20100400 /* reserved */
+ .long 0x20100420 /* reserved */
+ .long slav_err /* CPU address error */
+ .long slav_err /* DMA address error */
+ .long slav_err /* NMI vector */
+ .long slav_err /* User break vector */
+ .space 76 /* reserved */
+ .long slav_err /* TRAPA #32 */
+ .long slav_err /* TRAPA #33 */
+ .long slav_err /* TRAPA #34 */
+ .long slav_err /* TRAPA #35 */
+ .long slav_err /* TRAPA #36 */
+ .long slav_err /* TRAPA #37 */
+ .long slav_err /* TRAPA #38 */
+ .long slav_err /* TRAPA #39 */
+ .long slav_err /* TRAPA #40 */
+ .long slav_err /* TRAPA #41 */
+ .long slav_err /* TRAPA #42 */
+ .long slav_err /* TRAPA #43 */
+ .long slav_err /* TRAPA #44 */
+ .long slav_err /* TRAPA #45 */
+ .long slav_err /* TRAPA #46 */
+ .long slav_err /* TRAPA #47 */
+ .long slav_err /* TRAPA #48 */
+ .long slav_err /* TRAPA #49 */
+ .long slav_err /* TRAPA #50 */
+ .long slav_err /* TRAPA #51 */
+ .long slav_err /* TRAPA #52 */
+ .long slav_err /* TRAPA #53 */
+ .long slav_err /* TRAPA #54 */
+ .long slav_err /* TRAPA #55 */
+ .long slav_err /* TRAPA #56 */
+ .long slav_err /* TRAPA #57 */
+ .long slav_err /* TRAPA #58 */
+ .long slav_err /* TRAPA #59 */
+ .long slav_err /* TRAPA #60 */
+ .long slav_err /* TRAPA #61 */
+ .long slav_err /* TRAPA #62 */
+ .long slav_err /* TRAPA #63 */
+ .long slav_irq /* Level 1 IRQ */
+ .long slav_irq /* Level 2 & 3 IRQ's */
+ .long slav_irq /* Level 4 & 5 IRQ's */
+ .long slav_irq /* PWM interupt */
+ .long slav_irq /* Command interupt */
+ .long slav_irq /* H Blank interupt */
+ .long slav_irq /* V Blank interupt */
+ .long slav_irq /* Reset Button */
+
+! Stacks set up by BIOS
+
+! The main SH2 starts here at 0x06000244
+
+mstart:
+ bra mcont
+ mov #0, r4
+
+! The slave SH2 starts here at 0x06000248
+
+sstart:
+ sleep
+! broken
+ bra xstart
+ mov #1, r4
+
+mcont:
+
+xstart:
+ mov.l l_cctl, r0
+ mov #0x11, r1
+ mov.b r1, @r0
+ mov.l l_main_c, r0
+ jmp @r0
+ nop
+
+.align 2
+l_cctl:
+ .long 0xFFFFFE92
+l_main_c:
+ .long _main_c
+
+! dummy
+.global _start
+_start:
+
+.global _spin
+_spin:
+ dt r4
+ bf _spin
+ rts
+ nop
+
+main_err:
+main_irq:
+slav_err:
+slav_irq:
+0:
+ bra 0b
+ nop
+
+! vim:ts=8:sw=8:expandtab