anchor.diff:      end;
   
       if  ComboSPICMD.ItemIndex = SPI_CMD_95 then
  -      ReadFlash95(RomF, 0, StrToInt(ComboChipSize.Text));
  +      ReadFlash95(RomF, Hex2Dec('$'+StartAddressEdit.Text), StrToInt(ComboChipSize.Text));
   
       RomF.Position := 0;
       MPHexEditorEx.LoadFromStream(RomF);
  
positive.code:     if ComboSPICMD.ItemIndex = SPI_CMD_25 then
        WriteFlash25(RomF, Hex2Dec('$'+StartAddressEdit.Text), MPHexEditorEx.DataSize, PageSize, WriteType);
      if ComboSPICMD.ItemIndex = SPI_CMD_95 then
        WriteFlash95(RomF, 0, MPHexEditorEx.DataSize, PageSize, StrToInt(ComboChipSize.Text));
      if ComboSPICMD.ItemIndex = SPI_CMD_45 then
        WriteFlash45(RomF, 0, MPHexEditorEx.DataSize, PageSize, WriteType);
      if ComboSPICMD.ItemIndex = SPI_CMD_KB then
  
negative.code:   Address := StartAddress;
    MainForm.ProgressBar.Max := DataSize div ChunkSize;
  
    while (Address-StartAddress) < DataSize do
    begin
      if ChunkSize > (DataSize - (Address-StartAddress)) then ChunkSize := DataSize - (Address-StartAddress);
  
      BytesRead := BytesRead + UsbAsp95_Read(ChipSize, Address, datachunk, ChunkSize);
      RomStream.ReadBuffer(DataChunkFile, ChunkSize);
  