1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
AREA InitApp, CODE , READONLY
EXPORT InitialiseApp
InitialiseApp
ADR r0,ziTable
MOV R3,#0
ziLoop
LDR r1,[r0],#4
CMP r1,#0
BEQ initLoop
LDR r2,[r0],#4
ziFillLoop
STR r3,[r2],#4
SUBS r1,r1,#4
BNE ziFillLoop
B ziLoop
initLoop
LDR r1,[r0],#4
CMP r1,#0
MOVEQ pc,lr
LDMIA r0!,{r2,r3}
CMP r1,#16
BLT copyWords
copy4Words
LDMIA r3!,{r4,r5,r6,r7}
STMIA r2!,{r4,r5,r6,r7}
SUBS r1,r1,#16
BGT copy4Words
BEQ initLoop
copyWords
SUBS r1,r1,#8
LDMIAGE r3!,{r4,r5}
STMIAGE r2!,{r4,r5}
BEQ initLoop
LDR r4,[r3]
STR r4,[r2]
B initLoop
MACRO
ZIEntry $execname
LCLS lensym
LCLS basesym
LCLS namecp
namecp SETS "$execname"
lensym SETS "|Image$$":CC:namecp:CC:"$$ZI$$Length|"
basesym SETS "|Image$$":CC:namecp:CC:"$$ZI$$Base|"
IMPORT $lensym
IMPORT $basesym
DCD $lensym
DCD $basesym
MEND
MACRO
InitEntry $execname
LCLS lensym
LCLS basesym
LCLS loadsym
LCLS namecp
namecp SETS "$execname"
lensym SETS "|Image$$":CC:namecp:CC:"$$Length|"
basesym SETS "|Image$$":CC:namecp:CC:"$$Base|"
loadsym SETS "|Load$$":CC:namecp:CC:"$$Base|"
IMPORT $lensym
IMPORT $basesym
IMPORT $loadsym
DCD $lensym
DCD $basesym
DCD $loadsym
MEND
ziTable
ZIEntry root
DCD 0
InitTable
InitEntry root
InitEntry overmgr
DCD 0
END
|