comparison bootrom-old/bootrom-old.disasm @ 206:11761eaf712c

old Calypso F741979B boot ROM analyzed
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Wed, 30 Dec 2015 08:27:46 +0000
parents
children
comparison
equal deleted inserted replaced
205:8bdc87c0fc03 206:11761eaf712c
1 RESET entry and exception vectors:
2 0: ea0005c1 b 0x170c
3 4: ea00052a b 0x14b4
4 8: ea00052e b 0x14c8
5 c: ea000532 b 0x14dc
6 10: ea000536 b 0x14f0
7 14: ea00053a b 0x1504
8 18: ea00053e b 0x1518
9 1c: ea000542 b 0x152c
10
11 ; matches C035 version
12 20: e24dd004 sub sp, sp, #4
13 24: e59f20b8 ldr r2, =0xfffffb10 ; via 0xe4
14 28: e1d2c0b0 ldrh r12, [r2]
15 2c: e20c10ff and r1, r12, #255 ; 0xff
16 30: e20ccb3f and r12, r12, #64512 ; 0xfc00
17 34: e181c00c orr r12, r1, r12
18 38: e1a0c80c mov r12, r12, lsl #16
19 3c: e1a0c82c mov r12, r12, lsr #16
20 40: e3500001 cmp r0, #1
21 44: 0a000005 beq 0x60
22 48: e3500000 cmp r0, #0
23 4c: 1a000006 bne 0x6c
24 50: e38ccc01 orr r12, r12, #256 ; 0x100
25 54: e1a0c80c mov r12, r12, lsl #16
26 58: e1a0c82c mov r12, r12, lsr #16
27 5c: ea000002 b 0x6c
28 60: e38ccc03 orr r12, r12, #768 ; 0x300
29 64: e1a0c80c mov r12, r12, lsl #16
30 68: e1a0c82c mov r12, r12, lsr #16
31 6c: e1c2c0b0 strh r12, [r2]
32 70: e3a0cfc3 mov r12, #780 ; 0x30c
33 74: e59f006c ldr r0, =0x80f5 ; via 0xe8
34 78: e10200bc strh r0, [r2, -r12]
35 7c: e3a0c000 mov r12, #0
36 80: e1cdc0b0 strh r12, [sp]
37 84: ea000002 b 0x94
38 88: e1ddc0b0 ldrh r12, [sp]
39 8c: e28cc001 add r12, r12, #1
40 90: e1cdc0b0 strh r12, [sp]
41 94: e1dd10b0 ldrh r1, [sp]
42 98: e3a0c902 mov r12, #32768 ; 0x8000
43 9c: e24ccead sub r12, r12, #2768 ; 0xad0
44 a0: e151000c cmp r1, r12
45 a4: bafffff7 blt 0x88
46 a8: e3a0cfc3 mov r12, #780 ; 0x30c
47 ac: e10200bc strh r0, [r2, -r12]
48 b0: e3a0c000 mov r12, #0
49 b4: e1cdc0b0 strh r12, [sp]
50 b8: ea000002 b 0xc8
51 bc: e1ddc0b0 ldrh r12, [sp]
52 c0: e28cc001 add r12, r12, #1
53 c4: e1cdc0b0 strh r12, [sp]
54 c8: e1ddc0b0 ldrh r12, [sp]
55 cc: e3a00902 mov r0, #32768 ; 0x8000
56 d0: e2400ead sub r0, r0, #2768 ; 0xad0
57 d4: e15c0000 cmp r12, r0
58 d8: bafffff7 blt 0xbc
59 dc: e28dd004 add sp, sp, #4
60 e0: e12fff1e bx lr
61
62 ; literal pool matches C035 version
63 e4: fffffb10
64 e8: 000080f5
65
66 ; 0xec routine matches C035 version
67 ; the data structure that lives at 0x800518 in the C035 version
68 ; appears to reside at 0x800504 in this version
69 ec: e92d4010 stmdb sp!, {r4, lr}
70 f0: e59fcd0c ldr r12, =0x800504 ; via 0xe04
71 f4: e59c4014 ldr r4, [r12, #20] ; 0x14
72 f8: e59f0d08 ldr r0, =0x1fe8 ; via 0xe08
73 fc: e5dcc008 ldrb r12, [r12, #8]
74 100: e790c10c ldr r12, [r0, r12, lsl #2]
75 104: e28c0005 add r0, r12, #5
76 108: e5d0c000 ldrb r12, [r0]
77 10c: e31c0040 tst r12, #64 ; 0x40
78 110: 0afffffc beq 0x108
79 114: eb000585 bl 0x1730 ; IND_CALL
80 118: eafffffe b 0x118
81
82 ; 0x11c routine matches C035 version
83 11c: e3a0c004 mov r12, #4
84 120: e5c0c000 strb r12, [r0]
85 124: e3a0c000 mov r12, #0
86 128: e1c0c0be strh r12, [r0, #14] ; 0xe
87 12c: e1c0c1b0 strh r12, [r0, #16] ; 0x10
88 130: e580c014 str r12, [r0, #20] ; 0x14
89 134: e5c0c018 strb r12, [r0, #24] ; 0x18
90 138: e12fff1e bx lr
91
92 ; 0x13c routine matches C035 version
93 13c: e92d4000 stmdb sp!, {lr}
94 140: e1a0c000 mov r12, r0
95 144: e59f0cc0 ldr r0, =0x8000f8 ; via 0xe0c
96 148: e3a0103e mov r1, #62 ; 0x3e
97 14c: e5c01000 strb r1, [r0]
98 150: e35c0009 cmp r12, #9
99 154: 88bd8000 ldmhiia sp!, {pc}
100 158: e28f1000 add r1, pc, #0
101 15c: e791f10c ldr pc, [r1, r12, lsl #2]
102 ; switch table, absolute addresses
103 160: 000002ac
104 164: 00000280
105 168: 00000264
106 16c: 00000248
107 170: 00000224
108 174: 00000200
109 178: 000001dc
110 17c: 000001c0
111 180: 000001a4
112 184: 00000188
113 ; code appears to match C035 version
114 188: e3a0c042 mov r12, #66 ; 0x42
115 18c: e5c0c001 strb r12, [r0, #1]
116 190: e3a01002 mov r1, #2
117 194: e59fcc74 ldr r12, =0x80050c ; via 0xe10
118 198: e5dc2000 ldrb r2, [r12]
119 19c: eb000458 bl 0x1304
120 1a0: e8bd8000 ldmia sp!, {pc}
121 1a4: e3a0c062 mov r12, #98 ; 0x62
122 1a8: e5c0c001 strb r12, [r0, #1]
123 1ac: e3a01002 mov r1, #2
124 1b0: e59fcc58 ldr r12, =0x80050c ; via 0xe10
125 1b4: e5dc2000 ldrb r2, [r12]
126 1b8: eb000451 bl 0x1304
127 1bc: e8bd8000 ldmia sp!, {pc}
128 1c0: e3a0c061 mov r12, #97 ; 0x61
129 1c4: e5c0c001 strb r12, [r0, #1]
130 1c8: e3a01002 mov r1, #2
131 1cc: e59fcc3c ldr r12, =0x80050c ; via 0xe10
132 1d0: e5dc2000 ldrb r2, [r12]
133 1d4: eb00044a bl 0x1304
134 1d8: e8bd8000 ldmia sp!, {pc}
135 1dc: e3a0c043 mov r12, #67 ; 0x43
136 1e0: e5c0c001 strb r12, [r0, #1]
137 1e4: e59fcc18 ldr r12, =0x800504 ; via 0xe04
138 1e8: e5dc1010 ldrb r1, [r12, #16] ; 0x10
139 1ec: e5c01002 strb r1, [r0, #2]
140 1f0: e5dc2008 ldrb r2, [r12, #8]
141 1f4: e3a01003 mov r1, #3
142 1f8: eb000441 bl 0x1304
143 1fc: e8bd8000 ldmia sp!, {pc}
144 200: e3a0c063 mov r12, #99 ; 0x63
145 204: e5c0c001 strb r12, [r0, #1]
146 208: e59fcbf4 ldr r12, =0x800504 ; via 0xe04
147 20c: e5dc1010 ldrb r1, [r12, #16] ; 0x10
148 210: e5c01002 strb r1, [r0, #2]
149 214: e5dc2008 ldrb r2, [r12, #8]
150 218: e3a01003 mov r1, #3
151 21c: eb000438 bl 0x1304
152 220: e8bd8000 ldmia sp!, {pc}
153 224: e3a0c057 mov r12, #87 ; 0x57
154 228: e5c0c001 strb r12, [r0, #1]
155 22c: e59fcbd0 ldr r12, =0x800504 ; via 0xe04
156 230: e5dc1019 ldrb r1, [r12, #25] ; 0x19
157 234: e5c01002 strb r1, [r0, #2]
158 238: e5dc2008 ldrb r2, [r12, #8]
159 23c: e3a01003 mov r1, #3
160 240: eb00042f bl 0x1304
161 244: e8bd8000 ldmia sp!, {pc}
162 248: e3a0c077 mov r12, #119 ; 0x77
163 24c: e5c0c001 strb r12, [r0, #1]
164 250: e3a01002 mov r1, #2
165 254: e59fcbb4 ldr r12, =0x80050c ; via 0xe10
166 258: e5dc2000 ldrb r2, [r12]
167 25c: eb000428 bl 0x1304
168 260: e8bd8000 ldmia sp!, {pc}
169 264: e3a0c050 mov r12, #80 ; 0x50
170 268: e5c0c001 strb r12, [r0, #1]
171 26c: e3a01002 mov r1, #2
172 270: e59fcb98 ldr r12, =0x80050c ; via 0xe10
173 274: e5dc2000 ldrb r2, [r12]
174 278: eb000421 bl 0x1304
175 27c: e8bd8000 ldmia sp!, {pc}
176 280: e3a0c070 mov r12, #112 ; 0x70
177 284: e5c0c001 strb r12, [r0, #1]
178 288: e3a0c000 mov r12, #0
179 28c: e5c0c002 strb r12, [r0, #2]
180 290: e3a0c004 mov r12, #4
181 294: e5c0c003 strb r12, [r0, #3]
182 298: e3a01004 mov r1, #4
183 29c: e59fcb6c ldr r12, =0x80050c ; via 0xe10
184 2a0: e5dc2000 ldrb r2, [r12]
185 2a4: eb000416 bl 0x1304
186 2a8: e8bd8000 ldmia sp!, {pc}
187 2ac: e3a0c069 mov r12, #105 ; 0x69
188 2b0: e5c0c001 strb r12, [r0, #1]
189 2b4: e3a01002 mov r1, #2
190 2b8: e59fcb50 ldr r12, =0x80050c ; via 0xe10
191 2bc: e5dc2000 ldrb r2, [r12]
192 2c0: eb00040f bl 0x1304
193 2c4: e8bd8000 ldmia sp!, {pc}
194
195 ; 0x2c8 routine matches C035 version
196 2c8: e92d4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
197 2cc: e24dd004 sub sp, sp, #4
198 2d0: e1a0b000 mov r11, r0
199 2d4: e3a05000 mov r5, #0
200 2d8: e5cb5000 strb r5, [r11]
201 2dc: e59f7b30 ldr r7, =0x8000f0 ; via 0xe14
202 2e0: e59f4b1c ldr r4, =0x800504 ; via 0xe04
203 2e4: e5d40008 ldrb r0, [r4, #8]
204 2e8: e5971000 ldr r1, [r7]
205 2ec: e28d2002 add r2, sp, #2
206 2f0: eb00044c bl 0x1428
207 2f4: e3500000 cmp r0, #0
208 2f8: 0a0000fc beq 0x6f0
209 2fc: e5ddc002 ldrb r12, [sp, #2]
210 300: e25cc061 subs r12, r12, #97 ; 0x61
211 304: 0a000104 beq 0x71c
212 308: e25cc001 subs r12, r12, #1
213 30c: 0a0000ee beq 0x6cc
214 310: e25cc001 subs r12, r12, #1
215 314: 0a0000e1 beq 0x6a0
216 318: e25cc006 subs r12, r12, #6
217 31c: 0a0000dc beq 0x694
218 320: e25cc007 subs r12, r12, #7
219 324: 0a0000b8 beq 0x60c
220 328: e25cc007 subs r12, r12, #7
221 32c: 1a0000fc bne 0x724
222 330: e5c45018 strb r5, [r4, #24] ; 0x18
223 334: e3a0a000 mov r10, #0
224 338: e3a06000 mov r6, #0
225 33c: ea000015 b 0x398
226 340: e5d40008 ldrb r0, [r4, #8]
227 344: e5971000 ldr r1, [r7]
228 348: e28d2002 add r2, sp, #2
229 34c: eb000435 bl 0x1428
230 350: e3500000 cmp r0, #0
231 354: 0a0000e5 beq 0x6f0
232 358: e5ddc002 ldrb r12, [sp, #2]
233 35c: e35c003c cmp r12, #60 ; 0x3c
234 360: 0a000001 beq 0x36c
235 364: e3a0c001 mov r12, #1
236 368: e5c4c018 strb r12, [r4, #24] ; 0x18
237 36c: e5d40008 ldrb r0, [r4, #8]
238 370: e5971000 ldr r1, [r7]
239 374: e28d2002 add r2, sp, #2
240 378: eb00042a bl 0x1428
241 37c: e3500000 cmp r0, #0
242 380: 0a0000da beq 0x6f0
243 384: e5ddc002 ldrb r12, [sp, #2]
244 388: e35c0077 cmp r12, #119 ; 0x77
245 38c: 0a000001 beq 0x398
246 390: e3a0c001 mov r12, #1
247 394: e5c4c018 strb r12, [r4, #24] ; 0x18
248 398: e5d40008 ldrb r0, [r4, #8]
249 39c: e5971000 ldr r1, [r7]
250 3a0: e1a0200d mov r2, sp
251 3a4: eb00041f bl 0x1428
252 3a8: e3500000 cmp r0, #0
253 3ac: 0a0000cf beq 0x6f0
254 3b0: e5d40008 ldrb r0, [r4, #8]
255 3b4: e5971000 ldr r1, [r7]
256 3b8: e28d2001 add r2, sp, #1
257 3bc: eb000419 bl 0x1428
258 3c0: e3500000 cmp r0, #0
259 3c4: 0a0000c9 beq 0x6f0
260 3c8: e5dd0000 ldrb r0, [sp]
261 3cc: e5ddc001 ldrb r12, [sp, #1]
262 3d0: e150000c cmp r0, r12
263 3d4: 1a000000 bne 0x3dc
264 3d8: e3a0a001 mov r10, #1
265 3dc: e5dd0000 ldrb r0, [sp]
266 3e0: e5ddc001 ldrb r12, [sp, #1]
267 3e4: e150000c cmp r0, r12
268 3e8: ca00007c bgt 0x5e0
269 3ec: e5ddc001 ldrb r12, [sp, #1]
270 3f0: e35c0000 cmp r12, #0
271 3f4: 0a000079 beq 0x5e0
272 3f8: e5ddc000 ldrb r12, [sp]
273 3fc: e35c0000 cmp r12, #0
274 400: 0a000076 beq 0x5e0
275 404: e3a08002 mov r8, #2
276 408: e3a05000 mov r5, #0
277 40c: e5d40008 ldrb r0, [r4, #8]
278 410: e5971000 ldr r1, [r7]
279 414: e28d2002 add r2, sp, #2
280 418: eb000402 bl 0x1428
281 41c: e3500000 cmp r0, #0
282 420: 0a0000b2 beq 0x6f0
283 424: e5ddc002 ldrb r12, [sp, #2]
284 428: e18cc405 orr r12, r12, r5, lsl #8
285 42c: e1a0c80c mov r12, r12, lsl #16
286 430: e1a0582c mov r5, r12, lsr #16
287 434: e2588001 subs r8, r8, #1
288 438: 1afffff3 bne 0x40c
289 43c: e3a09004 mov r9, #4
290 440: e3a08000 mov r8, #0
291 444: e5d40008 ldrb r0, [r4, #8]
292 448: e5971000 ldr r1, [r7]
293 44c: e28d2002 add r2, sp, #2
294 450: eb0003f4 bl 0x1428
295 454: e3500000 cmp r0, #0
296 458: 0a0000a4 beq 0x6f0
297 45c: e5ddc002 ldrb r12, [sp, #2]
298 460: e18c8408 orr r8, r12, r8, lsl #8
299 464: e2599001 subs r9, r9, #1
300 468: 1afffff5 bne 0x444
301 46c: e59fc9a4 ldr r12, =0x80073c ; via 0xe18
302 470: e158000c cmp r8, r12
303 474: 3a00004e bcc 0x5b4
304 478: e59f099c ldr r0, =0x7f8c3 ; via 0xe1c
305 47c: e080c00c add r12, r0, r12
306 480: e158000c cmp r8, r12
307 484: 8a00004a bhi 0x5b4
308 488: e085c006 add r12, r5, r6
309 48c: e35c0ffe cmp r12, #1016 ; 0x3f8
310 490: aa000037 bge 0x574
311 494: e59fc970 ldr r12, =0x8000f8 ; via 0xe0c
312 498: e5dd0000 ldrb r0, [sp]
313 49c: e7c6000c strb r0, [r6, r12]
314 4a0: e2860001 add r0, r6, #1
315 4a4: e1a00800 mov r0, r0, lsl #16
316 4a8: e1a06820 mov r6, r0, lsr #16
317 4ac: e5dd0001 ldrb r0, [sp, #1]
318 4b0: e7c6000c strb r0, [r6, r12]
319 4b4: e2860001 add r0, r6, #1
320 4b8: e1a00800 mov r0, r0, lsl #16
321 4bc: e1a06820 mov r6, r0, lsr #16
322 4c0: e1a00425 mov r0, r5, lsr #8
323 4c4: e7c6000c strb r0, [r6, r12]
324 4c8: e2860001 add r0, r6, #1
325 4cc: e1a00800 mov r0, r0, lsl #16
326 4d0: e1a06820 mov r6, r0, lsr #16
327 4d4: e7c6500c strb r5, [r6, r12]
328 4d8: e2860001 add r0, r6, #1
329 4dc: e1a00800 mov r0, r0, lsl #16
330 4e0: e1a06820 mov r6, r0, lsr #16
331 4e4: e1a00c28 mov r0, r8, lsr #24
332 4e8: e7c6000c strb r0, [r6, r12]
333 4ec: e2860001 add r0, r6, #1
334 4f0: e1a00800 mov r0, r0, lsl #16
335 4f4: e1a06820 mov r6, r0, lsr #16
336 4f8: e1a00828 mov r0, r8, lsr #16
337 4fc: e7c6000c strb r0, [r6, r12]
338 500: e2860001 add r0, r6, #1
339 504: e1a00800 mov r0, r0, lsl #16
340 508: e1a06820 mov r6, r0, lsr #16
341 50c: e1a00428 mov r0, r8, lsr #8
342 510: e7c6000c strb r0, [r6, r12]
343 514: e2860001 add r0, r6, #1
344 518: e1a00800 mov r0, r0, lsl #16
345 51c: e1a06820 mov r6, r0, lsr #16
346 520: e086900c add r9, r6, r12
347 524: e5c98000 strb r8, [r9]
348 528: e286c001 add r12, r6, #1
349 52c: e1a0c80c mov r12, r12, lsl #16
350 530: e1a0682c mov r6, r12, lsr #16
351 534: e3550000 cmp r5, #0
352 538: 0a000018 beq 0x5a0
353 53c: e085c006 add r12, r5, r6
354 540: e1a0c80c mov r12, r12, lsl #16
355 544: e1a0682c mov r6, r12, lsr #16
356 548: e2899001 add r9, r9, #1
357 54c: e5d40008 ldrb r0, [r4, #8]
358 550: e5971000 ldr r1, [r7]
359 554: e1a02009 mov r2, r9
360 558: eb0003b2 bl 0x1428
361 55c: e3500000 cmp r0, #0
362 560: 0a000062 beq 0x6f0
363 564: e2899001 add r9, r9, #1
364 568: e2555001 subs r5, r5, #1
365 56c: 1afffff6 bne 0x54c
366 570: ea00000a b 0x5a0
367 574: e285c001 add r12, r5, #1
368 578: e1a0c80c mov r12, r12, lsl #16
369 57c: e1a0582c mov r5, r12, lsr #16
370 580: e5d40008 ldrb r0, [r4, #8]
371 584: e5971000 ldr r1, [r7]
372 588: e28d2002 add r2, sp, #2
373 58c: eb0003a5 bl 0x1428
374 590: e3500000 cmp r0, #0
375 594: 0a000055 beq 0x6f0
376 598: e2555001 subs r5, r5, #1
377 59c: 1afffff7 bne 0x580
378 5a0: e35a0000 cmp r10, #0
379 5a4: 0affff65 beq 0x340
380 5a8: e3a0c003 mov r12, #3
381 5ac: e5cbc000 strb r12, [r11]
382 5b0: ea00005b b 0x724
383 5b4: e3a0c001 mov r12, #1
384 5b8: e5c4c018 strb r12, [r4, #24] ; 0x18
385 5bc: e3a0c003 mov r12, #3
386 5c0: e5cbc000 strb r12, [r11]
387 5c4: e5d40008 ldrb r0, [r4, #8]
388 5c8: e59f1850 ldr r1, =0xfffff ; via 0xe20
389 5cc: e28d2002 add r2, sp, #2
390 5d0: eb000394 bl 0x1428
391 5d4: e3500001 cmp r0, #1
392 5d8: 0afffff9 beq 0x5c4
393 5dc: ea000050 b 0x724
394 5e0: e3a0c001 mov r12, #1
395 5e4: e5c4c018 strb r12, [r4, #24] ; 0x18
396 5e8: e3a0c003 mov r12, #3
397 5ec: e5cbc000 strb r12, [r11]
398 5f0: e5d40008 ldrb r0, [r4, #8]
399 5f4: e59f1824 ldr r1, =0xfffff ; via 0xe20
400 5f8: e28d2002 add r2, sp, #2
401 5fc: eb000389 bl 0x1428
402 600: e3500001 cmp r0, #1
403 604: 0afffff9 beq 0x5f0
404 608: ea000045 b 0x724
405 60c: e59f67f8 ldr r6, =0x8000f8 ; via 0xe0c
406 610: e3a08009 mov r8, #9
407 614: e5d40008 ldrb r0, [r4, #8]
408 618: e5971000 ldr r1, [r7]
409 61c: e1a02006 mov r2, r6
410 620: eb000380 bl 0x1428
411 624: e3500000 cmp r0, #0
412 628: 0a000030 beq 0x6f0
413 62c: e2866001 add r6, r6, #1
414 630: e2588001 subs r8, r8, #1
415 634: 1afffff6 bne 0x614
416 638: e59fc7cc ldr r12, =0x8000f8 ; via 0xe0c
417 63c: e5dc0000 ldrb r0, [r12]
418 640: e5c40000 strb r0, [r4]
419 644: e5dc0001 ldrb r0, [r12, #1]
420 648: e5c40009 strb r0, [r4, #9]
421 64c: e1c450ba strh r5, [r4, #10] ; 0xa
422 650: e5dc1003 ldrb r1, [r12, #3]
423 654: e5dc0002 ldrb r0, [r12, #2]
424 658: e1810400 orr r0, r1, r0, lsl #8
425 65c: e1c400ba strh r0, [r4, #10] ; 0xa
426 660: e5dc0004 ldrb r0, [r12, #4]
427 664: e5c4000d strb r0, [r4, #13] ; 0xd
428 668: e5dc0006 ldrb r0, [r12, #6]
429 66c: e5dc1005 ldrb r1, [r12, #5]
430 670: e1801401 orr r1, r0, r1, lsl #8
431 674: e5dc0007 ldrb r0, [r12, #7]
432 678: e1800401 orr r0, r0, r1, lsl #8
433 67c: e5dcc008 ldrb r12, [r12, #8]
434 680: e18cc400 orr r12, r12, r0, lsl #8
435 684: e584c004 str r12, [r4, #4]
436 688: e3a0c002 mov r12, #2
437 68c: e5cbc000 strb r12, [r11]
438 690: ea000023 b 0x724
439 694: e3a0c001 mov r12, #1
440 698: e5cbc000 strb r12, [r11]
441 69c: ea000020 b 0x724
442 6a0: e5d40008 ldrb r0, [r4, #8]
443 6a4: e5971000 ldr r1, [r7]
444 6a8: e28d2002 add r2, sp, #2
445 6ac: eb00035d bl 0x1428
446 6b0: e3500000 cmp r0, #0
447 6b4: 0a00000d beq 0x6f0
448 6b8: e5ddc002 ldrb r12, [sp, #2]
449 6bc: e1c4c0be strh r12, [r4, #14] ; 0xe
450 6c0: e3a0c004 mov r12, #4
451 6c4: e5cbc000 strb r12, [r11]
452 6c8: ea000015 b 0x724
453 6cc: e3a0c000 mov r12, #0
454 6d0: e584c014 str r12, [r4, #20] ; 0x14
455 6d4: e3a05004 mov r5, #4
456 6d8: e5d40008 ldrb r0, [r4, #8]
457 6dc: e5971000 ldr r1, [r7]
458 6e0: e28d2002 add r2, sp, #2
459 6e4: eb00034f bl 0x1428
460 6e8: e3500000 cmp r0, #0
461 6ec: 1a000001 bne 0x6f8
462 6f0: e3a00000 mov r0, #0
463 6f4: ea00000b b 0x728
464 6f8: e5dd0002 ldrb r0, [sp, #2]
465 6fc: e594c014 ldr r12, [r4, #20] ; 0x14
466 700: e180c40c orr r12, r0, r12, lsl #8
467 704: e584c014 str r12, [r4, #20] ; 0x14
468 708: e2555001 subs r5, r5, #1
469 70c: 1afffff1 bne 0x6d8
470 710: e3a0c006 mov r12, #6
471 714: e5cbc000 strb r12, [r11]
472 718: ea000001 b 0x724
473 71c: e3a0c005 mov r12, #5
474 720: e5cbc000 strb r12, [r11]
475 724: e3a00001 mov r0, #1
476 728: e28dd004 add sp, sp, #4
477 72c: e8bd8ff0 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}
478
479 ; 0x730 routine matches C035 version
480 730: e92d43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
481 734: e59f46c8 ldr r4, =0x800504 ; via 0xe04
482 738: e5d4c018 ldrb r12, [r4, #24] ; 0x18
483 73c: e35c0001 cmp r12, #1
484 740: 0a00004a beq 0x870
485 744: e59f56c0 ldr r5, =0x8000f8 ; via 0xe0c
486 748: e59f66c8 ldr r6, =0x80073c ; via 0xe18
487 74c: e3a07000 mov r7, #0
488 750: e3a00000 mov r0, #0
489 754: e080c005 add r12, r0, r5
490 758: e28cc001 add r12, r12, #1
491 75c: e7d02005 ldrb r2, [r0, r5]
492 760: e5dc1000 ldrb r1, [r12]
493 764: e1520001 cmp r2, r1
494 768: 1a000000 bne 0x770
495 76c: e3a07001 mov r7, #1
496 770: e5dc2002 ldrb r2, [r12, #2]
497 774: e5dc1001 ldrb r1, [r12, #1]
498 778: e0821401 add r1, r2, r1, lsl #8
499 77c: e1a01801 mov r1, r1, lsl #16
500 780: e1a01821 mov r1, r1, lsr #16
501 784: e5dc3004 ldrb r3, [r12, #4]
502 788: e5dc2003 ldrb r2, [r12, #3]
503 78c: e0832402 add r2, r3, r2, lsl #8
504 790: e5dc3005 ldrb r3, [r12, #5]
505 794: e0832402 add r2, r3, r2, lsl #8
506 798: e5dcc006 ldrb r12, [r12, #6]
507 79c: e08c2402 add r2, r12, r2, lsl #8
508 7a0: e202c0ff and r12, r2, #255 ; 0xff
509 7a4: e081300c add r3, r1, r12
510 7a8: e1a0c422 mov r12, r2, lsr #8
511 7ac: e20cc0ff and r12, r12, #255 ; 0xff
512 7b0: e08c3003 add r3, r12, r3
513 7b4: e1a0c822 mov r12, r2, lsr #16
514 7b8: e20cc0ff and r12, r12, #255 ; 0xff
515 7bc: e08cc003 add r12, r12, r3
516 7c0: e08ccc22 add r12, r12, r2, lsr #24
517 7c4: e28cc005 add r12, r12, #5
518 7c8: e1a0c80c mov r12, r12, lsl #16
519 7cc: e1a0882c mov r8, r12, lsr #16
520 7d0: e3a03000 mov r3, #0
521 7d4: e1520006 cmp r2, r6
522 7d8: 3a000003 bcc 0x7ec
523 7dc: e59fc638 ldr r12, =0x7f8c3 ; via 0xe1c
524 7e0: e08cc006 add r12, r12, r6
525 7e4: e152000c cmp r2, r12
526 7e8: 9a000001 bls 0x7f4
527 7ec: e383c001 orr r12, r3, #1
528 7f0: e20c30ff and r3, r12, #255 ; 0xff
529 7f4: e3530000 cmp r3, #0
530 7f8: 1a00001d bne 0x874
531 7fc: e3a09000 mov r9, #0
532 800: e3510000 cmp r1, #0
533 804: 0a00000b beq 0x838
534 808: e089c000 add r12, r9, r0
535 80c: e085c00c add r12, r5, r12
536 810: e5dcc008 ldrb r12, [r12, #8]
537 814: e4c2c001 strb r12, [r2], #1
538 818: e08cc008 add r12, r12, r8
539 81c: e1a0c80c mov r12, r12, lsl #16
540 820: e1a0882c mov r8, r12, lsr #16
541 824: e289c001 add r12, r9, #1
542 828: e1a0c80c mov r12, r12, lsl #16
543 82c: e1a0982c mov r9, r12, lsr #16
544 830: e2511001 subs r1, r1, #1
545 834: 1afffff3 bne 0x808
546 838: e3a0c0ff mov r12, #255 ; 0xff
547 83c: e1ccc008 bic r12, r12, r8
548 840: e1a0c80c mov r12, r12, lsl #16
549 844: e1a0882c mov r8, r12, lsr #16
550 848: e1d4c1b0 ldrh r12, [r4, #16] ; 0x10
551 84c: e088c00c add r12, r8, r12
552 850: e1c4c1b0 strh r12, [r4, #16] ; 0x10
553 854: e080c009 add r12, r0, r9
554 858: e28cc008 add r12, r12, #8
555 85c: e1a0c80c mov r12, r12, lsl #16
556 860: e1a0082c mov r0, r12, lsr #16
557 864: e3570000 cmp r7, #0
558 868: 0affffb9 beq 0x754
559 86c: ea000000 b 0x874
560 870: e3a03002 mov r3, #2
561 874: e5c43019 strb r3, [r4, #25] ; 0x19
562 878: e3530000 cmp r3, #0
563 87c: 0a000008 beq 0x8a4
564 880: e3a00004 mov r0, #4
565 884: ebfffe2c bl 0x13c
566 888: e5d41008 ldrb r1, [r4, #8]
567 88c: e3a00004 mov r0, #4
568 890: eb0002d0 bl 0x13d8
569 894: e1a00004 mov r0, r4
570 898: ebfffe1f bl 0x11c
571 89c: e3a00001 mov r0, #1
572 8a0: e8bd83f0 ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
573 8a4: e3a00003 mov r0, #3
574 8a8: ebfffe23 bl 0x13c
575 8ac: e3a00000 mov r0, #0
576 8b0: e8bd83f0 ldmia sp!, {r4, r5, r6, r7, r8, r9, pc}
577
578 ; 0x8b4 routine matches C035 version
579 8b4: e92d4070 stmdb sp!, {r4, r5, r6, lr}
580 8b8: e24dd008 sub sp, sp, #8
581 8bc: e59f4560 ldr r4, =0x8000f4 ; via 0xe24
582 8c0: e5d4c000 ldrb r12, [r4]
583 8c4: e25cc001 subs r12, r12, #1
584 8c8: 0a000102 beq 0xcd8
585 8cc: e25cc001 subs r12, r12, #1
586 8d0: 0a00008a beq 0xb00
587 8d4: e25cc001 subs r12, r12, #1
588 8d8: 0a000047 beq 0x9fc
589 8dc: e25cc001 subs r12, r12, #1
590 8e0: 1a000145 bne 0xdfc
591 8e4: e250c001 subs r12, r0, #1
592 8e8: 0a00003c beq 0x9e0
593 8ec: e25cc002 subs r12, r12, #2
594 8f0: 0a00002f beq 0x9b4
595 8f4: e25cc001 subs r12, r12, #1
596 8f8: 0a000022 beq 0x988
597 8fc: e25cc001 subs r12, r12, #1
598 900: 0a000017 beq 0x964
599 904: e25cc001 subs r12, r12, #1
600 908: 1a00013b bne 0xdfc
601 90c: e59f54f0 ldr r5, =0x800504 ; via 0xe04
602 910: e59f0500 ldr r0, =0x80073c ; via 0xe18
603 914: e595c014 ldr r12, [r5, #20] ; 0x14
604 918: e15c0000 cmp r12, r0
605 91c: 3a000006 bcc 0x93c
606 920: e59f14f4 ldr r1, =0x7f8c3 ; via 0xe1c
607 924: e0810000 add r0, r1, r0
608 928: e15c0000 cmp r12, r0
609 92c: 8a000002 bhi 0x93c
610 930: e3a00008 mov r0, #8
611 934: ebfffe00 bl 0x13c
612 938: ebfffdeb bl 0xec
613 93c: e3a00009 mov r0, #9
614 940: ebfffdfd bl 0x13c
615 944: e5d51008 ldrb r1, [r5, #8]
616 948: e3a00004 mov r0, #4
617 94c: eb0002a1 bl 0x13d8
618 950: e1a00005 mov r0, r5
619 954: ebfffdf0 bl 0x11c
620 958: e3a0c001 mov r12, #1
621 95c: e5c4c000 strb r12, [r4]
622 960: ea000125 b 0xdfc
623 964: e59f5498 ldr r5, =0x800504 ; via 0xe04
624 968: e1a00005 mov r0, r5
625 96c: ebfffdea bl 0x11c
626 970: e5d51008 ldrb r1, [r5, #8]
627 974: e3a00004 mov r0, #4
628 978: eb000296 bl 0x13d8
629 97c: e3a0c001 mov r12, #1
630 980: e5c4c000 strb r12, [r4]
631 984: ea00011c b 0xdfc
632 988: e3a00006 mov r0, #6
633 98c: ebfffdea bl 0x13c
634 990: e59f546c ldr r5, =0x800504 ; via 0xe04
635 994: e5d51008 ldrb r1, [r5, #8]
636 998: e3a00004 mov r0, #4
637 99c: eb00028d bl 0x13d8
638 9a0: e1a00005 mov r0, r5
639 9a4: ebfffddc bl 0x11c
640 9a8: e3a0c001 mov r12, #1
641 9ac: e5c4c000 strb r12, [r4]
642 9b0: ea000111 b 0xdfc
643 9b4: e3a00004 mov r0, #4
644 9b8: ebfffddf bl 0x13c
645 9bc: e59f5440 ldr r5, =0x800504 ; via 0xe04
646 9c0: e5d51008 ldrb r1, [r5, #8]
647 9c4: e3a00004 mov r0, #4
648 9c8: eb000282 bl 0x13d8
649 9cc: e1a00005 mov r0, r5
650 9d0: ebfffdd1 bl 0x11c
651 9d4: e3a0c001 mov r12, #1
652 9d8: e5c4c000 strb r12, [r4]
653 9dc: ea000106 b 0xdfc
654 9e0: e59f041c ldr r0, =0x800504 ; via 0xe04
655 9e4: ebfffdcc bl 0x11c
656 9e8: e3a00000 mov r0, #0
657 9ec: ebfffdd2 bl 0x13c
658 9f0: e3a0c004 mov r12, #4
659 9f4: e5c4c000 strb r12, [r4]
660 9f8: ea0000ff b 0xdfc
661 9fc: e250c001 subs r12, r0, #1
662 a00: 0a000037 beq 0xae4
663 a04: e25cc002 subs r12, r12, #2
664 a08: 0a000031 beq 0xad4
665 a0c: e25cc001 subs r12, r12, #1
666 a10: 0a000017 beq 0xa74
667 a14: e25cc001 subs r12, r12, #1
668 a18: 0a00000c beq 0xa50
669 a1c: e25cc001 subs r12, r12, #1
670 a20: 1a0000f5 bne 0xdfc
671 a24: e3a00009 mov r0, #9
672 a28: ebfffdc3 bl 0x13c
673 a2c: e59f53d0 ldr r5, =0x800504 ; via 0xe04
674 a30: e5d51008 ldrb r1, [r5, #8]
675 a34: e3a00004 mov r0, #4
676 a38: eb000266 bl 0x13d8
677 a3c: e1a00005 mov r0, r5
678 a40: ebfffdb5 bl 0x11c
679 a44: e3a0c001 mov r12, #1
680 a48: e5c4c000 strb r12, [r4]
681 a4c: ea0000ea b 0xdfc
682 a50: e59f53ac ldr r5, =0x800504 ; via 0xe04
683 a54: e1a00005 mov r0, r5
684 a58: ebfffdaf bl 0x11c
685 a5c: e5d51008 ldrb r1, [r5, #8]
686 a60: e3a00004 mov r0, #4
687 a64: eb00025b bl 0x13d8
688 a68: e3a0c001 mov r12, #1
689 a6c: e5c4c000 strb r12, [r4]
690 a70: ea0000e1 b 0xdfc
691 a74: e59fc388 ldr r12, =0x800504 ; via 0xe04
692 a78: e3a010ff mov r1, #255 ; 0xff
693 a7c: e1dc01b0 ldrh r0, [r12, #16] ; 0x10
694 a80: e1c10000 bic r0, r1, r0
695 a84: e1dcc0be ldrh r12, [r12, #14] ; 0xe
696 a88: e20cc0ff and r12, r12, #255 ; 0xff
697 a8c: e150000c cmp r0, r12
698 a90: 1a000004 bne 0xaa8
699 a94: e3a00005 mov r0, #5
700 a98: ebfffda7 bl 0x13c
701 a9c: e3a0c004 mov r12, #4
702 aa0: e5c4c000 strb r12, [r4]
703 aa4: ea0000d4 b 0xdfc
704 aa8: e3a00006 mov r0, #6
705 aac: ebfffda2 bl 0x13c
706 ab0: e59f534c ldr r5, =0x800504 ; via 0xe04
707 ab4: e1a00005 mov r0, r5
708 ab8: ebfffd97 bl 0x11c
709 abc: e5d51008 ldrb r1, [r5, #8]
710 ac0: e3a00004 mov r0, #4
711 ac4: eb000243 bl 0x13d8
712 ac8: e3a0c001 mov r12, #1
713 acc: e5c4c000 strb r12, [r4]
714 ad0: ea0000c9 b 0xdfc
715 ad4: ebffff15 bl 0x730
716 ad8: e3500000 cmp r0, #0
717 adc: 0a000038 beq 0xbc4
718 ae0: ea00003a b 0xbd0
719 ae4: e59f0318 ldr r0, =0x800504 ; via 0xe04
720 ae8: ebfffd8b bl 0x11c
721 aec: e3a00000 mov r0, #0
722 af0: ebfffd91 bl 0x13c
723 af4: e3a0c003 mov r12, #3
724 af8: e5c4c000 strb r12, [r4]
725 afc: ea0000be b 0xdfc
726 b00: e250c001 subs r12, r0, #1
727 b04: 0a00006c beq 0xcbc
728 b08: e25cc001 subs r12, r12, #1
729 b0c: 0a000032 beq 0xbdc
730 b10: e25cc001 subs r12, r12, #1
731 b14: 0a000024 beq 0xbac
732 b18: e25cc001 subs r12, r12, #1
733 b1c: 0a000017 beq 0xb80
734 b20: e25cc001 subs r12, r12, #1
735 b24: 0a00000c beq 0xb5c
736 b28: e25cc001 subs r12, r12, #1
737 b2c: 1a0000b2 bne 0xdfc
738 b30: e3a00009 mov r0, #9
739 b34: ebfffd80 bl 0x13c
740 b38: e59f52c4 ldr r5, =0x800504 ; via 0xe04
741 b3c: e5d51008 ldrb r1, [r5, #8]
742 b40: e3a00004 mov r0, #4
743 b44: eb000223 bl 0x13d8
744 b48: e1a00005 mov r0, r5
745 b4c: ebfffd72 bl 0x11c
746 b50: e3a0c001 mov r12, #1
747 b54: e5c4c000 strb r12, [r4]
748 b58: ea0000a7 b 0xdfc
749 b5c: e59f52a0 ldr r5, =0x800504 ; via 0xe04
750 b60: e1a00005 mov r0, r5
751 b64: ebfffd6c bl 0x11c
752 b68: e5d51008 ldrb r1, [r5, #8]
753 b6c: e3a00004 mov r0, #4
754 b70: eb000218 bl 0x13d8
755 b74: e3a0c001 mov r12, #1
756 b78: e5c4c000 strb r12, [r4]
757 b7c: ea00009e b 0xdfc
758 b80: e3a00006 mov r0, #6
759 b84: ebfffd6c bl 0x13c
760 b88: e59f5274 ldr r5, =0x800504 ; via 0xe04
761 b8c: e5d51008 ldrb r1, [r5, #8]
762 b90: e3a00004 mov r0, #4
763 b94: eb00020f bl 0x13d8
764 b98: e1a00005 mov r0, r5
765 b9c: ebfffd5e bl 0x11c
766 ba0: e3a0c001 mov r12, #1
767 ba4: e5c4c000 strb r12, [r4]
768 ba8: ea000093 b 0xdfc
769 bac: e59f0274 ldr r0, =0x800514 ; via 0xe28
770 bb0: e3a0c000 mov r12, #0
771 bb4: e1c0c0b0 strh r12, [r0]
772 bb8: ebfffedc bl 0x730
773 bbc: e3500000 cmp r0, #0
774 bc0: 1a000002 bne 0xbd0
775 bc4: e3a0c003 mov r12, #3
776 bc8: e5c4c000 strb r12, [r4]
777 bcc: ea00008a b 0xdfc
778 bd0: e3a0c001 mov r12, #1
779 bd4: e5c4c000 strb r12, [r4]
780 bd8: ea000087 b 0xdfc
781 bdc: e59f6220 ldr r6, =0x800504 ; via 0xe04
782 be0: e5d6c000 ldrb r12, [r6]
783 be4: e35c0000 cmp r12, #0
784 be8: 0a000011 beq 0xc34
785 bec: e35c0001 cmp r12, #1
786 bf0: 0a00000f beq 0xc34
787 bf4: e35c0002 cmp r12, #2
788 bf8: 0a00000d beq 0xc34
789 bfc: e35c0003 cmp r12, #3
790 c00: 0a00000b beq 0xc34
791 c04: e35c0004 cmp r12, #4
792 c08: 0a000009 beq 0xc34
793 c0c: e3a00002 mov r0, #2
794 c10: ebfffd49 bl 0x13c
795 c14: e5d61008 ldrb r1, [r6, #8]
796 c18: e3a00004 mov r0, #4
797 c1c: eb0001ed bl 0x13d8
798 c20: e1a00006 mov r0, r6
799 c24: ebfffd3c bl 0x11c
800 c28: e3a0c001 mov r12, #1
801 c2c: e5c4c000 strb r12, [r4]
802 c30: ea000071 b 0xdfc
803 c34: e5d6500d ldrb r5, [r6, #13] ; 0xd
804 c38: e1d6c0ba ldrh r12, [r6, #10] ; 0xa
805 c3c: e20c001f and r0, r12, #31 ; 0x1f
806 c40: e20000ff and r0, r0, #255 ; 0xff
807 c44: e1a012ac mov r1, r12, lsr #5
808 c48: e201101f and r1, r1, #31 ; 0x1f
809 c4c: e20110ff and r1, r1, #255 ; 0xff
810 c50: e1a0c52c mov r12, r12, lsr #10
811 c54: e20cc01f and r12, r12, #31 ; 0x1f
812 c58: e20c20ff and r2, r12, #255 ; 0xff
813 c5c: e205c00f and r12, r5, #15 ; 0xf
814 c60: e20c30ff and r3, r12, #255 ; 0xff
815 c64: e1a0c225 mov r12, r5, lsr #4
816 c68: e5cdc000 strb r12, [sp]
817 c6c: eb00006e bl 0xe2c
818 c70: e5d6c009 ldrb r12, [r6, #9]
819 c74: e5d6000c ldrb r0, [r6, #12] ; 0xc
820 c78: e20c1003 and r1, r12, #3
821 c7c: e20110ff and r1, r1, #255 ; 0xff
822 c80: e1a0c12c mov r12, r12, lsr #2
823 c84: e20cc01f and r12, r12, #31 ; 0x1f
824 c88: e20c20ff and r2, r12, #255 ; 0xff
825 c8c: eb000098 bl 0xef4
826 c90: e3a00001 mov r0, #1
827 c94: ebfffd28 bl 0x13c
828 c98: e5d60000 ldrb r0, [r6]
829 c9c: e5d61008 ldrb r1, [r6, #8]
830 ca0: eb0001cc bl 0x13d8
831 ca4: e59fc168 ldr r12, =0x8000f0 ; via 0xe14
832 ca8: e5960004 ldr r0, [r6, #4]
833 cac: e58c0000 str r0, [r12]
834 cb0: e3a0c002 mov r12, #2
835 cb4: e5c4c000 strb r12, [r4]
836 cb8: ea00004f b 0xdfc
837 cbc: e59f0140 ldr r0, =0x800504 ; via 0xe04
838 cc0: ebfffd15 bl 0x11c
839 cc4: e3a00000 mov r0, #0
840 cc8: ebfffd1b bl 0x13c
841 ccc: e3a0c002 mov r12, #2
842 cd0: e5c4c000 strb r12, [r4]
843 cd4: ea000048 b 0xdfc
844 cd8: e250c001 subs r12, r0, #1
845 cdc: 0a000040 beq 0xde4
846 ce0: e25cc001 subs r12, r12, #1
847 ce4: 0a00000b beq 0xd18
848 ce8: e24cc001 sub r12, r12, #1
849 cec: e35c0003 cmp r12, #3
850 cf0: 8a000041 bhi 0xdfc
851 cf4: e59f5108 ldr r5, =0x800504 ; via 0xe04
852 cf8: e1a00005 mov r0, r5
853 cfc: ebfffd06 bl 0x11c
854 d00: e5d51008 ldrb r1, [r5, #8]
855 d04: e3a00004 mov r0, #4
856 d08: eb0001b2 bl 0x13d8
857 d0c: e3a0c001 mov r12, #1
858 d10: e5c4c000 strb r12, [r4]
859 d14: ea000038 b 0xdfc
860 d18: e59f60e4 ldr r6, =0x800504 ; via 0xe04
861 d1c: e5d6c000 ldrb r12, [r6]
862 d20: e35c0000 cmp r12, #0
863 d24: 0a00000c beq 0xd5c
864 d28: e35c0001 cmp r12, #1
865 d2c: 0a00000a beq 0xd5c
866 d30: e35c0002 cmp r12, #2
867 d34: 0a000008 beq 0xd5c
868 d38: e35c0003 cmp r12, #3
869 d3c: 0a000006 beq 0xd5c
870 d40: e35c0004 cmp r12, #4
871 d44: 0a000004 beq 0xd5c
872 d48: e3a00002 mov r0, #2
873 d4c: ebfffcfa bl 0x13c
874 d50: e3a0c001 mov r12, #1
875 d54: e5c4c000 strb r12, [r4]
876 d58: ea000027 b 0xdfc
877 d5c: e5d6500d ldrb r5, [r6, #13] ; 0xd
878 d60: e1d6c0ba ldrh r12, [r6, #10] ; 0xa
879 d64: e20c001f and r0, r12, #31 ; 0x1f
880 d68: e20000ff and r0, r0, #255 ; 0xff
881 d6c: e1a012ac mov r1, r12, lsr #5
882 d70: e201101f and r1, r1, #31 ; 0x1f
883 d74: e20110ff and r1, r1, #255 ; 0xff
884 d78: e1a0c52c mov r12, r12, lsr #10
885 d7c: e20cc01f and r12, r12, #31 ; 0x1f
886 d80: e20c20ff and r2, r12, #255 ; 0xff
887 d84: e205c00f and r12, r5, #15 ; 0xf
888 d88: e20c30ff and r3, r12, #255 ; 0xff
889 d8c: e1a0c225 mov r12, r5, lsr #4
890 d90: e5cdc000 strb r12, [sp]
891 d94: eb000024 bl 0xe2c
892 d98: e5d6c009 ldrb r12, [r6, #9]
893 d9c: e5d6000c ldrb r0, [r6, #12] ; 0xc
894 da0: e20c1003 and r1, r12, #3
895 da4: e20110ff and r1, r1, #255 ; 0xff
896 da8: e1a0c12c mov r12, r12, lsr #2
897 dac: e20cc01f and r12, r12, #31 ; 0x1f
898 db0: e20c20ff and r2, r12, #255 ; 0xff
899 db4: eb00004e bl 0xef4
900 db8: e3a00001 mov r0, #1
901 dbc: ebfffcde bl 0x13c
902 dc0: e5d60000 ldrb r0, [r6]
903 dc4: e5d61008 ldrb r1, [r6, #8]
904 dc8: eb000182 bl 0x13d8
905 dcc: e59f0040 ldr r0, =0x8000f0 ; via 0xe14
906 dd0: e596c004 ldr r12, [r6, #4]
907 dd4: e580c000 str r12, [r0]
908 dd8: e3a0c002 mov r12, #2
909 ddc: e5c4c000 strb r12, [r4]
910 de0: ea000005 b 0xdfc
911 de4: e59f0018 ldr r0, =0x800504 ; via 0xe04
912 de8: ebfffccb bl 0x11c
913 dec: e3a00000 mov r0, #0
914 df0: ebfffcd1 bl 0x13c
915 df4: e3a0c001 mov r12, #1
916 df8: e5c4c000 strb r12, [r4]
917 dfc: e28dd008 add sp, sp, #8
918 e00: e8bd8070 ldmia sp!, {r4, r5, r6, pc}
919
920 ; literal pool
921 e04: 00800504
922 e08: 00001fe8
923 e0c: 008000f8
924 e10: 0080050c
925 e14: 008000f0
926 e18: 0080073c
927 e1c: 0007f8c3
928 e20: 000fffff
929 e24: 008000f4
930 e28: 00800514
931
932 ; 0xe2c routine matches C035 version
933 e2c: e92d4070 stmdb sp!, {r4, r5, r6, lr}
934 e30: e5dd5010 ldrb r5, [sp, #16] ; 0x10
935 e34: e59fc48c ldr r12, =0xffff ; via 0x12c8
936 e38: e59f4484 ldr r4, =0xfffffa08 ; via 0x12c4
937 e3c: e1c4c0b0 strh r12, [r4]
938 e40: e59f4484 ldr r4, =0xfffffa0a ; via 0x12cc
939 e44: e1c4c0b0 strh r12, [r4]
940 e48: e59f4480 ldr r4, =0xfffff804 ; via 0x12d0
941 e4c: e3a0c0f5 mov r12, #245 ; 0xf5
942 e50: e1c4c0b0 strh r12, [r4]
943 e54: e3a0c0a0 mov r12, #160 ; 0xa0
944 e58: e1c4c0b0 strh r12, [r4]
945 e5c: e59f4470 ldr r4, =0xfffffb10 ; via 0x12d4
946 e60: e3a0cc01 mov r12, #256 ; 0x100
947 e64: e1c4c0b0 strh r12, [r4]
948 e68: e59f6468 ldr r6, =0xfffffd00 ; via 0x12d8
949 e6c: e3a04b01 mov r4, #1024 ; 0x400
950 e70: e3a0c801 mov r12, #65536 ; 0x10000
951 e74: e24cc0de sub r12, r12, #222 ; 0xde
952 e78: e106c0b4 strh r12, [r6, -r4]
953 e7c: e59fc45c ldr r12, =0x2002 ; via 0x12e0
954 e80: e59f4454 ldr r4, =0xffff9800 ; via 0x12dc
955 e84: e1c4c0b0 strh r12, [r4]
956 e88: e1b04f8c movs r4, r12, lsl #31
957 e8c: 1afffffd bne 0xe88
958 e90: e3a0c083 mov r12, #131 ; 0x83
959 e94: e28cca01 add r12, r12, #4096 ; 0x1000
960 e98: e1c6c0b0 strh r12, [r6]
961 e9c: e1d6c0b2 ldrh r12, [r6, #2]
962 ea0: e20c40bf and r4, r12, #191 ; 0xbf
963 ea4: e20cccff and r12, r12, #65280 ; 0xff00
964 ea8: e184c00c orr r12, r4, r12
965 eac: e1c6c0b2 strh r12, [r6, #2]
966 eb0: e3a0cc02 mov r12, #512 ; 0x200
967 eb4: e200001f and r0, r0, #31 ; 0x1f
968 eb8: e3800e2a orr r0, r0, #672 ; 0x2a0
969 ebc: e10600bc strh r0, [r6, -r12]
970 ec0: e3a0cf7d mov r12, #500 ; 0x1f4
971 ec4: e201001f and r0, r1, #31 ; 0x1f
972 ec8: e38000c0 orr r0, r0, #192 ; 0xc0
973 ecc: e10600bc strh r0, [r6, -r12]
974 ed0: e3a0cf7e mov r12, #504 ; 0x1f8
975 ed4: e202001f and r0, r2, #31 ; 0x1f
976 ed8: e38000c0 orr r0, r0, #192 ; 0xc0
977 edc: e10600bc strh r0, [r6, -r12]
978 ee0: e3a0cb01 mov r12, #1024 ; 0x400
979 ee4: e1830205 orr r0, r3, r5, lsl #4
980 ee8: e3800cff orr r0, r0, #65280 ; 0xff00
981 eec: e10600bc strh r0, [r6, -r12]
982 ef0: e8bd8070 ldmia sp!, {r4, r5, r6, pc}
983
984 ; 0xef4 routine matches C035 version
985 ef4: e92d4070 stmdb sp!, {r4, r5, r6, lr}
986 ef8: e59fc3e4 ldr r12, =0xfffff900 ; via 0x12e4
987 efc: e1dc40b0 ldrh r4, [r12]
988 f00: e59f33d0 ldr r3, =0xfffffd00 ; via 0x12d8
989 f04: e3a05b01 mov r5, #1024 ; 0x400
990 f08: e3a0c801 mov r12, #65536 ; 0x10000
991 f0c: e24cc0de sub r12, r12, #222 ; 0xde
992 f10: e103c0b5 strh r12, [r3, -r5]
993 f14: e59f63c0 ldr r6, =0xffff9800 ; via 0x12dc
994 f18: e59fc3c0 ldr r12, =0x2002 ; via 0x12e0
995 f1c: e1c6c0b0 strh r12, [r6]
996 f20: e1b05f8c movs r5, r12, lsl #31
997 f24: 1afffffd bne 0xf20
998 f28: e181c102 orr r12, r1, r2, lsl #2
999 f2c: e1a0c28c mov r12, r12, lsl #5
1000 f30: e38cc002 orr r12, r12, #2
1001 f34: e38cca02 orr r12, r12, #8192 ; 0x2000
1002 f38: e1c6c0b0 strh r12, [r6]
1003 f3c: e3500001 cmp r0, #1
1004 f40: 0a000009 beq 0xf6c
1005 f44: e3500000 cmp r0, #0
1006 f48: 1a000006 bne 0xf68
1007 f4c: e1d3c0b2 ldrh r12, [r3, #2]
1008 f50: e38cc040 orr r12, r12, #64 ; 0x40
1009 f54: e1c3c0b2 strh r12, [r3, #2]
1010 f58: e3a0c0a1 mov r12, #161 ; 0xa1
1011 f5c: e28cca01 add r12, r12, #4096 ; 0x1000
1012 f60: e1c3c0b0 strh r12, [r3]
1013 f64: ea000008 b 0xf8c
1014 f68: eafffffe b 0xf68
1015 f6c: e1d3c0b2 ldrh r12, [r3, #2]
1016 f70: e20c00bf and r0, r12, #191 ; 0xbf
1017 f74: e20cccff and r12, r12, #65280 ; 0xff00
1018 f78: e180c00c orr r12, r0, r12
1019 f7c: e1c3c0b2 strh r12, [r3, #2]
1020 f80: e3a0c081 mov r12, #129 ; 0x81
1021 f84: e28cca01 add r12, r12, #4096 ; 0x1000
1022 f88: e1c3c0b0 strh r12, [r3]
1023 f8c: e1d6c0b0 ldrh r12, [r6]
1024 f90: e38cc010 orr r12, r12, #16 ; 0x10
1025 f94: e1a0c80c mov r12, r12, lsl #16
1026 f98: e1a0c82c mov r12, r12, lsr #16
1027 f9c: e1c6c0b0 strh r12, [r6]
1028 fa0: e1b00f8c movs r0, r12, lsl #31
1029 fa4: 1afffffd bne 0xfa0
1030 fa8: e3a0cb01 mov r12, #1024 ; 0x400
1031 fac: e10340bc strh r4, [r3, -r12]
1032 fb0: e8bd8070 ldmia sp!, {r4, r5, r6, pc}
1033
1034 ; 0xfb4 routine matches C035 version except for different var location
1035 fb4: e3a0c0ff mov r12, #255 ; 0xff
1036 fb8: e5c0c000 strb r12, [r0]
1037 fbc: e59fc324 ldr r12, =0xffff5000 ; via 0x12e8
1038 fc0: e5dc2805 ldrb r2, [r12, #2053] ; 0x805
1039 fc4: e1b02f82 movs r2, r2, lsl #31
1040 fc8: 1a000001 bne 0xfd4
1041 fcc: e3a02000 mov r2, #0
1042 fd0: ea000003 b 0xfe4
1043 fd4: e5dc2800 ldrb r2, [r12, #2048] ; 0x800
1044 fd8: e352003c cmp r2, #60 ; 0x3c
1045 fdc: 0a000024 beq 0x1074
1046 fe0: e3a02001 mov r2, #1
1047 fe4: e5dc3005 ldrb r3, [r12, #5]
1048 fe8: e1b03f83 movs r3, r3, lsl #31
1049 fec: 1a000002 bne 0xffc
1050 ff0: e3520001 cmp r2, #1
1051 ff4: 0a000003 beq 0x1008
1052 ff8: ea000015 b 0x1054
1053 ffc: e5dcc000 ldrb r12, [r12]
1054 1000: e35c003c cmp r12, #60 ; 0x3c
1055 1004: 0a000017 beq 0x1068
1056 ; 0x8005a8 var in this version seems to correspond to 0x800534 in C035
1057 1008: e59fc2dc ldr r12, =0x8005a8 ; via 0x12ec
1058 100c: e5dc0000 ldrb r0, [r12]
1059 1010: e3500000 cmp r0, #0
1060 1014: 1a000008 bne 0x103c
1061 1018: e3a00001 mov r0, #1
1062 101c: e5cc0000 strb r0, [r12]
1063 1020: e59f02c8 ldr r0, =0xfffffd02 ; via 0x12f0
1064 1024: e1d0c0b0 ldrh r12, [r0]
1065 1028: e20c20bf and r2, r12, #191 ; 0xbf
1066 102c: e20cccff and r12, r12, #65280 ; 0xff00
1067 1030: e182c00c orr r12, r2, r12
1068 1034: e1c0c0b0 strh r12, [r0]
1069 1038: ea000005 b 0x1054
1070 103c: e3a00000 mov r0, #0
1071 1040: e5cc0000 strb r0, [r12]
1072 1044: e59fc2a4 ldr r12, =0xfffffd02 ; via 0x12f0
1073 1048: e1dc00b0 ldrh r0, [r12]
1074 104c: e3800040 orr r0, r0, #64 ; 0x40
1075 1050: e1cc00b0 strh r0, [r12]
1076 1054: e59fc290 ldr r12, =0x8005a8 ; via 0x12ec
1077 1058: e5dcc000 ldrb r12, [r12]
1078 105c: e5c1c000 strb r12, [r1]
1079 1060: e3a00000 mov r0, #0
1080 1064: e12fff1e bx lr
1081 1068: e3a0c001 mov r12, #1
1082 106c: e5c0c000 strb r12, [r0]
1083 1070: ea000001 b 0x107c
1084 1074: e3a0c000 mov r12, #0
1085 1078: e5c0c000 strb r12, [r0]
1086 107c: e59fc268 ldr r12, =0x8005a8 ; via 0x12ec
1087 1080: e5dcc000 ldrb r12, [r12]
1088 1084: e5c1c000 strb r12, [r1]
1089 1088: e3a00001 mov r0, #1
1090 108c: e12fff1e bx lr
1091
1092 ; 0x1090 routine matches C035 version
1093 1090: e92d4070 stmdb sp!, {r4, r5, r6, lr}
1094 1094: e24dd00c sub sp, sp, #12 ; 0xc
1095 1098: e1a05000 mov r5, r0
1096 109c: e59f4250 ldr r4, =0x800504 ; via 0x12f4
1097 10a0: e2846008 add r6, r4, #8
1098 10a4: e3a0c000 mov r12, #0
1099 10a8: e5cdc008 strb r12, [sp, #8]
1100 10ac: e3550000 cmp r5, #0
1101 10b0: 1a000009 bne 0x10dc
1102 10b4: e59f123c ldr r1, =0x800510 ; via 0x12f8
1103 10b8: e1a00006 mov r0, r6
1104 10bc: ebffffbc bl 0xfb4
1105 10c0: e3500001 cmp r0, #1
1106 10c4: 1a000004 bne 0x10dc
1107 10c8: e5d4000c ldrb r0, [r4, #12] ; 0xc
1108 10cc: e3a01001 mov r1, #1
1109 10d0: e3a02002 mov r2, #2
1110 10d4: ebffff86 bl 0xef4
1111 10d8: ea000001 b 0x10e4
1112 10dc: e3550001 cmp r5, #1
1113 10e0: 1afffff1 bne 0x10ac
1114 10e4: e28d0008 add r0, sp, #8
1115 10e8: ebfffc76 bl 0x2c8
1116 10ec: e5ddc008 ldrb r12, [sp, #8]
1117 10f0: e35c0000 cmp r12, #0
1118 10f4: 0a00000d beq 0x1130
1119 10f8: e5dd0008 ldrb r0, [sp, #8]
1120 10fc: ebfffdec bl 0x8b4
1121 1100: ea00000a b 0x1130
1122 1104: e5d4000c ldrb r0, [r4, #12] ; 0xc
1123 1108: e3a01001 mov r1, #1
1124 110c: e3a02002 mov r2, #2
1125 1110: ebffff77 bl 0xef4
1126 1114: e3a0c002 mov r12, #2
1127 1118: e5cdc000 strb r12, [sp]
1128 111c: e3a00004 mov r0, #4
1129 1120: e3a01000 mov r1, #0
1130 1124: e3a02000 mov r2, #0
1131 1128: e3a03002 mov r3, #2
1132 112c: ebffff3e bl 0xe2c
1133 1130: e5d40008 ldrb r0, [r4, #8]
1134 1134: e59fc1c0 ldr r12, =0x8000f0 ; via 0x12fc
1135 1138: e59c1000 ldr r1, [r12]
1136 113c: e28d2009 add r2, sp, #9
1137 1140: eb0000b8 bl 0x1428
1138 1144: e3500001 cmp r0, #1
1139 1148: 1afffff8 bne 0x1130
1140 114c: e5ddc009 ldrb r12, [sp, #9]
1141 1150: e35c003c cmp r12, #60 ; 0x3c
1142 1154: 1afffff5 bne 0x1130
1143 1158: e28d0008 add r0, sp, #8
1144 115c: ebfffc59 bl 0x2c8
1145 1160: e3500001 cmp r0, #1
1146 1164: 1affffe6 bne 0x1104
1147 1168: e5ddc008 ldrb r12, [sp, #8]
1148 116c: e35c0000 cmp r12, #0
1149 1170: 1affffe0 bne 0x10f8
1150 1174: eaffffed b 0x1130
1151
1152 ; 0x1178 routine matches C035 version
1153 1178: e3a0ca02 mov r12, #8192 ; 0x2000
1154 117c: e59cc000 ldr r12, [r12]
1155 1180: e35c0000 cmp r12, #0
1156 1184: 0a000011 beq 0x11d0
1157 1188: e35c0001 cmp r12, #1
1158 118c: 1a00000d bne 0x11c8
1159 1190: e3a0c018 mov r12, #24 ; 0x18
1160 1194: e28cc403 add r12, r12, #50331648 ; 0x3000000
1161 1198: e59cc000 ldr r12, [r12]
1162 119c: e20c04ff and r0, r12, #4278190080 ; 0xff000000
1163 11a0: e3700416 cmn r0, #369098752 ; 0x16000000
1164 11a4: 1a000007 bne 0x11c8
1165 11a8: e3a00018 mov r0, #24 ; 0x18
1166 11ac: e2800403 add r0, r0, #50331648 ; 0x3000000
1167 11b0: e28cc002 add r12, r12, #2
1168 11b4: e1a0c10c mov r12, r12, lsl #2
1169 11b8: e3ccc4ff bic r12, r12, #4278190080 ; 0xff000000
1170 11bc: e790c00c ldr r12, [r0, r12]
1171 11c0: e37c0001 cmn r12, #1
1172 11c4: 1a000001 bne 0x11d0
1173 11c8: e3a00000 mov r0, #0
1174 11cc: e1a0f00e mov pc, lr
1175 11d0: e3a00001 mov r0, #1
1176 11d4: e1a0f00e mov pc, lr
1177
1178 ; 0x11d8 (main) routine matches C035 version
1179 11d8: e92d4070 stmdb sp!, {r4, r5, r6, lr}
1180 11dc: e24dd008 sub sp, sp, #8
1181 11e0: e3a0c002 mov r12, #2
1182 11e4: e5cdc000 strb r12, [sp]
1183 11e8: e3a00004 mov r0, #4
1184 11ec: e3a01000 mov r1, #0
1185 11f0: e3a02000 mov r2, #0
1186 11f4: e3a03002 mov r3, #2
1187 11f8: ebffff0b bl 0xe2c
1188 11fc: eb00004f bl 0x1340
1189 1200: e59f00f4 ldr r0, =0x8000f0 ; via 0x12fc
1190 1204: e3a0c802 mov r12, #131072 ; 0x20000
1191 1208: e24ccdad sub r12, r12, #11072 ; 0x2b40
1192 120c: e580c000 str r12, [r0]
1193 1210: e59f60d8 ldr r6, =0xfffffd02 ; via 0x12f0
1194 1214: e1d6c0b0 ldrh r12, [r6]
1195 1218: e38cc040 orr r12, r12, #64 ; 0x40
1196 121c: e1c6c0b0 strh r12, [r6]
1197 1220: ebffffd4 bl 0x1178
1198 1224: e3500000 cmp r0, #0
1199 1228: 1a000001 bne 0x1234
1200 122c: e3a00000 mov r0, #0
1201 1230: ebffff96 bl 0x1090
1202 1234: e1d6c0b0 ldrh r12, [r6]
1203 1238: e38cc040 orr r12, r12, #64 ; 0x40
1204 123c: e1c6c0b0 strh r12, [r6]
1205 1240: e59f10b0 ldr r1, =0x800510 ; via 0x12f8
1206 1244: e2415004 sub r5, r1, #4
1207 1248: e59f40b0 ldr r4, =0x373c ; via 0x1300
1208 124c: e1a00005 mov r0, r5
1209 1250: ebffff57 bl 0xfb4
1210 1254: e3500000 cmp r0, #0
1211 1258: 1a000001 bne 0x1264
1212 125c: e2544001 subs r4, r4, #1
1213 1260: 1afffff9 bne 0x124c
1214 1264: e3500001 cmp r0, #1
1215 1268: 0a00000c beq 0x12a0
1216 126c: e1d6c0b0 ldrh r12, [r6]
1217 1270: e20c00bf and r0, r12, #191 ; 0xbf
1218 1274: e20cccff and r12, r12, #65280 ; 0xff00
1219 1278: e180c00c orr r12, r0, r12
1220 127c: e1c6c0b0 strh r12, [r6]
1221 1280: e3a0ca02 mov r12, #8192 ; 0x2000
1222 1284: e59c0000 ldr r0, [r12]
1223 1288: e1b010a0 movs r1, r0, lsr #1
1224 128c: 1a000002 bne 0x129c
1225 1290: e59c1004 ldr r1, [r12, #4]
1226 1294: eb0000d2 bl 0x15e4 ; 0x158c in C035
1227 1298: eafffffe b 0x1298
1228 129c: eafffffe b 0x129c
1229 12a0: e59fc050 ldr r12, =0x800510 ; via 0x12f8
1230 12a4: e5dc0000 ldrb r0, [r12]
1231 12a8: e3a01001 mov r1, #1
1232 12ac: e3a02002 mov r2, #2
1233 12b0: ebffff0f bl 0xef4
1234 12b4: e3a00001 mov r0, #1
1235 12b8: ebffff74 bl 0x1090
1236 12bc: e28dd008 add sp, sp, #8
1237 12c0: e8bd8070 ldmia sp!, {r4, r5, r6, pc}
1238
1239 ; literal pool
1240 12c4: fffffa08
1241 12c8: 0000ffff
1242 12cc: fffffa0a
1243 12d0: fffff804
1244 12d4: fffffb10
1245 12d8: fffffd00
1246 12dc: ffff9800
1247 12e0: 00002002
1248 12e4: fffff900
1249 12e8: ffff5000
1250 12ec: 008005a8
1251 12f0: fffffd02
1252 12f4: 00800504
1253 12f8: 00800510
1254 12fc: 008000f0
1255 1300: 0000373c
1256
1257 ; 0x1304 routine matches C035 version
1258 1304: e3510000 cmp r1, #0
1259 1308: 012fff1e bxeq lr
1260 130c: e59fc178 ldr r12, =0x1fe8 ; via 0x148c
1261 1310: e79cc102 ldr r12, [r12, r2, lsl #2]
1262 1314: e28c3005 add r3, r12, #5
1263 1318: e5d32000 ldrb r2, [r3]
1264 131c: e3120020 tst r2, #32 ; 0x20
1265 1320: 0afffffc beq 0x1318
1266 1324: e4d02001 ldrb r2, [r0], #1
1267 1328: e5cc2000 strb r2, [r12]
1268 132c: e2411001 sub r1, r1, #1
1269 1330: e1a01801 mov r1, r1, lsl #16
1270 1334: e1b01821 movs r1, r1, lsr #16
1271 1338: 1afffff6 bne 0x1318
1272 133c: e12fff1e bx lr
1273
1274 ; 0x1340 routine matches C035 version
1275 1340: e92d4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
1276 1344: e59fc144 ldr r12, =0xffff6000 ; via 0x1490
1277 1348: e5dc0000 ldrb r0, [r12]
1278 134c: e3800002 orr r0, r0, #2
1279 1350: e5cc0000 strb r0, [r12]
1280 1354: e5dc0000 ldrb r0, [r12]
1281 1358: e20000fe and r0, r0, #254 ; 0xfe
1282 135c: e5cc0000 strb r0, [r12]
1283 1360: e5dc0000 ldrb r0, [r12]
1284 1364: e20000fd and r0, r0, #253 ; 0xfd
1285 1368: e5cc0000 strb r0, [r12]
1286 136c: e3a0b003 mov r11, #3
1287 1370: e3a05000 mov r5, #0
1288 1374: e3a0a02a mov r10, #42 ; 0x2a
1289 1378: e3a09080 mov r9, #128 ; 0x80
1290 137c: e3a070bf mov r7, #191 ; 0xbf
1291 1380: e3a04007 mov r4, #7
1292 1384: e3a02002 mov r2, #2
1293 1388: e59f60fc ldr r6, =0x1fe8 ; via 0x148c
1294 138c: e496c004 ldr r12, [r6], #4
1295 1390: e28c3008 add r3, r12, #8
1296 1394: e5c34000 strb r4, [r3]
1297 1398: e28c0003 add r0, r12, #3
1298 139c: e5c07000 strb r7, [r0]
1299 13a0: e28c1002 add r1, r12, #2
1300 13a4: e5d18000 ldrb r8, [r1]
1301 13a8: e3888010 orr r8, r8, #16 ; 0x10
1302 13ac: e5c18000 strb r8, [r1]
1303 13b0: e5c09000 strb r9, [r0]
1304 13b4: e5c14000 strb r4, [r1]
1305 13b8: e5c07000 strb r7, [r0]
1306 13bc: e5cca000 strb r10, [r12]
1307 13c0: e5cc5001 strb r5, [r12, #1]
1308 13c4: e5c0b000 strb r11, [r0]
1309 13c8: e5c35000 strb r5, [r3]
1310 13cc: e2522001 subs r2, r2, #1
1311 13d0: 1affffed bne 0x138c
1312 13d4: e8bd8ff0 ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc}
1313
1314 ; 0x13d8 routine matches C035 version
1315 13d8: e59fc0ac ldr r12, =0x1fe8 ; via 0x148c
1316 13dc: e79c2101 ldr r2, [r12, r1, lsl #2]
1317 13e0: e282c005 add r12, r2, #5
1318 13e4: e5dc1000 ldrb r1, [r12]
1319 13e8: e3110040 tst r1, #64 ; 0x40
1320 13ec: 0afffffc beq 0x13e4
1321 13f0: e282c003 add r12, r2, #3
1322 13f4: e5dc1000 ldrb r1, [r12]
1323 13f8: e3811080 orr r1, r1, #128 ; 0x80
1324 13fc: e5cc1000 strb r1, [r12]
1325 1400: e59f108c ldr r1, =0x1ff0 ; via 0x1494
1326 1404: e7d13080 ldrb r3, [r1, r0, lsl #1]
1327 1408: e5c23001 strb r3, [r2, #1]
1328 140c: e0810080 add r0, r1, r0, lsl #1
1329 1410: e5d00001 ldrb r0, [r0, #1]
1330 1414: e5c20000 strb r0, [r2]
1331 1418: e5dc0000 ldrb r0, [r12]
1332 141c: e200007f and r0, r0, #127 ; 0x7f
1333 1420: e5cc0000 strb r0, [r12]
1334 1424: e12fff1e bx lr
1335
1336 ; 0x1428 routine matches C035 version
1337 1428: e3510000 cmp r1, #0
1338 142c: 1a000006 bne 0x144c
1339 1430: e59fc054 ldr r12, =0x1fe8 ; via 0x148c
1340 1434: e79cc100 ldr r12, [r12, r0, lsl #2]
1341 1438: e28c1005 add r1, r12, #5
1342 143c: e5d10000 ldrb r0, [r1]
1343 1440: e1b00f80 movs r0, r0, lsl #31
1344 1444: 0afffffc beq 0x143c
1345 1448: ea000009 b 0x1474
1346 144c: e59fc038 ldr r12, =0x1fe8 ; via 0x148c
1347 1450: e79cc100 ldr r12, [r12, r0, lsl #2]
1348 1454: e28c3005 add r3, r12, #5
1349 1458: e5d30000 ldrb r0, [r3]
1350 145c: e1b00f80 movs r0, r0, lsl #31
1351 1460: 1a000001 bne 0x146c
1352 1464: e2511001 subs r1, r1, #1
1353 1468: 1afffffa bne 0x1458
1354 146c: e3510000 cmp r1, #0
1355 1470: 0a000003 beq 0x1484
1356 1474: e5dcc000 ldrb r12, [r12]
1357 1478: e5c2c000 strb r12, [r2]
1358 147c: e3a00001 mov r0, #1
1359 1480: e12fff1e bx lr
1360 1484: e3a00000 mov r0, #0
1361 1488: e12fff1e bx lr
1362
1363 ; literal pool
1364 148c: 00001fe8
1365 1490: ffff6000
1366 1494: 00001ff0
1367
1368 ; Real differences from the C035 version begin here
1369
1370 1498: eafffffe b 0x1498
1371 149c: eafffffe b 0x149c
1372 14a0: eafffffe b 0x14a0
1373 14a4: eafffffe b 0x14a4
1374 14a8: eafffffe b 0x14a8
1375 14ac: eafffffe b 0x14ac
1376 14b0: eafffffe b 0x14b0
1377
1378 ; Bogus interrupt/exception handlers
1379
1380 14b4: e92d4010 stmdb sp!, {r4, lr}
1381 14b8: e59fc080 ldr r12, =0x800000 ; via 0x1540
1382 14bc: e59c4000 ldr r4, [r12]
1383 14c0: eb00009a bl 0x1730
1384 14c4: e8bd8010 ldmia sp!, {r4, pc}
1385
1386 14c8: e92d4010 stmdb sp!, {r4, lr}
1387 14cc: e59fc070 ldr r12, =0x800004 ; via 0x1544
1388 14d0: e59c4000 ldr r4, [r12]
1389 14d4: eb000095 bl 0x1730
1390 14d8: e8bd8010 ldmia sp!, {r4, pc}
1391
1392 14dc: e92d4010 stmdb sp!, {r4, lr}
1393 14e0: e59fc060 ldr r12, =0x800008 ; via 0x1548
1394 14e4: e59c4000 ldr r4, [r12]
1395 14e8: eb000090 bl 0x1730
1396 14ec: e8bd8010 ldmia sp!, {r4, pc}
1397
1398 14f0: e92d4010 stmdb sp!, {r4, lr}
1399 14f4: e59fc050 ldr r12, =0x80000c ; via 0x154c
1400 14f8: e59c4000 ldr r4, [r12]
1401 14fc: eb00008b bl 0x1730
1402 1500: e8bd8010 ldmia sp!, {r4, pc}
1403
1404 1504: e92d4010 stmdb sp!, {r4, lr}
1405 1508: e59fc040 ldr r12, =0x800010 ; via 0x1550
1406 150c: e59c4000 ldr r4, [r12]
1407 1510: eb000086 bl 0x1730
1408 1514: e8bd8010 ldmia sp!, {r4, pc}
1409
1410 1518: e92d4010 stmdb sp!, {r4, lr}
1411 151c: e59fc030 ldr r12, =0x800014 ; via 0x1554
1412 1520: e59c4000 ldr r4, [r12]
1413 1524: eb000081 bl 0x1730
1414 1528: e8bd8010 ldmia sp!, {r4, pc}
1415
1416 152c: e92d4010 stmdb sp!, {r4, lr}
1417 1530: e59fc020 ldr r12, =0x800018 ; via 0x1558
1418 1534: e59c4000 ldr r4, [r12]
1419 1538: eb00007c bl 0x1730
1420 153c: e8bd8010 ldmia sp!, {r4, pc}
1421
1422 ; literal pool for the above bogosity
1423 1540: 00800000
1424 1544: 00800004
1425 1548: 00800008
1426 154c: 0080000c
1427 1550: 00800010
1428 1554: 00800014
1429 1558: 00800018
1430
1431 ; RESET entry continues here right after setting SP
1432 ; the STUPID switch to user mode happens here
1433 155c: e10f0000 mrs r0, CPSR
1434 1560: e3c0001f bic r0, r0, #31 ; 0x1f
1435 1564: e3800010 orr r0, r0, #16 ; 0x10
1436 1568: e129f000 msr CPSR_fc, r0
1437 156c: e28f0001 add r0, pc, #1
1438 1570: e12fff10 bx r0
1439 1574: 4818 ldr r0, =0x8005ac ; via 0x15d8
1440 1576: 4685 mov sp, r0
1441 1578: 4818 ldr r0, =0x190 ; via 0x15dc
1442 157a: 4485 add sp, r0
1443 157c: 4818 ldr r0, =0x1794 ; via 0x15e0
1444 157e: 2101 mov r1, #1
1445 1580: 42c8 cmn r0, r1
1446 1582: d001 beq 0x1588
1447 1584: f000 f806 bl 0x1594 ; "auto init"
1448 1588: f000 f8f0 bl 0x176c ; main()
1449 ; the following is a call to some "post-main" function
1450 ; which became a tight loop (b .) in the C035 version
1451 158c: 2001 mov r0, #1
1452 158e: f000 f867 bl 0x1660
1453 1592: e7fe b 0x1592
1454
1455 ; Thumb version of TI's "auto init" function
1456 1594: 2503 mov r5, #3
1457 1596: e01a b 0x15ce
1458 1598: 6841 ldr r1, [r0, #4]
1459 159a: 3008 add r0, #8
1460 159c: 4229 tst r1, r5
1461 159e: d10c bne 0x15ba
1462 15a0: 1c1a add r2, r3, #0
1463 15a2: 43aa bic r2, r5
1464 15a4: d009 beq 0x15ba
1465 15a6: 1f12 sub r2, r2, #4
1466 15a8: 5884 ldr r4, [r0, r2]
1467 15aa: 508c str r4, [r1, r2]
1468 15ac: d1fb bne 0x15a6
1469 15ae: 1c1a add r2, r3, #0
1470 15b0: 43aa bic r2, r5
1471 15b2: 1880 add r0, r0, r2
1472 15b4: 402b and r3, r5
1473 15b6: d006 beq 0x15c6
1474 15b8: 1889 add r1, r1, r2
1475 15ba: 1c1a add r2, r3, #0
1476 15bc: 1e52 sub r2, r2, #1
1477 15be: 5c84 ldrb r4, [r0, r2]
1478 15c0: 548c strb r4, [r1, r2]
1479 15c2: d1fb bne 0x15bc
1480 15c4: 18c0 add r0, r0, r3
1481 15c6: 4228 tst r0, r5
1482 15c8: d001 beq 0x15ce
1483 15ca: 43a8 bic r0, r5
1484 15cc: 3004 add r0, #4
1485 15ce: 6803 ldr r3, [r0, #0]
1486 15d0: 2b00 cmp r3, #0
1487 15d2: d1e1 bne 0x1598
1488 15d4: 46f7 mov pc, lr
1489 15d6: 0000
1490
1491 ; literal pool
1492 15d8: 008005ac
1493 15dc: 00000190
1494 15e0: 00001794
1495
1496 ; Routine corresponds to 0x158c in C035 version
1497 15e4: e92d4010 stmdb sp!, {r4, lr}
1498 15e8: e1a04000 mov r4, r0
1499 15ec: e1b0c0a4 movs r12, r4, lsr #1
1500 15f0: 0a000001 beq 0x15fc
1501 15f4: e3a00001 mov r0, #1
1502 15f8: e8bd8010 ldmia sp!, {r4, pc}
1503 15fc: e59f0054 ldr r0, =0xfffffb10 ; via 0x1658
1504 1600: e1d0c0b0 ldrh r12, [r0]
1505 1604: e20c20ff and r2, r12, #255 ; 0xff
1506 1608: e20ccb3f and r12, r12, #64512 ; 0xfc00
1507 160c: e182c00c orr r12, r2, r12
1508 1610: e1a0c80c mov r12, r12, lsl #16
1509 1614: e1a0c82c mov r12, r12, lsr #16
1510 1618: e3540000 cmp r4, #0
1511 161c: 1a000004 bne 0x1634
1512 1620: e38ccc01 orr r12, r12, #256 ; 0x100
1513 1624: e1c0c0b0 strh r12, [r0]
1514 1628: e1a04001 mov r4, r1
1515 162c: eb00003f bl 0x1730
1516 1630: e8bd8010 ldmia sp!, {r4, pc}
1517 1634: e3540001 cmp r4, #1
1518 1638: 18bd8010 ldmneia sp!, {r4, pc}
1519 163c: e3a00020 mov r0, #32 ; 0x20
1520 1640: e3a010cc mov r1, #204 ; 0xcc
1521 1644: e59f2010 ldr r2, =0x800020 ; via 0x165c
1522 1648: eb000040 bl 0x1750
1523 164c: e1a00004 mov r0, r4
1524 1650: eb1ffa72 bl 0x800020
1525 1654: e8bd8010 ldmia sp!, {r4, pc}
1526
1527 ; literal pool
1528 1658: fffffb10
1529 165c: 00800020
1530
1531 ; this weird function would gain control if main() returned
1532 ; it seems to be an exit() implementation that does atexit processing
1533 1660: b570 push {r4, r5, r6, lr}
1534 1662: 4812 ldr r0, =0x800520 ; via 0x16ac
1535 1664: 6806 ldr r6, [r0, #0]
1536 1666: 2e00 cmp r6, #0
1537 1668: d009 beq 0x167e
1538 166a: 4911 ldr r1, =0x800528 ; via 0x16b0
1539 166c: 00b0 lsl r0, r6, #2
1540 166e: 180d add r5, r1, r0
1541 1670: 3d04 sub r5, #4
1542 1672: 682c ldr r4, [r5, #0]
1543 1674: f000 f884 bl 0x1780
1544 1678: 3e01 sub r6, #1
1545 167a: 2e00 cmp r6, #0
1546 167c: d1f8 bne 0x1670
1547 167e: 480d ldr r0, =0x800524 ; via 0x16b4
1548 1680: 6804 ldr r4, [r0, #0]
1549 1682: 2c00 cmp r4, #0
1550 1684: d001 beq 0x168a
1551 1686: f000 f87b bl 0x1780
1552 168a: 46c0 nop (mov r8, r8)
1553 168c: e7fe b 0x168c
1554
1555 ; appears to be atexit(), never called
1556 168e: b510 push {r4, lr}
1557 1690: 4a06 ldr r2, =0x800520 ; via 0x16ac
1558 1692: 6811 ldr r1, [r2, #0]
1559 1694: 2920 cmp r1, #32 ; 0x20
1560 1696: db01 blt 0x169c
1561 1698: 2001 mov r0, #1
1562 169a: bd10 pop {r4, pc}
1563 169c: 4c04 ldr r4, =0x800528 ; via 0x16b0
1564 169e: 008b lsl r3, r1, #2
1565 16a0: 50e0 str r0, [r4, r3]
1566 16a2: 1c48 add r0, r1, #1
1567 16a4: 6010 str r0, [r2, #0]
1568 16a6: 2000 mov r0, #0
1569 16a8: bd10 pop {r4, pc}
1570
1571 16aa: e7fe b 0x16aa
1572
1573 ; literal pool
1574 16ac: 00800520
1575 16b0: 00800528
1576 16b4: 00800524
1577
1578 ; Checksum function listed in CAL228 document
1579 16b8: e92d4000 stmdb sp!, {lr}
1580 16bc: e24dd008 sub sp, sp, #8
1581 16c0: e3500001 cmp r0, #1
1582 16c4: 1a000006 bne 0x16e4
1583 16c8: e3a0c002 mov r12, #2
1584 16cc: e5cdc000 strb r12, [sp]
1585 16d0: e3a00004 mov r0, #4
1586 16d4: e3a01000 mov r1, #0
1587 16d8: e3a02000 mov r2, #0
1588 16dc: e3a03002 mov r3, #2
1589 16e0: ebfffdd1 bl 0xe2c
1590 16e4: e3a00000 mov r0, #0
1591 16e8: e3a0c000 mov r12, #0
1592 16ec: e0dc10b2 ldrh r1, [r12], #2
1593 16f0: e0810000 add r0, r1, r0
1594 16f4: e1a00800 mov r0, r0, lsl #16
1595 16f8: e1a00820 mov r0, r0, lsr #16
1596 16fc: e35c0a02 cmp r12, #8192 ; 0x2000
1597 1700: 3afffff9 bcc 0x16ec
1598 1704: e28dd008 add sp, sp, #8
1599 1708: e8bd8000 ldmia sp!, {pc}
1600
1601 ; RESET entry point jumps here
1602 170c: e59f0014 ldr r0, =0x8005ac ; via 0x1728
1603 1710: e59f1014 ldr r1, =0x190 ; via 0x172c
1604 1714: e2411004 sub r1, r1, #4
1605 1718: e0802001 add r2, r0, r1
1606 171c: e3c22003 bic r2, r2, #3
1607 1720: e1a0d002 mov sp, r2
1608 1724: eaffff8c b 0x155c
1609
1610 ; literal pool
1611 1728: 008005ac
1612 172c: 00000190
1613
1614 ; TI compiler's IND_CALL library helper
1615 1730: e3140001 tst r4, #1
1616 1734: 1a000000 bne 0x173c
1617 1738: e12fff14 bx r4
1618 173c: e1a0c004 mov r12, r4
1619 1740: e1a0400e mov r4, lr
1620 1744: e28fe001 add lr, pc, #1
1621 1748: e12fff1c bx r12
1622 174c: 4720 bx r4
1623 174e: 46c0 nop (mov r8, r8)
1624
1625 ; memory copy function like 0x165c in the C035 version
1626 1750: e3510000 cmp r1, #0
1627 1754: 012fff1e bxeq lr
1628 1758: e490c004 ldr r12, [r0], #4
1629 175c: e482c004 str r12, [r2], #4
1630 1760: e2511004 subs r1, r1, #4
1631 1764: 1afffffb bne 0x1758
1632 1768: e12fff1e bx lr
1633
1634 ; Thumb->ARM call veneer for the main() function
1635 176c: 4778 bx pc
1636 176e: 46c0 nop (mov r8, r8)
1637 1770: e92d4000 stmdb sp!, {lr}
1638 1774: ebfffe97 bl 0x11d8
1639 1778: e8bd4000 ldmia sp!, {lr}
1640 177c: e12fff1e bx lr
1641
1642 ; TI compiler's IND$CALL library helper
1643 1780: 46a4 mov r12, r4
1644 1782: 0864 lsr r4, r4, #1
1645 1784: d301 bcc 0x178a
1646 1786: 4760 bx r12
1647 1788: 46c0 nop (mov r8, r8)
1648 178a: 4674 mov r4, lr
1649 178c: 46fe mov lr, pc
1650 178e: 4760 bx r12
1651 1790: e12fff14 bx r4
1652
1653 ; "auto init" table (.cinit section)
1654 1794: 0000001c
1655 1798: 00800000
1656 179c: 00001498
1657 17a0: 0000149c
1658 17a4: 000014a0
1659 17a8: 000014a4
1660 17ac: 000014a8
1661 17b0: 000014ac
1662 17b4: 000014b0
1663 17b8: 00000004
1664 17bc: 008000f0
1665 17c0: 0001d4c0
1666 17c4: 00000001
1667 17c8: 008000f4
1668 17cc: 00000001
1669 17d0: 00000004
1670 17d4: 00800520
1671 17d8: 00000000
1672 17dc: 00000004
1673 17e0: 00800524
1674 17e4: 00000000
1675 17e8: 00000001
1676 17ec: 008005a8
1677 17f0: 00000000
1678 17f4: 00000000
1679
1680 ; filler
1681 000017F0: 00 00 00 00 00 00 00 00 F0 EF EE ED EC EB EA E9 ................
1682 00001800: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1683 00001810: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1684 00001820: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1685 00001830: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1686 00001840: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1687 00001850: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1688 00001860: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1689 00001870: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1690 00001880: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1691 00001890: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1692 000018A0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1693 000018B0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1694 000018C0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1695 000018D0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1696 000018E0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1697 000018F0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1698 00001900: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1699 00001910: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1700 00001920: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1701 00001930: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1702 00001940: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1703 00001950: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1704 00001960: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1705 00001970: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1706 00001980: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1707 00001990: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1708 000019A0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1709 000019B0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1710 000019C0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1711 000019D0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1712 000019E0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1713 000019F0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1714 00001A00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1715 00001A10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1716 00001A20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1717 00001A30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1718 00001A40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1719 00001A50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1720 00001A60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1721 00001A70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1722 00001A80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1723 00001A90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1724 00001AA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1725 00001AB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1726 00001AC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1727 00001AD0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1728 00001AE0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1729 00001AF0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1730 00001B00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1731 00001B10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1732 00001B20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1733 00001B30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1734 00001B40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1735 00001B50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1736 00001B60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1737 00001B70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1738 00001B80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1739 00001B90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1740 00001BA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1741 00001BB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1742 00001BC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1743 00001BD0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1744 00001BE0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1745 00001BF0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1746 00001C00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1747 00001C10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1748 00001C20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1749 00001C30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1750 00001C40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1751 00001C50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1752 00001C60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1753 00001C70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1754 00001C80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1755 00001C90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1756 00001CA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1757 00001CB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1758 00001CC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1759 00001CD0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1760 00001CE0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1761 00001CF0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1762 00001D00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1763 00001D10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1764 00001D20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1765 00001D30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1766 00001D40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1767 00001D50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1768 00001D60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1769 00001D70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1770 00001D80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1771 00001D90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1772 00001DA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1773 00001DB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1774 00001DC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1775 00001DD0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1776 00001DE0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1777 00001DF0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1778 00001E00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1779 00001E10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1780 00001E20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1781 00001E30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1782 00001E40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1783 00001E50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1784 00001E60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1785 00001E70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1786 00001E80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1787 00001E90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1788 00001EA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1789 00001EB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1790 00001EC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1791 00001ED0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1792 00001EE0: 08 07 06 05 04 03 02 01 00 FF FE FD FC FB FA F9 ................
1793 00001EF0: F8 F7 F6 F5 F4 F3 F2 F1 F0 EF EE ED EC EB EA E9 ................
1794 00001F00: E8 E7 E6 E5 E4 E3 E2 E1 E0 DF DE DD DC DB DA D9 ................
1795 00001F10: D8 D7 D6 D5 D4 D3 D2 D1 D0 CF CE CD CC CB CA C9 ................
1796 00001F20: C8 C7 C6 C5 C4 C3 C2 C1 C0 BF BE BD BC BB BA B9 ................
1797 00001F30: B8 B7 B6 B5 B4 B3 B2 B1 B0 AF AE AD AC AB AA A9 ................
1798 00001F40: A8 A7 A6 A5 A4 A3 A2 A1 A0 9F 9E 9D 9C 9B 9A 99 ................
1799 00001F50: 98 97 96 95 94 93 92 91 90 8F 8E 8D 8C 8B 8A 89 ................
1800 00001F60: 88 87 86 85 84 83 82 81 80 7F 7E 7D 7C 7B 7A 79 ..........~}|{zy
1801 00001F70: 78 77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 xwvutsrqponmlkji
1802 00001F80: 68 67 66 65 64 63 62 61 60 5F 5E 5D 5C 5B 5A 59 hgfedcba`_^]\[ZY
1803 00001F90: 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 XWVUTSRQPONMLKJI
1804 00001FA0: 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 HGFEDCBA@?>=<;:9
1805 00001FB0: 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 876543210/.-,+*)
1806 00001FC0: 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 ('&%$#"! .......
1807 00001FD0: 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 ................
1808 00001FE0: 08 07 06 05 04 03 02 01 00 58 FF FF 00 50 FF FF .........X...P..
1809 00001FF0: 00 07 00 0E 00 15 00 1C 00 2A 00 00 00 00 00 02 .........*......
1810
1811 ; base addresses of the two UARTs
1812 1fe8: ffff5800
1813 1fec: ffff5000
1814
1815 ; UART baud rates
1816 1ff0: 0700
1817 1ff2: 0e00
1818 1ff4: 1500
1819 1ff6: 1c00
1820 1ff8: 2a00
1821 1ffa: 0000
1822 1ffc: 0000
1823 ; Boot ROM version
1824 1ffe: 0200