Original version was constrained by Flash 256 byte page limits. This
change allows up to 64K writes and also deals with blocks that cross
pages (even if 2 bytes starting at address = 0xyyFF.
When FLASH chip is not present and MISO is in high impedance, other SPI
devices might pull MISO high and the while(busy) loop might never return
because of a false positive busy (actually MISO would return 0XFF for
status register including the BUSY bit)