PDA

View Full Version : Motherboard Kit IBM Clone 64KB-256KB PCB: Diagnostic Help



mmruzek
July 11th, 2012, 08:03 AM
The ‘PC-Retro’ Project is an attempt by me to create a kit computer for building a clone of the original IBM PC motherboard from the 5150 computer, more specifically the 64KB-256KB motherboard, which generally uses the 10/27/1982 BIOS.

This project was started over 1 year ago, and I have had the help and support of many members on this forum by way of private messaging. Thank You!

The goal for this project is to create a kit for constructing the motherboard which includes the PCB and all the parts for populating the board. The motherboard was created by using the original IBM circuit diagrams in the Technical Reference Manual, and also by examination of a specimen board, as some differences were found.

Components for populating the board were chosen to replicate as close as possible the original components. A trial lot of 10 PCB boards (4 Layer) has been manufactured. The first board was populated in the last 3 months and a photo of it is attached to this posting.

At this point the board will not boot with the IBM BIOS, but it will partially boot with the Landmark/Supersoft diagnostic ROM from the Modem7 website (Available here: http://www.minuszerodegrees.net/rom/supersoft.htm) A screenshot of the boot is attached, and it will be seen that the boot progresses OK through U35, but hangs before U36 (8255A-5).

Another diagnostic is the set of Test ROMs created by Modem7 for troubleshooting dead boards. (Described near the end of this post here: http://www.vintage-computer.com/vcforum/archive/index.php/t-22209.html) The PC-Retro passes Test1, Test2 and Test3… however the board does not complete Test4 (First 16K of memory.)

Analyzing this board is difficult because it could be any of the usual suspects, but could also be a problem with the board layout. It is at this point that I am at a loss for how to proceed with troubleshooting and problem solving to move forward.

A few possibilities might include: 1) Creating special subsets of diagnostic BIOS versions (Test 4a, 4b, 4c, etc), 2) Attaching some type of logic analyzer or other test equipment, or 3) Other suggestions? That is why I am posting. Thank You, Michael.

9653

9654

Chuck(G)
July 11th, 2012, 08:15 AM
Here's my two cents' worth. Since you clearly have video and--I'm going to assume--keyboard functionality, I'd make up a simple DEBUG-style monitor that allows you to enter, examine and run code snippets and go from there.

There are just too many questions otherwise, and sticking in someone else's tests aren't going to be very helpful. At least if you have a simple debugging monitor, we can ask you to look at or run bits of code and registers.

Can you get the 8237A to perform memory refresh? Operational RAM would be a plus, though I suspect the monitor could simply use part of video adapter RAM in a pinch.

reenigne
July 11th, 2012, 09:28 AM
Awesome project! I'd be interested to know what the differences between the IBM schematics and the specimen board were.

My guess would be something related to memory parity, since that involves both the 8255 PPI and the first 16K RAM test. If you have a port 60h diagnostic card handy, it would be interesting to know what numbers it shows with the IBM ROM. I'm not so familiar with Landmark/Supersoft or with Modem7's test ROMs, but perhaps a good approach would be to use an oscilloscope or logic analyzer to check what the state of the bus is when it stops, attempt to figure out the address where it stopped and then look that address up in a disassembly to see what the board is actually doing. Unfortunately there are many things that need to work to get past this point I think.

I'd be happy to take a look at the board layout files and see if I can spot the problem that way.

Chuck(G)
July 11th, 2012, 09:30 AM
I'm not sure that the first 16K POST test even bothers about parity--that comes later in the BIOS as I seem to recall. The first 16K test is basically a "do I get back what I wrote" test.

reenigne
July 11th, 2012, 10:43 AM
In the BIOS listing that I have to hand (1501512) it uses the same routine (STGTST_CNT) for both.

Chuck(G)
July 11th, 2012, 12:11 PM
I'll have to go back and check, but you could be right.

In any case, the easy way to handle this is to disable the DRAM parity check by simply lifting pin 22 of U36 (PB4 on the 8255) from its socket (you are using sockets, right?).

That will cause the enable parity check line to be pulled high and disable the checking.

sergey
July 11th, 2012, 03:59 PM
That's an interesting project! Are you planning to make it open source (publish schematics and PCB layout files)?

I would instrument the BIOS with some test code (at least print checkpoints or output something to port 0x80 before every POST step). It shouldn't be too difficult since you're using IBM's BIOS, and there is a source code for that. That will allow you to pinpoint exactly what fails.

As others mentioned it could be that you have problem with DRAM or DRAM refresh circuit. It uses the 8237 DMA controller (U35), and you're saying that system halts after its initialization. The DMA implementation on PC is a bit messy. Since CPU is operating in maximum mode regular HRQ/HDLA mechanism can't be used, and IBM PC designers implemented bus arbitration logic using few tens of logic gates. Another thing is that 8237 DMA needs 50% duty cycle clock, and CPU uses 33% duty cycle. So there is a delay line and NAND gate, that fixes the clock duty cycle. Also some of the logic that IBM uses in bus arbitration logic, wait logic, and parity generator/checker is 74S (instead of 74LS) and the difference in performance (propagation delay) is important there - so make sure you also use 74S (or 74ALS).

Regards,
Sergey

Chuck(G)
July 11th, 2012, 06:48 PM
Also, if it is the DRAM issue, can you post a scope photo of the RAS-to-CAS traces? DRAM is more than a little touchy in this respect--there are some fairly unforgiving timings regarding how soon after RAS is asserted that CAS can be asserted. I think the 5150 does it with delay lines--the clones do it with gate delays. Either way, it's not a lot of time in the firmament of vintage hardware--something like 50 nsec. max. PCB routing issues can change that easily.

mmruzek
July 12th, 2012, 02:10 PM
Thank You everyone for your suggestions. Yes, all the IC's on the breadboard are socketed. My future plans are to offer this project as a hobby kit, which will include all the parts and documentation.

I did not appreciate the magnitude of the speed differences between the 74S and 74LS series! Although I have tried to install chips identical to the original IBM PC design, it turns out that I did substitute a few cross-series chips exactly in the timing areas Sergey has mentioned. I have ordered the correct parts and will advise. Attached is an excerpt from a data sheet comparing timing for a typical gate circuit in the different families we are discussing here... I installed the wrong family chip in socket U65... part of the circuit diagram from the IBM Manual is attached photo showing U65.

Also, it will take a few days to do, but I will get an oscilloscope and start looking at signals, including the clock. There are 2 versions of how TD2 (7nsec delay) is handled on the IBM PC motherboards. It is one of the more significant differences I have found between the circuit board and schematic. I will explain the details after doing some additional research. Thank You, Michael

Chuck(G)
July 12th, 2012, 05:34 PM
Designing with DRAM can be a real headache.

A DRAM doesn't draw much current on its inputs, but it is a very capacitive load--usually somewhere around 5-10 pF per input. Connect a couple of banks in parallel and you're talking some serious transmission line issues with issues such as undershoot.

That's why most DRAM arrays use series damping resistors on the address inputs--while it doesn't eliminate problems, it does reduce them. A high-current drive helps.

If it's the 74S280 that's the problem, see my suggestion for disabling parity checking above. If you can't find the right 74S part, you might be able to get away with 74AS or even 74HCT parts.

sergey
July 12th, 2012, 11:58 PM
Designing with DRAM can be a real headache.



Just wondering how close do you want to be to the original... One 512 KiB SRAM chip (http://www.mouser.com/ProductDetail/Alliance-Memory/AS6C4008-55PCN/?qs=sGAEpiMZZMt9mBA6nIyysPeGHDtAZQ%252bHv1ODopTep9 8%3D) replaces all the DRAM used in IBM PC and removes all the associated with it headache. Well, no parity checking in this case, but SRAM tends to be much more reliable than DRAM.

Chuck(G)
July 13th, 2012, 07:37 AM
Just wondering how close do you want to be to the original... One 512 KiB SRAM chip (http://www.mouser.com/ProductDetail/Alliance-Memory/AS6C4008-55PCN/?qs=sGAEpiMZZMt9mBA6nIyysPeGHDtAZQ%252bHv1ODopTep9 8%3D) replaces all the DRAM used in IBM PC and removes all the associated with it headache. Well, no parity checking in this case, but SRAM tends to be much more reliable than DRAM.

It'd also save quite a bit of real estate and free up a DMA channel for other uses, but I think the OP was after a real 5150 "clone" kit.

mmruzek
August 1st, 2012, 03:18 AM
Thank you everyone for your suggestions on trouble shooting the PC-Retro design. The purpose of this project is to make a nearly exact clone of the IBM 5150 IBM PC 64K/256K motherboard. At last report the board was failing the 'TEST4' ROM code from modem7, which tests the first 16K of memory. (The board passes modem7 tests 1, 2 and 3)

The original thought was that a parity NMI might be generated during the test that might be enabled (mistakenly) by the hardware. I've spent quite a bit of time testing this possibility using a digital storage scope, lifting pins, etc. My conclusion is that an NMI is generated during the test, but is (correctly) prevented from reaching the CPU by U97.

Another suggestion was to avoid substituting LS series logic in place of S series. The board is now populated with exactly the same logic series as the original IBM PC.

I have now setup a test bed with with an IBM board next to the PC-Retro board, so I can test and probe one in comparison to the other. I've done a lot of probing with the multi-meter and comparing resistance levels, voltage levels, etc.

At this point I have found one significant difference in a signal, which is from pin 8 on the 8288 chip (U6) which is MEMW (Memory Write with overbar). I have attached the startup traces of the IBMPC and PC-Retro on this pin. The IBM has some clean signals, while the Retro looks to be going into a flutter. I apologize for aliasing on the traces, but the delay between power start and the signals is pretty long... about 1/3 second. This signal flutter follows the signal path all the way to the memory chip pins on WE Write Enable.

I'm not sure what this means, but the 8288 talks directly to the CPU, so I am considering what to test/do next. I know the signals have the tendency to ring, so I checked the damping resistors in line paths and they all seem correct.

98499850

sergey
August 1st, 2012, 10:46 AM
At this point I have found one significant difference in a signal, which is from pin 8 on the 8288 chip (U6) which is MEMW (Memory Write with overbar).


Have you tried replacing your 8288? On my own board I had some weird problems when using AMD 8288, but 8288 and 82C88 ICs from other manufacturers worked perfectly.

Crypticalcode0
August 1st, 2012, 05:13 PM
there is parasitic capacitance load on the bus, do those lines pass a power plane?

wdegroot
August 2nd, 2012, 06:06 PM
this may not be any help but:
at elctro nucleonics in 1989, we used an IMB pc as the heart of an instument.
the " guys" knew the real IBM XT's had masked proms ( not eproms( uv) and ee proms had not been invented
they found one imb xt with eproms and copied the chips
they did not work.
I can ask one of the techs
I saved copies of xt bios'
I think I still have them.
it may be simpler to make a
xt clone. I offended someone who has a xt mb I gave him possibly he would give it mback ?

modem7
August 2nd, 2012, 10:33 PM
this may not be any help but:
at elctro nucleonics in 1989, we used an IMB pc as the heart of an instument.
the " guys" knew the real IBM XT's had masked proms ( not eproms( uv) and ee proms had not been invented
they found one imb xt with eproms and copied the chips they did not work.
EPROMs do work in the IBM PC and IBM XT.
For the IBM PC, see http://www.minuszerodegrees.net/5150_u33.htm


I saved copies of xt bios'
I think I still have them.
Not required.
The IBM XT BIOS is at http://www.minuszerodegrees.net/bios/bios.htm
Some BIOS for XT clones is at http://www.minuszerodegrees.net/xt_clone_bios/xt_clone_bios.htm

modem7
August 2nd, 2012, 10:47 PM
Michael (mmruzek) has discovered that my TEST4 ROM is falling over at the point where a read is done of the 8255 chip for its port C state. That explains why the Landmark/Supersoft diagnostic ROM hangs where it does. Armed with his DSO and the 8255 timing [diagram (http://www.minuszerodegrees.net/images3/8255_mode0_read.jpg)] for a mode 0 read, he may be able to detect incorrect 8255 inputs.

mmruzek
August 13th, 2012, 02:41 PM
The PC-Retro is alive! Thank you everyone for your assistance. The problem was tracked to an errant board trace that was tying together the /AEN and ALE signals. The problem was solved by cutting the trace with a razor blade. The board now runs the Landmark/Supersoft diagnostic ROM with the encouraging results shown in the photo. When the IBM 10/27/82 BIOS is run, the error codes 1055 and 201 are displayed. I've yet to look those up, so if you know... much appreciated. Michael

9946

reenigne
August 13th, 2012, 10:25 PM
1055 201 is a memory error (http://www.vintage-computer.com/vcforum/showthread.php?12856-IBM-5150-Error-Code-106E-201) as well.

modem7
August 14th, 2012, 01:21 AM
201 error detailed [here (http://www.minuszerodegrees.net/5150/ram/5150_ram_64_256.htm)] as well.

The "10" in "1055" indicates a problem when the second bank of 16K was tested.
The "55" in "1055" indicates four bits in error in that bank.

Although possible, I think it unlikely that you have four bits in error.

The IBM BIOS you will be using (revision 10/27/82) is known to require that all four RAM banks be populated.
So make sure that they are, and that SW1 and SW2 are set per:
SW1: 3=off 4=off (i.e. 4 banks of RAM)
SW2: 1=on 2=off 3=off 4=on 5=on (i.e. 256KB)

mmruzek
August 14th, 2012, 02:41 AM
I had the memory switches set wrong. (Ha! Ha!) I was able to get the PC-Retro to boot DOS 2.1 from a floppy disk, as shown in the photo. However I had to use the Generic Anonymous Bios from Jon because the IBM 10/27/82 BIOS only gives me a blinking cursor. Also, The Landmark/Supersoft diagnostic ROM indicates an error with the NMI. The Tests 1, 2, 3 and 4 ROMs from Modem 7 all pass. So, there are quite a few different directions I could go here... I could work more from the hardware side, or start working from the DOS prompt side with some diagnostic programs. I would appreciate suggestions, especially related to diagnostic programs to run from the floppy. Thank You, Michael

9947

modem7
August 14th, 2012, 02:55 AM
However I had to use the Generic Anonymous Bios from Jon because the IBM 10/27/82 BIOS only gives me a blinking cursor.
That's what we expect to see from the IBM 5150 BIOS - a blinking cursor. Then after about 50 seconds (which seems like an eternity), things start to happen (e.g. floppy access). Did you wait long enough?


Also, The Landmark/Supersoft diagnostic ROM indicates an error with the NMI.
It certainly needs to be investigated. Without the NMI circuitry working, RAM parity errors won't be displayed. And math co-processor operation won't be possible.

mmruzek
August 14th, 2012, 03:05 AM
Thank you Modem7! The problem was that the RAM banks were not fully populated. With a complete memory fill and the switches set correctly I have the board booting OK from the IBM 10/27/82 BIOS... Interesting that the Anonymous BIOS can handle the 64KB of memory fill OK, but not the IBM BIOS.

modem7
August 14th, 2012, 03:09 AM
Thank you Modem7! The problem was that the RAM banks were not fully populated. With a complete memory fill and the switches set correctly I have the board booting OK from the IBM 10/27/82 BIOS... Interesting that the Anonymous BIOS can handle the 64KB of memory fill OK, but not the IBM BIOS.
Two of the bugs in the IBM 10/27/82 BIOS only present a problem if less than 4 banks of RAM are populated.
I investigated and then wrote up the details at http://www.minuszerodegrees.net/5150/misc/5150_27OCT82_less_than_4_ram_banks.htm

ajacocks
September 23rd, 2012, 04:28 AM
I just found this in browsing around:

http://www.mtmscientific.com/pc-retro.html

I assume that this is the board being described in this thread? If so, I'm quite interested, though where I'll find a PC case with no/dead motherboard, I dunno.

- Alex

modem7
September 23rd, 2012, 11:46 PM
I just found this in browsing around:
http://www.mtmscientific.com/pc-retro.html
I assume that this is the board being described in this thread?
Yes it is.

mmruzek
September 24th, 2012, 01:29 AM
I just found this in browsing around:

http://www.mtmscientific.com/pc-retro.html

I assume that this is the board being described in this thread? If so, I'm quite interested, though where I'll find a PC case with no/dead motherboard, I dunno.

- Alex

Hi, Yes the PC-Retro project is the subject of this thread. Right now we are doing the final spin on the PCB boards for production based on results of the diagnostics, as discussed here and on several other threads on VCF. The kit will include all the parts to build a 5150 motherboard clone. The standard BIOS will be the 'Anonymous' BIOS from member Plasma, as detailed here:

http://www.phatcode.net/downloads.php?id=101

BTW, This BIOS package is absolutely fantastic! Take a look at it if you have not done so already... It includes the source code, instructions for customizing, a compiler, linker and custom ROM code generators for whatever EPROMs you are burning.

Locating and purchasing stock vintage IC's in large quantity has been one of the more signifcant challenges of this project. (By the way, if you happen to have a large stock (100+) of any vintage IC's please PM me.) Depending on how it is received, we would like to eventually offer a kit for building a graphics card. At first it was hoped a VGA card might be possible, but it is more likely the video will be something like a MDA, or Hercules (MDA with Graphics). Ideally though, I would like to get to a VGA Monitor somehow, but by using stock components.

I really appreciate all the fantastic assistance the people on this forum have provided for this project.

Michael

nestor
September 24th, 2012, 02:32 AM
Is the cassette interface working or would it need BIOS support?

Great Hierophant
September 24th, 2012, 03:42 AM
Is the cassette interface working or would it need BIOS support?

As it is supposed to be a true hardware clone of the 5150, then the cassette interface should work through reading.writing the appropriate hardware I/O, even if the Turbo XT BIOS does not support it.

Chromedome45
September 24th, 2012, 04:28 AM
Just curious what would the estimated cost be of this kit? Sorry if already asked.

Marty
September 24th, 2012, 07:16 AM
Hi All;
I am also just wondering, can the PCB be purchased by it self, as I would aready have the IC's needed, and HOW much would it be ????? and I could not aford the whole Kit.. But, I could Build it with what I have..
THANK YOU Marty

mmruzek
September 24th, 2012, 08:27 AM
Is the cassette interface working or would it need BIOS support?

Hi, Yes all the hardware to support the original IBM cassette interface is on the board. It was actually expensive to do that, but a PC just wouldn't be a PC without a cassette port. The IBM BIOS burned onto an EPROM will support the cassette port. (We actually could use some help testing that feature if anyone has the setup.)

Also there were a few questions about how the kit will be offered... The plans right now are to offer 3 kit levels: Bare PCB, Basic Kit and Deluxe Kit. The Basic Kit will have everything to make a working board with 64KB of memory. The Deluxe Kit will incluide 256K of memory, an 8087 Math Chip and possibly a few other extras (EPROMs and Adapter, etc.) Pricing is TBD because we haven't quoted the final production run of boards yet. Our business is approximately 50% international, so we are familiar with worldwide shipping by postal mail and plan to offer this kit worldwide.

Also, I meant to mention that if anyone has a large lot of ISA 8 bit compatible VGA cards to sell, please contact me by PM. Thanks, Michael