爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 2907|回复: 0
收起左侧

【Flash补丁+源码】工模待机V1

[复制链接]
发表于 2005-8-7 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x

;适用:x618V24
;作者:toodle
;版本:V1
;日期:2004-04-09
;说明:须配合个人设置菜单使用。
;待机时显示信号强度、温度、电压、电流、地区码、基站码、信道7项信息。修改了279-294号图片用来显示数字0-F。
;问题:关闭屏保此补丁将不起作用。

7047DC:06F01200 DAFDC027
0x7D27C0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88408850D7404200F2F4FC3E9AF45070
0x7D27D0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF D7405B00F2F4D2142D4BDADC142A4840
0x7D27E0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 3D47D7405B00F3F80C13C08FE13CE10D
0x7D27F0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E0A4E0FCE0AD[B]BB41[/B]D7404300F2FF8C22
0x7D2800: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 26FFB90AE12CE11DE6FC3100[B]BB36[/B]D740
0x7D2810: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 4200F2FF9C3EE11CE13DE6FC5900[B]BB2D[/B]
0x7D2820: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF D7404200F2FFB63EE13CE10DE6FC5400
0x7D2830: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E6FD2C00[B]BB22[/B]D7405B00F2FF0613E13C
0x7D2840: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E10DE6FC3F00[B]BB19[/B]D7405B00F2FF0813
0x7D2850: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E14CE10DE6F41000E6FC2B00[B]BB0E[/B]D740
0x7D2860: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 5B00F2FF0A13E14CE10DE6FC1100[B]BB05[/B]
0x7D2870: FFFFFFFFFFFFFFFFFFFF 9850984006F01200DB00
0x7D287A: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 01CDF6FF0EFE5B44F2FE0CFEF2FF0EFE
0x7D288A: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF BB0728C629D13D0128C229C13DF2CB00
0x7D289A: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 884088C088D088F006FE1601DAC36C89
0x7D28AA: FFFFFFFFFFFFFFFFFFFF 98F098D098C09840CB00
;字串部分(替换“个人设置-功能8”为“工模待机”)
0x22E1BA: B31FFEB07D9520380000000000000000 C965E221CD05DC3A0000000000000000

;这是279-294号图片的索引及内容的修改,所用字体效果见下面预览图片。
2B93D4:15250100C719AC02 06090100C719AC02
2B93DC:1C210100361AAC02 06090100361AAC02
2B93E4:12260100BA1AAC02 06090100BA1AAC02
2B93EC:182401002C1BAC02 060901002C1BAC02
2B93F4:1A240100981BAC02 06090100981BAC02
2B93FC:18270100281CAC02 06090100281CAC02
2B9404:162101009D1CAC02 060901009D1CAC02
2B940C:1B250100001DAC02 06090100001DAC02
2B9414:26100100941DAC02 06090100941DAC02
2B941C:13260100E41DAC02 06090100E41DAC02
2B9424:19220100561EAC02 06090100561EAC02
2B942C:16220100DE1EAC02 06090100DE1EAC02
2B9434:18220100441FAC02 06090100441FAC02
2B943C:1B220100AA1FAC02 06090100AA1FAC02
2B9444:192101003220AC02 060901003220AC02
2B944C:17240100B620AC02 06090100B620AC02
;---------------------------------------;
;Changed image ID: 279,Size:9, Format:6x9, ImageInfo:
2B19C7:07F0071FF8072FFC07 033B6F6F6F6F6F3B03
;Changed image ID: 280,Size:9, Format:6x9, ImageInfo:
2B1A36:00FFE00F017FF00F02 031B7B1B1B1B1B7F03
;Changed image ID: 281,Size:9, Format:6x9, ImageInfo:
2B1ABA:07F03F1FF83F2FFC3F 033B6F0F1B33637F03
;Changed image ID: 282,Size:9, Format:6x9, ImageInfo:
2B1B2C:07F0001FFC002FFE00 033B6F0F1B0F6F3B03
;Changed image ID: 283,Size:9, Format:6x9, ImageInfo:
2B1B98:0003F83F000FFE3F00 031F1F3F2F6F7F0F03
;Changed image ID: 284,Size:9, Format:6x9, ImageInfo:
2B1C28:00E00003F8000FFE00 037F637B0F0F6F3B03
;Changed image ID: 285,Size:9, Format:6x9, ImageInfo:
2B1C9D:000F030037E3006FF3 033B6F637B6F6F3B03
;Changed image ID: 286,Size:9, Format:6x9, ImageInfo:
2B1D00:0000E01F0003F81F00 037F0F1B1B33333303
;Changed image ID: 287,Size:9, Format:6x9, ImageInfo:
2B1D94:07C00000031FF80000 033B6F6F3B6F6F3B03
;Changed image ID: 288,Size:9, Format:6x9, ImageInfo:
2B1DE4:01FC1F07FF1F0BFF9F 033B6F6F3F0F6F3B03
;Changed image ID: 289,Size:9, Format:6x9, ImageInfo:
2B1E56:07F0007F1FF8007F2F 033B3B6F6F7F6F6F03
;Changed image ID: 290,Size:9, Format:6x9, ImageInfo:
2B1EDE:07F0031FFC032FFE03 037B6F6F7B6F6F7B03
;Changed image ID: 291,Size:9, Format:6x9, ImageInfo:
2B1F44:07F0001FF8002FFC00 033B6F6363636F3B03
;Changed image ID: 292,Size:9, Format:6x9, ImageInfo:
2B1FAA:000FE01F003FF01F00 037B6F6F6F6F6F7B03
;Changed image ID: 293,Size:9, Format:6x9, ImageInfo:
2B2032:07F0007F1FFC007F2F 037F63637B63637F03
;Changed image ID: 294,Size:9, Format:6x9, ImageInfo:
2B20B6:07F0011FF8012FFC01 037F63637B63636303

这是预览图片,也是待机图片,需要把它作为待机图。
[upload=bmp]UploadFile/20044919205149919.bmp[/upload]

V1β中的问题已经解决。
以上补丁及图片全部刷,就有上面的效果,我个人还是比较满意的。

===================================================
这个补丁的个性化程度比较高,显示内容可以开关,显示位置可以调整,温度误差可以调节,字体也可以自己画。
这么多修改我无法在上面作注释,只好把源码发上来,大家自己改。
下面是源码,我已经作了足够的注释。
编译源码需要的工具及教程到置顶的帖子里去查。

$Segmented
$Mod167
;Some Function
DrawImagebyIndex        EQU 0xC3896C
IsCallInProgress        EQU 0xDC2A14
;Address for Patch Data
Patch_Address                EQU 7D27C0h
;调用地址:7047DC:06F01200 DAFDC027

; **/x618v24 -X- 04.04.09 - toodle - 工模待机[7D27C0-7D28B3]
Patch Section Code Word At Patch_address ; Start Patch at Patch_Address
main proc far  ; start main of patch
        mov     [-r0], r4
        mov     [-r0], r5
        extp    #42h, #1
        mov     r4, 3EFCh
        jnb     r4.7, loc_End   ;个人设置为不显示
        extp    #5Bh, #1
        mov     r4, 14D2h
        jmpr    cc_Z, loc_End   ;有号码按下,不显示(这也是引起关闭屏保无显示的bug)
        calls   seg(IsCallInProgress),sof(IsCallInProgress)
        cmp     r4, #0
        jmpr    cc_NZ, loc_End  ;通话期间不显示
;       mov     [-r0], r6       ;断点7047DC可以不用保存这些寄存器
;       mov     [-r0], r12
;       mov     [-r0], r13
;       mov     [-r0], r14
;       mov     [-r0], r15
        extp    #5Bh, #1
        movb    rl4, 130Ch      ;RX(dB)数值
        movbz   r15, rl4
        movb    rl6, #3         ;整数位数
        movb    rh6, #0         ;小数位数
        mov     r4, #10         ;以10进制显示
        mov     r12, #15        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
        mov     r13, #10        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #43h, #1
        mov     r15, 228Ch      ;TE数值(绝对温度)
        sub     r15, #2745      ;换算成摄氏度,减去273度(2730);调整温度误差,再减1.5度(15)
        movb    rl6, #2         ;整数位数
        movb    rh6, #1         ;小数位数
;       mov     r4, #10         ;以10进制显示(这里r4没有变化,可以不用赋值以节省代码,下同)
        mov     r12, #49        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
;       mov     r13, #10        ;Y坐标(这里r13没有变化,可以不用赋值以节省代码,下同)
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #42h, #1
        mov     r15, 3E9Ch      ;VB数值
        movb    rl6, #1         ;整数位数
        movb    rh6, #3         ;小数位数
;       mov     r4, #10         ;以10进制显示
        mov     r12, #89        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
;       mov     r13, #10        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #42h, #1
        mov     r15, 3EB6h      ;mA数值
        movb    rl6, #3         ;整数位数
        movb    rh6, #0         ;小数位数
;       mov     r4, #10         ;以10进制显示
        mov     r12, #84        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
        mov     r13, #44        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #5Bh, #1
        mov     r15, 1306h      ;CH数值
        movb    rl6, #3         ;整数位数
        movb    rh6, #0         ;小数位数
;       mov     r4, #10         ;以10进制显示
        mov     r12, #63        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
;       mov     r13, #44        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #5Bh, #1
        mov     r15, 1308h      ;CI数值
        movb    rl6, #4         ;整数位数
        movb    rh6, #0         ;小数位数
        mov     r4, #16         ;以16进制显示
        mov     r12, #43        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
;       mov     r13, #44        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
        extp    #5Bh, #1
        mov     r15, 130Ah      ;LAI数值
        movb    rl6, #4         ;整数位数
        movb    rh6, #0         ;小数位数
;       mov     r4, #16         ;以10进制显示
        mov     r12, #17        ;X坐标(为简化计算,这里是最后一位数字的X坐标,而不是第一位数字的X坐标)
;       mov     r13, #44        ;Y坐标
        callr   DrawNumber      ;↑↑↑↑↑↑↑↑↑↑显示以上数据↑↑↑↑↑↑↑↑↑↑
;       mov     r15, [r0+]
;       mov     r14, [r0+]
;       mov     r13, [r0+]
;       mov     r12, [r0+]
;       mov     r6, [r0+]
loc_End:
        mov     r5, [r0+]
        mov     r4, [r0+]
loc_Org:
        add     r0, #12h        ;原断点语句
        rets
main endp

;显示一组数字,从个位向左逐个显示
DrawNumber proc near
        addb    rl6, rh6        ;总的数字位数
loc_Loop:
        mov     MDL, r15
        divu    r4
        mov     r14, MDH        ;模,即最后一位数字
        mov     r15, MDL        ;整,即前几位数字
        callr   DrawDigit
        sub     r12, #6         ;数字宽度
        subb    rh6, #1         ;小数位数-1
        jmpr    cc_NZ, loc_NotDot
        sub     r12, #2         ;小数点宽度
loc_NotDot:
        subb    rl6, #1         ;总的数字位数-1
        jmpr    cc_NZ, loc_Loop
        ret
DrawNumber endp

;显示一个数字图片
DrawDigit proc near
        mov     [-r0], r4
        mov     [-r0], r12
        mov     [-r0], r13
        mov     [-r0], r15
        add     r14, #116h      ;279-294号图片用来显示数字0-F
        calls   seg(DrawImageByIndex),sof(DrawImageByIndex)
        mov     r15, [r0+]
        mov     r13, [r0+]
        mov     r12, [r0+]
        mov     r4, [r0+]
        ret
DrawDigit endp
Patch EndS
END


源码放在这里却不是每人都能看懂的,我把最上面一些字符改成了粗体,将其改成CC00可以屏蔽掉一些数字。
我还是希望大家自己编译源码,这样可以改的更多。
















[此贴子已经被作者于2004-4-24 8:41:12编辑过]

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2025-6-8 02:51

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表