Commit Graph

61 Commits

Author SHA1 Message Date
Christopher Ryu
30ac997552
Add support for Franklin ACE 1000 replacement keyboard (#42)
* Initial commit.

* Add support for Franklin ACE 1000.

* Add ace1000_keyboard_test() for completeness.

* Add link to replacement keyboard.

* Add Franklin ACE 1000 replacement keyboard link.

* Add Franklin ACE 1000 keyboard.

* Activate caps-lock at powerup, and swap keymaps accordingly.

---------

Co-authored-by: Christopher RYU <software+github@disavowed.jp>
2023-03-18 19:30:04 -05:00
Dave
1e3b5d1c50 Remove unused function 2023-01-02 04:17:27 -06:00
Dave
6a3c0073e5 remove phantom include 2023-01-02 04:07:28 -06:00
Dave
f156ad9d80 removed extraneous function and source file61C0C5F1 2023-01-02 04:05:28 -06:00
Dave
62b27e0a3d fix videx keymappings fix applesoft keytest prog
- fixed the videx-like keymappings for the upper/lower keyboard
- moved @ to SHIFT-0 from CTRL-0, and put ID on CTRL-0
- bind the applesoft key test program to CTRL-3
- cram the keyboard test program into one line, to avoid adding a delay
 for BASIC parsing after the CR.
 - in main(), output only printable codes less than INVALID_CODE,
- instead of checking for code != INVALID_CODE.
2023-01-02 03:06:10 -06:00
Dave
8c8e021061 Add character test to apple keymap 2023-01-01 14:36:03 -06:00
Dave
573d6f842b Add user-bindable function to print ascii chars 2022-12-30 17:36:15 -06:00
Dave
14f7f1ed3e Added videx-style bindings to apple map
At the suggestion of @softwarejanitor, added the following ctrl codes to
upper/lower apple map:

CTRL-0: @
CTRL-1: | (vertical bar)
CTRL-2: ~ (tilde)
CTRL-6: ^ (caret)
CTRL-7: ` (grave)
CTRL-8: { (open curly brace)
CTRL-9: } (close curly brace)
CTRL--: _ (ctrl-dash -> underscore)
CTRL-,: [ (ctrl-comma -> open bracket)
CTRL-.: ] (ctrl-period -> close bracket)
CTRL-/: \ (ctrl-fwd_slash -> backslash)
2022-12-30 16:33:57 -06:00
David Fenyes
721cb6585d Add missing keymap header files 2022-02-28 20:08:38 -06:00
Dave
3d7c80916b Add sol id message to CTL-0 and bump version 2021-12-05 00:08:16 -06:00
Dave
03069fc8b5 Tie message ID strings to function keys
for classic and classic_caps keyboards.
2021-12-04 23:53:15 -06:00
Dave
68086cde31 Apple2 u/l keyboard has CAPS by default.
Start LED off, and turn on by activating CAPS
2021-12-04 23:51:58 -06:00
Dave
3a7e279453 Add ID message and keyboard test for apple2 kbds 2021-12-04 23:10:33 -06:00
Dave
9c0e9a9326 Fix Apple CAPS power LED to stay on. 2021-11-29 23:30:52 -06:00
Dave
562b859540 Add apple 2 caps, printing, bug fixes
- Added the apple 2 CAPS map

- auto-generate a function to check validity of a keymap index

- Added buffered message printing. This is different from keycode
buffering, since an extra delay is added for each message character to
allow polling hosts to keep up. Keycodes are generated at human speeds
and need no further slowdown.

- Added a message character delay to the arch-* modules

- enlarged the buffer pool, and created a buffer for messages

- bumped version number
2021-11-29 16:26:08 -06:00
Dave
233cda3e25 Add back the upper/lower Apple map
Port the old .h macro-based keymap definition to new C module based
definition.
2021-11-28 23:50:28 -06:00
Dave
17d5313fe9 Merge branch 'master' into newmaps 2021-11-28 15:48:03 -06:00
Dave
07ff09720b Fix library-related indirection bug
Accessing library functions via function pointer seems to cause a reset.
Still investigating the cause.

- compile keymaps subdir as part of main src cmakefile, rather than as a
separate library.

- rather than setup table of function pointers and using an indirection
in the main code, set up a jump table (switch).  This is cleaner.
2021-11-28 15:28:03 -06:00
Dave
3e6c82830e Update comment do reflect correct DIPswitch row 2021-11-22 16:46:18 -06:00
Dave
63805800af firmware now compiles without errors
test suite passes
have not yet tested firmware
2021-05-19 13:32:23 -05:00
Dave
8310259cc7 Progress toward building new keymap scheme with cmake
- keymap files (c,h) are in src/Keymaps
- keymap files are added to the keymap library in src/Keymaps/CMakeLists.txt
- keymaps for the build are listed, along with positions, in /keymap_lists.cmake
- cmake generates a keymap jump table from the keymap lib and list
- tests mostly passing.  Keymap structure for testing will be used as the model
  for the app keymaps.
2021-03-07 20:38:40 -06:00
Dave
8088c0e157 Convert more keymaps to new scheme (untested)
- Replace asdf_keymap_defs_xxx.h files with asdf_keymap_xxx.[c,h] modules
- add _clang_format in keymaps directory
2021-03-05 01:00:40 -06:00
Dave
01731197af Add spaces arounce concatenation operator 2020-06-17 01:03:18 -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
cc2b86fe32 Fix virtual output actions in keymap 2020-05-13 15:51:45 -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
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
644efa7122 Test cleanups 2020-04-08 14:23:13 -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
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
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
Dave
ed761974e6 Modifiers cleanup
- 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.
2020-03-14 00:11:29 -05:00
David Fenyes
bd7b2167fb Removed extraneous definitions from Apple2 keymap file. 2020-03-13 00:51:31 -05:00
David Fenyes
abc462e711 Improved comments
- Added physical PCB key mapping for reference
- Make sure CAPSLOCK LED doesn't toggle in the ALL CAPS keymaps.
2020-03-13 00:48:05 -05:00
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
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
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
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
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