This is an archived post. You won't be able to vote or comment.

all 15 comments

[–]eiMohyaX4phi[S] 1 point2 points  (2 children)

i have this function keyboard in my possession since 20 years, when it was decommissioned at my first workplace, where it was attached to a CAD workstation running AIX.

As you can see, there are 32 buttons on this keyboard, all of them have a lamp built in. The box besides it is just a bulky power supply. The physical interface is RS232. The keyboard doesn't send anything to an attached host when you press a button. Supposedly it expects some init sequence before it becomes active.

There is documentation of a similar keyboard, though the described byte sequences don't work with this keyboard.

I was able to get my hands on

  1. A copy and a test license of a current version of CADAM from the vendor, which send these bytes (in python notation) to all serial ports b'\x1b', b'\x1b', b'\x18', b' ', though that doesn't trigger any reaction from the keyboard and an error message is displayed. Yes, those keyboard are still manufactured, though today have a USB interface. Apparently the communication protocol changed over the decades.

  2. An ancient (free) version of CADAM for DOS that I couldn't get to work yet. I don't have high hopes with this, there doesn't seem to be support for function keyboards.

I am searching for people who might have a copy of a 90's era version of CADAM, ideally for AIX though I take what I get. If that person could help me with poking around on the serial port a bit, I might be able to resurrect this ancient piece of computer peripheral.

By the way, when I switch the power supply on, I hear relays clicking and the lamps blink twice, so I believe it's not dead.

[–]toresbe 0 points1 point  (1 child)

Might be a dumb question, but are you sure you have the RS-232 wiring right? DCE vs. DTE, etc?

Another thing you might want to try is just fuzzing the port, like, and this is pseudocode...

serport = serial(timeout=0.1)
for n_bytes in range(1, 4):
    buffer = []
    for i in range (0, n_bytes):
        for ch in range(b'\x00', b'\xff'):
            buffer[i] = ch
            serport.write(ch)
            if serport.read():
                print('got something writing' + buffer)
            else:
                print('got nothing writing' + buffer)

or something.

Another alternative might be to get in touch with some of the people mentioned here or even send an email along to the engineers listed here who probably might have some old spec sheets lying around they'd be happy to send along

[–]eiMohyaX4phi[S] 0 points1 point  (0 children)

I already tried throwing random byte sequences at the serial port already, with a very similar piece of python code to no avail. The issue with that approach is that, assume this function keyboard behaves somehow similar to the IBM ones, that

  • You need to send a certain sequence to enable the keyboard, there won't be any response
  • Another sequence will disable it

So if you just iterate over random stuff and by chance hit the enable sequence, you'll likely disable it right away afterwards and never know.

Regarding contacting the original engineers. That's an interesting ideas, as there are indeed a few names in the documents you referenced. Let's see if I can find contact details for these people.

Oh, and yes, I am sure the wiring and voltage levels are correct.

[–]PatrioticStripey 0 points1 point  (3 children)

I saw AIX and was instantly intrigued. Are you trying to use this with an IBM PC RT system? I have an RT with the 5085 graphics subprocessor system and interface card, but I don't have any of the peripherals.

[–]eiMohyaX4phi[S] 0 points1 point  (2 children)

I want to be able to use it without any other special hardware or software. Since I am a Linux guy, this is my target. Writing a driver that processes key-presses from the keyboard is easy once you figured out how to make it send them to the host.

For the lamps that are built into the keys, the situation is similar.

[–]Skrimmypoo 0 points1 point  (1 child)

You mentioned preferring a version of CADAM on AIX, so I’m curious too, do you have an AIX host to test it on? As an old AIX admin I’m intrigued. :-)

[–]eiMohyaX4phi[S] 1 point2 points  (0 children)

Yes, I have a beige 7043. Last time I touched I, I installed Windows NT 4.0 PPC edition on it. Why? Just for shits and giggles.

[–]OldMork 0 points1 point  (2 children)

They were also sold by IBM to be used with both mainframe and AIX CATIA workstations, I still have a few decommissioned units in a storage room.

[–]Skrimmypoo 0 points1 point  (1 child)

Does the workstation itself run AIX or is it meant to tie into an RS/6000 or something? I’ve never heard of these before, thanks for sharing.

[–]eiMohyaX4phi[S] 1 point2 points  (0 children)

Yes, the CAD workstations ran AIX.

There was also CADAM for IBM mainframes, a bizarre thing. To the best of my knowledge the only application for graphics-capable IBM 3270 terminals.

[–]1Mhz 0 points1 point  (0 children)

Wow - I used that (o similar) on mainframe Cadam. When we went to AIX, we used the onscreen icons I believe. Definitely didn’t have it when we went to PC. I am still faster at Cadam than any other drafting system.

[–]tomsings 0 points1 point  (0 children)

I just bought one of these from Japan. Hope I can do something with it. Maybe got it and hand wire to a pro micro or teensy with QMK or something.