3ee911dc |
1 | exc_tab:\r |
2 | dc.l 0, 0x200, exc02, exc03, exc04, exc05, exc06, exc07\r |
3 | dc.l exc08, exc09, exc0a, exc0b, exc0c, exc0d, exc0e, exc0f\r |
4 | dc.l exc10, exc11, exc12, exc13, exc14, exc15, exc16, exc17\r |
5 | dc.l exc18, exc19, exc1a, exc1b, HBL, exc1d, VBL, exc1f\r |
6 | dc.l exc20, exc21, exc22, exc23, exc24, exc25, exc26, exc27\r |
7 | dc.l exc28, exc29, exc2a, exc2b, exc2c, exc2d, exc2e, exc2f\r |
8 | dc.l exc30, exc31, exc32, exc33, exc34, exc35, exc3e, exc37\r |
9 | dc.l exc38, exc39, exc3a, exc3b, exc3c, exc3d, exc3e, exc3f\r |
10 | \r |
11 | .ascii "SEGA GENESIS "\r |
12 | .ascii "SRAM test "\r |
13 | .ascii "SRAM test "\r |
14 | .ascii "GM 00000000-00"\r |
15 | .byte 0x00,0x00\r |
16 | .ascii "J "\r |
b40440c4 |
17 | dc.l 0x000000,0x3fffff\r |
18 | dc.l 0xff0000,0xffffff\r |
3ee911dc |
19 | .ascii "RA"; .byte 0xf8,0x20 /* 1b0 */\r |
b40440c4 |
20 | /* retrode compat: wants odd and <= 0xffff */\r |
21 | dc.l 0x200001,0x20ffff /* 1b4 */\r |
3ee911dc |
22 | .ascii " " /* 1bc */\r |
23 | .ascii " " /* 1c0 */\r |
24 | .ascii " "\r |
25 | .ascii "JUE " /* 1f0 */\r |
26 | \r |
27 | RST:\r |
28 | move.w #0x2700, %sr\r |
29 | \r |
30 | move.b (0xA10001), %d0\r |
31 | andi.b #0x0F, %d0\r |
32 | beq.s 0f\r |
33 | move.l #0x53454741, (0xA14000) /* 'SEGA' */\r |
34 | 0:\r |
35 | tst.w (0xc00004).l\r |
36 | \r |
37 | moveq #0, %d0\r |
38 | movea.l %d0, %a7\r |
39 | move %a7, %usp\r |
40 | # move.w #0x2000, %sr\r |
41 | jsr main\r |
42 | 0:\r |
43 | bra 0b\r |
44 | \r |
45 | #HBL:\r |
46 | #VBL:\r |
47 | # rte\r |
48 | \r |
49 | pre_exception:\r |
50 | move.w #0x2700, %sr\r |
51 | movem.l %d0-%d7/%a0-%a7,-(%sp)\r |
52 | move.l %sp, %d0\r |
53 | move.l %d0,-(%sp)\r |
54 | jsr exception\r |
55 | 0:\r |
56 | bra 0b\r |
57 | \r |
58 | .macro exc_stub num\r |
59 | exc\num:\r |
60 | move.w #0x\num, -(%sp)\r |
61 | jmp pre_exception\r |
62 | .endm\r |
63 | \r |
64 | exc_stub 02\r |
65 | exc_stub 03\r |
66 | exc_stub 04\r |
67 | exc_stub 05\r |
68 | exc_stub 06\r |
69 | exc_stub 07\r |
70 | exc_stub 08\r |
71 | exc_stub 09\r |
72 | exc_stub 0a\r |
73 | exc_stub 0b\r |
74 | exc_stub 0c\r |
75 | exc_stub 0d\r |
76 | exc_stub 0e\r |
77 | exc_stub 0f\r |
78 | exc_stub 10\r |
79 | exc_stub 11\r |
80 | exc_stub 12\r |
81 | exc_stub 13\r |
82 | exc_stub 14\r |
83 | exc_stub 15\r |
84 | exc_stub 16\r |
85 | exc_stub 17\r |
86 | exc_stub 18\r |
87 | exc_stub 19\r |
88 | exc_stub 1a\r |
89 | exc_stub 1b\r |
90 | HBL:\r |
91 | exc_stub 1c\r |
92 | exc_stub 1d\r |
93 | VBL:\r |
94 | exc_stub 1e\r |
95 | exc_stub 1f\r |
96 | exc_stub 20\r |
97 | exc_stub 21\r |
98 | exc_stub 22\r |
99 | exc_stub 23\r |
100 | exc_stub 24\r |
101 | exc_stub 25\r |
102 | exc_stub 26\r |
103 | exc_stub 27\r |
104 | exc_stub 28\r |
105 | exc_stub 29\r |
106 | exc_stub 2a\r |
107 | exc_stub 2b\r |
108 | exc_stub 2c\r |
109 | exc_stub 2d\r |
110 | exc_stub 2e\r |
111 | exc_stub 2f\r |
112 | exc_stub 30\r |
113 | exc_stub 31\r |
114 | exc_stub 32\r |
115 | exc_stub 33\r |
116 | exc_stub 34\r |
117 | exc_stub 35\r |
118 | exc_stub 36\r |
119 | exc_stub 37\r |
120 | exc_stub 38\r |
121 | exc_stub 39\r |
122 | exc_stub 3a\r |
123 | exc_stub 3b\r |
124 | exc_stub 3c\r |
125 | exc_stub 3d\r |
126 | exc_stub 3e\r |
127 | exc_stub 3f\r |
128 | \r |
129 | # vim:filetype=asmM68k:ts=4:sw=4:expandtab\r |