APL Keyboard for APL

MMcM

12 Jul 2021, 06:42

One of the keyboards that has been waiting for conversion is this from a TI Silent 700 Model 743 (or more likely 745 -- the difference is an acoustic coupler and I think they sold better with), including the APL option:
63SD17-3-case.jpg
63SD17-3-case.jpg (508.26 KiB) Viewed 1198 times
It has Micro Switch SD series switches.
63SD17-3-top.jpg
63SD17-3-top.jpg (1.22 MiB) Viewed 1198 times
Most are 1A3S, except for three 1A8S. BREAK and PAPER ADV I can understand, but I am unclear why BACK SPACE was made heavier instead of HERE IS, which would have seemed more logical both physically and functionally.

The board is 63SD17-3 with PCB SD-16329.
SD-16329-bottom.jpg
SD-16329-bottom.jpg (592.61 KiB) Viewed 1198 times
Slom already converted the same board to use a Teensy a couple years ago. They already figured out all the details of the matrix encoding, where the key- and rocker-switches are just exposed directly, as per the Maintenance Manual

The converter uses almost every pin.
TI-Silent-743-converter.jpg
TI-Silent-743-converter.jpg (608.81 KiB) Viewed 1198 times
The NOS FFC I have seems too stiff and the wires don't quite fit solidly into the connector, so I hacked something up with perfboard and leftover diode leads that then connect to ribbon cables.

But what to do to make this interesting besides transcribing the decoder into QMK?

One of the rocker switches selects APL mode, where the terminal uses a different character ROM with APL characters for the shifted letters and numbers. Nowadays, APL systems use Unicode for input and come with some kind of special IME for entering APL codepoints using special keyboard shifts, whether or not the keyboard has APL legends. QMK does Unicode (as well as one can on the various standard operating systems). So, why not make the APL switch work as it did originally?

This entails a couple of additional layers, for unshifted and shifted APL mode and some logic to switch based on the APL switch and what shifts are pressed. Plus, since the exact reports to send need to vary by target system, the additional switches can select which of those to use.

Code: Select all

$ apl
                    ______ _   __ __  __    ___     ____   __ 
                   / ____// | / // / / /   /   |   / __ \ / / 
                  / / __ /  |/ // / / /   / /| |  / /_/ // /  
                 / /_/ // /|  // /_/ /   / ___ | / ____// /___
                 \____//_/ |_/ \____/   /_/  |_|/_/    /_____/
                                       
            Welcome to GNU APL version 1.8 / Unversioned directory
                                       
                Copyright (C) 2008-2019  Dr. Jürgen Sauermann
                       Banner by FIGlet: www.figlet.org
                                       
                This program comes with ABSOLUTELY NO WARRANTY;
                          for details run: apl --gpl.
                                       
     This program is free software, and you are welcome to redistribute it
         according to the GNU Public License (GPL) version 3 or later.

      ∘.=/⍳¨4 4
 1 0 0 0 
 0 1 0 0 
 0 0 1 0 
 0 0 0 1 
      )off

Goodbye.
Session duration: 60.2273 seconds 
There are still some important APL characters that don't have legends on this keyboard. Originally, these would have been input by overstriking pairs of the ones that are there. The Silent 700 was a printing terminal, so overstriking characters are easy for it. CRTs would have needed an extended ROM with some overstrike combinations (and logic to detect them when outputting). So, why not have some form of overstrike, too?

Specifically, the LINE FEED key, when pressed right after one of the APL Unicode keys, enters a mode where the next Unicode key combines with that one and replaces it by first sending BACKSPACE.

Code: Select all

$ dyalog

Dyalog APL/S-64 Version 18.0.40684
Serial number: UNREGISTERED - not for commercial use
+-----------------------------------------------------------------+
| Dyalog is free for non-commercial use but is not free software. |
| A non-commercial licence can be used for experiments and        |
| proof of concept until the point in time that it is of value.   |
| For further information visit                                   |
| https://www.dyalog.com/prices-and-licences.htm                  |
+-----------------------------------------------------------------+
Sun Jul 11 20:20:30 2021
      x←4?100
      x
97 50 79 63
      ⍝ sort that.
      ⍋x
2 4 3 1
      )off
Here, ⍝ is SHIFT C (entering ∩), LINE FEED (LED lights to show mode), SHIFT J (overstrike ∘).

Post Reply

Return to “Workshop”