Changeset 1625


Ignore:
Timestamp:
01/30/12 05:03:17 (16 months ago)
Author:
reyalp
Message:

a470 updates from srsa_4c in http://chdk.setepontos.com/index.php?topic=650.msg80692#msg80692

  • extra long exposures implemented (all 3 fw revisions, tested on 1.02c)
  • fixed the dark frame subtraction setting, bug mentioned here: http://chdk.setepontos.com/index.php?topic=3368.msg39071#msg39071 for all 3 revisions
  • flash params table and params count fixed (I've verified the addresses manually, so all 3 rev. should be ok)
  • defined CAM_STARTUP_CRASH_FILE_OPEN_FIX (previously camera crashed when "refresh" was issued in chdkptp GUI)
  • also defined CAM_DETECT_SCREEN_ERASE
  • strange check removed from kbd.c
  • multiple corrections for 1.02c according to stubs_entry.S (can't be sure it would be ok for the other 2)
  • debug code removed from capt_seq.c
Location:
branches/release-1_0/platform/a470
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • branches/release-1_0/platform/a470/kbd.c

    r1344 r1625  
    340340    for (i=0;keymap[i].hackkey;i++){ 
    341341        if ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0){ 
    342             if (i!=7) return keymap[i].hackkey; 
     342            return keymap[i].hackkey; 
    343343        } 
    344344    } 
  • branches/release-1_0/platform/a470/lib.c

    r770 r1625  
    3232 
    3333int get_flash_params_count(void){ 
    34  return 114; 
     34 return 115; 
    3535} 
  • branches/release-1_0/platform/a470/notes.txt

    r739 r1625  
    66 
    77beta port, see http://chdk.setepontos.com/index.php/topic,3368.msg31068.html#msg31068 
     8supports extra long exposure (>64 sec) 
    89 
    910TODO: 
    10  
    11     * Add (super)long exposure time 
    1211    * Camera colour profile etc (copypastad atm) 
  • branches/release-1_0/platform/a470/platform_camera.h

    r1418 r1625  
    5959        // camera name 
    6060        #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 
     61        #define CAM_STARTUP_CRASH_FILE_OPEN_FIX 1 
     62        #define CAM_EXT_TV_RANGE 1 
     63        #define CAM_DETECT_SCREEN_ERASE 1 
    6164        //#define DNG_EXT_FROM ".DPS"    
    6265//---------------------------------------------------------- 
  • branches/release-1_0/platform/a470/sub/100e/boot.c

    r785 r1625  
    1414 
    1515void boot(); 
     16 
     17void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 
     18 p-=16; 
     19 if (p[0]==0xffc900b8)  p[0]=(int)exp_drv_task; //100e ok 
     20}  
    1621 
    1722void boot() { //#fs 
     
    3843    for(i=0;i<canon_bss_len/4;i++) 
    3944        canon_bss_start[i]=0; 
     45 
     46    *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 
     47    *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 
    4048 
    4149/*    asm volatile ( 
  • branches/release-1_0/platform/a470/sub/100e/capt_seq.c

    r785 r1625  
    33#include "core.h" 
    44 
    5 static long *nrflag = (long*)0x9F90; 
     5static long *nrflag = (long*)0x8888; //in sub_ffd0cae8, like in 101b 
    66 
    77#include "../../../generic/capt_seq.c" 
     
    6767                                "LDR     R0, [SP]\n" //+ 
    6868                "LDR     R1, [R0]\n" 
    69                                  
    70                 "LDR     R2, =0x1850\n"         // DEBUG: Save jumptable-target ... 
    71                 "STR     R1, [R2]\n"            // ...to some unused space. Read and displayed in GUI in core/gui.c 
    7269                                 
    7370                "CMP     R1, #0x19\n" 
     
    279276    ); 
    280277} //#fe 
     278 
     279 
     280void __attribute__((naked,noinline)) exp_drv_task() 
     281{ 
     282        asm volatile ( 
     283"       STMFD   SP!, {R4-R8,LR}\n" 
     284"       SUB     SP, SP, #0x20\n" 
     285"       LDR     R8, =0xBB8\n" 
     286"       LDR     R7, =0x64D4\n" 
     287"       LDR     R5, =0x3D3DC\n" 
     288"       MOV     R0, #0\n" 
     289"       ADD     R6, SP, #0x10\n" 
     290"       STR     R0, [SP,#0xC]\n" 
     291"loc_FFC900D8:\n" 
     292"       LDR     R0, [R7,#0x20]\n" 
     293"       MOV     R2, #0\n" 
     294"       ADD     R1, SP, #0x1C\n" 
     295"       BL      sub_FFC1763C\n" 
     296"       LDR     R0, [SP,#0xC]\n" 
     297"       CMP     R0, #1\n" 
     298"       BNE     loc_FFC90120\n" 
     299"       LDR     R0, [SP,#0x1C]\n" 
     300"       LDR     R0, [R0]\n" 
     301"       CMP     R0, #0x13\n" 
     302"       CMPNE   R0, #0x14\n" 
     303"       CMPNE   R0, #0x15\n" 
     304"       BEQ     loc_FFC9023C\n" 
     305"       CMP     R0, #0x27\n" 
     306"       BEQ     loc_FFC90214\n" 
     307"       ADD     R1, SP, #0xC\n" 
     308"       MOV     R0, #0\n" 
     309"       BL      sub_FFC90068\n" 
     310"loc_FFC90120:\n" 
     311"       LDR     R0, [SP,#0x1C]\n" 
     312"       LDR     R1, [R0]\n" 
     313"       CMP     R1, #0x2C\n" 
     314"       BNE     loc_FFC90150\n" 
     315"       LDR     R0, [SP,#0x1C]\n" 
     316"       BL      sub_FFC9131C\n" 
     317"       LDR     R0, [R7,#0x1C]\n" 
     318"       MOV     R1, #1\n" 
     319"       BL      sub_FFC173B8\n" 
     320"       BL      sub_FFC0BB70\n" 
     321"       ADD     SP, SP, #0x20\n" 
     322"       LDMFD   SP!, {R4-R8,PC}\n" 
     323"loc_FFC90150:\n" 
     324"       CMP     R1, #0x2B\n" 
     325"       BNE     loc_FFC9016C\n" 
     326"       LDR     R2, [R0,#0x88]!\n" 
     327"       LDR     R1, [R0,#4]\n" 
     328"       MOV     R0, R1\n" 
     329"       BLX     R2\n" 
     330"       B       loc_FFC906A0\n" 
     331"loc_FFC9016C:\n" 
     332"       CMP     R1, #0x25\n" 
     333"       BNE     loc_FFC901BC\n" 
     334"       LDR     R0, [R7,#0x1C]\n" 
     335"       MOV     R1, #0x80\n" 
     336"       BL      sub_FFC173EC\n" 
     337"       LDR     R0, =0xFFC8CB5C\n" 
     338"       MOV     R1, #0x80\n" 
     339"       BL      sub_FFD02FE0\n" 
     340"       LDR     R0, [R7,#0x1C]\n" 
     341"       MOV     R2, R8\n" 
     342"       MOV     R1, #0x80\n" 
     343"       BL      sub_FFC172F0\n" 
     344"       TST     R0, #1\n" 
     345"       LDRNE   R1, =0xD1B\n" 
     346"       BNE     loc_FFC90200\n" 
     347"loc_FFC901A8:\n" 
     348"       LDR     R1, [SP,#0x1C]\n" 
     349"       LDR     R0, [R1,#0x8C]\n" 
     350"       LDR     R1, [R1,#0x88]\n" 
     351"       BLX     R1\n" 
     352"       B       loc_FFC906A0\n" 
     353"loc_FFC901BC:\n" 
     354"       CMP     R1, #0x26\n" 
     355"       BNE     loc_FFC9020C\n" 
     356"       ADD     R1, SP, #0xC\n" 
     357"       BL      sub_FFC90068\n" 
     358"       LDR     R0, [R7,#0x1C]\n" 
     359"       MOV     R1, #0x100\n" 
     360"       BL      sub_FFC173EC\n" 
     361"       LDR     R0, =0xFFC8CB6C\n" 
     362"       MOV     R1, #0x100\n" 
     363"       BL      sub_FFD03268\n" 
     364"       LDR     R0, [R7,#0x1C]\n" 
     365"       MOV     R2, R8\n" 
     366"       MOV     R1, #0x100\n" 
     367"       BL      sub_FFC172F0\n" 
     368"       TST     R0, #1\n" 
     369"       BEQ     loc_FFC901A8\n" 
     370"       LDR     R1, =0xD25\n" 
     371"loc_FFC90200:\n" 
     372"       LDR     R0, =0xFFC8D25C\n" 
     373"       BL      sub_FFC0BDB8\n" 
     374"       B       loc_FFC901A8\n" 
     375"loc_FFC9020C:\n" 
     376"       CMP     R1, #0x27\n" 
     377"       BNE     loc_FFC90224\n" 
     378"loc_FFC90214:\n" 
     379"       LDR     R0, [SP,#0x1C]\n" 
     380"       ADD     R1, SP, #0xC\n" 
     381"       BL      sub_FFC90068\n" 
     382"       B       loc_FFC901A8\n" 
     383"loc_FFC90224:\n" 
     384"       CMP     R1, #0x2A\n" 
     385"       BNE     loc_FFC9023C\n" 
     386"       BL      sub_FFC6FF10\n" 
     387"       BL      sub_FFC70CDC\n" 
     388"       BL      sub_FFC70760\n" 
     389"       B       loc_FFC901A8\n" 
     390"loc_FFC9023C:\n" 
     391"       LDR     R0, [SP,#0x1C]\n" 
     392"       MOV     R4, #1\n" 
     393"       LDR     R1, [R0]\n" 
     394"       CMP     R1, #0x11\n" 
     395"       CMPNE   R1, #0x12\n" 
     396"       BNE     loc_FFC902AC\n" 
     397"       LDR     R1, [R0,#0x7C]\n" 
     398"       ADD     R1, R1, R1,LSL#1\n" 
     399"       ADD     R1, R0, R1,LSL#2\n" 
     400"       SUB     R1, R1, #8\n" 
     401"       LDMIA   R1, {R2-R4}\n" 
     402"       STMIA   R6, {R2-R4}\n" 
     403"       BL      sub_FFC8EBE8\n" 
     404"       LDR     R0, [SP,#0x1C]\n" 
     405"       LDR     R1, [R0,#0x7C]\n" 
     406"       LDR     R3, [R0,#0x88]\n" 
     407"       LDR     R2, [R0,#0x8C]\n" 
     408"       ADD     R0, R0, #4\n" 
     409"       BLX     R3\n" 
     410"       LDR     R0, [SP,#0x1C]\n" 
     411"       BL      sub_FFC916F4\n" 
     412"       LDR     R0, [SP,#0x1C]\n" 
     413"       LDR     R1, [R0,#0x7C]\n" 
     414"       LDR     R3, [R0,#0x90]\n" 
     415"       LDR     R2, [R0,#0x94]\n" 
     416"       ADD     R0, R0, #4\n" 
     417"       BLX     R3\n" 
     418"       B       loc_FFC905E0\n" 
     419"loc_FFC902AC:\n" 
     420"       CMP     R1, #0x13\n" 
     421"       CMPNE   R1, #0x14\n" 
     422"       CMPNE   R1, #0x15\n" 
     423"       BNE     loc_FFC90360\n" 
     424"       ADD     R3, SP, #0xC\n" 
     425"       MOV     R2, SP\n" 
     426"       ADD     R1, SP, #0x10\n" 
     427"       BL      sub_FFC8EE30\n" 
     428"       CMP     R0, #1\n" 
     429"       MOV     R4, R0\n" 
     430"       CMPNE   R4, #5\n" 
     431"       BNE     loc_FFC902FC\n" 
     432"       LDR     R0, [SP,#0x1C]\n" 
     433"       MOV     R2, R4\n" 
     434"       LDR     R1, [R0,#0x7C]!\n" 
     435"       LDR     R12, [R0,#0xC]!\n" 
     436"       LDR     R3, [R0,#4]\n" 
     437"       MOV     R0, SP\n" 
     438"       BLX     R12\n" 
     439"       B       loc_FFC90334\n" 
     440"loc_FFC902FC:\n" 
     441"       LDR     R0, [SP,#0x1C]\n" 
     442"       CMP     R4, #2\n" 
     443"       LDR     R3, [R0,#0x8C]\n" 
     444"       CMPNE   R4, #6\n" 
     445"       BNE     loc_FFC90348\n" 
     446"       LDR     R12, [R0,#0x88]\n" 
     447"       MOV     R0, SP\n" 
     448"       MOV     R2, R4\n" 
     449"       MOV     R1, #1\n" 
     450"       BLX     R12\n" 
     451"       LDR     R0, [SP,#0x1C]\n" 
     452"       MOV     R2, SP\n" 
     453"       ADD     R1, SP, #0x10\n" 
     454"       BL      sub_FFC8FDB4\n" 
     455"loc_FFC90334:\n" 
     456"       LDR     R0, [SP,#0x1C]\n" 
     457"       LDR     R2, [SP,#0xC]\n" 
     458"       MOV     R1, R4\n" 
     459"       BL      sub_FFC90008\n" 
     460"       B       loc_FFC905E0\n" 
     461"loc_FFC90348:\n" 
     462"       LDR     R1, [R0,#0x7C]\n" 
     463"       LDR     R12, [R0,#0x88]\n" 
     464"       ADD     R0, R0, #4\n" 
     465"       MOV     R2, R4\n" 
     466"       BLX     R12\n" 
     467"       B       loc_FFC905E0\n" 
     468"loc_FFC90360:\n" 
     469"       CMP     R1, #0x21\n" 
     470"       CMPNE   R1, #0x22\n" 
     471"       BNE     loc_FFC903AC\n" 
     472"       LDR     R1, [R0,#0x7C]\n" 
     473"       ADD     R1, R1, R1,LSL#1\n" 
     474"       ADD     R1, R0, R1,LSL#2\n" 
     475"       SUB     R1, R1, #8\n" 
     476"       LDMIA   R1, {R2-R4}\n" 
     477"       STMIA   R6, {R2-R4}\n" 
     478"       BL      sub_FFC8E174\n" 
     479"       LDR     R0, [SP,#0x1C]\n" 
     480"       LDR     R1, [R0,#0x7C]\n" 
     481"       LDR     R3, [R0,#0x88]\n" 
     482"       LDR     R2, [R0,#0x8C]\n" 
     483"       ADD     R0, R0, #4\n" 
     484"       BLX     R3\n" 
     485"       LDR     R0, [SP,#0x1C]\n" 
     486"       BL      sub_FFC8E464\n" 
     487"       B       loc_FFC905E0\n" 
     488"loc_FFC903AC:\n" 
     489"       ADD     R1, R0, #4\n" 
     490"       LDMIA   R1, {R2,R3,R12}\n" 
     491"       STMIA   R6, {R2,R3,R12}\n" 
     492"       LDR     R1, [R0]\n" 
     493"       CMP     R1, #0x24\n" 
     494"       ADDLS   PC, PC, R1,LSL#2\n" 
     495"       B       loc_FFC905C0\n" 
     496"loc_FFC903C8:\n" 
     497"       B       loc_FFC9045C\n" 
     498"loc_FFC903CC:\n" 
     499"       B       loc_FFC9045C\n" 
     500"loc_FFC903D0:\n" 
     501"       B       loc_FFC90464\n" 
     502"loc_FFC903D4:\n" 
     503"       B       loc_FFC9046C\n" 
     504"loc_FFC903D8:\n" 
     505"       B       loc_FFC9046C\n" 
     506"loc_FFC903DC:\n" 
     507"       B       loc_FFC9046C\n" 
     508"loc_FFC903E0:\n" 
     509"       B       loc_FFC9045C\n" 
     510"loc_FFC903E4:\n" 
     511"       B       loc_FFC90464\n" 
     512"loc_FFC903E8:\n" 
     513"       B       loc_FFC9046C\n" 
     514"loc_FFC903EC:\n" 
     515"       B       loc_FFC9046C\n" 
     516"loc_FFC903F0:\n" 
     517"       B       loc_FFC904C8\n" 
     518"loc_FFC903F4:\n" 
     519"       B       loc_FFC904C8\n" 
     520"loc_FFC903F8:\n" 
     521"       B       loc_FFC905B4\n" 
     522"loc_FFC903FC:\n" 
     523"       B       loc_FFC905BC\n" 
     524"loc_FFC90400:\n" 
     525"       B       loc_FFC905BC\n" 
     526"loc_FFC90404:\n" 
     527"       B       loc_FFC905BC\n" 
     528"loc_FFC90408:\n" 
     529"       B       loc_FFC905BC\n" 
     530"loc_FFC9040C:\n" 
     531"       B       loc_FFC905C0\n" 
     532"loc_FFC90410:\n" 
     533"       B       loc_FFC905C0\n" 
     534"loc_FFC90414:\n" 
     535"       B       loc_FFC905C0\n" 
     536"loc_FFC90418:\n" 
     537"       B       loc_FFC905C0\n" 
     538"loc_FFC9041C:\n" 
     539"       B       loc_FFC905C0\n" 
     540"loc_FFC90420:\n" 
     541"       B       loc_FFC90474\n" 
     542"loc_FFC90424:\n" 
     543"       B       loc_FFC9047C\n" 
     544"loc_FFC90428:\n" 
     545"       B       loc_FFC9047C\n" 
     546"loc_FFC9042C:\n" 
     547"       B       loc_FFC904D4\n" 
     548"loc_FFC90430:\n" 
     549"       B       loc_FFC904D4\n" 
     550"loc_FFC90434:\n" 
     551"       B       loc_FFC904DC\n" 
     552"loc_FFC90438:\n" 
     553"       B       loc_FFC9050C\n" 
     554"loc_FFC9043C:\n" 
     555"       B       loc_FFC9053C\n" 
     556"loc_FFC90440:\n" 
     557"       B       loc_FFC9056C\n" 
     558"loc_FFC90444:\n" 
     559"       B       loc_FFC9059C\n" 
     560"loc_FFC90448:\n" 
     561"       B       loc_FFC9059C\n" 
     562"loc_FFC9044C:\n" 
     563"       B       loc_FFC905C0\n" 
     564"loc_FFC90450:\n" 
     565"       B       loc_FFC905C0\n" 
     566"loc_FFC90454:\n" 
     567"       B       loc_FFC905A4\n" 
     568"loc_FFC90458:\n" 
     569"       B       loc_FFC905AC\n" 
     570"loc_FFC9045C:\n" 
     571"       BL      sub_FFC8D044\n" 
     572"       B       loc_FFC905C0\n" 
     573"loc_FFC90464:\n" 
     574"       BL      sub_FFC8D2D4\n" 
     575"       B       loc_FFC905C0\n" 
     576"loc_FFC9046C:\n" 
     577"       BL      sub_FFC8D4D8\n" 
     578"       B       loc_FFC905C0\n" 
     579"loc_FFC90474:\n" 
     580"       BL      sub_FFC8D740\n" 
     581"       B       loc_FFC905C0\n" 
     582"loc_FFC9047C:\n" 
     583"       BL      sub_FFC8D934\n" 
     584"       B       loc_FFC905C0\n" 
     585"loc_FFC904C8:\n" 
     586"       BL      sub_FFC8DB9C_my\n" // -> 
     587"       MOV     R4, #0\n" 
     588"       B       loc_FFC905C0\n" 
     589"loc_FFC904D4:\n" 
     590"       BL      sub_FFC8DCD8\n" 
     591"       B       loc_FFC905C0\n" 
     592"loc_FFC904DC:\n" 
     593"       LDRH    R1, [R0,#4]\n" 
     594"       STRH    R1, [SP,#0x10]\n" 
     595"       LDRH    R1, [R5,#2]\n" 
     596"       STRH    R1, [SP,#0x12]\n" 
     597"       LDRH    R1, [R5,#4]\n" 
     598"       STRH    R1, [SP,#0x14]\n" 
     599"       LDRH    R1, [R5,#6]\n" 
     600"       STRH    R1, [SP,#0x16]\n" 
     601"       LDRH    R1, [R0,#0xC]\n" 
     602"       STRH    R1, [SP,#0x18]\n" 
     603"       BL      sub_FFC91390\n" 
     604"       B       loc_FFC905C0\n" 
     605"loc_FFC9050C:\n" 
     606"       LDRH    R1, [R0,#4]\n" 
     607"       STRH    R1, [SP,#0x10]\n" 
     608"       LDRH    R1, [R5,#2]\n" 
     609"       STRH    R1, [SP,#0x12]\n" 
     610"       LDRH    R1, [R5,#4]\n" 
     611"       STRH    R1, [SP,#0x14]\n" 
     612"       LDRH    R1, [R5,#6]\n" 
     613"       STRH    R1, [SP,#0x16]\n" 
     614"       LDRH    R1, [R5,#8]\n" 
     615"       STRH    R1, [SP,#0x18]\n" 
     616"       BL      sub_FFC91510\n" 
     617"       B       loc_FFC905C0\n" 
     618"loc_FFC9053C:\n" 
     619"       LDRH    R1, [R5]\n" 
     620"       STRH    R1, [SP,#0x10]\n" 
     621"       LDRH    R1, [R0,#6]\n" 
     622"       STRH    R1, [SP,#0x12]\n" 
     623"       LDRH    R1, [R5,#4]\n" 
     624"       STRH    R1, [SP,#0x14]\n" 
     625"       LDRH    R1, [R5,#6]\n" 
     626"       STRH    R1, [SP,#0x16]\n" 
     627"       LDRH    R1, [R5,#8]\n" 
     628"       STRH    R1, [SP,#0x18]\n" 
     629"       BL      sub_FFC915BC\n" 
     630"       B       loc_FFC905C0\n" 
     631"loc_FFC9056C:\n" 
     632"       LDRH    R1, [R5]\n" 
     633"       STRH    R1, [SP,#0x10]\n" 
     634"       LDRH    R1, [R5,#2]\n" 
     635"       STRH    R1, [SP,#0x12]\n" 
     636"       LDRH    R1, [R5,#4]\n" 
     637"       STRH    R1, [SP,#0x14]\n" 
     638"       LDRH    R1, [R5,#6]\n" 
     639"       STRH    R1, [SP,#0x16]\n" 
     640"       LDRH    R1, [R0,#0xC]\n" 
     641"       STRH    R1, [SP,#0x18]\n" 
     642"       BL      sub_FFC9165C\n" 
     643"       B       loc_FFC905C0\n" 
     644"loc_FFC9059C:\n" 
     645"       BL      sub_FFC8DF4C\n" 
     646"       B       loc_FFC905C0\n" 
     647"loc_FFC905A4:\n" 
     648"       BL      sub_FFC8E568\n" 
     649"       B       loc_FFC905C0\n" 
     650"loc_FFC905AC:\n" 
     651"       BL      sub_FFC8E7A0\n" 
     652"       B       loc_FFC905C0\n" 
     653"loc_FFC905B4:\n" 
     654"       BL      sub_FFC8E918\n" 
     655"       B       loc_FFC905C0\n" 
     656"loc_FFC905BC:\n" 
     657"       BL      sub_FFC8EAB0\n" 
     658"loc_FFC905C0:\n" 
     659"       LDR     R0, [SP,#0x1C]\n" 
     660"       LDR     R1, [R0,#0x7C]\n" 
     661"       LDR     R3, [R0,#0x88]\n" 
     662"       LDR     R2, [R0,#0x8C]\n" 
     663"       ADD     R0, R0, #4\n" 
     664"       BLX     R3\n" 
     665"       CMP     R4, #1\n" 
     666"       BNE     loc_FFC90628\n" 
     667"loc_FFC905E0:\n" 
     668"       LDR     R0, [SP,#0x1C]\n" 
     669"       MOV     R2, #0xC\n" 
     670"       LDR     R1, [R0,#0x7C]\n" 
     671"       ADD     R1, R1, R1,LSL#1\n" 
     672"       ADD     R0, R0, R1,LSL#2\n" 
     673"       SUB     R4, R0, #8\n" 
     674"       LDR     R0, =0x3D3DC\n" 
     675"       ADD     R1, SP, #0x10\n" 
     676"       BL      sub_FFE4E008\n" 
     677"       LDR     R0, =0x3D3E8\n" 
     678"       MOV     R2, #0xC\n" 
     679"       ADD     R1, SP, #0x10\n" 
     680"       BL      sub_FFE4E008\n" 
     681"       LDR     R0, =0x3D3F4\n" 
     682"       MOV     R2, #0xC\n" 
     683"       MOV     R1, R4\n" 
     684"       BL      sub_FFE4E008\n" 
     685"       B       loc_FFC906A0\n" 
     686"loc_FFC90628:\n" 
     687"       LDR     R0, [SP,#0x1C]\n" 
     688"       LDR     R0, [R0]\n" 
     689"       CMP     R0, #0xB\n" 
     690"       BNE     loc_FFC90670\n" 
     691"       MOV     R3, #0\n" 
     692"       STR     R3, [SP]\n" 
     693"       MOV     R3, #1\n" 
     694"       MOV     R2, #1\n" 
     695"       MOV     R1, #1\n" 
     696"       MOV     R0, #0\n" 
     697"       BL      sub_FFC8CE4C\n" 
     698"       MOV     R3, #0\n" 
     699"       STR     R3, [SP]\n" 
     700"       MOV     R3, #1\n" 
     701"       MOV     R2, #1\n" 
     702"       MOV     R1, #1\n" 
     703"       MOV     R0, #0\n" 
     704"       B       loc_FFC9069C\n" 
     705"loc_FFC90670:\n" 
     706"       MOV     R3, #1\n" 
     707"       MOV     R2, #1\n" 
     708"       MOV     R1, #1\n" 
     709"       MOV     R0, #1\n" 
     710"       STR     R3, [SP]\n" 
     711"       BL      sub_FFC8CE4C\n" 
     712"       MOV     R3, #1\n" 
     713"       MOV     R2, #1\n" 
     714"       MOV     R1, #1\n" 
     715"       MOV     R0, #1\n" 
     716"       STR     R3, [SP]\n" 
     717"loc_FFC9069C:\n" 
     718"       BL      sub_FFC8CF8C\n" 
     719"loc_FFC906A0:\n" 
     720"       LDR     R0, [SP,#0x1C]\n" 
     721"       BL      sub_FFC9131C\n" 
     722"       B       loc_FFC900D8\n" 
     723        ); 
     724} 
     725 
     726 
     727void __attribute__((naked,noinline)) sub_FFC8DB9C_my() 
     728{ 
     729        asm volatile ( 
     730"       STMFD   SP!, {R4-R8,LR}\n" 
     731"       LDR     R7, =0x64D4\n" 
     732"       MOV     R4, R0\n" 
     733"       LDR     R0, [R7,#0x1C]\n" 
     734"       MOV     R1, #0x3E\n" 
     735"       BL      sub_FFC173EC\n" 
     736"       LDRSH   R0, [R4,#4]\n" 
     737"       MOV     R2, #0\n" 
     738"       MOV     R1, #0\n" 
     739"       BL      sub_FFC8CBE0\n" 
     740"       MOV     R6, R0\n" 
     741"       LDRSH   R0, [R4,#6]\n" 
     742"       BL      sub_FFC8CCEC\n" 
     743"       LDRSH   R0, [R4,#8]\n" 
     744"       BL      sub_FFC8CD44\n" 
     745"       LDRSH   R0, [R4,#0xA]\n" 
     746"       BL      sub_FFC8CD9C\n" 
     747"       LDRSH   R0, [R4,#0xC]\n" 
     748"       BL      sub_FFC8CDF4\n" 
     749"       MOV     R5, R0\n" 
     750"       LDR     R0, [R4]\n" 
     751"       LDR     R8, =0x3D3F4\n" 
     752"       CMP     R0, #0xB\n" 
     753"       MOVEQ   R6, #0\n" 
     754"       MOVEQ   R5, #0\n" 
     755"       BEQ     loc_FFC8DC2C\n" 
     756"       CMP     R6, #1\n" 
     757"       BNE     loc_FFC8DC2C\n" 
     758"       LDRSH   R0, [R4,#4]\n" 
     759"       LDR     R1, =0xFFC8CB4C\n" 
     760"       MOV     R2, #2\n" 
     761"       BL      sub_FFD03134\n" 
     762"       STRH    R0, [R4,#4]\n" 
     763"       MOV     R0, #0\n" 
     764"       STR     R0, [R7,#0x28]\n" 
     765"       B       loc_FFC8DC34\n" 
     766"loc_FFC8DC2C:\n" 
     767"       LDRH    R0, [R8]\n" 
     768"       STRH    R0, [R4,#4]\n" 
     769"loc_FFC8DC34:\n" 
     770"       CMP     R5, #1\n" 
     771"       LDRNEH  R0, [R8,#8]\n" 
     772"       BNE     loc_FFC8DC50\n" 
     773"       LDRSH   R0, [R4,#0xC]\n" 
     774"       MOV     R2, #0x20\n" 
     775"       LDR     R1, =0xFFC8CBD0\n" 
     776"       BL      sub_FFC9134C\n" 
     777"loc_FFC8DC50:\n" 
     778"       STRH    R0, [R4,#0xC]\n" 
     779"       LDRSH   R0, [R4,#6]\n" 
     780"       BL      sub_FFC6FC5C_my\n" // -> 
     781"       LDR     PC, =0xFFC8DC5C\n" // + continue in ROM 
     782/* removed to spare some bytes - 
     783"       LDRSH   R0, [R4,#8]\n" 
     784"       MOV     R1, #1\n" 
     785"       BL      sub_FFC70458\n" 
     786"       MOV     R1, #0\n" 
     787"       ADD     R0, R4, #8\n" 
     788"       BL      sub_FFC704E0\n" 
     789"       LDRSH   R0, [R4,#0xE]\n" 
     790"       BL      sub_FFC83B1C\n" 
     791"       LDR     R4, =0xBB8\n" 
     792"       CMP     R6, #1\n" 
     793"       BNE     loc_FFC8DCA8\n" 
     794"       LDR     R0, [R7,#0x1C]\n" 
     795"       MOV     R2, R4\n" 
     796"       MOV     R1, #2\n" 
     797"       BL      sub_FFC172F0\n" 
     798"       TST     R0, #1\n" 
     799"       LDRNE   R1, =0x532\n" 
     800"       LDRNE   R0, =0xffc8d25c\n" // "ExpDrv.c" 
     801"       BLNE    sub_FFC0BDB8\n" 
     802"loc_FFC8DCA8:\n" 
     803"       CMP     R5, #1\n" 
     804"       LDMNEFD SP!, {R4-R8,PC}\n" 
     805"       LDR     R0, [R7,#0x1C]\n" 
     806"       MOV     R2, R4\n" 
     807"       MOV     R1, #0x20\n" 
     808"       BL      sub_FFC172F0\n" 
     809"       TST     R0, #1\n" 
     810"       LDRNE   R1, =0x537\n" 
     811"       LDRNE   R0, =0xffc8d25c\n" // "ExpDrv.c" 
     812"       LDMNEFD SP!, {R4-R8,LR}\n" 
     813"       BNE     sub_FFC0BDB8\n" 
     814"       LDMFD   SP!, {R4-R8,PC}\n" 
     815*/ 
     816        ); 
     817} 
     818 
     819 
     820void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 
     821{ 
     822        asm volatile ( 
     823"       STMFD   SP!, {R4-R6,LR}\n" 
     824"       LDR     R5, =0x5FAC\n" 
     825"       MOV     R4, R0\n" 
     826"       LDR     R0, [R5,#4]\n" 
     827"       CMP     R0, #1\n" 
     828"       LDRNE   R1, =0x16D\n" 
     829"       LDRNE   R0, =0xffc6f9f4\n" // "Shutter.c" 
     830"       BLNE    sub_FFC0BDB8\n" 
     831"       CMN     R4, #0xC00\n" 
     832"       LDREQSH R4, [R5,#2]\n" 
     833"       CMN     R4, #0xC00\n" 
     834"       LDREQ   R1, =0x173\n" 
     835"       LDREQ   R0, =0xffc6f9f4\n" // "Shutter.c" 
     836"       STRH    R4, [R5,#2]\n" 
     837"       BLEQ    sub_FFC0BDB8\n" 
     838"       MOV     R0, R4\n" 
     839//"       BL      sub_FFD68398\n" //- 
     840"       BL      apex2us\n" //+ 
     841"       MOV     R4, R0\n" 
     842//"       BL      nullsub\n" //- 
     843//"       MOV     R0, R4\n" //- 
     844"       BL      sub_FFCA25DC\n" 
     845"       TST     R0, #1\n" 
     846"       LDMNEFD SP!, {R4-R6,LR}\n" 
     847"       MOVNE   R1, #0x178\n" 
     848"       LDRNE   R0, =0xffc6f9f4\n" // "Shutter.c" 
     849"       BNE     sub_FFC0BDB8\n" 
     850"       LDMFD   SP!, {R4-R6,PC}\n" 
     851        ); 
     852} 
  • branches/release-1_0/platform/a470/sub/100e/stubs_auto.S

    r785 r1625  
    4949STUB(FFC16FB8) 
    5050STUB(FFC17054) 
     51STUB(FFC172F0) 
    5152STUB(FFC173B8) 
    5253STUB(FFC173EC) 
     
    282283STUB(FFC65D14) 
    283284STUB(FFC66248) 
     285STUB(FFC6FC5C) 
     286STUB(FFC6FF10) 
     287STUB(FFC70458) 
     288STUB(FFC704E0) 
     289STUB(FFC70760) 
     290STUB(FFC70CDC) 
     291STUB(FFC83B1C) 
     292STUB(FFC8CBE0) 
     293STUB(FFC8CCEC) 
     294STUB(FFC8CD44) 
     295STUB(FFC8CD9C) 
     296STUB(FFC8CDF4) 
     297STUB(FFC8CE4C) 
     298STUB(FFC8CF8C) 
     299STUB(FFC8D044) 
     300STUB(FFC8D2D4) 
     301STUB(FFC8D4D8) 
     302STUB(FFC8D740) 
     303STUB(FFC8D934) 
     304STUB(FFC8DB9C) 
     305STUB(FFC8DCD8) 
     306STUB(FFC8DF4C) 
     307STUB(FFC8E174) 
     308STUB(FFC8E464) 
     309STUB(FFC8E568) 
     310STUB(FFC8E7A0) 
     311STUB(FFC8E918) 
     312STUB(FFC8EAB0) 
     313STUB(FFC8EBE8) 
     314STUB(FFC8EE30) 
     315STUB(FFC8FDB4) 
     316STUB(FFC90008) 
     317STUB(FFC90068) 
     318STUB(FFC9131C) 
     319STUB(FFC9134C) 
     320STUB(FFC91390) 
     321STUB(FFC91510) 
     322STUB(FFC915BC) 
     323STUB(FFC9165C) 
     324STUB(FFC916F4) 
    284325STUB(FFC94698) 
    285326STUB(FFCA1258) 
     327STUB(FFCA25DC) 
    286328STUB(FFCC7D84) 
    287329STUB(FFCC7E48) 
     
    292334STUB(FFCE9634) 
    293335STUB(FFCF8D9C) 
     336STUB(FFD02FE0) 
     337STUB(FFD03134) 
     338STUB(FFD03268) 
    294339STUB(FFD06BDC) 
    295340STUB(FFD07C28) 
     
    377422STUB(FFD66E5C) 
    378423STUB(FFD66ECC) 
     424STUB(FFD68398) 
     425STUB(FFE4E008) 
    379426STUB(FFE4E264) 
    380427STUB(FFE4FB14) 
  • branches/release-1_0/platform/a470/sub/100e/stubs_entry.S

    r1611 r1625  
    3030//DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8,          stubs_min = 0x00001bf0 (0x1BF0) 
    3131//DEF(levent_table                            ,0xffe72ec8) // Found @0xffe72ec8,          stubs_min = 0xffe72ec8 (0xFFE72EC8) 
    32 //DEF(FlashParamsTable                        ,0xffe8fc68) // Found @0xffe8fc68, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 
     32//DEF(FlashParamsTable                        ,0xffe8fc68) // Found @0xffe8fc68,          stubs_min = 0xffe8fc68 (0xffe8fc68) 
    3333//DEF(movie_status                            ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 
    3434//DEF(canon_menu_active                       ,0x00009014) // Found @0xffd1eec4,          stubs_min = 0x00009014 (0x9014) 
  • branches/release-1_0/platform/a470/sub/100e/stubs_min.S

    r826 r1625  
    33DEF(physw_status, 0x1007C) //Found for A470 (GPIOStatus) 
    44DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 
    5 DEF(FlashParamsTable,  0xFFE961CC) // via GetReservedClusters_Fut_9 
     5DEF(FlashParamsTable,  0xffe8fc68) // 100e ok 
    66DEF(zoom_busy, 0x8050)  //0x803c+14 same as in a590 
    77DEF(focus_busy, 0x82B0) // 0x82A8+0x08 found in sub_FFD02310 
  • branches/release-1_0/platform/a470/sub/101b/boot.c

    r775 r1625  
    1414 
    1515void boot(); 
     16 
     17void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 
     18 p-=16; 
     19 if (p[0]==0xffc900b8)  p[0]=(int)exp_drv_task; //101b ok 
     20}  
    1621 
    1722//All strings changed, now to change subroutines 
     
    4045    for(i=0;i<canon_bss_len/4;i++) 
    4146        canon_bss_start[i]=0; 
     47 
     48    *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 
     49    *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 
    4250 
    4351/*    asm volatile ( 
  • branches/release-1_0/platform/a470/sub/101b/capt_seq.c

    r739 r1625  
    33#include "core.h" 
    44 
    5 static long *nrflag = (long*)0x9F90; 
     5static long *nrflag = (long*)0x8888; //in sub_ffd0cae8 
    66 
    77#include "../../../generic/capt_seq.c" 
     
    6767                                "LDR     R0, [SP]\n" //+ 
    6868                "LDR     R1, [R0]\n" 
    69                                  
    70                 "LDR     R2, =0x1850\n"         // DEBUG: Save jumptable-target ... 
    71                 "STR     R1, [R2]\n"            // ...to some unused space. Read and displayed in GUI in core/gui.c 
    7269                                 
    7370                "CMP     R1, #0x19\n" 
     
    279276    ); 
    280277} //#fe 
     278 
     279 
     280void __attribute__((naked,noinline)) exp_drv_task() 
     281{ 
     282        asm volatile ( 
     283"       STMFD   SP!, {R4-R8,LR}\n" 
     284"       SUB     SP, SP, #0x20\n" 
     285"       LDR     R8, =0xBB8\n" 
     286"       LDR     R7, =0x64D4\n" 
     287"       LDR     R5, =0x3D3DC\n" 
     288"       MOV     R0, #0\n" 
     289"       ADD     R6, SP, #0x10\n" 
     290"       STR     R0, [SP,#0xC]\n" 
     291"loc_FFC900D8:\n" 
     292"       LDR     R0, [R7,#0x20]\n" 
     293"       MOV     R2, #0\n" 
     294"       ADD     R1, SP, #0x1C\n" 
     295"       BL      sub_FFC1763C\n" 
     296"       LDR     R0, [SP,#0xC]\n" 
     297"       CMP     R0, #1\n" 
     298"       BNE     loc_FFC90120\n" 
     299"       LDR     R0, [SP,#0x1C]\n" 
     300"       LDR     R0, [R0]\n" 
     301"       CMP     R0, #0x13\n" 
     302"       CMPNE   R0, #0x14\n" 
     303"       CMPNE   R0, #0x15\n" 
     304"       BEQ     loc_FFC9023C\n" 
     305"       CMP     R0, #0x27\n" 
     306"       BEQ     loc_FFC90214\n" 
     307"       ADD     R1, SP, #0xC\n" 
     308"       MOV     R0, #0\n" 
     309"       BL      sub_FFC90068\n" 
     310"loc_FFC90120:\n" 
     311"       LDR     R0, [SP,#0x1C]\n" 
     312"       LDR     R1, [R0]\n" 
     313"       CMP     R1, #0x2C\n" 
     314"       BNE     loc_FFC90150\n" 
     315"       LDR     R0, [SP,#0x1C]\n" 
     316"       BL      sub_FFC9131C\n" 
     317"       LDR     R0, [R7,#0x1C]\n" 
     318"       MOV     R1, #1\n" 
     319"       BL      sub_FFC173B8\n" 
     320"       BL      sub_FFC0BB70\n" 
     321"       ADD     SP, SP, #0x20\n" 
     322"       LDMFD   SP!, {R4-R8,PC}\n" 
     323"loc_FFC90150:\n" 
     324"       CMP     R1, #0x2B\n" 
     325"       BNE     loc_FFC9016C\n" 
     326"       LDR     R2, [R0,#0x88]!\n" 
     327"       LDR     R1, [R0,#4]\n" 
     328"       MOV     R0, R1\n" 
     329"       BLX     R2\n" 
     330"       B       loc_FFC906A0\n" 
     331"loc_FFC9016C:\n" 
     332"       CMP     R1, #0x25\n" 
     333"       BNE     loc_FFC901BC\n" 
     334"       LDR     R0, [R7,#0x1C]\n" 
     335"       MOV     R1, #0x80\n" 
     336"       BL      sub_FFC173EC\n" 
     337"       LDR     R0, =0xFFC8CB5C\n" 
     338"       MOV     R1, #0x80\n" 
     339"       BL      sub_FFD02FE0\n" 
     340"       LDR     R0, [R7,#0x1C]\n" 
     341"       MOV     R2, R8\n" 
     342"       MOV     R1, #0x80\n" 
     343"       BL      sub_FFC172F0\n" 
     344"       TST     R0, #1\n" 
     345"       LDRNE   R1, =0xD1B\n" 
     346"       BNE     loc_FFC90200\n" 
     347"loc_FFC901A8:\n" 
     348"       LDR     R1, [SP,#0x1C]\n" 
     349"       LDR     R0, [R1,#0x8C]\n" 
     350"       LDR     R1, [R1,#0x88]\n" 
     351"       BLX     R1\n" 
     352"       B       loc_FFC906A0\n" 
     353"loc_FFC901BC:\n" 
     354"       CMP     R1, #0x26\n" 
     355"       BNE     loc_FFC9020C\n" 
     356"       ADD     R1, SP, #0xC\n" 
     357"       BL      sub_FFC90068\n" 
     358"       LDR     R0, [R7,#0x1C]\n" 
     359"       MOV     R1, #0x100\n" 
     360"       BL      sub_FFC173EC\n" 
     361"       LDR     R0, =0xFFC8CB6C\n" 
     362"       MOV     R1, #0x100\n" 
     363"       BL      sub_FFD03268\n" 
     364"       LDR     R0, [R7,#0x1C]\n" 
     365"       MOV     R2, R8\n" 
     366"       MOV     R1, #0x100\n" 
     367"       BL      sub_FFC172F0\n" 
     368"       TST     R0, #1\n" 
     369"       BEQ     loc_FFC901A8\n" 
     370"       LDR     R1, =0xD25\n" 
     371"loc_FFC90200:\n" 
     372"       LDR     R0, =0xFFC8D25C\n" 
     373"       BL      sub_FFC0BDB8\n" 
     374"       B       loc_FFC901A8\n" 
     375"loc_FFC9020C:\n" 
     376"       CMP     R1, #0x27\n" 
     377"       BNE     loc_FFC90224\n" 
     378"loc_FFC90214:\n" 
     379"       LDR     R0, [SP,#0x1C]\n" 
     380"       ADD     R1, SP, #0xC\n" 
     381"       BL      sub_FFC90068\n" 
     382"       B       loc_FFC901A8\n" 
     383"loc_FFC90224:\n" 
     384"       CMP     R1, #0x2A\n" 
     385"       BNE     loc_FFC9023C\n" 
     386"       BL      sub_FFC6FF10\n" 
     387"       BL      sub_FFC70CDC\n" 
     388"       BL      sub_FFC70760\n" 
     389"       B       loc_FFC901A8\n" 
     390"loc_FFC9023C:\n" 
     391"       LDR     R0, [SP,#0x1C]\n" 
     392"       MOV     R4, #1\n" 
     393"       LDR     R1, [R0]\n" 
     394"       CMP     R1, #0x11\n" 
     395"       CMPNE   R1, #0x12\n" 
     396"       BNE     loc_FFC902AC\n" 
     397"       LDR     R1, [R0,#0x7C]\n" 
     398"       ADD     R1, R1, R1,LSL#1\n" 
     399"       ADD     R1, R0, R1,LSL#2\n" 
     400"       SUB     R1, R1, #8\n" 
     401"       LDMIA   R1, {R2-R4}\n" 
     402"       STMIA   R6, {R2-R4}\n" 
     403"       BL      sub_FFC8EBE8\n" 
     404"       LDR     R0, [SP,#0x1C]\n" 
     405"       LDR     R1, [R0,#0x7C]\n" 
     406"       LDR     R3, [R0,#0x88]\n" 
     407"       LDR     R2, [R0,#0x8C]\n" 
     408"       ADD     R0, R0, #4\n" 
     409"       BLX     R3\n" 
     410"       LDR     R0, [SP,#0x1C]\n" 
     411"       BL      sub_FFC916F4\n" 
     412"       LDR     R0, [SP,#0x1C]\n" 
     413"       LDR     R1, [R0,#0x7C]\n" 
     414"       LDR     R3, [R0,#0x90]\n" 
     415"       LDR     R2, [R0,#0x94]\n" 
     416"       ADD     R0, R0, #4\n" 
     417"       BLX     R3\n" 
     418"       B       loc_FFC905E0\n" 
     419"loc_FFC902AC:\n" 
     420"       CMP     R1, #0x13\n" 
     421"       CMPNE   R1, #0x14\n" 
     422"       CMPNE   R1, #0x15\n" 
     423"       BNE     loc_FFC90360\n" 
     424"       ADD     R3, SP, #0xC\n" 
     425"       MOV     R2, SP\n" 
     426"       ADD     R1, SP, #0x10\n" 
     427"       BL      sub_FFC8EE30\n" 
     428"       CMP     R0, #1\n" 
     429"       MOV     R4, R0\n" 
     430"       CMPNE   R4, #5\n" 
     431"       BNE     loc_FFC902FC\n" 
     432"       LDR     R0, [SP,#0x1C]\n" 
     433"       MOV     R2, R4\n" 
     434"       LDR     R1, [R0,#0x7C]!\n" 
     435"       LDR     R12, [R0,#0xC]!\n" 
     436"       LDR     R3, [R0,#4]\n" 
     437"       MOV     R0, SP\n" 
     438"       BLX     R12\n" 
     439"       B       loc_FFC90334\n" 
     440"loc_FFC902FC:\n" 
     441"       LDR     R0, [SP,#0x1C]\n" 
     442"       CMP     R4, #2\n" 
     443"       LDR     R3, [R0,#0x8C]\n" 
     444"       CMPNE   R4, #6\n" 
     445"       BNE     loc_FFC90348\n" 
     446"       LDR     R12, [R0,#0x88]\n" 
     447"       MOV     R0, SP\n" 
     448"       MOV     R2, R4\n" 
     449"       MOV     R1, #1\n" 
     450"       BLX     R12\n" 
     451"       LDR     R0, [SP,#0x1C]\n" 
     452"       MOV     R2, SP\n" 
     453"       ADD     R1, SP, #0x10\n" 
     454"       BL      sub_FFC8FDB4\n" 
     455"loc_FFC90334:\n" 
     456"       LDR     R0, [SP,#0x1C]\n" 
     457"       LDR     R2, [SP,#0xC]\n" 
     458"       MOV     R1, R4\n" 
     459"       BL      sub_FFC90008\n" 
     460"       B       loc_FFC905E0\n" 
     461"loc_FFC90348:\n" 
     462"       LDR     R1, [R0,#0x7C]\n" 
     463"       LDR     R12, [R0,#0x88]\n" 
     464"       ADD     R0, R0, #4\n" 
     465"       MOV     R2, R4\n" 
     466"       BLX     R12\n" 
     467"       B       loc_FFC905E0\n" 
     468"loc_FFC90360:\n" 
     469"       CMP     R1, #0x21\n" 
     470"       CMPNE   R1, #0x22\n" 
     471"       BNE     loc_FFC903AC\n" 
     472"       LDR     R1, [R0,#0x7C]\n" 
     473"       ADD     R1, R1, R1,LSL#1\n" 
     474"       ADD     R1, R0, R1,LSL#2\n" 
     475"       SUB     R1, R1, #8\n" 
     476"       LDMIA   R1, {R2-R4}\n" 
     477"       STMIA   R6, {R2-R4}\n" 
     478"       BL      sub_FFC8E174\n" 
     479"       LDR     R0, [SP,#0x1C]\n" 
     480"       LDR     R1, [R0,#0x7C]\n" 
     481"       LDR     R3, [R0,#0x88]\n" 
     482"       LDR     R2, [R0,#0x8C]\n" 
     483"       ADD     R0, R0, #4\n" 
     484"       BLX     R3\n" 
     485"       LDR     R0, [SP,#0x1C]\n" 
     486"       BL      sub_FFC8E464\n" 
     487"       B       loc_FFC905E0\n" 
     488"loc_FFC903AC:\n" 
     489"       ADD     R1, R0, #4\n" 
     490"       LDMIA   R1, {R2,R3,R12}\n" 
     491"       STMIA   R6, {R2,R3,R12}\n" 
     492"       LDR     R1, [R0]\n" 
     493"       CMP     R1, #0x24\n" 
     494"       ADDLS   PC, PC, R1,LSL#2\n" 
     495"       B       loc_FFC905C0\n" 
     496"loc_FFC903C8:\n" 
     497"       B       loc_FFC9045C\n" 
     498"loc_FFC903CC:\n" 
     499"       B       loc_FFC9045C\n" 
     500"loc_FFC903D0:\n" 
     501"       B       loc_FFC90464\n" 
     502"loc_FFC903D4:\n" 
     503"       B       loc_FFC9046C\n" 
     504"loc_FFC903D8:\n" 
     505"       B       loc_FFC9046C\n" 
     506"loc_FFC903DC:\n" 
     507"       B       loc_FFC9046C\n" 
     508"loc_FFC903E0:\n" 
     509"       B       loc_FFC9045C\n" 
     510"loc_FFC903E4:\n" 
     511"       B       loc_FFC90464\n" 
     512"loc_FFC903E8:\n" 
     513"       B       loc_FFC9046C\n" 
     514"loc_FFC903EC:\n" 
     515"       B       loc_FFC9046C\n" 
     516"loc_FFC903F0:\n" 
     517"       B       loc_FFC904C8\n" 
     518"loc_FFC903F4:\n" 
     519"       B       loc_FFC904C8\n" 
     520"loc_FFC903F8:\n" 
     521"       B       loc_FFC905B4\n" 
     522"loc_FFC903FC:\n" 
     523"       B       loc_FFC905BC\n" 
     524"loc_FFC90400:\n" 
     525"       B       loc_FFC905BC\n" 
     526"loc_FFC90404:\n" 
     527"       B       loc_FFC905BC\n" 
     528"loc_FFC90408:\n" 
     529"       B       loc_FFC905BC\n" 
     530"loc_FFC9040C:\n" 
     531"       B       loc_FFC905C0\n" 
     532"loc_FFC90410:\n" 
     533"       B       loc_FFC905C0\n" 
     534"loc_FFC90414:\n" 
     535"       B       loc_FFC905C0\n" 
     536"loc_FFC90418:\n" 
     537"       B       loc_FFC905C0\n" 
     538"loc_FFC9041C:\n" 
     539"       B       loc_FFC905C0\n" 
     540"loc_FFC90420:\n" 
     541"       B       loc_FFC90474\n" 
     542"loc_FFC90424:\n" 
     543"       B       loc_FFC9047C\n" 
     544"loc_FFC90428:\n" 
     545"       B       loc_FFC9047C\n" 
     546"loc_FFC9042C:\n" 
     547"       B       loc_FFC904D4\n" 
     548"loc_FFC90430:\n" 
     549"       B       loc_FFC904D4\n" 
     550"loc_FFC90434:\n" 
     551"       B       loc_FFC904DC\n" 
     552"loc_FFC90438:\n" 
     553"       B       loc_FFC9050C\n" 
     554"loc_FFC9043C:\n" 
     555"       B       loc_FFC9053C\n" 
     556"loc_FFC90440:\n" 
     557"       B       loc_FFC9056C\n" 
     558"loc_FFC90444:\n" 
     559"       B       loc_FFC9059C\n" 
     560"loc_FFC90448:\n" 
     561"       B       loc_FFC9059C\n" 
     562"loc_FFC9044C:\n" 
     563"       B       loc_FFC905C0\n" 
     564"loc_FFC90450:\n" 
     565"       B       loc_FFC905C0\n" 
     566"loc_FFC90454:\n" 
     567"       B       loc_FFC905A4\n" 
     568"loc_FFC90458:\n" 
     569"       B       loc_FFC905AC\n" 
     570"loc_FFC9045C:\n" 
     571"       BL      sub_FFC8D044\n" 
     572"       B       loc_FFC905C0\n" 
     573"loc_FFC90464:\n" 
     574"       BL      sub_FFC8D2D4\n" 
     575"       B       loc_FFC905C0\n" 
     576"loc_FFC9046C:\n" 
     577"       BL      sub_FFC8D4D8\n" 
     578"       B       loc_FFC905C0\n" 
     579"loc_FFC90474:\n" 
     580"       BL      sub_FFC8D740\n" 
     581"       B       loc_FFC905C0\n" 
     582"loc_FFC9047C:\n" 
     583"       BL      sub_FFC8D934\n" 
     584"       B       loc_FFC905C0\n" 
     585"loc_FFC904C8:\n" 
     586"       BL      sub_FFC8DB9C_my\n" // -> 
     587"       MOV     R4, #0\n" 
     588"       B       loc_FFC905C0\n" 
     589"loc_FFC904D4:\n" 
     590"       BL      sub_FFC8DCD8\n" 
     591"       B       loc_FFC905C0\n" 
     592"loc_FFC904DC:\n" 
     593"       LDRH    R1, [R0,#4]\n" 
     594"       STRH    R1, [SP,#0x10]\n" 
     595"       LDRH    R1, [R5,#2]\n" 
     596"       STRH    R1, [SP,#0x12]\n" 
     597"       LDRH    R1, [R5,#4]\n" 
     598"       STRH    R1, [SP,#0x14]\n" 
     599"       LDRH    R1, [R5,#6]\n" 
     600"       STRH    R1, [SP,#0x16]\n" 
     601"       LDRH    R1, [R0,#0xC]\n" 
     602"       STRH    R1, [SP,#0x18]\n" 
     603"       BL      sub_FFC91390\n" 
     604"       B       loc_FFC905C0\n" 
     605"loc_FFC9050C:\n" 
     606"       LDRH    R1, [R0,#4]\n" 
     607"       STRH    R1, [SP,#0x10]\n" 
     608"       LDRH    R1, [R5,#2]\n" 
     609"       STRH    R1, [SP,#0x12]\n" 
     610"       LDRH    R1, [R5,#4]\n" 
     611"       STRH    R1, [SP,#0x14]\n" 
     612"       LDRH    R1, [R5,#6]\n" 
     613"       STRH    R1, [SP,#0x16]\n" 
     614"       LDRH    R1, [R5,#8]\n" 
     615"       STRH    R1, [SP,#0x18]\n" 
     616"       BL      sub_FFC91510\n" 
     617"       B       loc_FFC905C0\n" 
     618"loc_FFC9053C:\n" 
     619"       LDRH    R1, [R5]\n" 
     620"       STRH    R1, [SP,#0x10]\n" 
     621"       LDRH    R1, [R0,#6]\n" 
     622"       STRH    R1, [SP,#0x12]\n" 
     623"       LDRH    R1, [R5,#4]\n" 
     624"       STRH    R1, [SP,#0x14]\n" 
     625"       LDRH    R1, [R5,#6]\n" 
     626"       STRH    R1, [SP,#0x16]\n" 
     627"       LDRH    R1, [R5,#8]\n" 
     628"       STRH    R1, [SP,#0x18]\n" 
     629"       BL      sub_FFC915BC\n" 
     630"       B       loc_FFC905C0\n" 
     631"loc_FFC9056C:\n" 
     632"       LDRH    R1, [R5]\n" 
     633"       STRH    R1, [SP,#0x10]\n" 
     634"       LDRH    R1, [R5,#2]\n" 
     635"       STRH    R1, [SP,#0x12]\n" 
     636"       LDRH    R1, [R5,#4]\n" 
     637"       STRH    R1, [SP,#0x14]\n" 
     638"       LDRH    R1, [R5,#6]\n" 
     639"       STRH    R1, [SP,#0x16]\n" 
     640"       LDRH    R1, [R0,#0xC]\n" 
     641"       STRH    R1, [SP,#0x18]\n" 
     642"       BL      sub_FFC9165C\n" 
     643"       B       loc_FFC905C0\n" 
     644"loc_FFC9059C:\n" 
     645"       BL      sub_FFC8DF4C\n" 
     646"       B       loc_FFC905C0\n" 
     647"loc_FFC905A4:\n" 
     648"       BL      sub_FFC8E568\n" 
     649"       B       loc_FFC905C0\n" 
     650"loc_FFC905AC:\n" 
     651"       BL      sub_FFC8E7A0\n" 
     652"       B       loc_FFC905C0\n" 
     653"loc_FFC905B4:\n" 
     654"       BL      sub_FFC8E918\n" 
     655"       B       loc_FFC905C0\n" 
     656"loc_FFC905BC:\n" 
     657"       BL      sub_FFC8EAB0\n" 
     658"loc_FFC905C0:\n" 
     659"       LDR     R0, [SP,#0x1C]\n" 
     660"       LDR     R1, [R0,#0x7C]\n" 
     661"       LDR     R3, [R0,#0x88]\n" 
     662"       LDR     R2, [R0,#0x8C]\n" 
     663"       ADD     R0, R0, #4\n" 
     664"       BLX     R3\n" 
     665"       CMP     R4, #1\n" 
     666"       BNE     loc_FFC90628\n" 
     667"loc_FFC905E0:\n" 
     668"       LDR     R0, [SP,#0x1C]\n" 
     669"       MOV     R2, #0xC\n" 
     670"       LDR     R1, [R0,#0x7C]\n" 
     671"       ADD     R1, R1, R1,LSL#1\n" 
     672"       ADD     R0, R0, R1,LSL#2\n" 
     673"       SUB     R4, R0, #8\n" 
     674"       LDR     R0, =0x3D3DC\n" 
     675"       ADD     R1, SP, #0x10\n" 
     676"       BL      sub_FFE4E004\n" 
     677"       LDR     R0, =0x3D3E8\n" 
     678"       MOV     R2, #0xC\n" 
     679"       ADD     R1, SP, #0x10\n" 
     680"       BL      sub_FFE4E004\n" 
     681"       LDR     R0, =0x3D3F4\n" 
     682"       MOV     R2, #0xC\n" 
     683"       MOV     R1, R4\n" 
     684"       BL      sub_FFE4E004\n" 
     685"       B       loc_FFC906A0\n" 
     686"loc_FFC90628:\n" 
     687"       LDR     R0, [SP,#0x1C]\n" 
     688"       LDR     R0, [R0]\n" 
     689"       CMP     R0, #0xB\n" 
     690"       BNE     loc_FFC90670\n" 
     691"       MOV     R3, #0\n" 
     692"       STR     R3, [SP]\n" 
     693"       MOV     R3, #1\n" 
     694"       MOV     R2, #1\n" 
     695"       MOV     R1, #1\n" 
     696"       MOV     R0, #0\n" 
     697"       BL      sub_FFC8CE4C\n" 
     698"       MOV     R3, #0\n" 
     699"       STR     R3, [SP]\n" 
     700"       MOV     R3, #1\n" 
     701"       MOV     R2, #1\n" 
     702"       MOV     R1, #1\n" 
     703"       MOV     R0, #0\n" 
     704"       B       loc_FFC9069C\n" 
     705"loc_FFC90670:\n" 
     706"       MOV     R3, #1\n" 
     707"       MOV     R2, #1\n" 
     708"       MOV     R1, #1\n" 
     709"       MOV     R0, #1\n" 
     710"       STR     R3, [SP]\n" 
     711"       BL      sub_FFC8CE4C\n" 
     712"       MOV     R3, #1\n" 
     713"       MOV     R2, #1\n" 
     714"       MOV     R1, #1\n" 
     715"       MOV     R0, #1\n" 
     716"       STR     R3, [SP]\n" 
     717"loc_FFC9069C:\n" 
     718"       BL      sub_FFC8CF8C\n" 
     719"loc_FFC906A0:\n" 
     720"       LDR     R0, [SP,#0x1C]\n" 
     721"       BL      sub_FFC9131C\n" 
     722"       B       loc_FFC900D8\n" 
     723        ); 
     724} 
     725 
     726 
     727void __attribute__((naked,noinline)) sub_FFC8DB9C_my() 
     728{ 
     729        asm volatile ( 
     730"       STMFD   SP!, {R4-R8,LR}\n" 
     731"       LDR     R7, =0x64D4\n" 
     732"       MOV     R4, R0\n" 
     733"       LDR     R0, [R7,#0x1C]\n" 
     734"       MOV     R1, #0x3E\n" 
     735"       BL      sub_FFC173EC\n" 
     736"       LDRSH   R0, [R4,#4]\n" 
     737"       MOV     R2, #0\n" 
     738"       MOV     R1, #0\n" 
     739"       BL      sub_FFC8CBE0\n" 
     740"       MOV     R6, R0\n" 
     741"       LDRSH   R0, [R4,#6]\n" 
     742"       BL      sub_FFC8CCEC\n" 
     743"       LDRSH   R0, [R4,#8]\n" 
     744"       BL      sub_FFC8CD44\n" 
     745"       LDRSH   R0, [R4,#0xA]\n" 
     746"       BL      sub_FFC8CD9C\n" 
     747"       LDRSH   R0, [R4,#0xC]\n" 
     748"       BL      sub_FFC8CDF4\n" 
     749"       MOV     R5, R0\n" 
     750"       LDR     R0, [R4]\n" 
     751"       LDR     R8, =0x3D3F4\n" 
     752"       CMP     R0, #0xB\n" 
     753"       MOVEQ   R6, #0\n" 
     754"       MOVEQ   R5, #0\n" 
     755"       BEQ     loc_FFC8DC2C\n" 
     756"       CMP     R6, #1\n" 
     757"       BNE     loc_FFC8DC2C\n" 
     758"       LDRSH   R0, [R4,#4]\n" 
     759"       LDR     R1, =0xFFC8CB4C\n" 
     760"       MOV     R2, #2\n" 
     761"       BL      sub_FFD03134\n" 
     762"       STRH    R0, [R4,#4]\n" 
     763"       MOV     R0, #0\n" 
     764"       STR     R0, [R7,#0x28]\n" 
     765"       B       loc_FFC8DC34\n" 
     766"loc_FFC8DC2C:\n" 
     767"       LDRH    R0, [R8]\n" 
     768"       STRH    R0, [R4,#4]\n" 
     769"loc_FFC8DC34:\n" 
     770"       CMP     R5, #1\n" 
     771"       LDRNEH  R0, [R8,#8]\n" 
     772"       BNE     loc_FFC8DC50\n" 
     773"       LDRSH   R0, [R4,#0xC]\n" 
     774"       MOV     R2, #0x20\n" 
     775"       LDR     R1, =0xFFC8CBD0\n" 
     776"       BL      sub_FFC9134C\n" 
     777"loc_FFC8DC50:\n" 
     778"       STRH    R0, [R4,#0xC]\n" 
     779"       LDRSH   R0, [R4,#6]\n" 
     780"       BL      sub_FFC6FC5C_my\n" // -> 
     781"       LDR     PC, =0xFFC8DC5C\n" // + continue in ROM 
     782/* removed to spare some bytes - 
     783"       LDRSH   R0, [R4,#8]\n" 
     784"       MOV     R1, #1\n" 
     785"       BL      sub_FFC70458\n" 
     786"       MOV     R1, #0\n" 
     787"       ADD     R0, R4, #8\n" 
     788"       BL      sub_FFC704E0\n" 
     789"       LDRSH   R0, [R4,#0xE]\n" 
     790"       BL      sub_FFC83B1C\n" 
     791"       LDR     R4, =0xBB8\n" 
     792"       CMP     R6, #1\n" 
     793"       BNE     loc_FFC8DCA8\n" 
     794"       LDR     R0, [R7,#0x1C]\n" 
     795"       MOV     R2, R4\n" 
     796"       MOV     R1, #2\n" 
     797"       BL      sub_FFC172F0\n" 
     798"       TST     R0, #1\n" 
     799"       LDRNE   R1, =0x532\n" 
     800"       LDRNE   R0, =0xffc8d25c\n" // "ExpDrv.c" 
     801"       BLNE    sub_FFC0BDB8\n" 
     802"loc_FFC8DCA8:\n" 
     803"       CMP     R5, #1\n" 
     804"       LDMNEFD SP!, {R4-R8,PC}\n" 
     805"       LDR     R0, [R7,#0x1C]\n" 
     806"       MOV     R2, R4\n" 
     807"       MOV     R1, #0x20\n" 
     808"       BL      sub_FFC172F0\n" 
     809"       TST     R0, #1\n" 
     810"       LDRNE   R1, =0x537\n" 
     811"       LDRNE   R0, =0xffc8d25c\n" // "ExpDrv.c" 
     812"       LDMNEFD SP!, {R4-R8,LR}\n" 
     813"       BNE     sub_FFC0BDB8\n" 
     814"       LDMFD   SP!, {R4-R8,PC}\n" 
     815*/ 
     816        ); 
     817} 
     818 
     819 
     820void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 
     821{ 
     822        asm volatile ( 
     823"       STMFD   SP!, {R4-R6,LR}\n" 
     824"       LDR     R5, =0x5FAC\n" 
     825"       MOV     R4, R0\n" 
     826"       LDR     R0, [R5,#4]\n" 
     827"       CMP     R0, #1\n" 
     828"       LDRNE   R1, =0x16D\n" 
     829"       LDRNE   R0, =0xFFC6F9F4\n" 
     830"       BLNE    sub_FFC0BDB8\n" 
     831"       CMN     R4, #0xC00\n" 
     832"       LDREQSH R4, [R5,#2]\n" 
     833"       CMN     R4, #0xC00\n" 
     834"       LDREQ   R1, =0x173\n" 
     835"       LDREQ   R0, =0xFFC6F9F4\n" 
     836"       STRH    R4, [R5,#2]\n" 
     837"       BLEQ    sub_FFC0BDB8\n" 
     838"       MOV     R0, R4\n" 
     839//"       BL      sub_FFD68398\n" //- 
     840"       BL      apex2us\n" //+ 
     841"       MOV     R4, R0\n" 
     842//"       BL      nullsub\n" 
     843//"       MOV     R0, R4\n" 
     844"       BL      sub_FFCA25DC\n" 
     845"       TST     R0, #1\n" 
     846"       LDMNEFD SP!, {R4-R6,LR}\n" 
     847"       MOVNE   R1, #0x178\n" 
     848"       LDRNE   R0, =0xFFC6F9F4\n" 
     849"       BNE     sub_FFC0BDB8\n" 
     850"       LDMFD   SP!, {R4-R6,PC}\n" 
     851        ); 
     852} 
  • branches/release-1_0/platform/a470/sub/101b/stubs_auto.S

    r739 r1625  
    4949STUB(FFC16FB8) 
    5050STUB(FFC17054) 
     51STUB(FFC172F0) 
    5152STUB(FFC173B8) 
    5253STUB(FFC173EC) 
     
    282283STUB(FFC65D14) 
    283284STUB(FFC66248) 
     285STUB(FFC6FC5C) 
     286STUB(FFC6FF10) 
     287STUB(FFC70458) 
     288STUB(FFC704E0) 
     289STUB(FFC70760) 
     290STUB(FFC70CDC) 
     291STUB(FFC83B1C) 
     292STUB(FFC8CBE0) 
     293STUB(FFC8CCEC) 
     294STUB(FFC8CD44) 
     295STUB(FFC8CD9C) 
     296STUB(FFC8CDF4) 
     297STUB(FFC8CE4C) 
     298STUB(FFC8CF8C) 
     299STUB(FFC8D044) 
     300STUB(FFC8D2D4) 
     301STUB(FFC8D4D8) 
     302STUB(FFC8D740) 
     303STUB(FFC8D934) 
     304STUB(FFC8DB9C) 
     305STUB(FFC8DCD8) 
     306STUB(FFC8DF4C) 
     307STUB(FFC8E174) 
     308STUB(FFC8E464) 
     309STUB(FFC8E568) 
     310STUB(FFC8E7A0) 
     311STUB(FFC8E918) 
     312STUB(FFC8EAB0) 
     313STUB(FFC8EBE8) 
     314STUB(FFC8EE30) 
     315STUB(FFC8FDB4) 
     316STUB(FFC90008) 
     317STUB(FFC90068) 
     318STUB(FFC9131C) 
     319STUB(FFC9134C) 
     320STUB(FFC91390) 
     321STUB(FFC91510) 
     322STUB(FFC915BC) 
     323STUB(FFC9165C) 
     324STUB(FFC916F4) 
    284325STUB(FFC94698) 
    285326STUB(FFCA1258) 
     327STUB(FFCA25DC) 
    286328STUB(FFCC7D84) 
    287329STUB(FFCC7E48) 
     
    292334STUB(FFCE9634) 
    293335STUB(FFCF8D9C) 
     336STUB(FFD02FE0) 
     337STUB(FFD03134) 
     338STUB(FFD03268) 
    294339STUB(FFD06BDC) 
    295340STUB(FFD07C28) 
     
    377422STUB(FFD66E5C) 
    378423STUB(FFD66ECC) 
     424STUB(FFD68398) 
     425STUB(FFE4E004) 
    379426STUB(FFE4E260) 
    380427STUB(FFE4FB10) 
  • branches/release-1_0/platform/a470/sub/101b/stubs_entry.S

    r1611 r1625  
    3030//DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8,          stubs_min = 0x00001bf0 (0x1BF0) 
    3131//DEF(levent_table                            ,0xffe72ec4) // Found @0xffe72ec4,          stubs_min = 0xffe72ec4 (0xFFE72EC4) 
    32 //DEF(FlashParamsTable                        ,0xffe8fc64) // Found @0xffe8fc64, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 
     32//DEF(FlashParamsTable                        ,0xffe8fc64) // Found @0xffe8fc64,          stubs_min = 0xffe8fc64 (0xffe8fc64) 
    3333//DEF(movie_status                            ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 
    3434//DEF(canon_menu_active                       ,0x00009014) // Found @0xffd1eec4,          stubs_min = 0x00009014 (0x9014) 
  • branches/release-1_0/platform/a470/sub/101b/stubs_min.S

    r826 r1625  
    33DEF(physw_status, 0x1007C) //Found for A470 (GPIOStatus) 
    44DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 
    5 DEF(FlashParamsTable,  0xFFE961CC) // via GetReservedClusters_Fut_9 
     5DEF(FlashParamsTable,  0xffe8fc64) // 101b ok 
    66DEF(zoom_busy, 0x8050)  //0x803c+14 same as in a590 
    77DEF(focus_busy, 0x82B0) // 0x82A8+0x08 found in sub_FFD02310 
  • branches/release-1_0/platform/a470/sub/102c/boot.c

    r775 r1625  
    1414 
    1515void boot(); 
     16 
     17void taskCreateHook(int *p) { //function taken from the ixus80 port, adapted of course 
     18 p-=16; 
     19 if (p[0]==0xffc905d4)  p[0]=(int)exp_drv_task; 
     20}  
    1621 
    1722//All strings changed, now to change subroutines 
     
    4045    for(i=0;i<canon_bss_len/4;i++) 
    4146        canon_bss_start[i]=0; 
     47 
     48    *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 
     49    *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 
    4250 
    4351/*    asm volatile ( 
  • branches/release-1_0/platform/a470/sub/102c/capt_seq.c

    r739 r1625  
    33#include "core.h" 
    44 
    5 static long *nrflag = (long*)0x9F90; 
     5static long *nrflag = (long*)0x88d8; //found in sub_ffd0d528 
    66 
    77#include "../../../generic/capt_seq.c" 
     
    6969                "LDR     R1, [R0]\n" 
    7070 
    71                 "LDR     R2, =0x1850\n"         // DEBUG: Save jumptable-target ... 
    72                 "STR     R1, [R2]\n"            // ...to some unused space. Read and displayed in GUI in core/gui.c 
    73  
    7471                "CMP     R1, #0x19\n" 
    7572                "ADDLS   PC, PC, R1,LSL#2\n" 
     
    255252    ); 
    256253} //#fe 
     254 
     255 
     256void __attribute__((naked,noinline)) exp_drv_task() 
     257{ 
     258        asm volatile ( 
     259"       STMFD   SP!, {R4-R8,LR}\n" 
     260"       SUB     SP, SP, #0x20\n" 
     261"       LDR     R8, =0xBB8\n" 
     262"       LDR     R7, =0x64FC\n" 
     263"       LDR     R5, =0x3D41C\n" 
     264"       MOV     R0, #0\n" 
     265"       ADD     R6, SP, #0x10\n" 
     266"       STR     R0, [SP,#0xC]\n" 
     267"loc_FFC905F4:\n" 
     268"       LDR     R0, [R7,#0x20]\n" 
     269"       MOV     R2, #0\n" 
     270"       ADD     R1, SP, #0x1C\n" 
     271"       BL      sub_FFC1763C\n" 
     272"       LDR     R0, [SP,#0xC]\n" 
     273"       CMP     R0, #1\n" 
     274"       BNE     loc_FFC9063C\n" 
     275"       LDR     R0, [SP,#0x1C]\n" 
     276"       LDR     R0, [R0]\n" 
     277"       CMP     R0, #0x13\n" 
     278"       CMPNE   R0, #0x14\n" 
     279"       CMPNE   R0, #0x15\n" 
     280"       BEQ     loc_FFC90758\n" 
     281"       CMP     R0, #0x27\n" 
     282"       BEQ     loc_FFC90730\n" 
     283"       ADD     R1, SP, #0xC\n" 
     284"       MOV     R0, #0\n" 
     285"       BL      sub_FFC90584\n" 
     286"loc_FFC9063C:\n" 
     287"       LDR     R0, [SP,#0x1C]\n" 
     288"       LDR     R1, [R0]\n" 
     289"       CMP     R1, #0x2C\n" 
     290"       BNE     loc_FFC9066C\n" 
     291"       LDR     R0, [SP,#0x1C]\n" 
     292"       BL      sub_FFC91838\n" 
     293"       LDR     R0, [R7,#0x1C]\n" 
     294"       MOV     R1, #1\n" 
     295"       BL      sub_FFC173B8\n" 
     296"       BL      sub_FFC0BB70\n" 
     297"       ADD     SP, SP, #0x20\n" 
     298"       LDMFD   SP!, {R4-R8,PC}\n" 
     299"loc_FFC9066C:\n" 
     300"       CMP     R1, #0x2B\n" 
     301"       BNE     loc_FFC90688\n" 
     302"       LDR     R2, [R0,#0x88]!\n" 
     303"       LDR     R1, [R0,#4]\n" 
     304"       MOV     R0, R1\n" 
     305"       BLX     R2\n" 
     306"       B       loc_FFC90BBC\n" 
     307"loc_FFC90688:\n" 
     308"       CMP     R1, #0x25\n" 
     309"       BNE     loc_FFC906D8\n" 
     310"       LDR     R0, [R7,#0x1C]\n" 
     311"       MOV     R1, #0x80\n" 
     312"       BL      sub_FFC173EC\n" 
     313"       LDR     R0, =0xFFC8D078\n" 
     314"       MOV     R1, #0x80\n" 
     315"       BL      sub_FFD03A20\n" 
     316"       LDR     R0, [R7,#0x1C]\n" 
     317"       MOV     R2, R8\n" 
     318"       MOV     R1, #0x80\n" 
     319"       BL      sub_FFC172F0\n" 
     320"       TST     R0, #1\n" 
     321"       LDRNE   R1, =0xD1B\n" 
     322"       BNE     loc_FFC9071C\n" 
     323"loc_FFC906C4:\n" 
     324"       LDR     R1, [SP,#0x1C]\n" 
     325"       LDR     R0, [R1,#0x8C]\n" 
     326"       LDR     R1, [R1,#0x88]\n" 
     327"       BLX     R1\n" 
     328"       B       loc_FFC90BBC\n" 
     329"loc_FFC906D8:\n" 
     330"       CMP     R1, #0x26\n" 
     331"       BNE     loc_FFC90728\n" 
     332"       ADD     R1, SP, #0xC\n" 
     333"       BL      sub_FFC90584\n" 
     334"       LDR     R0, [R7,#0x1C]\n" 
     335"       MOV     R1, #0x100\n" 
     336"       BL      sub_FFC173EC\n" 
     337"       LDR     R0, =0xFFC8D088\n" 
     338"       MOV     R1, #0x100\n" 
     339"       BL      sub_FFD03CA8\n" 
     340"       LDR     R0, [R7,#0x1C]\n" 
     341"       MOV     R2, R8\n" 
     342"       MOV     R1, #0x100\n" 
     343"       BL      sub_FFC172F0\n" 
     344"       TST     R0, #1\n" 
     345"       BEQ     loc_FFC906C4\n" 
     346"       LDR     R1, =0xD25\n" 
     347"loc_FFC9071C:\n" 
     348"       LDR     R0, =0xffc8d778\n" // "ExpDrv.c" 
     349"       BL      sub_FFC0BDB8\n" 
     350"       B       loc_FFC906C4\n" 
     351"loc_FFC90728:\n" 
     352"       CMP     R1, #0x27\n" 
     353"       BNE     loc_FFC90740\n" 
     354"loc_FFC90730:\n" 
     355"       LDR     R0, [SP,#0x1C]\n" 
     356"       ADD     R1, SP, #0xC\n" 
     357"       BL      sub_FFC90584\n" 
     358"       B       loc_FFC906C4\n" 
     359"loc_FFC90740:\n" 
     360"       CMP     R1, #0x2A\n" 
     361"       BNE     loc_FFC90758\n" 
     362"       BL      sub_FFC7042C\n" 
     363"       BL      sub_FFC711F8\n" 
     364"       BL      sub_FFC70C7C\n" 
     365"       B       loc_FFC906C4\n" 
     366"loc_FFC90758:\n" 
     367"       LDR     R0, [SP,#0x1C]\n" 
     368"       MOV     R4, #1\n" 
     369"       LDR     R1, [R0]\n" 
     370"       CMP     R1, #0x11\n" 
     371"       CMPNE   R1, #0x12\n" 
     372"       BNE     loc_FFC907C8\n" 
     373"       LDR     R1, [R0,#0x7C]\n" 
     374"       ADD     R1, R1, R1,LSL#1\n" 
     375"       ADD     R1, R0, R1,LSL#2\n" 
     376"       SUB     R1, R1, #8\n" 
     377"       LDMIA   R1, {R2-R4}\n" 
     378"       STMIA   R6, {R2-R4}\n" 
     379"       BL      sub_FFC8F104\n" 
     380"       LDR     R0, [SP,#0x1C]\n" 
     381"       LDR     R1, [R0,#0x7C]\n" 
     382"       LDR     R3, [R0,#0x88]\n" 
     383"       LDR     R2, [R0,#0x8C]\n" 
     384"       ADD     R0, R0, #4\n" 
     385"       BLX     R3\n" 
     386"       LDR     R0, [SP,#0x1C]\n" 
     387"       BL      sub_FFC91C10\n" 
     388"       LDR     R0, [SP,#0x1C]\n" 
     389"       LDR     R1, [R0,#0x7C]\n" 
     390"       LDR     R3, [R0,#0x90]\n" 
     391"       LDR     R2, [R0,#0x94]\n" 
     392"       ADD     R0, R0, #4\n" 
     393"       BLX     R3\n" 
     394"       B       loc_FFC90AFC\n" 
     395"loc_FFC907C8:\n" 
     396"       CMP     R1, #0x13\n" 
     397"       CMPNE   R1, #0x14\n" 
     398"       CMPNE   R1, #0x15\n" 
     399"       BNE     loc_FFC9087C\n" 
     400"       ADD     R3, SP, #0xC\n" 
     401"       MOV     R2, SP\n" 
     402"       ADD     R1, SP, #0x10\n" 
     403"       BL      sub_FFC8F34C\n" 
     404"       CMP     R0, #1\n" 
     405"       MOV     R4, R0\n" 
     406"       CMPNE   R4, #5\n" 
     407"       BNE     loc_FFC90818\n" 
     408"       LDR     R0, [SP,#0x1C]\n" 
     409"       MOV     R2, R4\n" 
     410"       LDR     R1, [R0,#0x7C]!\n" 
     411"       LDR     R12, [R0,#0xC]!\n" 
     412"       LDR     R3, [R0,#4]\n" 
     413"       MOV     R0, SP\n" 
     414"       BLX     R12\n" 
     415"       B       loc_FFC90850\n" 
     416"loc_FFC90818:\n" 
     417"       LDR     R0, [SP,#0x1C]\n" 
     418"       CMP     R4, #2\n" 
     419"       LDR     R3, [R0,#0x8C]\n" 
     420"       CMPNE   R4, #6\n" 
     421"       BNE     loc_FFC90864\n" 
     422"       LDR     R12, [R0,#0x88]\n" 
     423"       MOV     R0, SP\n" 
     424"       MOV     R2, R4\n" 
     425"       MOV     R1, #1\n" 
     426"       BLX     R12\n" 
     427"       LDR     R0, [SP,#0x1C]\n" 
     428"       MOV     R2, SP\n" 
     429"       ADD     R1, SP, #0x10\n" 
     430"       BL      sub_FFC902D0\n" 
     431"loc_FFC90850:\n" 
     432"       LDR     R0, [SP,#0x1C]\n" 
     433"       LDR     R2, [SP,#0xC]\n" 
     434"       MOV     R1, R4\n" 
     435"       BL      sub_FFC90524\n" 
     436"       B       loc_FFC90AFC\n" 
     437"loc_FFC90864:\n" 
     438"       LDR     R1, [R0,#0x7C]\n" 
     439"       LDR     R12, [R0,#0x88]\n" 
     440"       ADD     R0, R0, #4\n" 
     441"       MOV     R2, R4\n" 
     442"       BLX     R12\n" 
     443"       B       loc_FFC90AFC\n" 
     444"loc_FFC9087C:\n" 
     445"       CMP     R1, #0x21\n" 
     446"       CMPNE   R1, #0x22\n" 
     447"       BNE     loc_FFC908C8\n" 
     448"       LDR     R1, [R0,#0x7C]\n" 
     449"       ADD     R1, R1, R1,LSL#1\n" 
     450"       ADD     R1, R0, R1,LSL#2\n" 
     451"       SUB     R1, R1, #8\n" 
     452"       LDMIA   R1, {R2-R4}\n" 
     453"       STMIA   R6, {R2-R4}\n" 
     454"       BL      sub_FFC8E690\n" 
     455"       LDR     R0, [SP,#0x1C]\n" 
     456"       LDR     R1, [R0,#0x7C]\n" 
     457"       LDR     R3, [R0,#0x88]\n" 
     458"       LDR     R2, [R0,#0x8C]\n" 
     459"       ADD     R0, R0, #4\n" 
     460"       BLX     R3\n" 
     461"       LDR     R0, [SP,#0x1C]\n" 
     462"       BL      sub_FFC8E980\n" 
     463"       B       loc_FFC90AFC\n" 
     464"loc_FFC908C8:\n" 
     465"       ADD     R1, R0, #4\n" 
     466"       LDMIA   R1, {R2,R3,R12}\n" 
     467"       STMIA   R6, {R2,R3,R12}\n" 
     468"       LDR     R1, [R0]\n" 
     469"       CMP     R1, #0x24\n" 
     470"       ADDLS   PC, PC, R1,LSL#2\n" 
     471"       B       loc_FFC90ADC\n" //default case 
     472"loc_FFC908E4:\n" 
     473"       B       loc_FFC90978\n" 
     474"loc_FFC908E8:\n" 
     475"       B       loc_FFC90978\n" 
     476"loc_FFC908EC:\n" 
     477"       B       loc_FFC90980\n" 
     478"loc_FFC908F0:\n" 
     479"       B       loc_FFC90988\n" 
     480"loc_FFC908F4:\n" 
     481"       B       loc_FFC90988\n" 
     482"loc_FFC908F8:\n" 
     483"       B       loc_FFC90988\n" 
     484"loc_FFC908FC:\n" 
     485"       B       loc_FFC90978\n" 
     486"loc_FFC90900:\n" 
     487"       B       loc_FFC90980\n" 
     488"loc_FFC90904:\n" 
     489"       B       loc_FFC90988\n" 
     490"loc_FFC90908:\n" 
     491"       B       loc_FFC90988\n" 
     492"loc_FFC9090C:\n" 
     493"       B       loc_FFC909E4\n" 
     494"loc_FFC90910:\n" 
     495"       B       loc_FFC909E4\n" 
     496"loc_FFC90914:\n" 
     497"       B       loc_FFC90AD0\n" 
     498"loc_FFC90918:\n" 
     499"       B       loc_FFC90AD8\n" 
     500"loc_FFC9091C:\n" 
     501"       B       loc_FFC90AD8\n" 
     502"loc_FFC90920:\n" 
     503"       B       loc_FFC90AD8\n" 
     504"loc_FFC90924:\n" 
     505"       B       loc_FFC90AD8\n" 
     506"loc_FFC90928:\n" 
     507"       B       loc_FFC90ADC\n" 
     508"loc_FFC9092C:\n" 
     509"       B       loc_FFC90ADC\n" 
     510"loc_FFC90930:\n" 
     511"       B       loc_FFC90ADC\n" 
     512"loc_FFC90934:\n" 
     513"       B       loc_FFC90ADC\n" 
     514"loc_FFC90938:\n" 
     515"       B       loc_FFC90ADC\n" 
     516"loc_FFC9093C:\n" 
     517"       B       loc_FFC90990\n" 
     518"loc_FFC90940:\n" 
     519"       B       loc_FFC90998\n" 
     520"loc_FFC90944:\n" 
     521"       B       loc_FFC90998\n" 
     522"loc_FFC90948:\n" 
     523"       B       loc_FFC909F0\n" 
     524"loc_FFC9094C:\n" 
     525"       B       loc_FFC909F0\n" 
     526"loc_FFC90950:\n" 
     527"       B       loc_FFC909F8\n" 
     528"loc_FFC90954:\n" 
     529"       B       loc_FFC90A28\n" 
     530"loc_FFC90958:\n" 
     531"       B       loc_FFC90A58\n" 
     532"loc_FFC9095C:\n" 
     533"       B       loc_FFC90A88\n" 
     534"loc_FFC90960:\n" 
     535"       B       loc_FFC90AB8\n" 
     536"loc_FFC90964:\n" 
     537"       B       loc_FFC90AB8\n" 
     538"loc_FFC90968:\n" 
     539"       B       loc_FFC90ADC\n" 
     540"loc_FFC9096C:\n" 
     541"       B       loc_FFC90ADC\n" 
     542"loc_FFC90970:\n" 
     543"       B       loc_FFC90AC0\n" 
     544"loc_FFC90974:\n" 
     545"       B       loc_FFC90AC8\n" 
     546"loc_FFC90978:\n" 
     547"       BL      sub_FFC8D560\n" //cases 0,1,6 
     548"       B       loc_FFC90ADC\n" //default case 
     549"loc_FFC90980:\n" 
     550"       BL      sub_FFC8D7F0\n" //cases 2,7 
     551"       B       loc_FFC90ADC\n" //default case 
     552"loc_FFC90988:\n" 
     553"       BL      sub_FFC8D9F4\n" //cases 3-5,8,9 
     554"       B       loc_FFC90ADC\n" //default case 
     555"loc_FFC90990:\n" 
     556"       BL      sub_FFC8DC5C\n" //case 22 
     557"       B       loc_FFC90ADC\n" //default case 
     558"loc_FFC90998:\n" 
     559"       BL      sub_FFC8DE50\n" //cases 23,24 
     560"       B       loc_FFC90ADC\n" //default case 
     561"loc_FFC909E4:\n" 
     562"       BL      sub_FFC8E0B8_my\n" //cases 10,11 -> 
     563"       MOV     R4, #0\n" 
     564"       B       loc_FFC90ADC\n" //default case 
     565"loc_FFC909F0:\n" 
     566"       BL      sub_FFC8E1F4\n" //cases 25,26 
     567"       B       loc_FFC90ADC\n" //default case 
     568"loc_FFC909F8:\n" 
     569"       LDRH    R1, [R0,#4]\n" //case 27 
     570"       STRH    R1, [SP,#0x10]\n" 
     571"       LDRH    R1, [R5,#2]\n" 
     572"       STRH    R1, [SP,#0x12]\n" 
     573"       LDRH    R1, [R5,#4]\n" 
     574"       STRH    R1, [SP,#0x14]\n" 
     575"       LDRH    R1, [R5,#6]\n" 
     576"       STRH    R1, [SP,#0x16]\n" 
     577"       LDRH    R1, [R0,#0xC]\n" 
     578"       STRH    R1, [SP,#0x18]\n" 
     579"       BL      sub_FFC918AC\n" 
     580"       B       loc_FFC90ADC\n" //default case 
     581"loc_FFC90A28:\n" 
     582"       LDRH    R1, [R0,#4]\n" //case 28 
     583"       STRH    R1, [SP,#0x10]\n" 
     584"       LDRH    R1, [R5,#2]\n" 
     585"       STRH    R1, [SP,#0x12]\n" 
     586"       LDRH    R1, [R5,#4]\n" 
     587"       STRH    R1, [SP,#0x14]\n" 
     588"       LDRH    R1, [R5,#6]\n" 
     589"       STRH    R1, [SP,#0x16]\n" 
     590"       LDRH    R1, [R5,#8]\n" 
     591"       STRH    R1, [SP,#0x18]\n" 
     592"       BL      sub_FFC91A2C\n" 
     593"       B       loc_FFC90ADC\n" //default case 
     594"loc_FFC90A58:\n" 
     595"       LDRH    R1, [R5]\n" //case 29 
     596"       STRH    R1, [SP,#0x10]\n" 
     597"       LDRH    R1, [R0,#6]\n" 
     598"       STRH    R1, [SP,#0x12]\n" 
     599"       LDRH    R1, [R5,#4]\n" 
     600"       STRH    R1, [SP,#0x14]\n" 
     601"       LDRH    R1, [R5,#6]\n" 
     602"       STRH    R1, [SP,#0x16]\n" 
     603"       LDRH    R1, [R5,#8]\n" 
     604"       STRH    R1, [SP,#0x18]\n" 
     605"       BL      sub_FFC91AD8\n" 
     606"       B       loc_FFC90ADC\n" //default case 
     607"loc_FFC90A88:\n" 
     608"       LDRH    R1, [R5]\n" //case 30 
     609"       STRH    R1, [SP,#0x10]\n" 
     610"       LDRH    R1, [R5,#2]\n" 
     611"       STRH    R1, [SP,#0x12]\n" 
     612"       LDRH    R1, [R5,#4]\n" 
     613"       STRH    R1, [SP,#0x14]\n" 
     614"       LDRH    R1, [R5,#6]\n" 
     615"       STRH    R1, [SP,#0x16]\n" 
     616"       LDRH    R1, [R0,#0xC]\n" 
     617"       STRH    R1, [SP,#0x18]\n" 
     618"       BL      sub_FFC91B78\n" 
     619"       B       loc_FFC90ADC\n" //default case 
     620"loc_FFC90AB8:\n" 
     621"       BL      sub_FFC8E468\n" //cases 31,32 
     622"       B       loc_FFC90ADC\n" //default case 
     623"loc_FFC90AC0:\n" 
     624"       BL      sub_FFC8EA84\n" //case 35 
     625"       B       loc_FFC90ADC\n" //default case 
     626"loc_FFC90AC8:\n" 
     627"       BL      sub_FFC8ECBC\n" //case 36 
     628"       B       loc_FFC90ADC\n" //default case 
     629"loc_FFC90AD0:\n" 
     630"       BL      sub_FFC8EE34\n" //case 12 
     631"       B       loc_FFC90ADC\n" //default case 
     632"loc_FFC90AD8:\n" 
     633"       BL      sub_FFC8EFCC\n" //cases 13-16 
     634"loc_FFC90ADC:\n" 
     635"       LDR     R0, [SP,#0x1C]\n" //default case 
     636"       LDR     R1, [R0,#0x7C]\n" 
     637"       LDR     R3, [R0,#0x88]\n" 
     638"       LDR     R2, [R0,#0x8C]\n" 
     639"       ADD     R0, R0, #4\n" 
     640"       BLX     R3\n" 
     641"       CMP     R4, #1\n" 
     642"       BNE     loc_FFC90B44\n" 
     643"loc_FFC90AFC:\n" 
     644"       LDR     R0, [SP,#0x1C]\n" 
     645"       MOV     R2, #0xC\n" 
     646"       LDR     R1, [R0,#0x7C]\n" 
     647"       ADD     R1, R1, R1,LSL#1\n" 
     648"       ADD     R0, R0, R1,LSL#2\n" 
     649"       SUB     R4, R0, #8\n" 
     650"       LDR     R0, =0x3D41C\n" 
     651"       ADD     R1, SP, #0x10\n" 
     652"       BL      sub_FFE4EA44\n" 
     653"       LDR     R0, =0x3D428\n" 
     654"       MOV     R2, #0xC\n" 
     655"       ADD     R1, SP, #0x10\n" 
     656"       BL      sub_FFE4EA44\n" 
     657"       LDR     R0, =0x3D434\n" 
     658"       MOV     R2, #0xC\n" 
     659"       MOV     R1, R4\n" 
     660"       BL      sub_FFE4EA44\n" 
     661"       B       loc_FFC90BBC\n" 
     662"loc_FFC90B44:\n" 
     663"       LDR     R0, [SP,#0x1C]\n" 
     664"       LDR     R0, [R0]\n" 
     665"       CMP     R0, #0xB\n" 
     666"       BNE     loc_FFC90B8C\n" 
     667"       MOV     R3, #0\n" 
     668"       STR     R3, [SP]\n" 
     669"       MOV     R3, #1\n" 
     670"       MOV     R2, #1\n" 
     671"       MOV     R1, #1\n" 
     672"       MOV     R0, #0\n" 
     673"       BL      sub_FFC8D368\n" 
     674"       MOV     R3, #0\n" 
     675"       STR     R3, [SP]\n" 
     676"       MOV     R3, #1\n" 
     677"       MOV     R2, #1\n" 
     678"       MOV     R1, #1\n" 
     679"       MOV     R0, #0\n" 
     680"       B       loc_FFC90BB8\n" 
     681"loc_FFC90B8C:\n" 
     682"       MOV     R3, #1\n" 
     683"       MOV     R2, #1\n" 
     684"       MOV     R1, #1\n" 
     685"       MOV     R0, #1\n" 
     686"       STR     R3, [SP]\n" 
     687"       BL      sub_FFC8D368\n" 
     688"       MOV     R3, #1\n" 
     689"       MOV     R2, #1\n" 
     690"       MOV     R1, #1\n" 
     691"       MOV     R0, #1\n" 
     692"       STR     R3, [SP]\n" 
     693"loc_FFC90BB8:\n" 
     694"       BL      sub_FFC8D4A8\n" 
     695"loc_FFC90BBC:\n" 
     696"       LDR     R0, [SP,#0x1C]\n" 
     697"       BL      sub_FFC91838\n" 
     698"       B       loc_FFC905F4\n" 
     699        ); 
     700} 
     701 
     702 
     703void __attribute__((naked,noinline)) sub_FFC8E0B8_my() 
     704{ 
     705        asm volatile ( 
     706"       STMFD   SP!, {R4-R8,LR}\n" 
     707"       LDR     R7, =0x64FC\n" 
     708"       MOV     R4, R0\n" 
     709"       LDR     R0, [R7,#0x1C]\n" 
     710"       MOV     R1, #0x3E\n" 
     711"       BL      sub_FFC173EC\n" 
     712"       LDRSH   R0, [R4,#4]\n" 
     713"       MOV     R2, #0\n" 
     714"       MOV     R1, #0\n" 
     715"       BL      sub_FFC8D0FC\n" 
     716"       MOV     R6, R0\n" 
     717"       LDRSH   R0, [R4,#6]\n" 
     718"       BL      sub_FFC8D208\n" 
     719"       LDRSH   R0, [R4,#8]\n" 
     720"       BL      sub_FFC8D260\n" 
     721"       LDRSH   R0, [R4,#0xA]\n" 
     722"       BL      sub_FFC8D2B8\n" 
     723"       LDRSH   R0, [R4,#0xC]\n" 
     724"       BL      sub_FFC8D310\n" 
     725"       MOV     R5, R0\n" 
     726"       LDR     R0, [R4]\n" 
     727"       LDR     R8, =0x3D434\n" 
     728"       CMP     R0, #0xB\n" 
     729"       MOVEQ   R6, #0\n" 
     730"       MOVEQ   R5, #0\n" 
     731"       BEQ     loc_FFC8E148\n" 
     732"       CMP     R6, #1\n" 
     733"       BNE     loc_FFC8E148\n" 
     734"       LDRSH   R0, [R4,#4]\n" 
     735"       LDR     R1, =0xFFC8D068\n" 
     736"       MOV     R2, #2\n" 
     737"       BL      sub_FFD03B74\n" 
     738"       STRH    R0, [R4,#4]\n" 
     739"       MOV     R0, #0\n" 
     740"       STR     R0, [R7,#0x28]\n" 
     741"       B       loc_FFC8E150\n" 
     742"loc_FFC8E148:\n" 
     743"       LDRH    R0, [R8]\n" 
     744"       STRH    R0, [R4,#4]\n" 
     745"loc_FFC8E150:\n" 
     746"       CMP     R5, #1\n" 
     747"       LDRNEH  R0, [R8,#8]\n" 
     748"       BNE     loc_FFC8E16C\n" 
     749"       LDRSH   R0, [R4,#0xC]\n" 
     750"       MOV     R2, #0x20\n" 
     751"       LDR     R1, =0xFFC8D0EC\n" 
     752"       BL      sub_FFC91868\n" 
     753"loc_FFC8E16C:\n" 
     754"       STRH    R0, [R4,#0xC]\n" 
     755"       LDRSH   R0, [R4,#6]\n" 
     756"       BL      sub_FFC70178_my\n" // -> 
     757"       LDR     PC, =0xFFC8E178\n" // + continue in ROM 
     758/* removed to spare some bytes - 
     759"       LDRSH   R0, [R4,#8]\n" 
     760"       MOV     R1, #1\n" 
     761"       BL      sub_FFC70974\n" 
     762"       MOV     R1, #0\n" 
     763"       ADD     R0, R4, #8\n" 
     764"       BL      sub_FFC709FC\n" 
     765"       LDRSH   R0, [R4,#0xE]\n" 
     766"       BL      sub_FFC84038\n" 
     767"       LDR     R4, =0xBB8\n" 
     768"       CMP     R6, #1\n" 
     769"       BNE     loc_FFC8E1C4\n" 
     770"       LDR     R0, [R7,#0x1C]\n" 
     771"       MOV     R2, R4\n" 
     772"       MOV     R1, #2\n" 
     773"       BL      sub_FFC172F0\n" 
     774"       TST     R0, #1\n" 
     775"       LDRNE   R1, =0x532\n" 
     776"       LDRNE   R0, =0xffc8d778\n" // "ExpDrv.c" 
     777"       BLNE    sub_FFC0BDB8\n" 
     778"loc_FFC8E1C4:\n" 
     779"       CMP     R5, #1\n" 
     780"       LDMNEFD SP!, {R4-R8,PC}\n" 
     781"       LDR     R0, [R7,#0x1C]\n" 
     782"       MOV     R2, R4\n" 
     783"       MOV     R1, #0x20\n" 
     784"       BL      sub_FFC172F0\n" 
     785"       TST     R0, #1\n" 
     786"       LDRNE   R1, =0x537\n" 
     787"       LDRNE   R0, =0xffc8d778\n" // "ExpDrv.c" 
     788"       LDMNEFD SP!, {R4-R8,LR}\n" 
     789"       BNE     sub_FFC0BDB8\n" 
     790"       LDMFD   SP!, {R4-R8,PC}\n" 
     791*/ 
     792        ); 
     793} 
     794 
     795 
     796void __attribute__((naked,noinline)) sub_FFC70178_my() 
     797{ 
     798        asm volatile ( 
     799"       STMFD   SP!, {R4-R6,LR}\n" 
     800"       LDR     R5, =0x5FD4\n" 
     801"       MOV     R4, R0\n" 
     802"       LDR     R0, [R5,#4]\n" 
     803"       CMP     R0, #1\n" 
     804"       LDRNE   R1, =0x16D\n" 
     805"       LDRNE   R0, =0xffc6ff10\n" // "Shutter.c" 
     806"       BLNE    sub_FFC0BDB8\n" 
     807"       CMN     R4, #0xC00\n" 
     808"       LDREQSH R4, [R5,#2]\n" 
     809"       CMN     R4, #0xC00\n" 
     810"       LDREQ   R1, =0x173\n" 
     811"       LDREQ   R0, =0xffc6ff10\n" // "Shutter.c" 
     812"       STRH    R4, [R5,#2]\n" 
     813"       BLEQ    sub_FFC0BDB8\n" 
     814"       MOV     R0, R4\n" 
     815//"       BL      sub_FFD68DD8\n" //- 
     816"       BL      apex2us\n" //+ 
     817"       MOV     R4, R0\n" 
     818//"       BL      nullsub\n" //- 
     819//"       MOV     R0, R4\n" //- 
     820"       BL      sub_FFCA2AF8\n" 
     821"       TST     R0, #1\n" 
     822"       LDMNEFD SP!, {R4-R6,LR}\n" 
     823"       MOVNE   R1, #0x178\n" 
     824"       LDRNE   R0, =0xffc6ff10\n" // "Shutter.c" 
     825"       BNE     sub_FFC0BDB8\n" 
     826"       LDMFD   SP!, {R4-R6,PC}\n" 
     827        ); 
     828} 
  • branches/release-1_0/platform/a470/sub/102c/stubs_auto.S

    r739 r1625  
    4949STUB(FFC16FB8) 
    5050STUB(FFC17054) 
     51STUB(FFC172F0) 
    5152STUB(FFC173B8) 
    5253STUB(FFC173EC) 
     
    282283STUB(FFC66230) 
    283284STUB(FFC66764) 
     285STUB(FFC70178) 
     286STUB(FFC7042C) 
     287STUB(FFC70974) 
     288STUB(FFC709FC) 
     289STUB(FFC70C7C) 
     290STUB(FFC711F8) 
     291STUB(FFC84038) 
     292STUB(FFC8D0FC) 
     293STUB(FFC8D208) 
     294STUB(FFC8D260) 
     295STUB(FFC8D2B8) 
     296STUB(FFC8D310) 
     297STUB(FFC8D368) 
     298STUB(FFC8D4A8) 
     299STUB(FFC8D560) 
     300STUB(FFC8D7F0) 
     301STUB(FFC8D9F4) 
     302STUB(FFC8DC5C) 
     303STUB(FFC8DE50) 
     304STUB(FFC8E0B8) 
     305STUB(FFC8E1F4) 
     306STUB(FFC8E468) 
     307STUB(FFC8E690) 
     308STUB(FFC8E980) 
     309STUB(FFC8EA84) 
     310STUB(FFC8ECBC) 
     311STUB(FFC8EE34) 
     312STUB(FFC8EFCC) 
     313STUB(FFC8F104) 
     314STUB(FFC8F34C) 
     315STUB(FFC902D0) 
     316STUB(FFC90524) 
     317STUB(FFC90584) 
     318STUB(FFC91838) 
     319STUB(FFC91868) 
     320STUB(FFC918AC) 
     321STUB(FFC91A2C) 
     322STUB(FFC91AD8) 
     323STUB(FFC91B78) 
     324STUB(FFC91C10) 
    284325STUB(FFC94BB4) 
    285326STUB(FFCA1774) 
     327STUB(FFCA2AF8) 
    286328STUB(FFCC87C4) 
    287329STUB(FFCC8888) 
     
    292334STUB(FFCEA074) 
    293335STUB(FFCF97DC) 
     336STUB(FFD03A20) 
     337STUB(FFD03B74) 
     338STUB(FFD03CA8) 
    294339STUB(FFD0761C) 
    295340STUB(FFD08668) 
     
    377422STUB(FFD6789C) 
    378423STUB(FFD6790C) 
     424STUB(FFD68DD8) 
     425STUB(FFE4EA44) 
    379426STUB(FFE4ECA0) 
    380427STUB(FFE50550) 
  • branches/release-1_0/platform/a470/sub/102c/stubs_entry.S

    r1611 r1625  
    3030//DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8,          stubs_min = 0x00001bf0 (0x1BF0) 
    3131//DEF(levent_table                            ,0xffe73984) // Found @0xffe73984,          stubs_min = 0xffe73984 (0xFFE73984) 
    32 //DEF(FlashParamsTable                        ,0xffe90724) // Found @0xffe90724, ** != ** stubs_min = 0xffe96c8c (0xFFE96C8C) 
     32//DEF(FlashParamsTable                        ,0xffe90724) // Found @0xffe90724,          stubs_min = 0xffe90724 (0xffe90724) 
    3333//DEF(movie_status                            ,0x00005200) // Found @0xffc45690,          stubs_min = 0x00005200 (0x5200) 
    3434//DEF(canon_menu_active                       ,0x00009064) // Found @0xffd1f904,          stubs_min = 0x00009064 (0x9064) 
    35 //DEF(canon_shoot_menu_active                 ,0x00009831) // Found @0xffd380c4, ** != ** stubs_min = 0x00009768 (0x9768) 
     35//DEF(canon_shoot_menu_active                 ,0x00009831) // Found @0xffd380c4,          stubs_min = 0x00009831 (0x9831) 
    3636//DEF(playrec_mode                            ,0x00005370) // Found @0xffc4bc7c,          stubs_min = 0x00005370 (0x536C+4) 
    37 //DEF(zoom_status                             ,0x0000d070) // Found @0xffde9384, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 
     37//DEF(zoom_status                             ,0x0000d070) // Found @0xffde9384,          stubs_min = 0x0000d070 (0xD070) 
    3838//DEF(some_flag_for_af_scan                   ,0x0000cdec) // Found @0xffdd7de4,          stubs_min = 0x0000cdec (0xCDEC) 
    39 //DEF(zoom_busy                               ,0x000083d4) // Found @0xffd0677c, ** != ** stubs_min = 0x00008050 (0x8050) 
     39//DEF(zoom_busy                               ,0x000083d4) // Found @0xffd0677c,          stubs_min = 0x000083d4 (0x83d4) 
    4040//DEF(focus_busy                              ,0x000082e0) // Found @0xffd02310,          stubs_min = 0x000082e0 (0x82E0) 
    41 //DEF(recreview_hold                          ,0x00005b64) // Found @0xffc64340, ** != ** stubs_min = 0x00009634 (0x9634) 
     41//DEF(recreview_hold                          ,0x00005b64) // Found @0xffc64340,          stubs_min = 0x00005b64 (0x5b64) 
    4242 
    4343// Values below go in 'lib.c': 
  • branches/release-1_0/platform/a470/sub/102c/stubs_min.S

    r826 r1625  
    33DEF(physw_status, 0x100BC) //Found for A470 (GPIOStatus) 
    44DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 
    5 DEF(FlashParamsTable,0xFFE96C8C) // via GetReservedClusters_Fut_9 
    6 DEF(zoom_busy, 0x8050)  //0x803c+14 same as in a590 
     5DEF(FlashParamsTable,0xffe90724) 
     6DEF(zoom_busy, 0x83d4) 
    77DEF(focus_busy, 0x82E0) // 0x82D8+0x08 found in sub_FFD02310 
    88 
    99DEF(canon_menu_active,0x9064)           // 0x9060+4 
    10 DEF(canon_shoot_menu_active,0x9768)   // 0x9768+1 ??BAD 
     10DEF(canon_shoot_menu_active,0x9831) 
    1111 
    12 DEF(recreview_hold, 0x9634) // ?? found in GetAEIntegralServiceMode_6 
     12DEF(recreview_hold, 0x5b64) 
    1313 
    1414DEF(movie_status, 0x5200)  // 0x51C8 + 0x38 
    1515DEF(some_flag_for_af_scan, 0xCDEC)  
    16 DEF(zoom_status, 0xD7C4)  
     16DEF(zoom_status, 0xD070) 
    1717DEF(led_table, 0x22AC) //Found using LEDDrv.c 
    1818DEF(levent_table,0xFFE73984) 
Note: See TracChangeset for help on using the changeset viewer.