Y8b Y88888P           ,e,      888   Yb 8 dP 
 Y8b Y888P   e88 88e   "   e88 888    `D8K'  
  Y8b Y8P   d888 888b 888 d888 888   dP 8 Yb 
   Y8b Y    Y888 888P 888 Y888 888           
    Y8P      "88 88"  888  "88 888           
The website of an old burnout
Blog About RSS

Keytari

Filed under: Modern Computing, Retro computing

So, I had a lot of 8 bit computers growing up. I got them from garage sales at a time when people were upgrading to PCs and selling their old machines for for almost nothing. I did have a favorite, though. My Atari 800XL. I had a Commodore 64 and a CP/M running Altos 580, but the Atari's design just made so much sense to me (and it looked cooler, sorry breadbin C64).

Life happens and I had to get rid of that machine in a move in the 90s. A few years ago, though, I came across one with a 1050 drive for a reasonable price at a retro gaming convention and grabbed it. Since then I've turned it into the maximally upgraded example of an 800XL. Rapidus 65816 upgrade with 16mb of SDRAM, Ultimate 1mb upgrade card, VBXL video upgrade, FujiNet and SIDE3 (kinda wish I had gone with SIDE2 or an AVG cart, but it works).

That wasnt enough though. I had a very powerful 8/16 bit machine now, but it sat o my bench unused most of the time. It annoyed me and so I decided I would find some way to put the machine to daily use. As a keyboard. Now, put the pitchforks down, I would never harm my beloved 800XL by gutting it. Instead I came up with a weird plan.

The 800XL has a FastBasic program running on it that captures keystrokes out of the Pokey registers, adds the state of the right hand buttons and control/shift, and sends that as two bytes to my PC. On the PC is a python script that takes the bytes in, uses a cofiguration file to decode them into PC keycodes and injects them into the Linux uinput stack as keypresses. This is all enabled by the FujiNet, which lets me open a TCP socket to my PC over wifi. Currently the protocol itself has no encryption, but it is wrapped in the WPA2 encryption of the wifi connection.

This setup is great, honestly, and I've been using it for months. There are a few catches, though. Firstly, the Pokey only shows one keypress (and two modifiers) at a time. No rollover. This makes the software unuseable for gaming. Sorry die hard FPS players. Secondly, if you run a keyboard-heavy setup, you might find the lack of modifiers limiting. I use sway for a compositor and I've taken to using the right hand buttons as additional modifiers. Third, some things dont seem to play nicely with uinput. Particularly old games emulated in wine seem to have some kind of issue processing keystrokes this way. Sorry Warhammer 40K: Dawn of War fans (myself included).

I've mentioned this setup to a few people in the local retrocomputing community and have gotten some interest, so I'll be publishing the code in the next day or two (when I figure out where to host it) for others to use.

Author: Lady Errant
Published on: Jan 01, 2025, 12:00 PM GMT
Permalink

If your son wears a skirt, then get him some cute kneesocks as well Keep the web free,
               say no to web3 Trans rights now Play Quake
               Now
Invalid HTML 3.2 Made with VI Underwear is for loosers Soft and cute

© Lady Errant