summaryrefslogtreecommitdiffstats
path: root/sw/z80/tests/ram/crt0.s
diff options
context:
space:
mode:
Diffstat (limited to 'sw/z80/tests/ram/crt0.s')
-rw-r--r--sw/z80/tests/ram/crt0.s41
1 files changed, 14 insertions, 27 deletions
diff --git a/sw/z80/tests/ram/crt0.s b/sw/z80/tests/ram/crt0.s
index d775e66..b0caa8c 100644
--- a/sw/z80/tests/ram/crt0.s
+++ b/sw/z80/tests/ram/crt0.s
@@ -1,38 +1,30 @@
.module crt0
- .globl _main
-
.area _HEADER (ABS)
- ;; Reset vector
+
+;; Reset vectors
.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
- reti
+ .org 0x38 ; the instruction 0xff (not written) resets to this location
+ jp init
+;; main code
.org 0x100
+ .globl _main
+
init:
;; Set stack pointer directly above top of memory.
- ld sp,#0xFFFF
+ ld sp,#0xffff
;; Start of the program
call _main
jp _exit
- ;; Ordering of segments for the linker.
+_exit:
+ halt
+ jp _exit
+
+;; Ordering of segments for the linker.
.area _HOME
.area _CODE
.area _INITIALIZER
@@ -45,9 +37,4 @@ init:
.area _BSS
.area _HEAP
- .area _CODE
-
-_exit::
-1$:
- halt
- jr 1$
+ .area _CODE \ No newline at end of file