🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.intel
Article #1549

Multibus I, iRMX86 question

#1549
From: earleh
Date: Sat, 22 Nov 1986 22:23
74 lines
4912 bytes
     This query relates to running two Intel iSBC 86/30 processor
boards off the same disk in an Intel 86-310 micro-computer with a
Multibus I card cage, iSBC 215G Winchester controller, and with
one of the boards running iRMX86, Version 7.  For the benefit of
those not familiar with Intel's whole product line, in addition to
chips they also make computers, operating systems, and a whole
line of software development tools to make use of said chips.  The
particular computer I have is an 86-310, which is about the same
size as an AT, but has a Multibus I card cage, and much snazzier
cabinet (black and white, with attractive Intel logo on the
front).  The operating system, iRMX86, comes with enough source
code, libraries, and an "Interactive Configuration Utility" to
allow the user to recreate a custom version of the operating
system to his own specifications.  (This is a nice touch, try and
get the source code for MSDOS, for instance).  The setup we have
is primarilly for OEM types, but it functions very well in my
particular application, Radio Astronomy signal averaging. 

     My situation is this: I have two iSBC 86/30 CPU boards I use
in this system, together with an iSBC 012B memory expansion board,
a iSBC 215G generic Winchester controller, and some custom boards
which handle the signals coming from the radio telescope.  I have
set up the two iSBC 86/30 boards for "serial priority resolution"
of Multibus requests.  The board I have given the highest priority
in this scheme, which I will call the "master", runs iRMX86 and
accesses the iSBC 012B and the 215G.  The other processor, which I
will call the "slave", gets its input data from an iSBX analog to
digital converter board of our design, and shares the 012B with
the master.  Specifically, a reserved area in high RAM on the iSBC
012B is used to pass control information and data between the
slave and the master.  At present, the slave runs a program which
I have installed in PROM mounted on the slave 86/30, and the
master boots the operating system through the 215G as normal. 

     What I would like to be able to do is to have the slave 86/30
run a program which I have saved on the same Winchester that the
operating system and all my user programs reside on.  I have the
configuration code and libraries to generate the bootstrap loader
(bs1.a86, bs1.cfg, etc.).  I envision booting the operating system
from the Winchester, and then having the bootstrap loader (IN PROM)
load and run my slave data-acquistion program, which is only about
800 bytes in size.  This would be extremely convenient for me in
the event I decided to make changes in the data-acquisition
program while at the radio telescope site (2000 miles from my base
of operations).  Changing the program in PROM while in the middle
of the New Mexico desert would be a trick, but changing a
disk-based program would be trivial. 

     The problem as I see it is as follows: The bootstrap loader
that comes with the computer apparently loads programs by an
algorithm which makes use of whatever Multibus memory is available
for a scratch area, and then loads the actual program to the
Multibus addresses contained in the object record.  I think I can
fix the code in the "system_support" macro to use a scratch area
consisting entirely of the on-board RAM on my slave 86/30, but how
do I reconcile the conflicts that seem inevitable with two CPUs
trying to load off of the same disk?  Also, does the 215G
controller load the information from disk directly into RAM at the
request of the bus master, or does the bus master "fetch" the
information from the 215G and put it into RAM itself? Since the
first method seems more efficient to me, I have assumed it is the
method used.  If it is, how do I tell the 215G which CPU is
presently loading a program from disk?  At present, the master has
its on board memory dual-ported to the Multibus so that the
on-board and off-board addresses to access this memory are the
same.  The slave does not at present have its on-board memory
accessible from the Multibus.  Does this mean that I cannot use
the bootstrap loader in a "normal" mode to boot my slave CPU?

     Does anyone who subscribes to this newsgroup (a) know what
I'm talking about, (b) have experience in running two CPUs in a
Multibus I card cage from the same disk, or (c) know someone who
can help?
Technical Details
Message-ID: <5363@dartvax.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!rutgers!mit-eddie!genrad!decvax!dartvax!earleh

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!watmath!clyde!rutgers!mit-eddie!genrad!decvax!dartvax!earleh
From: earleh@dartvax.UUCP
Newsgroups: comp.sys.intel
Subject: Multibus I, iRMX86 question
Message-ID: <5363@dartvax.UUCP>
Date: Sat, 22-Nov-86 17:23:36 EST
Article-I.D.: dartvax.5363
Posted: Sat Nov 22 17:23:36 1986
Date-Received: Mon, 24-Nov-86 04:30:13 EST
Distribution: net
Organization: Dartmouth College, Hanover, NH
Lines: 74