anchor.diff:  begin
     //9F
     buffer[0] := $9F;
  -  USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 0, 0, 1, buffer);
  +  SPIWrite(devHandle, 0, 1, buffer);
     FillByte(buffer, 4, $FF);
  -  result := USBSendControlMessage(devHandle, USB2PC, USBASP_FUNC_25_READ, 1, 0, 3, buffer);
  +  result := SPIRead(devHandle, 1, 3, buffer);
     move(buffer, ID.ID9FH, 3);
     //90
     FillByte(buffer, 4, 0);
     buffer[0] := $90;
  -  USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 0, 0, 4, buffer);
  -  result := USBSendControlMessage(devHandle, USB2PC, USBASP_FUNC_25_READ, 1, 0, 2, buffer);
  +  SPIWrite(devHandle, 0, 4, buffer);
  +  result := SPIRead(devHandle, 1, 2, buffer);
     move(buffer, ID.ID90H, 2);
     //AB
     FillByte(buffer, 4, 0);
     buffer[0] := $AB;
  -  USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 0, 0, 4, buffer);
  -  result := USBSendControlMessage(devHandle, USB2PC, USBASP_FUNC_25_READ, 1, 0, 1, buffer);
  +  SPIWrite(devHandle, 0, 4, buffer);
  +  result := SPIRead(devHandle, 1, 1, buffer);
     move(buffer, ID.IDABH, 1);
     //15
     buffer[0] := $15;
  -  USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 0, 0, 1, buffer);
  +  SPIWrite(devHandle, 0, 1, buffer);
     FillByte(buffer, 4, $FF);
  -  result := USBSendControlMessage(devHandle, USB2PC, USBASP_FUNC_25_READ, 1, 0, 2, buffer);
  +  result := SPIRead(devHandle, 1, 2, buffer);
     move(buffer, ID.ID15H, 2);
  -
   end;
   
   //Возвращает сколько байт прочитали
  
positive.code:   buff[2] := hi(lo(addr));
    buff[3] := lo(lo(addr));
  
    USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 0, 0, 4, buff);
    result := USBSendControlMessage(devHandle, PC2USB, USBASP_FUNC_25_WRITE, 1, 0, bufflen, buffer);
  end;
  
  function UsbAsp25_Write32bitAddr(devHandle: Pusb_dev_handle; Opcode: byte; Addr: longword; buffer: array of byte; bufflen: integer): integer;
  
negative.code:   buff[3] := hi(lo(addr));
    buff[4] := lo(lo(addr));
  
    SPIWrite(devHandle, 0, 5, buff);
    result := SPIWrite(devHandle, 1, bufflen, buffer);
  end;
  
  function UsbAsp25_WriteSSTB(devHandle: Pusb_dev_handle; Opcode: byte; Data: byte): integer;
  