]> git.donarmstrong.com Git - kiibohd-controller.git/commitdiff
Moving defaultMap.kll to scancode_map.kll (less confusing)
authorJacob Alexander <haata@kiibohd.com>
Wed, 6 Jul 2016 16:00:57 +0000 (09:00 -0700)
committerJacob Alexander <haata@kiibohd.com>
Wed, 6 Jul 2016 16:03:23 +0000 (09:03 -0700)
- Changing default name from defaultMap.kll to scancode_map.kll
- Old name of defaultMap.kll will still work (and is the final fallback)
- Updated all the main projects to use the new name
- Updated BETKB (not entirely finished, but mostly complete)
- Added sub-use of interconnect scancode cache for converters
- Added infinity_led.bash

No behaviour changes, just restructuring.

21 files changed:
Keyboards/ergodox.bash
Keyboards/infinity.bash
Keyboards/infinity_led.bash [new file with mode: 0755]
Keyboards/template.bash
Keyboards/whitefox.bash
Lib/CMake/kll.cmake
Macro/PartialMap/macro.c
Macro/PartialMap/macro.h
Scan/BETKB/scan_loop.c
Scan/BETKB/scan_loop.h
Scan/BETKB/scancode_map.kll [new file with mode: 0644]
Scan/BETKB/setup.cmake
Scan/MD1.1/defaultMap.kll [deleted file]
Scan/MD1.1/scancode_map.kll [new file with mode: 0644]
Scan/MD1/defaultMap.kll [deleted file]
Scan/MD1/scancode_map.kll [new file with mode: 0644]
Scan/MDErgo1/defaultMap.kll [deleted file]
Scan/MDErgo1/scancode_map.kll [new file with mode: 0644]
Scan/UARTConnect/connect_scan.c
Scan/WhiteFox/defaultMap.kll [deleted file]
Scan/WhiteFox/scancode_map.kll [new file with mode: 0644]

index 85f85a214b95ea3adb045891990266fdfafc141c..1865dce38390972d95fa268bd421c56d97d2761b 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # This is a build script template
 # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake)
-# Jacob Alexander 2015
+# Jacob Alexander 2015-2016
 
 
 
@@ -18,7 +18,7 @@ BuildPath="ICED-L"
 ## KLL Configuration ##
 
 # Generally shouldn't be changed, this will affect every layer
-BaseMap="defaultMap leftHand slave1 rightHand"
+BaseMap="scancode_map leftHand slave1 rightHand"
 
 # This is the default layer of the keyboard
 # NOTE: To combine kll files into a single layout, separate them by spaces
index b790dd5f9fa5c27e04e01bebc6db301484e4d40f..79cb02a4c8eb8ccee4fdb4fb67fac6134a9a54ec 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # This is a build script template
 # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake)
-# Jacob Alexander 2015
+# Jacob Alexander 2015-2016
 
 
 
@@ -16,7 +16,7 @@ BuildPath="IC60"
 ## KLL Configuration ##
 
 # Generally shouldn't be changed, this will affect every layer
-BaseMap="defaultMap"
+BaseMap="scancode_map"
 
 # This is the default layer of the keyboard
 # NOTE: To combine kll files into a single layout, separate them by spaces
diff --git a/Keyboards/infinity_led.bash b/Keyboards/infinity_led.bash
new file mode 100755 (executable)
index 0000000..c753b2f
--- /dev/null
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+# This is a build script template
+# These build scripts are just a convenience for configuring your keyboard (less daunting than CMake)
+# Jacob Alexander 2016
+
+
+
+#################
+# Configuration #
+#################
+
+# Feel free to change the variables in this section to configure your keyboard
+
+BuildPath="IC60"
+
+## KLL Configuration ##
+
+# Generally shouldn't be changed, this will affect every layer
+BaseMap="scancode_map"
+
+# This is the default layer of the keyboard
+# NOTE: To combine kll files into a single layout, separate them by spaces
+# e.g.  DefaultMap="mylayout mylayoutmod"
+DefaultMap="md1Overlay stdFuncMap"
+
+# This is where you set the additional layers
+# NOTE: Indexing starts at 1
+# NOTE: Each new layer is another array entry
+# e.g.  PartialMaps[1]="layer1 layer1mod"
+#       PartialMaps[2]="layer2"
+#       PartialMaps[3]="layer3"
+PartialMaps[1]="hhkbpro2"
+
+
+
+##########################
+# Advanced Configuration #
+##########################
+
+# Don't change the variables in this section unless you know what you're doing
+# These are useful for completely custom keyboards
+# NOTE: Changing any of these variables will require a force build to compile correctly
+
+# Keyboard Module Configuration
+ScanModule="MD1.1"
+MacroModule="PartialMap"
+OutputModule="pjrcUSB"
+DebugModule="full"
+
+# Microcontroller
+Chip="mk20dx128vlf5"
+
+# Compiler Selection
+Compiler="gcc"
+
+
+
+########################
+# Bash Library Include #
+########################
+
+# Shouldn't need to touch this section
+
+# Check if the library can be found
+if [ ! -f cmake.bash ]; then
+       echo "ERROR: Cannot find 'cmake.bash'"
+       exit 1
+fi
+
+# Load the library
+source cmake.bash
+
index c5227268362556200e38abdbe30b6983a8d73589..acbe954d8de2fe2a93e5a02d7f7dfaf4f34288e3 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # This is a build script template
 # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake)
-# Jacob Alexander 2015
+# Jacob Alexander 2015-2016
 
 
 
@@ -16,7 +16,7 @@ BuildPath="template"
 ## KLL Configuration ##
 
 # Generally shouldn't be changed, this will affect every layer
-BaseMap="defaultMap"
+BaseMap="scancode_map"
 
 # This is the default layer of the keyboard
 # NOTE: To combine kll files into a single layout, separate them by spaces
index 049986a25b1eefcc0ab95803393a9aa046e04fc1..ea324072bce06934c1a513fc05787d8c58c94406 100755 (executable)
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 # This is a build script template
 # These build scripts are just a convenience for configuring your keyboard (less daunting than CMake)
-# Jacob Alexander 2015
+# Jacob Alexander 2015-2016
 
 
 
@@ -16,7 +16,7 @@ BuildPath="WhiteFox"
 ## KLL Configuration ##
 
 # Generally shouldn't be changed, this will affect every layer
-BaseMap="defaultMap"
+BaseMap="scancode_map"
 
 # This is the default layer of the keyboard
 # NOTE: To combine kll files into a single layout, separate them by spaces
index 36802e40a9a9dce21a35e3239748d456dd4cacca..aae3d3131cfccb88ed052c12727e9febb7a42fd1 100644 (file)
@@ -57,10 +57,15 @@ set ( pathname "${PROJECT_SOURCE_DIR}/${ScanModulePath}" )
 
 string ( REPLACE " " ";" MAP_LIST ${BaseMap} ) # Change spaces to semicolons
 foreach ( MAP ${MAP_LIST} )
-       # Only check the Scan Module for BaseMap .kll files, default to defaultMap.kll
+       # Only check the Scan Module for BaseMap .kll files, default to scancode_map.kll or defaultMap.kll
        if ( NOT EXISTS ${pathname}/${MAP}.kll )
-               set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll )
-               set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll )
+               if ( EXISTS ${pathname}/scancode_map.kll )
+                       set ( BaseMap_Args ${BaseMap_Args} ${pathname}/scancode_map.kll )
+                       set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/scancode_map.kll )
+               else ()
+                       set ( BaseMap_Args ${BaseMap_Args} ${pathname}/defaultMap.kll )
+                       set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/defaultMap.kll )
+               endif ()
        elseif ( EXISTS "${pathname}/${MAP}.kll" )
                set ( BaseMap_Args ${BaseMap_Args} ${pathname}/${MAP}.kll )
                set ( KLL_DEPENDS ${KLL_DEPENDS} ${pathname}/${MAP}.kll )
index cc92442ab56acc59b52ed20acffdbe38dd1a138a..68eb42ac676104830c795b022ae4845963a3eff3 100644 (file)
@@ -125,7 +125,7 @@ extern index_uint_t macroTriggerMacroPendingList[];
 extern index_uint_t macroTriggerMacroPendingListSize;
 
 // Interconnect ScanCode Cache
-#if defined(ConnectEnabled_define)
+#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define)
 // TODO This can be shrunk by the size of the max node 0 ScanCode
 TriggerGuide macroInterconnectCache[ MaxScanCode ];
 uint8_t macroInterconnectCacheSize = 0;
@@ -473,8 +473,8 @@ nat_ptr_t *Macro_layerLookup( TriggerGuide *guide, uint8_t latch_expire )
 
 // Add an interconnect ScanCode
 // These are handled differently (less information is sent, hold/off states must be assumed)
-#if defined(ConnectEnabled_define)
-inline void Macro_interconnectAdd( void *trigger_ptr )
+#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define)
+void Macro_pressReleaseAdd( void *trigger_ptr )
 {
        TriggerGuide *trigger = (TriggerGuide*)trigger_ptr;
 
@@ -703,9 +703,11 @@ inline void Macro_process()
        if ( USBKeys_Sent != 0 )
                return;
 
+#if defined(ConnectEnabled_define) || defined(PressReleaseCache_define)
 #if defined(ConnectEnabled_define)
        // Check if there are any ScanCodes in the interconnect cache to process
        if ( Connect_master && macroInterconnectCacheSize > 0 )
+#endif
        {
                // Iterate over all the cache ScanCodes
                uint8_t currentInterconnectCacheSize = macroInterconnectCacheSize;
index 2df411e1c1914141baeaee84db67cac2a9fc45a1..3ad9e4a28d6fc5ed114982b0ef8ff1dafb0f694b 100644 (file)
@@ -28,7 +28,7 @@
 void Macro_analogState( uint8_t scanCode, uint8_t state );
 void Macro_keyState( uint8_t scanCode, uint8_t state );
 void Macro_ledState( uint8_t ledCode, uint8_t state );
-void Macro_interconnectAdd( void *trigger ); // triggers is of type TriggerGuide, void* for circular dependencies
+void Macro_pressReleaseAdd( void *trigger ); // triggers is of type TriggerGuide, void* for circular dependencies
 void Macro_process();
 void Macro_setup();
 
index 9a145949e4c2008c31f6d21c35866eb22e768201..28ce7ee78566c94247c0580a021163b3738f01e2 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012,2014 by Jacob Alexander
+/* Copyright (C) 2012,2014,2016 by Jacob Alexander
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
 #include <Lib/ScanLib.h>
 
 // Project Includes
+#include <kll.h>
+#include <kll_defs.h>
 #include <led.h>
+#include <macro.h>
 #include <print.h>
 
 // Local Includes
 
 
 
+// ----- Enums -----
+
+// Keypress States
+typedef enum KeyPosition {
+       KeyState_Off     = 0,
+       KeyState_Press   = 1,
+       KeyState_Hold    = 2,
+       KeyState_Release = 3,
+       KeyState_Invalid,
+} KeyPosition;
+
+
+
 // ----- Variables -----
 
 // Buffer used to inform the macro processing module which keys have been detected as pressed
@@ -68,18 +84,31 @@ void  removeKeyValue( uint8_t keyValue );
 // ----- Interrupt Functions -----
 
 // USART Receive Buffer Full Interrupt
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 ISR(USART1_RX_vect)
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+void uart0_status_isr()
+#endif
 {
        cli(); // Disable Interrupts
 
        uint8_t keyValue = 0x00;
        uint8_t keyState = 0x00;
 
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
        // Read the scancode packet from the USART (1st to 8th bits)
        keyValue = UDR1;
 
        // Read the release/press bit (9th bit) XXX Unnecessary, and wrong it seems, parity bit? or something else?
        keyState = UCSR1B & 0x02;
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+       // UART0_S1 must be read for the interrupt to be cleared
+       if ( UART0_S1 & UART_S1_RDRF )
+       {
+               // Only doing single byte FIFO here
+               keyValue = UART0_D;
+       }
+#endif
 
        // High bit of keyValue, also represents press/release
        keyState = keyValue & 0x80 ? 0x00 : 0x02;
@@ -93,19 +122,21 @@ ISR(USART1_RX_vect)
        {
        case 0x00: // Released
                dPrintStrs( tmpStr, "R  " ); // Debug
-
-               // Remove key from press buffer
-               removeKeyValue( keyValue & 0x7F );
                break;
 
        case 0x02: // Pressed
                dPrintStrs( tmpStr, "P " ); // Debug
-
-               // New key to process
-               processKeyValue( keyValue & 0x7F );
                break;
        }
 
+       // Add key event to macro key buffer
+       TriggerGuide guide = {
+               .type     = 0x00,
+               .state    = keyState == 0x02 ? 0x01 : 0x03,
+               .scanCode = keyValue & 0x7F,
+       };
+       Macro_pressReleaseAdd( &guide );
+
        sei(); // Re-enable Interrupts
 }
 
@@ -114,11 +145,12 @@ ISR(USART1_RX_vect)
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 {
        // Setup the the USART interface for keyboard data input
        // NOTE: The input data signal needs to be inverted for the Teensy USART to properly work
-       
+
        // Setup baud rate
        // 16 MHz / ( 16 * Baud ) = UBRR
        // Baud <- 0.823284 ms per bit, thus 1000 / 0.823284 = 1214.65004 -> 823.2824
@@ -148,122 +180,133 @@ inline void scan_setup()
        // Reset the keyboard before scanning, we might be in a wierd state
        scan_resetKeyboard();
 }
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+{
+       // Setup the the UART interface for keyboard data input
+       SIM_SCGC4 |= SIM_SCGC4_UART0; // Disable clock gating
+
+       // Pin Setup for UART0
+       PORTB_PCR16 = PORT_PCR_PE | PORT_PCR_PS | PORT_PCR_PFE | PORT_PCR_MUX(3); // RX Pin
+       PORTB_PCR17 = PORT_PCR_DSE | PORT_PCR_SRE | PORT_PCR_MUX(3); // TX Pin
+
+       // Setup baud rate - 1205 Baud
+       // 48 MHz / ( 16 * Baud ) = BDH/L
+       // Baud: 1215 -> 48 MHz / ( 16 * 1215 ) = 2469.1358
+       // Thus baud setting = 2469
+       // NOTE: If finer baud adjustment is needed see UARTx_C4 -> BRFA in the datasheet
+       uint16_t baud = 2469; // Max setting of 8191
+       UART0_BDH = (uint8_t)(baud >> 8);
+       UART0_BDL = (uint8_t)baud;
+
+       // 8 bit, Even Parity, Idle Character bit after stop
+       // NOTE: For 8 bit with Parity you must enable 9 bit transmission (pg. 1065)
+       //       You only need to use UART0_D for 8 bit reading/writing though
+       // UART_C1_M UART_C1_PE UART_C1_PT UART_C1_ILT
+       UART0_C1 = UART_C1_M | UART_C1_PE | UART_C1_ILT;
+
+       // Number of bytes in FIFO before TX Interrupt
+       UART0_TWFIFO = 1;
+
+       // Number of bytes in FIFO before RX Interrupt
+       UART0_RWFIFO = 1;
+
+       // TX FIFO Disabled, TX FIFO Size 1 (Max 8 datawords), RX FIFO Enabled, RX FIFO Size 1 (Max 8 datawords)
+       // TX/RX FIFO Size:
+       //  0x0 - 1 dataword
+       //  0x1 - 4 dataword
+       //  0x2 - 8 dataword
+       //UART0_PFIFO = UART_PFIFO_TXFE | /*TXFIFOSIZE*/ (0x0 << 4) | UART_PFIFO_RXFE | /*RXFIFOSIZE*/ (0x0);
+
+       // Reciever Inversion Disabled, LSBF
+       // UART_S2_RXINV UART_S2_MSBF
+       UART0_S2 |= 0x00;
+
+       // Transmit Inversion Disabled
+       // UART_C3_TXINV
+       UART0_C3 |= 0x00;
+
+       // TX Disabled, RX Enabled, RX Interrupt Enabled
+       // UART_C2_TE UART_C2_RE UART_C2_RIE
+       UART0_C2 = UART_C2_RE | UART_C2_RIE | UART_C2_TE;
+
+       // Add interrupt to the vector table
+       NVIC_ENABLE_IRQ( IRQ_UART0_STATUS );
+
+       // Reset the keyboard before scanning, we might be in a wierd state
+       Scan_resetKeyboard();
+}
+#endif
 
 
 // Main Detection Loop
 // Not needed for the BETKB, this is just a busy loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
        return 0;
 }
 
-void processKeyValue( uint8_t keyValue )
-{
-       // Interpret scan code
-       switch ( keyValue )
-       {
-       case 0x00: // Break code from input?
-               break;
-       default:
-               // Make sure the key isn't already in the buffer
-               for ( uint8_t c = 0; c < KeyIndex_BufferUsed + 1; c++ )
-               {
-                       // Key isn't in the buffer yet
-                       if ( c == KeyIndex_BufferUsed )
-                       {
-                               Macro_bufferAdd( keyValue );
-
-                               // Only send data if enabled
-                               if ( KeyIndex_Add_InputSignal )
-                                       scan_sendData( KeyIndex_Add_InputSignal );
-                               break;
-                       }
-
-                       // Key already in the buffer
-                       if ( KeyIndex_Buffer[c] == keyValue )
-                               break;
-               }
-               break;
-       }
-}
-
-void removeKeyValue( uint8_t keyValue )
-{
-       // Check for the released key, and shift the other keys lower on the buffer
-       uint8_t c;
-       for ( c = 0; c < KeyIndex_BufferUsed; c++ )
-       {
-               // Key to release found
-               if ( KeyIndex_Buffer[c] == keyValue )
-               {
-                       // Shift keys from c position
-                       for ( uint8_t k = c; k < KeyIndex_BufferUsed - 1; k++ )
-                               KeyIndex_Buffer[k] = KeyIndex_Buffer[k + 1];
-
-                       // Decrement Buffer
-                       KeyIndex_BufferUsed--;
-
-                       break;
-               }
-       }
-
-       // Error case (no key to release)
-       if ( c == KeyIndex_BufferUsed + 1 )
-       {
-               errorLED( 1 );
-               char tmpStr[6];
-               hexToStr( keyValue, tmpStr );
-               erro_dPrint( "Could not find key to release: ", tmpStr );
-       }
-}
-
 // Send data
 uint8_t scan_sendData( uint8_t dataPayload )
 {
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
        // Enable the USART Transmitter
        UCSR1B |=  (1 << 3);
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+#endif
 
        // Debug
        char tmpStr[6];
        hexToStr( dataPayload, tmpStr );
        info_dPrint( "Sending - ", tmpStr );
 
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
        UDR1 = dataPayload;
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+       UART0_D = dataPayload;
+#endif
 
        // Wait for the payload
        _delay_us( 800 );
 
+#if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
        // Disable the USART Transmitter
        UCSR1B &= ~(1 << 3);
+#elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
+#endif
 
        return 0;
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void Scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithMacro( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithOutput( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the BETKB
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard()
 {
 }
 
 // NOTE: Does nothing with the BETKB
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard()
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard()
 {
        // Not a calculated valued...
        _delay_ms( 50 );
 }
 
+// NOTE: Does nothing with the BETKB
+void Scan_currentChange( unsigned int current )
+{
+}
+
index fd5bfdcdaf1fdd4900682a7f3d5b29fb2d7359b4..325d3cb7972d46a7efd96f593338088067b3c344 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2012,2014-2015 by Jacob Alexander
+/* Copyright (C) 2012,2014-2016 by Jacob Alexander
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -48,16 +48,17 @@ extern volatile     uint8_t KeyIndex_Add_InputSignal;
 // ----- Functions -----
 
 // Functions used by main.c
-void Scan_setup( void );
-uint8_t Scan_loop( void );
+void Scan_setup();
+uint8_t Scan_loop();
 
 
 // Functions available to macro.c
 uint8_t Scan_sendData( uint8_t dataPayload );
 
-void Scan_finishedWithBuffer( uint8_t sentKeys );
-void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void Scan_lockKeyboard( void );
-void Scan_unlockKeyboard( void );
-void Scan_resetKeyboard( void );
+void Scan_finishedWithMacro( uint8_t sentKeys );
+void Scan_finishedWithOutput( uint8_t sentKeys );
+void Scan_lockKeyboard();
+void Scan_unlockKeyboard();
+void Scan_resetKeyboard();
+void Scan_currentChange( unsigned int current );
 
diff --git a/Scan/BETKB/scancode_map.kll b/Scan/BETKB/scancode_map.kll
new file mode 100644 (file)
index 0000000..a497d7b
--- /dev/null
@@ -0,0 +1,99 @@
+Name = BETKB;
+Version = 0.1;
+Author = "HaaTa (Jacob Alexander) 2016";
+KLL = 0.3d;
+
+# Modified Date
+Date = 2016-07-06;
+
+# Options
+
+# Press/Release Cache
+PressReleaseCache => PressReleaseCache_define;
+PressReleaseCache = 1;
+
+# TODO - Not finished
+S0x08 : U"Backspace";
+S0x09 : U"Tab";
+
+S0x1B : U"Esc";
+
+S0x20 : U"Space";
+
+S0x27 : U"Quote";
+
+S0x2C : U"Comma";
+S0x2D : U"Minus";
+S0x2E : U"Period";
+S0x2F : U"Slash";
+S0x30 : U"0";
+S0x31 : U"1";
+S0x32 : U"2";
+S0x33 : U"3";
+S0x34 : U"4";
+S0x35 : U"5";
+S0x36 : U"6";
+S0x37 : U"7";
+S0x38 : U"8";
+S0x39 : U"9";
+S0x3B : U"Semicolon";
+S0x3D : U"Equal";
+S0x5B : U"LBracket";
+S0x5C : U"Backslash";
+S0x5D : U"RBracket";
+
+S0x60 : U"Backtick";
+S0x61 : U"A";
+S0x62 : U"B";
+S0x63 : U"C";
+S0x64 : U"D";
+S0x65 : U"E";
+S0x66 : U"F";
+S0x67 : U"G";
+S0x68 : U"H";
+S0x69 : U"I";
+S0x6A : U"J";
+S0x6B : U"K";
+S0x6C : U"L";
+S0x6D : U"M";
+S0x6E : U"N";
+S0x6F : U"O";
+S0x70 : U"P";
+S0x71 : U"Q";
+S0x72 : U"R";
+S0x73 : U"S";
+S0x74 : U"T";
+S0x75 : U"U";
+S0x76 : U"V";
+S0x77 : U"W";
+S0x78 : U"X";
+S0x79 : U"Y";
+S0x7A : U"Z";
+
+S0x7F : U"Delete";
+
+S0xB1 : U"P0";
+S0xB2 : U"P.";
+
+S0xC0 : U"P1";
+S0xC1 : U"P2";
+S0xC2 : U"P3";
+S0xC3 : U"PEnter";
+
+S0xD0 : U"P4";
+S0xD1 : U"P5";
+S0xD2 : U"P6";
+S0xD3 : U"P,";
+
+S0xE1 : U"P7";
+S0xE2 : U"P8";
+S0xE3 : U"P9";
+S0xE4 : U"P-";
+
+S0xF1 : U"Up";
+S0xF2 : U"Down";
+S0xF3 : U"Left";
+S0xF4 : U"Right";
+S0xF5 : U"LShift";
+S0xF6 : U"Ctrl";
+
index ffac8aa59dc8e641e3641ef25d4164632f936a44..447c6b8c54f3f16b38a1e7a41405dc97be016de3 100644 (file)
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014,2016 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -13,7 +13,7 @@
 # Module C files
 #
 
-set( SCAN_SRCS
+set( Module_SRCS
        scan_loop.c
 )
 
@@ -26,7 +26,8 @@ set( SCAN_SRCS
 ###
 # Compiler Family Compatibility
 #
-set( ScanModuleCompatibility
+set( ModuleCompatibility
+       arm
        avr
 )
 
diff --git a/Scan/MD1.1/defaultMap.kll b/Scan/MD1.1/defaultMap.kll
deleted file mode 100644 (file)
index f60a4ed..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-Name = MD1.1;
-Version = 0.3d;
-Author = "HaaTa (Jacob Alexander) 2014-2016";
-KLL = 0.3c;
-
-# Modified Date
-Date = 2016-02-06;
-
-
-S0x00 : U"Esc";
-S0x01 : U"1";
-S0x02 : U"2";
-S0x03 : U"3";
-S0x04 : U"4";
-S0x05 : U"5";
-S0x06 : U"6";
-S0x07 : U"7";
-S0x08 : U"8";
-S0x09 : U"9";
-S0x0A : U"0";
-S0x0B : U"Minus";
-S0x0C : U"Equal";
-S0x0D : U"Backslash";
-S0x0E : U"Backtick";
-S0x0F : U"Tab";
-S0x10 : U"Q";
-S0x11 : U"W";
-S0x12 : U"E";
-S0x13 : U"R";
-S0x14 : U"T";
-S0x15 : U"Y";
-S0x16 : U"U";
-S0x17 : U"I";
-S0x18 : U"O";
-S0x19 : U"P";
-S0x1A : U"LBrace";
-S0x1B : U"RBrace";
-S0x1C : U"Backspace";
-S0x1D : U"Ctrl";
-S0x1E : U"A";
-S0x1F : U"S";
-S0x20 : U"D";
-S0x21 : U"F";
-S0x22 : U"G";
-S0x23 : U"H";
-S0x24 : U"J";
-S0x25 : U"K";
-S0x26 : U"L";
-S0x27 : U"Semicolon";
-S0x28 : U"Quote";
-S0x29 : U"Enter";
-S0x2A : U"LShift";
-S0x2B : U"Z";
-S0x2C : U"X";
-S0x2D : U"C";
-S0x2E : U"V";
-S0x2F : U"B";
-S0x30 : U"N";
-S0x31 : U"M";
-S0x32 : U"Comma";
-S0x33 : U"Period";
-S0x34 : U"Slash";
-S0x35 : U"RShift";
-S0x36 : U"Function1"; # Fun key
-S0x37 : U"Function2"; # Left Blank Key
-S0x38 : U"LAlt";
-S0x39 : U"LGui";
-S0x3A : U"Space";
-S0x3B : U"RGui";
-S0x3C : U"RAlt";
-S0x3D : U"Function3"; # Right Blank Key 1
-S0x3E : U"Function4"; # Right Blank Key 2
-
-
-# Custom Action Examples
-
-# Example capability, prints to cli
-action1 => CustomAction_action1_capability(); # No arguments
-
-# Blocks given USB Code, must be used with blockLink
-# Simple example, supports only blocking a single key at a time
-# Keys must be specified using numbers see Macro/PartialMap/usb_hid.h
-blockHold => CustomAction_blockHold_capability( usbCode : 1 ); # Single 8-bit argument
-blockKey => CustomAction_blockKey_capability( usbCode : 1 );
-
-
-
-# Defines available to the MD1_1 Scan Module
-
-# LED Default Enable Mask Override
-#
-# Each LED is represented by a single bit
-# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
-ISSILedMask1 = "
-       0xFF, 0x00, /* C1-1 -> C1-16 */
-       0xFF, 0x00, /* C2-1 -> C2-16 */
-       0xFF, 0x00, /* C3-1 -> C3-16 */
-       0xFF, 0x00, /* C4-1 -> C4-16 */
-       0xFF, 0x00, /* C5-1 -> C5-16 */
-       0xFF, 0x00, /* C6-1 -> C6-16 */
-       0xFF, 0x00, /* C7-1 -> C7-16 */
-       0x7F, 0x00, /* C8-1 -> C8-16 */
-       0x00, 0x00, /* C9-1 -> C9-16 */
-";
-
-# LED Brightness Override
-#
-# Each LED channel supports 256 levels (8-bit control)
-# By default, LEDs are set to 0 brightness
-#ISSILedBrightness1 = "
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
-#";
-
-# Full brightness example
-ISSILedBrightness1 = "
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
-";
-
diff --git a/Scan/MD1.1/scancode_map.kll b/Scan/MD1.1/scancode_map.kll
new file mode 100644 (file)
index 0000000..f60a4ed
--- /dev/null
@@ -0,0 +1,134 @@
+Name = MD1.1;
+Version = 0.3d;
+Author = "HaaTa (Jacob Alexander) 2014-2016";
+KLL = 0.3c;
+
+# Modified Date
+Date = 2016-02-06;
+
+
+S0x00 : U"Esc";
+S0x01 : U"1";
+S0x02 : U"2";
+S0x03 : U"3";
+S0x04 : U"4";
+S0x05 : U"5";
+S0x06 : U"6";
+S0x07 : U"7";
+S0x08 : U"8";
+S0x09 : U"9";
+S0x0A : U"0";
+S0x0B : U"Minus";
+S0x0C : U"Equal";
+S0x0D : U"Backslash";
+S0x0E : U"Backtick";
+S0x0F : U"Tab";
+S0x10 : U"Q";
+S0x11 : U"W";
+S0x12 : U"E";
+S0x13 : U"R";
+S0x14 : U"T";
+S0x15 : U"Y";
+S0x16 : U"U";
+S0x17 : U"I";
+S0x18 : U"O";
+S0x19 : U"P";
+S0x1A : U"LBrace";
+S0x1B : U"RBrace";
+S0x1C : U"Backspace";
+S0x1D : U"Ctrl";
+S0x1E : U"A";
+S0x1F : U"S";
+S0x20 : U"D";
+S0x21 : U"F";
+S0x22 : U"G";
+S0x23 : U"H";
+S0x24 : U"J";
+S0x25 : U"K";
+S0x26 : U"L";
+S0x27 : U"Semicolon";
+S0x28 : U"Quote";
+S0x29 : U"Enter";
+S0x2A : U"LShift";
+S0x2B : U"Z";
+S0x2C : U"X";
+S0x2D : U"C";
+S0x2E : U"V";
+S0x2F : U"B";
+S0x30 : U"N";
+S0x31 : U"M";
+S0x32 : U"Comma";
+S0x33 : U"Period";
+S0x34 : U"Slash";
+S0x35 : U"RShift";
+S0x36 : U"Function1"; # Fun key
+S0x37 : U"Function2"; # Left Blank Key
+S0x38 : U"LAlt";
+S0x39 : U"LGui";
+S0x3A : U"Space";
+S0x3B : U"RGui";
+S0x3C : U"RAlt";
+S0x3D : U"Function3"; # Right Blank Key 1
+S0x3E : U"Function4"; # Right Blank Key 2
+
+
+# Custom Action Examples
+
+# Example capability, prints to cli
+action1 => CustomAction_action1_capability(); # No arguments
+
+# Blocks given USB Code, must be used with blockLink
+# Simple example, supports only blocking a single key at a time
+# Keys must be specified using numbers see Macro/PartialMap/usb_hid.h
+blockHold => CustomAction_blockHold_capability( usbCode : 1 ); # Single 8-bit argument
+blockKey => CustomAction_blockKey_capability( usbCode : 1 );
+
+
+
+# Defines available to the MD1_1 Scan Module
+
+# LED Default Enable Mask Override
+#
+# Each LED is represented by a single bit
+# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
+ISSILedMask1 = "
+       0xFF, 0x00, /* C1-1 -> C1-16 */
+       0xFF, 0x00, /* C2-1 -> C2-16 */
+       0xFF, 0x00, /* C3-1 -> C3-16 */
+       0xFF, 0x00, /* C4-1 -> C4-16 */
+       0xFF, 0x00, /* C5-1 -> C5-16 */
+       0xFF, 0x00, /* C6-1 -> C6-16 */
+       0xFF, 0x00, /* C7-1 -> C7-16 */
+       0x7F, 0x00, /* C8-1 -> C8-16 */
+       0x00, 0x00, /* C9-1 -> C9-16 */
+";
+
+# LED Brightness Override
+#
+# Each LED channel supports 256 levels (8-bit control)
+# By default, LEDs are set to 0 brightness
+#ISSILedBrightness1 = "
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
+#";
+
+# Full brightness example
+ISSILedBrightness1 = "
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
+";
+
diff --git a/Scan/MD1/defaultMap.kll b/Scan/MD1/defaultMap.kll
deleted file mode 100644 (file)
index b2eb8e5..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-Name = MD1;
-Version = 0.3;
-Author = "HaaTa (Jacob Alexander) 2014-2015";
-KLL = 0.3c;
-
-# Modified Date
-Date = 2015-08-16;
-
-
-S0x00 : U"Esc";
-S0x01 : U"1";
-S0x02 : U"2";
-S0x03 : U"3";
-S0x04 : U"4";
-S0x05 : U"5";
-S0x06 : U"6";
-S0x07 : U"7";
-S0x08 : U"8";
-S0x09 : U"9";
-S0x0A : U"0";
-S0x0B : U"Minus";
-S0x0C : U"Equal";
-S0x0D : U"Backslash";
-S0x0E : U"Backtick";
-S0x0F : U"Tab";
-S0x10 : U"Q";
-S0x11 : U"W";
-S0x12 : U"E";
-S0x13 : U"R";
-S0x14 : U"T";
-S0x15 : U"Y";
-S0x16 : U"U";
-S0x17 : U"I";
-S0x18 : U"O";
-S0x19 : U"P";
-S0x1A : U"LBrace";
-S0x1B : U"RBrace";
-S0x1C : U"Backspace";
-S0x1D : U"Ctrl";
-S0x1E : U"A";
-S0x1F : U"S";
-S0x20 : U"D";
-S0x21 : U"F";
-S0x22 : U"G";
-S0x23 : U"H";
-S0x24 : U"J";
-S0x25 : U"K";
-S0x26 : U"L";
-S0x27 : U"Semicolon";
-S0x28 : U"Quote";
-S0x29 : U"Enter";
-S0x2A : U"LShift";
-S0x2B : U"Z";
-S0x2C : U"X";
-S0x2D : U"C";
-S0x2E : U"V";
-S0x2F : U"B";
-S0x30 : U"N";
-S0x31 : U"M";
-S0x32 : U"Comma";
-S0x33 : U"Period";
-S0x34 : U"Slash";
-S0x35 : U"RShift";
-S0x36 : U"Function1"; # Fun key
-S0x37 : U"Function2"; # Left Blank Key
-S0x38 : U"LAlt";
-S0x39 : U"LGui";
-S0x3A : U"Space";
-S0x3B : U"RGui";
-S0x3C : U"RAlt";
-S0x3D : U"Function3"; # Right Blank Key 1
-S0x3E : U"Function4"; # Right Blank Key 2
-
-
-# Custom Action Examples
-
-# Example capability, prints to cli
-action1 => CustomAction_action1_capability(); # No arguments
-
-# Blocks given USB Code, must be used with blockLink
-# Simple example, supports only blocking a single key at a time
-# Keys must be specified using numbers see Macro/PartialMap/usb_hid.h
-blockHold => CustomAction_blockHold_capability( usbCode : 1 ); # Single 8-bit argument
-blockKey => CustomAction_blockKey_capability( usbCode : 1 );
-
diff --git a/Scan/MD1/scancode_map.kll b/Scan/MD1/scancode_map.kll
new file mode 100644 (file)
index 0000000..b2eb8e5
--- /dev/null
@@ -0,0 +1,85 @@
+Name = MD1;
+Version = 0.3;
+Author = "HaaTa (Jacob Alexander) 2014-2015";
+KLL = 0.3c;
+
+# Modified Date
+Date = 2015-08-16;
+
+
+S0x00 : U"Esc";
+S0x01 : U"1";
+S0x02 : U"2";
+S0x03 : U"3";
+S0x04 : U"4";
+S0x05 : U"5";
+S0x06 : U"6";
+S0x07 : U"7";
+S0x08 : U"8";
+S0x09 : U"9";
+S0x0A : U"0";
+S0x0B : U"Minus";
+S0x0C : U"Equal";
+S0x0D : U"Backslash";
+S0x0E : U"Backtick";
+S0x0F : U"Tab";
+S0x10 : U"Q";
+S0x11 : U"W";
+S0x12 : U"E";
+S0x13 : U"R";
+S0x14 : U"T";
+S0x15 : U"Y";
+S0x16 : U"U";
+S0x17 : U"I";
+S0x18 : U"O";
+S0x19 : U"P";
+S0x1A : U"LBrace";
+S0x1B : U"RBrace";
+S0x1C : U"Backspace";
+S0x1D : U"Ctrl";
+S0x1E : U"A";
+S0x1F : U"S";
+S0x20 : U"D";
+S0x21 : U"F";
+S0x22 : U"G";
+S0x23 : U"H";
+S0x24 : U"J";
+S0x25 : U"K";
+S0x26 : U"L";
+S0x27 : U"Semicolon";
+S0x28 : U"Quote";
+S0x29 : U"Enter";
+S0x2A : U"LShift";
+S0x2B : U"Z";
+S0x2C : U"X";
+S0x2D : U"C";
+S0x2E : U"V";
+S0x2F : U"B";
+S0x30 : U"N";
+S0x31 : U"M";
+S0x32 : U"Comma";
+S0x33 : U"Period";
+S0x34 : U"Slash";
+S0x35 : U"RShift";
+S0x36 : U"Function1"; # Fun key
+S0x37 : U"Function2"; # Left Blank Key
+S0x38 : U"LAlt";
+S0x39 : U"LGui";
+S0x3A : U"Space";
+S0x3B : U"RGui";
+S0x3C : U"RAlt";
+S0x3D : U"Function3"; # Right Blank Key 1
+S0x3E : U"Function4"; # Right Blank Key 2
+
+
+# Custom Action Examples
+
+# Example capability, prints to cli
+action1 => CustomAction_action1_capability(); # No arguments
+
+# Blocks given USB Code, must be used with blockLink
+# Simple example, supports only blocking a single key at a time
+# Keys must be specified using numbers see Macro/PartialMap/usb_hid.h
+blockHold => CustomAction_blockHold_capability( usbCode : 1 ); # Single 8-bit argument
+blockKey => CustomAction_blockKey_capability( usbCode : 1 );
+
diff --git a/Scan/MDErgo1/defaultMap.kll b/Scan/MDErgo1/defaultMap.kll
deleted file mode 100644 (file)
index 1f96cb5..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-Name = MDErgo1;
-Version = 0.2;
-Author = "HaaTa (Jacob Alexander) 2014-2015";
-KLL = 0.3c;
-
-# Modified Date
-Date = 2015-08-15;
-
-########
-# NOTE #
-########
-
-# Default ScanCode mappings are in rightHand.kll and leftHand.kll
-# To change which node you are refering to, set the ConnectId variable
-# i.e.
-# ConnectId = 0;
-# S0x02 : U"A"; # Sets scan code 0x02 on keyboard connected to USB
-# ConnectId = 1;
-# S0x02 : U"B"; # Sets scan code 0x02 on the first slave node
-#
-# ConnectId may be set in the previously parsed kll file
-# In general you shouldn't have to worry about setting ConnectId unless you want a single configuration file
-
-
-#
-# Defines available to the MDErgo1 Scan Module
-#
-
-# LED Default Enable Mask Override
-#
-# Each LED is represented by a single bit
-# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
-ISSILedMask1 = "
-       0xFF, 0x00, /* C1-1 -> C1-16 */
-       0xFF, 0x00, /* C2-1 -> C2-16 */
-       0xFF, 0x00, /* C3-1 -> C3-16 */
-       0xFF, 0x00, /* C4-1 -> C4-16 */
-       0x3F, 0x00, /* C5-1 -> C5-16 */
-       0x00, 0x00, /* C6-1 -> C6-16 */
-       0x00, 0x00, /* C7-1 -> C7-16 */
-       0x00, 0x00, /* C8-1 -> C8-16 */
-       0x00, 0x00, /* C9-1 -> C9-16 */
-";
-
-# LED Brightness Override
-#
-# Each LED channel supports 256 levels (8-bit control)
-ISSILedBrightness1 = "
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
-";
-
-# LCD Backlight Channel Brightness Override
-# There are 3 channels, RGB
-# In order to get other colors you must mix the 3 colors
-# Each channel is a 16-bit register (65536 levels)
-# Technically, this means, the backlight is a 48-bit RGB pixel
-# In practice, it may be difficult to get color consistency at times if too bright or too dim
-#
-# Defaults to 6% brightness, white
-STLcdBacklightRed   = 0x0FFF;
-STLcdBacklightGreen = 0x0FFF;
-STLcdBacklightBlue  = 0x0FFF;
-
-# LCD Image Override
-#
-# The easiest way to generate this data is using the bitmap2Struct.py script in the STLcd folder
-# It will output the necessary uint8_t array to set here
-#
-STLcdDefaultImage = "
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-";
-
diff --git a/Scan/MDErgo1/scancode_map.kll b/Scan/MDErgo1/scancode_map.kll
new file mode 100644 (file)
index 0000000..1f96cb5
--- /dev/null
@@ -0,0 +1,83 @@
+Name = MDErgo1;
+Version = 0.2;
+Author = "HaaTa (Jacob Alexander) 2014-2015";
+KLL = 0.3c;
+
+# Modified Date
+Date = 2015-08-15;
+
+########
+# NOTE #
+########
+
+# Default ScanCode mappings are in rightHand.kll and leftHand.kll
+# To change which node you are refering to, set the ConnectId variable
+# i.e.
+# ConnectId = 0;
+# S0x02 : U"A"; # Sets scan code 0x02 on keyboard connected to USB
+# ConnectId = 1;
+# S0x02 : U"B"; # Sets scan code 0x02 on the first slave node
+#
+# ConnectId may be set in the previously parsed kll file
+# In general you shouldn't have to worry about setting ConnectId unless you want a single configuration file
+
+
+#
+# Defines available to the MDErgo1 Scan Module
+#
+
+# LED Default Enable Mask Override
+#
+# Each LED is represented by a single bit
+# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
+ISSILedMask1 = "
+       0xFF, 0x00, /* C1-1 -> C1-16 */
+       0xFF, 0x00, /* C2-1 -> C2-16 */
+       0xFF, 0x00, /* C3-1 -> C3-16 */
+       0xFF, 0x00, /* C4-1 -> C4-16 */
+       0x3F, 0x00, /* C5-1 -> C5-16 */
+       0x00, 0x00, /* C6-1 -> C6-16 */
+       0x00, 0x00, /* C7-1 -> C7-16 */
+       0x00, 0x00, /* C8-1 -> C8-16 */
+       0x00, 0x00, /* C9-1 -> C9-16 */
+";
+
+# LED Brightness Override
+#
+# Each LED channel supports 256 levels (8-bit control)
+ISSILedBrightness1 = "
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
+";
+
+# LCD Backlight Channel Brightness Override
+# There are 3 channels, RGB
+# In order to get other colors you must mix the 3 colors
+# Each channel is a 16-bit register (65536 levels)
+# Technically, this means, the backlight is a 48-bit RGB pixel
+# In practice, it may be difficult to get color consistency at times if too bright or too dim
+#
+# Defaults to 6% brightness, white
+STLcdBacklightRed   = 0x0FFF;
+STLcdBacklightGreen = 0x0FFF;
+STLcdBacklightBlue  = 0x0FFF;
+
+# LCD Image Override
+#
+# The easiest way to generate this data is using the bitmap2Struct.py script in the STLcd folder
+# It will output the necessary uint8_t array to set here
+#
+STLcdDefaultImage = "
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+";
+
index 0365e5b0dd704d31c58225cd828ceac4ad5129cb..8f6d20a918416223e1dd68279fea5f2a5914f181 100644 (file)
@@ -688,7 +688,7 @@ uint8_t Connect_receive_ScanCode( uint8_t byte, uint16_t *pending_bytes, uint8_t
                        }
 
                        // Send ScanCode to macro module
-                       Macro_interconnectAdd( &Connect_receive_ScanCodeBuffer );
+                       Macro_pressReleaseAdd( &Connect_receive_ScanCodeBuffer );
                }
 
                break;
diff --git a/Scan/WhiteFox/defaultMap.kll b/Scan/WhiteFox/defaultMap.kll
deleted file mode 100644 (file)
index 037319b..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-Name = WhiteFox;
-Version = 0.2;
-Author = "HaaTa (Jacob Alexander) 2015";
-KLL = 0.3c;
-
-# Modified Date
-Date = 2015-08-16;
-
-
-S0x00 : U"Esc";
-S0x01 : U"1";
-S0x02 : U"2";
-S0x03 : U"3";
-S0x04 : U"4";
-S0x05 : U"5";
-S0x06 : U"6";
-S0x07 : U"7";
-S0x08 : U"8";
-S0x09 : U"9";
-S0x0A : U"0";
-S0x0B : U"Minus";
-S0x0C : U"Equal";
-S0x0D : U"Hash";
-S0x0E : U"Backspace";
-S0x0F : U"BackTick";
-S0x10 : U"Tab";
-S0x11 : U"Q";
-S0x12 : U"W";
-S0x13 : U"E";
-S0x14 : U"R";
-S0x15 : U"T";
-S0x16 : U"Y";
-S0x17 : U"U";
-S0x18 : U"I";
-S0x19 : U"O";
-S0x1A : U"P";
-S0x1B : U"LBrace";
-S0x1C : U"RBrace";
-S0x1D : U"Backslash";
-S0x1E : U"Delete";
-S0x1F : U"CapsLock";
-S0x20 : U"A";
-S0x21 : U"S";
-S0x22 : U"D";
-S0x23 : U"F";
-S0x24 : U"G";
-S0x25 : U"H";
-S0x26 : U"J";
-S0x27 : U"K";
-S0x28 : U"L";
-S0x29 : U"Semicolon";
-S0x2A : U"Quote";
-S0x2B : U"App";
-S0x2C : U"Enter";
-S0x2D : U"PageUp";
-S0x2E : U"LShift";
-S0x2F : U"ISO/";
-S0x30 : U"Z";
-S0x31 : U"X";
-S0x32 : U"C";
-S0x33 : U"V";
-S0x34 : U"B";
-S0x35 : U"N";
-S0x36 : U"M";
-S0x37 : U"Comma";
-S0x38 : U"Period";
-S0x39 : U"Slash";
-S0x3A : U"RShift";
-S0x3B : U"Up";
-S0x3C : U"PageDown";
-S0x3D : U"Ctrl";
-S0x3E : U"Function1";
-S0x3F : U"LAlt";
-S0x40 : U"Space";
-S0x41 : U"RAlt";
-S0x42 : U"Gui";
-S0x43 : U"Menu";
-S0x44 : U"Left";
-S0x45 : U"Down";
-S0x46 : U"Right";
-
-
-# Defines available to the WhiteFox Scan Module
-
-# LED Default Enable Mask Override
-#
-# Each LED is represented by a single bit
-# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
-ISSILedMask1 = "
-       0xFF, 0x00, /* C1-1 -> C1-16 */
-       0xFF, 0x00, /* C2-1 -> C2-16 */
-       0xFF, 0x00, /* C3-1 -> C3-16 */
-       0xFF, 0x00, /* C4-1 -> C4-16 */
-       0xFF, 0x00, /* C5-1 -> C5-16 */
-       0xFF, 0x00, /* C6-1 -> C6-16 */
-       0xFF, 0x00, /* C7-1 -> C7-16 */
-       0xFF, 0x00, /* C8-1 -> C8-16 */
-       0xFF, 0x00, /* C9-1 -> C9-16 */
-";
-
-# LED Brightness Override
-#
-# Each LED channel supports 256 levels (8-bit control)
-# By default, LEDs are set to 0 brightness
-#ISSILedBrightness1 = "
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
-#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
-#";
-
-# Full brightness example
-ISSILedBrightness1 = "
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
-";
-
diff --git a/Scan/WhiteFox/scancode_map.kll b/Scan/WhiteFox/scancode_map.kll
new file mode 100644 (file)
index 0000000..037319b
--- /dev/null
@@ -0,0 +1,129 @@
+Name = WhiteFox;
+Version = 0.2;
+Author = "HaaTa (Jacob Alexander) 2015";
+KLL = 0.3c;
+
+# Modified Date
+Date = 2015-08-16;
+
+
+S0x00 : U"Esc";
+S0x01 : U"1";
+S0x02 : U"2";
+S0x03 : U"3";
+S0x04 : U"4";
+S0x05 : U"5";
+S0x06 : U"6";
+S0x07 : U"7";
+S0x08 : U"8";
+S0x09 : U"9";
+S0x0A : U"0";
+S0x0B : U"Minus";
+S0x0C : U"Equal";
+S0x0D : U"Hash";
+S0x0E : U"Backspace";
+S0x0F : U"BackTick";
+S0x10 : U"Tab";
+S0x11 : U"Q";
+S0x12 : U"W";
+S0x13 : U"E";
+S0x14 : U"R";
+S0x15 : U"T";
+S0x16 : U"Y";
+S0x17 : U"U";
+S0x18 : U"I";
+S0x19 : U"O";
+S0x1A : U"P";
+S0x1B : U"LBrace";
+S0x1C : U"RBrace";
+S0x1D : U"Backslash";
+S0x1E : U"Delete";
+S0x1F : U"CapsLock";
+S0x20 : U"A";
+S0x21 : U"S";
+S0x22 : U"D";
+S0x23 : U"F";
+S0x24 : U"G";
+S0x25 : U"H";
+S0x26 : U"J";
+S0x27 : U"K";
+S0x28 : U"L";
+S0x29 : U"Semicolon";
+S0x2A : U"Quote";
+S0x2B : U"App";
+S0x2C : U"Enter";
+S0x2D : U"PageUp";
+S0x2E : U"LShift";
+S0x2F : U"ISO/";
+S0x30 : U"Z";
+S0x31 : U"X";
+S0x32 : U"C";
+S0x33 : U"V";
+S0x34 : U"B";
+S0x35 : U"N";
+S0x36 : U"M";
+S0x37 : U"Comma";
+S0x38 : U"Period";
+S0x39 : U"Slash";
+S0x3A : U"RShift";
+S0x3B : U"Up";
+S0x3C : U"PageDown";
+S0x3D : U"Ctrl";
+S0x3E : U"Function1";
+S0x3F : U"LAlt";
+S0x40 : U"Space";
+S0x41 : U"RAlt";
+S0x42 : U"Gui";
+S0x43 : U"Menu";
+S0x44 : U"Left";
+S0x45 : U"Down";
+S0x46 : U"Right";
+
+
+# Defines available to the WhiteFox Scan Module
+
+# LED Default Enable Mask Override
+#
+# Each LED is represented by a single bit
+# See (http://www.issi.com/WW/pdf/31FL3731C.pdf) for details
+ISSILedMask1 = "
+       0xFF, 0x00, /* C1-1 -> C1-16 */
+       0xFF, 0x00, /* C2-1 -> C2-16 */
+       0xFF, 0x00, /* C3-1 -> C3-16 */
+       0xFF, 0x00, /* C4-1 -> C4-16 */
+       0xFF, 0x00, /* C5-1 -> C5-16 */
+       0xFF, 0x00, /* C6-1 -> C6-16 */
+       0xFF, 0x00, /* C7-1 -> C7-16 */
+       0xFF, 0x00, /* C8-1 -> C8-16 */
+       0xFF, 0x00, /* C9-1 -> C9-16 */
+";
+
+# LED Brightness Override
+#
+# Each LED channel supports 256 levels (8-bit control)
+# By default, LEDs are set to 0 brightness
+#ISSILedBrightness1 = "
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
+#0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
+#";
+
+# Full brightness example
+ISSILedBrightness1 = "
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C1-1 -> C1-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C2-1 -> C2-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C3-1 -> C3-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C4-1 -> C4-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C5-1 -> C5-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C6-1 -> C6-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C7-1 -> C7-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C8-1 -> C8-16 */
+0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* C9-1 -> C9-16 */
+";
+