$INCLUDE (..\macro.inc) $INCLUDE (..\library.inc) Vrezka equ 0x1698BC8 Patch equ Patches + 0x600 ;--------------------------------------------------------------------- AddImm macro imm mov r0, imm bl AddExtra endm ;--------------------------------------------------------------------- IncR2ifR0lt macro imm ldrb r3, [r6, #imm] cmp r3, r0 adc r2, r1 endm ;--------------------------------------------------------------------- org Patch push {r0, LR} LoadReg 0, config+4 bl GetBuffer bne DoPatch b ex ;--------------------------------------------------------------------- DoPatch: ldr r5, [SP] ldr r0, [r5, #0x14] str r0, [r6, #36] ldrb r4, [r6, #1] ; =56dB ldrb r5, [r6, #2] bl RamNetCH ldrh r1, [r7] mov r0, #0 cmp r1, #0xFF adc r0, r0 bl AddExtra bl RamNetCH ldrb r1, [r7, #6] bl Add2Dig AddImm #2 AddImm #3 ;--------------------------------------------------------------------- ldrb r4, [r6, #3] ; 26,2'C ldrb r5, [r6, #4] mov r0, #1 mov r1, #3 bl GetAkku mvi r1, 0xAAA sub r0, r1 mov r1, #5 ldrsb r1, [r6, r1] add r1, r0 bpl plus AddImm #0 neg r1, r1 plus: mov r0, #10 bl dwMODdw bl Add2Dig0 AddImm #4 mov r0, r1 bl Pic_Little0 bl AddPic AddImm #5 AddImm #6 ;--------------------------------------------------------------------- ldrb r4, [r6, #6] ; 3,90V ldrb r5, [r6, #7] mov r0, #0 mov r1, #9 bl GetAkku mov r1, r0 mvi r0, 1000 bl dwMODdw bl Pic_Little0 bl AddPic AddImm #4 mov r0, #10 bl dwMODdw bl Add2Dig0 AddImm #7 ;--------------------------------------------------------------------- ldrb r4, [r6, #8] ; 70% ldrb r5, [r6, #9] bl RamCap ldrh r1, [r7] bl Add2Dig AddImm #8 ;--------------------------------------------------------------------- ldrb r4, [r6, #10] ; 1 (profile) ldrb r5, [r6, #11] bl GetProfile bl Pic_Profiles ldrb r1, [r6, #12] cmp r1, #0 bne $+8 add r0, #1 bl Pic_Little0 bl AddPic ;--------------------------------------------------------------------- ldrb r4, [r6, #13] ; Vibra ldrb r5, [r6, #14] bl GetVibraStatus ldrb r7, [r6, #15] cmp r0, r7 bne MissCalls bl Pic_Vibra mov r0, #0 bl AddPic ;--------------------------------------------------------------------- MissCalls: bl RamMissedCalls ; MissCalls mov r0, #16 mov r3, #0 bl ShowMissed ;--------------------------------------------------------------------- bl RamMissedSMS ; MissSMS mov r0, #18 mov r3, #1 bl ShowMissed ;--------------------------------------------------------------------- ldrb r4, [r6, #20] ; ||||... ldrb r5, [r6, #21] mov r1, #7 bl RamNetCH nextcell: push {r1, r7} ldrb r0, [r7, #6] add r0, #1 mov r1, #0 mov r2, #0 IncR2ifR0lt 22 IncR2ifR0lt 23 IncR2ifR0lt 24 IncR2ifR0lt 25 IncR2ifR0lt 26 IncR2ifR0lt 27 IncR2ifR0lt 28 IncR2ifR0lt 29 mov r0, #14 mov r3, #7 and r2, r3 beq showcell sub r0, r2, #1 ldrh r3, [r7] cmp r3, #0xFF bcc showcell add r0, #7 showcell: bl Pic_AdvNet bl AddPic sub r4, #6 add r4, #5 pop {r1, r7} add r7, #12 sub r1, #1 bne nextcell ;--------------------------------------------------------------------- ldrb r4, [r6, #30] ; B=58 ldrb r5, [r6, #31] AddImm #3 AddImm #1 ldr r3, [r6, #32] ldrb r1, [r3] bl Add2Dig ;--------------------------------------------------------------------- ex: pop {r5, r6} mov r0, #0 sub sp, #0x1C mov r3, SP mvi r4, 0xFFFF add r6, #4 bx r6 ;--------------------------------------------------------------------- ShowMissed: push {r1,r7, LR} ldrh r1, [r7] cmp r1, #0 beq ExSub ldrb r4, [r6, r0] add r0, #1 ldrb r5, [r6, r0] bl Pic_Call mov r0, r3 bl AddPic add r4, #10 add r5, #3 b Add2Dig+2 ;--------------------------------------------------------------------- Add2Dig0: push {r1,r7, LR} mov r1, r0 b Add2Dig+2 ;--------------------------------------------------------------------- Add2Dig: push {r1,r7, LR} mov r0, #10 bl dwMODdw bl Pic_Little0 cmp r0, #10 bcc Dig2 bl Add2Dig0 b Dig2+4 Dig2: bl AddPic mov r0, r1 b AddPic+2 ;--------------------------------------------------------------------- AddExtra: push {r1,r7, LR} bl Pic_Extra b AddPic+2 ;--------------------------------------------------------------------- AddPic: push {r1,r7, LR} add r2, r7,r0 mov r0, r4 mov r1, r5 ldr r3, [r6, #36] bl DrawCanvImg add r4, #6 ExSub: pop {r1,r7, PC} ;--------------------------------------------------------------------- DrawCanvImg:push {r0-r4,LR} mov r0, r2 bl GetImgWidth mov r4, r0 mov r0, r2 bl GetImgHeight sub r0, #1 sub r4, #1 pop {r1-r2} sub SP, #16 add r3, r1,r4 add r0, r2 str r0, [SP] mov r0, #1 str r0, [SP, #4] ldr r0, [SP, #20] bl DrawCanvas add SP, #8 pop {r0-r2} bl DrawImage2 pop {r3-r4,PC} ;--------------------------------------------------------------------- Align16 config: dd Magic, 0xAB03, 0,0 db "{patch=ExtraInfo ver=6 cp=avkiev id=AB03 mem=40}" db "{1 xy Net y=20}" db "{3 xy Temperature x=36 y=20}" db "{5 b TempAdjust range=-50..50 v=15}" db "{6 xy Voltage x=78 y=20}" db "{8 xy Capacity x=114 y=20}" db "{10 xy Profiles y=90}" db "{12 cb Logo}" db "{13 xy Vibra y=110}" db "{15 cb ShowWhenVibra}" db "{16 xy MissedCalls x=100 y=90}" db "{18 xy MissedSMS x=100 y=110}" db "{20 xy AdvNet y=128}" db "{22 b(8) Limits v=30,52,60,68,76,84,92,100}" db "{30 xy RAM y=60}" db "{32 a Address v=A86CEF8A}",00 ;36-39: ScreenContext db 0 ;--------------------------------------------------------------------- org Vrezka CallReg 3, aPatch aPatch: dd q1+Patch org $+16 Align16 ;--------------------------------------------------------------------- END