- 积分
- 148
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
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
|
|