Commit Graph

96 Commits

Author SHA1 Message Date
David Fenyes
23dd38b488 Fix test/CmakeLists.txt so tests compile.
Apparently some file pollution resulted in a successful compile that couldn't be
reprodued from a fresh git clone.  Fixed file copying and include paths so
compile works.  All tests pass.
2021-03-08 12:27:53 -06:00
Dave
859a5e03d1 Change order of version and architecture in build target name 2021-03-04 22:44:09 -06:00
Dave
fb3627e3a2 Change firmware version to 1.5 (in anticipation of 2.0 release) 2021-03-04 22:36:46 -06:00
Dave
e9c38e3c51 Replace Makefiles with CMake build system
- CMake build process handles dependencies much more effectively

- Cleaner separation of test and binary builds

- permit co-existing test and multiple architecture builds

- add support for AVR from cmake-avr:
      https://github.com/mkleemann/cmake-avr

- new build process avoids creating files in the src directory
2021-03-04 22:27:15 -06:00
Dave
b37f8165a4 Allow settling time for each row output change. 2020-08-06 15:22:52 -05:00
Dave
217d78a798 Physical devices attached to virtual dev change synchronously
Apply virtual device functions to each associated physical device synchronously
instead of sequentially.
2020-08-06 15:20:19 -05:00
Dave
098ae72f5f atmega2560: Increase row output settling time from 2 usec to 4 usec 2020-08-06 15:18:40 -05:00
Dave
2a02f74171 Notation fixes for pointers to functions 2020-08-06 15:17:28 -05:00
Dave
11fd44c0cb BUGFIX: repeat apparatus not initiazized on keymap switch.
Added call to asdf_repeat_init() form asdf_keymaps_select_keymap()
2020-07-20 14:13:53 -05:00
Dave
01731197af Add spaces arounce concatenation operator 2020-06-17 01:03:18 -05:00
Dave
7b05b6eadb Bug fix: long delay should invoke _delay_ms(), not _delay_us(). 2020-05-23 23:28:00 -05:00
Dave
25d0693eda minor hook cleanups
- Rename asdf_hook_do() to asdf_hook_execute()
- asdf.c: Call asdf_hook_execute() for ASDF_HOOK_EACH_SCAN hook call in the scan
  routine, instead of getting then calling the function via hook_get()
- asdf.c: move the fetch of scan function hook outside the scan loop.
2020-05-19 17:58:58 -05:00
Dave
b3b2a93cdb Added dummy strobe-set functions to arch_test.c,h. 2020-05-15 14:52:18 -05:00
Dave
97890eaf63 Apply clang-format to files 2020-05-15 14:48:40 -05:00
Dave
c9cc1a76fe Add missing DIP switch definition file to repository. 2020-05-15 14:45:42 -05:00
Dave
7801a17f56 Add DIP switch select for strobe polarity and autorepeat
- arch-* files: replace private arch_strobe_init() function with public
arch_set_neg_strobe() and arch_set_pos_strobe() functions

- asdf.c,h: add ACTION hooks to set strobe polarity and enable/disable
autorepeat

- break out DIP switch definitions into a separate header file, included by each
keymap.  This ensures consistent DIP switch behavior across keymaps.
2020-05-15 14:42:06 -05:00
Dave
64437908f7 Remove asdf_arch.[ch], which are copied from Arch directory 2020-05-14 01:36:20 -05:00
dfnr2
dff329ea42 Delete asdf_keymap_defs.h
Not a source file.  This file is copied from keymaps directory during build.
2020-05-13 15:53:22 -05:00
Dave
cc2b86fe32 Fix virtual output actions in keymap 2020-05-13 15:51:45 -05:00
Dave
27b151964a More gitignore updates 2020-05-13 11:14:43 -05:00
Dave
1040a9b5d4 Swap /RESET and LOCAL lines to place them on the correct Sol-20 pins 2020-05-12 17:26:07 -05:00
Dave
3c1d050abb Move F_CPU to header file and clean up 2560 read_row() code 2020-05-12 17:09:49 -05:00
Dave
9b41a77ea4 Moved clock speed definition (F_CPU) to arch header file 2020-05-12 17:09:13 -05:00
Dave
1687d0ccfd Use single makefile rather than one makefile per architecture 2020-05-12 14:52:06 -05:00
Dave
97d38282ae Cleanup read_row(), and remove duplicated Makefile 2020-05-12 14:50:56 -05:00
Dave
e9630edb03 Fix atmega2560 read_row routine 2020-05-09 03:51:24 -05:00
Dave
346784bd6b Enable output hook in main() 2020-05-06 15:56:23 -05:00
Dave
de346a1e59 Merge branch 'hooks' 2020-05-05 15:10:40 -05:00
Dave
5baf20a16b Get hook functionality running and DIP switch cleanup 2020-05-05 15:05:54 -05:00
Dave
c7b8641d0d Define dipswitch row in arch-dependent module.
Because the DIP switch row is hardwired on the controller board.
2020-05-03 12:05:27 -05:00
Dave
4d8bc2a9be (Development branch) Added in code to implement fuction hooks 2020-05-01 16:39:21 -05:00
Dave
77de6c7205 Fix wrong keymap assignment for SHIFT LOCK & other cleanups 2020-04-27 17:13:53 -05:00
Dave
fe5cafd8ab Add test of activate triple assignment (no function specified) 2020-04-27 17:12:39 -05:00
Dave
ef7a7bf320 Clean up shift/shiftlock cruft
* firmware/asdf/src/asdf_modifiers.h: C
2020-04-27 17:11:36 -05:00
Dave
8e2a12b9d5 Initial cut of OSI 542 keyboard scan support 2020-04-27 17:10:13 -05:00
Dave
80cb50eb7e Clean up physical device structures
- include callback function in device table instead of separate array.
2020-04-26 14:11:55 -05:00
Dave
f2eead4db8 Updated README to reflect progress 2020-04-15 15:23:42 -05:00
Dave
ae5aa3316d Fix Makefile typo 2020-04-15 10:59:26 -05:00
Dave
e294f0164e Add architecture-dependent files for ATMega2560, adjust Makefiles 2020-04-15 09:45:07 -05:00
Dave
fc4cb08d29 Clean ups
- Added comment clarifications

- Moved repeate_state_t definition from asdf_repeat.h to asdf_repeat.c, since
  this type is only used internally.
2020-04-09 15:47:27 -05:00
Dave
47bc7c586f More comment cleanups and clarifications.
Rename some variables to clarify use
2020-04-08 15:00:43 -05:00
Dave
644efa7122 Test cleanups 2020-04-08 14:23:13 -05:00
Dave
30cd305fe6 Fix and clarify comments, add COPYING file 2020-04-08 12:41:53 -05:00
David Fenyes
b7f5f29f7b Put correct DIP switch row in sol keycap definitions for rev 2.3 interface 2020-03-21 14:47:54 -05:00
David Fenyes
e37da4e969 Reset modifier states when keymap is reset
- asdf.c: remove asdf_modifiers_init() from asdf_init().
- asdf_keymaps.c: add a call do asdf_modifiers_init()
  to asdf_keymaps_select_keymap()
2020-03-21 14:26:57 -05:00
David Fenyes
0ba921f2ce Added SOL-20 keymap
- Add Keymaps/asdf_keymap_defs_sol.h, and add the hooks in the master keymap

- asdf.h: Change start of ACTION codes to 0xA0, since SOL-20 uses codes from 0x80-0x9a

- asdf_ascii.h: Add named ASCII control codes to
2020-03-21 11:53:51 -05:00
David Fenyes
8f09246a4d Remove reference to special indicator functions (now virtual) 2020-03-20 14:43:18 -05:00
David Fenyes
dae4b8d322 Replaced the Virtual out pulse function with long and short pulse
- Replace V_PULSE with V_PULSE_LONG and V_PULSE_SHORT functions.

- replace the asdf_arch_pulse_delay() with asdf_arch_pulse_delay_short() and
asdf_arch_pulse_delay_long() functions.

- modify keymaps to use long and short pulses.

- long pulse is 50 ms.  Short pulse is 10 us.

- Added localizing prefix to keymap definitions to avoid conflicts.
2020-03-17 01:42:51 -05:00
David Fenyes
93349ed6e9 Add support for "hi-z when low" outputs
The apple 1 CLEAR input requires a high-impedance inactive state to avoid
conflict with the pin output of the 7404 at D12 (via CR4). So, to cover this
condition most generally, this patch changes the adds a Hi-Z when low physical
device for each output line, to complement the Hi-Z-when-high open collector
emulation. The nomenclature is changed from OUT*_OC (emulated open collector) to
OUT*_OPEN_HI and OUT*_OPEN_LO to indicate which condition gets the Hi-Z state.

- added the set() functions to the asdf_arch_atmega328p.[ch] files and applied
the above nomenclature.

- Added the set() functions to the asdf_physical.[ch] files and applied the
above nomenclature

- Modified the SCREEN_CLEAR device to PHYSICAL_OUT1_OPEN_LO in the apple2 and
ascii keymaps.

- Changed the RESET from PHYSICAL_OUT1_OC to PHYSICAL_OUT1_OPEN_HI in the apple2
and ascii keymaps.
2020-03-16 12:56:21 -05:00
David Fenyes
702ed71d60 add a clear-screen (ACTION_CLEAR) to the Shift-RESET combination. 2020-03-14 21:55:03 -05:00