This version of the emulator provides a new primitive, absent from CoreTools: int KeyDown() returns (immediately) the code of the key being held down at the moment of the call. If no key is held down, the function returns NO_KEY_PRESSED. This and other constants are defined in ct_windows.h, as follows: const int NO_KEY_PRESSED = 0; const int SHIFT_KEY = 16; const int CTRL_KEY = 17; const int SPACE_BAR = 32; const int RIGHT_ARROW = 39; const int UP_ARROW = 38; const int LEFT_ARROW = 37; const int DOWN_ARROW = 40; (the integer values are the actual key codes) int KeyDown() is defined in ct_kbd.h . ct_windows.h and ct_windows.cpp have been changed (look at WindowProc() in ct_windows.cpp to see the events WM_KEYDOWN and WM_KEYUP added to Windows events processed by the graphics window.) See the demo programs for examples of usage. Since all three of main_demo0.cpp, main_demo1.cpp and mani_demo2.cpp contain a main(), only one of these files can be a member of your project at a time. A single file ct_emu.h is provided for including all emulator headers, as a convenience: #include "ct_emu.h" will now bring in all the headers.