RainMoon 发表于 2005-8-10 00:00:00

[FLASH源码交流]智能挂机

智能挂机的源代码,程序本身没什么可看的本来不打算帖了,都很简单,
看到星星说的那个想法,利用这个稍作修改可以实现,所以抛砖引玉 :)有着方面要求的可以自己研究一下,也可以改变成其他通话时候的设定功能。

$Segmented
$Mod167

; Menu Function
TipMenuEQU 0E60508h

;立即数
HungUp                EQU        3AH        ;智能挂机(3A/58秒)
STR_ON                EQU        6D6H        ;激活
STR_OFF                EQU        6D7H        ;关闭

;Address for Patch Data
Patch_Address    EQU 027E0F0h ;Free Space in Flash (CHANGE THIS)
PlayKey_Address   EQU 027E158h ;Free Space in Flash (CHANGE THIS)

Patch Section Code Word At Patch_address ; Start Patch at Patch_Address

;--智能挂机---FOR 6688v55-------RainMoon----------------------------------;
   main proc far; start main of patch
    ;// At Smart Time   
            calls 0A0h,02FDAh
        calls seg(ReadSOF),sof(ReadSOF)
            cmp r12,#1
            jmpr cc_NZ,loc_Ori       
    ;// r4 MOD r12 = HungUp Time
            mov r12,#3Ch
            mov MDL,r4
            div r12
            mov r12,MDH
            cmp r12,#HungUP
            jmpr cc_NZ,loc_Ori           
    ;// HungUp
            calls 0D5h,0ACB4h
            ;calls 0B3h,062A8h;// Test Func OpenLight
            mov r12,#0            ;// SET Zero after run
            calls seg(WriteSOF),sof(WriteSOF)
loc_Ori:
        calls 0A0h,02FDAh
            rets
   main endp
           
   ReadSOF proc far      
           mov DPP0,#34h
            mov r12,022A2h
            rets
    ReadSOF endp        
      
WriteSOF proc far
            mov DPP0,#34h
            mov 022A2h,r12
            rets
WriteSOF endp
   
    SmartONOFF proc far; start main of patch       
            mov r13,#STR_OFF
        calls seg(ReadSOF),sof(ReadSOF)
        cmp r12,#1
        jmpr cc_NZ,loc_CaseZero
        mov r12,#0
        jmpr cc_UC,loc_ToWri
loc_CaseZero:
        mov r12,#1
loc_ToWri:
            calls seg(WriteSOF),sof(WriteSOF)
            sub r13,r12
            mov r12,#1
            calls seg(TipMenu),sof(TipMenu)
            rets
    SmartONOFF endp
   
Patch   EndS

Patch2 Section Code Word At PlayKey_address ; Start Patch at Patch_Address
    PlayKey proc far
            cmp r12,#3Eh
            jmpr cc_Z,loc_OKey
            cmp r12,#62h
            jmpr cc_Z,loc_OKey
            jmps 0D5h,0ADB2h
    loc_OKey:
            jmps 0D5h,0ADAEh
    PlayKey endp
Patch2   EndS

END

zhouzheng 发表于 2005-8-10 00:01:00

移植到X618上容易吗?

RainMoon 发表于 2005-8-10 00:02:00

这个移植问题应该不大,只需要根据程序比对修改几个地方就行了,另外全局变量参数要重新测试一个适合小3上用的,不过我没有小3哪。 请有小3的Patcher帮你吧。

zhouzheng 发表于 2005-8-10 00:03:00

谢谢,RainMoon

MrJewes 发表于 2005-8-10 00:04:00

这个东西好啊

14273272 发表于 2005-8-10 00:05:00

2128呢?》

rain_wzl 发表于 2005-8-10 00:06:00

高手,能帮我做一个MC60可用的自动挂断补丁吗?

bobydll 发表于 2005-8-10 00:07:00

我要个3118的行吗
页: [1]
查看完整版本: [FLASH源码交流]智能挂机