Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!pro-sol.cts.com!mdavis
From: mdavis@pro-sol.cts.com (Morgan Davis)
Newsgroups: comp.sys.apple
Subject: Re: Booting Ram5 from Assembly
Message-ID: <8909282157.AA10438@trout.nosc.mil>
Date: 28 Sep 89 21:07:20 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 29

Network Comment: to #11532 by L77%TAUNOS.BITNET@cunyvm.cuny.edu

> So in short where do you JMP/JSR in order to boot /RAM5 ?????????

You don't.  And you can't.

Slot booting requires bootable media being mapped to drive #1 of a slot.
Since the RAM disk on the IIGS is mapped to a second drive (usually slot 5,
drive 2), you can't jump into peripheral RAM space (via JMP or a higher call
like PR#n or n-Control-P in the monitor).

An elegant way to do it is to change the battery RAM settings to make the
RAMdisk the boot disk.  Then munge the power-up compliment at $3F4 (increment
or decrement it), and do a JMP to $FA62, the reset handler.  The handler, upon
seeing $3F4 munged will cause the computer to reboot as if
Control-Command-Reset were pressed.

The only drawback to this is that it makes a change to battery RAM which you
might not always want.

My instincts tell me that if the IIGS firmware can cause the RAMdisk to boot,
then you should be able to do it yourself.  I suspect you would have to write
your own bootstrap routine to set up zero page locations (MSLOT and all that),
read in block #0 of the RAMdisk, set up registers and flags appropriately, and
call the boot block code you loaded into memory.

UUCP: crash!pnet01!pro-sol!mdavis		ProLine:  mdavis@pro-sol
ARPA: crash!pnet01!pro-sol!mdavis@nosc.mil	MCI Mail: 137-6036
INET: mdavis@pro-sol.cts.com			ALPE|BIX: mdavis