- 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.
- 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.
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.
- 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.
* 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.