- 积分
- 431
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
******自动加载指定路径BIN文件数据到指定RAM地址******
56版有个加载参数文件的补丁,LPF- Loadable Parameter's File
作用是开机把MMC卡根目录下的param.bin里的68个字节数据,加载到RAM地址C430(03:430)
补丁很有趣,没有说param.bin里的数据哪里来的,也没说明什么地方用到这些参数,所以应该只是作为一个使用例子,供别的补丁开发者参考
可以看到56版后期出现的一些BIN工具以及和加载文件有关的一些补丁用到了这个补丁提到的文件处理函数
现在我把补丁中用到的函数替换成5508版对应的函数,附说明供大家参考
;---------------------------------------------------------------------------------------------------------------------------------------------------
;56版原始补丁
;***LPF- Loadable Parameter's File v1.1*****
; Firmware : sl45v56
; Author : DeadManS
; Created : September 19, 2004
; This patch loadi ng! file a:\param.bin (see attachment) when phone is startup in address
; C430h max file size 68 bytes (if you know another not used free space tell
; me i recompile patch)
; whith this patch whe have a easy way to change parameters in patch
; (coordinats for some patch or enather parameters), for
; change parametrs for patch his using my LPF we need only change
; param.bin and reboot the phone
; Uninstall previos version !!!
; Changes: no more need to reboot you phone to apply new setting, just go in Setup/Device/Display/ScreenStyle and load you Favorite theme
00F398: 66FCFF3F DAE090D2
3C5E04: 66FCFF3F DAE090D2
;---- New block. Segment address:E00000--------
0x40D290: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88E088D088C08840E6FD8303E6FCD412
0x40D2A0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E00EE00FDADF3EA746F4FFFF2D0CF0C4
0x40D2B0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C0E03EE6FD3004E6FF4400DADFAEAB
0x40D2C0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 98C0DADF70C5984098C098D098E066FC
0x40D2D0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FF3FDB00413A5C706172616D2E62696E
0x40D2E0: FF 00
;---------------------------------------------------------------------------------------------------------------------------------------------------
下面是文件处理会用到的函数,后2个函数补丁没有用到
fileRead DADFAEAB-->DADBCCB3(5508)
fileOpen DADF3EA7-->DADB5CAF(5508)
fileClose DADF70C5-->DADB8ECD(5508)
fileWrite DADFFEB0-->DADB1CB9(5508)
upCase DADF3ACE-->DADBA6D8(5508)
;下面是补丁用到的2个入口
;1.开机执行入口,类似我们用的开机执行一次挂钩
00F398:66FCFF3F-->01B7CC:66FCFF3F(5508)
;2.手动执行入口,进其他设定-手机设置-显示屏-显示方式-选择一个动画,就可以手动执行了
3C5E04:66FCFF3F-->3795F6:66FCFF3F(5508)
;下面的VKP,入口和函数都已改成55版的,地址没改,用的时候自己定义,RAM地址也没改,注意补丁用的C430在55版是有数据的,所以也要自己找空白空间
0x40D290: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88E088D088C08840E6FD8303E6FCD412
0x40D2A0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF E00EE00FDADB5CAF46F4FFFF2D0CF0C4
0x40D2B0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 88C0E03EE6FD3004E6FF4400DADBCCB3
0x40D2C0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 98C0DADB8ECD984098C098D098E066FC
0x40D2D0: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FF3FDB00413A5C706172616D2E62696E;文件路径存放A:\param.bin
0x40D2E0: FF 00
;文件路径可以带子文件夹,只能用英文,把路径+文件名用UniConv转换成Sie内码,要去掉前面的95,必须以00结束
;---------------------------------------------------------------------------------------------------------------------------------------------------
;反汇编
40D290: 88 E0 : mov [-r0], r14
40D292: 88 D0 : mov [-r0], r13
40D294: 88 C0 : mov [-r0], r12
40D296: 88 40 : mov [-r0], r4
40D298: E6 FD 83 03 : mov r13, #383h
40D29C: E6 FC D4 12 : mov r12, #12D4h ;调用文件路径存放数据:383hx4000+12D4h=0x40D2D4
40D2A0: E0 0E : mov r14, #0
40D2A2: E0 0F : mov r15, #0
40D2A4: DA DB 5C AF : calls 0DBh, loc_DBAF5C ;fileOpen
40D2A8: 46 F4 FF FF : cmp r4, #0FFFFh
40D2AC: 2D 0C : jmpr cc_Z, loc_40D2C6 ;文件不存在就跳到0x40D2C6
40D2AE: F0 C4 : mov r12, r4
40D2B0: 88 C0 : mov [-r0], r12
40D2B2: E0 3E : mov r14, #3
40D2B4: E6 FD 30 04 : mov r13, #430h ;占用的RAM地址:C430(3:430h)
40D2B8: E6 FF 44 00 : mov r15, #44h ;数据大小size=68(16进制:44)
40D2BC: DA DB CC B3 : calls 0DBh, loc_DBB3CC ;fileRead
40D2C0: 98 C0 : mov r12, [r0+]
40D2C2: DA DB 8E CD : calls 0DBh, loc_DBCD8E ;fileClose
40D2C6: 98 40 : loc_40D2C6:
40D2C6: 98 40 : mov r4, [r0+]
40D2C8: 98 C0 : mov r12, [r0+]
40D2CA: 98 D0 : mov r13, [r0+]
40D2CC: 98 E0 : mov r14, [r0+]
40D2CE: 66 FC FF 3F : and r12, #3FFFh ;还原入口调用时覆盖的数据
40D2D2: DB 00 : rets
有汇编源文件就可以看的很清楚,要用在55版上除了替换函数和入口还要看到寄存器传入的参数是怎么来的,调用文件路径0x40D2D4必须跟着你用的地址一起改
用的时候自己找RAM地址和定义一下数据大小,BIN文件里放上你需要的数据,开机入口和手动执行入口可以根据自己的需要使用,66FCFF3F只是恢复入口调用时的占用,用别的入口就要跟着改,
这个补丁和我们以往用的BIN加载数据,不同的地方是:
1.直接读取打开指定路径的文件数据,不需要用可执行入口调用
2.把文件里的数据直接加载到指定RAM地址,不需要通过8000h过渡再到EEP再到RAM。
3.要注意:这里的bin文件只放要用的数据,和我们通常用的可执行BIN文件是两回事,所以不要从MMC卡手动执行它,会出错的 |
评分
-
查看全部评分
|