Keypad for C64 Port#2
coplin@hotbot.com

Long ago (~1990) when much of my time was spent keying-in sprite data or
machine code data statements I decided to add a numeric keypad to the C64.
The device decodes the line grounded by the various switches into signals
compatible with the CBM joystick port.  In order to no interfere with the
normal keyboard scanning routines the final stage is with open-collector
logic (7405) so that when no keypad is pressed, none of the joystick port
lines are loaded.

The decoding of the various keypad keys is aligned with the direction inputs
so that the keypad can be used as a replacement for a joystick in many
programs (I found it beneficial with drawing /CAD programs where precision is
needed - I didnot have a 1351 mouse at the time).

To enter numeric data a small memory resident driver needs to be loaded
beforehand. The driver installs at the top of BASIC memory leaving the
maximum RAM free for programming. The standard driver is configured for a
numeric keypad, but the character returned by each keypress can be configured
by either changing the code, or poking new values as follows.



In addition to the schematic, a Digital Works model is included so that the
operation of the circuit can be observed.

Chips:
        7420
        7410
        7410
        7405
        7408

Other Parts:
        keypad (4rows, 3cols, grounding type switches
        9pin plug
        cable
        vero board

Notes:
1) switches ground the inputs, otherwise inputs are floating... I have not
   observed any problems with this and TTL, but you can use pull-up resistors
   if desired.
2) unused inputs are shown as pulled-up to Vcc, but likewise this has not been
   found to be necessary for TTL logic
        
