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_FF99F52C \n"
20 
21 "loc_FF99F344:\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_FF99F500 \n"
28 " .long loc_FF99F3C4 \n"
29 " .long loc_FF99F3E4 \n"
30 " .long loc_FF99F3F8 \n"
31 " .long loc_FF99F40C \n"
32 " .long loc_FF99F404 \n"
33 " .long loc_FF99F414 \n"
34 " .long loc_FF99F41C \n"
35 " .long loc_FF99F428 \n"
36 " .long loc_FF99F430 \n"
37 " .long loc_FF99F43C \n"
38 " .long loc_FF99F444 \n"
39 " .long loc_FF99F44C \n"
40 " .long loc_FF99F454 \n"
41 " .long loc_FF99F45C \n"
42 " .long loc_FF99F464 \n"
43 " .long loc_FF99F470 \n"
44 " .long loc_FF99F478 \n"
45 " .long loc_FF99F480 \n"
46 " .long loc_FF99F488 \n"
47 " .long loc_FF99F494 \n"
48 " .long loc_FF99F4A0 \n"
49 " .long loc_FF99F4A8 \n"
50 " .long loc_FF99F4E8 \n"
51 " .long loc_FF99F4F0 \n"
52 " .long loc_FF99F4F8 \n"
53 " .long loc_FF99F514 \n"
54 
55 "loc_FF99F3C4:\n"
56 " BL sub_FF99FA68 \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_FF99CBE4 \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_FF99F510 \n"
76 " BL sub_FF99EF00_my \n" // --> Patched. Old value = 0xFF99EF00.
77 " B loc_FF99F510 \n"
78 
79 "loc_FF99F3E4:\n"
80 " BL sub_FF99ECBC_my \n" // --> Patched. Old value = 0xFF99ECBC.
81 
82 "loc_FF99F3E8:\n"
83 " LDR R2, =0xA4840 \n"
84 " MOV R3, #0 \n"
85 " STR R3, [R2, #0x28] \n"
86 " B loc_FF99F510 \n"
87 
88 "loc_FF99F3F8:\n"
89 " MOV R0, #1 \n"
90 " BL sub_FF99FD28 \n"
91 " B loc_FF99F510 \n"
92 
93 "loc_FF99F404:\n"
94 " BL sub_FF99F628 \n"
95 " B loc_FF99F3E8 \n"
96 
97 "loc_FF99F40C:\n"
98 " BL sub_FF99FA20 \n"
99 " B loc_FF99F3E8 \n"
100 
101 "loc_FF99F414:\n"
102 " BL sub_FF99FA30 \n"
103 " B loc_FF99F510 \n"
104 
105 "loc_FF99F41C:\n"
106 " BL sub_FF99FBC8 \n"
107 " BL sub_FF99CBE4 \n"
108 " B loc_FF99F510 \n"
109 
110 "loc_FF99F428:\n"
111 " BL sub_FF99EFE4 \n"
112 " B loc_FF99F510 \n"
113 
114 "loc_FF99F430:\n"
115 " BL sub_FF99FC7C \n"
116 " BL sub_FF99CBE4 \n"
117 " B loc_FF99F510 \n"
118 
119 "loc_FF99F43C:\n"
120 " BL sub_FF99FA20 \n"
121 " B loc_FF99F510 \n"
122 
123 "loc_FF99F444:\n"
124 " BL sub_FF9A1674 \n"
125 " B loc_FF99F510 \n"
126 
127 "loc_FF99F44C:\n"
128 " BL sub_FF9A18B8 \n"
129 " B loc_FF99F510 \n"
130 
131 "loc_FF99F454:\n"
132 " BL sub_FF9A1970 \n"
133 " B loc_FF99F510 \n"
134 
135 "loc_FF99F45C:\n"
136 " BL sub_FF9A1A0C \n"
137 " B loc_FF99F510 \n"
138 
139 "loc_FF99F464:\n"
140 " MOV R0, #0 \n"
141 " BL sub_FF9A1E94 \n"
142 " B loc_FF99F510 \n"
143 
144 "loc_FF99F470:\n"
145 " BL sub_FF9A20A0 \n"
146 " B loc_FF99F510 \n"
147 
148 "loc_FF99F478:\n"
149 " BL sub_FF9A2138 \n"
150 " B loc_FF99F510 \n"
151 
152 "loc_FF99F480:\n"
153 " BL sub_FF9A21F4 \n"
154 " B loc_FF99F510 \n"
155 
156 "loc_FF99F488:\n"
157 " MOV R0, #1 \n"
158 " BL sub_FF9A1E94 \n"
159 " B loc_FF99F510 \n"
160 
161 "loc_FF99F494:\n"
162 " BL sub_FF99FEFC \n"
163 " BL sub_FF99EA7C \n"
164 " B loc_FF99F510 \n"
165 
166 "loc_FF99F4A0:\n"
167 " BL sub_FF9A1D1C \n"
168 " B loc_FF99F510 \n"
169 
170 "loc_FF99F4A8:\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_FF99F4D4 \n"
178 " MOV R1, #0x4C0 \n"
179 " LDR R0, =0xFF99E7BC /*'ShootTask.c'*/ \n"
180 " ADD R1, R1, #6 \n"
181 " BL _DebugAssert \n"
182 
183 "loc_FF99F4D4:\n"
184 " LDRH R3, [R4] \n"
185 " CMP R3, #1 \n"
186 " BNE loc_FF99F510 \n"
187 " BL sub_FF9A1D08 \n"
188 " B loc_FF99F510 \n"
189 
190 "loc_FF99F4E8:\n"
191 " BL sub_FF9A1DB4 \n"
192 " B loc_FF99F510 \n"
193 
194 "loc_FF99F4F0:\n"
195 " BL sub_FF99EB9C \n"
196 " B loc_FF99F510 \n"
197 
198 "loc_FF99F4F8:\n"
199 " BL sub_FF99B988 \n"
200 " B loc_FF99F510 \n"
201 
202 "loc_FF99F500:\n"
203 " MOV R1, #0x4E0 \n"
204 " LDR R0, =0xFF99E7BC /*'ShootTask.c'*/ \n"
205 " ADD R1, R1, #7 \n"
206 " BL _DebugAssert \n"
207 
208 "loc_FF99F510:\n"
209 " LDR R2, [SP] \n"
210 
211 "loc_FF99F514:\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_FF99E8AC \n"
218 
219 "loc_FF99F52C:\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_FF99F344 \n"
227 " MOV R1, #0x410 \n"
228 " LDR R0, =0xFF99E7BC /*'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.