PCjr running with MCL86

Hardware questions and modifications

PCjr running with MCL86

Postby MicroCoreLabs » Sun Jan 01, 2017 6:00 pm

Hello everyone!

Mike Brutman suggested I post a link to my blog entry describing a project where I ported the MCL86, a cycle-accurate - microsequencer-based 8086 core, to an IBM PCjr.

Here's the link: https://microcorelabs.wordpress.com/

The IBM PCjr was actually one of my first computers which I was very fond of, so I thought it would be a fun project to port the MCL86 to this hardware. Hopefully some folks in this forum will also find this project interesting.

The next step will probably be to integrate a block of RAM into the FPGA, perhaps 128K or so, and run it at the processor's core speed of 100Mhz and 16-bit width. It might be amusing to see a PCjr run from memory which is accessed at potentially 10X faster than the 4.77Mhz, 8-bit local bus! :)

Thanks,
-Edward
MicroCoreLabs
 
Posts: 5
Joined: Sun Jan 01, 2017 5:38 pm
Location: USA

Re: PCjr running with MCL86

Postby alanh » Sun Jan 01, 2017 7:13 pm

Nice. I've had the same thought for a while, except all the opensource x86 cores all have quirks that make such a project more than trivial.

What is the maximum clock for your core on say an XO2 speed 4, 5, or 6?

I assume you are in the engineering consulting business. Hence the commercial marketing of your cores. However, is there anyway to integrate your core in bit-file form into a real project like this done by myself or others?
alanh
 
Posts: 258
Joined: Tue May 10, 2011 6:52 pm
Location: Atlanta, GA

World's fastst PCjr?

Postby MicroCoreLabs » Mon Jan 02, 2017 1:34 pm

I added 128KB of RAM to the FPGA and removed the cycle compatibility to the original 4.77Mhz processor and got some interestinig results:

https://microcorelabs.wordpress.com/

Is this the world's fastest IBM PCjr? :D


alanh: You can contact me through my website to discuss potential projects using the MCL86 core.

-Edward
MicroCoreLabs
 
Posts: 5
Joined: Sun Jan 01, 2017 5:38 pm
Location: USA

Re: PCjr running with MCL86

Postby Brutman » Mon Jan 02, 2017 1:35 pm

I knew I had to get you two together. ;-0
Brutman
Site Admin
 
Posts: 952
Joined: Sat Jun 21, 2008 5:03 pm

Re: PCjr running with MCL86

Postby KenG » Mon Jan 02, 2017 3:05 pm

Any chance that this could be developed into a plug and play upgrade? My first PC compatible was a Commodore Colt. It had an 8088-1 processor that could be run at 9.16 MHz. It would be great to get a PCjr that fast, especially if you could control the speed with a program or TSR.
Enhanced PCjr with a jr-IDE (1GB DOM) and a parallel port side car with a compact flash reader and backpack 1.44mb floppy attached. Tandy video mod.
KenG
 
Posts: 149
Joined: Sat Jul 16, 2016 5:36 pm

Re: PCjr running with MCL86

Postby MicroCoreLabs » Mon Jan 02, 2017 9:44 pm

My first machine was a TI 99/4A which I programmed until it ran out of memory! My second was the IBM PCjr which I programmed BASIC and Turbo Pascal in high school, and in college I used it as a 1200 baud dumb terminal to log into the school's VAX machines. Lots of history with the Jr, so it was a pleasure to target the MCL86 to this machine. Tricking it out to be as fast as an IBM PC AT was the icing on the cake.

Creating an IBM PCjr upgrade board is probably not in the cards anytime soon as it would be hard to justify the expense and time to develop. (At least right now)

But if I had the time... What would really be cool is to integrate ALL of the RAM an EPROMs into a single FPGA which would of course be accessed at the core's clock rate. A mirror of the video RAM in the lower 128KB could also be on-chip and would be "write-through" so writes make it to the physical RAM and reads would be from the on-chip RAM. The FPGA would probably need to snoop writes to the VGA register that sets which video page B8000 maps to. There would probably be some other details that need to be considered as well, but it would probably result in an extremely fast Jr!

Maybe someday...

Thanks!
-Edward
MicroCoreLabs
 
Posts: 5
Joined: Sun Jan 01, 2017 5:38 pm
Location: USA

Re: PCjr running with MCL86

Postby KenG » Tue Jan 03, 2017 5:08 am

I was thinking more like the Jr-IDE project where members of this board would help with prototyping and testing. I know it could never sell enough units to justify the effort for a company. I had been thinging along the lines of creating a modern version of the jrExcellerator using a 16 MHz V20 chip, some static ram, and a cache controller. You seem to have gone way beyond that. Great work! Thanks for sharing.
Enhanced PCjr with a jr-IDE (1GB DOM) and a parallel port side car with a compact flash reader and backpack 1.44mb floppy attached. Tandy video mod.
KenG
 
Posts: 149
Joined: Sat Jul 16, 2016 5:36 pm

Re: PCjr running with MCL86

Postby MicroCoreLabs » Tue Jan 03, 2017 12:16 pm

The only quirk I encountered was that some test in the PCjr's POST has a speed dependancy and would always fail if I sped up the processor before it finished. After powerup it would just beep twice with no IBM splash screen and the processor was running the HALT instruction. Maybe thats a hint to which part of the POST failed. My guess would be some kind of a timer test...

To get around this, I keept the MCL86 core cycle accurate until after the POST finished, then disabled it so it could run at top speed.

Just something to consider if you use a 16Mhz V20 as a replacement for the 8088. You may need to dig into the BIOS to have it skip over this speed-dependent code, or run slower during POST.
MicroCoreLabs
 
Posts: 5
Joined: Sun Jan 01, 2017 5:38 pm
Location: USA

Re: PCjr running with MCL86

Postby Brutman » Tue Jan 03, 2017 1:09 pm

I can't remember where I saw it but it would not surprise me at all if the POST process was timing sensitive. There are devices (floppy controller, 6845, serial ports, interrupt controllers, etc.) that might not respond correctly to a machine that is too fast. The device might be fine, but if it doesn't look like the initialization completed then the POST will fail.

There is a manufacturing mode you can trigger by using a plug that connects to the joystick ports that will send out more detailed POST status than usual. If you are interested in trying that out I'll dig out the plugs and get a pinout for them to see what trips the manufacturing mode test.


Mike
Brutman
Site Admin
 
Posts: 952
Joined: Sat Jun 21, 2008 5:03 pm

Re: PCjr running with MCL86

Postby geoffdaddy » Tue Jan 03, 2017 2:21 pm

If you have a couple joysticks, you can enter the mode with the appropriate button presses (although I didn't bother to document what those were!). It will spit post codes out the serial port at 9600bps, 7O2. You have to use a terminal program or something else suitable to display the codes as they are hex codes rather than ASCII printable.

I used it to diagnose a problem with the RAS/CAS delay line on my PCjr. You have to peruse the Hardware reference manual in the BIOS listing for specific details about which code means what. I didn't find it documented anywhere else online what they meant.
PCjr: 10MB RACore 01 hard drive expansion, Hotshot 640kB RAM expander, optical mouse, Xircom PE3, speech sidecar.
geoffdaddy
 
Posts: 125
Joined: Wed May 15, 2013 5:22 pm


Return to PCjr Hardware

Who is online

Users browsing this forum: No registered users and 2 guests

cron