[Coco] Bootlink
Gene Heskett
gheskett at wdtv.com
Wed May 1 02:56:30 EDT 2013
On Wednesday 01 May 2013 01:29:34 Willard Goosey did opine:
> On Wed, May 01, 2013 at 12:35:23AM -0400, Gene Heskett wrote:
> > Thanks Kip. Now I hope my checking to see if the vdisk you want to
> > boot
>
> Sorry, running stock Tandy Disk BASIC and glenside IDE drivers here...
>
> Willard
I don't believe bootlink will help you then.
But let me describe what the superdriver. combined with hdbdos can do.
+
Using my first scsi drive (scsi/ide, with nitros9 are now interchangeable
as far as functional interface to the disk is concerned) as an example, it
is a 1Gib drive. I can use that whole drive as one os9 drive, in which
case the cluster size is 16 sectors per bit in the F.A.T.
But the first drive is setup so that about 498 megs is formatted as an os9
partition, with a cluster size of 4.
Now, HDBDOS has a 3 byte offset, in my case burned into the rom that Mark
prepared quite a few years ago now, located at a fixed address in the rom,
and which when used a a base offset, points at the first sector after the
end of the os9 portion of the drive. When in rsbasic, you tell it
'driveoff' or 'driveon', you are switching HDBDOS from floppy access, to
addressing the hard drive, starting at that address for a drive0 access. A
drive1 access adds 630 to that offset, drive2 adds another 630, wash rinse
and repeat till you've hit drive255, so you effectively have 256 floppy
disks of the original 35 track single sided formatting, but actually
located on your hard drive. That takes up only a bit over 41 megabytes of
your hard drive. 41,287,680 bytes TBE. And there is no reason why, on a
coco3 thats in the all-ram mode, so that rom image is actually in ram, you
can't poke those 3 addresses, whatever they are with those 3 byte
incremented by another $0x27600, and have another 256 virtual floppies,
stepping and repeating till you've run out of disks to copy, or you are out
of drive.
Now, enter the superdriver kit, with some enhanced bit meanings in a device
descriptor, and you can do exactly the same effective thing in nitros9.
Here is the /sh version of dmodes output:
{t2|09}/DD:dmode /sh
nam=SH mgr=RBF ddr=rbsuper
hpn=07 hpa=FF74 drv=07 stp=80 typ=81 dns=08 cyl=0023 sid=01
vfy=01 sct=0012 t0s=0012 ilv=00 sas=08 wpc=1D ofs=BB90 rwc=
Note the wpc and ofs values in the bottom line, containing $1D and $BB90,
which combined are $1DBB90, the address of the first sector of virtual
drive0 on _my_ hard drive.
Next, please note the stp=80 above. This is the number of the virtual
drive that will be accessed if I do a dir /sh, which because it contains a
bootable os9 disk image, looks legit to nitros9:
{t2|09}/DD:dir /sh
Directory of /sh 1927/12/10 22:15
OS9Boot bttemp mb.dw3fd mb.dw3hd dw3hd.bl
sysgo CMDS ChangeLog
Only one of those files is needed because my init module puts me on the
hard drive before sysgo or anything else in that image is accessed,meaning
the sysgo and grfdrv on my HD are used full time. My mb scripts leave a
copy of the scripts that generated that disk on the disk, for recovery
purposes and my convenience. The bttemp file is a copy of track 34, and
also serves no purpose other than as a way to vfy I have the correct stuff
hidden on track 34.
If I dmode /sh stp=00, then I will be looking at the vdisk known as drive0
to hdbdos. The 80 there now says I am looking at HDBDOS's drive 128. This
is my default drive to boot from if I boot from the HD.
This 'virtual disk' is os9gen-able with the mb script! No floppy disks
needed to make a new boot. Say I wanted to make a boot specifically to run
UmuseIII with, use dmode to set /sh to virtual disk 136, aka stp=88 (its a
hex value of course), adjust the *.bl file to contain the stuff UmuseIII
needs, and run your mb script, giving it /sh as the drive to build the new
boot on.
When you have what you think is an image suitable for UmuseIII, ded the hd
as /dd, and write down the values in DD.BT and DD.BSZ just in case things
go south. I'd also keep a floppy handy that is a complete boot, and which
has a copy of ded on it too. I made one, but have not needed it, but it
would be good insurance, something to threaten Murphy with if he's nosing
about. :)
Insurance on the shelf, run "bootlink $88". When its done, about 3 or so
seconds, and it reports no errors, tap the coco3's reset button for a hot
reboot, or enter 'reboot' if you have it for a full cold reboot. It will
load track 34 from vdisk $80, but when the boot module is executed, it
knows nothing of the file system on the disk, so it reads LSN0 of the HD to
get DD.BT, and DD.BSZ for where and how long that OS9Boot file is. But the
surprise is that it will NOT get the address of the OS9Boot file on drive
128, but the address of the OS9Boot file on drive 136, so it will load the
one you just made to run UmuseIII with.
To restore it to where you were, 'bootlink 128' or 'bootlink $80' and you
should be right back where you started.
Now, I think I'd keep a list taped to the monitor of which vdisk was to run
what game or other special program that needs its custom version of nitros9
to work right.
And to me, its all a lot handier than rebooting to rsdos so you can run
link.bas. ;-)
Cheers, Gene
--
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
My web page: <http://coyoteden.dyndns-free.com:85/gene> is up!
My views
<http://www.armchairpatriot.com/What%20Has%20America%20Become.shtml>
He who is known as an early riser need not get up until noon.
A pen in the hand of this president is far more
dangerous than 200 million guns in the hands of
law-abiding citizens.
More information about the Coco
mailing list