//---------------------------------------------------------------------------
#ifndef ChipFunctionsH
#define ChipFunctionsH
//---------------------------------------------------------------------------
#include <Classes.hpp>
//---------------------------------------------------------------------------
void InitChip(unsigned int);                            // инициализация памяти устройства
void InitArea(unsigned char);                           // заполнение выбранной области данных FF-ками
void LoadFromBinFileToMemory(AnsiString, unsigned char);// загружаем данные из bin-файла в указанную область памяти
void LoadFromHexFileToMemory(AnsiString, unsigned char);// загружаем данные из hex-файла в указанную область памяти
void SaveFromMemoryToBinFile(AnsiString, unsigned char);// сохраняем данные из указанной области памяти в bin-файл
void SaveFromMemoryToHexFile(AnsiString, unsigned char);// сохраняем данные из указанной области памяти в hex-файл

//---------------------------------------------------------------------------
struct chip { AnsiString Name, ImageName;
              unsigned short ID;                                        // слово идентификации (оно же располагается по адресу 0x2006)
              unsigned int ConfigStart;                                 // начало области конфигурации (адрес  слова)
              unsigned int DataStart;                                   // начало области данных (адрес  слова)

              unsigned char TerProg;                                    // время стирания программы
              unsigned char TerData;                                    // время стирания данных
              unsigned char TwrProgInt;                                 // время записи программы internally timed
              unsigned char TwrProgExt;                                 // время записи программы externally timed
              unsigned char TwrDataInt;                                 // время записи данных internally timed
              unsigned char TwrDataExt;                                 // время записи данных externally timed

              unsigned int Area1Size; unsigned char Area1[2*128*1024];  // область программы (max 128 KWords, 256 KByte)                (пересмотреть)
              unsigned int Area2Size; unsigned char Area2[64*1024];     // область данных (max 64 KByte)                                (пересмотреть)
              unsigned int Area3Size; unsigned char Area3[2*512];};     // область конфигурации (512 слов, 1024 байта)
//---------------------------------------------------------------------------
//--- ЭКСПОРТИРУЕМЫЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ ----------------------------------
//---------------------------------------------------------------------------
extern struct chip SelectedChip;
//---------------------------------------------------------------------------
#endif
