[Coco] Nitros9 boot codes
Bill Pierce
ooogalapasooo at aol.com
Mon Jan 6 22:03:47 EST 2014
Tim,
A simple explination of a boot ror would be that when a "*" occurs in the boot listing an error has occured. Now take the next character (after the * ) and add 128 to it's ASCII value. You now have a standard OS9 error code you can look up or type "error #" on a booted system (# being the error number)
Now here's the long explination by Chris Hawks:
NitrOS-9 Level 2 Booting and (trouble)Shooting.
by Chris Hawks. 12May 2006
One of ourlocal Coco-nuts was having a problem with NitrOS-9 on
his Coco3. It had recently stopped booting NitrOS-9 fromHDB-DOS in
his SuperIDE. We got together at the monthly GlensideColor Computer Club
meeting to see if we could resolve the problem. Hebrought his system
and I brought a sub-set of my system to the meeting. Wewere the
'presentation' for that meeting. I booted my system fromHDB-DOS and
my SuperIDE adapter with his compactflash card in acompactflash to
IDE adapter as the slave drive. After my systems booted,I looked at
the root directory of his compactflash card. It looked OKto me, but,
he did have some odd files there. I shut down my systemand swapped the
compactflash cards. (His as mastr and mine as slave. The boot process
started and loaded track 34 and the OS9boot and then juststopped. From
the debugging clues posted to the screen during the bootprocess, I was
able to determine the the boot process was unable to findthe 'sysgo'
module. I re-booted with my compactflash as master andhis as slave,
and copied 'sysgo' from my root directory to his. Weswapped the
compactflash cards once again and his compact flash wasable to boot!
I was asked towrite-up our adventure as a article for the GCCC
newsletter (Coco 1 2 3). I had not been able to find anyinformation on
debugging the boot process in NitrOS-9 (except from thesource code) so
here it is.
STEP 1
The modules'rel', 'boot', and 'krn' are loaded into memory from
track 34 by the 'dos' command. 'Rel' ensures that it islocated in the
correct part of memory, sets up some of the hardware,clears the screen,
and installs the debugging 'print' routine. It prints'NITROS9 BOOT' in
the center of the screen and jumps to the executionaddress of the
module 'krn'.
STEP 2
The module'krn' uses the debug 'print' routine to put a 'K' on the
startup screen. It validates the modules in memory('rel', boot, and
'krn') which prints their names on the startup screen andmakes a system
call (F$Boot) which puts a 't' on the startup screen andlinks the module
'boot'. It puts a 'b' on the startup screen and calls'boot'. 'Boot' reads
LSN0 to find OS9boot and puts a '0' on the startupscreen. 'Boot' then
loads OS9boot and puts a '.' on the startup screen foreach sector read.
'$F$Boot' validates all modules in OS9boot which printstheir names to the
screen, and puts a second 'b' on the startup screen. Next'krn' links to
the 'init' module and puts 'i' on the startup screen.Following this it
links to and executes 'krnp2' the second part of thekernel.
STEP 3
'Krnp2' puts a'2' on the startup screen, and puts an 'x' on the
startup screen. Then 'krnp2' tries to 'chd' to the systemdevice named in
'init' (usually '/dd'). Next 'krnp2' puts a 'o' on thestartup screen and
tries to open the output console named in 'init' (usually'/term'). 'Krnp2'
checks for 'krnp3' and runs it if available. Then 'krnp2'puts a 'C' on
the startup screen and tries to run the startup module namedin init
usually 'sysgo'.
STEP 4
'Sysgo' opensthe output console, prints the NitrOS-9 startup banner
and sets the data and exec directories. 'Sysgo' willexecute 'startup' and
'autoexec' if available (unless you hold the 'shift' key)and finally
starts a 'shell' on the console.
If somethinggoes wrong during the boot, the module will call the
'crash' routine which will put a '*' and single characteron the startup
screen. The '*'indicates that an error occured and the character's ascii
value plus 128 is the error number. For instance '*X'would indicate a
'Path Name Not Found' error. 'X' is ascii 88, and 88 +128 = 216, the
error code for 'Path Name Not Found'. This is the errorwe saw when sysgo
was missing from the root directory of the disk.
So, the startup messages look something like this:
Krel boot krntb0...................................................
......... bkrnp2 dd d0 rbf rb1773 term w w1 w2 w3 w4 scfcowin clock
clock2 init i2xoC
Of course,YMMV (Your Modules May Vary)
This shouldgive you some insight into what goes on during a NitrOS-9
boot, and berhaps some debugging assistance whensomething goes wrong.
Hope you don't mind me posting this Chris :-)
Bill Pierce
My Music from the Tandy/Radio Shack Color Computer 2 & 3
https://sites.google.com/site/dabarnstudio/
Co-Webmaster of The TRS-80 Color Computer Archive
http://www.colorcomputerarchive.com/
Co-Contributor, Co-Editor for CocoPedia
http://www.cocopedia.com/wiki/index.php/Main_Page
E-Mail: ooogalapasooo at aol.com
-----Original Message-----
From: Tim Fadden <t.fadden at cox.net>
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Mon, Jan 6, 2014 9:47 pm
Subject: [Coco] Nitros9 boot codes
I remember seeing an explanation of the error codes spit out at the end
of boot process, but can't seem to find it. :-)
I am ending up with:
SysGo i2xo*m
boot failed :-(
Can someone explain how to parse out the o*m to see what the error is?
I booted from the 6809l2 dw image from the nightly build downloaded
yesterday and created a new dw bootable image. All I did was add
superdriver for tsc and the scisi disk descriptors.
Thanks!
P.S.Thanks for the replies from the Nx Zx question.
--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco
More information about the Coco
mailing list