diff --git a/firmware/asdf/src/ARCHITECTURE-keymaps.org b/firmware/asdf/src/ARCHITECTURE-keymaps.org
index 485e59c..32b49a2 100644
--- a/firmware/asdf/src/ARCHITECTURE-keymaps.org
+++ b/firmware/asdf/src/ARCHITECTURE-keymaps.org
@@ -1,15 +1,14 @@
* Keymap architecture
-** Keymap definition module
- The keymap definition module defines:
-*** The key mappings used by a keymap
-*** The virtual devices required by the keymap
- This includes definitions for LED's and I/O lines, including their initial
- states, and default I/O operations such as toggle, pulse, etc.
-*** Function hooks used by the keymap.
- Specifies which functions are used for operations such as key scanning, I/O,
- special keybindings, etc.
-
- Any special functions or logic required by the keymap are also defined and used in the module.
+** Keymap definition modules are in src/Keymaps
+** Each keymap has its own keymap setup routine
+*** void setup_mapname_keymap(void) - keymap setup function
+**** register a keycode map for each modifier combination
+***** The keycode maps are in flash (ROM)
+**** set up virtual devices for the keymap
+***** virtual device to physical device mapping
+***** associated virtual device function on activate/deactivate
+***** initial state
+**** set up function hooks used by keymap
** Keymap definition API
*** mapping keys
@@ -24,12 +23,6 @@
***** Accept a virtual device code, a physical device code, a default function, and a default initial value, and create a new entry in the virtual device table.
***** increment the virtual device table pointer and set next (last) entry to NULL
-* Eliminate keymaps table and instead have table of keymap init routines with MAX_KEYMAPS entries
-* keymap setup routine adds maps for each modifier to the keymap, now only rxcxMODIFIERS instead of rxcxmodifiersxkeymaps
-* remove the keymap index from the add_map() call.
-* select_keymap() will call setup routine for the g
-iven keymap.
-* Each keymap sets its own num_rows and num_columns, per matrix for each modifier
* DIP SWITCHES
Note that the DIP switches are keys in the key matrix, which is initialized to
diff --git a/firmware/asdf/src/asdf_keymap_setup.c.in b/firmware/asdf/src/asdf_keymap_setup.c.in
index 74565e8..a0d0be5 100644
--- a/firmware/asdf/src/asdf_keymap_setup.c.in
+++ b/firmware/asdf/src/asdf_keymap_setup.c.in
@@ -51,9 +51,7 @@
//
void asdf_keymap_setup(uint8_t index) {
switch(index) {
-@keymap_table@
- default:
- break;
+ default: @keymap_table@
}
}
@@ -76,12 +74,12 @@ void asdf_keymap_setup(uint8_t index) {
uint8_t asdf_keymap_valid(uint8_t index) {
uint8_t valid = 0;
- switch(index) {
-@keymap_valid@
- valid= 1;
+ switch(index) { @keymap_valid@
+ valid = 1;
break;
default:
+ valid = 0;
break;
}
diff --git a/firmware/asdf/src/asdf_keymap_table.c.in b/firmware/asdf/src/asdf_keymap_table.c.in
deleted file mode 100644
index a935157..0000000
--- a/firmware/asdf/src/asdf_keymap_table.c.in
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- mode: C; tab-width: 2 ; indent-tabs-mode: nil -*-
-//
-// Unified Keyboard Project
-// ASDF keyboard firmware
-//
-// asdf_keymap_table.c
-//
-// initialize keymap setup function table
-//
-// *** AUTO-generated file. DO NOT EDIT. ***
-// *** To modify template, edit $ROOT/src/Keymaps/asdf_keymap_table.c.in ***
-// *** To modify keymap list, edit $ROOT/keymap_list.cmake
-//
-// Copyright 2019 David Fenyes
-//
-// This program is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free Software
-// Foundation, either version 3 of the License, or (at your option) any later
-// version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-// details.
-//
-// You should have received a copy of the GNU General Public License along with
-// this program. If not, see .
-//
-
-#include
-
-@keymap_declarations@
-
-// PROCEDURE: asdf_keymap_setup
-//
-// INPUTS: (uint8_t) index - index of the keymap setup function to call
-// OUTPUTS: none
-////
-// DESCRIPTION: This function calls the keymap setup function specified
-// by the index.
-//
-// SIDE EFFECTS: See Description
-//
-// NOTES: This function is necessary because functions defined in external
-// modules are not considered compile-time constants by the C99 standard, so the
-// array cannot be initialized with a compile-time declaration.
-//
-// SCOPE: public
-//
-// COMPLEXITY: 1
-//
-
-void asdf_keymap_setup(uint8_t index) {
- switch(index) {
-@keymap_table@
- default:
- break;
- }
-};
-
-//-------|---------|---------+---------+---------+---------+---------+---------+
-// Above line is 80 columns, and should display completely in the editor.
-
diff --git a/firmware/asdf/src/asdf_keymap_table.h.in b/firmware/asdf/src/asdf_keymap_table.h.in
deleted file mode 100644
index 3b14739..0000000
--- a/firmware/asdf/src/asdf_keymap_table.h.in
+++ /dev/null
@@ -1,42 +0,0 @@
-// -*- mode: C; tab-width: 2 ; indent-tabs-mode: nil -*-
-//
-// Unified Keyboard Project
-// ASDF keyboard firmware
-//
-// asdf_keymap_table.c
-//
-// initialize keymap setup function table
-//
-// *** AUTO-generated file. DO NOT EDIT. ***
-// *** To modify template, edit $ROOT/src/Keymaps/asdf_keymap_table.c.in ***
-// *** To modify keymap list, edit $ROOT/keymap_list.cmake
-//
-// Copyright 2019 David Fenyes
-//
-// This program is free software: you can redistribute it and/or modify it under
-// the terms of the GNU General Public License as published by the Free Software
-// Foundation, either version 3 of the License, or (at your option) any later
-// version.
-//
-// This program is distributed in the hope that it will be useful, but WITHOUT
-// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
-// details.
-//
-// You should have received a copy of the GNU General Public License along with
-// this program. If not, see .
-//
-
-#define ASDF_NUM_KEYMAPS @num_keymaps@
-
-// PROCEDURE: asdf_keymap_setup
-// INPUTS: (uint8_t) index - index of the keymap setup function to call
-// OUTPUTS: none
-// DESCRIPTION: This function calls the keymap setup function specified
-// by the index.
-// SIDE EFFECTS: See Description
-void asdf_keymap_setup(uint8_t index);
-
-//-------|---------|---------+---------+---------+---------+---------+---------+
-// Above line is 80 columns, and should display completely in the editor.
-