bcontrol 0.1.6 Public domain (upstream dedication) --- Joystick.h --- /* Joystick.h - Autonomous joystick functions for the CoCo. By Pierre Sarrazin This file is in the public domain. */ --- Joystick_private.h --- /* Joystick_private.h By Pierre Sarrazin This file is in the public domain. */ --- Keyboard.c --- /* keyin.c - Autonomous keyboard functions for the CoCo. By Pierre Sarrazin This file is in the public domain, except the parts that come from Color Basic. */ --- Keyboard.h --- /* Keyboard.h - Autonomous keyboard functions for the CoCo. By Pierre Sarrazin This file is in the public domain. */ --- README.md --- BControl ======== By Pierre Sarrazin . This library is in the public domain, except the parts of Keyboard.c that come from Color Basic. This library offers functions similar to Color Basic's INKEY$, JOYSTK and BUTTON. It does not assume the presence of the Color Basic interpreter. # Usage To use the Keyboard object, instante an instance, then call `Keyboard_init()` on it. Then call `Keyboard_poll()` the same way one would call INKEY$ in a Basic program. Call `Keyboard_shutdown()` when finished with the Keyboard object. To read the joystick axis values and button states on a CoCo or Dragon, call `Joystick_getAxisValues()` and `Joystick_getButtonStates()`. No initialization step is needed. However, to help the portability to OS-9 of a program that uses the joystick, `Joystick_getAxisValuesAndButtonState()` should be used instead of the other functions of Joystick.h. See Keyboard.h and Joystick.h for details. # Dragon support To compile for the Dragon, pass TARGET=dragon to make. # OS-9 support To compile for OS-9, pass TARGET=OS9 to make. # Version history 0.1.0 2018-11-25 First public release. 0.1.1 2019-06-03 Partial support for OS-9 added: setScreenBuffer() not supported. Removed the (non portable) startInCapsLock parameter from `Keyboard_init()`. 0.1.2 2019-09-21 Added missing OS9RawTerminal.h. 0.1.3 2020-06-27 Added `Joystick_selectAnalogMuxInputs()` and `Joystick_compareAxis()`, which allow custom, faster axis polling (but is not usable under OS-9). 0.1.4 2022-11-12 Fixed the Dragon executable extension in the makefile. Added `Joystick_getAxisValuesAndButtonState()`, which targets a single joystick and also works under OS-9. Include "Joystick.h" to use it. 0.1.5 2024-08-29 Joystick comparator read routine slightly optimized with inline asm. (Not applicable to OS-9 version.) Centralized some function prototypes. Removed UTF-8 characters from Keyboard.c. 0.1.6 2026-09-06 Added Joystick_getButtonStates2(). Optimized Joystick_selectAnalogMuxInputs(). Optimized Joystick_compareAxis(). --- bcontrol.c --- /* bcontrol.c - Test and demo program. By Pierre Sarrazin This file is in the public domain. */ --- compareAxis.c --- /* compareAxis.c - Autonomous joystick functions for the CoCo. By Pierre Sarrazin This file is in the public domain. */ --- disableSound.c --- /* disableSound.c By Pierre Sarrazin This file is in the public domain. */ --- enableSound.c --- /* enableSound.c By Pierre Sarrazin This file is in the public domain. */ --- getAxisValues.c --- /* getAxisValues.c By Pierre Sarrazin This file is in the public domain. The current implementation is based on Color Basic's. Improvements are welcome. */ --- getAxisValuesAndButtonState.c --- /* getAxisValuesAndButtonState.c - Autonomous joystick functions for the CoCo. By Pierre Sarrazin This file is in the public domain. */ --- getButtonStates.c --- /* getButtonStates.c By Pierre Sarrazin This file is in the public domain. */ --- getButtonStates2.c --- /* getButtonStates2.c By Pierre Sarrazin This file is in the public domain. */ --- readComparatorMultipleTries.c --- /* readComparatorMultipleTries.c - Autonomous joystick functions for the CoCo. By Pierre Sarrazin This file is in the public domain. */ --- selectAnalogMuxInputs.c --- /* selectAnalogMuxInputs.c By Pierre Sarrazin This file is in the public domain. */