setSubList method

void setSubList(
  1. int startAddress, [
  2. int? endAddress,
  3. int step = 1
])

Set the buffer with this new start address and the step

Implementation

void setSubList(int startAddress, [int? endAddress, int step = 1]){
  Map<int,int> newBuffer = {};
  int length = buffer.length;
  if(endAddress != null && endAddress < buffer.length){
    length = endAddress;
  }

  if(!step.isNegative){
    for(int i = 0x1000; i < length;i+=step){
      if(buffer[i] != null){
        newBuffer[i] = buffer[i]!;
      }
    }
  }
  else{
    for(int i = 0x1000; i > length;i-=step){
      if(buffer[i] != null){
        newBuffer[i] = buffer[i]!;
      }
    }
  }
  buffer = newBuffer;
}