diff options
Diffstat (limited to 'sw/z80_tests/ram/crt0.s')
-rw-r--r-- | sw/z80_tests/ram/crt0.s | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/sw/z80_tests/ram/crt0.s b/sw/z80_tests/ram/crt0.s new file mode 100644 index 0000000..ac0698f --- /dev/null +++ b/sw/z80_tests/ram/crt0.s @@ -0,0 +1,54 @@ + .module crt0 + .globl _main + + .area _HEADER (ABS) + ;; Reset vector + .org 0 + jp init + + .org 0x08 + reti + .org 0x10 + reti + .org 0x18 + reti + .org 0x20 + reti + .org 0x28 + reti + .org 0x30 + reti + .org 0x38 + reti + .org 0x66 + ld hl,#BEEF + reti + + .org 0x100 +init: + ;; Set stack pointer directly above top of memory. + ld sp,#0xFFFF + + ;; Start of the program + call _main + jp _exit + + ;; Ordering of segments for the linker. + .area _HOME + .area _CODE + .area _INITIALIZER + .area _GSINIT + .area _GSFINAL + + .area _DATA + .area _INITIALIZED + .area _BSEG + .area _BSS + .area _HEAP + + .area _CODE + +_exit:: +1$: + halt + jr 1$ |