Disallow assignment of invalid virtual or real devices
Disallow assignment of a real devices that have already been assigned.
add unit test cases for virtual devices
* Created test fixture for virtual outputs
* Added virtual output configuration to keymap definitions removed special
actions_send_reset() and actions_send_screenclear() functions, and replaced with
virtual output definitions.
* asdf_actions.c is removed from build.
* asdf_arch_atmega328p.c: added functions to set/clear each real output
* asdf_arch_atmega328p.c: added pulse_delay() function
* asdf_arch_test.c: added mock machinery to emulate outputs, test output
settings, and detect properly and improperly-formed pulses on the outputs.
* asdf_keymaps.c: allocate initialzer array. asdf_keymaps_select_keymap() calls
asdf_virtual_init() with initializer list for the keymap to set up the LEDS and
outputs every time a new keymap is selected.
This allows the keymap to determine which LED is used, rather than requiring the
decision to be hardwired in at the time of assembly. For the OSI keyboard, the
LED could be placed on the SHIFTLOCK key, at the far right LED, or in the
CAPSLOCK position, which is just to the left of the RETURN and not otherwise
populated in the OSI layout.
- swap numbering of row select protection diodes for cleaner PCB labeling
- clarify labeling on GPIO pins on the MCU
- bump rev to 2.4 to indicate work in progress. Release will be 2.5.
- asdf_modifier.c: refactor CAPS LOCK setting and add LED setting
- asdf_arch_atmega328p.[ch]: add in LED definitions and functions
- add dummy asdf_arch_caps_led() function to arch files so test can compile.
- asdf_keymaps_select_keymap() function to select a keymap
- asdf_keymaps_select_n_{set|clear} functions to set a bit in keymap number,
to support dip switches.
- Added C preprocessor macros to determine largest key matrix, so enough space
may be allocated
- Cleaned up keymap definition macros for readability
- Created master keymap file to aggregate individual keymaps
- Modified make files to copy the specified master keymap
to asdf_keymap_defs.h during build.
- Added template keymap file.
- pulled in the right border and mounting holes for Apple-II mounting dimensions
- modified the "~^" key courtyard to allow closer positioning of the upper right
Apple II Mounting hole. (The ~^ key is not installed in an Apple II keyboard)
- Moved tracks and diodes as needed to keep everything in the new outline.
- Add extra key to the left side of row 4 to permit "inverted T" for those who
want it.
- Tiny shifts of several keys to correct key distances
- Include mounting holes with daughter board connector, to ensure consistency.
- Fix wrong direction DIP switch diodes
- Add buffers to permit ISP lines to also be used as output and LED drivers
- Allow 3 keyboard LEDs and 3 host outputs (RESET, CLEAR, BREAK, LOCAL, etc.).
- Outputs 1 and 3 are general purpose (can be open drain or driven). Output 2
is open collector (with optional on-board pullup).