Código:include "x.inc" include "lib.asm" ;W580 R8be001 ;Advanced snooze alarm ;Add ability to change snooze time for every alarm ;You can input snooze time in third tab in alarm's settings ;heapshift (0x201A4124-0x201A4127) ;RU.version ;(c) RandoM ;----------------------------------------------------------------------------------------- org 0x44dbc9f4 _1: CMP R7, 3 ;----------------------------------------------------------------------------------------- org 0x44dbca00 _2: MOV R1, 3 ;----------------------------------------------------------------------------------------- org 0x44dbca8c _3: CMP R6, 3 ;----------------------------------------------------------------------------------------- org 0x44dbcaa4 _4: off_44DBCAA4 dw dword_45C12388 ;----------------------------------------------------------------------------------------- org 0x44dbbfe8 _5: LDR R5, off_44DBBFEC BX R5 off_44DBBFEC dw body+1 NOP ;----------------------------------------------------------------------------------------- org 0x44dbb84c _6: LDR R0, off_44DBB850 BX R0 off_44DBB850 dw loc_45C12398+1 ;----------------------------------------------------------------------------------------- org 0x44d46d84 _7: LDR R1, off_44D46D88 BX R1 off_44D46D88 dw loc_45C12518+1 ;----------------------------------------------------------------------------------------- org 0x44dbbdfc _8: LDR R1, off_44DBBE00 BX R1 off_44DBBE00 dw loc_45C1252C+1 NOP ;----------------------------------------------------------------------------------------- org 0x44dba248 _9: LDR R3, off_44DBA28C BX R3 NOP ;----------------------------------------------------------------------------------------- org 0x44dba28c _10: off_44DBA28C dw loc_45C125D0+1 ;----------------------------------------------------------------------------------------- org 0x45c12300 body: LDR R5, [SP,0x68] ADD R5, 0x58 CMP R7, 0 BEQ loc_45C12330 CMP R7, 1 BEQ loc_45C12334 MOV R1, 1 ADD R0, R4, 0 LDR R3, off_45C12340 BLX R3 MOV R2, 1 adr R1, dword_45C12394 ADD R0, R4, 0 LDR R3, off_45C12344 BLX R3 BL sub_45C12350 ADD R2, R0, 0 MOV R1, 0 ADD R0, R4, 0 LDR R3, off_45C12348 BLX R3 LDR R1, off_45C1234C BX R1 loc_45C12330: LDR R1, off_45C12338 BX R1 loc_45C12334: LDR R1, off_45C1233C BX R1 off_45C12338 dw 0x44DBBFF2+1 off_45C1233C dw 0x44DBC2DC+1 off_45C12340 dw SetNumOfMenuItem off_45C12344 dw 0x4531E5A4+1 off_45C12348 dw ListMenu_SetSecondLineText off_45C1234C dw 0x44DBC286+1 sub_45C12350: PUSH {R1-R7,LR} SUB SP, SP, 0x14 LDRH R2, [R5,0x20] LDR R7, dword_45C126F8 LDRB R3, [R7,2] CMP R3, 0 BEQ loc_45C12364 SUB R5, R3, 1 CMP R5, R2 BEQ loc_45C1237E loc_45C12364: ADD R2, R2, 1 STRB R2, [R7,2] MOV R0, 1 BL sub_45C12698 CMP R0, 0xFF BEQ loc_45C1237A MOV R1, SP BL sub_45C126C8 B loc_45C1237C loc_45C1237A: MOV R0, 0 loc_45C1237C: STRH R0, [R7] loc_45C1237E: LDRH R0, [R7] BL sub_45C1262C ADD SP, SP, 0x14 POP {R1-R7,PC} dword_45C12388 dw 0xF356F357 dw 0xF35CF35D dw 0xEE9EEE9D dword_45C12394 dw 0x1C9B loc_45C12398: LDRH R0, [R6,2] CMP R0, 0 BEQ loc_45C123B6 CMP R0, 1 BEQ loc_45C123BC CMP R0, 2 BNE loc_45C123B4 LDRH R0, [R6] CMP R0, 0 BNE loc_45C123B4 ADD R0, R4, 0 adr R1, off_45C12494 LDR R3, off_45C124EC BLX R3 loc_45C123B4: POP {R4-R6,PC} loc_45C123B6: LDRH R0, [R6] LDR R3, off_45C123C4 BX R3 loc_45C123BC: LDRH R0, [R6] LDR R3, off_45C123C8 BX R3 align 4 off_45C123C4 dw 0x44DBB854+1 off_45C123C8 dw 0x44DBB87A+1 PUSH {R0,R4,LR} LDR R0, [R1,0x18] ADD R4, R1, 0 CMP R0, 0 BEQ loc_45C123DE LDR R3, off_45C124A0 BLX R3 MOV R0, 0 STR R0, [R4,0x18] loc_45C123DE: LDR R0, dword_45C126F8 LDRH R0, [R0] CMP R0, 0 BNE loc_45C123EA MOVL R0, 0x900 loc_45C123EA: STR R0, [SP] MOV R3, 0 ADD R2, R4, 0 LDR R1, off_45C124A4 MOV R0, 1 PUSH {R0-R3} LDR R3, off_45C124A8 ADD R2, SP, 0x10 LDR R1, off_45C124AC MOV R0, 0 PUSH {R0-R3} LDR R3, off_45C124B0 LDR R2, dword_45C124B4 LDR R1, off_45C124B8 LDR R0, dword_45C124BC PUSH {R0,R1} LDR R1, off_45C124C0 MOV R0, 0 BL sub_45C12472 ADD SP, SP, 0x28 STR R0, [R4,0x18] CMP R0, 0 BNE loc_45C12422 ADD R0, R4, 0 LDR R3, off_45C124C8 BLX R3 B loc_45C1244A loc_45C12422: LDR R1, dword_45C124CC adr R2, loc_45C12450 ADD R2, 1 LDR R3, off_45C124D0 BLX R3 LDR R0, [R4,0x18] MOVL R1, 0xFC0 LDR R2, off_45C124D4 LDR R3, off_45C124D0 BLX R3 LDR R0, [R4,0x18] LDR R1, dword_45C124D8 LDR R2, off_45C124DC LDR R3, off_45C124D0 BLX R3 LDR R1, dword_45C124E0 LDR R0, [R4,0x18] LDR R3, off_45C124E4 BLX R3 loc_45C1244A: MOV R0, 1 POP {R3,R4,PC} align 4 loc_45C12450: PUSH {R0-R7,LR} ADD R4, R0, 0 ADD R0, R1, 0 LDR R3, off_45C124E8 BLX R3 LDR R3, dword_45C126F8 LDRH R1, [R3] CMP R1, R0 BEQ loc_45C12468 MOV R1, 1 STRH R0, [R3] STRB R1, [R3,3] loc_45C12468: LDR R1, off_45C124F0 ADD R0, R4, 0 LDR R3, off_45C124EC BLX R3 POP {R0-R7,PC} sub_45C12472: var_40 = -0x40 var_3C = -0x3C var_38 = -0x38 var_34 = -0x34 var_30 = -0x30 var_2C = -0x2C var_28 = -0x28 var_24 = -0x24 var_C = -0xC PUSH {R3} LDR R3, off_45C124C4 MOV R12, R3 POP {R3} BX R12 dword_45C1247C dw 7 dw 0x45C123CD dw 8 dw 0x44DBAF51 dw 0 dw 0 off_45C12494 dw aClockbook_seta dw 0 dw dword_45C1247C off_45C124A0 dw GUI_Free off_45C124A4 dw 0x45BA728C+0x16 off_45C124A8 dw 0x45BA7300+0x26 off_45C124AC dw 0x45BA728C+0x36 off_45C124B0 dw 0x45BA7300+0xC dword_45C124B4 dw 0x1A01 off_45C124B8 dw 0x45BA7300+0x24 dword_45C124BC dw 0x6FFFFFFF off_45C124C0 dw 0x45BA7300+0x2A off_45C124C4 dw CreateTimeInputVA off_45C124C8 dw FreeBook dword_45C124CC dw 0xFBF off_45C124D0 dw GUIObject_Softkey_SetAction off_45C124D4 dw 0x44DBD0CD dword_45C124D8 dw 0xFAF off_45C124DC dw 0x44DBBF09 dword_45C124E0 dw 0xEB48 off_45C124E4 dw InputFeedback_SetIcon off_45C124E8 dw TimeInput_GetTimeInt off_45C124EC dw BookObj_GotoPage off_45C124F0 dw 0x45AA4E98 aClockbook_seta db "ClockBook_SetAlarm_SnoozeEdit_Page",0 db 0xFF loc_45C12518: ADD R2, R4, 0 BL sub_45C12544 ADD R1, SP, 4 ADD R0, R0, R2 LDR R3, off_45C12528 BX R3 align 4 off_45C12528 dw 0x44D46D8C+1 loc_45C1252C: BL sub_45C1258E ADD R1, R4, 0 MOV R0, 1 LDR R3, off_45C1253C BLX R3 LDR R3, off_45C12540 BX R3 off_45C1253C dw 0x44DBCABC+1 off_45C12540 dw 0x44DBBE08+1 sub_45C12544: PUSH {R0,R1,R3-R7,LR} SUB SP, SP, 0x14 MOV R0, 1 BL sub_45C12698 CMP R0, 0xFF BNE loc_45C12558 loc_45C12552: MOVL R2, 0x21C B loc_45C1257A loc_45C12558: ADD R2, R2, 1 MOV R1, SP BL sub_45C126C8 CMP R0, 0 BEQ loc_45C12552 MOV R2, 0 STR R0, [R1] LDRB R0, [R1] CMP R0, 0 BEQ loc_45C12572 BL dword_45C1257E loc_45C12572: LDRB R0, [R1,1] ADD R0, R0, R2 BL dword_45C1257E loc_45C1257A: ADD SP, SP, 0x14 POP {R0,R1,R3-R7,PC} dword_45C1257E dw 0xC60087 dw 0x1440105 dw 0x192D19BF dw 0x4770197A sub_45C1258E: var_38 = -0x38 var_34 = -0x34 var_30 = -0x30 var_2C = -0x2C var_28 = -0x28 PUSH {R0-R7,LR} SUB SP, SP, 0x14 MOV R7, 0 STR R7, [SP,0x38+var_38] STR R7, [SP,0x38+var_34] STR R7, [SP,0x38+var_30] STR R7, [SP,0x38+var_2C] STR R7, [SP,0x38+var_28] LDR R5, dword_45C126F8 LDRB R0, [R5,3] LDRB R2, [R5,2] CMP R0, 0 BEQ loc_45C125CC MOV R0, 1 BL sub_45C12698 CMP R0, 0xFF BEQ loc_45C125B8 MOV R1, SP BL sub_45C126C8 loc_45C125B8: MOV R1, SP SUB R2, R2, 1 LSL R3, R2, 2 LDRH R0, [R5] STR R0, [R1,R3] MOV R0, 2 BL sub_45C12698 BL sub_45C126E4 loc_45C125CC: ADD SP, SP, 0x14 POP {R0-R7,PC} loc_45C125D0: LDR R3, off_45C12624 PUSH {R4,R5,LR} BL sub_45C125E0 LDR R5, off_45C125DC BX R5 off_45C125DC dw 0x44DBA24E+1 sub_45C125E0: var_34 = -0x34 var_30 = -0x30 PUSH {R0,R1,R3-R7,LR} SUB SP, SP, 0x14 ADD R4, R1, 0 MOV R0, 1 BL sub_45C12698 CMP R0, 0xFF BNE loc_45C125F4 loc_45C125F0: LDR R2, dword_45C12628 B loc_45C12620 loc_45C125F4: LDRH R2, [R4,0x2E] ADD R2, R2, 1 MOV R1, SP BL sub_45C126C8 CMP R0, 0 BEQ loc_45C125F0 BL sub_45C1262C STR R0, [SP,0x34+var_30] adr R0, You_have_selected MOV R1, 0 MOV R2, 0x23 LDR R3, off_45C12694 BLX R3 STR R0, [SP,0x34+var_34] MOV R0, SP MOV R1, 5 MOV R2, 2 LDR R3, off_45C12694 BLX R3 ADD R2, R0, 0 loc_45C12620: ADD SP, SP, 0x14 POP {R0,R1,R3-R7,PC} off_45C12624 dw 0x45BA728C+0x16 dword_45C12628 dw 0x1CA9 sub_45C1262C: var_4C = -0x4C var_48 = -0x48 PUSH {R1-R7,LR} SUB SP, SP, 0x2C ADD R7, SP, 0x4C+var_48 MOV R5, 0 CMP R0, 0 BEQ loc_45C1265E STR R0, [SP,0x4C+var_4C] MOV R0, SP LDRB R0, [R0] CMP R0, 0 BEQ loc_45C12662 LDR R2, off_45C12688 BLX R2 STR R0, [R7] MOVL R1, 0x78000000 ADD R1, 0x20 STR R1, [R7,4] LDR R0, dword_45C1268C STR R0, [R7,8] STR R1, [R7,0xC] MOV R0, 0x10 ADD R7, R7, R0 ADD R5, 4 B loc_45C12662 loc_45C1265E: MOV R0, 9 B loc_45C12666 loc_45C12662: MOV R0, SP LDRB R0, [R0,1] loc_45C12666: LDR R2, off_45C12688 BLX R2 STR R0, [R7] MOVL R0, 0x78000000 ADD R0, 0x20 STR R0, [R7,4] LDR R0, dword_45C12690 STR R0, [R7,8] ADD R5, 3 ADD R0, SP, 0x4C+var_48 MOV R1, 5 ADD R2, R5, 0 LDR R3, off_45C12694 BLX R3 ADD SP, SP, 0x2C POP {R1-R7,PC} off_45C12688 dw int2strID dword_45C1268C dw 0x162 dword_45C12690 dw 0x163 off_45C12694 dw Str2ID sub_45C12698: PUSH {R1-R7,LR} ADD R7, R0, 0 CMP R0, 2 BEQ loc_45C126AE adr R0, aTpaSystemSet_0 adr R1, aSnoozecfg_bin MOV R2, 0 LDR R3, off_45C126FC BLX R3 CMP R0, 0 BMI loc_45C126C4 loc_45C126AE: MOV R0, 0 PUSH {R0} MOV R3, 0xFF ADD R3, 0x81 ADD R2, R7, 0 adr R1, aSnoozecfg_bin adr R0, aTpaSystemSet_0 LDR R5, off_45C12700 BLX R5 ADD SP, SP, 4 B loc_45C126C6 loc_45C126C4: MOV R0, 0xFF loc_45C126C6: POP {R1-R7,PC} sub_45C126C8: PUSH {R1-R7,LR} SUB R2, R2, 1 ADD R7, R2, 0 ADD R6, R1, 0 ADD R5, R0, 0 MOV R2, 0x14 LDR R3, off_45C12704 BLX R3 ADD R0, R5, 0 LDR R3, off_45C1270C BLX R3 LSL R1, R7, 2 LDR R0, [R6,R1] POP {R1-R7,PC} sub_45C126E4: PUSH {R0-R7,LR} ADD R5, R0, 0 MOV R2, 0x14 LDR R3, off_45C12708 BLX R3 ADD R0, R5, 0 LDR R3, off_45C1270C BLX R3 POP {R0-R7,PC} align 4 dword_45C126F8 dw 0x201A4124 off_45C126FC dw fstat off_45C12700 dw _fopen off_45C12704 dw fread off_45C12708 dw fwrite off_45C1270C dw fclose aTpaSystemSet_0 du "/tpa/system/settings",0 align 4 aSnoozecfg_bin du "snoozecfg.bin",0 You_have_selected du "You´ve selected silence to alarm by",0
Marcadores