Skip to content

Instantly share code, notes, and snippets.

@JollyWizard
Last active March 4, 2024 05:40
Show Gist options
  • Save JollyWizard/c87b50001658a6ff1a336cf3259413ee to your computer and use it in GitHub Desktop.
Save JollyWizard/c87b50001658a6ff1a336cf3259413ee to your computer and use it in GitHub Desktop.
Grub4dos Changelog 0.4.6a
Update instructions:
2024-02-26 (yaya)
Improve uuid/vol function to support more than 10 partitions.
2023-11-27 (yaya)
Fixed fragment slot calculation.
Fix cdrom parsing. issues #431
2023-10-14 (yaya)
Fixed the problem introduced by adding variable menu_tab_ext.
Fix font function.
2023-09-22 (yaya)
Fixed the problem of blurred screen when switching resolution.
Fix grldr.mbr. issues #427
Add the variable menu_tab_ext to avoid repeatedly setting the graphics mode, loading the background image and font library when re-entering the main menu.
For example: calc *0x8312&1 > nul || graphicsmode -1 800
calc *0x8312&2 > nul || splashimage /boot/grub/lt.jpg
calc *0x8312&4 > nul || font /boot/grub/unifont.hex.gz
2023-08-18 (yaya)
Fixed the bug introduced in the 2023-06-15 patch, bootmgr cannot load grldr.
Improve the judgment of grldr.mbr and grldr.pbr on FAT12/FAT16 partitions.
Fixed the overflow of grldr.mbr to avoid the problem that grldr cannot be loaded when it is late. issues #424
2023-07-01 (yaya)
Fixed timeout function. issues #418
2023-06-23 (yaya)
Number of fragments increased from 39 to 126.
Avoid partition entry holes. issues #416
2023-06-15 (yaya)
Fixed configfile function file name overflow.
Improve the color function help information. issues #414
2023-06-05 (yaya)
Compile using gcc-11 higher version
2023-03-01 (yaya)
Change the allocation range of grub_malloc function.
2023-02-23 (yaya)
Add external timer. (One of the applications, external command progress bar ProgressBar).
Fixed the issue where the last line of the compression menu was missing without a newline character.
Fixed an issue that caused single frame errors when switching the video mode menu.
Adjust the memory usage of the function to solve the problem of overwriting the font library when the screen resolution is greater than 1600*1200. Font size and screen resolution are now unlimited.
2022-12-22 (yaya)
Undo the patch for issues #384. This will cause the external command SISO and RUN to list files, and only the first two extensions will be displayed.
2022-11-28 (yaya)
Fixed the problem of blurry screen when scrolling if the first character of the $[ABCD] function of the echo function is used in the VM (VBOX) console under the BIOS environment. issues #381
Fixed animation function of splashimage function. issues #387
Correct the graphics function to avoid scrolling in the command line in graphics mode and line 24 being cleared by spaces with other attributes.
Fixed the mode setting problem of graphicsmode function. issues #386
Eliminate extra space characters at the end of echo @%*@. issues #384
Avoid echo$[0xf0] outputting 00 characters. issues #385
2022-10-26 (yaya)
The calc function supports 64-bit division. Add variable @retval64 to return the 64-bit calculated value of the calc function. issues #380
The [-P:XXYY] function of the echo function allows XX (YY) to be a hexadecimal value. issues #383
Fixed the problem of blurry screen when scrolling if the first character of the $[ABCD] function of the echo function is used in the VM (VBOX) console under the BIOS environment. issues #381
2022-09-15 (yaya)
The partnew function adds the '--force' parameter to allow overwriting independent partitions.
2022-08-14 (a1ive)
Command lines larger than 255 bytes are allowed when booting from GRUB2 (for protocol versions 2.05 and lower, the maximum bytes are still 255).
2022-01-18 (yaya)
Undo absorbs trailing spaces on the command line. Add variable: current horizontal pixel (0x834c).
2021-10-15 (yaya)
Fixed the problem that when the pipe character '|' is followed by a call (or goto) label, a space must be added. issues #341
2021-10-13 (yaya)
Enhanced text color functionality for menu items, item comments, and menu strings. For example:
title boot $[0xff00ff]Windows $[]10x64
Fixed write operation error when NTFS has offset.
Fixed an error in the dd function when moving backward in the same file.
Absorb trailing spaces on the command line.
Fixed bug with unloading debris slots.
2021-05-28 (yaya)
Improved hotkeys. Any English letters in the menu items can be used as hot keys.
Add parameters: setmenu --hotkey-color=COLOR to set hotkey color.
For example:
setmenu --hotkey-color=0xffff
hotkey -A [F3] "reboot" [Ctrl+d] "commandline"
title [F4] Boot Win
title Boot ^Win 10
2021-05-16 (yaya)
Add else function to batch processing. Added {scriptset} notation.
like:
if condition
{
script set
if condition {
Script Set }
else {
Script Set }
}
else if condition
{
script set
}
else
{
script set
}
Notice:
1. The brace must be the end of a line.
2. The script set can be written in multiple lines.
3. Braces can be nested inside.
2021-04-28 (yaya)
Improve batch debugging, use line numbers as breakpoints, 10 breakpoints can be used.
debug batch file name parameter
b Set breakpoints (10). For example: b 45 (current batch, line 45); b p2,134 (batch No. 2, line 134)
bl displays breakpoints (breakpoint number, batch number, batch line number)
bc clears breakpoints. For example: c2 (clears breakpoint No. 2); c (clears all breakpoints)
n run to breakpoint
c Enter the command line and press the 'ESC' key to return to batch debugging
s skip this line
e Run the batch to the end
q exit batch processing
p Single step execution (across subroutines)
Other single-step execution (entering when encountering a subroutine)
2019-12-23(chenall)
1. Support multi-line initrd.
2019-12-20(yaya)
1. Improve the setmenu string function, add index and centering in the menu area. Strings can use background colors.
setmenu --string[=iINDEX]=[X|s|m]=[-]Y=COLOR="STRING"
The range of iINDEX is i0-i15. If there is no =iINDEX, the index is automatically incremented.
If the horizontal position is s, the string is centered in the full screen; if the horizontal position is m, the string is centered in the menu area.
2. Dynamically update the date and time and add a title, which can display Chinese.
For example: "date&time date time: =MMM.dd.yyyy HH:mm:ss"
2019-10-27(yaya)
1. Fixed the error of udf file system processing files larger than 4Gb. (issues #216)
2. Fixed the map function fragment mapping slot error. (issues #212)
3. Fixed the problem that the vol function does not set the new root directory. (issues #214)
4. The shape of the highlighted menu indicator can be modified at 0x8308. Saves the selected menu item to 0x8276 with or without the indicator. (issues #213)
5. Improve the color function.
6. Fixed the problem of setmenu --string="date&time" affecting countdown display.
2019-09-09(yaya)
1. The setmenu function adds --keyhelp-on* --keyhelp-off parameters.
2. Improved setmenu --string negative line setting so that it does not change with temporary adjustment of font size.
3. Fixed the problem that animation cannot be played during checkkey.
2019-08-08(yaya)
The menu dynamically updates the date and time every second.
1. Specify date and time format
setmenu --string=x=y=color="date&time=FORMAT"
For example: "date&time=MMM.dd.yyyy HH:mm:ss"
"date&time=dd/MMM/yy hh:mm:ss AP"
2. Implies ISO8601 standard date and time format (yyyy-MM-dd HH:mm:ss)
setmenu --string=x=y=color="date&time"
3. Clear date and time
setmenu --string=date&time
2019-07-14(yaya)
Partitions beyond 2TB are supported.
2019-06-13(yaya)
Fix color function. Added --64bit parameter, used to specify the value <=0xff as 64-bit color.
Supports 15-bit per pixel graphics mode (i.e. 5:5:5 mode).
2019-05-07(yaya)
Improve setkey command and help, fully support Hungarian keyboard (provided by steve).
Improve displaymem and bootlace commands.
2019-03-25(yaya)
Fixed an issue where dynamic VHD is no longer supported.
Conditional menu items (iftitle) support graphical menus.
Improved graphics menu: supports background highlighting and mixed graphics and text.
setmenu --graphic-entry=Graphic type=Number of graphic menu rows=Number of graphic menu columns=Graphic width=Graphic height=Graphic line gap graphic file
When graphics and text are mixed, the settings for graphics and text selections (highlighted items) are independent and can be set independently.
If highlighting only needs to be achieved through text, the graphics type can be set to 0x90.
Graphic type:
Bit 0: Foreground highlight Bit 1: Flip foreground color Bit 2: Graphic frame Bit 3: Background highlight Bit 4: Mixed graphics and text Bit 7: Transparent background
The graphics line gap is in the mixed graphics and text mode and cannot be adjusted at will. If the gap is not ideal, you can set the graphics gap to zero. Then use increased character spacing to achieve this. (setmenu --font-spacing=0:n)
2018-12-23(yaya)
Fixed the problem of no alarm when reading disk out of bounds.
2018-9-19(yaya)
Replace newlines in the title string variable.
2018-8-21(yaya)
Add setmenu --auto-num-all-on parameter.
Number all titles. (the --auto-num-on parameter only numbers the boot title)
Note: 0x8274 00/01/02=Disable automatic numbering/Number only boot titles/Number all titles
0x8275 Characters between title number and title content. For example: 0x20=' ' 0x2d='-'
0x8276 Returns the current title number. (based on all titles)
2018-7-1(yaya)
Add setmenu --triangle-on --triangle-off parameters to turn on/off the menu triangle indicator. Open by default.
2018-6-29(yaya)
1. Add setmenu --middle-align parameter. Menu items and menu item help centering. (issues #179)
2. Correct the cursor size to change with the dot matrix character size. (issues #180)
2018-6-12(yaya)
1. Add beep function to play music. (issues #175)(issues #176)
beep [--start|--mid|--end] [--play=N] [--nowait] frequency duration...
Frequency: Hz Duration: ms Maximum 126 notes.
N: Number of playback times 0-255. 0 means to stop playing, 255 means continuous playback (press any key to stop playing).
When there are many syllables, they can be written in different lines. Use [--start|--mid|--end] to specify.
Example 1: Alert
beep --play=10 400 20 500 20 600 20 700 20 800 20 900 20 1000 20 1100 20 1200 20 1300 20 1400 20 1500 20 1600 20
Example 2: Jasmine
beep --start 330 440 330 220 392 220 440 220 522 220 522 220 440 220 392 440 393 220 440 220 392 880
beep --mid 330 440 330 220 392 220 440 220 522 220 522 220 440 220 392 440 392 220 440 220 392 880
beep --mid 392 440 392 440 392 440 330 220 392 220 440 440 440 440 392 880
beep --mid 330 440 293 220 330 220 392 440 330 220 293 220 261 440 261 220 293 220 261 880
beep --mid 330 220 293 220 261 220 330 220 293 660 330 220 392 440 440 220 522 220 392 880
beep --mid 293 440 330 220 392 220 293 220 330 220 261 220 220 220 196 880 220 440 261 440
beep --end --play=255 293 660 330 220 261 220 293 220 261 220 220 220 196 1320
2. Improve the algorithm for image transparent background.
3. Modify grub_memmove function to improve operation speed.
4. Fixed the fragment mapping error in the map function.
2018-04-23(yaya)
Add !BAT in the first line of the menu item to write and execute in batch processing mode, using the batch processing function. For example: goto :label
The difference in writing is the use of the escape character %.
In the original menu item:
set a2=%@root:~0,-2%0)
set srs=%SRS0PE%%srs%
Writing menu items in batch mode:
!BAT
set a2=%@root:~0,-2%%0)
set srs=%SRS0PE%%%srs%
Revoke the modification instructions of 2018-04-08 and 2018-02-20.
2018-03-26(yaya)
Function map adds --in-situ=FLAGS_AND_ID parameter.
The low byte is FLAGS, 0/1 = clear the last 3 active partition flags in the partition table/clear the last 3 items in the partition table, default 0.
The high byte is the partition ID, specified using 0xnnnn.
2018-03-24(yaya)
Function read adds --8 parameter and reads 8 bytes at a time.
2018-03-15(yaya)
Enhance setmenu --string function function
--string=[X]=[-]Y=COLOR="STRING"
Without X, it means horizontal centering.
-Y means counting from the bottom of the menu. -0 is the last line.
2017-12-05(yaya)
Enhanced color assignment function. Corrected color and echo help information.
1. Assign colors according to the target, and the order cannot be disordered (unselected menu, selected menu help title). The color can be replaced with the placeholder n.
Example: color black/cyan yellow/cyan red/cyan light-green/cyan character color/background color, use symbol color.
Example: color 0x30 0x3e 0x34 0x3a High-bit background color, low-bit character color, 8-digit number.
Example: color 0x888800000000 0x888800ffff00 0x888800880000 0x88880000ff00 64-bit number.
Example: color 0x30 and the rest are the same as NORMAL. Used on the command line to change the console color.
Example: color 0x30 0xe n 0xa The background color is taken from NORMAL. Use placeholder n.
2. You can assign a color to the specified target, NORMAL should be in the first place.
Example: color normal=0x888800000000 The other target colors are the same as NORMAL.
Example: color normal=0x4444440000ffff helptext=0xc highlight=0xd heading=0xe border=0xa The background color is the same as NORMAL.
Example: color standard=0xFFFFFF changes the console color.
3. Change the color of the string
Example: echo $[0xCD] string changes the color of the string (8 or 64 bits). C=Background color, D=Character color.
Example: echo $[] string string uses system standard colors.
4. The specific color can be viewed on the command line.
Example: echo -h-rrggbb
Example: echo -rrggbb
2017-11-28(yaya)
Modify the setmenu function and add the following parameters:
1. --draw-box=[index]=[start x]=[start y]=[horizontal length]=[vertical length]=[line width]=[color]
Line or frame. Among them: index = 1-16; color = 24 colors; line width = 1-255; size unit is pixels.
--draw-box=[index] Clear the specified line or box.
--draw-box= Clear all lines or boxes.
2. --string= Clear all strings.
2017-10-14(yaya)
Fix udf boot code.
Making a bootable U disk: Copy the udf boot code (starting at 0x1400) of grldr.pbr to the U disk boot partition.
Copy the partition starting sector (4 bytes) in the MBR to the offset 0xc of the boot partition.
2017-10-05(yaya)
Fix --in-situ parameter. Due to nesting, the form_Smax and to_Smax of the slot will be lost.
Added --swap-drive=DRIVE1=DRIVE2 parameter for exchanging FROM_DRIVE.
2017-10-04(yaya)
Support U disk using udf file system. Version to 2.01.
Partition: Use BOOTICE partition, and select Windows NT 6.x MBR as the master boot record.
Format U disk: cmd command line in Windows system: format U disk drive letter: /fs:udf /q
2017-08-30(yaya)
The displaymem function adds the parameter --s to display the available RAM in units of 512-byte sectors.
2017-08-28(yaya)
Fixed Windows XP feedback 0K error (no click). (issues #154)
Correct functions such as int15/ax=e820.
2017-06-21(yaya)
Text characters for cat --hex function, only 0x20-0x7e characters are displayed. (issues #150)
2017-06-18(yaya)
Fixed the problem of lost display characters in cat --hex.
2017-06-11(yaya)
Fixed exFAT startup failure when the bytes per cluster >= 128Kb.
2017-06-07(yaya)
Add UUID for reading and writing CDs.
The vol function adds parameter --primary. ISO uniformly uses the volume label in the traditional main volume descriptor (Linux system).
2017-05-15(yaya)
Allowing batch files to load kernel and initrd will cause errors. (issue #141)
Fixed volume label display.
Added 32-bit color to 4-color module.
2017-05-12(yaya)
Fixed an issue where writing to mapped devices sometimes failed and sometimes succeeded.
Volume labels can be created in FAT and NTFS file systems.
2017-05-06(yaya)
Fixed the problem that batch files cannot load kernel and initrd.
Fixed mem64 not working properly. Open mem64 functions.
Fixed volume label display.
2017-05-05(yaya)
Improved volume label and UUID reading and writing functions. (issue #138)
vol [--write] [DEVICE] [VOLUME]
uuid [--write] [DEVICE] [UUID]
Example: vol displays the volume labels of all devices. Including floppy disks, hard disks, CDs and image files.
vol DEVICE displays the volume label of the specified device.
vol VOLUME searches for the device with the specified volume label and sets it as the root device.
vol DEVICE VOLUME Verifies the volume label of the specified device, returning true if the same.
vol --write DEVICE VOLUME writes (modifies or creates) a volume label to the specified device.
Note: The volume label can only be modified in FAT and NTFS file systems. Only single-character labels (such as English) can be written.
2017-04-21(yaya)
Corrected built-in USB driver parameters.
usb [--delay=0xMN] --init
M: Number of sectors in a single transmission. 0: 32 sectors (default); 1: 1 sector.
N: Specify delay parameters. Default is 0, others are 1, 2, 3, 4, etc.
2017-03-30(yaya)
When displaying files or directories containing spaces, the escape character '\' is still displayed.
2017-03-25(yaya)
Add UUID writing function.
Example: uuid --write-uuid (hd0,3) 1234-5678
Added volume label reading and writing functions. Currently only BPB volumes can be written. The syntax and functions refer to UUID.
Example: read vol or vol (hd0,3)
Write vol --write-vol-bpb (hd0,3) "NO NAME"
2017-03-19(yaya)
When listing a directory, the directory name is highlighted, which is different from ordinary files.
The escape character '\' is no longer displayed when displaying files or directories containing spaces.
When entering files or directories that contain spaces, you can use escape characters or double quotes.
For example: /Program\ Files or /"Program Files"
2017-03-06(yaya)
USB2.0 driver update.
Supports "AMD SB700/SB710/SB750 motherboard", supports "Shenzhou q230b network book", etc.
The transmission speed can be fine-tuned through the parameter delay.
Thanks to netizens seeker and gnuxwy for their help.
2017-02-04(yaya)
Ls command: Empty Folder returns false.
2016-12-08(yaya)
Fixed lz4 and vhd not displaying decompression progress indication. Add lzma decompression progress indicator.
2016-11-09 (no click)
0x8205 bit 5 = 1: Make the checkkey idle loop stop instruction.
2016-04-13(yaya)
Support animated menu
setmenu --graphic-entry=type=number of menu lines=number of menu columns=graphic width (pixels)=graphic height (pixels)=menu line spacing (pixels) Path file name of menu item 0
Type: Bit 0: Highlight specified color Bit 1: Highlight color flip Bit 2: Highlight wireframe Bit 7: Transparent background (it is best to use a black background)
File name: *n.??? Format n=00-99
The highlight color is specified by color HIGHLIGHT=0xrrggbb.
Characters can use any font type, font height, and color, and can be supplemented by icons.
2016-03-25(yaya)
Menu characters can use different fonts.
For example: "Seven" uses different fonts, and changes the unicode code "4e03" in the .hex file to "0080".
Change "seven" in the menu to "\X0080".
2016-03-23(yaya)
Enhance the echo function function.
For example: echo -e \x18 displays UTF-8 character 0x18.
echo -e \X2191 displays the unicode character 0x2191.
2016-03-15(yaya)
1. Add animation control hotkey F2: play/stop.
2. Add animation control bit 0x835b, bit 0: 0/1=stop/play.
3. Add simplified font mode: --simp=start 0, end 0,..., start 3, end 3
You can use --simp= for Chinese, and the built-in font should include DotSize=[font_h],['simp']
For example: font --font-high=24 --simp= /24_24.hex
DotSize=24,simp
No hotkeys are used: 32*32 unifont full font library can be loaded
Use hotkeys: can load 24*24 unifont full font library
Use simplified font: can load 46*46 Chinese character full font
Use simplified fonts and hotkeys: 40*40 Chinese character full fonts can be loaded
4. Bin format font is no longer supported.
2016-03-03(yaya)
1. Add image background color setting method. splashimage --fill-color=[0xrrggbb]
One of its functions is as a background for small images.
The second function is to directly serve as the background of the menu (that is, the image background is not loaded). At this time, you only need to set the foreground color of the font.
2. Add animation menu. splashimage --animated=[type]=[delay]=[last_num]=[x]=[y] START_FILE
Type [type]: bit 0-3: play count bit 4: repeat forever bit 7: transparent background
type=00: prohibit playback
Play n times: Each sequence image is displayed n times, and the time is exclusive. It can be used as a prelude and prelude to the start-up.
Repeat Forever: Sequence images loop infinitely and time is shared with the menu. Can be used as animation in menu.
Transparent background: that is, keying. The four corner pixels are required to be the background color.
The background color is preferably white or black to remove some gray clutter. If it's a colored background, it should be very clean.
Reminder: Please enter in hexadecimal. Otherwise it is easy to make mistakes.
Delay [delay]: Delay between sequence images. The unit is tick, which is 1/18.2 seconds.
Sequence number [last_num]: Total number of sequence images (2 digits, counting from 1).
Offset [x], [y]: Image offset, unit pixel.
Start image file START_FILE naming rule: *n.??? n: 1-9 or 01-99 or 001-999.
3. Increase the background color of fixed images to be transparent. splashimage [--offset=[type]=[x]=[y]] FILE
Type[type]: bit 7: transparent background
2016-02-14(yaya)
The setmenu function adds menu item background short/full parameters (default short)
2016-01-19(yaya)
The splashimage function increases the starting offset of the image (default 0)
2015-08-20(yaya)
1. Support non-16*16 fonts.
Add parameters to the font function:
--hex* --bin font output type;
--horiz-scan* --verti-scan bitmap character scanning mode;
--h-to-l* --l-to-h How dot matrix characters are stored in bytes;
--font-high=[font_h] The height and width of bitmap characters (should be equal).
Note: * is the default item.
Example: font /my.hex
font --bin --verti-scan --l-to-h --font-high=20 /2_20.dzk
font --bin --font-high=20 /1_20.dzk
Built-in font library, if it is not a 16*16 font, the header needs to be declared: DotSize=[font_h].
Due to memory limitations, the current large font can support up to 32*32, and the Chinese small font can support up to 40*40.
2.VGA graphics mode is no longer supported.
2015-07-07(yaya)
1.Supports 16-bit per pixel color mode (64K 5:6:5).
2. Support jpg (jpeg, jpe) image format.
3. In vbe mode, use echo -rrggbb to display 216 color samples.
4. Use echo -v to display version and memory information.
5. Add setmenu function to enhance the graphical menu editing function. parameter:
--ver-on --ver-off Turn version information on/off. Open by default;
--lang=en --lang=zh Switch the key help information between Chinese and English. Default English;
--auto-num-off --auto-num-on Turn off/on automatic menu numbering. Off by default;
--font-spacing=[font]:[line] Set character spacing/line spacing. Unit: pixel. Default is 0. Should be placed before the following parameters;
--string=[x]=[y]=[color]=["string"] String position, color and content, which can be used for titles, descriptions, help, etc. Units: column, row, 24-bit color.
Note: If the color is omitted, the title color will be used if it is located above the menu box, and the help text color will be used if it is located below the menu box;
English double quotes must be added at the beginning and end of the string;
Number of columns = image horizontal pixels/(character width + character spacing) character width = 8;
Number of lines = image vertical pixels/(character height + line spacing) character height = 10;
--box x=[x] y=[y] w=[w] h=[h] l=[l] Project title starting column, starting line, maximum number of characters per line, maximum number of menu items, menu Box line width (pixels);
Note: w=0 means horizontal centering. At this time w should be after x;
l=0 means not to display the menu box;
--help=[x]=[w]=[y] Project help location. Unit: column, row. Default 1 line;
Note: x=0 is determined by the border (default); w=0 is horizontally centered;
--keyhelp=[y_offset]=[color] Key help position and color. Units: column, row, 24-bit color.
Note: y_offset=0, the project and key help are located in the same area, and the project help can override the key help (default);
y_offset !=0, is the line offset from key help to project help, both coexist;
y_offset<=4, is the number of rows displayed in the project help;
color defaults to "color helptext";
--u Restore the menu to its original state.
--timeout=[x]=[y]=[color] Countdown position and color. Units: column, row, 24-bit color.
2015-05-14(yaya)
Improve NTFS file system:
For resident attribute files (small files), you can write, and you can also use blocklist to display information.
For non-resident attribute lists, the length limit is removed.
2015-03-23(yaya)
Built-in usb2.0 can drive native 4k sector disks
2014-10-29
1.(tinybit) Workaround for BIOS of BENQ notebook that only supports 1.
2014-10-15
1.workaround for issue 204(chenall)
2014-10-12
1. The skip_to() function is modified. The "\" inside the quotation marks is processed using the previous method to maintain compatibility. (chenall)
2. add variable @boot, add debug info. (chenall)
3.two variables boot_drive and install_partition can be preset to a value before transferring control to grub4dos. (tinybit)
4. Correct the masking map information. (yaya)
2014-10-09(yaya)
1. Block map information.
2014-09-23(yaya)
1. Use bootlace.com to install grldr.mbr to a gpt partition type device.
2014-09-02(yaya)
1.ext4 partition supports 64-bit functions and metablock groups.
2.grldr header and grldr.mbr support searching grldr of gpt partition.
3. Fixed bootlace.
2014-08-17
1. Fixed the bug of GPT unhide/hide, now the gpt partition can be hidden normally.
2. Optimize the GPT partition search code.
3. Allow direct access to GPT reserved areas, but do not display them in the list.
2014-08-01(no click)
1. Solved the problem that the partition with partition ID 00 reported by reboot.pro cannot be recognized and cannot be accessed.
2. Solved the problem that chainloader --raw cannot load the boot sector of hard disk BPB hidden sectors=0. It was also reported on the English forum.
3. Clear the residual information after ud startup so that subsequent startups will no longer be repeatedly recognized as ud startups (because subsequent startups will no longer start from ud).
(yaya)
1. Make the default_func and geometry_func codes in builtins.c consistent with 0.4.5c.
2. Make the code in common.c and stage2.c consistent with 0.4.5c (except for the intentional changes in 0.4.6a).
2014-07-9(yaya)
Fixed floppy disk search.
Supports 16-slot mapping.
2014-06-23(yaya)
1. Improved the simulation of fragmented files. Maximum of 32 fragments. If all use the new version, fragmented information can be transmitted.
2. The ntfs file system supports non-resident attribute lists within 8Kb.
3. Fixed the udf format CD driver bug.
4. Fixed the iso9600_Joliet file format escape character display problem.
2014-01-16(yaya)
1. When the U disk in FDD mode (with BPB and no partition table) is assigned the drive letter 0x80 by the BIOS, it is mapped to 0x00.
At the same time, shield the drive number 0x80 (to avoid reading the USB disk through the BIOS, which may cause a crash).
This change also avoids the problem of Issue 162 reading 64-bit logical sectors.
The USB disk in FDD mode is recognized as a hard disk, which causes many problems. The problem that has been discovered is that (hd0) is not returned when executing find; the streamlined PE crashes when loading the image file.
2. Solved the problem of U disk in FDD mode returning (fd0,n) when executing find.
3. Corrected the default location of 0PE.ISO in menu.lst.
4. The usb2.0 driver can be loaded through the menu or command line using usb --init.
5.usb2.0 driver adds support for hub (HUB). If loading fails, you can try restarting.
6. When reading multiple sectors fails, a prompt will be given: unplug the USB flash drive and then insert it again, press any key to continue. At this time, the USB disk will be re-initialized.
And continue from the failure point by reading 1 sector at a time.
7. Enhance file name recognition to facilitate renaming.
7.1 File names can be in any case, but must be in uppercase letters in grldr.mbr and grldr.pbr.
7.2 In grldr.pbr:
FAT16 and FAT32 partitions use 8.3 format;
ext2, exFAT, and NTFS partitions use 12 characters.
7.3 In grldr.mbr: use 12 characters.
7.4 In order to be compatible with various partitions, it is recommended that the file name should not be larger than 8 characters and the suffix should not be larger than 3 characters. If there is a separator ".", it cannot be omitted.
2014-04-01(yaya)
1. Updated USB2.0 driver device enumeration. Improved drive letter recognition. Run directly from the current location, the cache is moved to 0x80000. Resident memory is reduced to 4 Kb.
2. Supports fragmented file emulation, up to 8 fragments. Occupies 11Kb - 13Kb of memory (determined by whether the optical drive is loaded).
3. Support lowercase short file names in WinXP system. According to the offset 0x0c of the short file name: bit 3=1 means the file name is lowercase, and bit 4=1 means the file extension is lowercase.
4. Can correctly identify the buggy Joliet format CD generated by mkisofs 2.00/2.01.
2013-10-18
1. The new function is similar to CMD's PATHEXT, which can set the default extension.
Use command --set-ext to set, and separate each extension with ";"
example:
command --set-ext=.g4b;.g4e
You do not need to enter the extension when executing. For example, if you enter test, if there is a test.g4b in the current path, it will be used automatically.
2013-10-17
1. Modify the code to support the new version of HOTKEY.
2013-07-10
1.insmod now supports long file names (previously up to 11 characters, now no limit).
2. Modify some codes to solve the problem and eliminate the "Warning" information during compilation.
2013-06-30
1. Solve the memory conflict problem caused when the command line length is too long or there are too many batch parameters.
2013-03-19
1. Added the continuous command separator ";;" to prevent sequential execution.
example:
set a=abcd ;; echo %a% ;; set a=
2013-03-02
1. Solve Issue 117: menu border has arrow symbol (bottom right)
2. Allow other display modes to also specify the menu box color. color border=xx
2012-05-16
1. Cancel the control of ignoring case for ISO9660 file system. The new version is forced to be case-insensitive.
2012-03-19
1. Fixed the problem that the batch CALL will crash when the nesting level exceeds 13 levels.
2012-02-22
1.stage2/cmdline.c
Fixed the problem of memory conflict that may occur when using pipe "|".
2.stage2/char_io.c
Fixed `more'-like feature issue.
2012-02-10
1.stage2/builtins.c
Fix the error caused by cat --locate=\x22.
http://bbs.wuyou.com/viewthread.php?tid=180142&page=240#pid2382770
2.cmdline.c
Do not limit pipe "|" buffer.
Cancel the pipe "|" buffer limit.
2012-02-01
1./build
Fixed build script.
2./stage2/builtins.c
cat --replace changed (issue 71).
Supported savedefault +n/-n (issue 70).
3./stage2/stage2.c
Memory address 0x8276 for variable current_entryno (issue 70).
4./stage2/disk_io.c
enable parttype 00 (http://reboot.pro/16004/page__st__25).
5./stage2/cmdline.c
fixed skip_to issue. eg cat --locate="abc \"def" (md)0x300+1.
2012-01-17
1. Fix a problem caused by map --rehook. http://bbs.wuyou.com/viewthread.php?tid=180142&page=231#pid2373207
2. Some small adjustments.
3.The version number is changed to 0.4.5c
2011-12-30
1. Add a menu hotkey function interface, and you can add hotkey functions through external commands.
Add menu hotkey function interface.
2011-12-26
1. Improve menu automatic numbering. improve autonumber.
2011-12-13
1. Fixed the bug that grub_sprintf function %d cannot display negative numbers correctly.
2011-12-12 command 'if' added '>=' and '<=', and able to perform numeric comparison.
1. The if command adds >= and <= comparison operators.
The new if command supports three comparisons >=,==,<=
If both sides are numbers, they will be automatically converted into numerical values ​​for comparison, otherwise they will be compared according to the ASCII size of the strings.
2011-12-11
1. You can use map --status=n to obtain the status of the mapped disk. use map --status=n to get status of hooked drive n.
Return the following two variable information (return)
%?%=Start_Sector
%@retval%=Sector_Count
Returns 0 if the disk does not exist.
2011-12-08
1. Support automatic menu numbering (more useful when using dynamic menus). Support menu AutoNumber.this is useful when used iftitle.
usage:
write 0x8274 0x2001
or
write 0x8274 0x2D01
0x20(space) or 0x2d ('-') is the delimiter char in ascii code.
More usage introduction:
http://bbs.wuyou.com/viewthread.php?tid=180142&page=193#pid2351695
2011-12-06
1. Bug fixes.
2. When starting in debug mode, the commands executed by the conditional menu can be displayed.
2011-12-05
1.Add conditional menu function added iftitle.
Syntax: iftitle [] Actual Title displayed\nOptional help line
This menu item is invalid as long as the condition is not met.
eg. The first menu will be displayed only if there is a bootmgr file on (hd0,0), and the second menu will be displayed only if there is an NTLDR file.
iftitle [if exist (hd0,0)/bootmgr] Boot to NT6.X from (hd0,0)
chainloader (hd0,0)/bootmgr
iftitle [if exist (hd0,0)/ntldr] Boot to NT5.X from (hd0,0)
chainloader (hd0,0)/ntldr
2011-12-01
1.BUG fixed.
BUG fixed.
2. Add the function of using INT18 to start.
Supported boot via INT 18.
Usage:
boot -1
or
boot --int18
3. Some code streamlining
2011-11-29
1.BUG fixed.
2. New color command syntax.
color color_state=color [..]
The color_state string can be as follows.
normal unchecked menu
highlight select menu
helptext menu help information
heading menu header (GRUB4DOS information)
standard default color (console)
border menu border is effective in VBE mode
3. New setcolor/setcolorstate function
2011-11-27
1. Fixed the problem that the background image color would be wrong when the fontfile command is behind splashimage.
2. In VGA mode (0x12/0x6a), when the splashimage command is not used, the font color can be specified to be the same as in console mode.
2011-11-22
1. The new COLOR command allows setting the default font color and background color of the console (limited to text mode or VBE mode)
Method: Just use the color command with only one parameter.
Note: Valid when executed from the command line or batch script.
2011-11-19
1.cursor_state bit 0=1 show cursor,bit 1=1 show splashimage.
use setcursor(n) to change if need,can change from commandline eg
call Fn.70 0 disable cursor and splashimage.
2. Clean up some useless code.
2011-11-18
1. Supported splashimage with BMP format (VBE mode only).
2. When using BMP images, if you are not in VBE mode, try to automatically match the image resolution.
2011-11-03
1. Fixed a map bug. bug fixed in map_func.
Related posts:
http://bbs.wuyou.com/viewthread.php?tid=201887
http://bbs.wuyou.com/viewthread.php?tid=201647
2. Ignore the case of file names on ISO9660 file systems. Make name comparisoncase-insensitive on iso9660.
You can use below command to disable this feature.
write 0x4CA24 0
3.Add --locatei parameter to cat command, added --locatei option for cat.
Ignore case ignore case locate.
e.g.
cat --locatei=Test (md)0x300+1
2011-10-07
1. Add the ?_BOOT variable to access the Boot_drive that starts GRUB4DOS
add new Variable ?_BOOT to access grub4dos Boot_drive.
2. In order to save code, GRUB4DOS no longer handles the compatibility of external commands WENV internally (WENV tuxw version)
The solution is as follows:
If you need to use this version of WENV, add the following commands to the menu or batch process yourself
write --offset=0x1f8 (md)0x228+1 ?_WENV\0
3. The uuid command is not case sensitive when judging uuid characters.
2011-10-02
1. Cancel the modification to the fb boot disk and restore it to its original state.
2. Fine-tuning other batch processing related codes.
2011-09-28
1. Fixed the BUG in accessing disk partitions (disk_io.c), thanks to Yonsm for the report and test.
fixed a bug in disk_io.c
http://bbs.wuyou.com/viewthread.php?tid=200520&extra=page%3D1
2011-09-13
1. Fixed a bug in insmod (cannot directly insmod files under the default path)
fixed a bug in insmod_func.
2011-09-05
1.insmod supports specifying names, such as insmod fat.gz fat.
Support specified name when insmod a module.
2011-09-02
1. Fixed a bug in setloca/endlocal.
2011-08-25
1. Fixed a bug in the cat command, where an error occurs when using the cat --locate-align parameter.
fixed a bug in cat_func.
2011-08-23
1. Add help information for echo/cat command. (issue: 38,40)
add help text for command echo/cat.
2. Fix the problem displayed by help --all (issue: 39)
fixed "help --all" issue.
2011-08-09
1.Batch call/gotoBUG repair.
2. The new call can directly call a command.
2011-08-08
1. Some code fine-tuning.
2. Fixed the problem that Ctrl+C forcefully terminates the batch script and sometimes fails (call may fail when used in conjunction with && and ||)
3. When using the pipe character "|", characters exceeding the length of 0xC00 will be discarded.
2011-08-01
1. When external commands are called for modification, the command in the current directory will be used first (if it exists).
2.修复在批处理中使用exit命令退出批处理,导致批处理返回值为0的问题.
2011-07-30
1.批处理执行时允许使用Ctrl+C强制中断运行.
2011-07-19
1.内置变量?_WENV=?_UUID=?
注:1.将来会取消?_UUID,为了保持兼容性,暂时先放一段时间.
请使用%?%或%?_WENV%代替%?_UUID%来获取UUID.
2.%?%变量可以获取命令返回的字符串信息.
目前可用的信息有两个.uuid dev(返回指定设备的UUID字符串),cat --locate= (返回最后一个找到的位置)
2.@random算法修改.
2011-07-13
1.在执行cmain之前初始化变量内存空间。
2011-07-12
1.执行clear命令时同时设置count_lines为0。
2.内置变量增加@retval,其实就是之前的0x4cb00
3.增加setlocal @和endlocal @用法。
setlocal @可以在批处理中使用,把当前的环境保存起来
除非使用endlocal @否则setlocal @之后的设置会一直保留(批处理退出也不影响).
注:1.在批处理中出现setlocal @则在批处理中setlocal @之前的setlocal命令会全部失效。
所以setlocal @有必要的使用的话一般要放在批处理最前面。
2.setlocal @后面如果还有出现setlocal,则setlocal之后的设置不会保留.
2011-07-11
1.添加SETLOCAL和ENDLOCAL命令,和WINDOWS下的批处理用法一样。
2011-07-05
1.尝试解决%~d0,%~f0路径提取的问题,现在%~f0应该可以提取到正确的路径。
2.解决if命令输出转向失败的问题。
3.其它代码调整。
2011-05-27
1.优化PXE_DIR代码。
2.其它微调。
2011-05-25@176
1.调整cat命令的查找字符串代码。
2.修改批处理的调试模式开启方法(改为debug 3才会进入调试模式)
3.消除一些编译时的警告信息。
2011-05-23@174
1.修正一个TFTP相对路径的问题,感谢2011exuejiao@wuyou.
2.在批处理中可以使用debug 3临时开启debug模式。
2011-04-30@159
1.取消前面版本对批处理参数的调整.恢复到04-16版.
2.修正一个BUG.(函数print_root_device).
3.批处理参数新增%~f 文件全路径,%~z文件大小.
4.现在批处理脚本可以使用使用errorcheck命令控制是否检测错误(默认错误就退出).
2011-04-29@157
1.find 命令不再查找(hdx)设备.
2.删除@root变量的前导空格.
3.ls命令新增dev参数,用于显示设备列表.
4.批处理代码调整,对于(bd)设备%~d0会使用实际的设备.
2011-04-25@156
1.新增两个内置变量@root,@path.
@root 当前的root.
@path 当前默认外部命令查找路径.
2.修正一个可能导致程序出错的问题.(使用到了临时变量的内存).
3.批处理代码功能增强.
2011-04-16@153
1.md5crypt 支持参数。后面直接跟一个字符串会直接计算这个字符串的md5。
2.菜单支持以变量开头的命令。
2011-03-30@151
1.LZMA格式解压时暂时禁止显示进度(因为显示进度时解压大文件会失败)。
2.添加内置变量?_UUID(使用uuid命令可以把获取到的磁盘uuid保存到变量中).
2011-03-29@150
1.insmod *.mod添加了检测模块文件头是否为GRUBEXEC签名.
注:目前还是兼容旧版本的MOD模块,一段时间后会取消,请使用新的MAKEMOD重新制作模块。
2.对批处理路径和文件名的空格进行自动处理。空格前面自动加转义符"\"
注:使用p,n,x参数时有效。即%~1时不会处理,但%~p1时会处理。
2011-03-26@150
1.使用kernel (rd)+1启动时,默认的启动设备改为当前root.
2011-03-25@149
1.修改cat命令替换时显示的信息
cat --locate=S -replace=R 除非debug on否则不显示信息.
2.批处理参数新增%*代表所有参数%1 %2 %3 ....
2011-03-24
1.set /p功能增强(可能会和之前的版本不兼容),新增参数set /p:N
主要变动:
1).如果未输入不会清除原来的变量.(之前的版本会清除).
2).新增支持默认时间没有输入自动退出.
set /p:N variable=prompt
如果在N秒之内没有任何输入,则返回,并且不改变variable的值.
2011-03-23
1.为了方便使用,修改shift命令为内部命令.并且shift支持参数
shift n 或 shift /n
具体用法,可以参考CMD/linux下的shift命令帮助.
2011-02-19
1.修复kernel加载grub2 loader的问题.
fixed a bug when load multiboot-image(boot.c).
2.现在可以运行16位程序,和wee的机制一样(直接移植了wee里面的代码)
2011-02-15
1.添加realmode_run函数
2.修改GPT分区检测代码,更加严格的检测。
2011-02-12
1.增加GPT分区检测,检测不通过就使用MBR分区。
2.一些代码微调。
2011-02-10
1.清理UTF8转换UNICODE的代码,不再需要(请同时更新UNIFONT).
2.修复变量字符串截取BUG.Fixed Bug in envi_cmd func.(thanks sratlf@wuyou report).
http://bbs.wuyou.com/viewthread.php?tid=180142&page=52#pid2154655
注意:从2011-02-10开始,必须使用最新版的UNIFONT才可以正常显示UNICODE字符.
Note: You must also update unifont to the latest version.new unifont can show unicode char anywhere.
Download the latest version of unifont:
http://code.google.com/p/grubutils/downloads/list
2011-01-28
1.支持读取GPT分区表。
为了区别MBR分区表和方便编程,所有的GPT分区类型全部使用0xEE表示。
2.修正一个bug,现在可以访问大于1T的硬盘.但还不能访问超过2T的内容。
2011-01-26
1.修复run_line的一个BUG,会导致返回值为假。
2.添加IF/SET命令的帮助信息。
3.IF命令增加以下语法,判读一个变量或文件是否存在。
if exist variable|filename command.
4.控制pause的输出,debug小于0时不显示倒计时。debug小于1时不显示按键码.
2011-01-22
1.set /A 参数使用16进制数保存变量,set /a 十进制数保存变量。
2.修复goto的一个bug.
3.修复重定向操作符的bug.
2011-01-19
1.set命令不再接受回车换行符。
2.修复获取批处理参数bug.
3.修复fb文件系统bug(可能会导致访问文件出错)。
2011-01-14
1.set命令增强.添加了/l,/u参数
set /l a=Abcd
把Abcd转为小写./u是转换大写。
2011-01-13
1.修复utf8菜单编码自动检测的BUG。
2011-01-10
1.修复SET命令的bug,添加/p参数
2.修复启动linux时内存冲突的bug.
2011-01-09
1.菜单支持变量。
2.支持变量截取(和CMD的方法一样),不支持替换。
2011-01-08
1.重写grub_sprintf函数,支持简易的宽度和精度控制符(m.n或*.*)。
2011-01-07
1.SET命令添加一个参数/a可以把=后面的计算结果赋值给变量.
2.新的safe_parse_maxint函数支持一元运算符。"~!-"
2011-01-06
1.修改CAT命令的显示。现在的cat /filen.ext碰到字符结束符'\0'就停止。
2.批处理内部添加一个命令shift(只能在批处理中使用).
3.skip_to函数现在会可以跳过(‘\r’和‘\n’)。
4.set *将清除所有变量。
2011-01-05
1.修正run_line的一个逻辑错误。
2.外部命令command默认的目录改为(bd)/BOOT/GRUB/
2011-01-03
1.pager命令即实生效。
2.添加简易的if判断命令类似的MSDOS.目前支持的判断如下:
added a new command if.
if [/I] [NOT] STRING1==STRING2 [COMMAND]
注:判断符号==前后不允许有空格或制表符否则比较会失败。
2.添加SET命令可以设置、修改、删除变量。
added a new command set to modify the variable.
3.从现在开始支持变量。用法和MS-DOS一样。
From now supports variable.
注:使用了和WENV同样的方案。所以这个功能可以看成是简化版的WENV
2011-01-02
1.pause命令添加一个参数--test-key,可以显示按键扫描码。
added --test-key option for pause to display the key scan code.
2.grub_sprintf函数支持字符串精度控制符。
2011-01-01
1.修复find命令的bug。当然使用条件查询时可能会出错。
2.批处理参数修改,为了方便使用,%9改成剩余的所有参数。
比如参数: 1 2 3 4 5 6 7 8 9 0 a b c
那%9就是9 0 a b c.
2010-12-31
1.pause命令增强,增加了显示按键扫描码的功能。需要debug 为-1.
例子:显示一个按键扫描码
debug -1 && pause && debug 1
注:此功能已为被参数--test-key代替。
2.hiddenmenu命令增强。增加一个--chkpass参数
功能: 在隐藏菜单的时候按Esc键要输入正确的密码才可以显示菜单。
注意: 1.该功能启用之后,如果按了其它按键则直接启动默认菜单。
默认的Esc按键可以自由设置。使用--chkpass=KEY
2.菜单初始化有password命令时才需要输入密码。
3.按键代码如果不清楚可以使用上面的功能来获取。
例子: hiddenmenu --chkpass=0x8500 按F11键才可以显示菜单。
hiddenmenu --chkpass 按Esc键才可以显示菜单。
hiddenmenu --chkpass=0x2200 按Alt+G显示菜单。
2010-12-28
1.一些BUG修复.
2.PAUSE命令增加倒计时显示.
3.fsys_fb.sys代码微调.
2010-12-25
1.现在delmod也是一个内部命令.
2.重写insmod/delmod相关的代码.把加载的模块固定在内存18MB开始的位置.
2010-12-21
1.从command_func中分离出insmod作为一个内部命令存在.
现在允许insmod加载一个命令合集.(扩展名.mod)
例子:
insmod grub4dos.mod
这个命令合集使用MAKEMOD程序生成.
2010-12-18
1.代码调整.
cat添加一个参数--number=N 在查找替换的时候指定查找次数.
2010-12-17
1.fixed a bug in checkrange_func.
2010-12-16
1.修正使用批处理运行时可能会出现ERROR 25的错误.
2.重写批处理运行函数.
2010-12-15
1.还原2010-12-10对0000:82A4的改变.
2.为了方便使用当使用fbinst启动时有如下调整
boot_drive (bd) 为FB_DRIVE(ud)
默认root(saved_drive) 为可见分区.
3.为了减小压缩包的大小,改成用7z压缩发布.
2010-12-14
1.完善对ud(fbinst创建的分区)支持.现在不需要从fbinst启动也可以随意访问fbinst创建的分区.
2.允许在批处理中执行的外部命令调用goto/call标签.
2010-12-12
1.批处理添加exit命令.直接退出批处理.如果后面有数值则设置为errnum.
如exit 1,退出,并返回一个错误的值.
2.一些代码优化调整.
3.修改pause命令,现在的pause直接返回按键的ascii码值.
2010-12-11
1.完善批处理脚本参数的支持(同CMD下的批处理用法一样).
2.可以在菜单中使用goto命令(即跳到某个菜单项目).
3.delmod 添加参数-l用于显示已经加载的模块.如果-l后面还有参数则是判断该模块是否加载.
2010-12-10
1.改变了以下内存地址的定义(和之前的版本相反)
0000:82A4 4 (DWORD) no_decompression (no auto gunzip)
改成了
0000:82A4 4 (DWORD) do_decompression (do auto gunzip)
2.0x8284的值的bit2如果为1则显示解压进度,否则不显示,默认不显示.
3.完善了goto/call的功能
2010-12-09
1.批处理脚本支持标签(类拟BAT批处理).
support goto/call and :label in batch script.
CALL :label arguments
goto label
2010-12-07
1.添加两个命令用于加载外部命令到内存中,加快运行速度.
insmod path-to-program
delmod program
2010-12-06
1.批处理脚本支持参数%0 - %9同cmd批处理用法一样。%~n 可以去掉前后的引号
2010-11-24
1.修正一个skip_to函数的bug。
fixed a bug in skip_to func,thanks tuxw.
2010-11-21
1.解决在(ud)上使用自动补全功能问题.
http://bbs.znpc.net/viewthread.php?tid=5976
2010-11-19 supported pxe_dir list.
1.添加PXE(pd)文件列表的支持.TFTP ROOT 上的每个目录下都需要有dir.txt才支持.
可以使用以下命令生成dir.txt文件
for /r %i in (.) do (dir /a/b %i >%i\dir.txt)
2010-11-18
1.Fixed a bug in batch file,thanks Mr.zhaohj.
http://bbs.wuyou.com/viewthread.php?tid=180142&page=9#pid2087407
2.Add a new variable at 0000:8278 for grub4dos version by date.
e.g. read 0x8278 return 0x132B7FE (20101118)
3.Fixed a bug in find_func,thanks Mr.pseudo.
2010-11-17
1.重写command_func函数大部份代码。
为了方便外命命令的编写,修改主函数调用为以下格式。
int main (char *arg, int flags)
新的版本可以直接使用arg和flags参数,不需要再进行计算了。
2010-11-16
1.改进malloc/free函数。
2.允许执行多个外部命令(之前只允许一个),现在可以在外部命令里面调用其它外部命令。
外部命令调用方法使用builtin_cmd函数:builtin_cmd(char *cmd,char *arg,chat *flags);
builtin_cmd(NULL,Command and parameters,flags);
2010-11-15
1.内置echo命令自动回车符改为"\r\n"
2.添加malloc/free函数.
2010-11-04
1.重写run_line(执行一行命令函数)。
支持操作符连用。例:
 echo a | echo b | echo c | echo
echo abcd > (md)0x300+1 && echo def
2.支持新的操作符">>"和">"一样,但这个会附加(附加在输出文件中的第一个字符串结束符'\0'后面)
 注:目前这个操作符不会改变文件大小。
2.内置ECHO函数添加两个参数(默认回车不转义)
-n 不自动添加回车符
     -e 允许转义符
2010-10-28
1.some bug fixed.
2.find支持查找使用cdrom --init生成的光驱(只找第一个)
2010-10-27
1.修改printf函数,支持显示"%",和C语言的语法一样,使用"%%"来显示一个"%"
2.重写find的查询代码.
3.find新增参数--devices=[DEVICES],指定要查找的设备.
说明:DEVICES可以是以下字符的组合:
u,p,n,h,c,f -->分别对应 ud,pd,nd,hd,cd,fd,
例子:--devices=hcf //只查找hd,cd,fd,从hd开始.
注:优先current root.然后再按上面的顺序.(current root必须在列表中,否则跳过)
可以使用这个参数来重新设定查找顺序,默认(find order):ud->pd->nd->hd->cd->fd
4.保留--ignore-cd和--ignore-floppies参数(会自动转换).
2010-10-26
1.find支持(fdx,y)的格式.
2.优先查找当前root.
2010-10-03
1.使用操作符"|"时默认自动添加空格,并解决使用"|"时可能导致死机或重启的问题。
2010-09-30
1.修正操作符号!失效的问题。
2.恢复内置菜单的大写MENU.LST为小写(保持兼容性)。
3.内置echo命令。
用法:
echo [-P:[-]XX[-]YY] MESSAGE
XX: Line number.
YY: Column number.
XXYY指定后面MESSAGE要显示的位置。
XX指定行号,YY指定列号。前导“-”,即倒数.
2010-09-25
1.修正calc计算的一个逻辑错误。
2.使用fbinst启动默认root设为ud
set boot_drive to fb_drive(ud) if boot from fbinst.
3.添加一个新的命令initscript,只能用于菜单中。
initscript用于初始化菜单,每次返回菜单时在显示完菜单后执行。
有时候会需要这样的功能,比如执行某个菜单失败后返回菜单时重新执行一次初始化。
initscript /initscript.g4d
2010-09-25
1.简易计算器调整.如果没有"="则不保存计算结果,但++和--除外.
例子:
calc *0x60000 + 4 不保存计算结果,所以内存指向*0x60000的值不会被改变.
calc *0x60000++ 会保存计算结果到*0x60000中.
calc *0x60000 = 1+2 同上.
2.如果当前已经是图形模式允许graphicsmode直接切换,而不用经过terminal console中转.
2010-09-16
1.修正一个产生Error 27的错误。
2010-09-06
1.添加操作符号"|" ">",输出重定向(有点类似DOS)
Implemented two syntactic operators "|" and ">".Like Dos Output redirection.
note: 1.use with "&&" and "||" ,the "|" and ">" must be at last.
2."|" and ">" can not use at same time.
例子:
1. pause abcd | pause efg
output: efgabcd
2. pause 0x60000 | read #There is a space after the read.
run read 0x60000
3.help > (hd0,0)/help.txt or help > (md)0x3000+2
help.txt must already exist,grub4dos cann't create file or change file size.
2010-09-05
1.修改TAB的显示方式,现在使用8个字节对齐显示。
2010-08-10
1.fixed a bug in disk_io.c,it may return error 25 when set root to a cd drive.
修正一个BUG,当设置root为cd设备时可能会提示Error 25的错误.
2.加快colinux下源码在cofs设备时编译的速度.
2010-06-21
1.打上支持新版FB的补丁
来源:http://www.burgloader.com/bbs/index.php?topic=37.30
2010-05-02
1.PXE启动时首先尝试加载root目录下的menu.lst。
2010-04-17
1.命令行自动完成调整.现在可以直接输入/+TAB显示当前目录下的文件或(hd0,0)/+TAB显示(hd0,0)/下面的文件列表
以前的版本必需要像以下命令才可以。
root /+TAB
2.get_cmdline函数调整,以方便外部命令直接调用。
2010-03-29
1.外部命令执行过程调整。
例子:默认path (bd)/grub/
echo abcd ## 优先使用(bd)/grub/echo 文件,如果没有再找 /echo 文件
/echo abcd ## 只查找/echo 文件。
(fd0)/echo abcd ## 只找 (fd0)/echo abcd 文件。
2.find 命令添加一个 --ignore-oem 参数。
http://code.google.com/p/grub4dos-ireneuszp/
2010-03-10
1.边框位置自动调整。
2010-03-09
1.注释掉karyonix 4G GZIP MAP的部份代码。
2.添加UNIFONT外部命令,可以加载UNIFONT字库。当菜单文件是UTF8格式时可以显示多国语言。
Support multi-language menu with UNIFONT.
2010-03-01
1.打上了karyonix的4G map 补丁
http://bbs.znpc.net/viewthread.php?tid=5844
http://www.boot-land.net/forums/index.php?s=&showtopic=10096&view=findpost&p=91378
2.添加fontfile外部命令.
3.添加menuset外部命令.
2010-02-09
1.重写cmp部份代码(注:比较时可能会比较慢,因为只使用了1MB的缓存,之前的版本是完全缓存).
顺便添加了新参数 --skip=
可以指定在比较时跳过几个字节,用于cmp --hex时方便查看差异.
2010-02-05
1.添加calc简单计算器功能.
calc [*INTEGER=] [*]INTEGER OPERATOR [[*]INTEGER]
具体使用方法参考这里的外部命令calc的用法,是一样的,只是内置了.
http://www.chenall.com/blog/2010/02/grub4dos_calc.html
2010-01-13
修改设置默认可执行文件搜索路径参数为
--set-path=PATH
例子
command --set-path=(bd)/grub/
2010-01-09
1.为command参数添加一个参数--set-root用于设置默认可执行文件的搜索路径。
add option --set-root for command
sets a search PATH for executable files,default is (bd)/grub
2009-12-03 g@chenall.cn
1.修改了cat --hex代码,现在cat --hex会显示ascii>127的字符。
2.修改了cmp --hex代码,现在cmp --hex后面显示的字符同样可以显示中文。
并且添加了颜色控制,不同的地方使用了菜单的高亮色显示。
2009-12-01 g@chenall.cn
1.同步源码到2009-12-01版(修正了NTFS上DD或WRITE的问题)
2.修改调整了cat --replace,当使用--replace=*addr时允许使用--hex来指定读取长度。具体
http://bbs.znpc.net/viewthread.php?tid=5784&page=10&fromuid=29#pid42939
2009-11-29 g@chenall.cn
1.调整了chainloader功能,如果chainloader (rd)+1,并且没有指定edx设备,那将把当前设备设为EDX。
Changed chainloader_func,if use chainloader (rd)+1 then will set current_root to EDX
Start the VISTA/WIN7 system on the hard disk from BOOTMGR on the CD.
Boot VISTA/WIN7 from cdrom or any other device
chainloader (cd)/BOOTMGR
rootnoverify(hd0,0)
dd if=(hd0,0)+1 of=(md)0x3E+1
You can now use the following commands..
map --mem=0xF000 /BOOTMGR
find --set-root --ignore-cd --ignore-floppies /BOOT/BCD
chainloader(rd)+1
http://bbs.znpc.net/viewthread.php?tid=5784&page=7&fromuid=29#pid42684
Tips:about EDX,please read README_GRUB4DOS.txt
2. The source code is synchronized to the official 2009-11-29 version.
2009-11-28 g@chenall.cn
1. Fixed the problem that access errors may occur when the memory is >2G.
fixed a bug when access memory>2G problems.
e.g.
cat --hex (md)0x40002F+1
map --mem (md)0x600000+0x19020
2009-11-26 g@chenall.cn
1. Modify the cmp_func code and use it to display the difference offset in hexadecimal (for the convenience of comparison).
change cmp_func to show Differ at the offset with HEX
2. Added a parameter --hex for cmp (directly displays hexadecimal)
add --hex option for cmp
2009-11-24 g@chenall.cn
1. Add the (bd) device, that is, the startup device. Note: Using the configfile command will change the startup device.
added (bd) support.(bd):the boot drive. note:use configfile to change boot drive
eg. boot from (hd0,0)
now boot drive is (hd0,0)
configfile (hd0,1)/menu.lst
now boot drive is (hd0,1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment