爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

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

【补丁源码】工模待机V1 - x618

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

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

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

x

$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 - 工模待机V1[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

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

本版积分规则

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

GMT+8, 2024-6-8 16:09

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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