• Please review our updated Terms and Rules here

Any interest in a PCjr CPU upgrade board?

The PCjr Racore upgrade has a switch on the back for PC/PCjr mode, so I thought I could add something similar... The interesting thing is that when I set the cpu-type to IBM PC, DOS 2.1 still boots in 40 column mode... If I recall correctly, when the Racore is switched to "PC" mode it boots in 80 column mode... so maybe the Racore switch does more than just set the computer-type field. Also when I set this DOS 3.2 does not boot at all, so there must be more going on here than just this field... Maybe Racore is patching a large amount of the BIOS?
 
I own a PCjr to run PCjr software. If the basic structure of the system were altered such that PCjr-only software (that relies on 0-128K video behavior) no longer runs, I would not be interested.

Valid point, certainly. I just don't know how well that really meshes with accelerating a Jr. up to 286 speeds; there's a body of Tandy 1000-targeted software that would be "runnable" on a Jr. with that modification (IE, the pile of stuff that really needs a TX or TL to run well) but you still might need, at the very least, the "Tandy modification" because of the sorta-reverse problem of the Jr. not double-mapping the full 32k window up to the B8000 area. I also imagine there's a good possibility that level of speedup is going to blow up anything that uses the joysticks?

Of course, it also seems that at least in part the point of having programmable hardware is you could switch between modes as necessary to accommodate software that didn't like having the memory map shuffled around. The same expansion that could make the machine act essentially like a Tandy 1000 TX to run software where that makes sense could easily enough turn back into something closer to a regular a Jr. with a simple reboot.

(Realistically speaking, obviously, none of this would happen without a BIOS genius willing to hack together the suitable modifications to deal with a memory map change like that, so I wouldn't worry much.)
 
Last edited:
The PCjr Racore upgrade has a switch on the back for PC/PCjr mode, so I thought I could add something similar... The interesting thing is that when I set the cpu-type to IBM PC, DOS 2.1 still boots in 40 column mode... If I recall correctly, when the Racore is switched to "PC" mode it boots in 80 column mode... so maybe the Racore switch does more than just set the computer-type field. Also when I set this DOS 3.2 does not boot at all, so there must be more going on here than just this field... Maybe Racore is patching a large amount of the BIOS?

The documentation states:

PC/PCjr Mode Switch

The toggle switch, located on the back of the Racore Side Assembly, above the printer connector, allows you to change the mode of your computer from PCjr to PC. The switch is operative only when the system is started (either power off or System Reset). Do not change the position of the switch after DOS has been loaded.

When the switch is pointed away from the computer (outward), the computer is in the PCjr mode. In this mode, the computer behaves exactly as shipped from IBM, with the exception that you have 2 disk drives instead of I. And when using JRVIDMA2 you may use expanded memory if available. Use this mode when running PCjr programs.

When the switch is pointed toward the computer (inward), the computer is in the PC mode. In this mode the computer behaves like a PC. Also, if there is more than 64K of system memory, the display is initialized to 80 column .. Use this mode when running PC programs.

The "expanded memory" they mention is tacking on 128K at the end of 640K so that you can have the full 640K available for DOS programs and the 32K-128K region is used for video (the first two video pages, by design, contain the interrupt vector table and DOS).

There's a body of Tandy 1000-targeted software that would be "runnable" on a Jr. with that modification (IE, the pile of stuff that really needs a TX or TL to run well) but you still might need, at the very least, the "Tandy modification" because of the sorta-reverse problem of the Jr. not double-mapping the full 32k window up to the B8000 area.

Yes, but that modification doesn't break any existing PCjr software. My point is that changing the model byte will change the behavior of PCjr software and, in some cases, break the software since it will try to bang on ports that exist on a PC but not a PCjr.

I also imagine there's a good possibility that level of speedup is going to blow up anything that uses the joysticks?

Only if you use the Int 15h BIOS routine to read them. Any program that reads the sticks directly will work fine, although I admit, it is very likely that many PCjr-only programs use the Int 15h BIOS joystick routines (or, if not, expect a certain speed).
 
I am able to run BASIC, but only when running in cycle accurate mode and when the PCjr's BASIC cartridge is removed... It seems to be running the BASIC version included with the DOS diskettes... When I go into non-cycle-accurate mode and try to run BASIC either with the cartridge installed or removed it will report "Cartridge BASIC Required" I get this result using DOS 2.1, 3.2, and ITT DOS 2.11.

Very wierd... My first thought is that there is some type of CPU speed check going on like one the PCjr does during POST. Maybe it is a security check to prohibit the PCjr BASIC from running on different/modified machines...

Anyway, the diskette BASIC (version D) appears to support diskette drive access, so files can be loaded and saved.

I also squeezed a little more performance out of the core so now the MCL86jr runs between 4-5X faster than an XT and around 20% faster than the 8Mhx PC AT. I have a few small things remaining to optimize, but Im about ready to call this Done!
 
When you run BASIC on a PCjr from DOS, you get either the built-in Cassette BASIC in ROM or, if the cart is loaded, Cartridge BASIC. The actual BASIC program on diskette should be very small, like a 1K .COM file. If it's much larger, like a 40K .exe, you're running something non-IBM. Also, not sure why you're running other systems' OEM DOS (ITT DOS?), that's not recommended as OEM DOS versions sometimes had hardware-specific support built into them that does odd things on other systems. Stick to PC-DOS 2.11, PC-DOS 3.3, MS-DOS 5 or 6.22 for best compatibility on IBM PCjrs. DOS versions past 4 require a boot sector patch: https://www.brutman.com/forums/viewtopic.php?f=3&t=224
 
Actually, the BASIC's included with DOS 3.2 are BASIC.COM=19298 and BASICA.COM=36396. They are similar sizes for DOS 2.1. When I run them using the MCL86jr the versions are Dx.x Copyright IBM.

This is the case when I have no cartridge BASIC installed. If I try to run any BASIC with the cartridge inserted the machine will say that "Cartridge Basic Required"... I will also get this message if I run the MCL86jr in accelerated non-cycle-accurate mode... This is a weird quirk to using the MCL86jr... But it appears that if you run using cycle accurate mode that you can use the BASIC or BASICA which ships with DOS. It would have been nice if the PCjr's cartridge BASIC worked, but it seems that they added checks to make sure it would only work with an unaltered system...

Regarding running ITT DOS: It is an interesting datapoint to see what works and what does not. Their BASIC actually does seem to be a custom version and has their own banner before the Microsoft copyright information, and Im glad to see that it does seem to work on the MCL86jr...
 
The IBM PC DOS 2.x BASIC.COM and BASICA.COM don't run on anything other than IBMs with ROM BASIC; they return immediately to DOS if you run them on other systems. They only contain enough code to implement file and serial routines (missing from the ROM).

Cartridge BASIC is different, it installs hooks and intercepts DOS trying to run BASIC.COM and goes into Cartridge BASIC instead. You can ask Mike Brutman for details on the hook if you need it.
 
D'oh... My PCjr disk controller card no longer works! I must have shocked a component when I was moving the disk drive around... Im using the card from my backup PCjr for now...

Does anyone have a spare one for purchase/trade? I have a number of ISA cards I could trade... Hercules-long, IBM-B&W/parallel, modems, joystick, 16-bit 1MB memory expansion.. early 384K expansion and a few others...
 
Final update for this project: https://microcorelabs.wordpress.com/2020/11/12/ibm-pcjr-accelerator-mcl86jr/

The MCL86jr can now accelerate the PCjr performance by 7X and beats the IBM PC/XT by 4X. It can also run in cycle-accurate mode which allows the PCjr to amble along at it's usual 4.77Mhz.

With few exceptions, it appears to run all of the applications and games that would normally run on the PCjr, and when running at top speed can really boost their performance!

I will be listing the few boards I have on eBay soon with the proceeds going to the American Cancer Society, so keep an eye out!

Thanks,
-Ted
 
I, for one am interested in getting one of those boards. TurboJr, here i come :)
If anyone else is interested, please reply to the thread, so Ted can gauge if there's enough interest for an additional batch.
Thank you all !
 
I thought you were going to reach out to us to sell them direct. I had no idea you were posting them on ebay :nervous:
 
Hi,

Thank you for the interest in the MCL86jr! Yes, I sold four of the initial five boards that were made and so far their owners seem to be happy with them!

I don't have a solution for mass production and distribution at this point, however 100% of the development files (FPGA and PCB) are available on GutHub for anyone to produce more boards. The total cost for PCBWay to manufacture and assemble five boards was around $250.

Here is the GitHub project: https://github.com/MicroCoreLabs/Projects/tree/master/MCL86jr

Thanks again!
-Ted
 
I believe I'd be interested in this project as well. I have zero experience in making PCBs or trying to order them however. If anyone who does know what they are doing decides to organize an order, I'd welcome a head's up and can Paypal my funds upon order. I should probably start learning how to do this as it does seem like a commonly needed skill for this hobby, lol.
 
PCBWay just makes the empty boards or also adds & solders all the components in that price ?
Will they also upload the code on the Xilinx so it's ready to plug-n-play ? If not, what tools/JTAG adapter does one needs for that ?
I've never ordered anything from a PCB manufacturer and never programmed anything more complicated than an Arduino so i have no idea ...
Thanks a lot !
 
Hi,

Thank you for the interest in the MCL86jr! Yes, I sold four of the initial five boards that were made and so far their owners seem to be happy with them!

I don't have a solution for mass production and distribution at this point, however 100% of the development files (FPGA and PCB) are available on GutHub for anyone to produce more boards. The total cost for PCBWay to manufacture and assemble five boards was around $250.

Here is the GitHub project: https://github.com/MicroCoreLabs/Projects/tree/master/MCL86jr

Thanks again!
-Ted

Is there any way to split out the PCjr stuff from the other projects? The file is pretty large and I'm not having much luck with getting just the needed files to a PCB maker. Seems they all want a zip file (which your is), but your file has multiple projects inside which I do not want to make. Was going to try OSH Park or PCBWay and see what kind of price they would give me (a newbie) for a few boards. This may be a dumb request, and if it is I apologize in advance as I really don't know much about making PCBs. At all.
 
Well, I cannot make heads nor tails of the PCBWay website and can only make the physical boards at OSH Park with no assembly... so I guess i'm out on this. Too bad, as it really sounded interesting.
 
Back
Top