-//  ZXKBFirmware v.05
+//  ZXKBFirmware v1.0
 //  Copyright 2016 Mike Daley
 
 #include <Keyboard.h>
+#include "keys.h"
 
 const int dataLines = 5;
 const int addressLines = 8;
 const int dataPin[dataLines] = {A0, A1, A2, A3, 15};          // The Pro-Micro does not have an A4 pin so using 15
 const int address[addressLines] = {2, 3, 4, 5, 6, 7, 8, 9};
-const int keyboardModeSpeakerPin = 10;                            // When LED is on keyboard is in special mode
+const int keyboardModeSpeakerPin = 10;                        // Speak will beep based on mode 1 = Spectrum, 2 = Fuse, 3 = PC
 const int keyboardModeButtonPin = 14;                         
 
 // Tracking when special keys that need us to send specific USB keyboard values have been pressed means that

};
int keyboardMode;

// Spectrum 16k/14k keyboard matrix
char spectrumKeyMap[addressLines][dataLines] = {
//  0   1   2   3   4  
  {'1','2','3','4','5'}, // 0
  {'q','w','e','r','t'}, // 1
  {'a','s','d','f','g'}, // 2
  {'0','9','8','7','6'}, // 3
  {'p','o','i','u','y'}, // 4
  {' ','z','x','c','v'}, // 5
  {' ','l','k','j','h'}, // 6
  {' ',' ','m','n','b'}, // 7
};

// Fuse keyboard matrix
int fuseKeyMap[addressLines][dataLines] = {
  {KEY_F1, KEY_F2, KEY_F3, KEY_F4, KEY_F5},
  {KEY_ESC, 0, 0, 0, 0},
  {0, 0, 0, 0, 0},
  {KEY_F10, KEY_F9, KEY_F8, KEY_F7, KEY_F6},
  {0, 0, 0, 0, 0},
  {0, 0, 0, 0, 0},
  {KEY_RETURN, 0, 0, 0, 0},
  {' ', 0, 0, 0, 0}  
};

// Fuse keyboard matrix
char pcKeyMap[addressLines][dataLines] = {
  {'1','2','3','4','5'},
  {'q','w','e','r','t'},
  {'a','s','d','f','g'},
  {'0','9','8','7','6'},
  {'p','o','i','u','y'},
  {' ','z','x','c','v'},
  {' ','l','k','j','h'},
  {' ',' ','m','n','b'},  
};

// Array used to store the state of indiviaul keys that have been pressed
bool keyPressed[addressLines][dataLines] = {

  {false, false, false, false, false}
};

// *** SETUP ***
void setup() {

  // Setup the keyboard default mode, LED and button pins
