Changeset 596


Ignore:
Timestamp:
11/29/08 09:35:14 (4 years ago)
Author:
EWAVR
Message:
  • sx100is - improver power-on procedure

+ sx100is - added jogdial support in menu, file browser and text reader

Location:
trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/version.txt

    r594 r596  
    22 
    33version / revision / author 
     4 
     50.8.4 / #596 / ewavr 
     6* sx100is - improver power-on procedure 
     7+ sx100is - added jogdial support in menu, file browser and text reader 
    48 
    590.8.4 / #594 / reyalp 
  • trunk/platform/sx100is/kbd.c

    r515 r596  
    124124 
    125125 
     126volatile int jogdial_stopped=0; 
     127 
    126128void my_kbd_read_keys() 
    127 { 
     129{        
    128130        kbd_prev_state[0] = kbd_new_state[0]; 
    129131        kbd_prev_state[1] = kbd_new_state[1]; 
     
    142144                // But do override the alt mode key 
    143145                physw_status[1] |= alt_mode_key_mask; 
     146                jogdial_stopped=0; 
    144147        } else { 
    145148                // override keys 
     
    147150                physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]); // Overrides everything except mode-dial (0xF) 
    148151                physw_status[2] = (kbd_new_state[2] | KEYS_MASK2) & (~KEYS_MASK2 | kbd_mod_state[2]); // Currently overrides nothing 
     152 
     153        if ((jogdial_stopped==0) && !state_kbd_script_run){ jogdial_stopped=1; get_jogdial_direction(); } 
     154        else if (jogdial_stopped && state_kbd_script_run) jogdial_stopped=0;  
     155 
    149156        } 
    150157 
     
    353360        return x; 
    354361} 
     362 
     363static int new_jogdial=0, old_jogdial=0; 
     364 
     365int Get_JogDial(void){ 
     366 return (*(int*)0xC0240304)>>16; 
     367} 
     368 
     369long get_jogdial_direction(void) {  
     370 old_jogdial=new_jogdial; 
     371 new_jogdial=Get_JogDial(); 
     372 if (old_jogdial>new_jogdial) return JOGDIAL_LEFT;  
     373 else if (old_jogdial<new_jogdial) return JOGDIAL_RIGHT; 
     374 else return 0; 
     375} 
  • trunk/platform/sx100is/main.c

    r515 r596  
    2525        *bss++ = 0; 
    2626 
    27         debug_led(1); 
     27//      debug_led(1); 
    2828    boot(); 
    2929} 
  • trunk/platform/sx100is/sub/100b/boot.c

    r549 r596  
    5555    for(i=0;i<canon_bss_len/4;i++) 
    5656        canon_bss_start[i]=0; 
     57 
     58    *(int*)0x2578= (*(int*)0xC02200B8)&1 ? 0x100000: 0x200000;  // replacement of sub_FFC12E38 
    5759 
    5860//      debug_my_blink(); 
     
    214216                 "B     loc_FFC0DD04\n" 
    215217        "loc_FFC0DD08:\n" 
    216                  "BL    sub_FFC12E38\n" 
     218//               "BL    sub_FFC12E38_my\n"             //------------> removed here to fast camera switching on 
    217219//               "BL    sub_FFC12E34\n"                                 // nullsub_4 
    218220                 "BL    sub_FFC19B30\n" 
     
    287289        _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 
    288290        asm volatile ( 
    289                         "BL             sub_FFC380F4\n" 
     291                        "BL             sub_FFC380F4_my\n"  //----------> create 'JogDial' task 
    290292        ); 
    291293}; //#fe 
     
    14611463                 "STR   R5, [R7,#4]\n" 
    14621464                 "LDMFD SP!, {R4-R8,PC}\n" 
    1463         ); 
    1464 }; //#fe 
    1465  
     1465                 ".LTORG\n" 
     1466        ); 
     1467}; //#fe 
     1468 
     1469void __attribute__((naked,noinline)) sub_FFC380F4_my() {  
     1470 asm volatile( 
     1471                "STMFD   SP!, {R3-R5,LR}\n" 
     1472                "LDR     R4, =0x2590\n" 
     1473                "LDR     R0, [R4,#8]\n" 
     1474                "CMP     R0, #0\n" 
     1475                "BNE     loc_FFC38128\n" 
     1476                "MOV     R3, #0\n" 
     1477                "STR     R3, [SP]\n" 
     1478                "LDR     R3, =JogDial_task_my\n" 
     1479                "MOV     R2, #0x800\n" 
     1480                "MOV     R1, #0x18\n" 
     1481                "LDR     R0, =0xFFC38254\n" 
     1482                "BL      sub_FFC0BE90\n" 
     1483                "STR     R0, [R4,#8]\n" 
     1484"loc_FFC38128:\n" 
     1485                "LDMFD   SP!, {R3-R5,PC}\n" 
     1486 ); 
     1487} 
     1488 
     1489void __attribute__((naked,noinline)) JogDial_task_my() {  
     1490 asm volatile( 
     1491                "STMFD   SP!, {R3-R11,LR}\n" 
     1492                "BL      sub_FFC38274\n" 
     1493                "LDR     R11, =0x80000B01\n" 
     1494                "LDR     R8, =0xFFE5FA70\n" 
     1495                "LDR     R7, =0xC0240000\n" 
     1496                "LDR     R6, =0x2590\n" 
     1497                "MOV     R9, #1\n" 
     1498                "MOV     R10, #0\n" 
     1499"loc_FFC38018:\n" 
     1500                "LDR     R3, =0x191\n" 
     1501                "LDR     R0, [R6,#0x10]\n" 
     1502                "LDR     R2, =0xFFC38244\n" 
     1503                "MOV     R1, #0\n" 
     1504                "BL      sub_FFC0BF78\n" 
     1505                "MOV     R0, #40\n" 
     1506                "BL      _SleepTask\n" 
     1507 
     1508//------------------  added code --------------------- 
     1509"labelA:\n" 
     1510                "LDR     R0, =jogdial_stopped\n" 
     1511                "LDR     R0, [R0]\n" 
     1512                "CMP     R0, #1\n" 
     1513                "BNE     labelB\n" 
     1514                "MOV     R0, #40\n" 
     1515                "BL      _SleepTask\n" 
     1516                "B       labelA\n" 
     1517"labelB:\n" 
     1518//------------------  original code ------------------ 
     1519 
     1520                "LDR     R0, [R7,#0x304]\n" 
     1521                "MOV     R0, R0,ASR#16\n" 
     1522                "STRH    R0, [R6]\n" 
     1523                "LDRSH   R2, [R6,#2]\n" 
     1524                "SUB     R1, R0, R2\n" 
     1525                "CMP     R1, #0\n" 
     1526                "BEQ     loc_FFC380DC\n" 
     1527                "MOV     R5, R1\n" 
     1528                "RSBLT   R5, R5, #0\n" 
     1529                "MOVLE   R4, #0\n" 
     1530                "MOVGT   R4, #1\n" 
     1531                "CMP     R5, #0xFF\n" 
     1532                "BLS     loc_FFC38090\n" 
     1533                "CMP     R1, #0\n" 
     1534                "RSBLE   R1, R2, #0xFF\n" 
     1535                "ADDLE   R1, R1, #0x7F00\n" 
     1536                "ADDLE   R0, R1, R0\n" 
     1537                "RSBGT   R0, R0, #0xFF\n" 
     1538                "ADDGT   R0, R0, #0x7F00\n" 
     1539                "ADDGT   R0, R0, R2\n" 
     1540                "ADD     R5, R0, #0x8000\n" 
     1541                "ADD     R5, R5, #1\n" 
     1542                "EOR     R4, R4, #1\n" 
     1543"loc_FFC38090:\n" 
     1544                "LDR     R0, [R6,#0x18]\n" 
     1545                "CMP     R0, #0\n" 
     1546                "BEQ     loc_FFC380D4\n" 
     1547                "LDR     R0, [R6,#0x20]\n" 
     1548                "CMP     R0, #0\n" 
     1549                "BEQ     loc_FFC380BC\n" 
     1550                "LDR     R1, [R8,R4,LSL#2]\n" 
     1551                "CMP     R1, R0\n" 
     1552                "BEQ     loc_FFC380C4\n" 
     1553                "LDR     R0, =0xB01\n" 
     1554                "BL      sub_FFC5F3D4\n" 
     1555 "loc_FFC380BC:\n" 
     1556                 "MOV     R0, R11\n" 
     1557                 "BL      sub_FFC5F3D4\n" 
     1558 "loc_FFC380C4:\n" 
     1559                 "LDR     R0, [R8,R4,LSL#2]\n" 
     1560                 "MOV     R1, R5\n" 
     1561                 "STR     R0, [R6,#0x20]\n" 
     1562                 "BL      sub_FFC5F330\n" 
     1563 "loc_FFC380D4:\n" 
     1564                 "LDRH    R0, [R6]\n" 
     1565                 "STRH    R0, [R6,#2]\n" 
     1566 "loc_FFC380DC:\n" 
     1567                 "STR     R10, [R7,#0x300]\n" 
     1568                 "STR     R9, [R7,#0x308]\n" 
     1569                 "LDR     R0, [R6,#0x14]\n" 
     1570                 "CMP     R0, #0\n" 
     1571                 "BLNE    _SleepTask\n" 
     1572                 "B       loc_FFC38018\n" 
     1573 ); 
     1574}        
  • trunk/platform/sx100is/sub/100b/stubs_auto.S

    r515 r596  
    2525STUB(FFC0BEE8) 
    2626STUB(FFC0BF0C) 
     27STUB(FFC0BF78) 
    2728STUB(FFC0BFD0) 
    2829STUB(FFC0C090) 
     
    9293STUB(FFC2D9D0) 
    9394STUB(FFC380F4) 
     95STUB(FFC38274) 
    9496STUB(FFC391F8) 
    9597STUB(FFC3A2AC) 
     
    159161STUB(FFC5D6FC) 
    160162STUB(FFC5ED78) 
     163STUB(FFC5F330) 
     164STUB(FFC5F3D4) 
    161165STUB(FFC5F3DC) 
    162166STUB(FFC5F714) 
  • trunk/platform/sx100is/sub/100c/boot.c

    r549 r596  
    5555    for(i=0;i<canon_bss_len/4;i++) 
    5656        canon_bss_start[i]=0; 
     57 
     58    *(int*)0x2578= (*(int*)0xC02200B8)&1 ? 0x100000: 0x200000; // replacement of sub_FFC12E38 
    5759 
    5860//      debug_my_blink(); 
     
    214216                 "B     loc_FFC0DD04\n" 
    215217        "loc_FFC0DD08:\n" 
    216                  "BL    sub_FFC12E38\n" 
     218//               "BL    sub_FFC12E38\n"        //------------> removed here to fast camera switching on 
    217219//               "BL    sub_FFC12E34\n"                                 // nullsub_4 
    218220                 "BL    sub_FFC19B30\n" 
     
    287289        _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 
    288290        asm volatile ( 
    289                         "BL             sub_FFC38128\n" 
     291                        "BL             sub_FFC38128_my\n"  //----------> create 'JogDial' task 
    290292        ); 
    291293}; //#fe 
     
    14611463                 "STR   R5, [R7,#4]\n" 
    14621464                 "LDMFD SP!, {R4-R8,PC}\n" 
    1463         ); 
    1464 }; //#fe 
    1465  
     1465                 ".LTORG\n" 
     1466        ); 
     1467}; //#fe 
     1468 
     1469void __attribute__((naked,noinline)) sub_FFC38128_my() {  
     1470 asm volatile( 
     1471                "STMFD   SP!, {R3-R5,LR}\n" 
     1472                "LDR     R4, =0x2590\n" 
     1473                "LDR     R0, [R4,#8]\n" 
     1474                "CMP     R0, #0\n" 
     1475                "BNE     loc_FFC3815C\n" 
     1476                "MOV     R3, #0\n" 
     1477                "STR     R3, [SP]\n" 
     1478                "LDR     R3, =JogDial_task_my\n" 
     1479                "MOV     R2, #0x800\n" 
     1480                "MOV     R1, #0x18\n" 
     1481                "LDR     R0, =0xFFC38288\n" 
     1482                "BL      sub_FFC0BE90\n" 
     1483                "STR     R0, [R4,#8]\n" 
     1484"loc_FFC3815C:\n" 
     1485                "LDMFD   SP!, {R3-R5,PC}\n" 
     1486 ); 
     1487} 
     1488 
     1489void __attribute__((naked,noinline)) JogDial_task_my() {  
     1490 asm volatile( 
     1491                "STMFD   SP!, {R3-R11,LR}\n" 
     1492                "BL      sub_FFC382A8\n" 
     1493                "LDR     R11, =0x80000B01\n" 
     1494                "LDR     R8, =0xFFE5FAA4\n" 
     1495                "LDR     R7, =0xC0240000\n" 
     1496                "LDR     R6, =0x2590\n" 
     1497                "MOV     R9, #1\n" 
     1498                "MOV     R10, #0\n" 
     1499"loc_FFC3804C:\n" 
     1500                "LDR     R3, =0x191\n" 
     1501                "LDR     R0, [R6,#0x10]\n" 
     1502                "LDR     R2, =0xFFC38278\n" 
     1503                "MOV     R1, #0\n" 
     1504                "BL      sub_FFC0BF78\n" 
     1505                "MOV     R0, #40\n" 
     1506                "BL      _SleepTask\n" 
     1507 
     1508//------------------  added code --------------------- 
     1509"labelA:\n" 
     1510                "LDR     R0, =jogdial_stopped\n" 
     1511                "LDR     R0, [R0]\n" 
     1512                "CMP     R0, #1\n" 
     1513                "BNE     labelB\n" 
     1514                "MOV     R0, #40\n" 
     1515                "BL      _SleepTask\n" 
     1516                "B       labelA\n" 
     1517"labelB:\n" 
     1518//------------------  original code ------------------ 
     1519 
     1520                "LDR     R0, [R7,#0x304]\n" 
     1521                "MOV     R0, R0,ASR#16\n" 
     1522                "STRH    R0, [R6]\n" 
     1523                "LDRSH   R2, [R6,#2]\n" 
     1524                "SUB     R1, R0, R2\n" 
     1525                "CMP     R1, #0\n" 
     1526                "BEQ     loc_FFC38110\n" 
     1527                "MOV     R5, R1\n" 
     1528                "RSBLT   R5, R5, #0\n" 
     1529                "MOVLE   R4, #0\n" 
     1530                "MOVGT   R4, #1\n" 
     1531                "CMP     R5, #0xFF\n" 
     1532                "BLS     loc_FFC380C4\n" 
     1533                "CMP     R1, #0\n" 
     1534                "RSBLE   R1, R2, #0xFF\n" 
     1535                "ADDLE   R1, R1, #0x7F00\n" 
     1536                "ADDLE   R0, R1, R0\n" 
     1537                "RSBGT   R0, R0, #0xFF\n" 
     1538                "ADDGT   R0, R0, #0x7F00\n" 
     1539                "ADDGT   R0, R0, R2\n" 
     1540                "ADD     R5, R0, #0x8000\n" 
     1541                "ADD     R5, R5, #1\n" 
     1542                "EOR     R4, R4, #1\n" 
     1543"loc_FFC380C4:\n" 
     1544                "LDR     R0, [R6,#0x18]\n" 
     1545                "CMP     R0, #0\n" 
     1546                "BEQ     loc_FFC38108\n" 
     1547                "LDR     R0, [R6,#0x20]\n" 
     1548                "CMP     R0, #0\n" 
     1549                "BEQ     loc_FFC380F0\n" 
     1550                "LDR     R1, [R8,R4,LSL#2]\n" 
     1551                "CMP     R1, R0\n" 
     1552                "BEQ     loc_FFC380F8\n" 
     1553                "LDR     R0, =0xB01\n" 
     1554                "BL      sub_FFC5F408\n" 
     1555 "loc_FFC380F0:\n" 
     1556                 "MOV     R0, R11\n" 
     1557                 "BL      sub_FFC5F408\n" 
     1558 "loc_FFC380F8:\n" 
     1559                 "LDR     R0, [R8,R4,LSL#2]\n" 
     1560                 "MOV     R1, R5\n" 
     1561                 "STR     R0, [R6,#0x20]\n" 
     1562                 "BL      sub_FFC5F364\n" 
     1563 "loc_FFC38108:\n" 
     1564                 "LDRH    R0, [R6]\n" 
     1565                 "STRH    R0, [R6,#2]\n" 
     1566 "loc_FFC38110:\n" 
     1567                 "STR     R10, [R7,#0x300]\n" 
     1568                 "STR     R9, [R7,#0x308]\n" 
     1569                 "LDR     R0, [R6,#0x14]\n" 
     1570                 "CMP     R0, #0\n" 
     1571                 "BLNE    _SleepTask\n" 
     1572                 "B       loc_FFC3804C\n" 
     1573 ); 
     1574} 
  • trunk/platform/sx100is/sub/100c/stubs_auto.S

    r515 r596  
    2525STUB(FFC0BEE8) 
    2626STUB(FFC0BF0C) 
     27STUB(FFC0BF78) 
    2728STUB(FFC0BFD0) 
    2829STUB(FFC0C090) 
     
    9293STUB(FFC2D9D0) 
    9394STUB(FFC38128) 
     95STUB(FFC382A8) 
    9496STUB(FFC3922C) 
    9597STUB(FFC3A2E0) 
     
    159161STUB(FFC5D730) 
    160162STUB(FFC5EDAC) 
     163STUB(FFC5F364) 
     164STUB(FFC5F408) 
    161165STUB(FFC5F410) 
    162166STUB(FFC5F748) 
  • trunk/version.inc

    r594 r596  
    1 BUILD_NUMBER := 0.8.4 
     1BUILD_NUMBER := 0.8.5 
Note: See TracChangeset for help on using the changeset viewer.