[6128a4a] | 1 | /* |
---|
[b812f84] | 2 | * $Id$ |
---|
| 3 | * |
---|
| 4 | * Re-written the gen68302 start-up code. |
---|
[6128a4a] | 5 | * |
---|
[b812f84] | 6 | * Uses gas syntax only, removed the OAR asm.h. |
---|
[6128a4a] | 7 | * |
---|
[b812f84] | 8 | * Supplies a complete vector table in ROM. |
---|
[6128a4a] | 9 | * |
---|
[b812f84] | 10 | * Manages all vectors with seperate handlers to trap unhandled |
---|
| 11 | * execptions. |
---|
[6128a4a] | 12 | * |
---|
| 13 | * Uses the target specific header file to get the runtime |
---|
[b812f84] | 14 | * configuration |
---|
[6128a4a] | 15 | * |
---|
[b812f84] | 16 | * COPYRIGHT (c) 1996 |
---|
| 17 | * Objective Design Systems Pty Ltd (ODS) |
---|
[6128a4a] | 18 | * |
---|
[b812f84] | 19 | * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. |
---|
| 20 | * On-Line Applications Research Corporation (OAR). |
---|
| 21 | * |
---|
| 22 | */ |
---|
| 23 | |
---|
| 24 | #define STACK_AT_RESET 0x0 |
---|
| 25 | |
---|
| 26 | | |
---|
| 27 | | Boot boot code in a special section, ld postions |
---|
| 28 | | |
---|
| 29 | | Initial stack pointer is in the dual ported RAM |
---|
| 30 | | |
---|
| 31 | .sect .text |
---|
| 32 | |
---|
| 33 | .global _start | program entry |
---|
| 34 | .global M68Kvec | Vector Table |
---|
[6128a4a] | 35 | |
---|
[b812f84] | 36 | _start: | standard name for program entry |
---|
| 37 | M68Kvec: | standard location for vectors |
---|
[6128a4a] | 38 | |
---|
[b812f84] | 39 | | |
---|
| 40 | | Make relative, can have the code positioned any where |
---|
| 41 | | |
---|
| 42 | |
---|
| 43 | V___ISSP: .long STACK_AT_RESET |
---|
| 44 | V____IPC: .long start - V___ISSP |
---|
[6128a4a] | 45 | |
---|
[b812f84] | 46 | | |
---|
| 47 | | Create the rest of the vector table to point to the unhandled expection |
---|
| 48 | | handler |
---|
| 49 | | |
---|
| 50 | | Lots of macros, how-ever it creates a simple ROM vector table |
---|
| 51 | | |
---|
| 52 | |
---|
[37b2f34] | 53 | #if defined(__mcpu32__) |
---|
[7f9bee00] | 54 | .space 1016 | reserve space for rest of vectors |
---|
| 55 | #else |
---|
[b812f84] | 56 | #define MAKE_EXCEPTION_VECTOR(n) V___##n: .long (_CPU_ISR_jump_table + (n * 10)) |
---|
| 57 | |
---|
| 58 | MAKE_EXCEPTION_VECTOR(2) |
---|
| 59 | MAKE_EXCEPTION_VECTOR(3) |
---|
| 60 | MAKE_EXCEPTION_VECTOR(4) |
---|
| 61 | MAKE_EXCEPTION_VECTOR(5) |
---|
| 62 | MAKE_EXCEPTION_VECTOR(6) |
---|
| 63 | MAKE_EXCEPTION_VECTOR(7) |
---|
| 64 | MAKE_EXCEPTION_VECTOR(8) |
---|
| 65 | MAKE_EXCEPTION_VECTOR(9) |
---|
[6128a4a] | 66 | |
---|
[b812f84] | 67 | MAKE_EXCEPTION_VECTOR(10) |
---|
| 68 | MAKE_EXCEPTION_VECTOR(11) |
---|
| 69 | MAKE_EXCEPTION_VECTOR(12) |
---|
| 70 | MAKE_EXCEPTION_VECTOR(13) |
---|
| 71 | MAKE_EXCEPTION_VECTOR(14) |
---|
| 72 | MAKE_EXCEPTION_VECTOR(15) |
---|
| 73 | MAKE_EXCEPTION_VECTOR(16) |
---|
| 74 | MAKE_EXCEPTION_VECTOR(17) |
---|
| 75 | MAKE_EXCEPTION_VECTOR(18) |
---|
| 76 | MAKE_EXCEPTION_VECTOR(19) |
---|
| 77 | |
---|
| 78 | MAKE_EXCEPTION_VECTOR(20) |
---|
| 79 | MAKE_EXCEPTION_VECTOR(21) |
---|
| 80 | MAKE_EXCEPTION_VECTOR(22) |
---|
| 81 | MAKE_EXCEPTION_VECTOR(23) |
---|
| 82 | MAKE_EXCEPTION_VECTOR(24) |
---|
| 83 | MAKE_EXCEPTION_VECTOR(25) |
---|
| 84 | MAKE_EXCEPTION_VECTOR(26) |
---|
| 85 | MAKE_EXCEPTION_VECTOR(27) |
---|
| 86 | MAKE_EXCEPTION_VECTOR(28) |
---|
| 87 | MAKE_EXCEPTION_VECTOR(29) |
---|
[6128a4a] | 88 | |
---|
[b812f84] | 89 | MAKE_EXCEPTION_VECTOR(30) |
---|
| 90 | MAKE_EXCEPTION_VECTOR(31) |
---|
| 91 | MAKE_EXCEPTION_VECTOR(32) |
---|
| 92 | MAKE_EXCEPTION_VECTOR(33) |
---|
| 93 | MAKE_EXCEPTION_VECTOR(34) |
---|
| 94 | MAKE_EXCEPTION_VECTOR(35) |
---|
| 95 | MAKE_EXCEPTION_VECTOR(36) |
---|
| 96 | MAKE_EXCEPTION_VECTOR(37) |
---|
| 97 | MAKE_EXCEPTION_VECTOR(38) |
---|
| 98 | MAKE_EXCEPTION_VECTOR(39) |
---|
[6128a4a] | 99 | |
---|
[b812f84] | 100 | MAKE_EXCEPTION_VECTOR(40) |
---|
| 101 | MAKE_EXCEPTION_VECTOR(41) |
---|
| 102 | MAKE_EXCEPTION_VECTOR(42) |
---|
| 103 | MAKE_EXCEPTION_VECTOR(43) |
---|
| 104 | MAKE_EXCEPTION_VECTOR(44) |
---|
| 105 | MAKE_EXCEPTION_VECTOR(45) |
---|
| 106 | MAKE_EXCEPTION_VECTOR(46) |
---|
| 107 | MAKE_EXCEPTION_VECTOR(47) |
---|
| 108 | MAKE_EXCEPTION_VECTOR(48) |
---|
| 109 | MAKE_EXCEPTION_VECTOR(49) |
---|
[6128a4a] | 110 | |
---|
[b812f84] | 111 | MAKE_EXCEPTION_VECTOR(50) |
---|
| 112 | MAKE_EXCEPTION_VECTOR(51) |
---|
| 113 | MAKE_EXCEPTION_VECTOR(52) |
---|
| 114 | MAKE_EXCEPTION_VECTOR(53) |
---|
| 115 | MAKE_EXCEPTION_VECTOR(54) |
---|
| 116 | MAKE_EXCEPTION_VECTOR(55) |
---|
| 117 | MAKE_EXCEPTION_VECTOR(56) |
---|
| 118 | MAKE_EXCEPTION_VECTOR(57) |
---|
| 119 | MAKE_EXCEPTION_VECTOR(58) |
---|
| 120 | MAKE_EXCEPTION_VECTOR(59) |
---|
[6128a4a] | 121 | |
---|
[b812f84] | 122 | MAKE_EXCEPTION_VECTOR(60) |
---|
| 123 | MAKE_EXCEPTION_VECTOR(61) |
---|
| 124 | MAKE_EXCEPTION_VECTOR(62) |
---|
| 125 | MAKE_EXCEPTION_VECTOR(63) |
---|
| 126 | MAKE_EXCEPTION_VECTOR(64) |
---|
| 127 | MAKE_EXCEPTION_VECTOR(65) |
---|
| 128 | MAKE_EXCEPTION_VECTOR(66) |
---|
| 129 | MAKE_EXCEPTION_VECTOR(67) |
---|
| 130 | MAKE_EXCEPTION_VECTOR(68) |
---|
| 131 | MAKE_EXCEPTION_VECTOR(69) |
---|
[6128a4a] | 132 | |
---|
[b812f84] | 133 | MAKE_EXCEPTION_VECTOR(70) |
---|
| 134 | MAKE_EXCEPTION_VECTOR(71) |
---|
| 135 | MAKE_EXCEPTION_VECTOR(72) |
---|
| 136 | MAKE_EXCEPTION_VECTOR(73) |
---|
| 137 | MAKE_EXCEPTION_VECTOR(74) |
---|
| 138 | MAKE_EXCEPTION_VECTOR(75) |
---|
| 139 | MAKE_EXCEPTION_VECTOR(76) |
---|
| 140 | MAKE_EXCEPTION_VECTOR(77) |
---|
| 141 | MAKE_EXCEPTION_VECTOR(78) |
---|
| 142 | MAKE_EXCEPTION_VECTOR(79) |
---|
[6128a4a] | 143 | |
---|
[b812f84] | 144 | MAKE_EXCEPTION_VECTOR(80) |
---|
| 145 | MAKE_EXCEPTION_VECTOR(81) |
---|
| 146 | MAKE_EXCEPTION_VECTOR(82) |
---|
| 147 | MAKE_EXCEPTION_VECTOR(83) |
---|
| 148 | MAKE_EXCEPTION_VECTOR(84) |
---|
| 149 | MAKE_EXCEPTION_VECTOR(85) |
---|
| 150 | MAKE_EXCEPTION_VECTOR(86) |
---|
| 151 | MAKE_EXCEPTION_VECTOR(87) |
---|
| 152 | MAKE_EXCEPTION_VECTOR(88) |
---|
| 153 | MAKE_EXCEPTION_VECTOR(89) |
---|
[6128a4a] | 154 | |
---|
[b812f84] | 155 | MAKE_EXCEPTION_VECTOR(90) |
---|
| 156 | MAKE_EXCEPTION_VECTOR(91) |
---|
| 157 | MAKE_EXCEPTION_VECTOR(92) |
---|
| 158 | MAKE_EXCEPTION_VECTOR(93) |
---|
| 159 | MAKE_EXCEPTION_VECTOR(94) |
---|
| 160 | MAKE_EXCEPTION_VECTOR(95) |
---|
| 161 | MAKE_EXCEPTION_VECTOR(96) |
---|
| 162 | MAKE_EXCEPTION_VECTOR(97) |
---|
| 163 | MAKE_EXCEPTION_VECTOR(98) |
---|
| 164 | MAKE_EXCEPTION_VECTOR(99) |
---|
[6128a4a] | 165 | |
---|
[b812f84] | 166 | MAKE_EXCEPTION_VECTOR(100) |
---|
| 167 | MAKE_EXCEPTION_VECTOR(101) |
---|
| 168 | MAKE_EXCEPTION_VECTOR(102) |
---|
| 169 | MAKE_EXCEPTION_VECTOR(103) |
---|
| 170 | MAKE_EXCEPTION_VECTOR(104) |
---|
| 171 | MAKE_EXCEPTION_VECTOR(105) |
---|
| 172 | MAKE_EXCEPTION_VECTOR(106) |
---|
| 173 | MAKE_EXCEPTION_VECTOR(107) |
---|
| 174 | MAKE_EXCEPTION_VECTOR(108) |
---|
| 175 | MAKE_EXCEPTION_VECTOR(109) |
---|
[6128a4a] | 176 | |
---|
[b812f84] | 177 | MAKE_EXCEPTION_VECTOR(110) |
---|
| 178 | MAKE_EXCEPTION_VECTOR(111) |
---|
| 179 | MAKE_EXCEPTION_VECTOR(112) |
---|
| 180 | MAKE_EXCEPTION_VECTOR(113) |
---|
| 181 | MAKE_EXCEPTION_VECTOR(114) |
---|
| 182 | MAKE_EXCEPTION_VECTOR(115) |
---|
| 183 | MAKE_EXCEPTION_VECTOR(116) |
---|
| 184 | MAKE_EXCEPTION_VECTOR(117) |
---|
| 185 | MAKE_EXCEPTION_VECTOR(118) |
---|
| 186 | MAKE_EXCEPTION_VECTOR(119) |
---|
| 187 | |
---|
| 188 | MAKE_EXCEPTION_VECTOR(120) |
---|
| 189 | MAKE_EXCEPTION_VECTOR(121) |
---|
| 190 | MAKE_EXCEPTION_VECTOR(122) |
---|
| 191 | MAKE_EXCEPTION_VECTOR(123) |
---|
| 192 | MAKE_EXCEPTION_VECTOR(124) |
---|
| 193 | MAKE_EXCEPTION_VECTOR(125) |
---|
| 194 | MAKE_EXCEPTION_VECTOR(126) |
---|
| 195 | MAKE_EXCEPTION_VECTOR(127) |
---|
| 196 | MAKE_EXCEPTION_VECTOR(128) |
---|
| 197 | MAKE_EXCEPTION_VECTOR(129) |
---|
[6128a4a] | 198 | |
---|
[b812f84] | 199 | MAKE_EXCEPTION_VECTOR(130) |
---|
| 200 | MAKE_EXCEPTION_VECTOR(131) |
---|
| 201 | MAKE_EXCEPTION_VECTOR(132) |
---|
| 202 | MAKE_EXCEPTION_VECTOR(133) |
---|
| 203 | MAKE_EXCEPTION_VECTOR(134) |
---|
| 204 | MAKE_EXCEPTION_VECTOR(135) |
---|
| 205 | MAKE_EXCEPTION_VECTOR(136) |
---|
| 206 | MAKE_EXCEPTION_VECTOR(137) |
---|
| 207 | MAKE_EXCEPTION_VECTOR(138) |
---|
| 208 | MAKE_EXCEPTION_VECTOR(139) |
---|
[6128a4a] | 209 | |
---|
[b812f84] | 210 | MAKE_EXCEPTION_VECTOR(140) |
---|
| 211 | MAKE_EXCEPTION_VECTOR(141) |
---|
| 212 | MAKE_EXCEPTION_VECTOR(142) |
---|
| 213 | MAKE_EXCEPTION_VECTOR(143) |
---|
| 214 | MAKE_EXCEPTION_VECTOR(144) |
---|
| 215 | MAKE_EXCEPTION_VECTOR(145) |
---|
| 216 | MAKE_EXCEPTION_VECTOR(146) |
---|
| 217 | MAKE_EXCEPTION_VECTOR(147) |
---|
| 218 | MAKE_EXCEPTION_VECTOR(148) |
---|
| 219 | MAKE_EXCEPTION_VECTOR(149) |
---|
[6128a4a] | 220 | |
---|
[b812f84] | 221 | MAKE_EXCEPTION_VECTOR(150) |
---|
| 222 | MAKE_EXCEPTION_VECTOR(151) |
---|
| 223 | MAKE_EXCEPTION_VECTOR(152) |
---|
| 224 | MAKE_EXCEPTION_VECTOR(153) |
---|
| 225 | MAKE_EXCEPTION_VECTOR(154) |
---|
| 226 | MAKE_EXCEPTION_VECTOR(155) |
---|
| 227 | MAKE_EXCEPTION_VECTOR(156) |
---|
| 228 | MAKE_EXCEPTION_VECTOR(157) |
---|
| 229 | MAKE_EXCEPTION_VECTOR(158) |
---|
| 230 | MAKE_EXCEPTION_VECTOR(159) |
---|
[6128a4a] | 231 | |
---|
[b812f84] | 232 | MAKE_EXCEPTION_VECTOR(160) |
---|
| 233 | MAKE_EXCEPTION_VECTOR(161) |
---|
| 234 | MAKE_EXCEPTION_VECTOR(162) |
---|
| 235 | MAKE_EXCEPTION_VECTOR(163) |
---|
| 236 | MAKE_EXCEPTION_VECTOR(164) |
---|
| 237 | MAKE_EXCEPTION_VECTOR(165) |
---|
| 238 | MAKE_EXCEPTION_VECTOR(166) |
---|
| 239 | MAKE_EXCEPTION_VECTOR(167) |
---|
| 240 | MAKE_EXCEPTION_VECTOR(168) |
---|
| 241 | MAKE_EXCEPTION_VECTOR(169) |
---|
[6128a4a] | 242 | |
---|
[b812f84] | 243 | MAKE_EXCEPTION_VECTOR(170) |
---|
| 244 | MAKE_EXCEPTION_VECTOR(171) |
---|
| 245 | MAKE_EXCEPTION_VECTOR(172) |
---|
| 246 | MAKE_EXCEPTION_VECTOR(173) |
---|
| 247 | MAKE_EXCEPTION_VECTOR(174) |
---|
| 248 | MAKE_EXCEPTION_VECTOR(175) |
---|
| 249 | MAKE_EXCEPTION_VECTOR(176) |
---|
| 250 | MAKE_EXCEPTION_VECTOR(177) |
---|
| 251 | MAKE_EXCEPTION_VECTOR(178) |
---|
| 252 | MAKE_EXCEPTION_VECTOR(179) |
---|
[6128a4a] | 253 | |
---|
[b812f84] | 254 | MAKE_EXCEPTION_VECTOR(180) |
---|
| 255 | MAKE_EXCEPTION_VECTOR(181) |
---|
| 256 | MAKE_EXCEPTION_VECTOR(182) |
---|
| 257 | MAKE_EXCEPTION_VECTOR(183) |
---|
| 258 | MAKE_EXCEPTION_VECTOR(184) |
---|
| 259 | MAKE_EXCEPTION_VECTOR(185) |
---|
| 260 | MAKE_EXCEPTION_VECTOR(186) |
---|
| 261 | MAKE_EXCEPTION_VECTOR(187) |
---|
| 262 | MAKE_EXCEPTION_VECTOR(188) |
---|
| 263 | MAKE_EXCEPTION_VECTOR(189) |
---|
[6128a4a] | 264 | |
---|
[b812f84] | 265 | MAKE_EXCEPTION_VECTOR(190) |
---|
| 266 | MAKE_EXCEPTION_VECTOR(191) |
---|
| 267 | MAKE_EXCEPTION_VECTOR(192) |
---|
| 268 | MAKE_EXCEPTION_VECTOR(193) |
---|
| 269 | MAKE_EXCEPTION_VECTOR(194) |
---|
| 270 | MAKE_EXCEPTION_VECTOR(195) |
---|
| 271 | MAKE_EXCEPTION_VECTOR(196) |
---|
| 272 | MAKE_EXCEPTION_VECTOR(197) |
---|
| 273 | MAKE_EXCEPTION_VECTOR(198) |
---|
| 274 | MAKE_EXCEPTION_VECTOR(199) |
---|
[6128a4a] | 275 | |
---|
[b812f84] | 276 | MAKE_EXCEPTION_VECTOR(200) |
---|
| 277 | MAKE_EXCEPTION_VECTOR(201) |
---|
| 278 | MAKE_EXCEPTION_VECTOR(202) |
---|
| 279 | MAKE_EXCEPTION_VECTOR(203) |
---|
| 280 | MAKE_EXCEPTION_VECTOR(204) |
---|
| 281 | MAKE_EXCEPTION_VECTOR(205) |
---|
| 282 | MAKE_EXCEPTION_VECTOR(206) |
---|
| 283 | MAKE_EXCEPTION_VECTOR(207) |
---|
| 284 | MAKE_EXCEPTION_VECTOR(208) |
---|
| 285 | MAKE_EXCEPTION_VECTOR(209) |
---|
[6128a4a] | 286 | |
---|
[b812f84] | 287 | MAKE_EXCEPTION_VECTOR(210) |
---|
| 288 | MAKE_EXCEPTION_VECTOR(211) |
---|
| 289 | MAKE_EXCEPTION_VECTOR(212) |
---|
| 290 | MAKE_EXCEPTION_VECTOR(213) |
---|
| 291 | MAKE_EXCEPTION_VECTOR(214) |
---|
| 292 | MAKE_EXCEPTION_VECTOR(215) |
---|
| 293 | MAKE_EXCEPTION_VECTOR(216) |
---|
| 294 | MAKE_EXCEPTION_VECTOR(217) |
---|
| 295 | MAKE_EXCEPTION_VECTOR(218) |
---|
| 296 | MAKE_EXCEPTION_VECTOR(219) |
---|
[6128a4a] | 297 | |
---|
[b812f84] | 298 | MAKE_EXCEPTION_VECTOR(220) |
---|
| 299 | MAKE_EXCEPTION_VECTOR(221) |
---|
| 300 | MAKE_EXCEPTION_VECTOR(222) |
---|
| 301 | MAKE_EXCEPTION_VECTOR(223) |
---|
| 302 | MAKE_EXCEPTION_VECTOR(224) |
---|
| 303 | MAKE_EXCEPTION_VECTOR(225) |
---|
| 304 | MAKE_EXCEPTION_VECTOR(226) |
---|
| 305 | MAKE_EXCEPTION_VECTOR(227) |
---|
| 306 | MAKE_EXCEPTION_VECTOR(228) |
---|
| 307 | MAKE_EXCEPTION_VECTOR(229) |
---|
[6128a4a] | 308 | |
---|
[b812f84] | 309 | MAKE_EXCEPTION_VECTOR(230) |
---|
| 310 | MAKE_EXCEPTION_VECTOR(231) |
---|
| 311 | MAKE_EXCEPTION_VECTOR(232) |
---|
| 312 | MAKE_EXCEPTION_VECTOR(233) |
---|
| 313 | MAKE_EXCEPTION_VECTOR(234) |
---|
| 314 | MAKE_EXCEPTION_VECTOR(235) |
---|
| 315 | MAKE_EXCEPTION_VECTOR(236) |
---|
| 316 | MAKE_EXCEPTION_VECTOR(237) |
---|
| 317 | MAKE_EXCEPTION_VECTOR(238) |
---|
| 318 | MAKE_EXCEPTION_VECTOR(239) |
---|
[6128a4a] | 319 | |
---|
[b812f84] | 320 | MAKE_EXCEPTION_VECTOR(240) |
---|
| 321 | MAKE_EXCEPTION_VECTOR(241) |
---|
| 322 | MAKE_EXCEPTION_VECTOR(242) |
---|
| 323 | MAKE_EXCEPTION_VECTOR(243) |
---|
| 324 | MAKE_EXCEPTION_VECTOR(244) |
---|
| 325 | MAKE_EXCEPTION_VECTOR(245) |
---|
| 326 | MAKE_EXCEPTION_VECTOR(246) |
---|
| 327 | MAKE_EXCEPTION_VECTOR(247) |
---|
| 328 | MAKE_EXCEPTION_VECTOR(248) |
---|
| 329 | MAKE_EXCEPTION_VECTOR(249) |
---|
[6128a4a] | 330 | |
---|
[b812f84] | 331 | MAKE_EXCEPTION_VECTOR(250) |
---|
| 332 | MAKE_EXCEPTION_VECTOR(251) |
---|
| 333 | MAKE_EXCEPTION_VECTOR(252) |
---|
| 334 | MAKE_EXCEPTION_VECTOR(253) |
---|
| 335 | MAKE_EXCEPTION_VECTOR(254) |
---|
[6128a4a] | 336 | MAKE_EXCEPTION_VECTOR(255) |
---|
[1d2cfc0] | 337 | #endif |
---|
[b812f84] | 338 | |
---|
| 339 | | |
---|
| 340 | | Start |
---|
| 341 | | |
---|
| 342 | | Entered from a hardware reset. |
---|
| 343 | | |
---|
[6128a4a] | 344 | |
---|
[b812f84] | 345 | .global start | Default entry point for GNU |
---|
| 346 | start: |
---|
| 347 | |
---|
| 348 | | |
---|
| 349 | | Copy initialized data area from ROM to RAM |
---|
| 350 | | |
---|
| 351 | |
---|
| 352 | copy_data: |
---|
| 353 | moveal #_etext,%a0 | find the end of .text |
---|
| 354 | moveal #_copy_start,%a1 | find the beginning of .data |
---|
| 355 | moveal #_edata,%a2 | find the end of .data |
---|
[6128a4a] | 356 | |
---|
[b812f84] | 357 | copy_data_loop: |
---|
[6128a4a] | 358 | |
---|
[b812f84] | 359 | movel %a0@+,%a1@+ | copy the data |
---|
| 360 | cmpal %a2,%a1 |
---|
| 361 | jlt copy_data_loop | loop until edata reached |
---|
[6128a4a] | 362 | |
---|
[b812f84] | 363 | | |
---|
| 364 | | zero out uninitialized data area |
---|
| 365 | | |
---|
| 366 | |
---|
| 367 | zerobss: |
---|
| 368 | moveal #_clear_end,%a0 | find end of .bss |
---|
| 369 | moveal #_clear_start,%a1 | find beginning of .bss |
---|
| 370 | moveq #0,%d0 |
---|
[6128a4a] | 371 | |
---|
[b812f84] | 372 | zerobss_loop: |
---|
[6128a4a] | 373 | |
---|
[b812f84] | 374 | movel %d0,%a1@+ | to zero out uninitialized |
---|
| 375 | cmpal %a0,%a1 |
---|
| 376 | jlt zerobss_loop | loop until _end reached |
---|
| 377 | |
---|
| 378 | movel #_stack_init,%d0 | load stack top |
---|
| 379 | |
---|
| 380 | movw #0x3700,%sr | SUPV MODE,INTERRUPTS OFF!!! |
---|
| 381 | movel %d0,%a7 | set master stack pointer |
---|
| 382 | movel %d0,%a6 | set base pointer |
---|
| 383 | |
---|
| 384 | pea env | push environp |
---|
| 385 | pea arg | push argv |
---|
| 386 | movel #0,%a7@- | push argc |
---|
| 387 | jsr boot_card |
---|
| 388 | | if this returns, what do we do??? |
---|
| 389 | |
---|
| 390 | .global bsp_exitted |
---|
| 391 | bsp_exitted: |
---|
| 392 | jmp bsp_exitted |
---|
| 393 | |
---|
[6128a4a] | 394 | | |
---|
[b812f84] | 395 | | Initialised data |
---|
| 396 | | |
---|
| 397 | |
---|
| 398 | .sect .data |
---|
[6128a4a] | 399 | |
---|
[b812f84] | 400 | | |
---|
| 401 | | Uninitialised data |
---|
| 402 | | |
---|
| 403 | |
---|
| 404 | .sect .bss |
---|
[6128a4a] | 405 | |
---|
[b812f84] | 406 | env: .long 0 |
---|
| 407 | arg: .long 0 |
---|
| 408 | |
---|
| 409 | .global environ |
---|
| 410 | .align 2 |
---|
[6128a4a] | 411 | |
---|
[b812f84] | 412 | environ: |
---|
| 413 | .long env |
---|