Saturday, June 4, 2022

The Modern Unfriendliness of 8-bit Keyboard Layouts

Keyboards today have a standard layout.  All keyboards are based off the 104-key standard layout from the mid-1990s, and before that the IBM Model M 101 key layout.  But back before the IBM PC line introduced the 101 and brought uniformity to the home computer world, things were not standard at all.  Every home computer manufacturer had its ideas about what keys should be on the keyboard and where they should be.  This tends to cause some annoyances for emulating those computers, especially when the program relies on certain keys being in certain places.  

Apple II/II+ 

All photos in this blog are courtesy of wikipedia

The original Apple II and II+ machines used a keyboard which has some differences from a modern keyboard.  The most obvious difference is with the punctuation keys, some are in different places than your keyboard have them.  This will be a common theme in this article.  The Return key is on the row above the ASDF keys and there are left and right cursor keys underneath it.  The * and the : share a key, as do the + and ; and the @ is above the P while the ^ is above the N.  In addition, the number row shifted characters are different, with " above 2, & above 6, ' above 7, ( above 8 and ) above 9.  Ctrl is where Caps Lock is on most modern computers.  The Rept key on the original keyboards simply instructs the keyboard controller to repeat the last key pressed, emulators can automate this function so it does not need to be supported.  Reset is generally assigned a key like Break away from the main keyboard cluster.  

When it comes keyboards, we generally can distinguish between position and function.  When position matches function, that makes things easy for the emulator user.  If  < is next to the M key, then you don't have to worry if the program calls for <.  In an Apple II, almost every key with a shift character corresponds at least half to a key on a modern keyboard.  The most annoyance you will likely encounter is trying to play Akalabeth, the original Ultima  and Ultima II.  In these games, as there were no Up and Down cursor keys, the Return key was assigned for Up and the / key for Down.  As this arrangement is not replicated on the modern keyboard, you should remap keys.

By the time of the Apple IIe, Apple's keyboard was much closer to a modern keyboard than even an IBM PC's keyboard.  The open apple and closed apple (later option) keys usually map to the Alt Keys and the Ctrl + Reset key becomes Ctrl + Break.

Tandy TRS-80

The TRS-80 keyboard is remarkably similar to the Apple II's, but it puts the Return key on its proper row and adds Up and Down cursor keys.  Instead of Esc and Ctrl keys on the Apple, the TRS boasts Break and Clear.  One can easily see how these might be mapped to Break or Esc and Delete, respectively, on a modern keyboard.  Most TRS-80s have a numeric keypad, which was very uncommon in 8-bit machines.  

Atari 8-bit

The Atari keyboard is not quite so bad.  Absent a few changes, the number row uses the modern standard. The < and > keys are in odd places and the Return key is above the ASDF row.  The ASSDF row gets a bit tricky with ANSI keyboard layouts with the horizontal Enter key because that row has one more key than ANSI has.  Fortunately those keys are generally used for cursor control, so they can be put on the inverted T cursor keys of a modern keyboard.  Also, the Atari number row has an additional key compared modern keyboards unless they use the short backspace.  Finally, the Atari has three function keys, Start, Select and Option, and they are typically assigned to the function keys of a modern machine.  One has to remember which function key corresponds to which button.  The fuji symbol usually gets mapped to the Alt key.  The XL and XE models add a Help key as a function key and replace the fiji key with a diagonally half filled key.   The XE and XEGS also add symbol characters to the front of most keys like a Commodore keyboard.


The TI-99/4A has relatively few keys, but the number row matches the modern standard pretty much exact except for the absence of the -_ key.  As there are so few keys, many functions are assigned to alphabet keys.  Typically an emulator should allow you to use the modern keys for those functions as well as the "correct" method of invoking them using FTCN.  

Commodore VIC-20/64

The Commodore machines are the first 8-bit computers where things really start getting difficult when translating functions between the layout for their computers and a modern computer.  Most keys on the Commodore can produce three characters or functions.  Some of the keys do not have an intuitive analog, like Run Stop, C= and Restore.  There are extra keys on the ASDF and number rows.  American users may find it a bit difficult to generate a £ symbol, but every VIC-20 and C64 has a separate £ key.

The normal command Commdore BASIC for loading software off disk is LOAD"*",8,1 but sometimes you do not use the 1 or have to enter a filename where the * is.  On a modern keyboard, it may be something of a lookup to find out what keys will produce those characters if you emulator does not support key remapping.  

When using a true C64 or VIC-20 new users may find themselves annoyed that there is not separate Up and Down and Left and Right cursor keys.  In BASIC, Up and Left is invoked with the Shift key and the respective Cursor Control key.  Emulators can assign the discrete function keys to perform the shift function automatically on the modern keyboard's Up and Left cursor keys.

Using the drawing characters printed on the front of a key can prove especially annoying in an emulator because you cannot see the key the character can draw without some kind of key overlay.  

Sinclair ZX-80/ZX-81/ZX Spectrum

The ZX line of computers is even worse than the Commodore series.  It does not start out so bad unless you want to use BASIC or forget that the J key is used to enter the LOAD command.  However, by the time of the ZX Spectrum +, keys are added in places that do not correspond to a modern keyboard, generally on the left side and the spacebar row.


  1. Very useful article. I did not understand why a couple of the games I covered on Apple had left-right arrows for directions to the left & right, but were not using the UP & DOWN arrow. I missed that earlier Apple II had quite simply no such things. Happily enough, most wargames want you to go in 6 directions (if using hexagons) or 8 directions (if using squares), so they had to use the numbers anyway.

  2. Also worth noting that most home computers followed the ASCII tradition of ASR-33-derived layouts (we'll just ignore the Sinclairs), where Apple switched to IBM Selectric-inspired layouts with the //e, Lisa, and /// Plus (with the original /// being... weird), and IBM all along was using Selectric-inspired layouts. (And, about that, while the original PC/XT and AT keyboards are further from modern US-layout keyboards than, say, a US-layout //e's keyboard, European layouts didn't change significantly from the XT layout (for either modern PCs or Apple layouts including the //e).

  3. Well, i had an Amstrad CPC 464 (an 8 bit computer, very popular in Europe) and the keyboard it had was _nearly_ a modern one ;-)