aboutsummaryrefslogtreecommitdiffstats
path: root/c/crt0.s
diff options
context:
space:
mode:
Diffstat (limited to 'c/crt0.s')
-rw-r--r--c/crt0.s11
1 files changed, 11 insertions, 0 deletions
diff --git a/c/crt0.s b/c/crt0.s
new file mode 100644
index 0000000..cde4b67
--- /dev/null
+++ b/c/crt0.s
@@ -0,0 +1,11 @@
+ .module crt0
+ .globl _main
+ ;; gbos C entry. exec() maps our ROM bank and jumps to the start of _CODE
+ ;; (linked at 0x4000). Call main(), then exit(0). exec() already set SP.
+ .area _CODE
+_start::
+ call _main
+ ld b, #0
+ ld c, #0 ; SYS_EXIT
+ rst #0x30
+1$: jr 1$