blob: 23b8513ff1668584d58df7e0d5a33629729e0bb1 [file] [log] [blame]
kthacker62e146c2006-04-17 15:11:35 +00001;; File: crt0.s
2;; Generic crt0.s for a Z80
3;; From SDCC..
4;; Modified to suit execution on the Amstrad CPC!
5;; by H. Hansen 2003
6
7 .module crt0
8 .globl _main
PulkoMandyd4445ca2014-06-28 11:43:26 +02009; .globl __jpbc
kthacker62e146c2006-04-17 15:11:35 +000010 .globl _progend
kthacker62e146c2006-04-17 15:11:35 +000011 .area _HEADER (ABS)
12 ;; Ordering of segments for the linker.
13 .area _CODE
14init:
15
16;; Initialise global variables
17 call gsinit
18 call _main
19
20_exit::
21 ret
PulkoMandyd4445ca2014-06-28 11:43:26 +020022;__jpbc:
23; push bc
24; ret
25
26 .area _HOME
27 .area _CODE
28 .area _INITIALIZER
29 .area _GSINIT (REL)
30 .area _GSFINAL (REL)
31_progend::
kthacker62e146c2006-04-17 15:11:35 +000032
33 .area _DATA (REL)
PulkoMandyd4445ca2014-06-28 11:43:26 +020034 .area _INITIALIZED
35 .area _BSEG
kthacker62e146c2006-04-17 15:11:35 +000036 .area _BSS (REL)
PulkoMandyd4445ca2014-06-28 11:43:26 +020037 .area _HEAP (REL)
kthacker62e146c2006-04-17 15:11:35 +000038
39 .area _GSINIT (REL)
40gsinit::
PulkoMandyd4445ca2014-06-28 11:43:26 +020041 ld bc, #l__INITIALIZER
42 ld a, b
43 or a, c
44 jr Z, gsinit_next
45 ld de, #s__INITIALIZED
46 ld hl, #s__INITIALIZER
47 ldir
48gsinit_next:
kthacker62e146c2006-04-17 15:11:35 +000049
PulkoMandyd4445ca2014-06-28 11:43:26 +020050 .area _GSFINAL
51 ret