CHDK_DE Vorschauversion  Trunk Rev. 6014
 Alle Datenstrukturen Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Makrodefinitionen
capt_seq.c-Dateireferenz
#include "lolevel.h"
#include "platform.h"
#include "core.h"
#include "../../../generic/capt_seq.c"
+ Include-Abhängigkeitsdiagramm für capt_seq.c:

gehe zum Quellcode dieser Datei

Funktionen

void __attribute__ ((naked, noinline))
 *-------------------------------------------------------------------— Mehr ...
 

Variablen

static long * nrflag = (long*)0x67c0
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

*-------------------------------------------------------------------—

!!

Definiert in Zeile 10 der Datei capt_seq.c.

10  {
11  asm volatile (
12  "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n"
13  "LDR r6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c"
14  "LDR r4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0"
15  "LDR r9, =0x1\n" // was: "mov ..., #1"
16  "LDR r7, =0x0\n" // was: "mov ..., #0"
17 "loc_FF87A2D4:\n"
18  "LDR r0, [r6, #4]\n"
19  "LDR r2, =0x0\n" // was: "mov ..., #0"
20  "MOV r1, sp\n"
21  "BL sub_FF8396E4\n"
22  "TST r0, #1\n" // 0x1
23  "BEQ loc_FF87A300\n"
24  "LDR r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"
25  "LDR r0, =0xFF879E50\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c"
26  "BL sub_ff81eb14\n"
27  "BL sub_ff81eacc\n"
28  "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n"
29 "loc_FF87A300:\n"
30  "LDR r0, [sp]\n"
31  "LDR r1, [r0]\n"
32  "CMP r1, #29\n" // 0x1d
33  "ADDLS pc, pc, r1, lsl #2\n"
34  "B loc_FF87A59C\n"
35  "B loc_FF87A38C\n" // 0 jumptable start
36  "B loc_FF87A3F0\n" // 1
37  "B loc_FF87A42C\n" // 2
38  "B loc_FF87A440\n" // 3
39  "B loc_FF87A438\n" // 4
40  "B loc_FF87A448\n" // 5
41  "B loc_FF87A450\n" // 6
42  "B loc_FF87A458\n" // 7
43  "B loc_FF87A4B0\n" // 8
44  "B loc_FF87A4D8\n" // 9
45  "B loc_FF87A4BC\n" // 10
46  "B loc_FF87A4C8\n" // 11
47  "B loc_FF87A4D0\n" // 12
48  "B loc_FF87A4E0\n" // 13
49  "B loc_FF87A4E8\n" // 14
50  "B loc_FF87A4F0\n" // 15
51  "B loc_FF87A4F8\n" // 16
52  "B loc_FF87A500\n" // 17
53  "B loc_FF87A50C\n" // 18
54  "B loc_FF87A514\n" // 19
55  "B loc_FF87A51C\n" // 20
56  "B loc_FF87A524\n" // 21
57  "B loc_FF87A52C\n" // 22
58  "B loc_FF87A538\n" // 23
59  "B loc_FF87A540\n" // 24
60  "B loc_FF87A548\n" // 25
61  "B loc_FF87A550\n" // 26
62  "B loc_FF87A558\n" // 27
63  "B loc_FF87A564\n" // 28
64  "B loc_FF87A5A8\n" // 29
65 "loc_FF87A38C:\n" // jumptable entry 0
66  "BL sub_FF87AC50\n"
67  "BL shooting_expo_param_override\n" // added
68  "BL sub_FF87805C\n"
69 
70  // this code added to avoid some incorrect behavior if overrides are used.
71  // but it can cause some unexpected side effects. In this case, remove this code!
72  "MOV r0, #0\n"
73  "STR r0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press
74 
75  "B loc_FF87A5A8\n"
76 /*
77  "LDR r0, [r4, #36]\n"
78  "CMP r0, #0\n" // 0x0
79  "BEQ loc_FF87A5A8\n"
80  "BL sub_FF879B30\n"
81  "MOV r5, r0\n"
82  "LDR r0, [r4, #36]\n"
83  "CMP r0, #0\n" // 0x0
84  "BEQ loc_FF87A3D4\n"
85  "LDR r0, =0xc\n" // was: "mov ..., #12"
86  "BL sub_FF87F124\n"
87  "TST r0, #1\n" // 0x1
88  "STRNE r9, [r6, #16]\n"
89  "LDRNE r0, [r5, #8]\n"
90  "ORRNE r0, r0, #1073741824\n" // 0x40000000
91  "STRNE r0, [r5, #8]\n"
92  "BNE loc_FF87A5A8\n"
93 "loc_FF87A3D4:\n"
94  "MOV r0, r5\n"
95  "BL sub_FF879DD4\n"
96  "MOV r0, r5\n"
97 
98  "BL sub_ff95f120_my\n" // taskcreate_ShutterSoundTask()
99  "BL capt_seq_hook_raw_here\n" // added
100 
101  "TST r0, #1\n" // 0x1
102  "STRNE r9, [r6, #16]\n"
103  "B loc_FF87A5A8\n"
104 */
105 "loc_FF87A3F0:\n" // jumptable entry 1
106  "LDR r0, [r4, #36]\n"
107  "CMP r0, #0\n" // 0x0
108  "BNE loc_FF87A41C\n"
109  "LDR r0, =0xc\n" // was: "mov ..., #12"
110  "BL sub_FF87F124\n"
111  "TST r0, #1\n" // 0x1
112  "LDRNE r0, [sp]\n"
113  "LDRNE r1, =0x1\n" // was: "mov ..., #1"
114  "LDRNE r2, [r0, #12]\n"
115  "LDRNE r0, =0x1\n" // was: "mov ..., #1"
116  "BNE loc_FF87A4A8\n"
117 "loc_FF87A41C:\n"
118  "LDR r0, [sp]\n"
119  //"BL sub_ff87a714\n"
120  "BL sub_ff87a714_my\n"
121 "loc_FF87A424:\n" // 2 refs
122  "STR r7, [r4, #36]\n"
123  "B loc_FF87A5A8\n"
124 "loc_FF87A42C:\n" // jumptable entry 2
125  "LDR r0, =0x1\n" // was: "mov ..., #1"
126  "BL sub_FF87AEF4\n"
127  "B loc_FF87A5A8\n"
128 "loc_FF87A438:\n" // jumptable entry 4
129  "BL sub_FF87A86C\n"
130  "B loc_FF87A424\n"
131 "loc_FF87A440:\n" // jumptable entry 3
132  "BL sub_FF87AC30\n"
133  "B loc_FF87A424\n"
134 "loc_FF87A448:\n" // jumptable entry 5
135  "BL sub_FF87AC38\n"
136  "B loc_FF87A5A8\n"
137 "loc_FF87A450:\n" // jumptable entry 6
138  "BL sub_FF87AE04\n"
139  "B loc_FF87A4B4\n"
140 "loc_FF87A458:\n" // jumptable entry 7
141  "LDR r5, [r0, #12]\n"
142  "BL sub_FF87AC40\n"
143  "MOV r0, r5\n"
144  "BL sub_FF95E03C\n"
145  "TST r0, #1\n" // 0x1
146  "MOV r8, r0\n"
147  "BNE loc_FF87A498\n"
148  "BL sub_FF88C384\n"
149  "STR r0, [r5, #24]\n"
150  "MOV r0, r5\n"
151  "BL sub_FF95EF80\n"
152  "MOV r0, r5\n"
153  "BL sub_FF95F31C\n"
154  "MOV r8, r0\n"
155  "LDR r0, [r5, #24]\n"
156  "BL sub_FF88C5BC\n"
157 "loc_FF87A498:\n"
158  "BL sub_FF87AC30\n"
159  "MOV r2, r5\n"
160  "LDR r1, =0x9\n" // was: "mov ..., #9"
161  "MOV r0, r8\n"
162 "loc_FF87A4A8:\n"
163  "BL sub_FF87851C\n"
164  "B loc_FF87A5A8\n"
165 "loc_FF87A4B0:\n" // jumptable entry 8
166  "BL sub_FF87AE6C\n"
167 "loc_FF87A4B4:\n"
168  "BL sub_FF87805C\n"
169  "B loc_FF87A5A8\n"
170 "loc_FF87A4BC:\n" // jumptable entry 10
171  "LDR r0, [r4, #84]\n"
172  "BL sub_FF87B298\n"
173  "B loc_FF87A5A8\n"
174 "loc_FF87A4C8:\n" // jumptable entry 11
175  "BL sub_FF87B54C\n"
176  "B loc_FF87A5A8\n"
177 "loc_FF87A4D0:\n" // jumptable entry 12
178  "BL sub_FF87B5E0\n"
179  "B loc_FF87A5A8\n"
180 "loc_FF87A4D8:\n" // jumptable entry 9
181  "BL sub_FF87AC30\n"
182  "B loc_FF87A5A8\n"
183 "loc_FF87A4E0:\n" // jumptable entry 13
184  "BL sub_FF95E254\n"
185  "B loc_FF87A5A8\n"
186 "loc_FF87A4E8:\n" // jumptable entry 14
187  "BL sub_FF95E468\n"
188  "B loc_FF87A5A8\n"
189 "loc_FF87A4F0:\n" // jumptable entry 15
190  "BL sub_FF95E500\n"
191  "B loc_FF87A5A8\n"
192 "loc_FF87A4F8:\n" // jumptable entry 16
193  "BL sub_FF95E5D0\n"
194  "B loc_FF87A5A8\n"
195 "loc_FF87A500:\n" // jumptable entry 17
196  "LDR r0, =0x0\n" // was: "mov ..., #0"
197  "BL sub_FF95E838\n"
198  "B loc_FF87A5A8\n"
199 "loc_FF87A50C:\n" // jumptable entry 18
200  "BL sub_FF95E988\n"
201  "B loc_FF87A5A8\n"
202 "loc_FF87A514:\n" // jumptable entry 19
203  "BL sub_FF95EA18\n"
204  "B loc_FF87A5A8\n"
205 "loc_FF87A51C:\n" // jumptable entry 20
206  "BL sub_FF95EAD8\n"
207  "B loc_FF87A5A8\n"
208 "loc_FF87A524:\n" // jumptable entry 21
209  "BL sub_FF87B06C\n"
210  "B loc_FF87A5A8\n"
211 "loc_FF87A52C:\n" // jumptable entry 22
212  "BL sub_FF87B114\n"
213  "BL sub_FF8376FC\n"
214  "B loc_FF87A5A8\n"
215 "loc_FF87A538:\n" // jumptable entry 23
216  "BL sub_FF95E69C\n"
217  "B loc_FF87A5A8\n"
218 "loc_FF87A540:\n" // jumptable entry 24
219  "BL sub_FF95E708\n"
220 //"loc_FF87A544:\n" // this line does not have a correspondence in 100a dump!
221  "B loc_FF87A5A8\n"
222 "loc_FF87A548:\n" // jumptable entry 25
223  "BL sub_FF87D72C\n"
224  "B loc_FF87A5A8\n"
225 "loc_FF87A550:\n" // jumptable entry 26
226  "BL sub_FF87D7B4\n"
227  "B loc_FF87A5A8\n"
228 "loc_FF87A558:\n" // jumptable entry 27
229  "BL sub_FF87D810\n"
230  "BL sub_FF87D7D0\n"
231  "B loc_FF87A5A8\n"
232 "loc_FF87A564:\n" // jumptable entry 28
233  "LDR r0, =0x1\n" // was: "mov ..., #1"
234  "BL sub_FF95FCE0\n"
235  "LDR r0, =0x1\n" // was: "mov ..., #1"
236  "BL sub_FF95FE14\n"
237  "LDRH r0, [r4, #148]\n"
238  "CMP r0, #4\n" // 0x4
239  "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh
240  "SUBNE ip, r0, #33280\n" // 0x8200
241  "SUBNES ip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes
242  "BNE loc_FF87A5A8\n"
243  "BL sub_FF87D7B4\n"
244  "BL sub_FF87DD24\n"
245  "BL sub_FF87DC34\n"
246  "B loc_FF87A5A8\n"
247 "loc_FF87A59C:\n" // jumptable default
248  "LDR r1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890"
249  "LDR r0, =0xFF879E50\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c"
250  "BL sub_ff81eb14\n"
251 "loc_FF87A5A8:\n" // 30 refs jumptable entry 29
252  "LDR r0, [sp]\n"
253  "LDR r1, [r0, #4]\n"
254  "LDR r0, [r6]\n"
255  "BL sub_FF883F4C\n"
256  "LDR r5, [sp]\n"
257  "LDR r0, [r5, #8]\n"
258  "CMP r0, #0\n" // 0x0
259  "LDREQ r1, =0x00000132\n" // was: "[pc, #632] ; ff87a894"
260  "LDREQ r0, =0xFF879E50\n" // was: "subeq r0, pc, #1920" *"SsShootTask.c"
261  "BLEQ sub_ff81eb14\n"
262  "STR r7, [r5, #8]\n"
263  "B loc_FF87A2D4\n"
264  );
265 }

Variablen-Dokumentation

long* nrflag = (long*)0x67c0
static

Definiert in Zeile 5 der Datei capt_seq.c.