





			       Choose-OS 
			      
			      
			 
			      
	   Version 0.81, Copyright (c) Tuomo Valkonen 1996-1997.
			      


Choose-OS is free software distributed on as-is basis and comes absolutely 
with no warranty. Therefore shall the author in no way be responsible for any 
kind of damage possibly caused by the use or abuse of the program or mistakes
in the documentation or samples. The author shall in no way be liable for
possible infringements on copyrights, trade secrets or any patents by any part
of the program. As the program is free software, you are allowed and even 
encouraged to copy and distribute it to your friends and everyone else as long 
as they're not paying for the software itself. You are allowed to use the 
sources but if you do so, the resulting software and sources must be available
for free and the original author must be given the appropriate credits. 
Batteries not included. Some assembly may be required. Keep away from small 
children.


WHAT IS CHOOSE-OS ?
-------------------

 Choose-OS is a fully configurable boot loader for Linux/PC.
 It is a program which, when you boot your computer, allows you to 
 select the operating system to boot.
 Yes, it does the same stuff that LILO or OS/2 boot manager do.
 Choose-OS has, though, some nice features not found in many or none 
 other programs of this kind.

 Look 'n Coolness:
	* You can choose the colors used for each image separately
	* You can position the menu and timer or even each image
	  separately on screen
	* Hotkey can be specified for each image
	* And finally, you can have a background image 
	  (plain ascii text or screendump format) !
	    
 Other stuff:
	* Emergency bootsector - If there's been a failure loading 
	  Choose-OS mapfile or 2nd stage loader, an emergency bootsector 
	  will be tried to load, if one specified.
	* An easy-to-use configuration program for X, Visual Chos
	* Initrd,bzImage,MBR rewrite, hda/hdb and fd0/fd1 swapping, etc.
	* Single-shot autoboot
	* dosmenukey -option


HOW CAN I INSTALL IT ?
----------------------

 1. Make a boot recovery disk unless you already have one ;)

 2. Run ./Install (as root) to copy chos binaries and stuff to their
    appropriate locations.

 3. Create yourself /etc/chos.conf configuration file. See below
    for more information.
    (If you've been running chos 0.7 or newer before, you may skip
     this part. Just change 'fastboot' to 'autoboot').

 4. Run 'chos' (as root of course). (Add -v on command line for verbose mode)

 5. Last chance to make a boot recovery disk!

 6. Reboot your system.

 7. Now you should see a nice bootup menu and be able to
    start the OS you want to by choosing from the menu =-)
       or
    Chos has failed and you gotta use your boot recovery disk :-(


CREATING A CONFIGURATION FILE
-----------------------------

 In the ./samples directory your can find some sample configurations.
 If you have never used chos before, you might want to
 use ./samples/simple.conf as a template and later, when you have
 gotten chos up and running, move on to nicer configurations.

 For more information and a QuickStart guide refer to the HTML
 documentation in ./docs 


CONFIGURATION FILE
------------------

 '#' denotes a comment.
	   
 Each non-comment/non-blank line begings with a keyword followed by 
 options. Choose-OS currently recognizes the following keywords:

 NOTE: This list is a bit outdated and doesn't contain all the new options.
       Please refer to ./docs for a more complete list

 GENERAL:
	
	delay=<xx>
 		Sets the delay to wait before bootin' the first 
		image to <xx> seconds. Setting <xx> to "off" will
		cause delay to be off.
		Default: 30 secs.

	autoboot=<no|pressed|not_pressed>
		default=no. This option can be used to tell chos
		when to load the first image at the bootup without
		even displaying the menu and stuff at all.
		
		Setting this option to 'pressed' will fastboot when
		any of the modifier keys (shift,ctrl,alt) is held
		down.
			
		Setting it to 'not_pressed' ('not pressed' is ok too)
		will automatically make chos load the first image, 
		unless you hold down one of the modifier keys 
		( la LILO), in which case it will display the menu.
	
	install=<device>
		Tells Choose-OS to install it's boot sector on 
		<device>. 
		Default: None. This is required!
		
	emergency=<name>
		Ask chos to use <name> as "emergency" bootsector.
		"Emergency" bootsector is a bootsector that will be
		tried to load if chos, for any reason, couldn't load
		it's second stage loader or mapfile.

 LOOK:

	banner=<banner>
		This is what Choose-OS shows on top of the menu.
		The default is "Choose-OS v<x>.<y> BootUp Menu."
		'n I'm sure U wanna change it to a more interesting
		one, like "Whatcha wanna play today with ?",
		"Good morning, whatcha wanna have for breakfast?" or
		something... Oh, BTW, the maximum length of the 
		banner is 64-1 characters...
	infoline=<on_off>
		Do ya wanna see copyright 'n key help at the
		bottom of the screen at bootup ? If not, set this
		to "off". Else set it to "on"

	color=<color>
		Let's you specify color used for normal text.
		
	selection=<color>
		Highlight color of selected image. It can only
		be one of the 8 first colors.

	background=<type>:<file>
		Tells the background "image" to use.
		Type may be 'ascii' for a normal ascii text file
		or 'dump' for a screen dump.
		See BACKGROUND IMAGES below for more information.

	menupos=<col>,<row>
		Tells the position where to place menu.
		Column must be in range 0<=col<80-30 (image name length
		is 30) and row must be in range 0<=row<25-nr_images.
		This also moves timer position, if it is not set.
		
	timerpos=<col>,<row>
		Tells timer counter position.
		Column must be in range 0<=col<77 and row in range
		0<=row<25. Setting this will cause the string
		"Time left: " not to be printed.


 IMAGE CONFIGURATION:

	<image_type> "<name>"{
		options_and_stuff
	}

	Where: 	<image_type> can be  one of these:
		"linux"		for normal linux kernel
		"big_linux"	for bzImages
		"bootfile"
		"bootsect"	these two are exactly the same thing, but
				may have different options in the 
				future. They are used to boot a bootsector
				of an other operating system.
				
		<name> is the name shown in the menu.
	       
	Common "options_and_stuff":
	       		
		color=<color>
	 		Use <color> for the image.
	       		
	       	image=<file>
	       		The file/device name of the bootable.
	       	
	       	hotkey=<key>[,hidden]
	       		<key> can be used to quickly start
	       		the image. <key> can be 0-9,A-Z
	       		(lower case will be converted to 
	       		upper). If you put ',hidden' after
	       		the key, it will not be displayed
	       		before the image name.
	       		
	       	position=<x>,<y>
	       		The position of the choice on screen.
	       				
	       	loader=<loader>
	       		Use OS-specific loader <loader> instead
	       		of default.
	       			
	Linux-specific (linux and big_linux):
	       		
		cmdline=<command_line>
		    	This is the default command line for
		       	Linux.
		       		
		initrd=<file>[,address]
		      	Asks Choose-OS to load <file> as initial ramdisk. 
		      	If no address is given, or address is 'top', the
		       	ramdisk will be loaded on top of memory. 
		       	Address may also be a memory address >2M 
		       	(preferably>4M) ( 6M and 8M) for bzImages).
		       	You must have a 2.x kernel for this feature.
		       		
	Bootsector-specific:
	       	
	    	THESE ARE ALL UNTESTED OR OTHERWISE DANGEROUS FEATURES !
	    	YOU'RE USING THESE AT YOUR OWN RISK ! 
	    	PLEASE BACKUP ALL MATTER-OF-LIFE-AND-DEATH DATA ON 
	    	YOUR HARDDISKS BEFORE TRYING THESE !
	    	YOU MUST JOE MAKEFILE TO COMPILE THESE FEATURES IN !
		       		
	       	dos4boot=yes|no
	       		tell dos4+ to boot off hdb
		       			
	       	rewrite=<device>
	       		<Device> is either a block special device or "yes", 
	       		in which case /dev/hda will be used.
	       		<Device> must be a whole harddisk device,
	       		not a partition.
		       	
	       		This needs a little work, but is intended for 
	       		partition table active flag/type modification.
		       	Can be used to hide DOS from Windog 95/NT.
		       					       	
		     	DO NOT USE IF YOU DON'T KNOW WHAT YOU'RE DOING !!!
		     	
		The OS must use bios for disk access for
		these two to work:
		   	
		swapfd=yes|no
			Swap floppies fd0/fd1
		       		
		swaphd=yes|no
		       	Swap harddisks hda/hdb
		  

 FILES:
	*
	* These will be overridden by the ones given on the
	* command line, if any are...
	*
		
	bindir=<directory>
		Search for loaders and stuff in <directory>
		Default is /boot
		
	bgfile=<file>
		Save background in <file>.
		Default is /boot/chos.background.
		
	mapfile=<file>
		Use <file> as map file.
		Default is /boot/chos.map

	
COLOR NAMES
-----------

 Colors are specified in the following format:
		
	<foreground>[,<background>]
		
 Foreground can be any of the following and background (optional)
 one of the eight first:
	
	black		blue		green		cyan
	red		magenta		brown		lightgray
		
	darkgray	lightblue	lightgreen	lightcyan
	lightred	lightmagenta	yellow		white
		

COMMAND LINE:
-------------

 Choose-OS accepts the following command line options:
	
	-h
		Show version,copyright 'n usage.
			
	-v
		verbose

	-c <config_file>
		Uses <config_file> as configuration file.
		Default is /etc/chos.conf.
		
	-t	
		Test. Specifying this option will not cause map
		file or boot sector to be written on disk.
			
	-view
		View the resulting menu. Will not install anything
		and can even be run as non-root.
		You can also use 'showscreen background [map]' to
		later view the menu.
		
	-y	
		Answer yes to all questions.
		
	*
	* The following will override the ones specified in the 
	* configuration file.
	*
		
	-b <bindir>
		Search for loader and stuff in <bindir>
		Default is /boot.
			
	-m <map_file>
		Uses <map_file> as boot image map file.
		Default is /boot/chos.map.

	-i <background_file>
		Use <background_file> as a file to store background
		"image" in.


LINUX COMMAND LINE:
-------------------

 This section describes the syntax of Linux command line.

 The command line is simply a string of parameters to transfer to Linux.
 Valid parameters are for example:
	ro		Mount root device read-only.
	rw		Mount root device read-write.
	root=<device>	Tells Linux to use <device> as root device.
			This can be a hexadecimal number or a path 
			name. Overrides the one hard-coded to kernel.
		
	There are lotsa others too depending on what drivers you have 
	but it's not the purpose of this document to describe 'em.
	
 Choose-OS interpretes "vga=<mode>" parameter itself. 
 The valid values for <mode> are:
	NORMAL		normal 80x25
	ASK		Tell Linux to ask for the mode
	EXTENDED	EGA 80x43 / VGA 80x50
	0x<????> 	where <????> is a hexadecimal number for the 
			mode.

 The default command line given in the configuration file can be
 overridden by pressing space,not enter, at the bootup menu and typing 
 another one.

RECOMPILING:
------------

 If you need to recompile Choose-OS (e.g. want a not-compiled-in-by-
 default feature in use), change to the ./sources directory,
 'joe Makefile' to configure it for your, 'make depend', and finally
 'make'. The resulting binaries (chos,chos.loader,chos.bsect) will
 be placed in sources/.. (this directory).


MORE INFORMATION:
-----------------

 ./docs contains loads of information ;)


CREDITS:
--------

 The program was written by 
	Tuomo Valkonen <tuv1@freenet.hut.fi>
		
 Bootsector rewriting feature and Visual Chos by
	Andreas Blome <flower@Informatik.uni-bremen.de>

 Showscreen and other stuff by
 	Bernhard Ehlers <behlers@t-online.de>

 (See ./docs for a more complete list)


THANKS:
-------

 I wanna thank all the people who have helped me to find bugs and
 who have come up with great improvement ideas. You're all helping me
 to make Choose-OS the ultimate boot loader =) 


CONTACTING THE AUTHOR:
----------------------

 If you wanna tell me how great/what a piece of shit Choose-OS is
 you can send me some mail to the address below.
 When ya notice a __big bad bug__ or have a good suggestion on 
 improving Choose-OS you will of course send me some mail.
 if ya have made an improvement, good looking background ansi 
 graphics, etc. why don't ya mail it to me to be included in the
 next release so that everyone can benefit of it.

 The address is:
	
	tuv1@freenet.hut.fi

 One more thing:
	Before asking if Choose-OS is gonna support joku-homma-jota-
	se-ei-viel-tue, please first check 
	 sunsite.unc.edu/pub/Linux/system/boot/loaders 
	  (and /pub/Linux/Incoming)
	to see that you have the latest version - it might already support.
	   

ALSO CHECK OUT:
---------------

 * Xtris
   - Yet another tetris for X.
     Better (or at least nicer looking) than the others for Linux/X IMHO.
     (sunsite.unc.edu/pub/Linux/games/arcade/tetris/Xtris-<version>.tar.gz)
	
 * Xinsane
   - It is another game I made for X11 and SVGAlib.
     It is a clone of the game of 'insane game' for ti85 with TCP/IP support.
     (sunsite.unc.edu/pub/Linux/games/arcade/Xinsane-<version>.tar.gz)

 * Xsquarez
   - If ya like tetris/Xtris, you're gonna love this one!
     It is a clone of 'squarez' for ti85. 
     (sunsite.unc.edu/pub/Linux/games/arcade/tetris/Xsquarez-<version>.tar.gz)

 * Rebooter
   - See ../rebooter-0.1/README

