Using 16 bit parallel displays in pseudo 8 bit mode

The image below shows all the 256 matching byte hexadecimal colour codes that can be displayed on a "pseudo 8bit" display.

The columns are numerically ordered but the rows are not, this is deliberate so that the colours end up being grouped into 4 colour coordinated sets. Black is at top left and white at bottom right.

This is the main code section that generated the image on a 480x320 TFT is:

  tft.fillScreen(TFT_BLACK);
  tft.setTextDatum(MC_DATUM); // Text datum is middle centre
  uint16_t color = 0;
  for ( int y = 0; y < 16; y++)
  {
    for ( int x = 0; x < 16; x++)
    {
      tft.fillRect(x*30,y*20,30,20, color<<8 | color);
      String hex =  "";
      if (color < 16) hex = "0";
      hex = hex + String(color, HEX);
      hex = hex + hex;
      if ((color<<8 | color)>0xC000) tft.setTextColor(0);
      else   tft.setTextColor(TFT_WHITE);
      tft.drawString(hex, x*30+15,y*20+10,1);

      color++;
      if (color%16 == 0) color+=16;
      if (color == 256) color = 16;

    }
  }