IBM 5150 XT keyboard adapter

After I repaired my IBM 5150 PSU and fixed RAM problems, to proceed I needed a keyboard, and the keyboards I had all were PS/2 and those do not work with IBM 5150.

I had Arduino nano laying around and thought that I could make some crude adapter for PS/2 and XT. And even googling I have found that someone already made one.

Quickly wired up some cheap PS/2 keyboard I had previously used for other projects. But the adapter was not working. Checking with the scope I found that signals are sent ok, but the computer was hanging with continuous beeps.

I found the guy who experienced similar problems and fixed it by changing delay(10) to delay(999) but even that did not help me.

How I fixed that was I moved this code:

 if (digitalRead(xt_clk) == LOW) // power-on self test
  {
    delay(10) ;
    _write(0xAA) ;
  }

To the start of the loop, and made it execute a maximum of three times:


    if (success_sent < 3) 
    {     
      if (digitalRead(xt_clk) == LOW) // power-on self test
      {
          delay(10) ;
          _write(0xAA) ;
          success_sent++;     
       }
    }

It seems it was executing too many times during the POST and that was hanging the PC. Now it booted ok.

Anyway, this is a temporary solution for this PC until I get a proper XT compatible keyboard, but it works and I can proceed with setup.

Testing keyboard with XT PS/2 adapter made using Arduino nano
Keyboard test

Update.

Ahh, but there is a problem with Soft reset – Arduino still working and thinks that 0xaa is sent and not sending it anymore 🙂

Be the first to comment

Leave a Reply

Your email address will not be published.


*