[Coco] NitrOS-9 boot configuration tool

Tormod Volden lists.tormod at gmail.com
Sat Nov 8 06:34:35 EST 2014


On Thu, Nov 6, 2014 at 6:58 PM, Bill Pierce via Coco wrote:
>
> Gene,
> The way BootMajik will work is just that, dynamically linked arrays that flag a dependacy tree. When one item is selected, any "required" links in the tree (modules) are automatically selected, the "optional" modules are user selected (all point n click). The hard part is to make the tree. One needs a "complete" list of all known modules in the NitrOS9 repo (which I have), then theoretically, the array tree for an RBF or SCF driver would be: Driver(Manager(Subs(Descriptors))) (some will vary)
> To step the user through, I have devised a system of point-n-click selection:
> Coco Model 1, 2, or 3
> NitrOS9 Level 1 or 2 (L1 will be autoselected for Coco 1 & 2)
> CPU 6809 or 6309
> Boot Method DW4, Floppy, HD, ect..
>
> From there, the driver/descriptors step through RBF, SCF, Pipe, and Clock.

Bill,

Can you share this dependency tree with us?

Ideally, I think we should also document module dependencies in the
source code itself. Each module source should declare which modules it
depends upon, for instance using a magic comment line. Then a simple
tool can automatically reconstruct a dependency tree in a
machine-readable format.

The selection and assembly of the boot file can be done outside of
NitrOS-9. I think it would be an advantage to not need a running
NitrOS-9 system to start with. For instance a user-friendly program
can run from BASIC/RSDOS, or on a PC to allow the selection of drivers
and assemble a boot file. It can produce a disk image, or a boot
file/list for Brett's bootloader.

This would be an alternative to Bill's all-NitrOS-9 solution, but some
competition would not hurt here :)

I don't know how difficult this is going to be though. I don't know
enough about NitrOS-9 to even understand why the boot configuration is
so delicate, or for instance what "cobbling" of boot tracks means. I
will need to read the documentation. Thanks for the links you posted,
Frank.

Regards,
Tormod



> And yes.... it's a long list but by using virtual memory (very similar to the way MyRam does, but using 8k get/put buffers), I can keep VERY large arrays in memory. Also, each section can be loaded from a disk file as needed so the whole thing doen't need to be in memory at once.
> Using this method, I even have room for a short 1/2 line description when needed. I've been working this out and trying various parts of it for about 2 years now. I've even thought about including a "user's modules" list for the user's "custom" modules that are not in the repo. This way you can add your own modules to the list. The file list and the actual modules wile be stored in it's own disk or directory on the HD. To update the repo... just change the disk or recopy the files to the HD (disk or HD will be user's choice).
> The virtual memory routines are functional and already in use in MShell. I can store my complete CMDS dir with file attributes and stats for each entry, not to mention various flags for system use. Each record entry is about 58 bytes. My CMDS dir has about 526 files... (do the math...)  all in memory at once. In fact, the array will max out at about 1129 records and could be much larger, but I doubt many people have any directories much larger. The PC dirs are 270 bytes per record (to account for long filenames) and will max out at about 480 records and will probably be larger in the finished program. MShell displays 2 such lists!!  This also makes storing large directories of the DW4 server PC's HD dirs possible. Even with the long filenames, and yes... it will access the server's files so you can move files from PC to OS9 to PC :-)
> The display for BootMajik will be the same GUI used for MShell which is built on Mike Knudsen's "Ultimuse3" GUI which is clean and uncluttered, also very stable. The graphics handler for the GUI does 28 lines in 80 columns on the screen in 640x192 / 2 color mode, so there' plenty of screen real estate, and the 2 panels are scrollable (3-4 panels in BootMajik). In BootMajik, the leftmost panel will display the initial driver list of type RBF, SCF, Pipe, or Clock. The next panel displays the managers (if any) available from the left selection, the next panel gives the descriptor list from the selected manager, then the last panel will show the complete selected system (so far) in proper order, adding new files as they are selected. This last panel can be edited by selection to add/remove sections as need or when you realize you made a wrong choice.
> So yes, it can be done, and I will do it :-)
>

>
>
> -----Original Message-----
> From: Gene Heskett
> Sent: Thu, Nov 6, 2014 8:59 am
>
> I think that is a great idea.  But there is one showstopper problem.
>
> Exactly none of the I/O devices we have today, is capable of being
> interrogated on the hardware level, and returning an $Id string.
>
> So you are still stuck with asking the user to identify his hardware and
> its configuration.  For those who have had their stuff for yonks, likely
> no problem, we know what we have.  But for the new bee, whats an MPI, or
> whats a 1Gb hard drive, scsi or ide?  Addressed as CHS, or LBA?
>
> I think you can see where I'm going.  You are going to wind up building
> the list on non-volatile media, and chain linking the various bits and
> pieces because its going to be a rather lengthy program when done.
>


More information about the Coco mailing list