- asdf_modifiers.[ch]: Replace asdf_modifier_shiftlock_activate() with
asdf_modifier_shiftlock_on_activate() and
asdf_modifier_shiftlock_toggle_activate(). Instead of a configurateion
setting for shiftlock state to switch between SHIFTLOCK locks on, SHIFT turns
off, vs SHIFTLOCK toggles, and SHIFT turns off, create two different
SHIFTLOCK functions, one for each behavior, and allow the keymap to bind the
desired function.
- asdf.h: replace ACTION_SHIFTLOCK with ACTION_SHIFTLOCK_ON and
ACTION_SHIFTLOCK_TOGGLE.
- asdf.h: move start of ACTION codes from 0x80 to 0x90, since SOL-20 uses codes
from 0x80-0x8f.
- asdf.c: test for ACTION code using (code > ASDF_ACTION) instead of (code &
ASDF_ACTION), since ASDF_ACTION need not be a power of 2.
- asdf_modifiers.[ch] and other files: remove
asdf_modifiers_shiftlock_deactivate() and
asdf_modifiers_capslock_deactivate(), and any references to these functions
since they are null functions anyway.
- Split asdf_virtual.c into asdf_physical.c and asdf_virtual.c, moving the
functions that handle the physical resources to asdf_physical.c
- cleaned up nomenclature to be more consistent and less confusing.
- fixed keymap files and tests to use asdf_physical.c/h and new nomenclature.
- added asdf_physical.c to Makefiles.
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.
- 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.
- Break out initialization of SYS_RESET, CLEAR, STROBE, and CAPS LED into
separate functions.
- Emulate open collector output for SYS_RESET: OFF=input with weak pullup.
ON=output low.
- Add function to cap CAPS LED.
- add caps key function, similar to shift. This is intended for a DIP switch
setting to switch the keyboard between all CAPS and upper/lower modes.
- clean up the modifier state enums to include all legal values
- clean up the modifier index value calculation to improve readability.
- Separate the "asdf_keymaps.h" files into
-- "asdf_keymaps.h" which is not keymap dependent and contains keymap function
prototypes
-- "asdf_keymap_defs.h" which contains the keymap definitions
-- Move definitions of number of rows and columns from asdf.h to keymaps_defs.h.
-- keymap_defs.h is copied from the keymaps directory depending on which keymap
is specified in the Makefile.
-- Makefile fixes for the above changes
-- Fix includes in several files to reflect the above changes.
Reverts the ASCII keymap to proper position of 'O' and 'o' keys, and create a
new keymap for rev 1.2 and earlier of the key matrix with swapped 'O' and '0'
keys.
Keymaps/asdf_keymaps.h: swap '0' and 'O' codes to compensate for physically swapped '0' and 'O' in early prototypes
asdf_ascii.h: fix wrong code for comma (44, 0x2C; was defined as 0x44).
- added asdf_actions.c, asdf_actions.h to place misc. key actions
- asdf.c: asdf_activate_action(): added actions for screen clear and reset
- asdf_config.h, Arch/asdf_arch_atmega328p.c: added defs to specify polarity of data,
strobe, SCREEN_CLEAR and reset outputs.
- Arch/asdf_arch_atmega328p.h: fixed pin definitions for RESET and SCREEN_CLEAR