Yeah! Solved!
Just logging back in to post the results - Coding Badly I don't consider your voluminous efforts as any indication of laziness Thanks for the tiny core and for the cut an paste answer! I hope others will find the 2 wire lcd solution equally beneficial to the low pin count tinys - no I2C complexity, 25cent part, no "piggyback serial-to-lcd" micro w/code, programming, crystal and cost to contend with.
Yes Nick, that line in the header file gave me pause, but as it was apparently working for a nano compile in the arduino toolchain, I just left it. Thanks much for the tip. As I was just tossing darts to get the compile errors down, I ignored code operational correctness at that go around.
That error being corrected, left another error having to do with _cxa_pure_virtual which is solved by copying the new.cpp new.h files over to the tiny toolchain.
so for the program example shown above, the summary of changes are below:
changes to print.cpp============================
/* default implementation: may be overridden */
//void Print::write(const char *str)
//{
// while (*str)
// write(*str++);
//}
//jc100 above is original, below from arduino
// tiny core needs new.cpp, new.h to resolve error:LiquidCrystal\LCD.cpp.o:(.rodata._ZTV3LCD+0xe): undefined reference //to`__cxa_pure_virtual'
size_t Print::write(const char *str)
{
size_t n = 0;
while (*str){
write(*str++);
n++;
}
return n;
}
/* default implementation: may be overridden */
//void Print::write(const uint8_t *buffer, size_t size)
// while (size--)
// write(*buffer++);
//}
//jc100 below is from arduino, above original tiny
size_t Print::write(const uint8_t *buffer, size_t size)
{
size_t n = 0;
while (size--) {
n += write(*buffer++);
}
return n;
}
changes to print.h==============
public:
virtual size_t write(uint8_t) = 0;
// virtual void write(const char *str);
// virtual void write(const uint8_t *buffer, size_t size);
//jc100 below is from working arduino file, above is original
// size_t write(const char *str) { return write((const uint8_t *)str, strlen(str)); }
size_t write(const char *str);
virtual size_t write(const uint8_t *buffer, size_t size);
copy new.h, new.cpp from arduino core to the tiny core ===================
eg: from here:
C:\Documents and Settings\H1\My Documents\Downloads\arduino-1.0.1-windows\arduino-1.0.1\hardware\arduino\cores\arduino
to here:
C:\Documents and Settings\H1\My Documents\Downloads\arduino-1.0.1-windows\arduino-1.0.1\hardware\tiny\cores\tiny
Oh, and a big thanks to the ShiftRegisterLCD contributor and Franscisco - for a fine consolidated library and especially for helping us navigate the changing world of arduino!