| 
 | 
原来是这样的 
!BAT 
debug off 
checkrange 20111212:-1 read 0x8278 || call :error Not supported grub4dos version! 
set NTBOOT=%~f0 
setlocal 
set ISO_TYPE= 
set ISO_INST= 
set NTPATH= 
echo 
echo NTBOOT by chenall 2013-07-22,$[0101]http://chenall.net 
goto %~1 || goto :NTBOOT_HELP 
 
:FIRADISK.E820 
:WINVBLK.E820 
:VBOOT.E820 
:PE1.E820 
if "%~1"=="" && exit 
call Fn.15 "%~1" "0" && set /a e820=%~1 && call if /i "%e820^%"=="0" && exit 
checkrange 0:-1 calc %e820% || exit 
map --e820cycles=%~1 && map --rehook 
exit 
 
:e820 
shift 1 
set e820=%~1 
if not exist e820 && goto :NTBOOT_HELP 
call Fn.15 "%~1" "0" && set /a e820=%~1 && call if /i "%e820^%"=="0" && goto :NTBOOT_HELP 
checkrange 0:-1 calc %e820% || goto :NTBOOT_HELP 
map --e820cycles=%e820% && map --rehook && shift 1 
set e820= && goto %~1 || goto :NTBOOT_HELP 
 
:menu 
echo %~f0 > (md)0x20000+1 
cat %NTBOOT%.MOD/setf0 > (md)0x20002+1 || echo -n 
configfile %NTBOOT%.LST/MENU.LST 
exit 
 
::检测下一个文件。在使用call :CHECK_FILE %FILE1% %FILE2% 之类的情况下会用到 
:CHECK_NEXT_FILE 
set tmp=%~2 
if not exist tmp && goto :input_file 
shift 
if "%~0"=="%~1" && goto :CHECK_NEXT_FILE 
::检查/查找文件 
:CHECK_FILE 
echo -e Checking file $[0107]%~1 ... 
set file=%~1 
set tmp=%~pnx1 
cat --length=0 %~f1 > nul && root %~d1 > nul ! cat --length=0 %~pnx1 > nul && echo -n ! find --set-root cat --length=0 %~pnx1 > nul || goto :CHECK_NEXT_FILE 
goto :eof 
 
:input_file 
::获取用户输入的文件, 
echo 
echo File not found or not support: $[0105]%file% 
echo  
echo -e Please enter a new path to the file: $[0104]%~x1 
set file= 
set /p:5 file=NTBOOT> 
if not exist file goto :exit 
echo -n > (md)0x28150+28 
echo %file% > (md)0x28150+28 
cat (md)0x28150+28 | set tmp= 
if not exist tmp && goto :input_file 
set tmp=%~x1 
set tmp=%tmp:~0,3% 
call Fn.11 "%file%" "%tmp%" || goto :input_file 
echo 
command %NTBOOT%.CMD/EMPPATH file="%file%" 
call :CHECK_FILE %file% 
exit 
 
:NT5 
:NT6 
:PE1 
::检测需要的模块 
insmod %NTBOOT%.MOD/NTBOOT.MOD || call :error Missing module NTBOOT.MOD... 
::映射NTBOOT启动镜像 
set /u file=NTBOOT.%~1 
map --mem %NTBOOT%.MOD/%file% (rd) || call :error Missing module %file%... 
 
:NTBOOT_START 
::设置默认WINDOWS路径 
if not exist WinDir set WinDir=WINDOWS 
set boot_cfg= 
shift 
set file=%~1 
set tmp=/%WinDir% 
::如果没有加参数或参数是一个磁盘分区 
if not exist file && goto %~0.HDD 
if "%~d1"=="%~1" && goto %~0.HDD 
::以上是NT5或NT6硬盘启动 
if /i "%~0"=="pe1" && set PDIR=WXPE && goto :PE1_BOOT 
command %NTBOOT%.CMD/EMPPATH file="%file%" 
call :CHECK_FILE %file% 
::转到对应的启动类别,比如NT5.IMG_BOOT,NT6.WIM_BOOT,NT6.VHD_BOOT 
goto %~0%~x1_BOOT 
 
:NT5.HDD 
echo -e Searching NT5.X on Hard Disk(/%WinDir%) 
if exist file && root %~1 ! find --set-root --devices=h /%WinDir%/system32/ntoskrnl.exe cat --locate=\0\x35\0\x2E /%WinDir%/system32/version.dll 
goto :NT5_BOOT 
:NT6.HDD 
echo -e Searching NT6.X on Hard Disk(/%WinDir%) 
if exist file && root %~1 ! find --set-root --devices=h /%WinDir%/system32/winload.exe 
goto :NT6_BOOT 
 
:ISO_INST64 
set ISO_TYPE=amd64 
:ISO_INST 
shift 1 
::以下命令用于生成一个空白的软盘(fd0) 
::echo > (md)0x200+2 
::write --offset=0xb (md)0x200+3 \x00\x02\x01\x01\x00\x01\x70\x00\x10\x00\xfd\x01\x00\x08\x00\x01 
::write 0x401FE 0xAA55 
::write 0x40200 0xfffffe 
::map --mem (md)0x200+2 (fd0) 
map --status=0 || map --mem %NTBOOT%.IMG/EMPTY.IMG (0) && map --rehook 
::转换到大写 
set /u boot=%~1.IMG 
set boot=%NTBOOT%.IMG/%boot% 
::自动加载对应驱动的软盘镜像到(fd1) 
map --mem %boot% (fd1) || call :Error Missing Module %boot%... 
::如果用户指定了floppy的话将会由用户指定的镜像代替 
set boot=cdrom 
set ISO_INST=%~1 
goto :%~1 
 
::::AUTO_CONFIG::自动参数配置接口:::::::::::::::::::::::::::::::::::::::::::::::: 
::可以自动配置FIRADISK或VBOOT的启动参数,扩展后也可以设置其它参数。 
::调用方法: call :AUTO_CONFIG VBOOT|FIRADISK [options...] 
::其中options根据配置类型的不同而不同,但有一个参数是相同的boot 
::注:除了boot和opt参数外其它的参数都应该是 type=FILE,例如cdrom=/cd/xp.iso或harddisk=(hd0,0)/test.img之类的 
:AUTO_CONFIG 
set ISO_INST=%~1 
:AUTO_CONFIG_LOOP 
shift 
shift 
:: 
::两个shift之后.%~0就是之前的%~2,%~1就是之前的%~3 
::例子: call :AUTO_CONFIG VBOOT harddisk=/test/test.vhd 
::没有shift之前%~0是:AUTO_CONFIG,两次shift就去掉了前面的两个参数,变成了harddisk. 
:: 
if "%~1"=="" && exit 
::如果参数是boot,则设置boot参数。 
if /i "%~0"=="boot" && set boot=%~1 && goto :AUTO_CONFIG_LOOP 
::如果参数是opt/addons,不调用文件查找检测功能 
set file=%~1 
if /i "%~0"=="opt" || if /i "%~0"=="addons" || if /i "%~0"=="e820" || call :AUTO_CONFIG_FILE 
if /i "%~x1"==".iso" && call Fn.11 "%~n1" "64" && set ISO_TYPE=amd64 && echo -e %ISO_INST%: ISO_TYPE = amd64 
::根据不同参数调用不同的函数,像FIRADISK.HARDDISK 
echo -e %ISO_INST%: %~0=%file% 
call :%ISO_INST%.%~0 %file% 
::下一个参数 
goto :AUTO_CONFIG_LOOP 
:AUTO_CONFIG_FILE 
command %NTBOOT%.CMD/EMPPATH file="%file%" 
call :CHECK_FILE %file% 
goto :eof 
 
:WINVBLK 
call :AUTO_CONFIG %* 
goto :WINVBLK_BOOT 
 
:WINVBLK.CDROM 
map %~1 (0xCD) || map --mem %~1 (0xCD) 
exit 
:WINVBLK.FLOPPY 
map --mem %~1 (fd0) 
exit 
:WINVBLK.HARDDISK 
map %~1 (hd0) || map --heads=255 --sectors-per-track=63 %~1 (hd0) 
map (hd0) (hd) 
map --harddrives=1 
exit 
 
:FIRADISK.@HARDDISK 
:WINVBLK.@HARDDISK 
map --mem --heads=0 --sectors-per-track=0 %~1 (hd0) 
map (hd0) (hd) 
map --harddrives=1 
exit 
:FIRADISK.@CDROM 
:WINVBLK.@CDROM 
map --mem %~1 (0xCD) 
exit 
 
:FIRADISK.#HARDDISK 
:WINVBLK.#HARDDISK 
map --mem --top --heads=0 --sectors-per-track=0 %~1 (hd0) 
map (hd0) (hd) 
map --harddrives=1 
exit 
:FIRADISK.#CDROM 
:WINVBLK.#CDROM 
map --mem --top %~1 (0xCD) 
exit 
 
 
:FIRADISK 
::使用内存地址0x40000开始处的10个扇区存放FIRADISK参数。 
::echo -n > (md)0x210+1 
set fira.opt= 
call :AUTO_CONFIG %* 
::如果内存地址0x40020的数值非0,则说明有写入了参数. 
::read 0x40020 && map --mem (md)0x200+16 (99) 
::echo -e \" >> (md)0x210+1 
map --hook 
if not exist fira.opt && goto :FIRADISK_BOOT 
cat --locate=###### --number=1 (fd1)/%ISO_TYPE%/TXTSETUP.OEM > nul || call :error firadisk.img file error.. 
set offset=%?% 
write --offset=%offset% (fd1)/%ISO_TYPE%/TXTSETUP.OEM value=Parameters,StartOptions,REG_SZ,"%fira.opt%"\r\n 
cat --skip=%offset% --locate=/ --replace=\\ (fd1)/%ISO_TYPE%/TXTSETUP.OEM 
goto :FIRADISK_BOOT 
 
:FIRADISK_BOOT 
:WINVBLK_BOOT 
map --rehook 
::保证(fd1)的位置靠后.详情:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=203313 
call :SwapFloppy || echo -n 
if exist BOOT && %BOOT% 
if /i "%boot%"=="cdrom" && chainloader (0xCD) && boot 
if /i "%boot%"=="harddisk" && chainloader (hd0)+1 && boot 
if /i "%boot%"=="floppy" && chainloader (fd0)+1 && boot 
exit 
 
::软盘重排 
:SwapFloppy 
map --status=0 || map --status=1 || exit 
setlocal 
::A盘FIRADISK/WINVBLOCK,无B盘。 
map --status=1 |; cat --length=0 (0)/txtsetup.oem || exit ! cat --length=0 (0)/firadisk.inf && exit ! cat --length=0 (0)/winvblk.inf && exit 
::A盘空,B盘SRS。 
map --status=1 |; map (0)+1 (1) && map --mem %NTBOOT%.IMG/EMPTY.IMG (0) && map --rehook ! exit 
::A盘SRS,无B盘。 
map --status=0 |; cat --length=0 (1)/txtsetup.oem && map (1)+1 (0) && map --unmap=1 && map --rehook && exit ! exit 
::A盘SRS,B盘FIRADISK/WINVBLOCK。 
map --status=1 || exit 
ls (1)/ > nul || map --unmap=1 && map --rehook && exit 
cat --length=0 (1)/firadisk.inf |; cat --length=0 (0)/firadisk.inf && map (0) (1) && map (1) (0) && map --rehook ! echo -n 
cat --length=0 (1)/winvblk.inf |; cat --length=0 (0)/winvblk.inf && map (0) (1) && map (1) (0) && map --rehook ! echo -n 
::B盘firadisk安装系统,A盘仿真内存的起始地址一定要高出B盘,否则会提示插入A盘 
::B盘winvblok安装系统,A盘仿真内存的起始地址一定要低于B盘,否则会提示插入A盘 
::http://bbs.wuyou.net/forum.php?m ... p;extra=&page=1 
map --status=1 || exit 
set /a addr1=%?% > nul 
map --status=0 || exit 
set /a addr0=%?% > nul 
if %addr0%>=%addr1% && set fdn=0 ! set fdn=1 
if %fdn%==0 && cat --length=0 (1)/firadisk.inf && exit ! if %fdn%==1 && cat --length=0 (1)/winvblk.inf && exit 
map (%fdn%)+1 (rd) && map --mem (rd)+1 (%fdn%) && map --rehook ! echo -n 
endlocal 
exit 
 
::FIRADISK 参数自动设置,可设置CDROM,FLOPPY,HARDDISK等参数 
:FIRADISK.CDROM 
::优先使用直接映射,失败再尝试内存映射。 
set fira.opt=cdrom,vmem=find:%~pnx1;%fira.opt% 
map %~1 (0xCD) || map --mem %~1 (0xCD) 
exit 
:FIRADISK.FLOPPY 
map --mem %~1 (fd0) 
exit 
:FIRADISK.HARDDISK 
map %~1 (hd0) || map --heads=255 --sectors-per-track=63 %~1 (hd0) 
map (hd0) (hd) 
set fira.opt=disk,vmem=find:%~pnx1;%fira.opt% 
exit 
:FIRADISK.OPT 
set fira.opt=%~1;%fira.opt% 
exit 
::以上是FIRADISK 参数自动设置 
 
:VBOOT 
if not exist (0xfd)/vbootldr && map --mem %NTBOOT%.MOD/VBOOT.ISO (0xfd) || call :Error Missing Module VBOOT... 
map --hook && echo VBOOT module loaded successfully. 
echo -n vboot  > (0xfd)/vboot/grub/grub.cfg 
if exist ISO_INST goto :VBOOT_INST 
shift 
::::::::::非ISO_INST是默认启动磁盘为harddisk:::::::::::::::::::: 
::::::::::调用AUTO_CONFIG来配置VBOOT的启动参数::::::::::::::::: 
set boot=harddisk 
call :AUTO_CONFIG vboot harddisk=%* 
goto :VBOOT_BOOT 
::使用VBOOT来安装系统,先映射VBOOT.IMG 
:VBOOT_INST 
call :AUTO_CONFIG %* 
goto :VBOOT_BOOT 
 
::::以下内容为VBOOT的启动参数自动配置:::::::不了解请不要改变,否则会启动失败:::::::: 
:VBOOT.CDROM 
:VBOOT.HARDDISK 
:VBOOT.FLOPPY 
::VBOOT.TAKE_SNAPSHOT // 
uuid () 
::VBOOT比较笨,必须小写。。 
set /l UUID=%?% 
set /l tmp=%~x0 
echo -e -n %tmp:~1%=(UUID=%UUID%)"%~pnx1"  >> (0xfd)/vboot/grub/grub.cfg 
exit 
:VBOOT.OPT 
echo -e -n %~1  >> (0xfd)/vboot/grub/grub.cfg 
exit 
::::以上内容为VBOOT的启动参数自动配置::::::: 
 
:VBOOT_BOOT 
echo -e boot=%boot%\nboot >> (0xfd)/vboot/grub/grub.cfg 
if exist BOOT && %BOOT% 
::map --unmap=11 
::map --rehook 
::call :SwapFloppy 
kernel (0xfd)/vbootldr 
boot 
exit 90 
 
:NT6.VHDX_BOOT 
:NT6.VHD_BOOT 
::固定用法,本软盘对应的BCD文件专用.下同 
set boot_cfg=:BCD_CFG_VHD#WIM b VHD 
goto :NT6_BOOT 
 
:NT6.WIM_BOOT 
set boot_cfg=:BCD_CFG_VHD#WIM a WIM 
goto :NT6_BOOT 
 
:NT5.IMG_BOOT 
set boot_cfg=:NT5_RAM_CFG 
goto :NT5_BOOT 
 
::GET_ARC_PATH,把一个路径转换为ARC格式表示 
:GET_ARC_PATH 
checkrange 0:1 read 0x82a0 && goto :FD_ARC 
::checkrange 0x9E:0xFF read 0x82a0 && goto :CD_ARC 
:HD_ARC 
DISKID ret=0x60000 || goto :CD_ARC 
set /a R=*0x60000>>24&0xFF 
set /a P=*0x60000>>16&0xFF 
echo multi(0)disk(0)rdisk(%R%)partition(%P%)%tmp% > (md)0x3000+4 
:SET_ARC_PATH 
::替换GRUB4DOS路径的/为WINDOWS路径\ 
cat --locate=/ --replace=\\ (md)0x3000+4 
::设置变量ARC_PATH 
cat (md)0x3000+4 | set ARC_PATH= 
goto :eof 
 
:FD_ARC 
set /a R=*0x82A0&0xFF 
echo multi(0)disk(0)fdisk(%R%)%tmp% > (md)0x3000+4 
::如果是(fdx,y)的形式,映射成(fdx) 
checkrange 0xFFFFFF00 read 0x829b || map +1 () 
goto :SET_ARC_PATH 
 
:CD_ARC 
set /a R=*0x82A0&0xFF 
echo multi(0)disk(0)cdrom(%R%)%tmp% > (md)0x3000+4 
goto :SET_ARC_PATH 
 
:NATIVE_CFG 
echo cd ?:%~pnx1 > (rd)/NATIVE.CFG 
cat --locate=/ --replace=\\ --length=256 (rd)/NATIVE.CFG 
exit 
 
:PE1_BOOT 
######以下三行是提供给NATIVE核心的PE使用的###################### 
echo -e @echo off\r\ncd ?:%~p1\r\ncd ?:%~pnx1 > (rd)/NATIVE.CFG 
################################################################ 
cat --locate=/ --replace=\\ --length=256 (rd)/NATIVE.CFG 
if /i "%file%"=="%~x1" && set file=/boot/imgs/boot%~1 
:PE1.OPTIONS 
if /i "%~2"=="PDIR" && set PDIR=%~3 
if /i "%~2"=="OPTIONS" && set option=%~3 
if /i "%~2"=="NTPATH" && set NTPATH=%~3 
if /i "%~2"=="Addons" && call :Addons %~3 pe 
if /i "%~2"=="e820" && call :PE1.E820 %~3 
shift 2 
shift 2 
if not "%~2"=="" goto :PE1.OPTIONS 
command %NTBOOT%.CMD/EMPPATH file="%file%" 
call :CHECK_FILE %file% %file:~0,-1%_ 
if not exist NTPATH && set NTPATH=%tmp% 
call :NATIVE_CFG %NTPATH% 
::如果是ISO格式就添加一个参数/rdexportascd 
if /i "%tmp:~-3,2%"=="is" && set option=/rdexportascd %option% 
if /i "%tmp:~-3%"=="wim" && set option=%option% /rdimageoffset=8192 /rdimagelength=3161088 
call :GET_ARC_PATH 
echo -e [SetupData]\r\nBootDevice="ramdisk(0)" > (rd)/BOOT.INI 
echo BootPath=\%PDIR%\SYSTEM32\  >> (rd)/BOOT.INI 
echo OsLoadOptions="/minint /fastdetect %option% /rdpath=%ARC_PATH%" >> (rd)/BOOT.INI 
::消除多余的空字符,否则会启动失败 
cat --locate=\0 --replace=; (rd)/BOOT.INI 
::修改默认路径 
if /i not %PDIR%=="I386" && write --offset=0x2A4FB (rd)/SETUPLDR.BIN %PDIR% 
::修改默认WINNT.SIF文件名 
write --offset=0x2a432 (rd)/SETUPLDR.BIN BOOT.INI\0 
if /i "%DEBUG%"=="on" && cat (rd)/BOOT.INI && checkrange 0x11b pause --test-key && goto :exit 
if exist BOOT && %BOOT% 
map --mem (rd)+1 (0xfd) 
::map --unmap=11 
map --rehook 
call :SwapFloppy || echo -n 
chainloader (0xfd)/SETUPLDR.BIN 
boot 
exit 
 
:BCD_CFG_VHD#WIM 
::本软盘BCD对应的特定语句,修改默认启动项 
write --offset=0x343C (rd)/BOOT/BCD %~1 
write --offset=0x35DC (rd)/BOOT/BCD %~1 
::未公开功能。把变量的值ASCII字符串使用UNICODE编码放到内存0x40000位置。编码方式\xH1\0\XH2\0..... 
WENV get tmp=0x40000 
::替换路径字符中的/为\ 
cat --locate=\\x2F --replace=\\x5C (md)0x200+3 
::本软盘BCD对应的特定语句,修改文件路径 
cat --locate=\\%~2_ --number=2 (rd)/BOOT/BCD | call :BCD_CFG_PATH= 
exit 
 
:BCD_CFG_PATH 
WENV call write --offset=0x%~1 (rd)/BOOT/BCD *0x40000$ 
WENV call write --offset=0x%~2 (rd)/BOOT/BCD *0x40000$ 
exit 
 
:NT5_RAM_CFG 
set default=ramdisk(0)/%WinDir% 
echo %default%="ramdisk" #fastdetect #noguiboot %opt% #rdpath=%ARC_PATH% >> (rd)/BOOT.INI 
exit 
 
:NT5_HDD_CFG 
set default=%ARC_PATH% 
echo %default%="NT5" #fastdetect %opt% #NoExecute=AlwaysOff #PAE  >> (rd)/BOOT.INI 
exit 
 
:NT5_BOOT 
set /a cur_drv=*0x82A0&0x7F 
set /a cur_pri=*0x829C>>16&0xFFFF 
clear 
echo 
echo -e $[0105]  Will Boot NT5.X From $[0102](hd%cur_drv%,%cur_pri%)$[0106]%tmp% 
echo 
echo -e $[0101]  Press $[1103]Esc$[0101] to quit! 
checkrange 0x11b pause --wait=3 --test-key && goto :exit 
call :GET_ARC_PATH 
shift 1 
set opt=%* 
echo [operating systems] > (rd)/BOOT.INI 
if exist boot_cfg && call %boot_cfg% ! call :NT5_HDD_CFG 
echo [boot loader] >> (rd)/BOOT.INI 
echo timeout=0 >> (rd)/BOOT.INI 
echo default=%default% >> (rd)/BOOT.INI 
::替换GRUB4DOS格式路径的\为/ 
cat --locate=/ --replace=\\ (rd)/BOOT.INI 
::替换参数,前面写入的参数中的/都是使用#代替的。 
cat --locate=# --replace=/ (rd)/BOOT.INI 
::消除空字符(替换为;) 
cat --locate=\0 --replace=; (rd)/BOOT.INI 
if /i "%DEBUG%"=="on" && cat (rd)/BOOT.INI && checkrange 0x11b pause --test-key && goto :exit 
if exist BOOT && %BOOT% 
map --mem (rd)+1 (0xfd) 
::map --unmap=11 
map --rehook 
chainloader (0xfd)/NTLDR 
boot 
exit 
 
:NT6_NO_CONFIG 
set /a offset=0x%~1+0x14 
write --offset=%offset% (rd)/BOOT/BCD \0 
exit 
 
:BOOTMGR 
set TMP_ROOT=%@root% 
cat --length=0 %~1 > nul && root %~d1 > nul ! cat --length=0 %~pnx1 > nul && echo -n ! find --set-root cat --length=0 %~pnx1 > nul || exit 
FAT del (rd)/BOOTMGR > nul || echo -n 
FAT copy /o %@root%%%~pnx1 (rd)/BOOTMGR > nul || echo -n 
root %TMP_ROOT% > nul 
set TMP_ROOT= 
exit 
 
:NT6_BOOT 
::附加参数 
if /i "%~2"=="NODETECTHAL" && cat --locate=26000010 (rd)/BOOT/BCD | call :NT6_NO_CONFIG= && shift 2 && goto :NT6_BOOT 
if /i "%~2"=="BOOTMGR" && call :BOOTMGR %~f3 && shift 2 && shift 2 && goto :NT6_BOOT 
::shift 2 
::if not "%~2"=="" goto :PE1.OPTIONS 
::获取当前磁盘号 
set /a cur_drv=*0x82A0&0x7F 
set /a cur_pri=*0x829C>>16&0xFFFF 
clear 
echo 
echo -e $[0105]  Will Boot NT6.X From $[0102](hd%cur_drv%,%cur_pri%)$[0106]%tmp% 
echo 
echo -e $[0101]  Press $[1103]Esc$[0101] to quit! 
checkrange 0x11b pause --wait=3 --test-key && goto :exit 
if exist boot_cfg && call %boot_cfg% 
 
::获取MBR签名 
dd if=(hd%cur_drv%)+1 of=(md) bs=1 count=4 skip=0x1b8 seek=0x60000 
::获取当前分区偏移 
cat --length=0 ()-1 
dd if=(md) of=(md) bs=1 count=8 skip=0x8290 seek=0x60004 
::修改MBR签名 
cat --locate=\x53\xB7\x53\xB7 --replace=*0x60000 --hex=4 (rd)/BOOT/BCD 
cat --locate=\0\x7E\0\0 --replace=*0x60004 --hex=8 (rd)/BOOT/BCD 
if /i not "%WinDir%"=="windows" && call :CHG_NT6_WINDIR 
if /i "%DEBUG%"=="on" && call :NT6_DEBUG 
if exist BOOT && %BOOT% 
map --mem (rd) (fd0) 
::map --unmap=11 
map --rehook 
if exist ()/boot/slic.bin || find --set-root /boot/slic.bin || echo -n 
if exist ()/boot/slic.bin && SLIC ()/boot/slic.bin  
root (0) 
chainloader (fd0)/BOOTMGR 
boot 
exit 
 
:NT6_DEBUG 
find --set-root --devices=h /ntboot_bcd || call :error DEBUG: Missing file /ntboot_bcd. 
dd if=(rd)/BOOT/BCD of=()/ntboot_bcd 
exit 
 
:CHG_NT6_WINDIR 
::以下都是测试,替换BCD里面WINDOWS目录,我自己也没有用过不知能否正常使用。 
WENV get WinDir=0x60000 
WENV call write --offset=0x3F76 (rd)/BOOT/BCD *0x60000$ 
set tmp=%WinDir%\system32\winload.exe 
WENV get tmp=0x60000 
WENV call write --offset=0x39A6 (rd)/BOOT/BCD *0x60000$ 
exit 
 
:error 
pause Error: %* 
:exit 
root %NTBOOT% 
root () 
exit 1 
 
:FIRADISK.Addons 
:WINVBLK.Addons 
:VBOOT.Addons 
:Addons 
setlocal 
set addons=%* 
call Fn.11 "(/" "%addons:~0,1%" || set addons=%NTBOOT%.MOD/%addons% 
%addons% || echo -n 
endlocal 
exit 
 
:NTBOOT_HELP 
echo 
echo Usage: 
echo $[0102]        NTBOOT $[0107]NT5$[0105]|$[0107]NT6$[0105][=$[0107]root$[0105]|$[0107]file$[0105]] 
echo 
echo $[0102]        NTBOOT $[0105]PE1=file [PDIR=pdir] [OPTIONS=options] [ADDONS=cmd] 
echo 
echo $[0102]        NTBOOT $[0105]VBOOT=file [options...] 
echo 
echo $[0102]        NTBOOT $[0105]E820=N [options...] 
echo 
echo $[0102]        NTBOOT $[0107]ISO_INST$[0105]|$[0107]ISO_INST64$[0105]=[$[0107]firadisk$[0105]|$[0107]vboot$[0105]|$[0107]winvblk$[0105]] $[0106][options...] 
echo $[0106]        options: [[@]CDROM=iso_file] [FLOPPY=srs_img] [[@]HARDDISK=hdd_img]  
echo $[0106]                        [BOOT=cdrom|floppy|harddisk] [ADDONS=cmd] [...] 
echo $[0106]                 "@" will map image to RAM(used for firadisk/winvblk only). 
echo $[0106]                 "#" will map image to top of RAM(firadisk/winvblk only). 
echo 
pause > nul 
exit 2 |   
 
 
 
 |