root/platform/ixus110_sd960/sub/101f/movie_rec.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. change_video_tables
  2. set_quality
  3. movie_record_task
  4. sub_FF9211F8_my

   1 #include "conf.h"
   2 
   3 // from sx10
   4 void change_video_tables(__attribute__ ((unused))int a, __attribute__ ((unused))int b) {}
   5 
   6 // from sx10, not sure if the values are right
   7 void  set_quality(int *x){ // -17 highest; +12 lowest
   8  if (conf.video_mode) *x=12-((conf.video_quality-1)*(12+17)/(99-1));
   9 }
  10 
  11 
  12 void __attribute__((naked,noinline)) movie_record_task() { //sub_FF921840
  13 asm volatile (
  14       "    STMFD   SP!, {R2-R8,LR} \n" 
  15       "    LDR     R8, =0x442 \n" 
  16       "    LDR     R7, =0x2710 \n" 
  17       "    LDR     R4, =0x5EC0 \n" 
  18       "    MOV     R6, #0 \n" 
  19       "    MOV     R5, #1 \n" 
  20 "loc_FF921858:\n"
  21       "    LDR     R0, [R4, #0x18] \n" 
  22       "    MOV     R2, #0 \n" 
  23       "    ADD     R1, SP, #4 \n" 
  24       "    BL      sub_FF826A0C \n" 
  25       "    LDR     R0, [R4, #0x20] \n" 
  26       "    CMP     R0, #0 \n" 
  27       "    BNE     loc_FF921928 \n" 
  28       "    LDR     R0, [SP, #4] \n" 
  29       "    LDR     R1, [R0] \n" 
  30       "    SUB     R1, R1, #2 \n" 
  31       "    CMP     R1, #9 \n" 
  32       "    ADDLS   PC, PC, R1, LSL #2 \n" 
  33       "    B       loc_FF921928 \n" 
  34       "    B       loc_FF9218DC \n" 
  35       "    B       loc_FF9218FC \n" 
  36       "    B       loc_FF92190C \n" 
  37       "    B       loc_FF921914 \n" 
  38       "    B       loc_FF9218E4 \n" 
  39       "    B       loc_FF92191C \n" 
  40       "    B       loc_FF9218EC \n" 
  41       "    B       loc_FF921928 \n" 
  42       "    B       loc_FF921924 \n" 
  43       "    B       loc_FF9218B4 \n" 
  44 "loc_FF9218B4:\n"
  45       "    LDR     R0, =0xFF921554 \n" 
  46       "    STR     R6, [R4, #0x34] \n" 
  47       "    STR     R0, [R4, #0x9C] \n" 
  48       "    LDR     R0, =0xFF920B74 \n" 
  49       "    LDR     R2, =0xFF920A90 \n" 
  50       "    LDR     R1, =0x2CAE0 \n" 
  51       "    STR     R6, [R4, #0x24] \n" 
  52       "    BL      sub_FF8B5610 \n" 
  53       "    STR     R5, [R4, #0x38] \n" 
  54       "    B       loc_FF921928 \n" 
  55 "loc_FF9218DC:\n"
  56       "    BL      unlock_optical_zoom\n" // +
  57       "    BL      sub_FF92165C \n" 
  58       "    B       loc_FF921928 \n" 
  59 "loc_FF9218E4:\n"
  60       "    BL      sub_FF9211F8_my \n" // ->
  61       "    B       loc_FF921928 \n" 
  62 "loc_FF9218EC:\n"
  63       "    LDR     R1, [R0, #0x18] \n" 
  64       "    LDR     R0, [R0, #4] \n" 
  65       "    BL      sub_FFA570C0 \n" 
  66       "    B       loc_FF921928 \n" 
  67 "loc_FF9218FC:\n"
  68       "    LDR     R0, [R4, #0x38] \n" 
  69       "    CMP     R0, #5 \n" 
  70       "    STRNE   R5, [R4, #0x28] \n" 
  71       "    B       loc_FF921928 \n" 
  72 "loc_FF92190C:\n"
  73       "    BL      sub_FF920EE0 \n" 
  74       "    B       loc_FF921928 \n" 
  75 "loc_FF921914:\n"
  76       "    BL      sub_FF920BC0 \n" 
  77       "    B       loc_FF921928 \n" 
  78 "loc_FF92191C:\n"
  79       "    BL      sub_FF920A1C \n" 
  80       "    B       loc_FF921928 \n" 
  81 "loc_FF921924:\n"
  82       "    BL      sub_FF921A90 \n" 
  83 "loc_FF921928:\n"
  84       "    LDR     R1, [SP, #4] \n" 
  85       "    LDR     R3, =0xFF920880 \n" 
  86       "    STR     R6, [R1] \n" 
  87       "    STR     R8, [SP] \n" 
  88       "    LDR     R0, [R4, #0x1C] \n" 
  89       "    MOV     R2, R7 \n" 
  90       "    BL      sub_FF827360 \n" 
  91       "    B       loc_FF921858 \n" 
  92     );
  93 }
  94 
  95 
  96 void __attribute__((naked,noinline)) sub_FF9211F8_my(  ) {
  97 asm volatile (
  98       "    STMFD   SP!, {R4-R9,LR} \n" 
  99       "    SUB     SP, SP, #0x44 \n" 
 100       "    MOV     R7, #0 \n" 
 101       "    LDR     R6, =0x5EC0 \n" 
 102       "    MOV     R4, R0 \n" 
 103       "    STR     R7, [SP, #0x34] \n" 
 104       "    STR     R7, [SP, #0x2C] \n" 
 105       "    LDR     R0, [R6, #0x38] \n" 
 106       "    MOV     R8, #4 \n" 
 107       "    CMP     R0, #3 \n" 
 108       "    STREQ   R8, [R6, #0x38] \n" 
 109       "    LDR     R0, [R6, #0x9C] \n" 
 110       "    BLX     R0 \n" 
 111       "    LDR     R0, [R6, #0x38] \n" 
 112       "    CMP     R0, #4 \n" 
 113       "    BNE     loc_FF921348 \n" 
 114       "    ADD     R3, SP, #0x2C \n" 
 115       "    ADD     R2, SP, #0x30 \n" 
 116       "    ADD     R1, SP, #0x34 \n" 
 117       "    ADD     R0, SP, #0x38 \n" 
 118       "    BL      sub_FFA5715C \n" 
 119       "    CMP     R0, #0 \n" 
 120       "    MOV     R5, #1 \n" 
 121       "    BNE     loc_FF921274 \n" 
 122       "    LDR     R1, [R6, #0x28] \n" 
 123       "    CMP     R1, #1 \n" 
 124       "    BNE     loc_FF92135C \n" 
 125       "    LDR     R1, [R6, #0x4C] \n" 
 126       "    LDR     R2, [R6, #0x3C] \n" 
 127       "    CMP     R1, R2 \n" 
 128       "    BCC     loc_FF92135C \n" 
 129 "loc_FF921274:\n"
 130       "    CMP     R0, #0x80000001 \n" 
 131       "    STREQ   R8, [R6, #0x50] \n" 
 132       "    BEQ     loc_FF9212AC \n" 
 133       "    CMP     R0, #0x80000003 \n" 
 134       "    STREQ   R5, [R6, #0x50] \n" 
 135       "    BEQ     loc_FF9212AC \n" 
 136       "    CMP     R0, #0x80000005 \n" 
 137       "    MOVEQ   R0, #2 \n" 
 138       "    BEQ     loc_FF9212A8 \n" 
 139       "    CMP     R0, #0x80000007 \n" 
 140       "    STRNE   R7, [R6, #0x50] \n" 
 141       "    BNE     loc_FF9212AC \n" 
 142       "    MOV     R0, #3 \n" 
 143 "loc_FF9212A8:\n"
 144       "    STR     R0, [R6, #0x50] \n" 
 145 "loc_FF9212AC:\n"
 146       "    LDR     R0, =0x2CB14 \n" 
 147       "    LDR     R0, [R0, #8] \n" 
 148       "    CMP     R0, #0 \n" 
 149       "    BEQ     loc_FF9212C4 \n" 
 150       "    BL      sub_FF845C94 \n" 
 151       "    B       loc_FF9212C8 \n" 
 152 "loc_FF9212C4:\n"
 153       "    BL      sub_FF920A1C \n" 
 154 "loc_FF9212C8:\n"
 155       "    LDR     R0, [R4, #0x1C] \n" 
 156       "    LDR     R1, [R4, #0x20] \n" 
 157       "    ADD     R3, SP, #0x3C \n" 
 158       "    MVN     R2, #1 \n" 
 159       "    ADD     R7, SP, #0x18 \n" 
 160       "    STMIA   R7, {R0-R3} \n" 
 161       "    LDR     R2, [R6, #0x64] \n" 
 162       "    LDR     R3, [R6, #0x68] \n" 
 163       "    MOV     R0, #0 \n" 
 164       "    ADD     R1, SP, #0x40 \n" 
 165       "    ADD     R7, SP, #8 \n" 
 166       "    STMIA   R7, {R0-R3} \n" 
 167       "    MOV     R3, #0 \n" 
 168       "    MOV     R2, #0x40 \n" 
 169       "    STRD    R2, [SP] \n" 
 170       "    LDMIB   R4, {R0,R1} \n" 
 171       "    LDR     R3, =0x2CB2C \n" 
 172       "    MOV     R2, R9 \n" 
 173       "    BL      sub_FFA16154 \n" 
 174       "    LDR     R0, [R6, #0x10] \n" 
 175       "    MOV     R1, #0x3E8 \n" 
 176       "    BL      sub_FF826E28 \n" 
 177       "    CMP     R0, #9 \n" 
 178       "    BEQ     loc_FF9213E0 \n" 
 179       "    LDR     R0, [SP, #0x3C] \n" 
 180       "    CMP     R0, #0 \n" 
 181       "    BNE     loc_FF9213FC \n" 
 182       "    MOV     R0, #1 \n" 
 183       "    BL      sub_FFA161FC \n" 
 184       "    BL      sub_FFA16238 \n" 
 185       "    MOV     R0, #5 \n" 
 186       "    STR     R0, [R6, #0x38] \n" 
 187 "loc_FF921348:\n"
 188       "    ADD     SP, SP, #0x44 \n" 
 189       "    LDMFD   SP!, {R4-R9,PC} \n" 
 190 "loc_FF921350:\n"
 191       "    BL      sub_FF87721C \n" 
 192       "    MOV     R0, #1 \n" 
 193       "    B       loc_FF92149C \n" 
 194 "loc_FF92135C:\n"
 195       "    LDR     R12, [SP, #0x34] \n" 
 196       "    CMP     R12, #0 \n" 
 197       "    BEQ     loc_FF9214FC \n" 
 198       "    STR     R5, [R6, #0x2C] \n" 
 199       "    LDR     R0, [R6, #0x4C] \n" 
 200       "    LDR     R8, [R4, #0xC] \n" 
 201       "    CMP     R0, #0 \n" 
 202       "    LDRNE   LR, [SP, #0x38] \n" 
 203       "    BNE     loc_FF921428 \n" 
 204       "    LDR     R0, [R4, #0x1C] \n" 
 205       "    LDR     R1, [R4, #0x20] \n" 
 206       "    ADD     R3, SP, #0x3C \n" 
 207       "    MVN     R2, #0 \n" 
 208       "    ADD     R9, SP, #0x18 \n" 
 209       "    STMIA   R9, {R0-R3} \n" 
 210       "    LDR     R0, [SP, #0x2C] \n" 
 211       "    LDR     R2, [R6, #0x64] \n" 
 212       "    LDR     R3, [R6, #0x68] \n" 
 213       "    ADD     R1, SP, #0x40 \n" 
 214       "    ADD     R9, SP, #8 \n" 
 215       "    STMIA   R9, {R0-R3} \n" 
 216       "    LDR     R3, [SP, #0x30] \n" 
 217       "    STR     R12, [SP] \n" 
 218       "    STR     R3, [SP, #4] \n" 
 219       "    LDMIB   R4, {R0,R1} \n" 
 220       "    LDR     R3, [SP, #0x38] \n" 
 221       "    MOV     R2, R8 \n" 
 222       "    BL      sub_FFA16154 \n" 
 223       "    LDR     R0, [R6, #0x10] \n" 
 224       "    MOV     R1, #0x3E8 \n" 
 225       "    BL      sub_FF826E28 \n" 
 226       "    CMP     R0, #9 \n" 
 227       "    BNE     loc_FF9213F0 \n" 
 228 "loc_FF9213E0:\n"
 229       "    BL      sub_FFA57628 \n" 
 230       "    MOV     R0, #0x90000 \n" 
 231       "    STR     R5, [R6, #0x38] \n" 
 232       "    B       loc_FF921350 \n" 
 233 "loc_FF9213F0:\n"
 234       "    LDR     R0, [SP, #0x3C] \n" 
 235       "    CMP     R0, #0 \n" 
 236       "    BEQ     loc_FF92140C \n" 
 237 "loc_FF9213FC:\n"
 238       "    BL      sub_FFA57628 \n" 
 239       "    MOV     R0, #0xA0000 \n" 
 240       "    STR     R5, [R6, #0x38] \n" 
 241       "    B       loc_FF921350 \n" 
 242 "loc_FF92140C:\n"
 243       "    MOV     R0, #1 \n" 
 244       "    BL      sub_FFA161FC \n" 
 245       "    LDR     R0, [SP, #0x40] \n" 
 246       "    LDR     R1, [SP, #0x38] \n" 
 247       "    ADD     LR, R1, R0 \n" 
 248       "    LDR     R1, [SP, #0x34] \n" 
 249       "    SUB     R12, R1, R0 \n" 
 250 "loc_FF921428:\n"
 251       "    LDR     R0, [R4, #0x1C] \n" 
 252       "    LDR     R2, [R6, #0x48] \n" 
 253       "    LDR     R1, [R4, #0x20] \n" 
 254       "    ADD     R3, SP, #0x3C \n" 
 255       "    ADD     R9, SP, #0x18 \n" 
 256       "    STMIA   R9, {R0-R3} \n" 
 257       "    LDR     R0, [SP, #0x2C] \n" 
 258       "    LDR     R2, [R6, #0x64] \n" 
 259       "    LDR     R3, [R6, #0x68] \n" 
 260       "    ADD     R1, SP, #0x40 \n" 
 261       "    ADD     R9, SP, #8 \n" 
 262       "    STMIA   R9, {R0-R3} \n" 
 263       "    LDR     R3, [SP, #0x30] \n" 
 264       "    STR     R12, [SP] \n" 
 265       "    STR     R3, [SP, #4] \n" 
 266       "    LDMIB   R4, {R0,R1} \n" 
 267       "    MOV     R3, LR \n" 
 268       "    MOV     R2, R8 \n" 
 269       "    BL      sub_FFA16154 \n" 
 270       "    LDR     R0, [R6, #0x10] \n" 
 271       "    MOV     R1, #0x3E8 \n" 
 272       "    BL      sub_FF826E28 \n" 
 273       "    CMP     R0, #9 \n" 
 274       "    BNE     loc_FF9214A4 \n" 
 275       "    BL      sub_FFA57628 \n" 
 276       "    MOV     R0, #0x90000 \n" 
 277       "    STR     R5, [R6, #0x38] \n" 
 278       "    BL      sub_FF87721C \n" 
 279       "    MOV     R0, #0 \n" 
 280 "loc_FF92149C:\n"
 281       "    BL      sub_FFA161FC \n" 
 282       "    B       loc_FF921348 \n" 
 283 "loc_FF9214A4:\n"
 284       "    LDR     R0, [SP, #0x3C] \n" 
 285       "    CMP     R0, #0 \n" 
 286       "    BEQ     loc_FF9214C4 \n" 
 287       "    BL      sub_FFA57628 \n" 
 288       "    MOV     R0, #0xA0000 \n" 
 289       "    STR     R5, [R6, #0x38] \n" 
 290       "    BL      sub_FF87721C \n" 
 291       "    B       loc_FF921348 \n" 
 292 "loc_FF9214C4:\n"
 293       "    MOV     R0, #0 \n" 
 294       "    BL      sub_FFA161FC \n" 
 295       "    LDR     R0, [SP, #0x38] \n" 
 296       "    LDR     R1, [SP, #0x40] \n" 
 297       "    BL      sub_FFA57384 \n" 
 298       "    LDR     R0, [R6, #0x48] \n" 
 299       "    LDR     R3, =0x5F28 \n" 
 300       "    ADD     R1, R0, #1 \n" 
 301       "    STR     R1, [R6, #0x48] \n" 
 302       "    STR     R3, [SP] \n" 
 303       "    LDR     R0, [SP, #0x40] \n" 
 304       "    SUB     R3, R3, #4 \n" 
 305       "    MOV     R2, #0xF \n" 
 306       "    BL      sub_FFA55528 \n" 
 307       "    LDR     R0, =0x5f28-4\n" // +
 308       "    BL      set_quality\n" // +
 309 "loc_FF9214FC:\n"
 310       "    LDR     R0, [R6, #0x4C] \n" 
 311       "    ADD     R0, R0, #1 \n" 
 312       "    STR     R0, [R6, #0x4C] \n" 
 313       "    LDR     R1, [R6, #0x74] \n" 
 314       "    MUL     R0, R1, R0 \n" 
 315       "    LDR     R1, [R6, #0x70] \n" 
 316       "    BL      sub_FFAEB8A4 \n" 
 317       "    MOV     R4, R0 \n" 
 318       "    BL      sub_FFA57660 \n" 
 319       "    LDR     R1, [R6, #0x6C] \n" 
 320       "    CMP     R1, R4 \n" 
 321       "    BNE     loc_FF921538 \n" 
 322       "    LDR     R0, [R6, #0x30] \n" 
 323       "    CMP     R0, #1 \n" 
 324       "    BNE     loc_FF92154C \n" 
 325 "loc_FF921538:\n"
 326       "    LDR     R1, [R6, #0x80] \n" 
 327       "    MOV     R0, R4 \n" 
 328       "    BLX     R1 \n" 
 329       "    STR     R4, [R6, #0x6C] \n" 
 330       "    STR     R7, [R6, #0x30] \n" 
 331 "loc_FF92154C:\n"
 332       "    STR     R7, [R6, #0x2C] \n" 
 333       "    B       loc_FF921348 \n" 
 334     );
 335 }
 336 

/* [<][>][^][v][top][bottom][index][help] */