• Please review our updated Terms and Rules here

Drop-in 8088 CPU Emulator for the IBM PC - MCL86+

Quick update on the MCL86+:

I add some code to mirror the ROM and RAM of my IBM 5155 using the Teensy's internal memory and ran a few performance programs from a DOS 3.2 Virtual Disk.

First I tried running cycle accurate which counts 8088 clocks and uses the motherboard's RAM and ROM which worked fine as before.

But when this new acceleration was enabled which uses just the mirrored memory (and none of the motherboard RAM) the speed increase is dramatic.

Looks like the performance of this machine is in the around that of a x386. :)

pic1.JPGpic2.JPGpic3.JPGpic4.JPG
 
Oh now this is a cool project. I am not sure how I missed it before! :O And I see that there's even more cool stuff on your github!

I know it's a heck of a lot more complicated, but any chance of an eventual 386 core and >640k of mirrored memory? It would be rad to be able to run 386 protected mode development tools on my H-150. :D

Regardless, if you make another run sometime or still have some extras, I'd happily throw you a few bucks for a couple of bare boards!
 
I know it's a heck of a lot more complicated, but any chance of an eventual 386 core and >640k of mirrored memory?
Good question - its just software so probably no reason why it cant emulate a x386 :) Teensy 4.1 only has 1MB of RAM so couldn't emulate all motherboard memory, but a cache would definitely be possible...

I thought it might also be fun to implement a project similar to my MCL65-Fast which simply runs C code on the 800Mhz Teensy and has access to the motherboard peripherals: MCL65-Fast

Another project could be to port the MCL65+, MCLZ8, or MCL68 and see what it would have been like if they had decided to run the IBM PC on a 6502, Z80, or 68000.

Yes. have a few boards if you would like one.
 
Hi, how hard is it to change it to work as 8086? For IBM PS/2 Model 30 and Compaq Deskpro.

... and Olivetti M24, M21, M240 (it must run stable at 8 and 10 Mhz bus clock!)

An enhancemet to the NEC V20 / V30 instruction set also would be nice...

Maybe also integrate 8087 emulation?
 
It wouldn't be hard to add V20 instructions and maybe even 8087 emulation. It is just C code after all. :)

Faster bus speeds might be more challenging though as the local bus is being emulated.
 
Thanks! Yes I do have some boards available, however it might be less expensive to build a batch of five from the PCB vendor. It cost me less than $25 USD for five of them including shipping, so I think it would cost more for me to ship it international.
 
Hi,

I am surprised given the lack of available accelerator options that we do not have more interest in this project. I, for one, would love to see this implement the 286 (or 386/486) instruction set, along with DMA transfer detection/cache so as to make a daily driver that is either a) super fast 8088, b) 80286 "socket" upgrade or c) something else entirely. The main reason I think that Ted hasn't pursued further is because there is very little interest it seems. So I am curious how many of you would purchase an MCL86+ if it could be used as a daily 8088 driver albeit at the equivalent of a 10 Mhz AT machine? I know that I for one would spend some $$$ on it.

Thanks,

Chris
 
I red you blog and you have a lot of interesting CPU replacements. WOW!
I see you had some good speeds on your PCJR when using the MCL86JR which is running on an Xilinx Spartan-6 FPGA.
But when using MCL86+ which is running on an Teensy 4.1 you had trouble with speed and compatibility - Am i understanding this correct?
What are the reasons for not continuing using the Xilinx Spartan-6 FPGA? Is it price, is it size?

I saw what you did with the 6510, 6502, Z80 and the 8088. I would think the biggest "marked" in in the 8088 and also the Z80. I believe this because programs made for the Apple II and the C64 are in 99,9% of the time made for the stock speed, and no extra hardware to improve speed. But the PC's and CPM machines came in many differents speeds. A 8088/8086/80186 replacement CPU that would run like an 12Mhz 80286 would be amazing. And i would think a lot of retro collectors like me would love to have it.
Making it 80186 compatible like the NEC V20 and V30 xt-ide can use 80186 instructs and double the XT-IDE speed.

Can you send commands to Teensy 4.1 from DOS? E.x. to change speed.
I very much like your work on CPU replacements.
 
Have you considered teaming up with FreddyV? He is making a ISA card which does almost everything, except increasing the CPU speed?
What about using one ISA card, with only some vires to the CPU socket?
FreddyV is using a Raspberry pi, and you are using Teensy...
 
I red you blog and you have a lot of interesting CPU replacements. WOW!
I see you had some good speeds on your PCJR when using the MCL86JR which is running on an Xilinx Spartan-6 FPGA.
But when using MCL86+ which is running on an Teensy 4.1 you had trouble with speed and compatibility - Am i understanding this correct?
What are the reasons for not continuing using the Xilinx Spartan-6 FPGA? Is it price, is it size?

I saw what you did with the 6510, 6502, Z80 and the 8088. I would think the biggest "marked" in in the 8088 and also the Z80. I believe this because programs made for the Apple II and the C64 are in 99,9% of the time made for the stock speed, and no extra hardware to improve speed. But the PC's and CPM machines came in many differents speeds. A 8088/8086/80186 replacement CPU that would run like an 12Mhz 80286 would be amazing. And i would think a lot of retro collectors like me would love to have it.
Making it 80186 compatible like the NEC V20 and V30 xt-ide can use 80186 instructs and double the XT-IDE speed.

Can you send commands to Teensy 4.1 from DOS? E.x. to change speed.
I very much like your work on CPU replacements.
There is no issues with the MCL86 which runs in a Spartan-6 FPGA. In-fact this is the 8088 core used in the MiSTer PCXT project!
The MCL86+ is not an FPGA core, but instead emulates the 8088 and its bus interface in C code running on the 800 Mhz Teensy microcontroller.
Either projects can run either cycle accurate or accelerated faster than a V20...
Yes it would be easy to add some code which snoops certain memory or IO addresses to change the clock speed. Could even snoop the keyboard presses! :)
Thanks for the kind words!
 
Have you considered teaming up with FreddyV? He is making a ISA card which does almost everything, except increasing the CPU speed?
What about using one ISA card, with only some vires to the CPU socket?
FreddyV is using a Raspberry pi, and you are using Teensy...
I originally wanted to do a PiStorm like project.

Then, I realized that this project exist, and I prefer to do an ISA Board.
With an ISA Board, no modification at all is needed and it is already possible to do lot of things.

@MicroCoreLabs Why not comming to our Discord server, we can add a section for your project.
https://discord.gg/5KZqq2Vg
 
I originally wanted to do a PiStorm like project.

Then, I realized that this project exist, and I prefer to do an ISA Board.
With an ISA Board, no modification at all is needed and it is already possible to do lot of things.

@MicroCoreLabs Why not comming to our Discord server, we can add a section for your project.
https://discord.gg/5KZqq2Vg
Hi,

What PiStorm like project already exists for 8088 PCs?

Chrid
 
What PiStorm like project already exists for 8088 PCs?

The project in this thread. Technically speaking both this and the PiStorm replace the original CPU entirely with an emulator, which wears the original hardware like a skin suit and can completely under program control choose to override various aspects of it. The only difference is a Raspberry Pi has a lot more onboard hardware to ”enhance the experience” with.

Maybe I’m just a grumpy old coot, but I can’t quite get into the PiStorm. There’s a line in there where you’re just turning your real old computer into a very fancy keyboard for an emulator, and eh, whatever floats your boat, I guess, but the Pi could probably run the same emulation objectively better if you just stuck it in an old mint box and hooked a nice gamer keyboard to it.
 
Last edited:
Back
Top