  * colorC specifies the foreground color of the text
  * A black background is assumed.
  */
-void LCD_write_icon(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t* icon, const char* title, uint8_t colorA, uint8_t colorB, uint8_t colorC) {
-  PHNDisplay8Bit::writeImage_1bit(x, y, w, h, 1, icon, DIR_RIGHT, colorA, colorB);
-  PHNDisplay8Bit::writeString(x + (w - strlen(title) * 6) / 2, y + h + 2, 1, title, BLACK_8BIT, colorC);
+void LCD_write_icon(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t* icon, const char* title, uint8_t color0, uint8_t color1) {
+  PHNDisplay8Bit::writeImage_1bit(x, y, w, h, 1, icon, DIR_RIGHT, color0, color1);
+  PHNDisplay8Bit::writeString(x + (w - strlen(title) * 6) / 2, y + h + 2, 1, title, color0, color1);
 }
 
 /*
  * Overload to make the icon drawing a little simpler to call, with the same color used for title and icon
  */
-void LCD_write_icon(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t* icon, const char* title, uint8_t color) {
-  LCD_write_icon(x, y, w, h, icon, title, BLACK_8BIT, color, color);
+void LCD_write_icon(uint16_t x, uint16_t y, uint16_t w, uint16_t h, const uint8_t* icon, const char* title, uint8_t color0) {
+  LCD_write_icon(x, y, w, h, icon, title, BLACK_8BIT, color0);
 }
 
 void LCD_updateTouch(void) {

      }
    } else if (oldTouchedIndex == IDX_DOWN) {
      /* Move sketch list one page down, ignore if impossible */
      if ((sketch_offset + SKETCHES_PGINCR) < sketches_cnt) {
        sketch_offset += SKETCHES_PGINCR;
        redrawIcons = true;
      }

    volume_init(0);
  }

  /*
   * General sketch list update loop starts here
   * All variables used in it are declared below.
   */
  unsigned int icon_px;  /* X-coordinate of icons drawn */
  unsigned int icon_py;  /* Y-coordinate of icons drawn */
  uint8_t icon_idx;      /* Icon index in main sketch menu */
  uint16_t sketch_index; /* Index in the sketch buffer */
  int16_t sketch_addr;   /* SRAM address in the sketch buffer */

  /* Routinely buffer in sketch information from the Micro-SD in the background */
  for (uint8_t i = 0; i < 16 && !sketches_reachedEnd; i++) {
    /* Read next directory entry */
    SDMINFAT::dir_t* p = (SDMINFAT::dir_t*) file_read(32);

