unsigned int i;
// if(addr > 0x0fff) return -1; // Address error
-
+ if(page > USER_MEMORY_BANKS) return -1; // Address Error
p = &freqset_temp;
- c = i2c_eeprom_burstread(0xa0, addr, (unsigned char *)p, sizeof(__freqset_t));
+ c = i2c_eeprom_burstread(I2CEEPROM_ADDR, addr, (unsigned char *)p, sizeof(__freqset_t));
// Pass 1 Read OK?
if(c == 0x00) return -2;
// Pass 1 check magic
unsigned int addr = (setup.pagenum <<7) + 512;
__freqset_t *p = &freqset;
unsigned char i;
- unsigned char flg;
- unsigned char *q, *r;
unsigned int sum;
- // if(addr > 0x0fff) return;
+ if(setup.pagenum > USER_MEMORY_BANKS) return; // Address Error
// Pass 0 Calc checksum
freqset.magic = 0xfabc;
freqset.version = 0x0001;
sum = calcsum_frequencies(&freqset, 0xa5a5);
freqset.checksum = sum;
- // Pass 1 check storaged page
- if(load_frequencies(setup.pagenum, 0xff) < 0) {
- // Sum ERROR = Force rewrite
- c = i2c_eeprom_burstwrite(0xa0, addr, (unsigned char *)p, sizeof(__freqset_t));
- return;
- }
- // Pass 2 compare
- flg = 0x00;
-// flg = 0xff;
- q = (unsigned char *)(&freqset_temp);
- r = (unsigned char *)(&freqset);
- for(i = 0; i < sizeof(__freqset_t); i++) {
- if(*q != *r) flg |= 0xff;
- q++;
- r++;
- }
- if(flg != 0x00){ // Changed
- c = i2c_eeprom_burstwrite(0xa0, addr, (unsigned char *)p, sizeof(__freqset_t));
- return;
- }
- // Not Need to read.
+ // Pass 1 write to rom.
+ c = i2c_eeprom_burstwrite(I2CEEPROM_ADDR, addr, (unsigned char *)p, sizeof(__freqset_t));
return;
}
sum = calcsum_frequencies(&freqset_temp, 0xa5a5);
freqset_temp.checksum = sum;
- i = i2c_eeprom_burstwrite(0xa0, (page << 7)+ 512, (unsigned char *)(&freqset_temp), sizeof(__freqset_t));
+ i = i2c_eeprom_burstwrite(I2CEEPROM_ADDR, (page << 7)+ 512, (unsigned char *)(&freqset_temp), sizeof(__freqset_t));
}
void check_frequencies(void)
{
unsigned int i;
_CLS();
- for(i = 0; i < 24; i++){
+ for(i = 0; i < USER_MEMORY_BANKS; i++){
printstr("Check ExtROM:");
print_numeric_nosupress(i, 2);
_HOME();
/*
* Check eeprom, and format/restore.
*/
+static void check_eeprom_sub(void)
+{
+ _CLS();
+ _LOCATE(0,0);
+ printstr("Formatting... ");
+ format_eeprom(2,250);
+ _LOCATE(0,0);
+ printstr("Save defaults ");
+ setdefault();
+ save_eeprom();
+}
+
+
void check_eeprom(void)
{
unsigned char c;
- unsigned int bank;
switch(load_eeprom()) {
case 0x01: // No magic-word
idle_time_ms(2000);
c = printhelp_2lines("EEPROM FORMAT", "Press any key");
- _CLS();
- _LOCATE(0,0);
- printstr("Formatting... ");
- format_eeprom(2,250);
- _LOCATE(0,0);
- printstr("Save defaults ");
- setdefault();
- save_eeprom();
-// format_frequencies();
+ check_eeprom_sub();
break;
case 0x00: // Checksum error
idle_time_ms(2000);
c = printhelp_2lines("X-) Sum error", "Press any key");
- c = pollkey_single();
- _CLS();
- _LOCATE(0,0);
- printstr("Formatting...");
- format_eeprom(2,250);
-// writeword_eeprom(0, &sum, 0x1298);
- _LOCATE(0,0);
- printstr("Save defaults");
- setdefault();
- save_eeprom();
-// format_frequencies();
+ check_eeprom_sub();
break;
case 0xff: // Success
check_frequencies();