[comp.sys.amiga] Streamlining WorkBench

dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/13/86)

	I've gotten tired of hearing all the seeks my floppy is making to
bring boot from workbench disk, so I did some experimenting and came up with
an easy solution.  All it involves is a lot of dilligent work.

	The idea is to start with a blank disk, create the directory
structure and files in the same order that the workbench accesses them on
boot and while it is executing your startup-sequence.  For me, there is also
a set of commands I execute from my shell login, so take the following as
an example.

WORKBENCH BOOT PROCEDURE:

(1)	Make a blank disk bootable by using the Dos INSTALL program.  You now
	have a workbench diskette which, even though it's blank, will boot
	and give you a default cli with the default preference settings.
	You don't even need a startup-sequence

(2)	Create directories and files in the same order that workbench 
	accesses them.  Note that if any of the files doesn't exist, 
	some default will be used:

	DEVS/SYSTEM-CONFIGURATION		-contains preference settings
	S/STARTUP-SEQUENCE			-contains execute script

	so far, the sequence of commands to setup the boot disk is (using
	SHELL commands):	'x:' is your old workbench diskette

		mkdir devs s c l
		copy x:devs/system-configuration devs
		copy x:s/startup-sequence s

	You now want to copy commands executed by the startup-sequence. Assume
	the following startup sequence (mine):

	-----------
	shell c:.rootlogin
	endcli > nil:
	-----------

		copy x:c/shell c
		copy x:c/.rootlogin c

	My Shell login looks like:

	-----------
	date
	echo -n "date/time? "
	addbuffers df0: 30
	addbuffers df1: 30
	binddrivers
	echo ram:* >nil:
	source c:.login		#contains aliases etc...
	input x;if $x;date $x;endif;unset x
	-----------

	Note that I echo ram:* to nil:.  This is only to force workbench
	to load the RAM disk driver.

	Note that I ask the question to set the date and time, and do the
	rest of the initialization while the user is typing his responce
	(none of the commands inbetween output anything), Then I get the
	user line and set the date.  So, we continue copying stuff as
	follows:

		copy x:c/date c
		copy x:c/addbuffers c
		copy x:c/binddrivers c
		copy x:l l

	Note the last copy creates the entire 'l' directory and files.
	This is mainly to get the Ram-Handler which handles the RAM:
	device, but all three files are needed to have a properly working
	workbench.

	Now BRING OVER THE REST OF THE FILES.  This involves creating
	other directories (such as LIBS), and copying files by hand.
	Don't trust AmigaDos to overwrite files in the same place on disk,
	so only copy stuff which isn't already on your new workbench.


NOTE that none of my startup commands required any disk libraries.  If you
have any startup commands that do require disk libraries, you should 
create the libs directory and copy the libraries in question. 

The whole idea is to reduce the number of seeks required to bring up
the system.  For those of you who use the icon-based system, you would
have also copied LOADWB and a few of the disk libraries (I'm not sure which
ones) over.  Don't get the idea that I'm excluding anything... I'm just
talking about what you initially put on your workbench diskette.  After
your through copying that, you copy everything else over (I reiterate to,
hopefully, avoid confusion).

Now, when I bring up my system, I hear only a few clicks from my drive, and
it comes up considerably faster.

And if you don't like manually doing this stuff everytime a new version of
the OS comes out, write a script to do it.

					Happy Hacking

					-Matt Dillon

P.S. By only copying what I use, I have 382K free on my workbench diskette.