Problems with Commodore 286-16 and Coprocessor

Discussion about old PC hardware.

Problems with Commodore 286-16 and Coprocessor

Postby Speedsalat » 2019-9-11 @ 22:32

Hello everybody,

I recently aquired a nice little Commodore 286-16 and I'm very happy with it. However, I wanted to install a 287 coprocessor to make it really complete.

Unfortunately it doesn't like 287 coprocessors - and thats where I would need help. The coprocessor is always detected without any problems in the BIOS. However, as soon as it is utilized by software, the system hangs. It happens for example with Checkit 3.0, NSSI, ... It also happens with the Intel Coprocessor check tool "chkcop" (which delivers different errors depending on the utilized FPU).

I tried following coprocessors:
- An Intel D80287-10: chkcop hangs before identifying the coprocessor
- An Intel C80287XL: chkcop hangs after identifying the coprocessor but before any test can be performed
- An IIT 2C87-20: chkcop doesn't hang but produces an endless loop of "abnormal program termination" errors

It seems like a problem with the mainboard. However, I am not really experienced in this topic. The mainboard has some modifications done, which seems to be related to the floppy controller. I also reversed the changes temporarily - but this did not help. I also measured the traces and compared them to the datasheets - unfortunately I did not find any datasheet of the Headland HT12/A chip. The voltages seem to fit - CKM is high, VCC and VSS seem to be alright (the chip also gets warm) - the data pins are connected to the according pins at the CPU, Busy and Error are ~4.8V (strangely busy only dropped to 0.01V with the XL FPU - with the IIT I measured 4.8V all the time). I did also not notice any shorts or broken traces around the FPU.

Before I completely give up (which would be sad to give up on this really lovely PC), I wanted to ask whether you have any more suggestions what I could do in order to get the 287 working.

286front.jpg
Modification on the front side
286back.jpg
Modification on the back side


Thank you sooo much already
User avatar
Speedsalat
Newbie
 
Posts: 2
Joined: 2019-3-02 @ 16:05

Re: Problems with Commodore 286-16 and Coprocessor

Postby maxtherabbit » 2019-9-12 @ 01:21

is there a second oscillator socket for the 287, and is it populated?
User avatar
maxtherabbit
Member
 
Posts: 195
Joined: 2018-10-30 @ 16:36
Location: Richmond, VA

Re: Problems with Commodore 286-16 and Coprocessor

Postby H3nrik V! » 2019-9-12 @ 06:06

Isn't there a jumper to enable/disable coprocessor? If it's set to disable, the BIOS might detect the FPU, but when code is to be executed, both the CPU and the FPU tries to execute it, thus corrupting the bus?

Does the BIOS report what type of FPU is present?
H3nrik V!
Newbie
 
Posts: 75
Joined: 2019-3-25 @ 16:00
Location: Denmark, Naestved

Re: Problems with Commodore 286-16 and Coprocessor

Postby HanJammer » 2019-9-12 @ 08:54

It's very likely these bodges are there from factory (it's just legendary Commodore 'quality' ;D - same is in my PC20-III).

Try different FPU (again!). My HT12 based Octek Fox III with 20 MHz Harris CPU didn't liked IIT 2C87-20 and showed exactly the same behaviour you described - crazy errors in Falcon 3.0, system hangs in nssi or checkit and so on. Yet, this FPU works very well on another board (so it's not broken) and slower (10 MHz) AMD FPU works fine in this board.
User avatar
HanJammer
Member
 
Posts: 407
Joined: 2018-8-21 @ 15:02
Location: Warsaw, Poland

Re: Problems with Commodore 286-16 and Coprocessor

Postby Speedsalat » 2019-9-12 @ 21:07

Thank you so much for your answers.
The board has a total of 4 populated oszillators - one 50, one 32, one 24 and one 14 MHz version. I measured a connection from the 32MHz oszillator to the Headland chip AND to the correct 287 pin (according to the datasheet).
Unfortunately I have no manual for the PC (its a Commodore SL286-16 Slimline). I found some manuals online (including a service manual) - but they are all for a completely different mainboard. Fortunately there is a sticker with a description of the jumpers attached to the power supply. However, I could not find any jumper related to the coprocessor.
Thank you @HanJammer for your suggestion. I now also bought an 10MHz AMD FPU, which will unfortunately take a while until it is here - and will also try this coprocessor. But my hopes are low since none of the coprocessors worked so far. At least the "normal" D80287-10 should have worked in my understanding. Only the fact, that the S1, S0, INTA, Ready, HLDA and CLK286 pins seem not to be connected on the mainboard - and are also referred to as "not connected" with an AMD FPU but not with an Intel FPU (according to THIS SITE) - gives me some hope (but on the other side they are also n.c. with the XL or IIC FPU).
User avatar
Speedsalat
Newbie
 
Posts: 2
Joined: 2019-3-02 @ 16:05

Re: Problems with Commodore 286-16 and Coprocessor

Postby georgel » 2019-9-13 @ 05:35

@Speedsalat pull the 287 CKM pin to GND.


@H3nrik V! your comment is absolutely wrong. The BIOS is firmware and detects the NPU presence by means of running NPU instructions. What type of coprocessor do you think can be connected to the 286? Which bus will be corrupted and how exactly? It is normal for x86 & x87 to execute code in parallel.
georgel
Newbie
 
Posts: 22
Joined: 2019-8-22 @ 09:26

Re: Problems with Commodore 286-16 and Coprocessor

Postby H3nrik V! » 2019-9-13 @ 06:46

georgel wrote:@H3nrik V! your comment is absolutely wrong. The BIOS is firmware and detects the NPU presence by means of running NPU instructions. What type of coprocessor do you think can be connected to the 286? Which bus will be corrupted and how exactly? It is normal for x86 & x87 to execute code in parallel.

I stand corrected, then. I did not know how the BIOS detects the FPU - it might have just been a question of a "presence" pin or something.

What I do know is, that the FPU and CPU shares address/data bus and an FPU instruction opcode has another start. However - if the CPU is not aware of the FPU's presence, it will execute the instruction (all-though in a lot less efficient way), and the FPU will do the same, thus conflicting address/data bus.
H3nrik V!
Newbie
 
Posts: 75
Joined: 2019-3-25 @ 16:00
Location: Denmark, Naestved

Re: Problems with Commodore 286-16 and Coprocessor

Postby Tiido » 2019-9-13 @ 07:12

There's a small protocol between CPU and FPU, without FPU the CPU will raise an exception when FPU instructions are executed and then some FPU emulation software can kick in, otherwise FPU does all the work.
User avatar
Tiido
Oldbie
 
Posts: 1002
Joined: 2018-1-14 @ 04:40
Location: Estonia

Re: Problems with Commodore 286-16 and Coprocessor

Postby georgel » 2019-9-13 @ 09:59

H3nrik V! wrote:
georgel wrote:@H3nrik V! your comment is absolutely wrong. The BIOS is firmware and detects the NPU presence by means of running NPU instructions. What type of coprocessor do you think can be connected to the 286? Which bus will be corrupted and how exactly? It is normal for x86 & x87 to execute code in parallel.

I stand corrected, then. I did not know how the BIOS detects the FPU - it might have just been a question of a "presence" pin or something.

What I do know is, that the FPU and CPU shares address/data bus and an FPU instruction opcode has another start. However - if the CPU is not aware of the FPU's presence, it will execute the instruction (all-though in a lot less efficient way), and the FPU will do the same, thus conflicting address/data bus.


Your "knowledge" IS NOT related to 286 & 287. They do not share address bus at all.
Last edited by georgel on 2019-9-13 @ 10:06, edited 1 time in total.
georgel
Newbie
 
Posts: 22
Joined: 2019-8-22 @ 09:26

Re: Problems with Commodore 286-16 and Coprocessor

Postby georgel » 2019-9-13 @ 10:02

Tiido wrote:There's a small protocol between CPU and FPU, without FPU the CPU will raise an exception when FPU instructions are executed and then some FPU emulation software can kick in, otherwise FPU does all the work.

Wrong. The 286 trap #7 is generated regardless of the presence of 287. This trap generation is toggled via the EM bit in MSW.
Last edited by georgel on 2019-9-13 @ 10:25, edited 1 time in total.
georgel
Newbie
 
Posts: 22
Joined: 2019-8-22 @ 09:26

Re: Problems with Commodore 286-16 and Coprocessor

Postby Jo22 » 2019-9-13 @ 10:12

Speedsalat wrote:I recently aquired a nice little Commodore 286-16 and I'm very happy with it. However, I wanted to install a 287 coprocessor to make it really complete.

Hi! I don't know which kind of Commodore PC it is, but I found a page with a selection of manuals related to Commodore ATs:
http://www.retro-commodore.eu/pc-tech/ :)

H3nrik V! wrote:Isn't there a jumper to enable/disable coprocessor?

Good question, I wonder the same. In the past I've seen quite a few AT boards with such jumpers myself.
"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//
User avatar
Jo22
l33t
 
Posts: 3780
Joined: 2009-12-13 @ 07:06
Location: Europe

Re: Problems with Commodore 286-16 and Coprocessor

Postby georgel » 2019-9-13 @ 10:21

Jo22 wrote:
Speedsalat wrote:I recently aquired a nice little Commodore 286-16 and I'm very happy with it. However, I wanted to install a 287 coprocessor to make it really complete.

Hi! I don't know which kind of Commodore PC it is, but I found a page with a selection of manuals related to Commodore ATs:
http://www.retro-commodore.eu/pc-tech/ :)

H3nrik V! wrote:Isn't there a jumper to enable/disable coprocessor?

Good question, I wonder the same. In the past I've seen quite a few AT boards with such jumpers myself.

I doubt it. I've never seen a 286 AT motherboard with a jumer/switch to enable/disable the 287 or to select the 287 presence. And there is no need for such.
georgel
Newbie
 
Posts: 22
Joined: 2019-8-22 @ 09:26

Re: Problems with Commodore 286-16 and Coprocessor

Postby H3nrik V! » 2019-9-13 @ 11:41

georgel wrote:
H3nrik V! wrote:
georgel wrote:@H3nrik V! your comment is absolutely wrong. The BIOS is firmware and detects the NPU presence by means of running NPU instructions. What type of coprocessor do you think can be connected to the 286? Which bus will be corrupted and how exactly? It is normal for x86 & x87 to execute code in parallel.

I stand corrected, then. I did not know how the BIOS detects the FPU - it might have just been a question of a "presence" pin or something.

What I do know is, that the FPU and CPU shares address/data bus and an FPU instruction opcode has another start. However - if the CPU is not aware of the FPU's presence, it will execute the instruction (all-though in a lot less efficient way), and the FPU will do the same, thus conflicting address/data bus.


Your "knowledge" IS NOT related to 286 & 287. They do not share address bus at all.


I wasn't aware, that there was a difference in the way the 8086/8087 and 286/287 worked. However, the do share databus, and an address decoder is coupled to the address bus, and apparently chip selects the CoProcessor. Further more, a few control signals are present between the CPU and FPU. If anything goes wrong, and eg the address decoder is not enabled correctly, the CPU and FPU might try to use the databus at the same time, thus halting the system ..
H3nrik V!
Newbie
 
Posts: 75
Joined: 2019-3-25 @ 16:00
Location: Denmark, Naestved


Return to General Old Hardware

Who is online

Users browsing this forum: No registered users and 21 guests