MacIvory Keyboard Support Software
The ADB adapter has not just given me some help uncovering the behavior of the Rev. C Symbolics keyboard protocol, but also works when attached to my MacIvory. Along the way (and with the help of David K. Schmidt) I encountered some glitches, mostly stemming from my original accidental trashing of the System file DKS installed.
There are a few software components the ADB adapter box needs to convert the Symbolics keyboard to something the Mac OS 7.6.1 (including the "FEP" window which communicates to the Ivory board on a low level) will accept as a keyboard with the right keymapping, and furthermore to something the Genera application will recognize with all the Symbolics-specific keys. Without these components, you will see one of the following two stages of malfunction.
Stage 1: The mouse connected to the ADB adapter works fine. In the Mac OS (including the FEP window), there is total keyboard confusion, with the keys all scrambled. On the Genera side, things are less scrambled, but some keys are missing, such as "e", "t", "u", and "o"; the "o" in fact causes the Mac menu bar to flash. Modifier keys seem absent. If you activate the keyboard control application, Genera seems to crash easily. Peter Paine reported this at the time System 7.5.3 came out.
If you do a custom install of the "Symbolics Keyboard for System 7" selection in the MacIvory software installer, you get the Symbolics Keyboard extension icon at Mac OS startup, and a Symbolics keyboard layout choice in the Keyboard control panel. The situation improves, reaching
Stage 2: The alphanumeric keys work for both the Mac OS and for Symbolics. However, Genera treats a press of the "Page" key as a press of the "Line" key, treats "Escape" as "Select", and ignores the \{ and |} keys, the Hyper modifier key, and most of the large function keys (Function, Refresh, Square, Circle, Triangle, Suspend, Resume, Abort, Network, Local, Select, Line). Kent Pitman reported this after an upgrade to System 7.5.
The solution is to do a full install of the MacIvory support software. I believe this is necessary to get all of the resources installed in the Mac's System file.
I'll try to gather more details on the resources; it would be nice to understand how to make a box that takes, for instance, a PS/2 keyboard & mouse and connects it to the MacIvory, although the Symbolics keyboards and mice may be more plentiful than than the Ivory boards at this point, so it might be mere archaeology. More practical, if ADB adapters are scarcer than Ivory boards, would be a combination of the Apple keyboard (which works well enough for MacIvory use) and a three-button PS/2 mouse with a "partial ADB adapter" allowing it to provide multi-button mouse function to Genera.
UPDATE: I examined the resources, and was able to decode the Symbolics ADB adapter encoding.
There are a few software components the ADB adapter box needs to convert the Symbolics keyboard to something the Mac OS 7.6.1 (including the "FEP" window which communicates to the Ivory board on a low level) will accept as a keyboard with the right keymapping, and furthermore to something the Genera application will recognize with all the Symbolics-specific keys. Without these components, you will see one of the following two stages of malfunction.
Stage 1: The mouse connected to the ADB adapter works fine. In the Mac OS (including the FEP window), there is total keyboard confusion, with the keys all scrambled. On the Genera side, things are less scrambled, but some keys are missing, such as "e", "t", "u", and "o"; the "o" in fact causes the Mac menu bar to flash. Modifier keys seem absent. If you activate the keyboard control application, Genera seems to crash easily. Peter Paine reported this at the time System 7.5.3 came out.
If you do a custom install of the "Symbolics Keyboard for System 7" selection in the MacIvory software installer, you get the Symbolics Keyboard extension icon at Mac OS startup, and a Symbolics keyboard layout choice in the Keyboard control panel. The situation improves, reaching
Stage 2: The alphanumeric keys work for both the Mac OS and for Symbolics. However, Genera treats a press of the "Page" key as a press of the "Line" key, treats "Escape" as "Select", and ignores the \{ and |} keys, the Hyper modifier key, and most of the large function keys (Function, Refresh, Square, Circle, Triangle, Suspend, Resume, Abort, Network, Local, Select, Line). Kent Pitman reported this after an upgrade to System 7.5.
The solution is to do a full install of the MacIvory support software. I believe this is necessary to get all of the resources installed in the Mac's System file.
I'll try to gather more details on the resources; it would be nice to understand how to make a box that takes, for instance, a PS/2 keyboard & mouse and connects it to the MacIvory, although the Symbolics keyboards and mice may be more plentiful than than the Ivory boards at this point, so it might be mere archaeology. More practical, if ADB adapters are scarcer than Ivory boards, would be a combination of the Apple keyboard (which works well enough for MacIvory use) and a three-button PS/2 mouse with a "partial ADB adapter" allowing it to provide multi-button mouse function to Genera.
UPDATE: I examined the resources, and was able to decode the Symbolics ADB adapter encoding.
Just a moment ago I commented on one of your older entries, but here goes.
ReplyDeleteHaving no Lisp Machine, I have entirely reverse-engineered the keyboard protocol "with my bare hands" (oscilloscope.) Here (http://lmkbd.googlecode.com/svn/trunk/symkeys.asm) is the table of keycodes for the Old Style Keyboard (new style is probably identical.) If you look at the schematics (http://www.asciilifeform.com/images/3.png) and PIC16F84 code in the rest of my project, you will see how to connect the device and what the protocol looks like: you simply toggle the clock line to increment a counter, and the keyboard will toggle a data line if the key corresponding to that counter value is pressed. My current code simply lights an LED if any key is pressed, but it should be easy to extend it to transmit PS/2 keycodes (unfortunately, I have not had the time to finish this project.)
Good luck!