I am very happy you got it going and am surprised that your LCD needs such a long delay. Adding 26 nops makes the delay around 2 microseconds, the spec sheet says it that 450ns should be sufficient.
Anyway, I wonder if you can test some code that I could add to the library that would make it easier to support panels that need a long delay.
Could you comment out all the nops that you added and instead replace the code in the Enable function in ks0108.cpp with the following :
#define XTREME_ENABLE_DELAY 4
__inline__ void ks0108::Enable(void) {
fastWriteHigh(EN); // EN high level width: min. 450ns
delay450ns();
fastWriteLow(EN);
#ifdef XTREME_ENABLE_DELAY
for(volatile uint8_t i=0; i< XTREME_ENABLE_DELAY; i++);
#else
delay450ns();
#endif
}
You may need to increase the value of XTREME__ENABLE_DELAY from 4 to 5 or perhaps even 6, but if a value of 8 isnt' enough then I will suggest a slightly different place to add the delay.
Keep me posted.