[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
移植到X618上容易吗? 这个移植问题应该不大,只需要根据程序比对修改几个地方就行了,另外全局变量参数要重新测试一个适合小3上用的,不过我没有小3哪。 请有小3的Patcher帮你吧。
谢谢,RainMoon 这个东西好啊 2128呢?》 高手,能帮我做一个MC60可用的自动挂断补丁吗? 我要个3118的行吗
页:
[1]