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))
 

Variablen

static long * nrflag = (long*)0xDDA8
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 15 der Datei capt_seq.c.

15  {
16 // _sub_FF88365C__SsShootTask.c__13 ROM FF88365C 00000274 R . . . . . .
17  asm volatile (
18  "STMFD SP!, {R3-R7,LR}\n"
19  "LDR R7, =0x3474\n" // In sx200 was: 0x2B78
20  "LDR R4, =0x3C5E4\n" // In sx200 was: 0x15448
21  "MOV R6, #0\n"
22 "loc_FF883640:\n" // loc_FF88366C in 102B
23  "LDR R0, [R7,#4]\n"
24  "MOV R2, #0\n"
25  "MOV R1, SP\n"
26  "BL sub_FF83AE20\n" // same as 100D
27  "TST R0, #1\n"
28  "BEQ loc_FF88366C\n" // loc_FF883698 in 102B
29  "LDR R1, =0x43F\n"
30  "LDR R0, =0xFF8831C8\n" //aSsshoottask_c // changed from 0xFF88319C in 100D
31  "BL sub_FF81EB78\n" //DebugAssert // unchanged from 100D
32  "BL sub_FF81EB30\n" //eventproc_export_ExitTask // unchanged from 100D
33  "LDMFD SP!, {R3-R7,PC}\n"
34 
35 "loc_FF88366C:\n" // loc_FF883698 in 102B
36  "LDR R0, [SP]\n"
37  "LDR R1, [R0]\n"
38  "CMP R1, #0x1F\n"
39  "ADDLS PC, PC, R1,LSL#2\n"
40  "B loc_FF883868\n" // loc_FF883894 in 102B
41 
42 "loc_FF883680:\n" // loc_FF8836AC
43  "B loc_FF883700\n" // loc_FF88372C
44 "loc_FF883684:\n" // loc_FF8836B0
45  "B loc_FF883718\n" // loc_FF883744
46 "loc_FF883688:\n" // loc_FF8836B4
47  "B loc_FF883730\n" // loc_FF88375C
48 "loc_FF88368C:\n" // loc_FF8836B8
49  "B loc_FF883744\n" // loc_FF883770
50 "loc_FF883690:\n" // loc_FF8836BC
51  "B loc_FF88373C\n" // loc_FF883768
52 "loc_FF883694:\n" // loc_FF8836C0
53  "B loc_FF883750\n" // loc_FF88377C
54 "loc_FF883698:\n" // loc_FF8836C4
55  "B loc_FF883758\n" // loc_FF883784
56 "loc_FF88369C:\n" // loc_FF8836C8
57  "B loc_FF883760\n" // loc_FF88378C
58 "loc_FF8836A0:\n" // loc_FF8836CC
59  "B loc_FF88376C\n" // loc_FF883798
60 "loc_FF8836A4:\n" // loc_FF8836D0
61  "B loc_FF883794\n" // loc_FF8837C0
62 "loc_FF8836A8:\n" // loc_FF8836D4
63  "B loc_FF883778\n" // loc_FF8837A4
64 "loc_FF8836AC:\n" // loc_FF8836D8
65  "B loc_FF883784\n" // loc_FF8837B0
66 "loc_FF8836B0:\n" // loc_FF8836DC
67  "B loc_FF88378C\n" // loc_FF8837B8
68 "loc_FF8836B4:\n" // loc_FF8836E0
69  "B loc_FF88379C\n" // loc_FF8837C8
70 "loc_FF8836B8:\n" // loc_FF8836E4
71  "B loc_FF8837A4\n" // loc_FF8837D0
72 "loc_FF8836BC:\n" // loc_FF8836E8
73  "B loc_FF8837AC\n" // loc_FF8837D8
74 "loc_FF8836C0:\n" // loc_FF8836EC
75  "B loc_FF8837B4\n" // loc_FF8837E0
76 "loc_FF8836C4:\n" // loc_FF8836F0
77  "B loc_FF8837BC\n" // loc_FF8837E8
78 "loc_FF8836C8:\n" // loc_FF8836F4
79  "B loc_FF8837C8\n" // loc_FF8837F4
80 "loc_FF8836CC:\n" // loc_FF8836F8
81  "B loc_FF8837D0\n" // loc_FF8837FC
82 "loc_FF8836D0:\n" // loc_FF8836FC
83  "B loc_FF8837D8\n" // loc_FF883804
84 "loc_FF8836D4:\n" // loc_FF883700
85  "B loc_FF8837E0\n" // loc_FF88380C
86 "loc_FF8836D8:\n" // loc_FF883704
87  "B loc_FF8837E8\n" // loc_FF883814
88 "loc_FF8836DC:\n" // loc_FF883708
89  "B loc_FF8837F4\n" // loc_FF883820
90 "loc_FF8836E0:\n" // loc_FF88370C
91  "B loc_FF8837FC\n" // loc_FF883828
92 "loc_FF8836E4:\n" // loc_FF883710
93  "B loc_FF883804\n" // loc_FF883830
94 "loc_FF8836E8:\n" // loc_FF883714
95  "B loc_FF88380C\n" // loc_FF883838
96 "loc_FF8836EC:\n" // loc_FF883718
97  "B loc_FF883814\n" // loc_FF883840
98 "loc_FF8836F0:\n" // loc_FF88371C
99  "B loc_FF88381C\n" // loc_FF883848
100 "loc_FF8836F4:\n" // loc_FF883720
101  "B loc_FF883824\n" // loc_FF883850
102 "loc_FF8836F8:\n" // loc_FF883724
103  "B loc_FF883830\n" // loc_FF88385C
104 "loc_FF8836FC:\n" // loc_FF883728
105  "B loc_FF883874\n" // loc_FF8838A0
106 "loc_FF883700:\n" // loc_FF88372C
107  "BL shooting_expo_param_override\n" // +
108  "BL sub_FF883DB4\n" // changed from FF883D88 in 100D
109  "BL shooting_expo_param_override\n" // +
110  "BL sub_FF880F50\n" // changed from FF880F24 in 100D
111 
112 // copied over from SX10 don't know if we need it yet
113  // this code added to avoid some incorrect behavior if overrides are used.
114  // but it can cause some unexpected side effects. In this case, remove this code!
115 
116  "MOV R0, #0\n"
117  "STR R0, [R4,#0x24]\n" // fixes overrides behavior at short shutter press
118  // end of my code
119  "LDR R0, [R4,#0x24]\n"
120  "CMP R0, #0\n"
121 
122 //TIL HERE ixus1000 then changes a lot !!!
123 
124 //all this should not be here:
125 
126  //"BLNE sub_FF98ADD4\n" // This is a potential my sub like the FF972EFC but starting some line earlier
127 
128  "BLNE sub_FF98ADD4_my\n" // This is a potential my sub like the FF972EFC but starting some line earlier // sub_FF883DB4 in 102B
129  //---------------->
130 // "BL capt_seq_hook_raw_here\n" // +
131 
132  "B loc_FF883874\n" // loc_FF8838A0 in 102B
133 "loc_FF883718:\n" // loc_FF883744 in 102B
134  "LDRH R1, [R4]\n"
135  "SUB R12, R1, #0x8200\n"
136  "SUBS R12, R12, #0x2E\n"
137  "LDRNE R0, [R0,#0xC]\n"
138 // "BLNE sub_FF98AB68\n"
139  "BLNE sub_FF98AB68_my\n" // 100 D was 68 // _sub_FF98AC1C__SsCaptureSeq.c__195 in 102b
140  //---------------->
141 // "BL capt_seq_hook_raw_here\n" // +
142 
143 
144  "B loc_FF883874\n" // loc_FF8838A0 in 102B
145 "loc_FF883730:\n" // loc_FF88375C in 102B
146  "MOV R0, #1\n"
147  "BL sub_FF884070\n" // changed from FF884044 in 100D
148  "B loc_FF883874\n" // loc_FF8838A0 in 102B
149 "loc_FF88373C:\n" // loc_FF883768
150  "BL sub_FF883A54\n" // changed from FF883A28 in 100D
151  "B loc_FF883748\n" // loc_FF883774 in 102B
152 "loc_FF883744:\n" // loc_FF883770
153  "BL sub_FF883D94\n" // chnaged from sub_FF883D68 in 100D
154 "loc_FF883748:\n" // loc_FF883774 in 102B
155  "STR R6, [R4,#0x24]\n"
156  "B loc_FF883874\n" // loc_FF8838A0 in 100D
157 "loc_FF883750:\n" // loc_FF88377C in 102B
158  "BL sub_FF883D9C\n" // changed from sub_FF883D70 in 100D
159  "B loc_FF883874\n" // loc_FF8838A0 in 102B
160 
161 "loc_FF883758:\n" // loc_FF883784 in 102B
162  "BL sub_FF883F74\n" // changed from sub_FF883F48 in 100D
163  "B loc_FF883770\n" // loc_FF88379C in 102B
164 "loc_FF883760:\n" // loc_FF88378C
165  "LDR R0, [R0,#0xC]\n"
166  "BL sub_FF98AEE8\n" // changed from sub_FF98AE34 in 100D
167  "B loc_FF883874\n" // loc_FF8838A0
168 "loc_FF88376C:\n" // loc_FF883798
169  "BL sub_FF883FE0\n" // chnaged from sub_FF883FB4 in 100D
170 "loc_FF883770:\n" // loc_FF88379C
171  "BL sub_FF880F50\n" // changed from sub_FF880F24 in 100D
172  "B loc_FF883874\n" // loc_FF8838A0
173 "loc_FF883778:\n" // loc_FF8837A4
174  "LDR R0, [R4,#0x54]\n"
175  "BL sub_FF8846DC\n" // changed from sub_FF8846B0 in 100D
176  "B loc_FF883874\n" // loc_FF8838A0
177 "loc_FF883784:\n" // loc_FF8837B0
178  "BL sub_FF884A78\n" // changed from sub_FF884A4C in 100D
179  "B loc_FF883874\n" // loc_FF8838A0
180 "loc_FF88378C:\n" // loc_FF8837B8
181  "BL sub_FF884ADC\n" // changed from sub_FF884AB0 in 100D
182  "B loc_FF883874\n" // loc_FF8838A0
183 "loc_FF883794:\n" // loc_FF8837C0
184  "BL sub_FF883D94\n" // changed from sub_FF883D68 in 100D
185  "B loc_FF883874\n" // loc_FF8838A0
186 "loc_FF88379C:\n" // loc_FF8837C8
187  "BL sub_FF98A268\n" // changed from sub_FF98A1B4 in 100D
188  "B loc_FF883874\n" // loc_FF8838A0
189 "loc_FF8837A4:\n" // loc_FF8837D0
190  "BL sub_FF98A474\n" // sub_FF98A3C0
191  "B loc_FF883874\n" // loc_FF8838A0
192 "loc_FF8837AC:\n" // loc_FF8837D8
193  "BL sub_FF98A518\n" // changed from sub_FF98A464 in 100D
194  "B loc_FF883874\n" // loc_FF8838A0
195 "loc_FF8837B4:\n" // loc_FF8837E0
196  "BL sub_FF98A5E8\n" // changed from sub_FF98A534 in 100D
197  "B loc_FF883874\n" // loc_FF8838A0
198 "loc_FF8837BC:\n" // loc_FF8837E8
199  "MOV R0, #0\n"
200  "BL sub_FF98A848\n" // changed from sub_FF98A794 in 100D
201  "B loc_FF883874\n" // loc_FF8838A0
202 "loc_FF8837C8:\n" // loc_FF8837F4
203  "BL sub_FF98A9A4\n" // changed from sub_FF98A8F0 in 100D
204  "B loc_FF883874\n" // loc_FF8838A0
205 "loc_FF8837D0:\n" // loc_FF8837FC
206  "BL sub_FF98AA48\n" // changed from sub_FF98A994 in 100D
207  "B loc_FF883874\n" // loc_FF8838A0
208 "loc_FF8837D8:\n" // loc_FF883804
209  "BL sub_FF98AB28\n" // changed from sub_FF98AA74 in 100D
210  "B loc_FF883874\n" // loc_FF8838A0
211 "loc_FF8837E0:\n" // loc_FF88380C
212  "BL sub_FF884258\n" // sub_FF88422C
213  "B loc_FF883874\n" // loc_FF8838A0
214 "loc_FF8837E8:\n" // loc_FF883814
215  "BL sub_FF884304\n" // sub_FF8842D8
216  "BL sub_FF98BBA8\n" // sub_FF98BAF4
217  "B loc_FF883874\n" // loc_FF8838A0
218 "loc_FF8837F4:\n" // loc_FF883820
219  "BL sub_FF98A6B4\n" // sub_FF98A600
220  "B loc_FF883874\n" // loc_FF8838A0
221 "loc_FF8837FC:\n" // loc_FF883828
222  "BL sub_FF98A71C\n" // sub_FF98A668
223  "B loc_FF883874\n" // loc_FF8838A0
224 "loc_FF883804:\n" // loc_FF883830
225  "BL sub_FF98BC78\n" // sub_FF98BBC4
226  "B loc_FF883874\n" // loc_FF8838A0
227 "loc_FF88380C:\n" // loc_FF883838
228  "BL sub_FF838C50\n" // unchanged from 100D
229  "B loc_FF883874\n" // loc_FF8838A0
230 "loc_FF883814:\n" // loc_FF883840
231  "BL sub_FF886E18\n" // sub_FF886DEC
232  "B loc_FF883874\n" // loc_FF8838A0
233 "loc_FF88381C:\n" // loc_FF883848
234  "BL sub_FF886EA0\n" // sub_FF886E74
235  "B loc_FF883874\n" // loc_FF8838A0
236 "loc_FF883824:\n" // loc_FF883850
237  "BL sub_FF886EFC\n" // sub_FF886ED0
238  "BL sub_FF886EBC\n" // sub_FF886E90
239  "B loc_FF883874\n" // loc_FF8838A0
240 "loc_FF883830:\n" // loc_FF88385C
241  "MOV R0, #1\n"
242  "BL sub_FF98B6E4\n" // sub_FF98B630
243  "MOV R0, #1\n"
244  "BL sub_FF98B814\n" // sub_FF98B760
245  "LDRH R0, [R4,#0x94]\n"
246  "CMP R0, #4\n"
247  "LDRNEH R0, [R4]\n"
248  "SUBNE R12, R0, #0x8200\n"
249  "SUBNES R12, R12, #0x2A\n"
250  "BNE loc_FF883874\n" // loc_FF8838A0 in 102B
251  "BL sub_FF886EA0\n" // changed from sub_FF886E74 in 100D
252  "BL sub_FF88740C\n" // changed from sub_FF8873E0 in 100D
253  "BL sub_FF88731C\n" // changed from sub_FF8872F0 in 100D
254  "B loc_FF883874\n" // loc_FF8838A0
255 "loc_FF883868:\n" // loc_FF883894
256  "LDR R1, =0x591\n"
257  "LDR R0, =0xFF8831C8\n" //aSsshoottask_c // changed from 0xFF88319C in 100D
258  "BL sub_FF81EB78\n" //DebugAssert
259 "loc_FF883874:\n" // loc_FF8838A0
260  "LDR R0, [SP]\n"
261  "LDR R1, [R0,#4]\n"
262  "LDR R0, [R7]\n"
263  "BL sub_FF88DBB8\n" // changed from sub_FF88DB8C in 100D
264  "LDR R5, [SP]\n"
265  "LDR R0, [R5,#8]\n"
266  "CMP R0, #0\n"
267  "LDREQ R1, =0x115\n"
268  "LDREQ R0, =0xFF8831C8\n" //aSsshoottask_c "ADREQ R0, aSsshoottask_c ; "SsShootTask.c // changed from 0xFF88319C in 100D
269  "BLEQ sub_FF81EB78\n" //DebugAssert
270  "STR R6, [R5,#8]\n"
271  "B loc_FF883640\n" // loc_FF88366C in 102B
272 
273 
274 
275 
276 
277 
278 // looks like the nr stuff is sub_FFAE3304
279 
280 
281 
282  );
283 } // ASM 1989 Done 11.11.10

Variablen-Dokumentation

long* nrflag = (long*)0xDDA8
static

Definiert in Zeile 10 der Datei capt_seq.c.