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

Variablen

static long * nrflag = (long*)0x6E50
 

Dokumentation der Funktionen

void __attribute__ ( (naked, noinline)  )

!!

Definiert in Zeile 14 der Datei capt_seq.c.

14  {
15 asm volatile (
16 " STMFD SP!, {R4,R5,LR} \n"
17 " SUB SP, SP, #4 \n"
18 " MOV R5, SP \n"
19 " B loc_FF99F5A8 \n"
20 
21 "loc_FF99F3C0:\n"
22 " LDR R2, [SP] \n"
23 " LDR R3, [R2] \n"
24 " MOV R0, R2 \n"
25 " CMP R3, #0x19 \n"
26 " LDRLS PC, [PC, R3, LSL#2] \n"
27 " B loc_FF99F57C \n"
28 " .long loc_FF99F440 \n"
29 " .long loc_FF99F460 \n"
30 " .long loc_FF99F474 \n"
31 " .long loc_FF99F488 \n"
32 " .long loc_FF99F480 \n"
33 " .long loc_FF99F490 \n"
34 " .long loc_FF99F498 \n"
35 " .long loc_FF99F4A4 \n"
36 " .long loc_FF99F4AC \n"
37 " .long loc_FF99F4B8 \n"
38 " .long loc_FF99F4C0 \n"
39 " .long loc_FF99F4C8 \n"
40 " .long loc_FF99F4D0 \n"
41 " .long loc_FF99F4D8 \n"
42 " .long loc_FF99F4E0 \n"
43 " .long loc_FF99F4EC \n"
44 " .long loc_FF99F4F4 \n"
45 " .long loc_FF99F4FC \n"
46 " .long loc_FF99F504 \n"
47 " .long loc_FF99F510 \n"
48 " .long loc_FF99F51C \n"
49 " .long loc_FF99F524 \n"
50 " .long loc_FF99F564 \n"
51 " .long loc_FF99F56C \n"
52 " .long loc_FF99F574 \n"
53 " .long loc_FF99F590 \n"
54 
55 "loc_FF99F440:\n"
56 " BL sub_FF99FAE8 \n"
57 
58 // only do quick press hack if overrides are active
59 " BL captseq_hack_override_active\n" // returns 1 if tv or sv override in effect
60 " STR R2, [SP,#-4]!\n" // push return value
61 " BL shooting_expo_param_override\n" // +
62 
63 " BL sub_FF99CC60 \n"
64 " LDR R3, =0xA4840 \n"
65 
66 " LDR R2, [SP], #4\n" // pop override hack
67 " CMP R2, #1\n" // +
68 " MOVEQ R2, #0\n" // +
69 " STREQ R2, [R3, #0x28]\n" // fixes overrides behavior at short shutter press
70 " LDRNE R2, [R3, #0x28]\n" // modified NE
71 " CMPNE R2, #0\n" // modified NE
72 
73 //" LDR R2, [R3, #0x28] \n" // above patch makes these lines redundant
74 //" CMP R2, #0 \n"
75 " BEQ loc_FF99F58C \n"
76 " BL sub_FF99EF7C_my \n" // --> Patched. Old value = 0xFF99EF7C.
77 " B loc_FF99F58C \n"
78 
79 "loc_FF99F460:\n"
80 " BL sub_FF99ED38_my \n" // --> Patched. Old value = 0xFF99ED38.
81 
82 "loc_FF99F464:\n"
83 " LDR R2, =0xA4840 \n"
84 " MOV R3, #0 \n"
85 " STR R3, [R2, #0x28] \n"
86 " B loc_FF99F58C \n"
87 
88 "loc_FF99F474:\n"
89 " MOV R0, #1 \n"
90 " BL sub_FF99FDA8 \n"
91 " B loc_FF99F58C \n"
92 
93 "loc_FF99F480:\n"
94 " BL sub_FF99F6A4 \n"
95 " B loc_FF99F464 \n"
96 
97 "loc_FF99F488:\n"
98 " BL sub_FF99FAA0 \n"
99 " B loc_FF99F464 \n"
100 
101 "loc_FF99F490:\n"
102 " BL sub_FF99FAB0 \n"
103 " B loc_FF99F58C \n"
104 
105 "loc_FF99F498:\n"
106 " BL sub_FF99FC48 \n"
107 " BL sub_FF99CC60 \n"
108 " B loc_FF99F58C \n"
109 
110 "loc_FF99F4A4:\n"
111 " BL sub_FF99F060 \n"
112 " B loc_FF99F58C \n"
113 
114 "loc_FF99F4AC:\n"
115 " BL sub_FF99FCFC \n"
116 " BL sub_FF99CC60 \n"
117 " B loc_FF99F58C \n"
118 
119 "loc_FF99F4B8:\n"
120 " BL sub_FF99FAA0 \n"
121 " B loc_FF99F58C \n"
122 
123 "loc_FF99F4C0:\n"
124 " BL sub_FF9A16F4 \n"
125 " B loc_FF99F58C \n"
126 
127 "loc_FF99F4C8:\n"
128 " BL sub_FF9A1938 \n"
129 " B loc_FF99F58C \n"
130 
131 "loc_FF99F4D0:\n"
132 " BL sub_FF9A19F0 \n"
133 " B loc_FF99F58C \n"
134 
135 "loc_FF99F4D8:\n"
136 " BL sub_FF9A1A8C \n"
137 " B loc_FF99F58C \n"
138 
139 "loc_FF99F4E0:\n"
140 " MOV R0, #0 \n"
141 " BL sub_FF9A1F14 \n"
142 " B loc_FF99F58C \n"
143 
144 "loc_FF99F4EC:\n"
145 " BL sub_FF9A2120 \n"
146 " B loc_FF99F58C \n"
147 
148 "loc_FF99F4F4:\n"
149 " BL sub_FF9A21B8 \n"
150 " B loc_FF99F58C \n"
151 
152 "loc_FF99F4FC:\n"
153 " BL sub_FF9A2278 \n"
154 " B loc_FF99F58C \n"
155 
156 "loc_FF99F504:\n"
157 " MOV R0, #1 \n"
158 " BL sub_FF9A1F14 \n"
159 " B loc_FF99F58C \n"
160 
161 "loc_FF99F510:\n"
162 " BL sub_FF99FF7C \n"
163 " BL sub_FF99EAF8 \n"
164 " B loc_FF99F58C \n"
165 
166 "loc_FF99F51C:\n"
167 " BL sub_FF9A1D9C \n"
168 " B loc_FF99F58C \n"
169 
170 "loc_FF99F524:\n"
171 " LDR R4, =0xA48A0 \n"
172 " MOV R0, #0x11 \n"
173 " MOV R1, R4 \n"
174 " MOV R2, #2 \n"
175 " BL _GetPropertyCase \n"
176 " TST R0, #1 \n"
177 " BEQ loc_FF99F550 \n"
178 " MOV R1, #0x4C0 \n"
179 " LDR R0, =0xFF99E838 /*'ShootTask.c'*/ \n"
180 " ADD R1, R1, #6 \n"
181 " BL _DebugAssert \n"
182 
183 "loc_FF99F550:\n"
184 " LDRH R3, [R4] \n"
185 " CMP R3, #1 \n"
186 " BNE loc_FF99F58C \n"
187 " BL sub_FF9A1D88 \n"
188 " B loc_FF99F58C \n"
189 
190 "loc_FF99F564:\n"
191 " BL sub_FF9A1E34 \n"
192 " B loc_FF99F58C \n"
193 
194 "loc_FF99F56C:\n"
195 " BL sub_FF99EC18 \n"
196 " B loc_FF99F58C \n"
197 
198 "loc_FF99F574:\n"
199 " BL sub_FF99BA04 \n"
200 " B loc_FF99F58C \n"
201 
202 "loc_FF99F57C:\n"
203 " MOV R1, #0x4E0 \n"
204 " LDR R0, =0xFF99E838 /*'ShootTask.c'*/ \n"
205 " ADD R1, R1, #7 \n"
206 " BL _DebugAssert \n"
207 
208 "loc_FF99F58C:\n"
209 " LDR R2, [SP] \n"
210 
211 "loc_FF99F590:\n"
212 " LDR R3, =0x77BB4 \n"
213 " LDR R1, [R2, #4] \n"
214 " LDR R0, [R3] \n"
215 " BL sub_FF820CE0 /*_SetEventFlag*/ \n"
216 " LDR R0, [SP] \n"
217 " BL sub_FF99E928 \n"
218 
219 "loc_FF99F5A8:\n"
220 " LDR R3, =0x77BB8 \n"
221 " MOV R1, R5 \n"
222 " LDR R0, [R3] \n"
223 " MOV R2, #0 \n"
224 " BL sub_FF8213F8 /*_ReceiveMessageQueue*/ \n"
225 " TST R0, #1 \n"
226 " BEQ loc_FF99F3C0 \n"
227 " MOV R1, #0x410 \n"
228 " LDR R0, =0xFF99E838 /*'ShootTask.c'*/ \n"
229 " ADD R1, R1, #9 \n"
230 " BL _DebugAssert \n"
231 " BL _ExitTask \n"
232 " ADD SP, SP, #4 \n"
233 " LDMFD SP!, {R4,R5,PC} \n"
234 );
235 }

Variablen-Dokumentation

long* nrflag = (long*)0x6E50
static

Definiert in Zeile 8 der Datei capt_seq.c.