unit eepromWrite; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Label1: TLabel; addrEdit: TEdit; Label2: TLabel; dataEdit: TEdit; readBtn: TButton; writeBtn: TButton; procedure FormCreate(Sender: TObject); procedure readBtnClick(Sender: TObject); procedure writeBtnClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses AIOUSB; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin if QueryDeviceInfo(diOnly, nil, nil, nil, nil, nil) <> ERROR_SUCCESS then begin MessageBox(0, 'This program requires exactly one ACCES USB device be attached to the computer', 'ERROR', MB_OK or MB_ICONEXCLAMATION); application.Terminate; end; end; procedure TForm1.readBtnClick(Sender: TObject); var address : LongWord; data : LongWord; size : LongWord; Status: LongWord; begin address := StrToIntDef('$' + addrEdit.Text, $200); if address > $1FF then begin MessageBox(0, 'Error in address.', 'Error', MB_OK or MB_ICONEXCLAMATION); exit; end; size := 1; Status := CustomEEPROMRead(diOnly, address, size, @data); if Status <> ERROR_SUCCESS then begin MessageBox(0, PChar('Error ' + IntToStr(Status) + ' reading data.'), 'Error', MB_OK or MB_ICONEXCLAMATION); exit; end; dataEdit.Text := IntToHex(data, 2); end; procedure TForm1.writeBtnClick(Sender: TObject); var address : LongWord; data : LongWord; Status: LongWord; begin address := StrToIntDef('$' + addrEdit.Text, $200); if address > $1FF then begin MessageBox(0, 'Error in address.', 'Error', MB_OK or MB_ICONEXCLAMATION); exit; end; data := StrToIntDef('$' + dataEdit.Text, $100); if data > $ff then begin MessageBox(0, 'Error in data.', 'Error', MB_OK or MB_ICONEXCLAMATION); exit; end; Status := CustomEEPROMWrite(diOnly, address, 1, @data); if Status = ERROR_SUCCESS then MessageBox(0, 'Data written to EEPROM.', 'SUCCESS', MB_OK) else MessageBox(0, PChar('Error ' + IntToStr(Status) + ' writing data.'), 'Error', MB_OK or MB_ICONEXCLAMATION); end; end.