-Data base W595 R3EF001
-Portado W760 R3EF001


Código:
include "x.inc"
include "w760.lib.asm"

;W760 R3EF001 
;Cambia el softkey derecho en el Standby por "GoTo Shortcut".
;Elementos: Bandeja de entrada, reproductor de música, alarmas, calendario, perfiles, Bluetooth
;Añadido icono en los elementos de la lista (idea Madfish)
;Añadido estado de alarma (Tiempo: Hora.Minutos) en la 2ndLinea del elemento de alarma
;Añadido estado de fecha (Fecha-Mes-Año) en la 2ndLinea del elemento de calendario
;Añadido Perfil activo en la 2ndLinea del elemento de Perfiles
;Añadido estado de Bluetooth (On-Off) en la 2ndLinea de elemento de Bluetooth
;Mejora de código
;v 1.5
;(c) farid
;(r) mobilefree.ru
;(p) josthyn05

org 0x10E2BCE8 ; 10D90824
                 DCD aGoto_shortcut_
org 0x10E2C66C ; 10D911A8
                 DCD 0xC47
org 0x10E2BCD8 ; 10D90814
                 DCD 0x11C5FBE4 ; 11BBBEF8 
org 0x10E2C668 ; 10D911A4
                 DCD 0x26BB
org 0x11C285D8 ; 11B84794
                 DCD aGoto_shortcut_
                 DCD body+1
                 
org 0x12841DF0
body:
        PUSH    {LR}
        ADD    R4, R0,    0
        BL    loc_1279F098
        CMP    R0, 0
        BNE    loc_1279F096
        MOV    R1, 0
        ADD    R0, R1,    0
        BL    loc_1279F450
        POP    {PC}


loc_1279F096:                
        POP    {PC}


loc_1279F098:                
        LDR    R3, off_1279F09C
        BX    R3

off_1279F09C    dw 0x10E75B70+1 ; 10DDA6AC+1    


loc_1279F0A0:                
        PUSH    {R4,LR}
        MOV    R1, 0
        MOV    R3, 5
        LSL    R4, R0,    0
        LDR    R0, off_1279F0BC
        MOV    R2, 1
        PUSH    {R0,R1}
        LSL    R1, R4,    0
        MOV    R0, 0
        MVN    R0, R0
        BL    loc_1279F474
        POP    {R2-R4,PC}

        NOP

off_1279F0BC    dw aSwilib        
dword_1279F0C0    dw 0x4770


loc_1279F0C4:                
        PUSH    {R0-R2,R4-R7,LR}
        LDR    R5, [SP,0x20]
        LSL    R4, R3,    0
        MOV    R0, 0x20
        BL    loc_1279F0A0
        LSL    R6, R0,    0
        MOV    R2, 0x20
        MOV    R1, 0
        BL    loc_1279F484
        MOV    R1, 0
        LDR    R3, off_1279F164
        MOV    R0, 0
        MVN    R0, R0
        PUSH    {R0,R1}
        LDR    R1, off_1279F168
        MOV    R2, 0
        LSL    R0, R6,    0
        BL    loc_1279F48C
        MOV    R1, 0
        LSL    R0, R6,    0
        BL    loc_1279F49C
        LSL    R7, R0,    0
        STR    R7, [R6,0x18]
        LDR    R1, [SP,0xC]
        BL    loc_1279F4A4
        LDR    R1, [SP,8]
        LSL    R0, R7,    0
        BL    loc_1279F4AC
        LDR    R1, [SP,0x10]
        LSL    R0, R7,    0
        BL    loc_1279F4B4
        MOV    R1, 1
        LSL    R0, R7,    0
        BL    loc_1279F4BC
        MOV    R1, 2
        LSL    R0, R7,    0
        BL    loc_1279F4C4
        MOV    R1, 0
        LSL    R0, R7,    0
        BL    loc_1279F4CC
        MOV    R1, 3
        LSL    R0, R7,    0
        BL    loc_1279F4D4
        MOV    R1, 1
        LSL    R0, R7,    0
        BL    loc_1279F4DC
        LSL    R2, R4,    0
        MOVL    R1, 0xFC0
        LSL    R0, R7,    0
        BL    loc_1279F4E4
        LDR    R1, dword_1279F16C
        LSL    R2, R4,    0
        LSL    R0, R7,    0
        BL    loc_1279F4E4
        LDR    R1, dword_1279F170
        LSL    R2, R5,    0
        LSL    R0, R7,    0
        BL    loc_1279F4E4
        LSL    R0, R7,    0
        BL    loc_1279F4EC
        ADD    SP, SP,    0x14
        POP    {R4-R7,PC}

        NOP

off_1279F164    dw aGotoshortcut_b    
off_1279F168    dw dword_1279F0C0+1    
dword_1279F16C    dw 0xFAF        
dword_1279F170    dw 0xFC2        


loc_1279F174:
        PUSH    {LR}
        BL    loc_1279F4F4
        POP    {PC}


loc_1279F17C:
        PUSH    {R4,LR}
        LSL    R4, R0,    0
        LDR    R0, [R4,0x18]
        BL    loc_1279F4FC
        CMP    R0, 0
        BNE    loc_1279F18E
        LDR    R0, off_1279F1C4
        B    loc_1279F1B8


loc_1279F18E:                
        CMP    R0, 1
        BNE    loc_1279F19A
        MOV    R0, 0x5D
        BL    loc_1279F50C
        B    loc_1279F1BC


loc_1279F19A:                
        CMP    R0, 2
        BNE    loc_1279F1A2
        LDR    R0, off_1279F1C8
        B    loc_1279F1B8


loc_1279F1A2:                
        CMP    R0, 3
        BNE    loc_1279F1AA
        LDR    R0, off_1279F1CC
        B    loc_1279F1B8


loc_1279F1AA:                
        CMP    R0, 4
        BNE    loc_1279F1B2
        LDR    R0, off_1279F1D0
        B    loc_1279F1B8


loc_1279F1B2:                
        CMP    R0, 5
        BNE    loc_1279F1BC
        LDR    R0, off_1279F1D4

loc_1279F1B8:                
                    
        BL    loc_1279F504

loc_1279F1BC:                
                    
        LSL    R0, R4,    0
        BL    loc_1279F4F4
        POP    {R4,PC}

off_1279F1C4    dw 0x11C26F44 ; 11B83100    
off_1279F1C8    dw 0x11BC5C20 ; 11B1E998    
off_1279F1CC    dw 0x11C26CF4 ; 11B82EB0    
off_1279F1D0    dw 0x11C25534 ; 11B816F0    
off_1279F1D4    dw 0x11BE3BF8 ; 11B3C964    


loc_1279F1D8:                
        PUSH    {R4-R6,LR}
        SUB    SP, SP,    0x44
        MOV    R6, 0

loc_1279F1DE:                
        MOV    R4, SP
        LSL    R1, R6,    0
        ADD    R0, R4,    R6
        BL    loc_1279F514
        ADD    R5, SP,    0x30
        LSL    R1, R6,    0
        LSL    R0, R6,    2
        ADD    R0, R5,    R0
        BL    loc_1279F51C
        ADD    R6, R6,    1
        CMP    R6, 5
        BLT    loc_1279F1DE
        LDRB    R0, [R4]
        LDR    R6, off_1279F290
        CMP    R0, 1
        BNE    loc_1279F20E
        LDRB    R0, [R5,1]
        LSL    R2, R6,    0
        MOV    R1, 0x13
        PUSH    {R0}
        LDRB    R3, [R5]
        B    loc_1279F254


loc_1279F20E:                
        LDRB    R0, [R4,1]
        CMP    R0, 1
        BNE    loc_1279F220
        LDRB    R0, [R5,5]
        LSL    R2, R6,    0
        MOV    R1, 0x13
        PUSH    {R0}
        LDRB    R3, [R5,4]
        B    loc_1279F254


loc_1279F220:                
        LDRB    R0, [R4,2]
        CMP    R0, 1
        BNE    loc_1279F232
        LDRB    R0, [R5,9]
        LSL    R2, R6,    0
        MOV    R1, 0x13
        PUSH    {R0}
        LDRB    R3, [R5,8]
        B    loc_1279F254


loc_1279F232:                
        LDRB    R0, [R4,3]
        CMP    R0, 1
        BNE    loc_1279F244
        LDRB    R0, [R5,0xD]
        LSL    R2, R6,    0
        MOV    R1, 0x13
        PUSH    {R0}
        LDRB    R3, [R5,0xC]
        B    loc_1279F254


loc_1279F244:                
        LDRB    R0, [R4,4]
        CMP    R0, 1
        BNE    loc_1279F25C
        LDRB    R0, [R5,0x11]
        LSL    R2, R6,    0
        MOV    R1, 0x13
        PUSH    {R0}
        LDRB    R3, [R5,0x10]

loc_1279F254:                
                    
        ADD    R0, SP,    0xC
        BL    loc_1279F524
        ADD    SP, SP,    4

loc_1279F25C:                
        LDRB    R0, [R4]
        LDR    R2, dword_1279F44C
        CMP    R0, 1
        BEQ    loc_1279F284
        LDRB    R0, [R4,1]
        CMP    R0, 1
        BEQ    loc_1279F284
        LDRB    R0, [R4,2]
        CMP    R0, 1
        BEQ    loc_1279F284
        LDRB    R0, [R4,3]
        CMP    R0, 1
        BEQ    loc_1279F284
        LDRB    R0, [R4,4]
        CMP    R0, 1
        BEQ    loc_1279F284
        MOV    R1, 0
        ADD    R6, 0x20
        LSL    R0, R6,    0
        B    loc_1279F288


loc_1279F284:                
                    
        MOV    R1, 0
        ADD    R0, SP,    8

loc_1279F288:                
        BL    loc_1279F534
        ADD    SP, SP,    0x44
        POP    {R4-R6,PC}

off_1279F290    dw aTime02d02d        


loc_1279F294:                
        PUSH    {LR}
        SUB    SP, SP,    0x108
        MOV    R1, SP
        MOV    R0, 0
        BL    loc_1279F53C
        MOV    R2, SP
        LDRH    R1, [R2]
        LDRB    R0, [R2,2]
        PUSH    {R0,R1}
        LDRB    R3, [R2,3]
        LDR    R2, off_1279F2C4
        ADD    R0, SP,    0x10
        MOV    R1, 0x7F
        BL    loc_1279F524
        LDR    R2, dword_1279F44C
        MOV    R1, 0
        ADD    R0, SP,    0x10
        BL    loc_1279F534
        ADD    SP, SP,    0x110
        POP    {PC}

        NOP

off_1279F2C4    dw a02d02d02d        


loc_1279F2C8:                
        PUSH    {R4,LR}
        SUB    SP, SP,    0xA0
        ADD    R0, SP,    0x84
        LDR    R4, off_1279F304
        MOV    R2, 0x1C

loc_1279F2D2:                
        SUB    R2, R2,    4
        LDR    R1, [R4,R2]
        STR    R1, [R0,R2]
        BNE    loc_1279F2D2
        MOV    R1, SP
        MOV    R0, 0
        BL    loc_1279F544
        LDR    R0, [SP]
        ADD    R1, SP,    0x84
        LSL    R0, R0,    2
        LDR    R3, [R1,R0]
        ADD    R4, 0x1C
        LSL    R2, R4,    0
        MOV    R1, 0x3F
        ADD    R0, SP,    4
        BL    loc_1279F524
        LDR    R2, dword_1279F44C
        MOV    R1, 0
        ADD    R0, SP,    4
        BL    loc_1279F534
        ADD    SP, SP,    0xA0
        POP    {R4,PC}

off_1279F304    dw off_1279F630    


loc_1279F308:                
        LDR    R0, off_1279F318
        PUSH    {LR}
        BL    loc_1279F54C
        CMP    R0, 0
        BEQ    loc_1279F316
        MOV    R0, 1

loc_1279F316:                
        POP    {PC}

off_1279F318    dw IsAudioPlayerBook+1    


loc_1279F31C:
        PUSH    {R4-R6,LR}
        LSL    R4, R0,    0
        BL    loc_1279F554
        LSL    R0, R4,    0
        BL    loc_1279F55C
        CMP    R0, 1
        BNE    loc_1279F412
        LDR    R5, off_1279F41C
        LDR    R6, dword_1279F44C
        LSL    R0, R4,    0
        BL    loc_1279F564
        CMP    R0, 5
        BHI    loc_1279F412
        adr    R1, loc_1279F344
        LDRB    R1, [R1,R0]
        ADD    PC, R1

        NOP

loc_1279F344:                
        SUB    R6, R0,    0
        STR    R2, [R1,0x24]
        STR    R2, [SP,0x1E8]
        LDR    R2, dword_1279F420
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F424
        LSL    R0, R4,    0
        BL    loc_1279F574
        LSL    R2, R6,    0
        MOV    R1, 0
        B    loc_1279F404

        LDR    R2, dword_1279F428
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F418
        ADD    R1, R1,    0
        LSL    R0, R4,    0
        BL    loc_1279F574
        BL    loc_1279F308
        CMP    R0, 1
        BNE    loc_1279F386
        LSL    R2, R6,    0
        MOV    R1, 0
        ADD    R5, 0x14
        B    loc_1279F404


loc_1279F386:                
        LSL    R2, R6,    0
        MOV    R1, 0
        ADD    R5, 0x38
        B    loc_1279F404

        LDR    R2, dword_1279F42C
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F430
        LSL    R0, R4,    0
        BL    loc_1279F574
        BL    loc_1279F1D8
        B    loc_1279F40A

        LDR    R2, dword_1279F434
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F438
        LSL    R0, R4,    0
        BL    loc_1279F574
        BL    loc_1279F294
        B    loc_1279F40A

        LDR    R2, dword_1279F43C
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F440
        LSL    R0, R4,    0
        BL    loc_1279F574
        BL    loc_1279F2C8
        B    loc_1279F40A

        LDR    R2, dword_1279F444
        MOV    R1, 0
        LSL    R0, R4,    0
        BL    loc_1279F56C
        LDR    R1, dword_1279F448
        LSL    R0, R4,    0
        BL    loc_1279F574
        BL    loc_1279F584
        CMP    R0, 0
        BNE    loc_1279F3FE
        LSL    R2, R6,    0
        MOV    R1, 0
        ADD    R5, 0x64
        LSL    R0, R5,    0
        BL    loc_1279F534
        B    loc_1279F40A


loc_1279F3FE:                
        LSL    R2, R6,    0
        MOV    R1, 0
        ADD    R5, 0x7C

loc_1279F404:                
                    
        LSL    R0, R5,    0
        BL    loc_1279F534

loc_1279F40A:                
                    
        LSL    R1, R0,    0
        LSL    R0, R4,    0
        BL    loc_1279F57C

loc_1279F412:                
                    
        MOV    R0, 1
        POP    {R4-R6,PC}

        NOP

dword_1279F418    dw 0x6C2        
off_1279F41C    dw aViewSms        
dword_1279F420    dw 0xEB15        
dword_1279F424    dw 0x1384        
dword_1279F428    dw 0xEBB7        
dword_1279F42C    dw 0xF43C        
dword_1279F430    dw 0x1408        
dword_1279F434    dw 0xF886        
dword_1279F438    dw 0x1301        
dword_1279F43C    dw 0xF398        
dword_1279F440    dw 0x13BE        
dword_1279F444    dw 0xF3B3        
dword_1279F448    dw 0x12FB        
dword_1279F44C    dw 0xFFFF        
                    


loc_1279F450:                
        LDR    R0, off_1279F464
        LDR    R3, off_1279F468
        LDR    R2, off_1279F46C
        LDR    R1, dword_1279F470
        PUSH    {LR}
        PUSH    {R0}
        MOV    R0, 6
        BL    loc_1279F0C4
        POP    {R3,PC}

off_1279F464    dw loc_1279F17C+1    
off_1279F468    dw loc_1279F174+1    
off_1279F46C    dw loc_1279F31C+1    
dword_1279F470    dw 0xC47        


loc_1279F474:                
        PUSH    {R3}
        LDR    R3, off_1279F480
        MOV    R12, R3
        POP    {R3}
        BX    R12

        NOP

off_1279F480    dw 0x10B4F360+1 ; 10AB084C+1    


loc_1279F484:                
        LDR    R3, dword_1279F488
        BX    R3

dword_1279F488    dw memset        


loc_1279F48C:                
        PUSH    {R3}
        LDR    R3, off_1279F498
        MOV    R12, R3
        POP    {R3}
        BX    R12        

        NOP

off_1279F498    dw CreateBook+1    


loc_1279F49C:                
        LDR    R3, off_1279F4A0
        BX    R3        

off_1279F4A0    dw CreateListMenu+1    


loc_1279F4A4:                
        LDR    R3, off_1279F4A8
        BX    R3

off_1279F4A8    dw GUIObject_SetTitleText+1 


loc_1279F4AC:                
        LDR    R3, off_1279F4B0
        BX    R3

off_1279F4B0    dw ListMenu_SetItemCount+1 


loc_1279F4B4:                
        LDR    R3, off_1279F4B8
        BX    R3

off_1279F4B8    dw ListMenu_SetOnMessage+1 


loc_1279F4BC:                
        LDR    R3, off_1279F4C0
        BX    R3        

off_1279F4C0    dw ListMenu_SetHotkeyMode+1 


loc_1279F4C4:                
        LDR    R3, off_1279F4C8
        BX    R3        

off_1279F4C8    dw GUIObject_SetStyle+1 


loc_1279F4CC:                
        LDR    R3, off_1279F4D0
        BX    R3

off_1279F4D0    dw ListMenu_SetCursorToItem+1 


loc_1279F4D4:                
        LDR    R3, off_1279F4D8
        BX    R3        

off_1279F4D8    dw ListMenu_SetItemStyle+1 


loc_1279F4DC:                
        LDR    R3, off_1279F4E0
        BX    R3        

off_1279F4E0    dw ListMenu_SetItemTextScroll+1 


loc_1279F4E4:                
                    
        LDR    R3, off_1279F4E8
        BX    R3        

off_1279F4E8    dw GUIObject_SoftKeys_SetAction+1 


loc_1279F4EC:                
        LDR    R3, off_1279F4F0
        BX    R3        

off_1279F4F0    dw GUIObject_Show+1    


loc_1279F4F4:                
                    
        LDR    R3, off_1279F4F8
        BX    R3        

off_1279F4F8    dw FreeBook+1        


loc_1279F4FC:                
        LDR    R3, off_1279F500
        BX    R3

off_1279F500    dw ListMenu_GetSelectedItem+1 


loc_1279F504:                
        LDR    R3, off_1279F508
        BX    R3        

off_1279F508    dw Shortcut_Run+1    


loc_1279F50C:                
        LDR    R3, off_1279F510
        BX    R3        

off_1279F510    dw UI_Event+1        


loc_1279F514:                
        LDR    R3, off_1279F518
        BX    R3        

off_1279F518    dw Alarm_GetState+1    


loc_1279F51C:                
        LDR    R3, off_1279F520
        BX    R3        

off_1279F520    dw Alarm_GetTIME+1    


loc_1279F524:                
                    
        PUSH    {R3}
        LDR    R3, off_1279F530
        MOV    R12, R3
        POP    {R3}
        BX    R12        

        NOP

off_1279F530    dw snwprintf+1        


loc_1279F534:                
                    
        LDR    R3, off_1279F538
        BX    R3

off_1279F538    dw Str2ID+1    


loc_1279F53C:                
        LDR    R3, off_1279F540
        BX    R3        

off_1279F540    dw REQUEST_DATEANDTIME_GET+1 


loc_1279F544:                
        LDR    R3, off_1279F548
        BX    R3        

off_1279F548    dw REQUEST_PROFILE_GETACTIVEPROFILE+1 


loc_1279F54C:                
        LDR    R3, off_1279F550
        BX    R3        

off_1279F550    dw FindBook+1        


loc_1279F554:                
        LDR    R3, off_1279F558
        BX    R3        

off_1279F558    dw GUIonMessage_GetBook+1 


loc_1279F55C:                
        LDR    R3, off_1279F560
        BX    R3        

off_1279F560    dw GUIonMessage_GetMsg+1 


loc_1279F564:                
        LDR    R3, off_1279F568
        BX    R3        

off_1279F568    dw GUIonMessage_GetCreatedItemIndex+1 


loc_1279F56C:                
                    
        LDR    R3, off_1279F570
        BX    R3        

off_1279F570    dw GUIonMessage_SetMenuItemIcon+1 


loc_1279F574:                
                    
        LDR    R3, off_1279F578
        BX    R3        

off_1279F578    dw GUIonMessage_SetMenuItemText+1 


loc_1279F57C:                
        LDR    R3, off_1279F580
        BX    R3        

off_1279F580    dw GUIonMessage_SetMenuItemSecondLineText+1 


loc_1279F584:                
        LDR    R3, off_1279F588
        BX    R3        

off_1279F588    dw Bluetooth_GetState+1 
aSwilib        db "SwiLib",0
        db    0
aGotoshortcut_b    db "GotoShortcut_Book",0
        db    0
        db    0
aTime02d02d    du    "Time: %02d:%02d",0
aOff        du    "Off",0
a02d02d02d    du    "%02d-%02d-%02d",0
        db    0
        db    0
aNormal        db "Normal",0
        db    0
aMeeting    db "Meeting",0
aInCar        db "In Car",0
        db    0
aOutdoors    db "Outdoors",0
        db    0
        db    0
        db    0
aHandsfree    db "Handsfree",0
        db    0
        db    0
aHome        db "Home",0
        db    0
        db    0
        db    0
aOffice        db "Office",0
        db    0
off_1279F630    dw aNormal
        dw aMeeting
        dw aInCar
        dw aOutdoors
        dw aHandsfree
        dw aHome
        dw aOffice
        dw 0x730025
        dw 0        

aViewSms    du    "View SMS",0
        db    0
        db    0
aMusicIsPlaying    du    "Music is playing",0
        db    0
        db    0
aMusicIsNotPlay    du    "Music is not playing",0
        db    0
        db    0
aTurnOnBt    du    "Turn on BT",0
        db    0
        db    0
aTurnOffBt    du    "Turn off BT",0
aGoto_shortcut_    du    "Goto_Shortcut_Id",0