Thanks for every ones help. Normally my label names do have some demarcation between them. I checked the way the compiler deals with enums before I committed it to the code. I've added in the braces to the contents of the structs - I think it makes it easier for everyone to follow. I have made some progress, after running the code through my Pic simulator - hoping that the Hitachi compiler will give me similar results. I've discovered that I have some form of 'pointing 'problem, if I replace the struct like so - everything works display_type frames[3]={ { 0x81, //*messages[splash] "Greenkeeper v" }, { 0x86, //*messages[err] "Error" }, { 0xC0, //*messages[set] "Time" } }; If I replace the actual strings back to the *messages[x] then what I get is only the first character of the string, and no amount of persuading seems to alter this, even if I try and copy the sub array into a temporary buffer and then use that to copy into the display buffer - which also seems a very long winded and inelegant way to accomplish this. The main calling code is now { strcpy(DisplayBuffer+1,&frames[index].display_no[0]); DisplayBuffer[0]=frames[index].position[0]; display(DisplayBuffer); } Where index decides which frame within the frames array is to be used. The hard coded zero is so that each part of the array starts at the first character. I also found that to get this to work I had to change the first struct to struct display_type { unsigned char position[1]; unsigned char display_no[14]; //THIS CHANGED FOR LEN OF MAX SIZE in *messages[]. } So I'm almost there, I could compromise and just use the code as it stands, but I hate being defeated with problems, and the whole idea was to make the menu code more portable between projects and easier to maintain. And before anyone points out that DisplayBuffer is not how I've written the other labels, this is because this label was produced by the Renesas project generator, and I just haven't changed it to my style. Colin -- cdb, bodgy1@optusnet.com.au on 29.11.2003 -- http://www.piclist.com hint: The list server can filter out subtopics (like ads or off topics) for you. See http://www.piclist.com/#topics