Raw File
KBD.h
/****************************************************************************
 * KBD - DSKY KEYBOARD subsystem
 *
 * AUTHOR: John Pultorak
 * DATE: 9/22/01
 * FILE: KBD.h
 *
 * VERSIONS:
 *
 * DESCRIPTION:
 * DSKY Keyboard for the Block 1 Apollo Guidance Computer prototype (AGC4).
 *
 * SOURCES:
 * Mostly based on information from "Logical Description for the Apollo
 * Guidance Computer (AGC4)", Albert Hopkins, Ramon Alonso, and Hugh
 * Blair-Smith, R-393, MIT Instrumentation Laboratory, 1963.
 *
 * NOTES:
 *
 *****************************************************************************
 */
#ifndef KBD_H
#define KBD_H
enum keyInType
{
  // DSKY keyboard input codes: Taken from E-1574, Appendix 1
  // These codes enter the computer through bits 1-5 of IN0.
  // The MSB is in bit 5; LSB in bit 1. Key entry generates KEYRUPT.
  KEYIN_NONE = 0, // no key depressed**
  KEYIN_0 = 020,
  KEYIN_1 = 001,
  KEYIN_2 = 002,
  KEYIN_3 = 003,
  KEYIN_4 = 004,
  KEYIN_5 = 005,
  KEYIN_6 = 006,
  KEYIN_7 = 007,
  KEYIN_8 = 010,
  KEYIN_9 = 011,
  KEYIN_VERB = 021,
  KEYIN_ERROR_RESET = 022,
  KEYIN_KEY_RELEASE = 031,
  KEYIN_PLUS = 032,
  KEYIN_MINUS = 033,
  KEYIN_ENTER = 034,
  KEYIN_CLEAR = 036,
  KEYIN_NOUN = 037,
};
class KBD
{
public:
  static keyInType kbd; // latches the last key entry from the DSKY
  static void
  keypress(keyInType c);
};
#endif
back to top