docs: function reindexConstantsByRegister(constants)
  {
  	var regInfo;
  	var typeSize;
  	var regEntry;
  	var numValues;
  	var retDict;
  	var regNum;
  
  	retDict = {};
  	retDictName = {};
  
  	for(var i in constants.registers)
  	{
  		//Get the Entry
  		regEntry = constants.registers[i];
  
  		//Create a regInfo object containing the start and end values
  		regInfo = parseRegisterNameString(regEntry.name);
  
  		//Get the size
  		typeSize = getTypeSizeInRegisters(regEntry.type);
  
  		//Determine how many values to add
  		//numValues = (regInfo.endNum - regInfo.startNum)/2+1;
  		numValues = regInfo.endNum+1;
  
  		//The starting register number
  		regNum=regEntry.address;
  		for(var j=0; j<numValues; j++)
  		{
  			retDict[regNum] = regEntry;
  			regNum += typeSize;
  			//retDictName[.push({
  			//				key: regEntry.name,
  			//				value: regEntry
  			//			});]
  			if(numValues > 1)
  			{
  				retDictName[regInfo.name+j.toString()+regInfo.nameEnd] = regEntry;
  			}
  			else
  			{
  				retDictName[regInfo.name+regInfo.nameEnd] = regEntry;
  			}
  			//if(numValues>1)
  			//{
  			//	console.log(regInfo.name+j.toString()+regInfo.nameEnd);
  			//}
  		}
  	}
  	//Add Extra Special Registers
  	retDict[driver_const.T7_MA_EXF_KEY] = {
  		address:driver_const.T7_MA_EXF_KEY,
  		name:"T7_MA_EXF_KEY",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	for(var i = 0; i < 20; i=i+2){
  		retDict[driver_const.T7_MA_EXF_WRITE+i] = {
  			address:driver_const.T7_MA_EXF_WRITE+2,
  			name:"T7_MA_EXF_WRITE"+i.toString(),
  			type:"UINT32",
  			devices:["T7"],
  			readwrite:"RW"
  		};
  	}
  	retDict[driver_const.T7_MA_EXF_pWRITE] = {
  		address:driver_const.T7_MA_EXF_pWRITE,
  		name:"T7_MA_EXF_pWRITE",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDict[driver_const.T7_MA_EXF_READ] = {
  		address:driver_const.T7_MA_EXF_READ,
  		name:"T7_MA_EXF_READ",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDict[driver_const.T7_MA_EXF_pREAD] = {
  		address:driver_const.T7_MA_EXF_pREAD,
  		name:"T7_MA_EXF_pREAD",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDict[driver_const.T7_MA_EXF_ERASE] = {
  		address:driver_const.T7_MA_EXF_ERASE,
  		name:"T7_MA_EXF_ERASE",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_KEY"] = {
  		address:driver_const.T7_MA_EXF_KEY,
  		name:"T7_MA_EXF_KEY",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_WRITE"] = {
  		address:driver_const.T7_MA_EXF_WRITE,
  		name:"T7_MA_EXF_WRITE",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_pWRITE"] = {
  		address:driver_const.T7_MA_EXF_pWRITE,
  		name:"T7_MA_EXF_pWRITE",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_READ"] = {
  		address:driver_const.T7_MA_EXF_READ,
  		name:"T7_MA_EXF_READ",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_pREAD"] = {
  		address:driver_const.T7_MA_EXF_pREAD,
  		name:"T7_MA_EXF_pREAD",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	retDictName["T7_MA_EXF_ERASE"] = {
  		address:driver_const.T7_MA_EXF_ERASE,
  		name:"T7_MA_EXF_ERASE",
  		type:"UINT32",
  		devices:["T7"],
  		readwrite:"RW"
  	};
  	//"T7_MA_EXF_WRITE"
  	//"MA_EXF_KEY"
  	//"MA_EXF_WRITE"
  
  	//console.log(retDictName);
  	return [retDict, retDictName];
  }