I recently updated my compiler for the first time in several years to 3.6.0.3, and am revisiting some older code.

I used to frequently make use of ESTR to store and retrieve firmware revision strings embedded in each device. It used to work fabulously, but no longer works, at least in this compiler version, for my 18F452. It generates an ASM ERROR : Error[113} : Symbol not previously defines (EEADRH).

The latest manual seems to suggest that strings need to be read out of the eeprom one character at a time as numeric values. Do I have this correct?

A search on the forum yielded only one hit on "ESTR" dating back 2005, whereby Les acknowledges the "anomaly" and states it was broken but would be fixed in a subsequent compiler release. The suggested workaround confuses me.

Can anyone advise if there is a new way to read strings from the embedded eeprom directly without need to set up loops to read a character at a time?

Will newer devices magically work with my code as-is?


Code:
'
'******************************************************************************
'
' To update Splashscreen firmware revision string, enable and run the Edata line 
' below ONE TIME, then disable line again with apostrophe. This string will 
' then be written to on-board eeprom, and thus will remain embedded with each PIC 
' chip regardless of what circuit board it resides in.
'
'EData "Main Board  Firmware v1.08",0  :  End   'Note: don't exceed 26 chars
'
'******************************************************************************
'
'******************************************************************************
'
' Splash screen 
'
'******************************************************************************
'
' PRINT FIRMWARE REVISION STRING
'
SerOut LCD_TX,N81_9600_True,1,["T",EStr 0,0] : DelayMS 40 'zero following Estr denotes eeprom address
'
End