Changeset 936


Ignore:
Timestamp:
01/31/12 20:06:08 (2 years ago)
Author:
rudi_de
Message:

Aktualisierung auf Rev. 1625/1630 internationaler Branch: Release-1.0
http://trac.assembla.com/chdk/changeset/1625/branches/release-1_0
http://trac.assembla.com/chdk/changeset/1630/branches/release-1_0

Betrifft a470
+ Belichtungszeiten >64 Sek. implementiert
+ CAM_STARTUP_CRASH_FILE_OPEN_FIX aktiviert
+ CAM_DETECT_SCREEN_ERASE aktiviert

  • Fehlerbeseitigung bei Rauschunterdrückung
  • kbd.c und capt_seq.c überarbeitet
  • stubs_min.S bereinigt und stubs_entry.S neu erzeugt
Location:
trunk/platform/a470
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • trunk/platform/a470/kbd.c

    r711 r936  
    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    } 
  • trunk/platform/a470/lib.c

    r470 r936  
    3333 
    3434int get_flash_params_count(void){ 
    35  return 114; 
     35 return 115; 
    3636} 
  • trunk/platform/a470/notes.txt

    r20 r936  
    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) 
  • trunk/platform/a470/platform_camera.h

    r859 r936  
    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//---------------------------------------------------------- 
  • trunk/platform/a470/sub/100e/boot.c

    r14 r936  
    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 ( 
  • trunk/platform/a470/sub/100e/capt_seq.c

    r14 r936  
    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} 
  • trunk/platform/a470/sub/100e/stubs_entry.S

    r930 r936  
    2828DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8 
    2929DEF(levent_table                            ,0xffe72ec8) // Found @0xffe72ec8 
    30 //DEF(FlashParamsTable                        ,0xffe8fc68) // Found @0xffe8fc68, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 
    31 //DEF(movie_status                            ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 
     30DEF(FlashParamsTable                        ,0xffe8fc68) // Found @0xffe8fc68 
     31DEF(movie_status                            ,0x000051d8) // Found @0xffc45174 
    3232DEF(canon_menu_active                       ,0x00009014) // Found @0xffd1eec4 
    33 //DEF(canon_shoot_menu_active                 ,0x000097e1) // Found @0xffd37684, ** != ** stubs_min = 0x00009768 (0x9768) 
     33DEF(canon_shoot_menu_active                 ,0x000097e1) // Found @0xffd37684 
    3434DEF(playrec_mode                            ,0x00005348) // Found @0xffc4b760 
    35 //DEF(zoom_status                             ,0x0000d020) // Found @0xffde8948, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 
    36 //DEF(some_flag_for_af_scan                   ,0x0000cd9c) // Found @0xffdd73a8, ** != ** stubs_min = 0x0000cdec (0xCDEC) 
    37 //DEF(zoom_busy                               ,0x000083a4) // Found @0xffd05d3c, ** != ** stubs_min = 0x00008050 (0x8050) 
     35DEF(zoom_status                             ,0x0000d020) // Found @0xffde8948 
     36DEF(some_flag_for_af_scan                   ,0x0000cd9c) // Found @0xffdd73a8 
     37DEF(zoom_busy                               ,0x000083a4) // Found @0xffd05d3c 
    3838DEF(focus_busy                              ,0x000082b0) // Found @0xffd018d0 
    39 //DEF(recreview_hold                          ,0x00005b3c) // Found @0xffc63e24, ** != ** stubs_min = 0x00009634 (0x9634) 
     39DEF(recreview_hold                          ,0x00005b3c) // Found @0xffc63e24 
    4040 
    4141// Values below go in 'lib.c': 
  • trunk/platform/a470/sub/100e/stubs_min.S

    r884 r936  
    11#include "stubs_asm.h" 
    22 
    3 DEF(FlashParamsTable,                   0xFFE961CC) // via GetReservedClusters_Fut_9 
    4 DEF(movie_status,                       0x5200)     // 0x51C8 + 0x38 
    5 DEF(canon_shoot_menu_active,            0x9768)     // 0x9768+1 ??BAD 
    6 DEF(zoom_status,                        0xD7C4)  
    7 DEF(some_flag_for_af_scan,              0xCDEC)  
    8 DEF(zoom_busy,                          0x8050)     //0x803c+14 same as in a590 
    9 DEF(recreview_hold,                     0x9634)     // ?? found in GetAEIntegralServiceMode_6 
    10 DEF(led_table,                          0x22AC)     //Found using LEDDrv.c 
     3DEF(led_table, 0x22AC) //Found using LEDDrv.c 
  • trunk/platform/a470/sub/101b/boot.c

    r14 r936  
    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 ( 
  • trunk/platform/a470/sub/101b/capt_seq.c

    r14 r936  
    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} 
  • trunk/platform/a470/sub/101b/stubs_entry.S

    r930 r936  
    2828DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8 
    2929DEF(levent_table                            ,0xffe72ec4) // Found @0xffe72ec4 
    30 //DEF(FlashParamsTable                        ,0xffe8fc64) // Found @0xffe8fc64, ** != ** stubs_min = 0xffe961cc (0xFFE961CC) 
    31 //DEF(movie_status                            ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 
     30DEF(FlashParamsTable                        ,0xffe8fc64) // Found @0xffe8fc64 
     31DEF(movie_status                            ,0x000051d8) // Found @0xffc45174 
    3232DEF(canon_menu_active                       ,0x00009014) // Found @0xffd1eec4 
    33 //DEF(canon_shoot_menu_active                 ,0x000097e1) // Found @0xffd37684, ** != ** stubs_min = 0x00009718 (0x9718) 
     33DEF(canon_shoot_menu_active                 ,0x000097e1) // Found @0xffd37684 
    3434DEF(playrec_mode                            ,0x00005348) // Found @0xffc4b760 
    35 //DEF(zoom_status                             ,0x0000d020) // Found @0xffde8944, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 
    36 //DEF(some_flag_for_af_scan                   ,0x0000cd9c) // Found @0xffdd73a4, ** != ** stubs_min = 0x0000cdec (0xCDEC) 
    37 //DEF(zoom_busy                               ,0x000083a4) // Found @0xffd05d3c, ** != ** stubs_min = 0x00008050 (0x8050) 
     35DEF(zoom_status                             ,0x0000d020) // Found @0xffde8944 
     36DEF(some_flag_for_af_scan                   ,0x0000cd9c) // Found @0xffdd73a4 
     37DEF(zoom_busy                               ,0x000083a4) // Found @0xffd05d3c 
    3838DEF(focus_busy                              ,0x000082b0) // Found @0xffd018d0 
    39 //DEF(recreview_hold                          ,0x00005b3c) // Found @0xffc63e24, ** != ** stubs_min = 0x000095e4 (0x95E4) 
     39DEF(recreview_hold                          ,0x00005b3c) // Found @0xffc63e24 
    4040 
    4141// Values below go in 'lib.c': 
  • trunk/platform/a470/sub/101b/stubs_min.S

    r884 r936  
    11#include "stubs_asm.h" 
    22 
    3 DEF(FlashParamsTable,                   0xFFE961CC) // via GetReservedClusters_Fut_9 
    4 DEF(movie_status,                       0x5200)     // 0x51C8 + 0x38 
    5 DEF(canon_shoot_menu_active,            0x9718)     // from http://chdk.setepontos.com/index.php/topic,3368.msg37738.html#msg37738 
    6 DEF(zoom_status,                        0xD7C4) 
    7 DEF(some_flag_for_af_scan,              0xCDEC) 
    8 DEF(zoom_busy,                          0x8050)     //0x803c+14 same as in a590 
    9 DEF(recreview_hold,                     0x95E4)     // from http://chdk.setepontos.com/index.php/topic,3368.msg37738.html#msg37738 
    10 DEF(led_table,                          0x22AC)     //Found using LEDDrv.c 
     3DEF(led_table, 0x22AC) //Found using LEDDrv.c 
  • trunk/platform/a470/sub/102c/boot.c

    r14 r936  
    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 ( 
  • trunk/platform/a470/sub/102c/capt_seq.c

    r14 r936  
    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} 
  • trunk/platform/a470/sub/102c/stubs_entry.S

    r930 r936  
    2828DEF(physw_run                               ,0x00001bf0) // Found @0xffc118a8 
    2929DEF(levent_table                            ,0xffe73984) // Found @0xffe73984 
    30 //DEF(FlashParamsTable                        ,0xffe90724) // Found @0xffe90724, ** != ** stubs_min = 0xffe96c8c (0xFFE96C8C) 
     30DEF(FlashParamsTable                        ,0xffe90724) // Found @0xffe90724 
    3131DEF(movie_status                            ,0x00005200) // Found @0xffc45690 
    3232DEF(canon_menu_active                       ,0x00009064) // Found @0xffd1f904 
    33 //DEF(canon_shoot_menu_active                 ,0x00009831) // Found @0xffd380c4, ** != ** stubs_min = 0x00009768 (0x9768) 
     33DEF(canon_shoot_menu_active                 ,0x00009831) // Found @0xffd380c4 
    3434DEF(playrec_mode                            ,0x00005370) // Found @0xffc4bc7c 
    35 //DEF(zoom_status                             ,0x0000d070) // Found @0xffde9384, ** != ** stubs_min = 0x0000d7c4 (0xD7C4) 
     35DEF(zoom_status                             ,0x0000d070) // Found @0xffde9384 
    3636DEF(some_flag_for_af_scan                   ,0x0000cdec) // Found @0xffdd7de4 
    37 //DEF(zoom_busy                               ,0x000083d4) // Found @0xffd0677c, ** != ** stubs_min = 0x00008050 (0x8050) 
     37DEF(zoom_busy                               ,0x000083d4) // Found @0xffd0677c 
    3838DEF(focus_busy                              ,0x000082e0) // Found @0xffd02310 
    39 //DEF(recreview_hold                          ,0x00005b64) // Found @0xffc64340, ** != ** stubs_min = 0x00009634 (0x9634) 
     39DEF(recreview_hold                          ,0x00005b64) // Found @0xffc64340 
    4040 
    4141// Values below go in 'lib.c': 
  • trunk/platform/a470/sub/102c/stubs_min.S

    r884 r936  
    11#include "stubs_asm.h" 
    22 
    3 DEF(FlashParamsTable,                   0xFFE96C8C) // via GetReservedClusters_Fut_9 
    4 DEF(canon_shoot_menu_active,            0x9768)     // 0x9768+1 ??BAD 
    5 DEF(zoom_status,                        0xD7C4) 
    6 DEF(zoom_busy,                          0x8050)     //0x803c+14 same as in a590 
    7 DEF(led_table,                          0x22AC)     //Found using LEDDrv.c 
    8 DEF(recreview_hold,                     0x9634)     // ?? found in GetAEIntegralServiceMode_6 
     3DEF(led_table, 0x22AC) //Found using LEDDrv.c 
Note: See TracChangeset for help on using the changeset viewer.