summaryrefslogtreecommitdiffstats
path: root/sw/z80/crt0.s
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sw/z80/crt0.s30
-rw-r--r--sw/z80/crt0.s.old43
2 files changed, 30 insertions, 43 deletions
diff --git a/sw/z80/crt0.s b/sw/z80/crt0.s
new file mode 100644
index 0000000..d0ae3ca
--- /dev/null
+++ b/sw/z80/crt0.s
@@ -0,0 +1,30 @@
+ .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 0x100
+
+init:
+ ;; set stack
+ ld sp,#0xFFFF
+
+ ;; call C main function
+ call _main
+
+.globl _main
diff --git a/sw/z80/crt0.s.old b/sw/z80/crt0.s.old
deleted file mode 100644
index f3bf8e8..0000000
--- a/sw/z80/crt0.s.old
+++ /dev/null
@@ -1,43 +0,0 @@
- .module crt0
- .globl _main
-
- .area _HEADER (ABS)
-;; reset vector
- .org 0x0000
- jp init
-
- .org 0x0100
-
-init:
-;; Stack at the top of memory.
- ld sp,#0xffff
-
- ;; initialise global variables
- call gsinit
- call _main
- jp _exit
-
- ;; Ordering of segments for the linker.
- .area _HOME
- .area _CODE
- .area _GSINIT
- .area _GSFINAL
-
- .area _DATA
- .area _BSS
- .area _HEAP
-
- .area _CODE
-__clock::
- ret
-
-_exit::
- ret
-
- .area _GSINIT
-
-gsinit::
-
-.area _GSFINAL
- ret
-