Модуль "Flash_SHX" (часть 10) - CG_Add
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
function TfrmFlash_SHX.CG_Add(ASMGFName: TFileName; AStartAddr: dword; ACGNum: integer): integer; //255 - если ошибка var fHandle: integer; fSize: integer; xBuffer: pbytearray; idx: integer; k: integer; CRC: word;
begin result:= 255; fHandle:= FileOpen(ASMGFName, fmOpenRead); if fHandle = -1 then exit; try fSize:= GetFileSize(fHandle, nil); idx:= ACGNum + 2; ArrCGCreateFile[idx].smgfilename:= ASMGFName; ArrCGCreateFile[idx].smgfilesize:= fSize; ArrCGCreateFile[idx].StartAddr:= AStartAddr; ArrCGCreateFile[idx].CGNumber:= ACGNum; FileRead(fHandle, ArrCGCreateFile[idx].Signature, 16); xBuffer:= AllocMem(fSize); CRC:= 0; FileRead(fHandle, xBuffer^, fsize); k:= 0; while k <= (fSize-1) do begin CRC:= CRC + xBuffer[k]; inc(k); end; ArrCGCreateFile[idx].CRCsmgfile:= CRC; CGStartAddrFName[2, idx]:= ASMGFName; if ACGNum = -2 then CGStartAddrFName[1, idx]:= 'RamDownLoader' else CGStartAddrFName[1, idx]:= 'CG' + AddSymbol(inttostr(ACGNum), '0', 2); CGStartAddr[1, idx]:= AStartAddr; CGStartAddr[2, idx]:= AStartAddr + fSize - 1; CGStartAddrState[1, idx]:= 1; CGStartAddrState[2, idx]:= 1; result:= idx; finally FileClose(fHandle); FreeMem(xBuffer); end; end;
Еще записи по теме
- Модуль "P2KApi" (часть 21) - TP2KAPI.SendCommand05
- Модуль "Пункты меню" (часть 14) - AddChilds
- Главный модуль программы (часть 15) - btnOBEX_RefreshClick
- Модуль "Справочник" (часть 14) - RzTreeView1Change
- Модуль "Справочник" (часть 36) - RzListView1ColumnClick
- Модуль "ComPortsNotifier" (часть 3) - MotorolaPortsNotifierThread
- Модуль "SeemEditor" (часть 6) - writetophone
