Commit Graph

88 Commits

Author SHA1 Message Date
David Fenyes
01008af937 Break out physical resource functions into asdf_physical.[ch]
- 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.
2020-03-12 00:45:59 -05:00
David Fenyes
5c2235e79c Apple 2 map fixes
Set the lamp under the caps lock key (next to RETURN, not in apple2 layout) to
off.

Remove the right square bracket "]" from the apple 2 map.
2020-03-11 02:08:37 -05:00
David Fenyes
5bbdbe1c49 remove ACTION_RESET and ACTION_CLEAR
These are now implemented through virtual outputs, defined in the keymap files.
2020-03-11 01:54:41 -05:00
David Fenyes
72a84f0363 add safeguards for virtual device assignment
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
2020-03-11 01:52:47 -05:00
David Fenyes
73e2760d94 Add more unit tests for virtual layer
- use macros to designate which keymaps are used to setup the tests.
2020-03-11 01:50:27 -05:00
David Fenyes
23237fae88 Added unit tests for virtual outputs. 2020-03-09 05:16:52 -05:00
David Fenyes
5a6a64dd55 Remove #include "asdf_actions.h" from asdf.c 2020-03-08 15:08:10 -05:00
David Fenyes
3940b96e0d Remove asdf_actions.[ch] files, no longer used. 2020-03-08 15:06:06 -05:00
David Fenyes
1b388bc591 Add virtual output device module (compiles without warning)
* 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.
2020-03-08 14:45:40 -05:00
David Fenyes
44a49afdae modify the SHIFTLOCK and CAPSLOCK led functions to use virtual LEDs 2020-03-06 13:46:27 -06:00
David Fenyes
cff7f6052a Changes for virtual LED and output mapping.
Rough first cut, have not yet tried to compile or test.
2020-03-06 13:24:03 -06:00
David Fenyes
d0648019d6 Add the Apple 2 keymaps. 2020-02-21 00:28:36 -06:00
David Fenyes
a598eaaee1 Add support for LEDs
- 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.
2020-02-20 16:48:17 -06:00
David Fenyes
919a422d57 ASCII Keymap fixes
Updated keymap definitions to fit current keyboard matrix PCB rev (1.3).
2020-02-20 01:54:31 -06:00
David Fenyes
e53ca053c9 add ASCII NULL
- add ASCII_NULL to ascii table
- attach ASCII_NULL to ctrl-@
2020-02-20 01:25:21 -06:00
David Fenyes
b8cf2a339a formatting fix 2020-02-20 01:18:37 -06:00
David Fenyes
adc9f92b75 Update firmware README to mention multiple keymap support. 2020-02-20 01:15:24 -06:00
David Fenyes
6e462589cc Arch file support for 4-bit row address. 2020-02-19 23:32:14 -06:00
David Fenyes
a2a6be49a4 Add tests for multiple keymap support. 2020-02-19 23:31:17 -06:00
David Fenyes
16dc913f74 Added functions to change keymaps
- 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.
2020-02-19 23:28:14 -06:00
David Fenyes
97cda49e31 Modifications for multiple keymap support.
- 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.
2020-02-19 23:22:23 -06:00
David Fenyes
b7c77ddebc Apply clang-format to source files. 2020-01-03 23:25:55 -06:00
Dave
6b201ac997 Add missing asdf_keymaps.h file 2019-12-29 09:24:11 -06:00
Dave
3c34734a46 I/O cleanup and SYS_RESET fix
- 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.
2019-12-28 10:22:00 -06:00
Dave
088af21650 modifier cleanups
- 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.
2019-12-24 22:27:24 -06:00
Dave
f0772180cb Break out keymap definitions
- 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.
2019-12-24 21:54:35 -06:00
Dave
4923433c10 Fix '<' and '>'
Swapped '<' and '>' in ascii and ascii_swapped_o keymaps.
2019-12-24 11:19:10 -06:00
Dave
74fa1db6ba Comment fix
Fix the comment in the "Swapped O and zero" keymap to indicate board rev that
pairs with the keymap.
2019-12-24 09:26:59 -06:00
Dave
d5d1eef10c Fix swapped 'O' and '0' keys
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.
2019-12-24 08:53:28 -06:00
Dave
bb6c754ee1 Fixed CAPSLOCK reference
Keymaps/asdf_keymaps_ascii.h: changed CAPS_LOCK to CAPS
2019-12-24 02:35:51 -06:00
Dave
cc06648930 Change SHIFT LOCK to CAPS LOCK
Keymaps/asdf_keymaps_ascii.h: change the shift lock binding to a caps lock.
More useful.
2019-12-24 02:29:43 -06:00
Dave
519817ab53 ASCII keyboard fixes
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).
2019-12-24 02:22:38 -06:00
Dave
a03473769f Added screen clear and reset functions
- 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
2019-12-15 02:38:04 -06:00
Dave
6b78fe9111 Change "Universal" to more accurate "Unified" 2019-12-15 02:09:15 -06:00
dfnr2
4c0d3b1084 Update README.md 2019-12-12 20:24:04 -06:00
dfnr2
f2527e4d69 Update README.md 2019-12-12 20:22:13 -06:00
Dave
c14fe92ebf minor header file fixes 2019-12-12 20:19:45 -06:00
Dave
784805adc7 first commit 2019-12-12 14:46:29 -06:00