|
关于内存变量、内部函数调用以及内存使用的一些想法
现在,内存变量、内部函数调用以及内存的用法中都使用字面数字量的形式,这种形式可读性差,而且容易出错,我有一个想法,能不能模仿c语言头文件和宏定义的形式,把这些都定义成变量放到一个或几个批处理文件中供批处理的编写者使用,这样菜鸟也能使用这些高级功能了。
例如:- !bat
- #(bd)/boot/grub/mem_var.h
- set boot_part=0x8208
- set grub4dos_date=0x8278
- set boot_drive=0x8280
- set filesize=0x0x8290
- set current_part=0x829C
- set current_drive=0x82A0
- set current_menu_path=0x8217
复制代码 用法:
#检查是不是20110918的Grub4dos
command mem_var.h
checkrange 20110918 read %grub4dos_data%
!bat
#(bd)/boot/grub/func.h
set sprintf=0 0
set putstr=1
set getxy=4
set gotoxy=5
set substring=10
set strstr=11
set strlen=12
set strtok=13
set strncat=14
set strcmp=15
set strcpy=16
set getkey=17
set checkkey=18
用法:
command func.h
call Fn %sprintf% "This is a test string"
#获取当前菜单的路径,修改自Chenall
call Fn %sprintf% %current_menu_path% | set menu=-
- !bat
- #(bd)/boot/grub/mem.h
- set menu_buildin=(md)4+8
复制代码 用法:
#调用内置菜单
configfile %menu_buildin%
这样一来,可读性大为改善,而且还有一个好处,将来如果grub4dos的内存变量、内存布局、内部函数改变了,只需要修改头文件,而不需要修改批处理,批处理更容易维护了,不需要随着grub4dos的升级而升级。
我计划整理几份头文件,但是我对内存变量、内部函数调用以及内存的用法不太熟悉,各位grub4dos批处理高手能否提供你们常用的内存变量地址、内存文件地址以及相关资料。
[ 本帖最后由 dihuo0 于 2011-9-28 08:22 编辑 ] |
|