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 "conf.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*)0x75B0
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

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

!!

IS_ERROR( hSoundHandle )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

IS_ERROR( RetCode )

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

"MOV R3, #0\n" "STR R3, [R9]\n"

TODO! below is from sd400

__MovieRecorder_c__100

__MovieRecorder_c__100

ASM1989 -> In sx200:FF857190 //"Mounter.c"

ASM1989 -> In sx200:FF81B284 // DebugAssert

Definiert in Zeile 13 der Datei capt_seq.c.

13  {
14  asm volatile (
15  "STMFD SP!, {R3-R9,LR}\n"
16 
17 
18 
19  "LDR R6, =0x32B4\n" // In sx200 was: 0x2B78
20  "LDR R4, =0x3A5AC\n" // In sx200 was: 0x15448
21  "MOV R9, #1\n"
22  "MOV R7, #0\n"
23 "loc_FF87EBA4:\n"
24  "LDR R0, [R6,#4]\n"
25  "MOV R2, #0\n"
26  "MOV R1, SP\n"
27  "BL sub_FF839B88\n"
28  "TST R0, #1\n"
29  "BEQ loc_FF87EBD0\n"
30  "LDR R1, =0x5BE\n" // In sx200 was:0x588
31  "LDR R0, =0xFF87E3B8\n" //aSsshoottask_c
32  "BL sub_FF81EB14\n" //DebugAssert
33  "BL sub_FF81EACC\n" //eventproc_export_ExitTask
34  "LDMFD SP!, {R3-R9,PC}\n"
35 
36 "loc_FF87EBD0:\n"
37  "LDR R0, [SP]\n"
38  "LDR R1, [R0]\n"
39  "CMP R1, #0x21\n" // In sx200 was:0x20
40  "ADDLS PC, PC, R1,LSL#2\n"
41  "B loc_FF87EE9C\n"
42 "loc_FF87EBE4:\n"
43  "B loc_FF87EC6C\n"
44 "loc_FF87EBE8:\n"
45  "B loc_FF87ECD0\n"
46 "loc_FF87EBEC:\n"
47  "B loc_FF87ED0C\n"
48 "loc_FF87EBF0:\n"
49  "B loc_FF87ED20\n"
50 "loc_FF87EBF4:\n"
51  "B loc_FF87ED18\n"
52 "loc_FF87EBF8:\n"
53  "B loc_FF87ED28\n"
54 "loc_FF87EBFC:\n"
55  "B loc_FF87ED30\n"
56 "loc_FF87EC00:\n"
57  "B loc_FF87ED38\n"
58 "loc_FF87EC04:\n"
59  "B loc_FF87ED90\n"
60 "loc_FF87EC08:\n"
61  "B loc_FF87EDB8\n"
62 "loc_FF87EC0C:\n"
63  "B loc_FF87ED9C\n"
64 "loc_FF87EC10:\n"
65  "B loc_FF87EDA8\n"
66 "loc_FF87EC14:\n"
67  "B loc_FF87EDB0\n"
68 "loc_FF87EC18:\n"
69  "B loc_FF87EDC0\n"
70 "loc_FF87EC1C:\n"
71  "B loc_FF87EDC8\n"
72 "loc_FF87EC20:\n"
73  "B loc_FF87EDD0\n"
74 "loc_FF87EC24:\n"
75  "B loc_FF87EDD8\n"
76 "loc_FF87EC28:\n"
77  "B loc_FF87EDE0\n"
78 "loc_FF87EC2C:\n"
79  "B loc_FF87EDE8\n"
80 "loc_FF87EC30:\n"
81  "B loc_FF87EDF0\n"
82 "loc_FF87EC34:\n"
83  "B loc_FF87EDF8\n"
84 "loc_FF87EC38:\n"
85  "B loc_FF87EE00\n"
86 "loc_FF87EC3C:\n"
87  "B loc_FF87EE08\n"
88 "loc_FF87EC40:\n"
89  "B loc_FF87EE14\n"
90 "loc_FF87EC44:\n"
91  "B loc_FF87EE1C\n"
92 "loc_FF87EC48:\n"
93  "B loc_FF87EE28\n"
94 "loc_FF87EC4C:\n"
95  "B loc_FF87EE30\n"
96 "loc_FF87EC50:\n"
97  "B loc_FF87EE38\n"
98 "loc_FF87EC54:\n"
99  "B loc_FF87EE40\n"
100 "loc_FF87EC58:\n"
101  "B loc_FF87EE48\n"
102 "loc_FF87EC5C:\n"
103  "B loc_FF87EE50\n"
104 "loc_FF87EC60:\n"
105  "B loc_FF87EE58\n"
106 "loc_FF87EC64:\n"
107  "B loc_FF87EE64\n"
108 "loc_FF87EC68:\n" //New in sx210
109  "B loc_FF87EEA8\n"
110 "loc_FF87EC6C:\n"
111  "BL sub_FF87F4C4\n"
112 
113 
114  // "B sub_FF87EC70\n" DEBUG TESTING GO BACK TO REAL CODE!!!
115 
116 // TESTING DOSNT DO BAD NEITHER GOOD LIKE IN SD1200 but seems to dont work too!!!
117 /*
118 " STMFD SP!, {R1-R12,LR}\n"
119 " BL captseq_hack_override_active\n" // returns 1 if tv or sv override in effect
120 " LDMFD SP!, {R1-R12,LR}\n"
121 " STR R0,[SP,#-4]!\n" // push return value
122 " BL shooting_expo_param_override\n" // saves all regs
123 
124 " BL sub_FF87C4C0\n"
125 
126 " LDR R0,[SP],#4\n" // pop override hack
127 " CMP R0, #1\n"
128 " MOVEQ R0, #0\n"
129 " STREQ R0, [R4,#0x24]\n" // fixes overrides behavior at short shutter press
130 */
131 
132 
133 
134 
135  "BL shooting_expo_param_override\n" // +
136  "BL sub_FF87C4C0\n"
137 
138 // copied over from SX10 don't know if we need it yet
139  // this code added to avoid some incorrect behavior if overrides are used.
140  // but it can cause some unexpected side effects. In this case, remove this code!
141 
142  "MOV R0, #0\n"
143  "STR R0, [R4,#0x24]\n" // fixes overrides behavior at short shutter press
144 
145 
146 
147 
148  // end of my code
149  "LDR R0, [R4,#0x24]\n"
150  "CMP R0, #0\n"
151  "BEQ loc_FF87EEA8\n"
152  "BL sub_FF87E090\n"
153  "MOV R5, R0\n"
154  "LDR R0, [R4,#0x24]\n"
155  "CMP R0, #0\n"
156  "BEQ loc_FF87ECB4\n"
157  "MOV R0, #0xC\n"
158  "BL sub_FF883D9C\n"
159  "TST R0, #1\n"
160  "STRNE R9, [R6,#0x10]\n"
161  "LDRNE R0, [R5,#8]\n"
162  "ORRNE R0, R0, #0x40000000\n"
163  "STRNE R0, [R5,#8]\n"
164  "BNE loc_FF87EEA8\n"
165 "loc_FF87ECB4:\n"
166  "MOV R0, R5\n"
167  "BL sub_FF87E470\n"
168  "MOV R0, R5\n"
169 
170 
171  "BL sub_FF972EFC_my\n" // ASM1989 Done 03.09.10 In sx200 was: sub_FF93D388_my
172 // "BL sub_FF972EFC\n" ASM1989 Done 03.09.10 In sx200 was: sub_FF93D388_my
173 //TESTING OVERRIDES 18.09.10
174 //In sd1200 its not my ????
175 // "BL sub_FF972EFC\n"
176  // ------------------>
177 //in sd1200 its not here
178  "BL capt_seq_hook_raw_here\n" // +
179 
180 
181  "TST R0, #1\n"
182  "STRNE R9, [R6,#0x10]\n"
183  "B loc_FF87EEA8\n"
184 "loc_FF87ECD0:\n"
185  "LDR R0, [R4,#0x24]\n"
186  "CMP R0, #0\n"
187  "BNE loc_FF87ECFC\n"
188  "MOV R0, #0xC\n"
189  "BL sub_FF883D9C\n"
190  "TST R0, #1\n"
191  "LDRNE R0, [SP]\n"
192  "MOVNE R1, #1\n"
193  "LDRNE R2, [R0,#0xC]\n"
194  "MOVNE R0, #1\n"
195  "BNE loc_FF87ED88\n"
196 "loc_FF87ECFC:\n"
197  "LDR R0, [SP]\n"
198  "BL sub_FF87E4E8_my\n" // ASM1989 Done 03.09.10 In sx200 was: sub_FF862C18_my
199  // "BL sub_FF87E4E8\n" ASM1989 Done 03.09.10 In sx200 was: sub_FF862C18_my
200  // ----------------->
201 "loc_FF87ED04:\n"
202  "STR R7, [R4,#0x24]\n"
203  "B loc_FF87EEA8\n"
204 "loc_FF87ED0C:\n" // IN sx20 there is another extra bl here
205  "MOV R0, #1\n"
206  "BL sub_FF87F768\n" //LOCATION: SsPrepareSeq.c:0
207  "B loc_FF87EEA8\n"
208 "loc_FF87ED18:\n"
209  "BL sub_FF87F15C\n"
210  "B loc_FF87ED04\n"
211 "loc_FF87ED20:\n"
212 // last call after shot, also called switching from play->shoot
213  "BL sub_FF87F4A4\n"
214  "B loc_FF87ED04\n"
215 "loc_FF87ED28:\n"
216  "BL sub_FF87F4AC\n"
217  "B loc_FF87EEA8\n"
218 "loc_FF87ED30:\n"
219  "BL sub_FF87F678\n" //SsPrepareSeq.c__0
220  "B loc_FF87ED94\n"
221 "loc_FF87ED38:\n"
222  "LDR R5, [R0,#0xC]\n"
223  "BL sub_FF87F4B4\n"
224  "MOV R0, R5\n"
225  "BL sub_FF971D04\n"
226  "TST R0, #1\n"
227  "MOV R8, R0\n"
228  "BNE loc_FF87ED78\n"
229  "BL sub_FF891200\n"
230 
231 
232 
233  "STR R0, [R5,#0x18]\n"
234  "MOV R0, R5\n"
235  "BL sub_FF972E14\n" // Flash and ISO Seams to crash here??
236  "MOV R0, R5\n"
237  "BL sub_FF9731AC\n"
238  "MOV R8, R0\n"
239  "LDR R0, [R5,#0x18]\n"
240  "BL sub_FF891438\n"
241 "loc_FF87ED78:\n"
242  "BL sub_FF87F4A4\n"
243  "MOV R2, R5\n"
244  "MOV R1, #9\n"
245  "MOV R0, R8\n"
246 "loc_FF87ED88:\n"
247  "BL sub_FF87CB20\n"
248  "B loc_FF87EEA8\n"
249 "loc_FF87ED90:\n"
250 // movie mode half press ?
251  "BL sub_FF87F6E0\n"
252 "loc_FF87ED94:\n"
253  "BL sub_FF87C4C0\n"
254  "B loc_FF87EEA8\n"
255 "loc_FF87ED9C:\n"
256  "LDR R0, [R4,#0x54]\n"
257  "BL sub_FF87FD30\n"
258  "B loc_FF87EEA8\n"
259 "loc_FF87EDA8:\n"
260  "BL sub_FF87FFE8\n"
261  "B loc_FF87EEA8\n"
262 "loc_FF87EDB0:\n"
263  "BL sub_FF880080\n"
264  "B loc_FF87EEA8\n"
265 "loc_FF87EDB8:\n"
266  "BL sub_FF87F4A4\n"
267  "B loc_FF87EEA8\n"
268 "loc_FF87EDC0:\n"
269  "BL sub_FF971F20\n"
270  "B loc_FF87EEA8\n"
271 "loc_FF87EDC8:\n"
272  "BL sub_FF972134\n"
273  "B loc_FF87EEA8\n"
274 "loc_FF87EDD0:\n"
275  "BL sub_FF9721BC\n"
276  "B loc_FF87EEA8\n"
277 "loc_FF87EDD8:\n"
278  "BL sub_FF9722AC\n"
279  "B loc_FF87EEA8\n"
280 "loc_FF87EDE0:\n" //new sx210
281  "BL sub_FF97237C\n"
282  "B loc_FF87EEA8\n"
283 "loc_FF87EDE8:\n"
284  "MOV R0, #0\n"
285  "B loc_FF87EE0C\n"
286 "loc_FF87EDF0:\n"
287  "BL sub_FF9727E8\n"
288  "B loc_FF87EEA8\n"
289 "loc_FF87EDF8:\n"
290  "BL sub_FF972884\n"
291  "B loc_FF87EEA8\n"
292 "loc_FF87EE00:\n"
293  "BL sub_FF972964\n"
294  "B loc_FF87EEA8\n"
295 "loc_FF87EE08:\n"
296  "MOV R0, #1\n"
297 "loc_FF87EE0C:\n"
298  "BL sub_FF972698\n"
299  "B loc_FF87EEA8\n"
300 "loc_FF87EE14:\n"
301  "BL sub_FF87F920\n"
302  "B loc_FF87EEA8\n"
303 "loc_FF87EE1C:\n"
304  "BL sub_FF87F9C8\n"
305  "BL sub_FF87EFD4\n"
306  "B loc_FF87EEA8\n"
307 "loc_FF87EE28:\n"
308  "BL sub_FF9724F8\n"
309  "B loc_FF87EEA8\n"
310 "loc_FF87EE30:\n"
311  "BL sub_FF9725C8\n"
312  "B loc_FF87EEA8\n"
313 "loc_FF87EE38:\n"
314  "BL sub_FF87E348\n"
315  "B loc_FF87EEA8\n"
316 "loc_FF87EE40:\n"
317  "BL sub_FF837804\n"
318  "B loc_FF87EEA8\n"
319 "loc_FF87EE48:\n"
320  "BL sub_FF882220\n"
321  "B loc_FF87EEA8\n"
322 "loc_FF87EE50:\n"
323  "BL sub_FF8822A8\n"
324  "B loc_FF87EEA8\n"
325 "loc_FF87EE58:\n"
326 // iso change
327  "BL sub_FF882304\n"
328  "BL sub_FF8822C4\n"
329  "B loc_FF87EEA8\n"
330 "loc_FF87EE64:\n" //diferent than sx200 & sx20
331  "MOV R0, #1\n"
332  "BL sub_FF973B6C\n"
333  "MOV R0, #1\n"
334  "BL sub_FF973CA0\n"
335  "LDRH R0, [R4,#0x9C]\n"
336  "CMP R0, #4\n"
337  "LDRNEH R0, [R4]\n"
338  "SUBNE R12, R0, #0x8200\n"
339  "SUBNES R12, R12, #0x2A\n"
340  "BNE loc_FF87EEA8\n"
341  "BL sub_FF8822A8\n"
342  "BL sub_FF882820\n" //Error in function order call
343  "BL sub_FF882728\n"
344  "B loc_FF87EEA8\n"
345 
346 "loc_FF87EE9C:\n"
347  "LDR R1, =0x724\n" //in sx200 was: 0x6C9
348  "LDR R0, =0xFF87E3B8\n" //aSsshoottask_c ; "SsShootTask.c"
349  "BL sub_FF81EB14\n" //DebugAssert
350 "loc_FF87EEA8:\n"
351  "LDR R0, [SP]\n"
352  "LDR R1, [R0,#4]\n"
353  "LDR R0, [R6]\n"
354  "BL sub_FF888E00\n"
355  "LDR R5, [SP]\n"
356  "LDR R0, [R5,#8]\n"
357  "CMP R0, #0\n"
358  "LDREQ R1, =0x132\n" // in sx200: 0x12B
359  "LDREQ R0, =0xFF87E3B8\n" //aSsshoottask_c ; "SsShootTask.c"
360  "BLEQ sub_FF81EB14\n" //DebugAssert
361  "STR R7, [R5,#8]\n"
362  "B loc_FF87EBA4\n"
363  );
364 } // ASM 1989 Done 03.09.10

Variablen-Dokumentation

long* nrflag = (long*)0x75B0
static

Definiert in Zeile 6 der Datei capt_seq.c.