Changeset 1625
- Timestamp:
- 01/30/12 05:03:17 (17 months ago)
- Location:
- branches/release-1_0/platform/a470
- Files:
-
- 19 edited
-
kbd.c (modified) (1 diff)
-
lib.c (modified) (1 diff)
-
notes.txt (modified) (1 diff)
-
platform_camera.h (modified) (1 diff)
-
sub/100e/boot.c (modified) (2 diffs)
-
sub/100e/capt_seq.c (modified) (3 diffs)
-
sub/100e/stubs_auto.S (modified) (4 diffs)
-
sub/100e/stubs_entry.S (modified) (1 diff)
-
sub/100e/stubs_min.S (modified) (1 diff)
-
sub/101b/boot.c (modified) (2 diffs)
-
sub/101b/capt_seq.c (modified) (3 diffs)
-
sub/101b/stubs_auto.S (modified) (4 diffs)
-
sub/101b/stubs_entry.S (modified) (1 diff)
-
sub/101b/stubs_min.S (modified) (1 diff)
-
sub/102c/boot.c (modified) (2 diffs)
-
sub/102c/capt_seq.c (modified) (3 diffs)
-
sub/102c/stubs_auto.S (modified) (4 diffs)
-
sub/102c/stubs_entry.S (modified) (1 diff)
-
sub/102c/stubs_min.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-1_0/platform/a470/kbd.c
r1344 r1625 340 340 for (i=0;keymap[i].hackkey;i++){ 341 341 if ((kbd_new_state[keymap[i].grp] & keymap[i].canonkey) == 0){ 342 if (i!=7)return keymap[i].hackkey;342 return keymap[i].hackkey; 343 343 } 344 344 } -
branches/release-1_0/platform/a470/lib.c
r770 r1625 32 32 33 33 int get_flash_params_count(void){ 34 return 11 4;34 return 115; 35 35 } -
branches/release-1_0/platform/a470/notes.txt
r739 r1625 6 6 7 7 beta port, see http://chdk.setepontos.com/index.php/topic,3368.msg31068.html#msg31068 8 supports extra long exposure (>64 sec) 8 9 9 10 TODO: 10 11 * Add (super)long exposure time12 11 * Camera colour profile etc (copypastad atm) -
branches/release-1_0/platform/a470/platform_camera.h
r1418 r1625 59 59 // camera name 60 60 #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 61 64 //#define DNG_EXT_FROM ".DPS" 62 65 //---------------------------------------------------------- -
branches/release-1_0/platform/a470/sub/100e/boot.c
r785 r1625 14 14 15 15 void boot(); 16 17 void 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 } 16 21 17 22 void boot() { //#fs … … 38 43 for(i=0;i<canon_bss_len/4;i++) 39 44 canon_bss_start[i]=0; 45 46 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 47 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 40 48 41 49 /* asm volatile ( -
branches/release-1_0/platform/a470/sub/100e/capt_seq.c
r785 r1625 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x8888; //in sub_ffd0cae8, like in 101b 6 6 7 7 #include "../../../generic/capt_seq.c" … … 67 67 "LDR R0, [SP]\n" //+ 68 68 "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.c72 69 73 70 "CMP R1, #0x19\n" … … 279 276 ); 280 277 } //#fe 278 279 280 void __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 727 void __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 820 void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 821 { 822 asm volatile ( 823 " STMFD SP!, {R4-R6,LR}\n" 824 " LDR R5, =0x5FAC\n" 825 " MOV R4, R0\n" 826 " LDR R0, [R5,#4]\n" 827 " CMP R0, #1\n" 828 " LDRNE R1, =0x16D\n" 829 " LDRNE R0, =0xffc6f9f4\n" // "Shutter.c" 830 " BLNE sub_FFC0BDB8\n" 831 " CMN R4, #0xC00\n" 832 " LDREQSH R4, [R5,#2]\n" 833 " CMN R4, #0xC00\n" 834 " LDREQ R1, =0x173\n" 835 " LDREQ R0, =0xffc6f9f4\n" // "Shutter.c" 836 " STRH R4, [R5,#2]\n" 837 " BLEQ sub_FFC0BDB8\n" 838 " MOV R0, R4\n" 839 //" BL sub_FFD68398\n" //- 840 " BL apex2us\n" //+ 841 " MOV R4, R0\n" 842 //" BL nullsub\n" //- 843 //" MOV R0, R4\n" //- 844 " BL sub_FFCA25DC\n" 845 " TST R0, #1\n" 846 " LDMNEFD SP!, {R4-R6,LR}\n" 847 " MOVNE R1, #0x178\n" 848 " LDRNE R0, =0xffc6f9f4\n" // "Shutter.c" 849 " BNE sub_FFC0BDB8\n" 850 " LDMFD SP!, {R4-R6,PC}\n" 851 ); 852 } -
branches/release-1_0/platform/a470/sub/100e/stubs_auto.S
r785 r1625 49 49 STUB(FFC16FB8) 50 50 STUB(FFC17054) 51 STUB(FFC172F0) 51 52 STUB(FFC173B8) 52 53 STUB(FFC173EC) … … 282 283 STUB(FFC65D14) 283 284 STUB(FFC66248) 285 STUB(FFC6FC5C) 286 STUB(FFC6FF10) 287 STUB(FFC70458) 288 STUB(FFC704E0) 289 STUB(FFC70760) 290 STUB(FFC70CDC) 291 STUB(FFC83B1C) 292 STUB(FFC8CBE0) 293 STUB(FFC8CCEC) 294 STUB(FFC8CD44) 295 STUB(FFC8CD9C) 296 STUB(FFC8CDF4) 297 STUB(FFC8CE4C) 298 STUB(FFC8CF8C) 299 STUB(FFC8D044) 300 STUB(FFC8D2D4) 301 STUB(FFC8D4D8) 302 STUB(FFC8D740) 303 STUB(FFC8D934) 304 STUB(FFC8DB9C) 305 STUB(FFC8DCD8) 306 STUB(FFC8DF4C) 307 STUB(FFC8E174) 308 STUB(FFC8E464) 309 STUB(FFC8E568) 310 STUB(FFC8E7A0) 311 STUB(FFC8E918) 312 STUB(FFC8EAB0) 313 STUB(FFC8EBE8) 314 STUB(FFC8EE30) 315 STUB(FFC8FDB4) 316 STUB(FFC90008) 317 STUB(FFC90068) 318 STUB(FFC9131C) 319 STUB(FFC9134C) 320 STUB(FFC91390) 321 STUB(FFC91510) 322 STUB(FFC915BC) 323 STUB(FFC9165C) 324 STUB(FFC916F4) 284 325 STUB(FFC94698) 285 326 STUB(FFCA1258) 327 STUB(FFCA25DC) 286 328 STUB(FFCC7D84) 287 329 STUB(FFCC7E48) … … 292 334 STUB(FFCE9634) 293 335 STUB(FFCF8D9C) 336 STUB(FFD02FE0) 337 STUB(FFD03134) 338 STUB(FFD03268) 294 339 STUB(FFD06BDC) 295 340 STUB(FFD07C28) … … 377 422 STUB(FFD66E5C) 378 423 STUB(FFD66ECC) 424 STUB(FFD68398) 425 STUB(FFE4E008) 379 426 STUB(FFE4E264) 380 427 STUB(FFE4FB14) -
branches/release-1_0/platform/a470/sub/100e/stubs_entry.S
r1611 r1625 30 30 //DEF(physw_run ,0x00001bf0) // Found @0xffc118a8, stubs_min = 0x00001bf0 (0x1BF0) 31 31 //DEF(levent_table ,0xffe72ec8) // Found @0xffe72ec8, stubs_min = 0xffe72ec8 (0xFFE72EC8) 32 //DEF(FlashParamsTable ,0xffe8fc68) // Found @0xffe8fc68, ** != ** stubs_min = 0xffe961cc (0xFFE961CC)32 //DEF(FlashParamsTable ,0xffe8fc68) // Found @0xffe8fc68, stubs_min = 0xffe8fc68 (0xffe8fc68) 33 33 //DEF(movie_status ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 34 34 //DEF(canon_menu_active ,0x00009014) // Found @0xffd1eec4, stubs_min = 0x00009014 (0x9014) -
branches/release-1_0/platform/a470/sub/100e/stubs_min.S
r826 r1625 3 3 DEF(physw_status, 0x1007C) //Found for A470 (GPIOStatus) 4 4 DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 5 DEF(FlashParamsTable, 0x FFE961CC) // via GetReservedClusters_Fut_95 DEF(FlashParamsTable, 0xffe8fc68) // 100e ok 6 6 DEF(zoom_busy, 0x8050) //0x803c+14 same as in a590 7 7 DEF(focus_busy, 0x82B0) // 0x82A8+0x08 found in sub_FFD02310 -
branches/release-1_0/platform/a470/sub/101b/boot.c
r775 r1625 14 14 15 15 void boot(); 16 17 void 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 } 16 21 17 22 //All strings changed, now to change subroutines … … 40 45 for(i=0;i<canon_bss_len/4;i++) 41 46 canon_bss_start[i]=0; 47 48 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 49 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 42 50 43 51 /* asm volatile ( -
branches/release-1_0/platform/a470/sub/101b/capt_seq.c
r739 r1625 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x8888; //in sub_ffd0cae8 6 6 7 7 #include "../../../generic/capt_seq.c" … … 67 67 "LDR R0, [SP]\n" //+ 68 68 "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.c72 69 73 70 "CMP R1, #0x19\n" … … 279 276 ); 280 277 } //#fe 278 279 280 void __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 727 void __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 820 void __attribute__((naked,noinline)) sub_FFC6FC5C_my() 821 { 822 asm volatile ( 823 " STMFD SP!, {R4-R6,LR}\n" 824 " LDR R5, =0x5FAC\n" 825 " MOV R4, R0\n" 826 " LDR R0, [R5,#4]\n" 827 " CMP R0, #1\n" 828 " LDRNE R1, =0x16D\n" 829 " LDRNE R0, =0xFFC6F9F4\n" 830 " BLNE sub_FFC0BDB8\n" 831 " CMN R4, #0xC00\n" 832 " LDREQSH R4, [R5,#2]\n" 833 " CMN R4, #0xC00\n" 834 " LDREQ R1, =0x173\n" 835 " LDREQ R0, =0xFFC6F9F4\n" 836 " STRH R4, [R5,#2]\n" 837 " BLEQ sub_FFC0BDB8\n" 838 " MOV R0, R4\n" 839 //" BL sub_FFD68398\n" //- 840 " BL apex2us\n" //+ 841 " MOV R4, R0\n" 842 //" BL nullsub\n" 843 //" MOV R0, R4\n" 844 " BL sub_FFCA25DC\n" 845 " TST R0, #1\n" 846 " LDMNEFD SP!, {R4-R6,LR}\n" 847 " MOVNE R1, #0x178\n" 848 " LDRNE R0, =0xFFC6F9F4\n" 849 " BNE sub_FFC0BDB8\n" 850 " LDMFD SP!, {R4-R6,PC}\n" 851 ); 852 } -
branches/release-1_0/platform/a470/sub/101b/stubs_auto.S
r739 r1625 49 49 STUB(FFC16FB8) 50 50 STUB(FFC17054) 51 STUB(FFC172F0) 51 52 STUB(FFC173B8) 52 53 STUB(FFC173EC) … … 282 283 STUB(FFC65D14) 283 284 STUB(FFC66248) 285 STUB(FFC6FC5C) 286 STUB(FFC6FF10) 287 STUB(FFC70458) 288 STUB(FFC704E0) 289 STUB(FFC70760) 290 STUB(FFC70CDC) 291 STUB(FFC83B1C) 292 STUB(FFC8CBE0) 293 STUB(FFC8CCEC) 294 STUB(FFC8CD44) 295 STUB(FFC8CD9C) 296 STUB(FFC8CDF4) 297 STUB(FFC8CE4C) 298 STUB(FFC8CF8C) 299 STUB(FFC8D044) 300 STUB(FFC8D2D4) 301 STUB(FFC8D4D8) 302 STUB(FFC8D740) 303 STUB(FFC8D934) 304 STUB(FFC8DB9C) 305 STUB(FFC8DCD8) 306 STUB(FFC8DF4C) 307 STUB(FFC8E174) 308 STUB(FFC8E464) 309 STUB(FFC8E568) 310 STUB(FFC8E7A0) 311 STUB(FFC8E918) 312 STUB(FFC8EAB0) 313 STUB(FFC8EBE8) 314 STUB(FFC8EE30) 315 STUB(FFC8FDB4) 316 STUB(FFC90008) 317 STUB(FFC90068) 318 STUB(FFC9131C) 319 STUB(FFC9134C) 320 STUB(FFC91390) 321 STUB(FFC91510) 322 STUB(FFC915BC) 323 STUB(FFC9165C) 324 STUB(FFC916F4) 284 325 STUB(FFC94698) 285 326 STUB(FFCA1258) 327 STUB(FFCA25DC) 286 328 STUB(FFCC7D84) 287 329 STUB(FFCC7E48) … … 292 334 STUB(FFCE9634) 293 335 STUB(FFCF8D9C) 336 STUB(FFD02FE0) 337 STUB(FFD03134) 338 STUB(FFD03268) 294 339 STUB(FFD06BDC) 295 340 STUB(FFD07C28) … … 377 422 STUB(FFD66E5C) 378 423 STUB(FFD66ECC) 424 STUB(FFD68398) 425 STUB(FFE4E004) 379 426 STUB(FFE4E260) 380 427 STUB(FFE4FB10) -
branches/release-1_0/platform/a470/sub/101b/stubs_entry.S
r1611 r1625 30 30 //DEF(physw_run ,0x00001bf0) // Found @0xffc118a8, stubs_min = 0x00001bf0 (0x1BF0) 31 31 //DEF(levent_table ,0xffe72ec4) // Found @0xffe72ec4, stubs_min = 0xffe72ec4 (0xFFE72EC4) 32 //DEF(FlashParamsTable ,0xffe8fc64) // Found @0xffe8fc64, ** != ** stubs_min = 0xffe961cc (0xFFE961CC)32 //DEF(FlashParamsTable ,0xffe8fc64) // Found @0xffe8fc64, stubs_min = 0xffe8fc64 (0xffe8fc64) 33 33 //DEF(movie_status ,0x000051d8) // Found @0xffc45174, ** != ** stubs_min = 0x00005200 (0x5200) 34 34 //DEF(canon_menu_active ,0x00009014) // Found @0xffd1eec4, stubs_min = 0x00009014 (0x9014) -
branches/release-1_0/platform/a470/sub/101b/stubs_min.S
r826 r1625 3 3 DEF(physw_status, 0x1007C) //Found for A470 (GPIOStatus) 4 4 DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 5 DEF(FlashParamsTable, 0x FFE961CC) // via GetReservedClusters_Fut_95 DEF(FlashParamsTable, 0xffe8fc64) // 101b ok 6 6 DEF(zoom_busy, 0x8050) //0x803c+14 same as in a590 7 7 DEF(focus_busy, 0x82B0) // 0x82A8+0x08 found in sub_FFD02310 -
branches/release-1_0/platform/a470/sub/102c/boot.c
r775 r1625 14 14 15 15 void boot(); 16 17 void 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 } 16 21 17 22 //All strings changed, now to change subroutines … … 40 45 for(i=0;i<canon_bss_len/4;i++) 41 46 canon_bss_start[i]=0; 47 48 *(int*)0x1930=(int)taskCreateHook; //from ixus80 port 49 *(int*)0x1934=(int)taskCreateHook; //from ixus80 port (was taskCreateHook2...) 42 50 43 51 /* asm volatile ( -
branches/release-1_0/platform/a470/sub/102c/capt_seq.c
r739 r1625 3 3 #include "core.h" 4 4 5 static long *nrflag = (long*)0x 9F90;5 static long *nrflag = (long*)0x88d8; //found in sub_ffd0d528 6 6 7 7 #include "../../../generic/capt_seq.c" … … 69 69 "LDR R1, [R0]\n" 70 70 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.c73 74 71 "CMP R1, #0x19\n" 75 72 "ADDLS PC, PC, R1,LSL#2\n" … … 255 252 ); 256 253 } //#fe 254 255 256 void __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 703 void __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 796 void __attribute__((naked,noinline)) sub_FFC70178_my() 797 { 798 asm volatile ( 799 " STMFD SP!, {R4-R6,LR}\n" 800 " LDR R5, =0x5FD4\n" 801 " MOV R4, R0\n" 802 " LDR R0, [R5,#4]\n" 803 " CMP R0, #1\n" 804 " LDRNE R1, =0x16D\n" 805 " LDRNE R0, =0xffc6ff10\n" // "Shutter.c" 806 " BLNE sub_FFC0BDB8\n" 807 " CMN R4, #0xC00\n" 808 " LDREQSH R4, [R5,#2]\n" 809 " CMN R4, #0xC00\n" 810 " LDREQ R1, =0x173\n" 811 " LDREQ R0, =0xffc6ff10\n" // "Shutter.c" 812 " STRH R4, [R5,#2]\n" 813 " BLEQ sub_FFC0BDB8\n" 814 " MOV R0, R4\n" 815 //" BL sub_FFD68DD8\n" //- 816 " BL apex2us\n" //+ 817 " MOV R4, R0\n" 818 //" BL nullsub\n" //- 819 //" MOV R0, R4\n" //- 820 " BL sub_FFCA2AF8\n" 821 " TST R0, #1\n" 822 " LDMNEFD SP!, {R4-R6,LR}\n" 823 " MOVNE R1, #0x178\n" 824 " LDRNE R0, =0xffc6ff10\n" // "Shutter.c" 825 " BNE sub_FFC0BDB8\n" 826 " LDMFD SP!, {R4-R6,PC}\n" 827 ); 828 } -
branches/release-1_0/platform/a470/sub/102c/stubs_auto.S
r739 r1625 49 49 STUB(FFC16FB8) 50 50 STUB(FFC17054) 51 STUB(FFC172F0) 51 52 STUB(FFC173B8) 52 53 STUB(FFC173EC) … … 282 283 STUB(FFC66230) 283 284 STUB(FFC66764) 285 STUB(FFC70178) 286 STUB(FFC7042C) 287 STUB(FFC70974) 288 STUB(FFC709FC) 289 STUB(FFC70C7C) 290 STUB(FFC711F8) 291 STUB(FFC84038) 292 STUB(FFC8D0FC) 293 STUB(FFC8D208) 294 STUB(FFC8D260) 295 STUB(FFC8D2B8) 296 STUB(FFC8D310) 297 STUB(FFC8D368) 298 STUB(FFC8D4A8) 299 STUB(FFC8D560) 300 STUB(FFC8D7F0) 301 STUB(FFC8D9F4) 302 STUB(FFC8DC5C) 303 STUB(FFC8DE50) 304 STUB(FFC8E0B8) 305 STUB(FFC8E1F4) 306 STUB(FFC8E468) 307 STUB(FFC8E690) 308 STUB(FFC8E980) 309 STUB(FFC8EA84) 310 STUB(FFC8ECBC) 311 STUB(FFC8EE34) 312 STUB(FFC8EFCC) 313 STUB(FFC8F104) 314 STUB(FFC8F34C) 315 STUB(FFC902D0) 316 STUB(FFC90524) 317 STUB(FFC90584) 318 STUB(FFC91838) 319 STUB(FFC91868) 320 STUB(FFC918AC) 321 STUB(FFC91A2C) 322 STUB(FFC91AD8) 323 STUB(FFC91B78) 324 STUB(FFC91C10) 284 325 STUB(FFC94BB4) 285 326 STUB(FFCA1774) 327 STUB(FFCA2AF8) 286 328 STUB(FFCC87C4) 287 329 STUB(FFCC8888) … … 292 334 STUB(FFCEA074) 293 335 STUB(FFCF97DC) 336 STUB(FFD03A20) 337 STUB(FFD03B74) 338 STUB(FFD03CA8) 294 339 STUB(FFD0761C) 295 340 STUB(FFD08668) … … 377 422 STUB(FFD6789C) 378 423 STUB(FFD6790C) 424 STUB(FFD68DD8) 425 STUB(FFE4EA44) 379 426 STUB(FFE4ECA0) 380 427 STUB(FFE50550) -
branches/release-1_0/platform/a470/sub/102c/stubs_entry.S
r1611 r1625 30 30 //DEF(physw_run ,0x00001bf0) // Found @0xffc118a8, stubs_min = 0x00001bf0 (0x1BF0) 31 31 //DEF(levent_table ,0xffe73984) // Found @0xffe73984, stubs_min = 0xffe73984 (0xFFE73984) 32 //DEF(FlashParamsTable ,0xffe90724) // Found @0xffe90724, ** != ** stubs_min = 0xffe96c8c (0xFFE96C8C)32 //DEF(FlashParamsTable ,0xffe90724) // Found @0xffe90724, stubs_min = 0xffe90724 (0xffe90724) 33 33 //DEF(movie_status ,0x00005200) // Found @0xffc45690, stubs_min = 0x00005200 (0x5200) 34 34 //DEF(canon_menu_active ,0x00009064) // Found @0xffd1f904, stubs_min = 0x00009064 (0x9064) 35 //DEF(canon_shoot_menu_active ,0x00009831) // Found @0xffd380c4, ** != ** stubs_min = 0x00009768 (0x9768)35 //DEF(canon_shoot_menu_active ,0x00009831) // Found @0xffd380c4, stubs_min = 0x00009831 (0x9831) 36 36 //DEF(playrec_mode ,0x00005370) // Found @0xffc4bc7c, stubs_min = 0x00005370 (0x536C+4) 37 //DEF(zoom_status ,0x0000d070) // Found @0xffde9384, ** != ** stubs_min = 0x0000d7c4 (0xD7C4)37 //DEF(zoom_status ,0x0000d070) // Found @0xffde9384, stubs_min = 0x0000d070 (0xD070) 38 38 //DEF(some_flag_for_af_scan ,0x0000cdec) // Found @0xffdd7de4, stubs_min = 0x0000cdec (0xCDEC) 39 //DEF(zoom_busy ,0x000083d4) // Found @0xffd0677c, ** != ** stubs_min = 0x00008050 (0x8050)39 //DEF(zoom_busy ,0x000083d4) // Found @0xffd0677c, stubs_min = 0x000083d4 (0x83d4) 40 40 //DEF(focus_busy ,0x000082e0) // Found @0xffd02310, stubs_min = 0x000082e0 (0x82E0) 41 //DEF(recreview_hold ,0x00005b64) // Found @0xffc64340, ** != ** stubs_min = 0x00009634 (0x9634)41 //DEF(recreview_hold ,0x00005b64) // Found @0xffc64340, stubs_min = 0x00005b64 (0x5b64) 42 42 43 43 // Values below go in 'lib.c': -
branches/release-1_0/platform/a470/sub/102c/stubs_min.S
r826 r1625 3 3 DEF(physw_status, 0x100BC) //Found for A470 (GPIOStatus) 4 4 DEF(physw_run, 0x1BF0) //Found for A470 in task_PhySw, same as A590 5 DEF(FlashParamsTable,0x FFE96C8C) // via GetReservedClusters_Fut_96 DEF(zoom_busy, 0x8 050) //0x803c+14 same as in a5905 DEF(FlashParamsTable,0xffe90724) 6 DEF(zoom_busy, 0x83d4) 7 7 DEF(focus_busy, 0x82E0) // 0x82D8+0x08 found in sub_FFD02310 8 8 9 9 DEF(canon_menu_active,0x9064) // 0x9060+4 10 DEF(canon_shoot_menu_active,0x9 768) // 0x9768+1 ??BAD10 DEF(canon_shoot_menu_active,0x9831) 11 11 12 DEF(recreview_hold, 0x 9634) // ?? found in GetAEIntegralServiceMode_612 DEF(recreview_hold, 0x5b64) 13 13 14 14 DEF(movie_status, 0x5200) // 0x51C8 + 0x38 15 15 DEF(some_flag_for_af_scan, 0xCDEC) 16 DEF(zoom_status, 0xD 7C4)16 DEF(zoom_status, 0xD070) 17 17 DEF(led_table, 0x22AC) //Found using LEDDrv.c 18 18 DEF(levent_table,0xFFE73984)
Note: See TracChangeset
for help on using the changeset viewer.