Código:
include "x.inc"
include "w715_r1ga030.lib.asm"
;W715 R1GA030 GEN
;Change Right Softkey in Standby to "GoTo Shortcut".
;Items: Inbox, Music player, Alarms, Calendar, Profiles, Bluetooth
;Added icon on Items list (idea by madfish)
;Added Alarm State(Time: Hour.Minutes) at 2ndLine of Alarm item
;Added Date state(Date-Mon-Year) at 2ndLine of Calendar item
;Added Active Profile at 2ndLine of Profiles item
;Added Bluetooth state(On-Off) at 2ndLine of Bluetooth item
;Improved code
;v 1.5
;(!) You must add new item to menu.ml (Goto_Shortcut_Id)
;(c) farid
;(r) mobilefree.ru
;(p,e) Antoniomun
;+ added icon in tiltle
;pAtChFiLe=/boot/phone_app.cxc
;--------hooks--------
org 0x15500E6C
dw aGoto_shortcut_ ; "Goto_Shortcut_Id"
org 0x1503D07C
dw 0x198E
org 0x15BA1328
dw aGoto_shortcut_ ; "Goto_Shortcut_Id"
dw loc_15DCD420+1
;-----------newcode-----------
org 0x15DCD420
loc_15DCD420:
PUSH {LR}
ADD R4, R0, 0
BL sub_15DCD438
CMP R0, 0
BNE locret_15DCD436
MOV R1, 0
ADD R0, R1, 0
BL sub_15DCD7FC
POP {PC}
locret_15DCD436:
POP {PC}
sub_15DCD438:
LDR R3, off_15DCD43C
BX R3
off_15DCD43C dw 0x143230C4+1
sub_15DCD440:
PUSH {R4,LR}
MOV R1, 0
MOV R3, 5
LSL R4, R0, 0
LDR R0, off_15DCD45C
MOV R2, 1
PUSH {R0,R1}
LSL R1, R4, 0
MOV R0, 0
MVN R0, R0
BL sub_15DCD820
POP {R2-R4,PC}
NOP
off_15DCD45C dw aSwilib
dword_15DCD460 dw 0x4770
sub_15DCD464:
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
arg_0 = 0
PUSH {R0-R2,R4-R7,LR}
LDR R5, [SP,0x20+arg_0]
LSL R4, R3, 0
MOV R0, 0x20
BL sub_15DCD440
LSL R6, R0, 0
MOV R2, 0x20
MOV R1, 0
BL _memset
MOV R1, 0
LDR R3, off_15DCD50C
MOV R0, 0
MVN R0, R0
PUSH {R0,R1}
LDR R1, off_15DCD510
MOV R2, 0
LSL R0, R6, 0
BL _CreateBook
MOV R1, 0
LSL R0, R6, 0
BL _CreateListMenu
LSL R7, R0, 0
STR R7, [R6,0x18]
LDR R1, [SP,0x28+var_1C]
BL _GUIObject_SetTitleText
LDR R1, dword_15dw7F4
LSL R0, R7, 0
BL _GUIObject_SetTitleIcon
LDR R1, [SP,0x28+var_20]
LSL R0, R7, 0
BL _ListMenu_SetItemCount
LDR R1, [SP,0x28+var_18]
LSL R0, R7, 0
BL _ListMenu_SetOnMessage
MOV R1, 1
LSL R0, R7, 0
BL _ListMenu_SetHotkeyMode
MOV R1, 2
LSL R0, R7, 0
BL _GUIObject_SetStyle
MOV R1, 0
LSL R0, R7, 0
BL _ListMenu_SetCursorToItem
MOV R1, 3
LSL R0, R7, 0
BL _ListMenu_SetItemStyle
MOV R1, 1
LSL R0, R7, 0
BL _ListMenu_SetItemTextScroll
LSL R2, R4, 0
MOVL R1, 0xFC0
LSL R0, R7, 0
BL _GUIObject_SoftKeys_SetAction
LDR R1, dword_15DCD514
LSL R2, R4, 0
LSL R0, R7, 0
BL _GUIObject_SoftKeys_SetAction
LDR R1, dword_15DCD518
LSL R2, R5, 0
LSL R0, R7, 0
BL _GUIObject_SoftKeys_SetAction
LSL R0, R7, 0
BL _GUIObject_Show
ADD SP, SP, 0x14
POP {R4-R7,PC}
NOP
off_15DCD50C dw aGotoshortcut_b ; "GotoShortcut_Book"
off_15DCD510 dw dword_15DCD460+1
dword_15DCD514 dw 0xFAF
dword_15DCD518 dw 0xFC2
loc_15DCD51C:
PUSH {LR}
BL _FreeBook
POP {PC}
loc_15DCD524:
PUSH {R4,LR}
LSL R4, R0, 0
LDR R0, [R4,0x18]
BL _ListMenu_GetSelectedItem
CMP R0, 0
BNE loc_15DCD536
LDR R0, off_15DCD56C
B loc_15DCD560
loc_15DCD536:
CMP R0, 1
BNE loc_15DCD542
MOV R0, 0x5D
BL _UI_Event
B loc_15DCD564
loc_15DCD542:
CMP R0, 2
BNE loc_15DCD54A
LDR R0, off_15DCD570
B loc_15DCD560
loc_15DCD54A:
CMP R0, 3
BNE loc_15DCD552
LDR R0, off_15DCD574
B loc_15DCD560
loc_15DCD552:
CMP R0, 4
BNE loc_15DCD55A
LDR R0, off_15DCD578
B loc_15DCD560
loc_15DCD55A:
CMP R0, 5
BNE loc_15DCD564
LDR R0, off_15DCD57C
loc_15DCD560:
BL _Shortcut_Run
loc_15DCD564:
LSL R0, R4, 0
BL _FreeBook
POP {R4,PC}
off_15DCD56C dw 0x15B9FC94 ;aMsg_messagesin ; "Msg_MessagesInbox"
off_15DCD570 dw 0x159F3F40 ;aMenuitem_sette ; "MenuItem_SetTemporaryAlarm"
off_15DCD574 dw 0x15A94CF8 ;aMenu_calendarm ; "Menu_CalendarMain"
off_15DCD578 dw 0x15A948CC ;aSelectprofile_ ; "SelectProfile_Id"
off_15DCD57C dw 0x15A15BAC ;aMenuitem_bt_ac ; "MenuItem_Bt_Activation"
sub_15DCD580:
var_54 = -0x54
var_4C = -0x4C
var_24 = -0x24
PUSH {R4-R6,LR}
SUB SP, SP, 0x44
MOV R6, 0
loc_15DCD586:
MOV R4, SP
LSL R1, R6, 0
ADD R0, R4, R6
BL _Alarm_GetState
ADD R5, SP, 0x54+var_24
LSL R1, R6, 0
LSL R0, R6, 2
ADD R0, R5, R0
BL _Alarm_GetTIME
ADD R6, R6, 1
CMP R6, 5
BLT loc_15DCD586
LDRB R0, [R4,0x54+var_54]
LDR R6, off_15DCD638
CMP R0, 1
BNE loc_15DCD5B6
LDRB R0, [R5,1]
LSL R2, R6, 0
MOV R1, 0x13
PUSH {R0}
LDRB R3, [R5]
B loc_15DCD5FC
loc_15DCD5B6:
LDRB R0, [R4,1]
CMP R0, 1
BNE loc_15DCD5C8
LDRB R0, [R5,5]
LSL R2, R6, 0
MOV R1, 0x13
PUSH {R0}
LDRB R3, [R5,4]
B loc_15DCD5FC
loc_15DCD5C8:
LDRB R0, [R4,2]
CMP R0, 1
BNE loc_15DCD5DA
LDRB R0, [R5,9]
LSL R2, R6, 0
MOV R1, 0x13
PUSH {R0}
LDRB R3, [R5,8]
B loc_15DCD5FC
loc_15DCD5DA:
LDRB R0, [R4,3]
CMP R0, 1
BNE loc_15DCD5EC
LDRB R0, [R5,0xD]
LSL R2, R6, 0
MOV R1, 0x13
PUSH {R0}
LDRB R3, [R5,0xC]
B loc_15DCD5FC
loc_15DCD5EC:
LDRB R0, [R4,4]
CMP R0, 1
BNE loc_15DCD604
LDRB R0, [R5,0x11]
LSL R2, R6, 0
MOV R1, 0x13
PUSH {R0}
LDRB R3, [R5,0x10]
loc_15DCD5FC:
ADD R0, SP, 0x58+var_4C
BL _snwprintf
ADD SP, SP, 4
loc_15DCD604:
LDRB R0, [R4]
LDR R2, dword_15DCD7F8
CMP R0, 1
BEQ loc_15DCD62C
LDRB R0, [R4,1]
CMP R0, 1
BEQ loc_15DCD62C
LDRB R0, [R4,2]
CMP R0, 1
BEQ loc_15DCD62C
LDRB R0, [R4,3]
CMP R0, 1
BEQ loc_15DCD62C
LDRB R0, [R4,4]
CMP R0, 1
BEQ loc_15DCD62C
MOV R1, 0
ADD R6, 0x20
LSL R0, R6, 0
B loc_15DCD630
loc_15DCD62C:
MOV R1, 0
ADD R0, SP, 0x54+var_4C
loc_15DCD630:
BL _Str2ID
ADD SP, SP, 0x44
POP {R4-R6,PC}
off_15DCD638 dw aTime02d02d ; "Time: %02d:%02d"
sub_15DCD63C:
var_112 = -0x112
var_10C = -0x10C
var_10A = -0x10A
var_104 = -0x104
PUSH {LR}
SUB SP, SP, 0x108
MOV R1, SP
MOV R0, 0
BL _REQUEST_DATEANDTIME_GET
MOV R2, SP
LDRH R1, [R2,0x10C+var_10C]
LDRB R0, [R2,0x10C+var_10A]
PUSH {R0,R1}
LDRB R3, [R2,3]
LDR R2, off_15DCD66C
ADD R0, SP, 0x114+var_104
MOV R1, 0x7F
BL _snwprintf
LDR R2, dword_15DCD7F8
MOV R1, 0
ADD R0, SP, 0x114+var_104
BL _Str2ID
ADD SP, SP, 0x110
POP {PC}
NOP
off_15DCD66C dw a02d02d02d ; "%02d-%02d-%02d"
sub_15DCD670:
var_A8 = -0xA8
var_A4 = -0xA4
var_24 = -0x24
PUSH {R4,LR}
SUB SP, SP, 0xA0
ADD R0, SP, 0xA8+var_24
LDR R4, off_15DCD6AC
MOV R2, 0x1C
loc_15DCD67A:
SUB R2, R2, 4
LDR R1, [R4,R2]
STR R1, [R0,R2]
BNE loc_15DCD67A
MOV R1, SP
MOV R0, 0
BL _REQUEST_PROFILE_GETACTIVEPROFILE
LDR R0, [SP,0xA8+var_A8]
ADD R1, SP, 0xA8+var_24
LSL R0, R0, 2
LDR R3, [R1,R0]
ADD R4, 0x1C
LSL R2, R4, 0
MOV R1, 0x3F
ADD R0, SP, 0xA8+var_A4
BL _snwprintf
LDR R2, dword_15DCD7F8
MOV R1, 0
ADD R0, SP, 0xA8+var_A4
BL _Str2ID
ADD SP, SP, 0xA0
POP {R4,PC}
off_15DCD6AC dw off_15DCD9E4
sub_15DCD6B0:
LDR R0, off_15DCD6C0
PUSH {LR}
BL _FindBook
CMP R0, 0
BEQ locret_15DCD6BE
MOV R0, 1
locret_15DCD6BE:
POP {PC}
off_15DCD6C0 dw IsAudioPlayerBook
loc_15DCD6C4:
PUSH {R4-R6,LR}
LSL R4, R0, 0
BL _GUIonMessage_GetBook
LSL R0, R4, 0
BL _GUIonMessage_GetMsg
CMP R0, 1
BNE loc_15DCD7BA
LDR R5, off_15DCD7C4
LDR R6, dword_15DCD7F8
LSL R0, R4, 0
BL _GUIonMessage_GetCreatedItemIndex
CMP R0, 5
BHI loc_15DCD7BA
adr R1, loc_15DCD6EC
LDRB R1, [R1,R0]
ADD PC, R1
NOP
loc_15DCD6EC:
SUB R6, R0, 0
STR R2, [R1,0x24]
STR R2, [SP,0x1E8]
LDR R2, dword_15DCD7C8
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7CC
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
LSL R2, R6, 0
MOV R1, 0
B loc_15DCD7AC
LDR R2, dword_15DCD7D0
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7C0
ADD R1, R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
BL sub_15DCD6B0
CMP R0, 1
BNE loc_15DCD72E
LSL R2, R6, 0
MOV R1, 0
ADD R5, 0x14
B loc_15DCD7AC
loc_15DCD72E:
LSL R2, R6, 0
MOV R1, 0
ADD R5, 0x38
B loc_15DCD7AC
LDR R2, dword_15DCD7D4
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7D8
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
BL sub_15DCD580
B loc_15DCD7B2
LDR R2, dword_15DCD7DC
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7E0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
BL sub_15DCD63C
B loc_15DCD7B2
LDR R2, dword_15DCD7E4
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7E8
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
BL sub_15DCD670
B loc_15DCD7B2
LDR R2, dword_15DCD7EC
MOV R1, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemIcon
LDR R1, dword_15DCD7F0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemText
BL _Bluetooth_GetState
CMP R0, 0
BNE loc_15DCD7A6
LSL R2, R6, 0
MOV R1, 0
ADD R5, 0x64
LSL R0, R5, 0
BL _Str2ID
B loc_15DCD7B2
loc_15DCD7A6:
LSL R2, R6, 0
MOV R1, 0
ADD R5, 0x7C
loc_15DCD7AC:
LSL R0, R5, 0
BL _Str2ID
loc_15DCD7B2:
LSL R1, R0, 0
LSL R0, R4, 0
BL _GUIonMessage_SetMenuItemSecondLineText
loc_15DCD7BA:
MOV R0, 1
POP {R4-R6,PC}
NOP
dword_15DCD7C0 dw 0x1249
off_15DCD7C4 dw aViewSms ; "View SMS"
dword_15DCD7C8 dw 0x6E1
dword_15DCD7CC dw 0x11BB
dword_15DCD7D0 dw 0x80E
dword_15DCD7D4 dw 0x7F9
dword_15DCD7D8 dw 0x1237
dword_15DCD7DC dw 0x7FE
dword_15DCD7E0 dw 0x113B
dword_15DCD7E4 dw 0x7DD
dword_15DCD7E8 dw 0x11F1
dword_15DCD7EC dw 0x7FC
dword_15DCD7F0 dw 0x1977
dword_15dw7F4 dw 0x83C
dword_15DCD7F8 dw 0xFFFF
sub_15DCD7FC:
LDR R0, off_15DCD810
LDR R3, off_15DCD814
LDR R2, off_15DCD818
LDR R1, dword_15DCD81C
PUSH {LR}
PUSH {R0}
MOV R0, 6
BL sub_15DCD464
POP {R3,PC}
off_15DCD810 dw loc_15DCD524+1
off_15DCD814 dw loc_15DCD51C+1
off_15DCD818 dw loc_15DCD6C4+1
dword_15DCD81C dw 0xC47
sub_15DCD820:
PUSH {R3}
LDR R3, off_15DCD82C
MOV R12, R3
POP {R3}
BX R12
NOP
off_15DCD82C dw 0x154DE130+1
_memset:
LDR R3, dword_memset
BX R3
dword_memset dw memset ;0x10839C30
_CreateBook:
PUSH {R3}
LDR R3, off_CreateBook
MOV R12, R3
POP {R3}
BX R12
NOP
off_CreateBook dw CreateBook
_CreateListMenu:
LDR R3, off_CreateListMenu
BX R3
off_CreateListMenu dw CreateListMenu
_GUIObject_SetTitleText:
LDR R3, off_GUIObject_SetTitleText
BX R3
off_GUIObject_SetTitleText dw GUIObject_SetTitleText
_ListMenu_SetItemCount:
LDR R3, off_ListMenu_SetItemCount
BX R3
off_ListMenu_SetItemCount dw ListMenu_SetItemCount
_ListMenu_SetOnMessage:
LDR R3, off_ListMenu_SetOnMessage
BX R3
off_ListMenu_SetOnMessage dw ListMenu_SetOnMessage
_ListMenu_SetHotkeyMode:
LDR R3, off_ListMenu_SetHotkeyMode
BX R3
off_ListMenu_SetHotkeyMode dw ListMenu_SetHotkeyMode
_GUIObject_SetStyle:
LDR R3, off_GUIObject_SetStyle
BX R3
off_GUIObject_SetStyle dw GUIObject_SetStyle
_ListMenu_SetCursorToItem:
LDR R3, off_ListMenu_SetCursorToItem
BX R3
off_ListMenu_SetCursorToItem dw ListMenu_SetCursorToItem
_ListMenu_SetItemStyle:
LDR R3, off_ListMenu_SetItemStyle
BX R3
off_ListMenu_SetItemStyle dw ListMenu_SetItemStyle
_ListMenu_SetItemTextScroll:
LDR R3, off_ListMenu_SetItemTextScroll
BX R3
off_ListMenu_SetItemTextScroll dw ListMenu_SetItemTextScroll
_GUIObject_SoftKeys_SetAction:
LDR R3, off_GUIObject_SoftKeys_SetAction
BX R3
off_GUIObject_SoftKeys_SetAction dw GUIObject_SoftKeys_SetAction
_GUIObject_Show:
LDR R3, off_GUIObject_Show
BX R3
off_GUIObject_Show dw GUIObject_Show
_FreeBook:
LDR R3, off_FreeBook
BX R3
off_FreeBook dw FreeBook
_ListMenu_GetSelectedItem:
LDR R3, off_ListMenu_GetSelectedItem
BX R3
off_ListMenu_GetSelectedItem dw ListMenu_GetSelectedItem
_Shortcut_Run:
LDR R3, off_Shortcut_Run
BX R3
off_Shortcut_Run dw Shortcut_Run
_UI_Event:
LDR R3, off_UI_Event
BX R3
off_UI_Event dw UI_Event
_Alarm_GetState:
LDR R3, off_Alarm_GetState
BX R3
off_Alarm_GetState dw Alarm_GetState
_Alarm_GetTIME:
LDR R3, off_Alarm_GetTIME
BX R3
off_Alarm_GetTIME dw Alarm_GetTIME
_snwprintf:
PUSH {R3}
LDR R3, off_snwprintf
MOV R12, R3
POP {R3}
BX R12
NOP
off_snwprintf dw snwprintf
_Str2ID:
LDR R3, off_Str2ID
BX R3
off_Str2ID dw Str2ID
_REQUEST_DATEANDTIME_GET:
LDR R3, off_REQUEST_DATEANDTIME_GET
BX R3
off_REQUEST_DATEANDTIME_GET dw REQUEST_DATEANDTIME_GET
_REQUEST_PROFILE_GETACTIVEPROFILE:
LDR R3, off_REQUEST_PROFILE_GETACTIVEPROFILE
BX R3
off_REQUEST_PROFILE_GETACTIVEPROFILE dw REQUEST_PROFILE_GETACTIVEPROFILE
_FindBook:
LDR R3, off_FindBook
BX R3
off_FindBook dw FindBook
_GUIonMessage_GetBook:
LDR R3, off_GUIonMessage_GetBook
BX R3
off_GUIonMessage_GetBook dw GUIonMessage_GetBook
_GUIonMessage_GetMsg:
LDR R3, off_GUIonMessage_GetMsg
BX R3
off_GUIonMessage_GetMsg dw GUIonMessage_GetMsg
_GUIonMessage_GetCreatedItemIndex:
LDR R3, off_GUIonMessage_GetCreatedItemIndex
BX R3
off_GUIonMessage_GetCreatedItemIndex dw GUIonMessage_GetCreatedItemIndex
_GUIObject_SetTitleIcon:
LDR R3, off_GUIObject_SetTitleIcon
BX R3
off_GUIObject_SetTitleIcon dw GUIObject_SetTitleIcon
_GUIonMessage_SetMenuItemIcon:
LDR R3, off_GUIonMessage_SetMenuItemIcon
BX R3
off_GUIonMessage_SetMenuItemIcon dw GUIonMessage_SetMenuItemIcon
_GUIonMessage_SetMenuItemText:
LDR R3, off_GUIonMessage_SetMenuItemText
BX R3
off_GUIonMessage_SetMenuItemText dw GUIonMessage_SetMenuItemText
_GUIonMessage_SetMenuItemSecondLineText:
LDR R3, off_GUIonMessage_SetMenuItemSecondLineText
BX R3
off_GUIonMessage_SetMenuItemSecondLineText dw GUIonMessage_SetMenuItemSecondLineText
_Bluetooth_GetState:
LDR R3, off_Bluetooth_GetState
BX R3
off_Bluetooth_GetState dw Bluetooth_GetState
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_15DCD9E4 dw aNormal ; "Normal"
dw aMeeting ; "Meeting"
dw aInCar ; "In Car"
dw aOutdoors ; "Outdoors"
dw aHandsfree ; "Handsfree"
dw aHome ; "Home"
dw aOffice ; "Office"
db 0x25
db 0
db 0x73
db 0
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
Marcadores