crt/.build/crt0.lst
2021-01-08 04:13:12 +01:00

53 lines
2.5 KiB
Plaintext

1 ;--------------------------------------------------------------------------
2 ; cpm0.s - Generic cpm0.s for a Z80 CP/M-80 v2.2 Application
3 ; Copyright (C) 2011, Douglas Goodall All Rights Reserved.
4 ;--------------------------------------------------------------------------
5
6 .area _CODE
0000 7 .ds 0x0100
0100 8 init:
9 ;; Define an adequate stack
0100 31r00r01 [10] 10 ld sp, #stktop
11
12 ;; Initialise global variables
0103 CDr00r00 [17] 13 call gsinit
14
15 ;; Call the C main routine
0106 CDr00r00 [17] 16 call _main
17
18 ;; Return back to CP/M
0109 0E 00 [ 7] 19 ld c, #0
010B CD 05 00 [17] 20 call 5
21
22 ;; Ordering of segments for the linker.
23 .area _TPA
24
25 .area _HOME
26 .area _CODE
27 .area _INITIALIZER
28 .area _GSINIT
29 .area _GSFINAL
30 .area _DATA
31 .area _INITIALIZED
32
33 .area _STACK
0000 34 .ds 256
0100 35 stktop:
36
37 .area _GSINIT
0000 38 gsinit::
0000 01r00r00 [10] 39 ld bc, #l__INITIALIZER
0003 78 [ 4] 40 ld a, b
0004 B1 [ 4] 41 or a, c
0005 28 08 [12] 42 jr z, gsinit_next
0007 11r00r00 [10] 43 ld de, #s__INITIALIZED
000A 21r00r00 [10] 44 ld hl, #s__INITIALIZER
000D ED B0 [21] 45 ldir
000F 46 gsinit_next:
47 .area _GSFINAL
0000 C9 [10] 48 ret
49
50 ;;;;;;;;;;;;;;;;
51 ; eof - cpm0.s ;
52 ;;;;;;;;;;;;;;;;