爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 1177|回复: 5
收起左侧

[分享]可定制的更改服务商源码

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

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

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

x
SOLO,这可能会对你有帮助

$Segmented
$Mod167

;;2128
;;memory function
;memcpy                        EQU 0xEE4EFE
;;Address for Patch Data
;Flash_Address   EQU 0800000h
;Patch_Address        EQU 0780080h ;Free Space in Flash (CHANGE THIS)
;SRC_Address     EQU 046A08Ah
;Date_Address    EQU 023FDAh

;;6688
;;memory function
;memcpy                        EQU 0xC783DC
;;Address for Patch Data
;Flash_Address   EQU 0A00000h
;Patch_Address        EQU 01F1C90h ;Free Space in Flash (CHANGE THIS)
;SRC_Address     EQU 0338FD6h
;Date_Address    EQU 0365DCh

;;x618
;;memory function
;memcpy                         EQU 0xFF0F66
;;Address for Patch Data
;Flash_Address   EQU 0800000h
;Patch_Address         EQU 07D1550h ;Free Space in Flash (CHANGE THIS)
;SRC_Address     EQU 06EE9BCh
;Date_Address    EQU 0102F8Ch

;;S57c
;;memory function
;memcpy                         EQU 0xBF82D0
;;Address for Patch Data
;Flash_Address   EQU 0400000h
;Patch_Address        EQU 03C0000h ;Free Space in Flash (CHANGE THIS)
;SRC_Address     EQU 03B4B06h
;Date_Address    EQU 033686h

;M55cV11
;memory function
memcpy                        EQU 0xBFA90A
;Address for Patch Data
Flash_Address   EQU 0200000h
Patch_Address        EQU 0551520h ;Free Space in Flash (CHANGE THIS)
SRC_Address     EQU 0x0CFB74
Date_Address    EQU 0365C8h  ;存放时间数据的地址依次是分时日月年星期
                             ;需要注意的是WORD存储,星期是从星期日开始0-6

Patch        Section Code Word At Patch_address ; Start Patch at Patch_Address
    main proc far  ; start main of patch
        mov     r14, #pof(szall+Flash_Address)
        mov     r15, #pag(szall+Flash_Address)
        calls   seg(memcpy),sof(memcpy)
    extp    r9,#2
    mov     r13,[r8+#02]
    mov     r12,[r8]
        mov     r6,#0030h
    extp    r13,#1
    mov     r8,[r12]
    add     r12,#2
Loops:   
    cmp     r8,#0
    jmpr    cc_Z, ProcEnd
    extp    r13,#1
    mov     r9,[R12]
    cmp     r9,#0025h
    jmpr    cc_Z,NoWeek
    cmp     r9,#0024h
    jmpr    cc_Z,Week
    jmpr    cc_UC,NoMatch        
NoWeek:
    extp    r13,#1
    mov     r9,[R12+#2]
    cmp     r9,#0048h ;H
    jmpr    cc_Z, IsHour
    cmp     r9,#0046h ;F
    jmpr    cc_z, IsFen
    cmp     r9,#004Dh ;M
    jmpr    cc_Z, IsMonth
    cmp     R9,#0044h ;D
    jmpr    cc_Z, IsDay
    jmpr    cc_UC, NoMatch
IsHour:
    extp    #pag(Date_Address),#1
    mov     r4, pof(Date_Address)+2h
    callr   WordToDigChar
    extp    r13,#2
    mov     [r12],r4
    mov     [R12+#2],r5
    jmpr    cc_UC,Match
IsFen:
    extp    #pag(Date_Address),#1
    mov     r4, pof(Date_Address)
    callr   WordToDigChar
    extp    r13,#2
    mov     [r12],r4
    mov     [R12+#2],r5
    jmpr    cc_UC,Match
IsMonth:
    extp    #pag(Date_Address),#1
    mov     r4, pof(Date_Address)+6h
    callr   WordToDigChar
    extp    r13,#2
    mov     [r12],r4
    mov     [R12+#2],r5
    jmpr    cc_UC,Match
IsDay:
    extp    #pag(Date_Address),#1
    mov     r4, pof(Date_Address)+4h
    callr   WordToDigChar
    extp    r13,#2
    mov     [r12],r4
    mov     [R12+#2],r5
    jmpr    cc_UC,Match
Week:   
    extp    #pag(Date_Address),#1
    mov     r4, pof(Date_Address)+0Ah
    shl     r4,#1
    extp    #pag(szweek+Flash_Address),#1
    mov     r4,[r4+#pof(szweek+Flash_Address)]
    extp    r13,#1
    mov     [r12],r4
    jmpr    cc_UC,NoMatch
Match:
    add     r12,#2     
    sub     r8,#1
NoMatch:
    add     r12,#2
    sub     r8,#1
    jmpr    cc_UC,  Loops   
ProcEnd:
        rets
    main endp
   
    WordToDigChar   proc near
    mov     r5,#0Ah
    mov     MDL,r4
    divu    r5
    mov     r4,MDL
    mov     r5,MDH
    add     r4,r6
    add     r5,r6
    ret
    WordToDigChar   endp
szall:
        db 0ah,00
        db 25h,00,4Dh,00h,08h,67h,25h,00h,44h,00h,0e5h,65h,20h,00h,1Fh,66h
        db 1Fh,67h,24h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h       
szweek:
        db 0E5h,65h,00,4Eh,8Ch,4Eh,09h,4Eh,0DBh,56h,94h,4Eh,6Dh,51h               
Patch   EndS

SRCPatch        Section Code Word At SRC_Address
    Change  Proc far
    extp    r9,#2
    mov     r13,[r8+#02]
    mov     r12,[r8]
    mov     r14,#20h
    mov     [-r0],r14
    calls   seg(Patch+Flash_Address),sof(Patch+Flash_Address)
    add     r0,#2
    Change  endp
SRCPatch    Ends



END

发表于 2005-8-10 00:01:00 | 显示全部楼层
收到,慢慢消化~~谢谢狼大~~
发表于 2005-8-10 00:02:00 | 显示全部楼层
学习ing
发表于 2005-8-10 00:03:00 | 显示全部楼层
这个源码对2128等后续机型太重要了。基本上把各大机型的系统时间等信息全告诉我们了~~可以变出很多花样的。
发表于 2005-8-10 00:04:00 | 显示全部楼层
我一看就晕了,真佩服大师们,你们辛苦了。
发表于 2005-8-10 00:05:00 | 显示全部楼层
我要整点报时的补丁
您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

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

GMT+8, 2025-6-7 07:48

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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