There will be no commercial software on this floppy (like MSCDEX.EXE from Microsoft) since putting it on would make distribution of the disk much harder, if not impossible. If you need those, customize the disk yourself (it uses a FAT12 filesystem that can be read by virtually every operating system). Proprietary freeware tools are no problem though.
Download grub patch (1 KB) and all config files (11 KB, kind of source code).
On Windows, use RawWriteWin to write it to a floppy. Linux users will know themselves how to use dd :-)
There is also a lite version (720 KB) available which can be used by memdisk from a CDROM. (Memdisk is supported by ISOLINUX and by CDShell). If you prefer to use GRUB as your CD boot loader (which is cool), you can use memdisk to load the freedos-only version (720 KB) and put all the other stuff outside the image. Note that it is not possible to load memtest86 or an etherboot image from inside memdisk, so these have been removed. For building this floppy, another patch (on top of the patch mentioned above) is required since the grub+memdisk combination does not like 720K floppies. This patch is not minimal, but it works. (If you want to check which changes are really required in stage1, please tell me if you found it out.)
If you don't have a physical floppy drive and are on a Windows system, having VFD is very useful since it allows you to create a virtual floppy drive that stores its data either in an image file.
For patching GRUB you will need a GNU/Linux or similar system, however if you don't need the eye candy on the splash screen, it should work with an unpatched GRUB as well.
Let's start with Smart Boot Manager. Download the installer suitable for your system and use it to install SBM onto a floppy (image) that does not contain any important data. Boot it once, configure it and let it save its settings. Then grab the first 45 sectors (22.5KB) from the floppy and store it into a file somewhere (you will need this later). Download SYSLINUX and store its MEMDISK binary somewhere as well. (The memdisk version on the floppy is quite old, you can use a more recent one if you prefer)
Next start with a FreeDOS boot floppy. Remove as much stuff as possible and put those tools onto it you want to have on the final floppy. (For M$ addicts: this works as well with a MS-DOS floppy or Windows rescue disk, but will need more space than the FreeDOS version). You can find download links for those tools on the original floppy in the list above. Now grab the first sector (the boot sector) from this floppy and save it into a file as well.Next download the GRUB 0.9x source code (GRUB 1.9x is still alpha). Patch it with this patch and apply it if you want to use a nice splash screen. You can as well use a vanilla GRUB (or even a precompiled one), just don't forget to remove all the "catf" commands from the config files if you use those. The only files from GRUB you need are stage1 and stage2
Now take your FreeDOS floppy, and make a new directory boot/grub on it. Put stage1 and stage2 in (and if you have any menu.lst, put it in as well). Put your SBM image, your MEMDISK binary and your FreeDOS boot sector to /boot. (If you want to use the original config files, name them sbootmgr.dsk, memdisk.bin and bootsect.or). Mounting the floppy as msdos instead of vfat can safe disk space since vfat will have to store filenames twice (short and long). So I always use short filenames in my examples. Add other stuff (memtest86 binaries, etherboot images, what you like), there is no real problem in adding them since GRUB can boot them directly.
What is still left is "installing" GRUB on the floppy. For that you need a running GRUB. Take a second floppy and rawrite stage1 and stage2 (concatenated) onto it. This floppy will boot into console GRUB mode. Boot from this floppy, then swap floppies (in QEMU press Ctrl+Alt+2 and enter "change fda /new/filename" without quotes), and enter "root (fd0)" and "setup (fd0)" on the grub console. Voila -- reboot and your floppy should be working
For the lite version, you have to patch your GRUB a second time, but copy the stage1 before. Copy patched stage1 and stage2 onto the floppy and concat original stage1 and patched stage2 for the second floppy.
Then use a hex editor to add control codes to it. All control codes are two characters long and start with a TAB character (0x09). The following codes can be used:
0x09 0xXY (X!=Y) Set color spec. X is background color, Y is foreground color. Using background color 8-F creates blinking text instead. 0x09 0x00 Reserved (contains NUL) 0x09 0x11 Clear screen 0x09 0x22 Wait for a key press (without a prompt since a prompt would mangle the screen) 0x09 0x33-0xFF Reserved for future useNote that due to GRUB limitations, lines can only be 79 chars long, not 80. Yes, this format is crude, but it was simple to implement and it worked for the splash screen (after uncountable tests it looked OK, yay!) and the GPL viewer.