1 ;
--------------------------------------------------------------------------
2 ; crt0.s
-Generic crt0.s for
a GBZ80.
4 ; Copyright
(C
) 2000, Michael Hope
5 ; Copyright
(C
) 2021 - 2022, Sebastian
'basxto' Riedel
(sdcc@basxto.de
)
7 ; This library is free software; you can redistribute it
and/or modify it
8 ; under the terms of the GNU General Public License as published by the
9 ; Free Software Foundation; either version
2, or (at your option
) any
12 ; This library is distributed in the hope that it will
be useful
,
13 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ; MERCHANTABILITY
or FITNESS FOR
A PARTICULAR PURPOSE. See the
15 ; GNU General Public License for more details.
17 ; You should have received
a copy of the GNU General Public License
18 ; along with this library; see the file COPYING. If
not, write to the
19 ; Free Software Foundation
, 51 Franklin Street
, Fifth Floor
, Boston
,
22 ; As
a special exception
, if you link this library with other files
,
23 ; some of which are compiled with SDCC
, to produce an executable
,
24 ; this library does
not by itself cause the resulting executable to
25 ;
be covered by the GNU General Public License. This exception does
26 ;
not however invalidate any other reasons why the executable file
27 ; might
be covered by the GNU General Public License.
28 ;
--------------------------------------------------------------------------
36 ;; Used by regression tests
49 ;;
0xFF (rst
0x38) is the default value of empty memory
71 ;; Set stack pointer directly above top of Work RAM.
74 call ___sdcc_external_startup
76 ;; Initialise global variables. Skip if __sdcc_external_startup returned
77 ;; non-zero value. Note
: calling convention version
1 only.
81 ;; Use _main instead of main to bypass sdcc
's intelligence
85 ;; Ordering of segments for the linker.
105 ;; Exit - special code to the emulator
114 ; Default-initialized global variables.
116 ld bc, #l__DATA + 0x0101
118 jr loop_implicit_compare
121 loop_implicit_compare:
127 ; Explicitly initialized global variables.
128 ld de, #s__INITIALIZED
129 ld hl, #s__INITIALIZER
130 ld bc, #l__INITIALIZER + 0x0101
131 jr loop_explicit_compare
136 loop_explicit_compare: