danm@mspiggy (Dan McCabe) (09/28/83)
I spoke with HJL yesterday, and they informed me that they had been shipping the keyboards with more documentation on the function keys, including a copy of an article by Bob Rosen which appeared in the June '83 issue of Rainbow. This article assign various functions to the function keys (makes sense, huh?). Specifically, you get a screen dump with F1, auto-repeat with F2, control key generation with F4, and I don't remember what you get with F3. The basic scheme that HJL (and Micronix for that matter) uses is to place keys at the empty spots in the keyboard matrix. If you examine the keyboard schemetic in your CoCo service manual (What? You don't have a service manual?), you will see that there are 4 unoccupied locations in the same row as return, beak, clear, and shift (I think these are the keys). The reason why you get @ for F1, g and 4 for F3 and shift F3, etc, is that Basic never expects to get activations of those locations in the matrix and hence pulls out trash from a translation table when those matrix locations are activated. I am currently in the process of writing a driver for said function keys that will allow the keyboard to generate <esc>, <del>, |, ~, {, and }. This is done by copying part of the ROM into RAM and modifying certain locations. Unfortunately, Basic is not too pleased when it recieves {, }, |, or ~ from the keyboard. Another problem is that INKEY$ is hard-wired to branch to $a1c1 (location of keyboard driver), so INKEY$ can't be fixed easily (at least, not as far as I can tell; I'll check with some of the Basic folks here). However, this is remedied by providing code in RAM which performs an INKEY$ and then doing a DEF USR, etc. This driver (mine, that is) is completely stop-gap, and will be need to be replaced when the Shack comes out with OS-9 (hopefully soon, but one can never tell). If there is an interest in said driver, drop me a line and I will send it when it gets done (hopefully soon, but one can never tell). If there is enough interest, I may post it. Happy hacking, Dan McCabe decvax!microsof!danm