• Please review our updated Terms and Rules here

picked up a cheap 8086!

Mike Chambers

Veteran Member
Joined
Sep 2, 2006
Messages
2,621
theres this cool store about 20 minutes from here called Gateway Electronics... i haven't been there in years so i decided to go down and see if i could find anything cool.

sure enough, i saw a complete 8086 motherboard priced at $2.50... i HAD to pick it up. 8086's are more rare than 8088's, and the 16-bit bus is nice. haven't turned it on yet, but i'll dig up a power supply for it in the morning and see how (if at all) it works.

this thing is freakin' huge, too :eek:

here's hoping it works! that'd be fun to mess around with. there's no identifiers for a model or brand that i've found yet, but it says it was made in taiwan.

CPU is a geniune Intel, btw.
 
Last edited:
...8086's are more rare than 8088's, and the 16-bit bus is nice...
Since it is less economical to use an 8086 in a project they tend to be lower priced from electronic suppliers (Jameco, etc.) too. It is said that one reason IBM went with an 8088 CPU in the PC was because they had used an 8086 in the DisplayWriter systems & that software would then be easy to port. On the 5251 terminals (notice the similiarity in numbering these System/3x terminals to the PC model numbers) and later 3180 terminals had 8085 CPUs.
...CPU is a geniune Intel, btw.
Strangely the 8086 didn't have one particular bug that was present on the early 8088s. If there is only the 1978 copyright date (not 1981, where it was fixed) the 8088 has the bug. Other manufacturers and higher than the 5MHz speed (but those are also marked with the later copyright date) from Intel are not affected.

Speculation that the 8087 & 8088 had to be "matched" happened when IBM would commonly send an 8088 replacement with the ordered 8087 when the customer added the NPU option. It was just an easier method to replace what may have been a faulty CPU in some situations. I've got a couple of these early 8088 & they are far less common to find.
 
Since it is less economical to use an 8086 in a project they tend to be lower priced from electronic suppliers (Jameco, etc.) too. It is said that one reason IBM went with an 8088 CPU in the PC was because they had used an 8086 in the DisplayWriter systems & that software would then be easy to port. On the 5251 terminals (notice the similiarity in numbering these System/3x terminals to the PC model numbers) and later 3180 terminals had 8085 CPUs.
Strangely the 8086 didn't have one particular bug that was present on the early 8088s. If there is only the 1978 copyright date (not 1981, where it was fixed) the 8088 has the bug. Other manufacturers and higher than the 5MHz speed (but those are also marked with the later copyright date) from Intel are not affected.

Speculation that the 8087 & 8088 had to be "matched" happened when IBM would commonly send an 8088 replacement with the ordered 8087 when the customer added the NPU option. It was just an easier method to replace what may have been a faulty CPU in some situations. I've got a couple of these early 8088 & they are far less common to find.

yeah what bug are you talking about? i didn't know about this. i have an 8088 too, and its a fujitsu clone CPU. says (c) fujitsu '81 under the (c) intel '78

oh speaking of my 8088, thanks to the ultra-leet Terry Yager from this board i should probably be receiving an 8-bit floppy controller for it in the mail tomorrow :)

then i can *FINALLY* use it.
 
what bug are we talking about?

Mike...howz about a picture? :)

ok, yz i'll take one... i'll post it in a bit. i'll get my digital cam and get a shot of it.

btw, i dug up a an old power supply this afternoon and hooked it up... it turned right on! :)
 
thanks to the ultra-leet Terry Yager

Aww, cut it out...you're embarassing me. Actually, I had an extra one because I'm replacing it with an UltraSuperMega-leet CompatiCard II (as soon as I get around to building my 5155 back up again).

--T
 
Aww, cut it out...you're embarassing me. Actually, I had an extra one because I'm replacing it with an UltraSuperMega-leet CompatiCard II (as soon as I get around to building my 5155 back up again).

--T

cool. that will be very nice.

i want an IBM model 1337. i'm sure glad i have an 8-bit ISA network card laying around, so when i make a boot disk for that 8088 on a floppy i can put the MS net drivers for DOS on it and use some network drives for storage rather than swapping out floppies every 10 seconds. i hope CPU overhead for that isn't too much for a CPU that old. it can run at 8 MHz when turbo's on so i guess we'll see.
 
Early Intel 8088 (only with '78 copyright date) bug...

Early Intel 8088 (only with '78 copyright date) bug...

yeah what bug are you talking about? i didn't know about this. i have an 8088 too, and its a fujitsu clone CPU. says (c) fujitsu '81 under the (c) intel '78...
Since you have a CPU second-sourced from Intel it is not supposed to have this particular bug. There is a test I will also list at the end of the description. The source is Mueller's "Upgrading and Repairing PCs, 2nd Edition" (page 422 for the copy I have):
"Early 8088s: A bug in some early 8088 microprocessors allowed interrupts to occur after a program changed the stack segment register. An interrupt usually is not allowed until the instruction after the one that changes the stack segment register. This subtle bug might cause problems in older systems. Most programmers have adopted coding procedures that work around the bug [I don't know how this is done], but you have no guarantee that these procedures are in all software. Another problem is that the bug might affect chip operation with an 8087 math coprocessor. Approxiamately 200,000 IBM PC units (early units sold during 1981 and 1982) were manufacturered with the defective chip..."

[comments on the 8088/8087 replacement program I paraphrased earlier]

[Section on visual detection, which is to see only the 1978 copyright date on an Intel 8088 CPU (and nothing faster than 5MHz). Text about the 8088 licensing program started after the bug had been found & fixed]

Test (also a reprint from the same source]:
Start DEBUG and run the following commands:

-A 100
MOV ES, AX
INC AX
NOP
-T
[All registers are displayed, where you want to look at the value in the AX register. If it is "0000" your 8088 CPU has the bug. AX = "0001" means your CPU passes the test & does not have the bug. To exit DEBUG type:]
-Q

He remarked at the time of printing (1992) there was a free replacement program offered by Intel. Call Intel and act shocked after they stop laughing. Ask if they will pay you the $10 or so to get it from Jameco, with the shipping.
 
Speculation that the 8087 & 8088 had to be "matched" happened when IBM would commonly send an 8088 replacement with the ordered 8087 when the customer added the NPU option. It was just an easier method to replace what may have been a faulty CPU in some situations. I've got a couple of these early 8088 & they are far less common to find.

Ooh, that would explain much... I've seen a "genuine IBM 8087 upgrade" on eBuy and it was indeed an IBM-stamped 8087 along with... an AMD 8088! And I thought - WTF ? Is the guy kidding or what ? So now the joke wasn't on the seller's part...
 
8086's are more rare than 8088's, and the 16-bit bus is nice.

Yeah, what's the difference, anyway? I mean, do you actually SEE the 16-bit bus on the board (that would mean 16-bit ISA instead of the usual 8-bit XT bus) ? I can't quite grasp the difference between the 8-bit/16-bit bus of the 8086/8. My 8086 board has XT bus slot only... Well the CPU pins are different but who cares... And the speed - can someone point at a table containing the cycles per instructions on both 8086 and 8088 ? I've a table that goes from 8088 up to pentium BUT skips 8086 (a yet less common 80186 is there)...

this thing is freakin' huge, too :eek:

And I got the most elegant 8086 board on this planet ;) It's compact, has an onboad video port, ps/2 keyboard+mouse ports, a HDD and FDD controller also. And it's a genuine IBM from a genuine IBM 8530, year 1987 :cool: .
 
On an XT class machine with an 8086 onboard you are probably not going to see any difference in the ISA slots. Maybe a specific manufacturer of 8086 based clones sold a card that went in a special slot, but to be compatible with the rest of the universe it still needs 8 bit PC bus slots.

The real benefit is in access to memory. If you look closely, memory on the motherboard should be on a 16 bit bus as opposed to a normal 8088 motherboard where memory is on an 8 bit bus. This theoretically makes the bandwidth to memory two times faster than for an 8088.

Instruction timings once in the chip are exactly the same as for an 8088, which is why you don't see a separate table for the 8086. Memory and I/O for the 8086 should be faster. (I/O will not be faster if it has to use an 8 bit bus for compatibility.)

One thing that programmers have to be aware of when moving from an 8 to a 16 bit bus is word alignment. Almost every CPU ever made is more efficient when you align memory words correctly. In the case of the 8086, grabbing 16 bits unaligned is just as fast as doing it on an 8088 because it has to generate two memory references. An aligned transfer of 16 bits would do all 16 bits in one shot.
 
Yeah, what's the difference, anyway? I mean, do you actually SEE the 16-bit bus on the board (that would mean 16-bit ISA instead of the usual 8-bit XT bus) ? I can't quite grasp the difference between the 8-bit/16-bit bus of the 8086/8. My 8086 board has XT bus slot only... Well the CPU pins are different but who cares... And the speed - can someone point at a table containing the cycles per instructions on both 8086 and 8088 ? I've a table that goes from 8088 up to pentium BUT skips 8086 (a yet less common 80186 is there)....
There is an RS/6000 XStation 130 (designed to RIPL over a network) that has an 8086 as the main CPU, with a single 16-bit microchannel slot that will only accept a few types of adapters...
And I got the most elegant 8086 board on this planet ;) It's compact, has an onboad video port, ps/2 keyboard+mouse ports, a HDD and FDD controller also. And it's a genuine IBM from a genuine IBM 8530, year 1987 :cool: .
I wouldn't call the Model 30 8086 planar "compact" compared to say the Model 25 8086 planar. Both are 8086 8MHz. And to answer your question above, are stated to be about 2.5 times faster than the 8088 4.77MHz in the PC & XT.

At almost double the clock rate is where most of the boost would come into play. The cycles per instruction are the same for the 8086 & 8088, but as said elsewhere in the thread it is a matter of memory access too. I have heard that the 8086 had a slightly larger pre-fetch queue than the 8088, but haven't been able to confirm that.
 
There is an RS/6000 XStation 130 (designed to RIPL over a network) that has an 8086 as the main CPU, with a single 16-bit microchannel slot that will only accept a few types of adapters...

Cool :D But besides, I know now why they only put XT bus on 8086 boards... Because 16-bit slots have 24 address lines. In other words, there's just no dedicated slot for the 8086. They could put the ISA (AT) slots in 8530 but then some cards would work and some not.

The cycles per instruction are the same for the 8086 & 8088, but as said elsewhere in the thread it is a matter of memory access too. I have heard that the 8086 had a slightly larger pre-fetch queue than the 8088, but haven't been able to confirm that.

I heard 3 versions:
1. 8086 and 8088 have 4 bytes PQ (while v20/v30 have six)
2. 8088 = 4b PQ, 8086 = 6b PQ
3. the other way round
 
Cool :D But besides, I know now why they only put XT bus on 8086 boards... Because 16-bit slots have 24 address lines. In other words, there's just no dedicated slot for the 8086. They could put the ISA (AT) slots in 8530 but then some cards would work and some not...
Actually most ISA motherboards & adapters were usually just decoded out to about 12 address lines. If you look through with an I/O viewer you can see the adapters repeating every so often. Microchannel & later busses typically stipulate that the address lines for the entire bus be decoded.
 
The definitive quote (in all it's un-cut glory) about the 8086/8 prefetch queue and difference et al, from an official intel 8088 specsheet:

"Internally, there are three differences between
the 8088 and the 8086. All changes are related to
the 8-bit bus interface.
  • The queue length is 4 bytes in the 8088,
    whereas the 8086 queue contains 6 bytes, or three words.
    The queue was shortened to prevent overuse of
    the bus by the BIU when prefetching instructions.
    This was required because of the additional time
    necessary to fetch instructions 8 bits at a time.
  • To further optimize the queue, the prefetching algorithm
    was changed. The 8088 BIU will fetch a
    new instruction to load into the queue each time
    there is a 1 byte hole (space available) in the
    queue. The 8086 waits until a 2-byte space is
    available.
  • The internal execution time of the instruction set
    is affected by the 8-bit interface. All 16-bit fetches
    and writes from/to memory take an additional
    four clock cycles. The CPU is also limited by the
    speed of instruction fetches. This latter problem
    only occurs when a series of simple operations
    occur. When the more sophisticated instructions
    of the 8088 are being used, the queue has time to
    fill and the execution proceeds as fast as the execution
    unit will allow."
 
The definitive quote (in all it's un-cut glory) about the 8086/8 prefetch queue and difference et al, from an official intel 8088 specsheet:

"Internally, there are three differences between
the 8088 and the 8086. All changes are related to
the 8-bit bus interface.
  • The queue length is 4 bytes in the 8088,
    whereas the 8086 queue contains 6 bytes, or three words.
    The queue was shortened to prevent overuse of
    the bus by the BIU when prefetching instructions.
    This was required because of the additional time
    necessary to fetch instructions 8 bits at a time.
  • To further optimize the queue, the prefetching algorithm
    was changed. The 8088 BIU will fetch a
    new instruction to load into the queue each time
    there is a 1 byte hole (space available) in the
    queue. The 8086 waits until a 2-byte space is
    available.
  • The internal execution time of the instruction set
    is affected by the 8-bit interface. All 16-bit fetches
    and writes from/to memory take an additional
    four clock cycles. The CPU is also limited by the
    speed of instruction fetches. This latter problem
    only occurs when a series of simple operations
    occur. When the more sophisticated instructions
    of the 8088 are being used, the queue has time to
    fill and the execution proceeds as fast as the execution
    unit will allow."

This is exactly as I heard the 8086/8088 pre-fetch queues. I've seen at least one routine to check the depth of the pre-fetch (think self-modifying code), mainly to tell the difference (in software) between two CPUs of the same level that had different external (data) bus widths.

Mostly it would come into play on the 8086 vs. 8088 and 80186 vs. 80188. The 386SX could be told from the 386DX by the address bus width (24-bit compared to 32-bit) by seeing if the data above 16Mb matched that at the start of RAM (and with certain other systems there is an easier check, see below). All NEC CPUs (ie V20, V30, V40, V50) would be harder to tell from each other if the same pre-fetch queue size as their different counterpart (there is an easy way to tell from the Intel CPUs they replace).

If it were that all clone manufacturers had followed IBM's lead, encoding the BIOS model value as FAh for all 8086-based systems (which was just the base PS/2 Model 25 & Model 30 for IBM), with 8088-based units being FFh (PC), FEh or FBh (XT, or systems like the 3270 PC or Portable PC based on the XT motherboard), FDh (PCjr), or F9h (PC Convertible). Of course this is "8086 or a comparable replacement" (not knowing I have an NEC V30 in my Model 30, or for the 286/386 upgrade boards that could be in a PC or XT) with a hard-coded BIOS value. I see where I have to do an update (the registers that point at the data block), but the data is listed at http://www.IBMMuseum.com/Interrupts/INT15h/INT15hC0.html.

On (almost all of) the IBM 386SX & 386DX PS/2 models there was an ability to get a BIOS CPUID value (http://www.ibmmuseum.com/Interrupts/INT15h/INT15hC9.html). This would even report if the CPU had been upgraded. Very few other BIOS writers followed that lead before midway through the 486 production cycle Intel started making the CPUID available on the fly in CPU opcodes.
 
This is exactly as I heard the 8086/8088 pre-fetch queues...

Others I have heard of:

286: 8 bytes (but I thought I saw 12 in the Intel 286 manual)
386: 16 bytes (unknown if that is all versions of the 386 CPU)
486: 32 bytes
 
Back
Top