-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkernel.list
613 lines (544 loc) · 19.9 KB
/
kernel.list
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
build/output.elf: file format elf32-littlearm
Disassembly of section .init:
00008000 <_start>:
8000: ea00010b b 8434 <main>
00008004 <_vectors>:
8004: e59ff018 ldr pc, [pc, #24] ; 8024 <reset_addr>
8008: e59ff018 ldr pc, [pc, #24] ; 8028 <undef_addr>
800c: e59ff018 ldr pc, [pc, #24] ; 802c <swi_addr>
8010: e59ff018 ldr pc, [pc, #24] ; 8030 <prefetch_addr>
8014: e59ff018 ldr pc, [pc, #24] ; 8034 <abort_addr>
8018: e59ff018 ldr pc, [pc, #24] ; 8038 <reserved_addr>
801c: e59ff018 ldr pc, [pc, #24] ; 803c <irq_addr>
8020: e59ff018 ldr pc, [pc, #24] ; 8040 <fiq_addr>
00008024 <reset_addr>:
8024: 00008434 .word 0x00008434
00008028 <undef_addr>:
8028: 00008434 .word 0x00008434
0000802c <swi_addr>:
802c: 00008708 .word 0x00008708
00008030 <prefetch_addr>:
8030: 00008434 .word 0x00008434
00008034 <abort_addr>:
8034: 00008434 .word 0x00008434
00008038 <reserved_addr>:
8038: 00008434 .word 0x00008434
0000803c <irq_addr>:
803c: 00008708 .word 0x00008708
00008040 <fiq_addr>:
8040: 00008708 .word 0x00008708
Disassembly of section .text:
00008044 <SetForeColour>:
8044: e3500801 cmp r0, #65536 ; 0x10000
8048: 81a0f00e movhi pc, lr
804c: 01a0f00e moveq pc, lr
8050: e59f11a4 ldr r1, [pc, #420] ; 81fc <endeBalken$+0x4>
8054: e1c100b0 strh r0, [r1]
8058: e1a0f00e mov pc, lr
0000805c <SetGraphicsAddress>:
805c: e59f119c ldr r1, [pc, #412] ; 8200 <endeBalken$+0x8>
8060: e5810000 str r0, [r1]
8064: e1a0f00e mov pc, lr
00008068 <DrawPixel>:
8068: e59f2190 ldr r2, [pc, #400] ; 8200 <endeBalken$+0x8>
806c: e5922000 ldr r2, [r2]
8070: e5923004 ldr r3, [r2, #4]
8074: e2433001 sub r3, r3, #1 ; 0x1
8078: e1510003 cmp r1, r3
807c: 81a0f00e movhi pc, lr
8080: e5923000 ldr r3, [r2]
8084: e2433001 sub r3, r3, #1 ; 0x1
8088: e1500003 cmp r0, r3
808c: 81a0f00e movhi pc, lr
8090: e5922020 ldr r2, [r2, #32]
8094: e2833001 add r3, r3, #1 ; 0x1
8098: e0200391 mla r0, r1, r3, r0
809c: e0822080 add r2, r2, r0, lsl #1
80a0: e59f3154 ldr r3, [pc, #340] ; 81fc <endeBalken$+0x4>
80a4: e1d330b0 ldrh r3, [r3]
80a8: e1c230b0 strh r3, [r2]
80ac: e1a0f00e mov pc, lr
000080b0 <DrawLine>:
80b0: e92d5ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
80b4: e1a09000 mov r9, r0
80b8: e1a0a002 mov sl, r2
80bc: e1a0b001 mov fp, r1
80c0: e1a0c003 mov ip, r3
80c4: e159000a cmp r9, sl
80c8: c049400a subgt r4, r9, sl
80cc: c3e06000 mvngt r6, #0 ; 0x0
80d0: d04a4009 suble r4, sl, r9
80d4: d3a06001 movle r6, #1 ; 0x1
80d8: e15b000c cmp fp, ip
80dc: c04c500b subgt r5, ip, fp
80e0: c3e07000 mvngt r7, #0 ; 0x0
80e4: d04b500c suble r5, fp, ip
80e8: d3a07001 movle r7, #1 ; 0x1
80ec: e0848005 add r8, r4, r5
80f0: e08aa006 add sl, sl, r6
80f4: e08cc007 add ip, ip, r7
000080f8 <pixelLoop$>:
80f8: e139000a teq r9, sl
80fc: 113b000c teqne fp, ip
8100: 08bd9ff0 popeq {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
8104: e1a00009 mov r0, r9
8108: e1a0100b mov r1, fp
810c: ebffffd5 bl 8068 <DrawPixel>
8110: e1550088 cmp r5, r8, lsl #1
8114: d0888005 addle r8, r8, r5
8118: d0899006 addle r9, r9, r6
811c: e1540088 cmp r4, r8, lsl #1
8120: a0888004 addge r8, r8, r4
8124: a08bb007 addge fp, fp, r7
8128: eafffff2 b 80f8 <pixelLoop$>
0000812c <DrawBall>:
812c: e92d5ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
8130: e1a09000 mov r9, r0
8134: e280a019 add sl, r0, #25 ; 0x19
8138: e1a0b001 mov fp, r1
813c: e281c019 add ip, r1, #25 ; 0x19
8140: e159000a cmp r9, sl
8144: e1a04009 mov r4, r9
8148: c3e06000 mvngt r6, #0 ; 0x0
814c: d3a06001 movle r6, #1 ; 0x1
8150: e15b000c cmp fp, ip
8154: e1a0500b mov r5, fp
8158: c3e07000 mvngt r7, #0 ; 0x0
815c: d3a07001 movle r7, #1 ; 0x1
8160: e08aa006 add sl, sl, r6
8164: e08cc007 add ip, ip, r7
00008168 <pixelLoopRect$>:
8168: e1a00009 mov r0, r9
816c: e1a0100b mov r1, fp
8170: ebffffbc bl 8068 <DrawPixel>
8174: e0899006 add r9, r9, r6
8178: e159000a cmp r9, sl
817c: 01a09004 moveq r9, r4
8180: 008bb007 addeq fp, fp, r7
8184: 015b000c cmpeq fp, ip
8188: 0a000000 beq 8190 <ende$>
818c: eafffff5 b 8168 <pixelLoopRect$>
00008190 <ende$>:
8190: e8bd9ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
00008194 <DrawBalken>:
8194: e92d5ff0 push {r4, r5, r6, r7, r8, r9, sl, fp, ip, lr}
8198: e1a09000 mov r9, r0
819c: e280a064 add sl, r0, #100 ; 0x64
81a0: e3a0bfbe mov fp, #760 ; 0x2f8
81a4: e28bc00a add ip, fp, #10 ; 0xa
81a8: e159000a cmp r9, sl
81ac: e1a04009 mov r4, r9
81b0: c3e06000 mvngt r6, #0 ; 0x0
81b4: d3a06001 movle r6, #1 ; 0x1
81b8: e15b000c cmp fp, ip
81bc: e1a0500b mov r5, fp
81c0: c3e07000 mvngt r7, #0 ; 0x0
81c4: d3a07001 movle r7, #1 ; 0x1
81c8: e08aa006 add sl, sl, r6
81cc: e08cc007 add ip, ip, r7
000081d0 <pixelLoopRectBalken$>:
81d0: e1a00009 mov r0, r9
81d4: e1a0100b mov r1, fp
81d8: ebffffa2 bl 8068 <DrawPixel>
81dc: e0899006 add r9, r9, r6
81e0: e159000a cmp r9, sl
81e4: 01a09004 moveq r9, r4
81e8: 008bb007 addeq fp, fp, r7
81ec: 015b000c cmpeq fp, ip
81f0: 0a000000 beq 81f8 <endeBalken$>
81f4: eafffff5 b 81d0 <pixelLoopRectBalken$>
000081f8 <endeBalken$>:
81f8: e8bd9ff0 pop {r4, r5, r6, r7, r8, r9, sl, fp, ip, pc}
81fc: 00009000 .word 0x00009000
8200: 00009004 .word 0x00009004
00008204 <InitialiseFrameBuffer>:
8204: e3500a01 cmp r0, #4096 ; 0x1000
8208: 93510a01 cmpls r1, #4096 ; 0x1000
820c: 93520020 cmpls r2, #32 ; 0x20
8210: 83a00000 movhi r0, #0 ; 0x0
8214: 81a0f00e movhi pc, lr
8218: e92d4010 push {r4, lr}
821c: e59f403c ldr r4, [pc, #60] ; 8260 <InitialiseFrameBuffer+0x5c>
8220: e5840000 str r0, [r4]
8224: e5841004 str r1, [r4, #4]
8228: e5840008 str r0, [r4, #8]
822c: e584100c str r1, [r4, #12]
8230: e5842014 str r2, [r4, #20]
8234: e1a00004 mov r0, r4
8238: e2800101 add r0, r0, #1073741824 ; 0x40000000
823c: e3a01001 mov r1, #1 ; 0x1
8240: eb00006f bl 8404 <MailboxWrite>
8244: e3a00001 mov r0, #1 ; 0x1
8248: eb000060 bl 83d0 <MailboxRead>
824c: e3300000 teq r0, #0 ; 0x0
8250: 13a00000 movne r0, #0 ; 0x0
8254: 18bd8010 popne {r4, pc}
8258: e1a00004 mov r0, r4
825c: e8bd8010 pop {r4, pc}
8260: 0000a000 .word 0x0000a000
00008264 <GetGpioAddress>:
8264: e59f00f8 ldr r0, [pc, #248] ; 8364 <GetGpioValue+0x30>
8268: e1a0f00e mov pc, lr
0000826c <SetGpioFunction>:
826c: e3500035 cmp r0, #53 ; 0x35
8270: 93510007 cmpls r1, #7 ; 0x7
8274: 81a0f00e movhi pc, lr
8278: e92d4000 push {lr}
827c: e1a02000 mov r2, r0
8280: ebfffff7 bl 8264 <GetGpioAddress>
00008284 <functionLoop$>:
8284: e3520009 cmp r2, #9 ; 0x9
8288: 8242200a subhi r2, r2, #10 ; 0xa
828c: 82800004 addhi r0, r0, #4 ; 0x4
8290: 8afffffb bhi 8284 <functionLoop$>
8294: e0822082 add r2, r2, r2, lsl #1
8298: e1a01211 lsl r1, r1, r2
829c: e3a03007 mov r3, #7 ; 0x7
82a0: e1a03213 lsl r3, r3, r2
82a4: e1e03003 mvn r3, r3
82a8: e5902000 ldr r2, [r0]
82ac: e0022003 and r2, r2, r3
82b0: e1811002 orr r1, r1, r2
82b4: e5801000 str r1, [r0]
82b8: e8bd8000 pop {pc}
000082bc <SetGpio>:
82bc: e3500035 cmp r0, #53 ; 0x35
82c0: 81a0f00e movhi pc, lr
82c4: e92d4000 push {lr}
82c8: e1a02000 mov r2, r0
82cc: ebffffe4 bl 8264 <GetGpioAddress>
82d0: e1a032a2 lsr r3, r2, #5
82d4: e1a03103 lsl r3, r3, #2
82d8: e0800003 add r0, r0, r3
82dc: e202201f and r2, r2, #31 ; 0x1f
82e0: e3a03001 mov r3, #1 ; 0x1
82e4: e1a03213 lsl r3, r3, r2
82e8: e3310000 teq r1, #0 ; 0x0
82ec: 05803028 streq r3, [r0, #40]
82f0: 1580301c strne r3, [r0, #28]
82f4: e8bd8000 pop {pc}
000082f8 <SetGpioPin23>:
82f8: e92d4000 push {lr}
82fc: ebffffd8 bl 8264 <GetGpioAddress>
8300: e3a02000 mov r2, #0 ; 0x0
8304: e1a02482 lsl r2, r2, #9
8308: e5802008 str r2, [r0, #8]
830c: e8bd8000 pop {pc}
00008310 <GetValueGpioPin23>:
8310: e92d4000 push {lr}
8314: ebffffd2 bl 8264 <GetGpioAddress>
8318: e5901034 ldr r1, [r0, #52]
831c: e1a01ba1 lsr r1, r1, #23
8320: e2011001 and r1, r1, #1 ; 0x1
8324: e3a00010 mov r0, #16 ; 0x10
8328: ebffffe3 bl 82bc <SetGpio>
832c: e1a00001 mov r0, r1
8330: e8bd8000 pop {pc}
00008334 <GetGpioValue>:
8334: e3500035 cmp r0, #53 ; 0x35
8338: 81a0f00e movhi pc, lr
833c: e92d4000 push {lr}
8340: e1a02000 mov r2, r0
8344: ebffffc6 bl 8264 <GetGpioAddress>
8348: e1a032a2 lsr r3, r2, #5
834c: e1a03103 lsl r3, r3, #2
8350: e0800003 add r0, r0, r3
8354: e5900034 ldr r0, [r0, #52]
8358: e1a00230 lsr r0, r0, r2
835c: e2000001 and r0, r0, #1 ; 0x1
8360: e8bd8000 pop {pc}
8364: 20200000 .word 0x20200000
00008368 <getNewBallPos>:
8368: e92d4010 push {r4, lr}
836c: e3520000 cmp r2, #0 ; 0x0
8370: da000004 ble 8388 <pa_negatif$>
8374: e59f4048 ldr r4, [pc, #72] ; 83c4 <pb_fin$+0x8>
8378: e1500004 cmp r0, r4
837c: c2622000 rsbgt r2, r2, #0 ; 0x0
8380: c59f003c ldrgt r0, [pc, #60] ; 83c4 <pb_fin$+0x8>
8384: ea000002 b 8394 <pa_fin$>
00008388 <pa_negatif$>:
8388: e3500000 cmp r0, #0 ; 0x0
838c: b2622000 rsblt r2, r2, #0 ; 0x0
8390: b3a00000 movlt r0, #0 ; 0x0
00008394 <pa_fin$>:
8394: e0800002 add r0, r0, r2
8398: e3530000 cmp r3, #0 ; 0x0
839c: da000003 ble 83b0 <pb_negatif$>
83a0: e3510fbe cmp r1, #760 ; 0x2f8
83a4: c2633000 rsbgt r3, r3, #0 ; 0x0
83a8: c3a01fbe movgt r1, #760 ; 0x2f8
83ac: ea000002 b 83bc <pb_fin$>
000083b0 <pb_negatif$>:
83b0: e351001e cmp r1, #30 ; 0x1e
83b4: d2633000 rsble r3, r3, #0 ; 0x0
83b8: d3a0101e movle r1, #30 ; 0x1e
000083bc <pb_fin$>:
83bc: e0811003 add r1, r1, r3
83c0: e8bd8010 pop {r4, pc}
83c4: 000004ec .word 0x000004ec
000083c8 <GetMailboxBase>:
83c8: e59f0060 ldr r0, [pc, #96] ; 8430 <wait2$+0x14>
83cc: e1a0f00e mov pc, lr
000083d0 <MailboxRead>:
83d0: e200300f and r3, r0, #15 ; 0xf
83d4: e1a0200e mov r2, lr
83d8: ebfffffa bl 83c8 <GetMailboxBase>
83dc: e1a0e002 mov lr, r2
000083e0 <rightmail$>:
83e0: e5902018 ldr r2, [r0, #24]
83e4: e3120101 tst r2, #1073741824 ; 0x40000000
83e8: 1afffffc bne 83e0 <rightmail$>
83ec: e5901000 ldr r1, [r0]
83f0: e201200f and r2, r1, #15 ; 0xf
83f4: e1320003 teq r2, r3
83f8: 1afffff8 bne 83e0 <rightmail$>
83fc: e3c1000f bic r0, r1, #15 ; 0xf
8400: e1a0f00e mov pc, lr
00008404 <MailboxWrite>:
8404: e201200f and r2, r1, #15 ; 0xf
8408: e3c0100f bic r1, r0, #15 ; 0xf
840c: e1811002 orr r1, r1, r2
8410: e1a0200e mov r2, lr
8414: ebffffeb bl 83c8 <GetMailboxBase>
8418: e1a0e002 mov lr, r2
0000841c <wait2$>:
841c: e5902018 ldr r2, [r0, #24]
8420: e3120102 tst r2, #-2147483648 ; 0x80000000
8424: 1afffffc bne 841c <wait2$>
8428: e5801020 str r1, [r0, #32]
842c: e1a0f00e mov pc, lr
8430: 2000b880 .word 0x2000b880
00008434 <main>:
8434: e59fd014 ldr sp, [pc, #20] ; 8450 <SVC_NewStack>
8438: e3a020d2 mov r2, #210 ; 0xd2
843c: e121f002 msr CPSR_c, r2
8440: e59fd00c ldr sp, [pc, #12] ; 8454 <IRQ_StackNew>
8444: e3a0201f mov r2, #31 ; 0x1f
8448: e121f002 msr CPSR_c, r2
844c: e59fd004 ldr sp, [pc, #4] ; 8458 <USR_StackNew>
00008450 <SVC_NewStack>:
8450: 00007f80 .word 0x00007f80
00008454 <IRQ_StackNew>:
8454: 00008000 .word 0x00008000
00008458 <USR_StackNew>:
8458: 00020000 .word 0x00020000
845c: e3a00000 mov r0, #0 ; 0x0
8460: e59f11e4 ldr r1, [pc, #484] ; 864c <add_cnt_interrupt_old+0x4>
8464: e8b103fc ldm r1!, {r2, r3, r4, r5, r6, r7, r8, r9}
8468: e8a003fc stmia r0!, {r2, r3, r4, r5, r6, r7, r8, r9}
846c: e8b103fc ldm r1!, {r2, r3, r4, r5, r6, r7, r8, r9}
8470: e8a003fc stmia r0!, {r2, r3, r4, r5, r6, r7, r8, r9}
8474: eb00009b bl 86e8 <EnableIRQ>
8478: eb000093 bl 86cc <EnableTimerInterrupt>
847c: eb000083 bl 8690 <EnableBasicIRQ>
8480: e3a00010 mov r0, #16 ; 0x10
8484: e1a00100 lsl r0, r0, #2
8488: eb000089 bl 86b4 <SetTimer>
848c: e3a00c05 mov r0, #1280 ; 0x500
8490: e3a01c03 mov r1, #768 ; 0x300
8494: e3a02010 mov r2, #16 ; 0x10
8498: ebffff59 bl 8204 <InitialiseFrameBuffer>
849c: e3300000 teq r0, #0 ; 0x0
84a0: 1a000000 bne 84a8 <noError$>
000084a4 <error$>:
84a4: eafffffe b 84a4 <error$>
000084a8 <noError$>:
84a8: e1a04000 mov r4, r0
84ac: ebfffeea bl 805c <SetGraphicsAddress>
84b0: e3a000f0 mov r0, #240 ; 0xf0
84b4: ebfffee2 bl 8044 <_endvectors>
84b8: e3a06002 mov r6, #2 ; 0x2
84bc: e3a07005 mov r7, #5 ; 0x5
84c0: e3a08c03 mov r8, #768 ; 0x300
84c4: e3a04000 mov r4, #0 ; 0x0
84c8: e3a05000 mov r5, #0 ; 0x0
84cc: e3a00010 mov r0, #16 ; 0x10
84d0: e3a01001 mov r1, #1 ; 0x1
84d4: ebffff64 bl 826c <SetGpioFunction>
84d8: e3a0000e mov r0, #14 ; 0xe
84dc: e3a01000 mov r1, #0 ; 0x0
84e0: ebffff61 bl 826c <SetGpioFunction>
84e4: e3a00017 mov r0, #23 ; 0x17
84e8: e3a01000 mov r1, #0 ; 0x0
84ec: ebffff5e bl 826c <SetGpioFunction>
84f0: e3a000ff mov r0, #255 ; 0xff
84f4: e1a00180 lsl r0, r0, #3
84f8: ebfffed1 bl 8044 <_endvectors>
84fc: e1a00008 mov r0, r8
8500: ebffff23 bl 8194 <DrawBalken>
00008504 <render$>:
8504: e3a00000 mov r0, #0 ; 0x0
8508: ebfffecd bl 8044 <_endvectors>
850c: e1a00004 mov r0, r4
8510: e1a01005 mov r1, r5
8514: ebffff04 bl 812c <DrawBall>
8518: e1a00004 mov r0, r4
851c: e1a01005 mov r1, r5
8520: e1a02006 mov r2, r6
8524: e1a03007 mov r3, r7
8528: ebffff8e bl 8368 <getNewBallPos>
852c: e1a04000 mov r4, r0
8530: e1a05001 mov r5, r1
8534: e1a06002 mov r6, r2
8538: e1a07003 mov r7, r3
853c: e59f010c ldr r0, [pc, #268] ; 8650 <add_cnt_interrupt_old+0x8>
8540: e1550000 cmp r5, r0
8544: ba000004 blt 855c <weiter$>
8548: e1540008 cmp r4, r8
854c: ba000031 blt 8618 <balken_ausser$>
8550: e2881064 add r1, r8, #100 ; 0x64
8554: e1540001 cmp r4, r1
8558: ca00002e bgt 8618 <balken_ausser$>
0000855c <weiter$>:
855c: e3a000ff mov r0, #255 ; 0xff
8560: ebfffeb7 bl 8044 <_endvectors>
8564: e1a00004 mov r0, r4
8568: e1a01005 mov r1, r5
856c: ebfffeee bl 812c <DrawBall>
00008570 <warte$>:
8570: e59f00cc ldr r0, [pc, #204] ; 8644 <add_cnt_interrupt>
8574: e5900000 ldr r0, [r0]
8578: e1500009 cmp r0, r9
857c: 0afffffb beq 8570 <warte$>
8580: e049a000 sub sl, r9, r0
8584: e1a0a0aa lsr sl, sl, #1
8588: e1a09000 mov r9, r0
858c: e3a0000e mov r0, #14 ; 0xe
8590: ebffff67 bl 8334 <GetGpioValue>
8594: e3500000 cmp r0, #0 ; 0x0
8598: 0a00000c beq 85d0 <andererichtung$>
859c: e3a00000 mov r0, #0 ; 0x0
85a0: ebfffea7 bl 8044 <_endvectors>
85a4: e1a00008 mov r0, r8
85a8: ebfffef9 bl 8194 <DrawBalken>
85ac: e2488008 sub r8, r8, #8 ; 0x8
85b0: e3580000 cmp r8, #0 ; 0x0
85b4: 059f1098 ldreq r1, [pc, #152] ; 8654 <add_cnt_interrupt_old+0xc>
85b8: 01a08001 moveq r8, r1
85bc: e3a000ff mov r0, #255 ; 0xff
85c0: e1a00180 lsl r0, r0, #3
85c4: ebfffe9e bl 8044 <_endvectors>
85c8: e1a00008 mov r0, r8
85cc: ebfffef0 bl 8194 <DrawBalken>
000085d0 <andererichtung$>:
85d0: e3a00017 mov r0, #23 ; 0x17
85d4: ebffff56 bl 8334 <GetGpioValue>
85d8: e3500000 cmp r0, #0 ; 0x0
85dc: 0affffc8 beq 8504 <render$>
85e0: e3a00000 mov r0, #0 ; 0x0
85e4: ebfffe96 bl 8044 <_endvectors>
85e8: e1a00008 mov r0, r8
85ec: ebfffee8 bl 8194 <DrawBalken>
85f0: e2888008 add r8, r8, #8 ; 0x8
85f4: e59f1058 ldr r1, [pc, #88] ; 8654 <add_cnt_interrupt_old+0xc>
85f8: e1580001 cmp r8, r1
85fc: 03a08000 moveq r8, #0 ; 0x0
8600: e3a000ff mov r0, #255 ; 0xff
8604: e1a00180 lsl r0, r0, #3
8608: ebfffe8d bl 8044 <_endvectors>
860c: e1a00008 mov r0, r8
8610: ebfffedf bl 8194 <DrawBalken>
8614: eaffffba b 8504 <render$>
00008618 <balken_ausser$>:
8618: eafffffe b 8618 <balken_ausser$>
0000861c <timer_isr>:
861c: e92d4000 push {lr}
8620: e59f101c ldr r1, [pc, #28] ; 8644 <add_cnt_interrupt>
8624: e5910000 ldr r0, [r1]
8628: e2800001 add r0, r0, #1 ; 0x1
862c: e5810000 str r0, [r1]
8630: eb000010 bl 8678 <GetInterruptBase>
8634: e580140c str r1, [r0, #1036]
8638: e3a01a07 mov r1, #28672 ; 0x7000
863c: e5801400 str r1, [r0, #1024]
8640: e8bd8000 pop {pc}
00008644 <add_cnt_interrupt>:
8644: 0000b000 .word 0x0000b000
00008648 <add_cnt_interrupt_old>:
8648: 0000b004 .word 0x0000b004
864c: 00008004 .word 0x00008004
8650: 000002da .word 0x000002da
8654: 000004ec .word 0x000004ec
00008658 <Random>:
8658: e3a01cef mov r1, #61184 ; 0xef00
865c: e0010190 mul r1, r0, r1
8660: e0010190 mul r1, r0, r1
8664: e0811000 add r1, r1, r0
8668: e2810049 add r0, r1, #73 ; 0x49
866c: e1a0f00e mov pc, lr
00008670 <GetSystemTimerBase>:
8670: e59f00e4 ldr r0, [pc, #228] ; 875c <loop$+0x14>
8674: e1a0f00e mov pc, lr
00008678 <GetInterruptBase>:
8678: e59f00e0 ldr r0, [pc, #224] ; 8760 <loop$+0x18>
867c: e1a0f00e mov pc, lr
00008680 <DisableBasicIRQ>:
8680: e59f00d8 ldr r0, [pc, #216] ; 8760 <loop$+0x18>
8684: e3a01000 mov r1, #0 ; 0x0
8688: e5801224 str r1, [r0, #548]
868c: e1a0f00e mov pc, lr
00008690 <EnableBasicIRQ>:
8690: e59f00c8 ldr r0, [pc, #200] ; 8760 <loop$+0x18>
8694: e5901218 ldr r1, [r0, #536]
8698: e3811001 orr r1, r1, #1 ; 0x1
869c: e5801218 str r1, [r0, #536]
86a0: e1a0f00e mov pc, lr
000086a4 <GetTimeStamp>:
86a4: e92d4000 push {lr}
86a8: ebfffff0 bl 8670 <GetSystemTimerBase>
86ac: e1c000d4 ldrd r0, [r0, #4]
86b0: e8bd8000 pop {pc}
000086b4 <SetTimer>:
86b4: e92d4000 push {lr}
86b8: e1a02000 mov r2, r0
86bc: ebffffed bl 8678 <GetInterruptBase>
86c0: e5802400 str r2, [r0, #1024]
86c4: e5802418 str r2, [r0, #1048]
86c8: e8bd8000 pop {pc}
000086cc <EnableTimerInterrupt>:
86cc: e92d4000 push {lr}
86d0: ebffffe8 bl 8678 <GetInterruptBase>
86d4: e59f1088 ldr r1, [pc, #136] ; 8764 <loop$+0x1c>
86d8: e5801408 str r1, [r0, #1032]
86dc: e3a01001 mov r1, #1 ; 0x1
86e0: e5801218 str r1, [r0, #536]
86e4: e8bd8000 pop {pc}
000086e8 <EnableIRQ>:
86e8: e10f1000 mrs r1, CPSR
86ec: e3c11080 bic r1, r1, #128 ; 0x80
86f0: e121f001 msr CPSR_c, r1
86f4: e1a0f00e mov pc, lr
000086f8 <DisableIRQ>:
86f8: e10f1000 mrs r1, CPSR
86fc: e38110c0 orr r1, r1, #192 ; 0xc0
8700: e121f001 msr CPSR_c, r1
8704: e1a0f00e mov pc, lr
00008708 <InterruptHandler>:
8708: e24ee004 sub lr, lr, #4 ; 0x4
870c: e92d500f push {r0, r1, r2, r3, ip, lr}
8710: ebfffff8 bl 86f8 <DisableIRQ>
8714: ebffffd7 bl 8678 <GetInterruptBase>
8718: e5901200 ldr r1, [r0, #512]
871c: e3110001 tst r1, #1 ; 0x1
8720: 0a000002 beq 8730 <fin$>
8724: e5902414 ldr r2, [r0, #1044]
8728: e3520001 cmp r2, #1 ; 0x1
872c: 0bffffba bleq 861c <timer_isr>
00008730 <fin$>:
8730: ebffffec bl 86e8 <EnableIRQ>
8734: e8fd900f ldm sp!, {r0, r1, r2, r3, ip, pc}^
00008738 <Wait>:
8738: e1a02000 mov r2, r0
873c: e92d4000 push {lr}
8740: ebffffd7 bl 86a4 <GetTimeStamp>
8744: e1a03000 mov r3, r0
00008748 <loop$>:
8748: ebffffd5 bl 86a4 <GetTimeStamp>
874c: e0401003 sub r1, r0, r3
8750: e1510002 cmp r1, r2
8754: 9afffffb bls 8748 <loop$>
8758: e8bd8000 pop {pc}
875c: 20003000 .word 0x20003000
8760: 2000b000 .word 0x2000b000
8764: 003e00a0 .word 0x003e00a0