@@ -1240,82 +1240,78 @@ unsigned long gEepromIndex;
12401240void PrintDecInt (int theNumber , int digitCnt );
12411241
12421242#ifdef _AVR_CPU_NAME_
1243- prog_char gTextMsg_CPU_Name [] PROGMEM = _AVR_CPU_NAME_ ;
1243+ const char gTextMsg_CPU_Name [] PROGMEM = _AVR_CPU_NAME_ ;
12441244#else
1245- prog_char gTextMsg_CPU_Name [] PROGMEM = "UNKNOWN" ;
1245+ const char gTextMsg_CPU_Name [] PROGMEM = "UNKNOWN" ;
12461246#endif
12471247
1248- prog_char gTextMsg_Explorer [] PROGMEM = "Arduino explorer stk500V2 by MLS" ;
1249- prog_char gTextMsg_Prompt [] PROGMEM = "Bootloader>" ;
1250- prog_char gTextMsg_HUH [] PROGMEM = "Huh?" ;
1251- prog_char gTextMsg_COMPILED_ON [] PROGMEM = "Compiled on = " ;
1252- prog_char gTextMsg_CPU_Type [] PROGMEM = "CPU Type = " ;
1253- prog_char gTextMsg_AVR_ARCH [] PROGMEM = "__AVR_ARCH__= " ;
1254- prog_char gTextMsg_AVR_LIBC [] PROGMEM = "AVR LibC Ver= " ;
1255- prog_char gTextMsg_GCC_VERSION [] PROGMEM = "GCC Version = " ;
1256- prog_char gTextMsg_CPU_SIGNATURE [] PROGMEM = "CPU ID = " ;
1257- prog_char gTextMsg_FUSE_BYTE_LOW [] PROGMEM = "Low fuse = " ;
1258- prog_char gTextMsg_FUSE_BYTE_HIGH [] PROGMEM = "High fuse = " ;
1259- prog_char gTextMsg_FUSE_BYTE_EXT [] PROGMEM = "Ext fuse = " ;
1260- prog_char gTextMsg_FUSE_BYTE_LOCK [] PROGMEM = "Lock fuse = " ;
1261- prog_char gTextMsg_GCC_DATE_STR [] PROGMEM = __DATE__ ;
1262- prog_char gTextMsg_AVR_LIBC_VER_STR [] PROGMEM = __AVR_LIBC_VERSION_STRING__ ;
1263- prog_char gTextMsg_GCC_VERSION_STR [] PROGMEM = __VERSION__ ;
1264- prog_char gTextMsg_VECTOR_HEADER [] PROGMEM = "V# ADDR op code instruction addr Interrupt" ;
1265- prog_char gTextMsg_noVector [] PROGMEM = "no vector" ;
1266- prog_char gTextMsg_rjmp [] PROGMEM = "rjmp " ;
1267- prog_char gTextMsg_jmp [] PROGMEM = "jmp " ;
1268- prog_char gTextMsg_WHAT_PORT [] PROGMEM = "What port:" ;
1269- prog_char gTextMsg_PortNotSupported [] PROGMEM = "Port not supported" ;
1270- prog_char gTextMsg_MustBeLetter [] PROGMEM = "Must be a letter" ;
1271- prog_char gTextMsg_SPACE [] PROGMEM = " " ;
1272- prog_char gTextMsg_WriteToEEprom [] PROGMEM = "Writting EE" ;
1273- prog_char gTextMsg_ReadingEEprom [] PROGMEM = "Reading EE" ;
1274- prog_char gTextMsg_EEPROMerrorCnt [] PROGMEM = "EE err cnt=" ;
1275- prog_char gTextMsg_PORT [] PROGMEM = "PORT" ;
1248+ const char gTextMsg_Explorer [] PROGMEM = "Arduino explorer stk500V2 by MLS" ;
1249+ const char gTextMsg_Prompt [] PROGMEM = "Bootloader>" ;
1250+ const char gTextMsg_HUH [] PROGMEM = "Huh?" ;
1251+ const char gTextMsg_COMPILED_ON [] PROGMEM = "Compiled on = " ;
1252+ const char gTextMsg_CPU_Type [] PROGMEM = "CPU Type = " ;
1253+ const char gTextMsg_AVR_ARCH [] PROGMEM = "__AVR_ARCH__= " ;
1254+ const char gTextMsg_AVR_LIBC [] PROGMEM = "AVR LibC Ver= " ;
1255+ const char gTextMsg_GCC_VERSION [] PROGMEM = "GCC Version = " ;
1256+ const char gTextMsg_CPU_SIGNATURE [] PROGMEM = "CPU ID = " ;
1257+ const char gTextMsg_FUSE_BYTE_LOW [] PROGMEM = "Low fuse = " ;
1258+ const char gTextMsg_FUSE_BYTE_HIGH [] PROGMEM = "High fuse = " ;
1259+ const char gTextMsg_FUSE_BYTE_EXT [] PROGMEM = "Ext fuse = " ;
1260+ const char gTextMsg_FUSE_BYTE_LOCK [] PROGMEM = "Lock fuse = " ;
1261+ const char gTextMsg_GCC_DATE_STR [] PROGMEM = __DATE__ ;
1262+ const char gTextMsg_AVR_LIBC_VER_STR [] PROGMEM = __AVR_LIBC_VERSION_STRING__ ;
1263+ const char gTextMsg_GCC_VERSION_STR [] PROGMEM = __VERSION__ ;
1264+ const char gTextMsg_VECTOR_HEADER [] PROGMEM = "V# ADDR op code instruction addr Interrupt" ;
1265+ const char gTextMsg_noVector [] PROGMEM = "no vector" ;
1266+ const char gTextMsg_rjmp [] PROGMEM = "rjmp " ;
1267+ const char gTextMsg_jmp [] PROGMEM = "jmp " ;
1268+ const char gTextMsg_WHAT_PORT [] PROGMEM = "What port:" ;
1269+ const char gTextMsg_PortNotSupported [] PROGMEM = "Port not supported" ;
1270+ const char gTextMsg_MustBeLetter [] PROGMEM = "Must be a letter" ;
1271+ const char gTextMsg_SPACE [] PROGMEM = " " ;
1272+ const char gTextMsg_WriteToEEprom [] PROGMEM = "Writting EE" ;
1273+ const char gTextMsg_ReadingEEprom [] PROGMEM = "Reading EE" ;
1274+ const char gTextMsg_EEPROMerrorCnt [] PROGMEM = "EE err cnt=" ;
1275+ const char gTextMsg_PORT [] PROGMEM = "PORT" ;
12761276
12771277
12781278//************************************************************************
12791279//* Help messages
1280- prog_char gTextMsg_HELP_MSG_0 [] PROGMEM = "0=Zero addr" ;
1281- prog_char gTextMsg_HELP_MSG_QM [] PROGMEM = "?=CPU stats" ;
1282- prog_char gTextMsg_HELP_MSG_AT [] PROGMEM = "@=EEPROM test" ;
1283- prog_char gTextMsg_HELP_MSG_B [] PROGMEM = "B=Blink LED" ;
1284- prog_char gTextMsg_HELP_MSG_E [] PROGMEM = "E=Dump EEPROM" ;
1285- prog_char gTextMsg_HELP_MSG_F [] PROGMEM = "F=Dump FLASH" ;
1286- prog_char gTextMsg_HELP_MSG_H [] PROGMEM = "H=Help" ;
1287- prog_char gTextMsg_HELP_MSG_L [] PROGMEM = "L=List I/O Ports" ;
1288- // prog_char gTextMsg_HELP_MSG_Q[] PROGMEM = "Q=Quit & jump to user pgm";
1289- prog_char gTextMsg_HELP_MSG_Q [] PROGMEM = "Q=Quit" ;
1290- prog_char gTextMsg_HELP_MSG_R [] PROGMEM = "R=Dump RAM" ;
1291- prog_char gTextMsg_HELP_MSG_V [] PROGMEM = "V=show interrupt Vectors" ;
1292- prog_char gTextMsg_HELP_MSG_Y [] PROGMEM = "Y=Port blink" ;
1293-
1294- prog_char gTextMsg_END [] PROGMEM = "*" ;
1280+ const char gTextMsg_HELP_MSG_0 [] PROGMEM = "0=Zero addr" ;
1281+ const char gTextMsg_HELP_MSG_QM [] PROGMEM = "?=CPU stats" ;
1282+ const char gTextMsg_HELP_MSG_AT [] PROGMEM = "@=EEPROM test" ;
1283+ const char gTextMsg_HELP_MSG_B [] PROGMEM = "B=Blink LED" ;
1284+ const char gTextMsg_HELP_MSG_E [] PROGMEM = "E=Dump EEPROM" ;
1285+ const char gTextMsg_HELP_MSG_F [] PROGMEM = "F=Dump FLASH" ;
1286+ const char gTextMsg_HELP_MSG_H [] PROGMEM = "H=Help" ;
1287+ const char gTextMsg_HELP_MSG_L [] PROGMEM = "L=List I/O Ports" ;
1288+ // const char gTextMsg_HELP_MSG_Q[] PROGMEM = "Q=Quit & jump to user pgm";
1289+ const char gTextMsg_HELP_MSG_Q [] PROGMEM = "Q=Quit" ;
1290+ const char gTextMsg_HELP_MSG_R [] PROGMEM = "R=Dump RAM" ;
1291+ const char gTextMsg_HELP_MSG_V [] PROGMEM = "V=show interrupt Vectors" ;
1292+ const char gTextMsg_HELP_MSG_Y [] PROGMEM = "Y=Port blink" ;
1293+
1294+ const char gTextMsg_END [] PROGMEM = "*" ;
12951295
12961296
12971297//************************************************************************
1298- void PrintFromPROGMEM (void * dataPtr , unsigned char offset )
1298+ void PrintFromPROGMEM (const void * dataPtr , unsigned char offset )
12991299{
1300- uint8_t ii ;
13011300char theChar ;
13021301
1303- ii = offset ;
1304- theChar = 1 ;
1302+ dataPtr += offset ;
13051303
1306- while (theChar != 0 )
1307- {
1304+ do {
13081305 #if (FLASHEND > 0x10000 )
1309- theChar = pgm_read_byte_far ((uint32_t )dataPtr + ii );
1306+ theChar = pgm_read_byte_far ((uint16_t )dataPtr ++ );
13101307 #else
1311- theChar = pgm_read_byte_near ((uint32_t )dataPtr + ii );
1308+ theChar = pgm_read_byte_near ((uint16_t )dataPtr ++ );
13121309 #endif
13131310 if (theChar != 0 )
13141311 {
13151312 sendchar (theChar );
13161313 }
1317- ii ++ ;
1318- }
1314+ } while (theChar != 0 );
13191315}
13201316
13211317//************************************************************************
@@ -1327,7 +1323,7 @@ void PrintNewLine(void)
13271323
13281324
13291325//************************************************************************
1330- void PrintFromPROGMEMln (void * dataPtr , unsigned char offset )
1326+ void PrintFromPROGMEMln (const void * dataPtr , unsigned char offset )
13311327{
13321328 PrintFromPROGMEM (dataPtr , offset );
13331329
@@ -1523,7 +1519,7 @@ unsigned char *ramPtr;
15231519 break ;
15241520
15251521 case kDUMP_EEPROM :
1526- theValue = eeprom_read_byte ((void * )myAddressPointer );
1522+ theValue = eeprom_read_byte ((uint8_t * )( uint16_t )myAddressPointer );
15271523 break ;
15281524
15291525 case kDUMP_RAM :
@@ -1567,9 +1563,9 @@ int errorCount;
15671563 PrintNewLine ();
15681564 ii = 0 ;
15691565#if (FLASHEND > 0x10000 )
1570- while (((theChar = pgm_read_byte_far (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1566+ while (((theChar = pgm_read_byte_far ((( uint16_t ) gTextMsg_Explorer ) + ii )) != '*' ) && (ii < 512 ))
15711567#else
1572- while (((theChar = pgm_read_byte_near (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1568+ while (((theChar = pgm_read_byte_near ((( uint16_t ) gTextMsg_Explorer ) + ii )) != '*' ) && (ii < 512 ))
15731569#endif
15741570 {
15751571 eeprom_write_byte ((uint8_t * )ii , theChar );
@@ -1592,9 +1588,9 @@ int errorCount;
15921588 errorCount = 0 ;
15931589 ii = 0 ;
15941590#if (FLASHEND > 0x10000 )
1595- while (((theChar = pgm_read_byte_far (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1591+ while (((theChar = pgm_read_byte_far (( uint16_t ) gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
15961592#else
1597- while (((theChar = pgm_read_byte_near (gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
1593+ while (((theChar = pgm_read_byte_near (( uint16_t ) gTextMsg_Explorer + ii )) != '*' ) && (ii < 512 ))
15981594#endif
15991595 {
16001596 theEEPROMchar = eeprom_read_byte ((uint8_t * )ii );
0 commit comments