; ; Free DOS Alternative Kernel; FDBOOT v. 1.10 (01-06-98) ; ; = Read Me = ; ; by Yury Semenov (yury@ultra.paco.net) ; Programs included to this archive allow you to * boot regular MSDOS kernel (v. 3.30 - 6.20) as well as Windows'95 and MS-DOS 7.0+ * boot any of Free-DOS kernels that satisfies for some requirements * boot any kernel after adding to kernel file special loader leading sector * it is possible to interrupt boot process and change boot drive etc. I plan to extend next version in following way: * Implement real loader of .EXE kernels. Now XFDBOOT can load only executables *without* relocations and which have entry point at offset 200h - i.e. such executables as Windows'95 IO.SYS. [BTW: does sombody knows meaning of Windows'95 IO.SYS EXE-header fields - this header contain some nonstandard usage of fields...] * To make possible to select one or another partition from MBR partition table and boot this partition even if it is not marked as active. You may assign any of these kernels as default kernel. Loading leading sector allow to boot any fragmented kernel file from root directory. If there is XBOOT.SYS file in root directory then operator can press any ctrl/alt/shift key and then select other kernel file to boot. List of files included to FDBOOT11.ZIP README 1ST 5 757 10.01.98 22:18 This file HISTORY TXT 451 10.01.98 21:19 History file FDBOOT TXT 7 541 10.01.98 21:34 More detailed information MAKEFILE 1 191 09.01.98 17:29 Makefile for usual Make (Micro-C make process this file incorrectly): FDBOOT INC 2 995 09.01.98 23:05 Miscellaneous definitions FDFUNC INC 1 514 07.01.98 19:50 -- // -- PREPBYTE INC 600 30.09.95 16:15 -- // -- FDBOOT ASM 8 798 09.01.98 22:58 Boot Sector source MKBOOT ASM 4 545 09.01.98 22:51 MakeBoot source MKBOOT EXE 1 904 10.01.98 18:13 MakeBoot utility XBOOT ASM 8 597 10.01.98 21:12 Extended Bootstrap source XBOOTLDR INC 2 189 09.01.98 21:24 XBOOTLDR.INC XBOOT SYS 1 436 10.01.98 21:12 -- // -- loader KRNLHEAD ASM 7 370 10.01.98 17:41 Example of Kernel leading sector KRNLOAD INC 1 913 08.01.98 23:00 Upper Loader for DOS-C 0.91 ATTENTION: It is better to save original boot sector before any operations described below! ENVIRONMENT: I hope that you have usual Make utility (for example Borland Make, but not Micro-C make), Arrow Assembler (asm) and VAL linker (val). MKBOOT Utility Mkboot.exe writes FDBOOT boot sector to selected drive. Command format: mkboot : For example: mkboot c: io.sys If any error occures then appears one of following messages Message Errorlevel Invalid Parameters 1 Invalid Drive 2 Illegal Kernel Name 3 Can't read boot sector 4 Can't write boot sector 5 Attempting write to write-protected disk 6 and MKBOOT.EXE performs EXIT with corresponding errorlevel. To recompile MKBOOT.EXE use command make mkboot.exe Extended Boot Driver XBOOT.SYS FDBOOT executes XBOOT.SYS during bootstrap only if this file have been copied to root directory of boot drive. If there is no such file then FDBOOT will boot default kernel without any output. XBOOT.SYS types OEM ID field ("FDLOADER ") from boot record and wait approximately 3 sec for pressing of any Ctrl/Alt/Shift key. If during this time interval any of these keys was not pressed then default kernel will be loaded. In other case XBOOT.SYS will type prompt [FDD 00 | *] Boot: [_ . ] ^^^ ^^ ^ ^^^^^^^^ ^^^ ||| || | Kernel filename and extention ||| || | ||| || +-------- Partition to load [NOT IMPLEMENTED] or '*' ||| || for default ||| || ||| ++------------ Drive number (0-based) ||| +++--------------- HDD or FDD ('_' marks cursor position) Now you may enter other kernel name. Following control keys are accepable: ESC Restart FDBOOT BACKSPACE Delete previous char ENTER Accept kernel name . Jump to filename extention : Change boot drive To recompile XBOOT.SYS use command make xboot.sys Kernel Leading Sector To recompile KRNLHEAD.SYS use command make head or make krnlhead.sys and then type command copy/b krnlhead.sys+ :\ for example copy/b krnlhead.sys+ipl.sys a:\xipl.sys You may include unique code for concrete kernel to KRNLOAD.INC. Demo version of KRNLOAD.INC is destined for loading DOS-C v. 0.91 kernel IPL.SYS. Hm.. Now I didn't test it... But now XBOOT.SYS also constructed in same way - so it is good example of using krnlhead (see xbootldr.inc)...