Page 1 of 1

Undocumented diagnostic tool for the PCjr

Posted: Mon Jan 15, 2018 7:19 pm
by riq
So the PCjr has some undocumented diagnostics code built-in the ROM.

Basically when you enter into diagnostics mode with Ctrl + Alt + Insert, you can trigger different diagnostics mode with the following.
Right after pressing Ctrl + Alt + Insert do:
  • Press: Joy 1 button B, and Joy 2 buttons A & B for Manufacturing burn-in mode: enters diag loop mode without the diag screen
  • Press: Joy 1 button A, and Joy 2 buttons A & B for Manufacturing system test mode: enters boot loop. Keeps booting
  • Press: Joy 1 buttons A & B, and Joy 2 button B for Service loop-post mode: displays all diagnostics options, even if the hardware is not present
  • Press: Joy 1 buttons A & B, and Joy 2 button A for Service system-test mode
  • Press: Joy 1 buttons A & B, and joy 2 buttons A & B: enters boot loop with sound test
It also has a hidden "joystick" test that can only be "tested" with the keyboard. I guess it was just testing code that IBM forgot to remove. This one:
Image

Here is a tool the tool to trigger the hidden "joystick" test (press "7") and to trigger the different diagnostics mode (in case you don't have two joysticks):
https://github.com/ricardoquesada/ibm_p ... r/undiagjr


Warning: If you enter into the first mode (Manufacturing burn-in mode), it will format the floppy diskette without any warning.
In fact, I wrote a vulnerability report about this :-P
IBM PCjr zero-day data-destroy vulnerability: https://retro.moe/2018/01/15/ibm-pcjr-z ... erability/

Re: Undocumented diagnostic tool for the PCjr

Posted: Tue Jan 16, 2018 1:05 pm
by Trixter
I have to say, I'm shocked to learn something new about the PCjr -- I never dove deep enough into the BIOS listing to catch this. Very impressive digging!

Re: Undocumented diagnostic tool for the PCjr

Posted: Tue Jan 16, 2018 7:05 pm
by riq
Trixter wrote:I have to say, I'm shocked to learn something new about the PCjr -- I never dove deep enough into the BIOS listing to catch this. Very impressive digging!
Thanks!

Re: Undocumented diagnostic tool for the PCjr

Posted: Wed Jan 17, 2018 11:21 am
by smitty
Nice work, even made it to Hackaday

Re: Undocumented diagnostic tool for the PCjr

Posted: Thu Jan 18, 2018 5:05 am
by riq
smitty wrote:Nice work, even made it to Hackaday
Ha, thanks! It was a nice surprise to see it in hackaday.

Re: Undocumented diagnostic tool for the PCjr

Posted: Thu Jan 18, 2018 1:34 pm
by geoffdaddy
Kudos! I've poured over a good portion of the BIOS code too and never found this. Pretty cool!

Re: Undocumented diagnostic tool for the PCjr

Posted: Sat Mar 07, 2020 5:45 pm
by toddvernon
Having done a lot of debugging a problem over the last few days I think this discovery is a result of an IBM test harness that was used by service organizations. There was a test plug documented in the IBM docs that plugged between the two joystick ports. I believe, but not sure that this connection activated the "advanced" tests that you get to with <cntl><alt><insert>. Doing this sequence normally gets you to the "customer tests" but the docs talk about another level and that chapter follows the insertion of the test-plug that connects the two ports.

I think these undocumented diagnostics were found by pressing joystick buttons that accidentally mapped to what the test plug connects.

Would love to find a test plug or how one would be made. Might be more there than what we know!

-t

Re: Undocumented diagnostic tool for the PCjr

Posted: Sun Mar 08, 2020 10:35 am
by Brutman
I actually don't think this is undocumented - it's just not commonly known. But I won't tell anyone ...

It's in the Hardware Maintenance and Service Manual for the PCjr.