code: function(start, end) {
          let _that = this[PRIVATE];
          start = Math.max(start, 0);
          end = Math.min(end, _that.gameboy.memory.length);
  
          return _that.gameboy.memory;
          //return _that.gameboy.memory.slice(start, end); //Why are you doing this functionally instead of just returning the entire object?
          //Is it for speed?
      }
docs: /*
  Gets a block of memory, you can specify a start and an end if you want
  - this is an expensive operation and should be called sparingly
  
  TODO perf test ``slice`` vs a ``for`` loop