Changeset 596
- Timestamp:
- 11/29/08 09:35:14 (4 years ago)
- Location:
- trunk
- Files:
-
- 8 edited
-
doc/version.txt (modified) (1 diff)
-
platform/sx100is/kbd.c (modified) (4 diffs)
-
platform/sx100is/main.c (modified) (1 diff)
-
platform/sx100is/sub/100b/boot.c (modified) (4 diffs)
-
platform/sx100is/sub/100b/stubs_auto.S (modified) (3 diffs)
-
platform/sx100is/sub/100c/boot.c (modified) (4 diffs)
-
platform/sx100is/sub/100c/stubs_auto.S (modified) (3 diffs)
-
version.inc (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/version.txt
r594 r596 2 2 3 3 version / revision / author 4 5 0.8.4 / #596 / ewavr 6 * sx100is - improver power-on procedure 7 + sx100is - added jogdial support in menu, file browser and text reader 4 8 5 9 0.8.4 / #594 / reyalp -
trunk/platform/sx100is/kbd.c
r515 r596 124 124 125 125 126 volatile int jogdial_stopped=0; 127 126 128 void my_kbd_read_keys() 127 { 129 { 128 130 kbd_prev_state[0] = kbd_new_state[0]; 129 131 kbd_prev_state[1] = kbd_new_state[1]; … … 142 144 // But do override the alt mode key 143 145 physw_status[1] |= alt_mode_key_mask; 146 jogdial_stopped=0; 144 147 } else { 145 148 // override keys … … 147 150 physw_status[1] = (kbd_new_state[1] | KEYS_MASK1) & (~KEYS_MASK1 | kbd_mod_state[1]); // Overrides everything except mode-dial (0xF) 148 151 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 149 156 } 150 157 … … 353 360 return x; 354 361 } 362 363 static int new_jogdial=0, old_jogdial=0; 364 365 int Get_JogDial(void){ 366 return (*(int*)0xC0240304)>>16; 367 } 368 369 long 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 25 25 *bss++ = 0; 26 26 27 debug_led(1);27 // debug_led(1); 28 28 boot(); 29 29 } -
trunk/platform/sx100is/sub/100b/boot.c
r549 r596 55 55 for(i=0;i<canon_bss_len/4;i++) 56 56 canon_bss_start[i]=0; 57 58 *(int*)0x2578= (*(int*)0xC02200B8)&1 ? 0x100000: 0x200000; // replacement of sub_FFC12E38 57 59 58 60 // debug_my_blink(); … … 214 216 "B loc_FFC0DD04\n" 215 217 "loc_FFC0DD08:\n" 216 "BL sub_FFC12E38\n" 218 // "BL sub_FFC12E38_my\n" //------------> removed here to fast camera switching on 217 219 // "BL sub_FFC12E34\n" // nullsub_4 218 220 "BL sub_FFC19B30\n" … … 287 289 _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 288 290 asm volatile ( 289 "BL sub_FFC380F4 \n"291 "BL sub_FFC380F4_my\n" //----------> create 'JogDial' task 290 292 ); 291 293 }; //#fe … … 1461 1463 "STR R5, [R7,#4]\n" 1462 1464 "LDMFD SP!, {R4-R8,PC}\n" 1463 ); 1464 }; //#fe 1465 1465 ".LTORG\n" 1466 ); 1467 }; //#fe 1468 1469 void __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 1489 void __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 25 25 STUB(FFC0BEE8) 26 26 STUB(FFC0BF0C) 27 STUB(FFC0BF78) 27 28 STUB(FFC0BFD0) 28 29 STUB(FFC0C090) … … 92 93 STUB(FFC2D9D0) 93 94 STUB(FFC380F4) 95 STUB(FFC38274) 94 96 STUB(FFC391F8) 95 97 STUB(FFC3A2AC) … … 159 161 STUB(FFC5D6FC) 160 162 STUB(FFC5ED78) 163 STUB(FFC5F330) 164 STUB(FFC5F3D4) 161 165 STUB(FFC5F3DC) 162 166 STUB(FFC5F714) -
trunk/platform/sx100is/sub/100c/boot.c
r549 r596 55 55 for(i=0;i<canon_bss_len/4;i++) 56 56 canon_bss_start[i]=0; 57 58 *(int*)0x2578= (*(int*)0xC02200B8)&1 ? 0x100000: 0x200000; // replacement of sub_FFC12E38 57 59 58 60 // debug_my_blink(); … … 214 216 "B loc_FFC0DD04\n" 215 217 "loc_FFC0DD08:\n" 216 "BL sub_FFC12E38\n" 218 // "BL sub_FFC12E38\n" //------------> removed here to fast camera switching on 217 219 // "BL sub_FFC12E34\n" // nullsub_4 218 220 "BL sub_FFC19B30\n" … … 287 289 _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 288 290 asm volatile ( 289 "BL sub_FFC38128 \n"291 "BL sub_FFC38128_my\n" //----------> create 'JogDial' task 290 292 ); 291 293 }; //#fe … … 1461 1463 "STR R5, [R7,#4]\n" 1462 1464 "LDMFD SP!, {R4-R8,PC}\n" 1463 ); 1464 }; //#fe 1465 1465 ".LTORG\n" 1466 ); 1467 }; //#fe 1468 1469 void __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 1489 void __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 25 25 STUB(FFC0BEE8) 26 26 STUB(FFC0BF0C) 27 STUB(FFC0BF78) 27 28 STUB(FFC0BFD0) 28 29 STUB(FFC0C090) … … 92 93 STUB(FFC2D9D0) 93 94 STUB(FFC38128) 95 STUB(FFC382A8) 94 96 STUB(FFC3922C) 95 97 STUB(FFC3A2E0) … … 159 161 STUB(FFC5D730) 160 162 STUB(FFC5EDAC) 163 STUB(FFC5F364) 164 STUB(FFC5F408) 161 165 STUB(FFC5F410) 162 166 STUB(FFC5F748) -
trunk/version.inc
r594 r596 1 BUILD_NUMBER := 0.8. 41 BUILD_NUMBER := 0.8.5
Note: See TracChangeset
for help on using the changeset viewer.