Category: keyboard


so i finally got around to finishing up the schematic for the current state of the hardware for the 8-bit project.  here it is (click for a larger version): [i apologize for how crappy this image looks here.  it looks fine in wordpress’ editor, so i don’t know why it’s messed up here…]


i created the schematic using the freeware version of eagle, including creating my own library items for the apple slot and lcd connector.  while the free version is obviously limited (1 sheet, max 4″x3.2″ 2-layer board size), eagle is nice because even the free version includes an autorouter, which should make the eventual task of laying out boards for this project much easier.

the block on the left represents the apple’s expansion slot, which i pull out to a breadboard via a system i’ll have to post a photo of because it’s a bit difficult to explain.

on the right side, from top to bottom, are the keyboard output, keyboard input, and lcd panel.  the keyboard itself is a chiclet keyboard from a tandy color computer.  i chose it because (a) i had it sitting around and (b) it has a nice single-row, 0.100″-spacing pin connector, which made it easy to connect an IDE cable to bring it over to the breadboard.

glue logic is really minimal – all four OR gates of a 74*32 and a single inverter off a 74*06.  the inverter is used to create a /RD signal from the apple’s R/W as the lcd requires separate read and write strobes.  /RD is also used in the logic for triggering reading vs writing the keyboard.

everything ultimately depends on the apple /IOSEL line, which is pulled low when addressing any of the 16 bytes of form 0xC0Nx, where N is the slot number plus 8.  Those 4 address lines are currently being used as follows:

  • A0 – command/data (C/D) input for lcd
  • A1 – feeds into /CE for lcd when ORd with /IOSEL
  • A2 – ORd with /IOSEL to form the keyboard enable.  that output is then further ORd with /RD and R/W (i.e. /WR) to determine which half of the keyboard logic to enable.
  • A3 – still unused.  i can’t use it for the planned IDE connection because that will need 4 lines.  i also can’t use it for creating my own serial port as that will require 3 or 4 lines as well.

the only other thing i can think of to note is that the apple’s -12V supply is run through a potentiometer to supply the lcd bias/contrast input.