anchor.diff:          List.Add('Error unexpected class type: '+m.registerGroups[j].class_);
       end;
     end;
  +  reverseList.Free;
   
     sortedRegGroupsX(device, List);
   end;
  
positive.code:   sortedRegs: TSortedRegs;
    r: TRegister;
    b: TBitField;
    previousVar: boolean;
    s, comment, type_: string;
    pm: TPeriphModule;
    m: TModule;
  
    RegGroupArray: array of string;
  
  begin
    if not Assigned(device.Modules) then
      exit
    else
      List.Add('type');
  
    for i := 0 to High(device.Modules) do
    begin
      m := device.Modules[i];
  
negative.code:         begin
            r := m.registerGroups[j].registers[k];
            // Check if entry exceeds stated size (e.g. USERROW module which states size=32 but entries run to 63)
            if (r.offset + r.size) > length(RegGroupArray) then
              SetLength(RegGroupArray, r.offset + r.size);
  
            if r.caption = '' then
              comment := ''
  