The first 512 byte (usual sector size) of my in-development RXDOS.SYS file  
contain code so that it's a valid DOS executable (.COM of course), DOS  
device driver (try DEVICE=KERNEL.SYS), DOS kernel, and GRUB4DOS (probably  
normal GRUB as well) chainloadable without special support as for  
KERNEL.SYS (required: 0AA55h signature at address 510, code segment fixup  
by jumping from 0:7C00h to 7C0h:0).

It can also be loaded by DR-DOS LOADER, though LOADER always sets dx to  
zero so the default binary would always attempt to read CONFIG.SYS from  
drive A:. By forcing a boot drive value at "compile" time, a special  
LOADER binary can be created that always reads CONFIG.SYS from the first  
partition of the first hard drive (the only one LOADER seems to support  
anyway).

The DOS executable and DOS device driver entries don't contain actual  
programs, they just abort displaying a message stating that this is the  
wrong way to use the binary.

The DOS kernel entry, which is the default, is loadable at almost any low  
memory segment (50h til end of memory less two times the file's size) but  
requires offset zero. The default binary expects dl to contain the BIOS  
boot drive number but as mentioned a special binary with forced drive is  
created with some assembler options.

Of course all of this is done in real mode Assembly. Requesting a  
"grub4dos without menu" as "generic" boot file for FreeDOS is really  
unnecessary, unless you need CD-ROM no-emulation boot support or a file of  
which only the first few sectors are loaded. I'm sure someone writing  
Assembly and motivated enough could add the described generic boot support  
to the DOS-C file KERNEL.SYS itself. (If someone is interested I can send  
the related source.) The only major problem is that SYS CONFIG currently  
expects it's data block at a fixed address in the binary, which is not  
available with the described code because the DOS device header is to be  
placed there. Also, you can't compress generic bootable files just by  
hacking parts of the UPX loader as currently done for DOS-C (and the  
EDR-DOS kernel).

Regards,
Christian

------------------------------------------------------------------------------
Create and Deploy Rich Internet Apps outside the browser with Adobe(R)AIR(TM)
software. With Adobe AIR, Ajax developers can use existing skills and code to
build responsive, highly engaging applications that combine the power of local
resources and data with the reach of the web. Download the Adobe AIR SDK and
Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to