[comp.os.minix] Installing a baby AT motherboard

paradis@encore.UUCP (06/04/87)

Those of you who read mail-order ads in computer magazines may have found
your interest sparked by a product that's appeared in recent months.  It's
called a "Baby AT" motherboard -- an AT-compatible, 80286-based system board 
that's the same size as an XT motherboard.  Those of us who own XTs and who
are looking for more computing horsepower might very well be interested.
Priced as low as $400 (with BIOS but sans memory) such a motherboard seems
to offer much more complete AT compatibility than 80286 plug-in cards, yet
at a comparable price (286 plug-in cards START at $350).  Nevertheless, most
of us are a wee bit apprehensive about ripping the guts out of our precious
computers if we aren't absolutely sure the results are going to be worth it.
For your benefit, therefore, I will relate to you my own experience doing
a motherboard upgrade to my PC-clone.

Disclaimer:  While it is believed that what follows should largely 
apply to any PC-style machine, certain details may differ depending on
the kind of machine you have and the mood of whoever assembled it in the
first place.  When in doubt, use common sense!

I purchased the motherboard from a company called May Computers in
California.  The woman who took the order spoke with a precise, clipped
accent that indicated her Oriental origins.  I suspected as much; most
inexpensive mail-order computer hardware is made in Taiwan these days.
The board cost $415, plus $7 for shipping and handling for UPS Blue Label
shipping (I REALLY wanted it!!).  Note that this particular company ONLY
ships COD... this means that somebody HAS to be home to take the shipment.
So I worked by dialing in from home that day.  Other companies accept
credit cards, but their prices were slightly higher.  I ordered the board
without memory, since I figured I could use the RAM chips from my XT
motherboard.  It would have cost an extra $110 to order the board stuffed
with a megabyte of RAM.

When the board arrived, I opened the package and inspected it.  It came
in an anti-static bag, which was in turn placed in an oversize box which
was then filled with foam-rubber "popcorn".  The truck would have had to
run over it to damage it in transit!  The "documentation" to accompany
the board consisted of a thin pamphlet and a couple of pieces of paper.
In general, unforutantely, the documentation that comes with Taiwan
computer hardware is practically useless; it says little, and what it
does say frequently does not coincide with the rev of board delivered.
In other words, if you are a COMPLETE novice at these things, don't
expect any help from the documentation.  Either send the board back,
or find someone knowlegeable who will assist (I'll do it for a fee! :-) )
Also in the box was a 5.25" floppy diskette labeled "Set Up Diskette"
and a battery pack for four "AA" cells (!).  Turns out the board has
non-volatile RAM for holding set-up information (disk configuration,
time-of-day, etc.).  The battery pack supplies power to keep this
information current while the power is off, and the setup diskette
contains a program to set-up the contents of the RAM in the first place.
If the RAM contents are invalid, then the bootstrap code assumes a
"safe" configuration (40-column CGA, one 360K floppy drive).

The board itself had eight I/O slots in the same configuration as the
real AT (six 16-bit slots and two 8-bit slots).  Most of the 
miniaturization could be attributed to their use of the Chips And
Technologies chipset.  The board itself seemed to be of high quality --
four layers, good solder joints, chips properly installed with no
bent pins, etc.

Next came the fun part -- trying to install the board.  I'll tell you
right now, the FIRST thing you MUST do before performing open-heart
surgery on your computer is to BACK UP YOUR HARD DISK if you have one!!!
I can't say this enough times!  I thought I could get away with it by
being gentle and not jostling the machine too much, but in jurisdictions
where Murphy's Law applies this isn't enough.  It doesn't take much to
jostle a head just enough out of alignment that it won't read what was
previously there, and you have to reformat.  That's what happend to me.
(In my case, there wasn't too much on the hard disk anyway and I was
able to piece most of it back together, but it was annoying nonetheless!).

First, out came the option cards (this was the easy part).  Next, since
the motherboard was partially underneath the left-hand set of floppy
drives, I had to remove them.  Be it known that my clone has a flip-top
case (as opposed to the True Blue IBM slide-out case).  Removing the top
of the case entirely made things a little easier, but believe it or not
flip-top cases are HARDER to work with than slide-out cases.  Although 
they're easier to open, the sides of the case come up much higher, 
making it more difficult to get to certain things (like floppy drives).
I left the hard-disk drive in since the motherboard came nowhere near it.

The motherboard was mounted in the case by means of nine mounting posts
which were screwed into the bottom of the case and which have threaded
screws which poke up through the motherboard.  Hex nuts secure the board
to the mounting posts, separated by paper washers.  In fact, as I took it
apart I discovered at least one cause of all the RFI problems I've been
having lately -- the over-zealous technician who assembled it in the first
place used paper washers ALL OVER THE PLACE... including the hole with a
bare solder pad around it where contact is REQURED so as to ground the
board to the case.  Live and learn.  In addition, the power and speaker
connectors had to be removed.  Speaker was trivial.  Power connector
required a lot of force to get loose, and when it did I suddenly had two
pieces in my hand!  Oh no, did I break it?!  Not really. Closer examination
revealed that it was in fact two separate connectors that sit cozily
side-by-side in the socket.  I quickly grabbed a pencil and marked arrows
to indicate how it should go back in (all I'd need would be to reverse
the two halves!).

At this point, I could -- gingerly -- ease the old motherboard out of
the machine.  Next step was a careful test-mounting of the new
motherboard (I'd want to install the memory before I did the REAL
mounting).  Anyhow, good thing I did the test-mounting... now I know
why the bottom of the case is riddled with holes like Swiss cheese!
Turns out that there are three or four different "standard" places 
for each mounting hole on the board.  I had to play around for a while,
unscrewing and re-installing mounting posts before I had enough of them
lined up with holes to hold the board up (I ended up using only seven
mounting posts instead of the full nine).

Next step was to cannibalize the memory out of my old motherboard and
plug it into the new board.  The documentation for the new board
was actually slightly helpful in this regard -- it showed the location
of the memory banks and the switch settings required for various 
memory configurations.  I set the switches for the 640K configuration
and got to work.  Ten minutes later I had the board stuffed with RAM
and was sliding it back into the case.  Screwed it down, plugged in all
the option cards, put everything back together except for the top of the
case (save that for when I KNOW it works!) plugged in the keyboard and
monitor and... gingerly... power it up.  Screen displays the BIOS
opening message... so far so good... runs through RAM test... "640K RAM OK",
it says.  "CMOS RAM error.  Check battery or run set-up".  No problem,
since I haven't installed the batteries yet and haven't run set-up...
then...

	KEYBOARD ERROR

OH NO!!!!!!!  I was afraid of this.  Yes, I know that XT and AT keyboards
are different and incompatible, but one would expect that a board designed
to be put into XTs would handle an XT keyboard!  Oh well, thinks I, the
scan codes are different, that's all.  I'll have to re-learn to type again,
but I can at least get started.  After a little more chugging, the screen
displays: "PRESS F1 KEY".  Guess this is its way of starting the boot sequence,
so I put a DOS floppy in drive 0 and start hitting keys, hoping the machine
will think one of them is F1.  Apparently this worked, since after hitting 
a bunch of keys the floppy started whirring, screen blanked, then "A>"!
So at least the thing boots!  Small relief, though, as it turns out that
XT and AT keyboards are too incompatible to work at all.  Call a local dealer,
and yes, they have XT/AT autoswitching keyboards... $79.95.  Oh well... got
no choice, now do I?  After seeing how fast it zipped thru the RAM tests, I
KNEW I'd never send the damn thing back!  Next morning I zoom out and pick up
the keyboard, then come back and install it.  I get a LOT further this time!
The thing boots DOS and runs most of my favorite programs.  Great!

Next step: Boot up MINIX and see if IT works!  It started booting OK, but 
as soon as I hit "=" at the fsck menu, it says "Unexpected trap < 16...",
and won't go any further.  Great.  Pull the hard disk controller out, and
the problem goes away!  What is this?  Turns out that the XT and AT use
different interrupt vectors for the hard disk controllers.  I'm still using
my old XT controller, so MINIX is setting up the wrong interrupt vector
for my machine.  So I fix the kernel to set up the XT vector regardless,
and try again.  No unexpected trap message.  (Thank goodness it's possible
to do MINIX development on a floppy-only system!!).

Development went slowly because, even with the HD controller out, after
the machine had been on for about an hour I'd start getting "unexpected trap"
messages again, followed by bizarre results from my C compiles.  When I
tried to reboot, the power-on code would report parity errors in the upper 
bank of RAM.  Putting 2+2 together, I figure out that the 64K DRAMs in the
upper bank were marginal timing-wise, and would hiccup once they warmed up.
Oh well, I eventually wanted to put 256K DRAMs in the upper bank ANYWAY, so
the next day I go to a local dealer and get 18 120-ns 256K DRAMs.  At $4.50
apiece plus tax, this comes to another $85.05.  So this $415 upgrade has
come to cost me $591 so far.  Sigh.

After all this, MINIX STILL would not talk to the hard disk!  Thinking that 
maybe I'd jostled the heads out of alignment, I took a deep breath, cursed 
myself for not having made a back-up (not MY fault... MINIX doesn't have a 
satisfactory hard-disk-backup utility!) and did a low-level disk format.  
Didn't change a thing.  Sigh.  Went back to DOS and used the debugger to talk 
directly to the HD controller registers.  Issue a seek command, and it seeks!  
Okay, so it's not a hardware problem.  Spend the next couple of days trying to 
figure out the controller protocol from some meager Western Digital documentation, 
then proceeded to write a brute-force hard-disk driver -- no interrupts, no
DMA, just talking and polling.  Success!  At least with a functional hard disk
future software development would be MUCH more comfortable.

Anyhow, now that the machine was working satisfactorily (or so I thought) I
decided the next thing to do would be to try out the board in 12MHz mode.
Up until now, I had been playing it safe by running at 6MHz (or so I thought!)
So I went and strapped the board for 12MHz and booted... and it seemed to 
run SLOWER!  So I write a quick benchmark (timing a long loop in BASIC),
and try it with both sets of strappings.  Sure enough, I had been running the
board at 12MHz all along!  @#$*&!! Taiwan documentation!!!  That's probably
the reason I'd been having problems with both the hard disk controller AND
the memory!  Ah well, at least I KNOW it'll work at 12MHz now...

By the way, 12MHz is FAST!!  Compile times start to feel like I'm using a
real computer :-).

The next two things I did software-wise were (a) put my changes back in the
filesystem to allow MINIX to use the hard disk as a root filesystem, and
(b) work on hacking up the 'tar' utility so that it would be able to back
up a hard disk onto multiple floppies.

Now that that's done, I'm back to hacking as usual.  There's only one serious
glitch left at present: for some reason the DOS FORMAT command won't work
for floppies.  I'll probably add formatting capabilities to the floppy-disk
driver one of these days (MINIX could use it anyway...)

   +----------------+  Jim Paradis                  linus--+
+--+-------------+  |  Encore Computer Corp.       necntc--|
|  | E N C O R E |  |  257 Cedar Hill St.           ihnp4--+-encore!paradis
|  +-------------+--+  Marlboro MA 01752           decvax--|
+----------------+     (617) 460-0500             talcott--+
You don't honestly think ENCORE is responsible for this??!!

tfra@ur-tut.UUCP (Tom Frauenhofer) (06/05/87)

[Et tu, line-eater?]

I had a similar experience to Jim when I put my "Baby AT" board in.  The only
things I would add are:

1)	Be leary of keyboards that "claim" to work with both an XT and an
	AT.  I bought one with my XT clone, figured it would work withmy
	AT board, pulled the jumper like I was supposed to, and ZONK!  It
	seems to be some sort of timing error.  My board was a 6/8 MHz one,
	so I later tried the keyboard at 6.  Worked somewhat better, but it
	would still glitch occasionally, so I, too, plunked down my bucks for
	an AT-compatible keyboard.

2)	Be sure about your power requirements.  The board I ordered (from a
	company called Computer Products United - I agree about the "crisp,
	clear" tones :-) needed a 150W supply - it wouldn't work with my
	135W jobby (even though the salesman told me it would - only when
	I had it and it wouldn't boot did they bother to tell me!).

3)	If you don't like the documentation, talk to someone there.  They
	usually have some other info (schematics, etc.) that they are willing
	(for a price, of course) to give you.  I was able to buy the schematics
	for about 10-15 dollars.  This way, if the board ever dies on me and
	I want to fix it/get it fixed, I don't have to "Send away to China" for
	repairs - I can find a local board hacker to do it for me.
-- 

  Tom Frauenhofer			...!seismo!rochester!ur-tut!tfra
"The two most common elements in the universe are hydrogen and stupidity."
				-- Harlan Ellison

keithe@tekgvs.UUCP (06/11/87)

In article <1431@ur-tut.UUCP> tfra@tut.cc.rochester.edu.UUCP (Tom Frauenhofer) writes:
>[Et tu, line-eater?]
>
>I had a similar experience to Jim when I put my "Baby AT" board in.  The only
>things I would add are:
>
>1)	Be leary of keyboards that "claim" to work with both an XT and an
>	AT.

The Maxiswitch 2186002XX is a keyboard with a pair of wsitches on
the bottom for (1) changing from AT to XT mode and (2) allowing the
interchange of the ~ key and the ESC key.

The Maxiswitch 2186003XX is an enhanced-AT version.

keith