anchor.diff:    // unit search directories
     SaveList(UnitDirs, 'UnitDirsCount', 'UnitDir');
   
  -  FIniFile.WriteString(cProjectOptions, 'UnitOutputDir', UnitOutputDir);
  +  // Unit file list
  +  FIniFile.WriteInteger(cUnits, 'UnitCount', UnitList.Count);
  +  for j := 0 to UnitList.Count-1 do
  +  begin
  +    FIniFile.WriteString(cUnits, 'Unit' + IntToStr(j+1),
  +        Format('%s,%s', [UnitList[j].FileName, BoolToStr(UnitList[j].Opened, '1', '0')]));
  +  end;
   
     Result := True;
   end;
  
positive.code:   MainUnit := FIniFile.ReadString(cProjectOptions, 'MainUnit', '');
    TargetFile := FIniFile.ReadString(cProjectOptions, 'TargetFile', '');
    DefaultMake := FIniFile.ReadInteger(cProjectOptions, 'DefaultMake', 0);
  
    // Load make options
    LoadList(MakeOptions, 'MakeOptionsCount', 'MakeOption');
    sl := TStringList.Create;
    try
      LoadList(sl, 'MakeOptionsCount', 'MakeOptionEnabled');
      SetLength(FMakeOptionsGrid, 6, MakeOptions.Count);    // 6 columns by X rows
      for j := 0 to sl.Count-1 do
      begin
  
negative.code:   end;
  
    // Load Macro definitions
    LoadList(cProjectOptions, MacroNames, 'MacroCount', 'Macro');
  
    // Load Unit search dirs
    LoadList(cProjectOptions, UnitDirs, 'UnitDirsCount', 'UnitDir');
    sl := TStringList.Create;
    try
      LoadList(cProjectOptions, sl, 'UnitDirsCount', 'UnitDirEnabled');
      SetLength(FUnitDirsGrid, 10, UnitDirs.Count);    // 10 columns by X rows
      for j := 0 to sl.Count-1 do
      begin
  