'🔶 — DECLARATIONS —

  STRUCTURE select_color
    x1%
    y1%
    x2%
    y2%
  END STRUCTURE

  scw% = 160 : sch% = 40

  DIM this_color(0 TO 15) AS select_color
  DIM xpos_now%, ypos_now%
  DEFDV MouseInBounds% = ( _MOUSEY >= 0 ) _
                         AND ( _MOUSEY < sch%) _
                         AND ( _MOUSEX >= 0) _
                         AND ( _MOUSEX < scw%)

'🔶 — 🏁🏁🏁 MAIN PROGRAM 🏁🏁🏁 —

  SCREEN _NEWIMAGE(scw%, sch%, 12)

  GOSUB ➔SetupColors

  DO
    IF _MOUSEBUTTON AND MouseInBounds% THEN
        WHILE _MOUSEBUTTON : WEND
        IF MouseInBounds% THEN _
            xpos_now% = _MOUSEX : _
            ypos_now% = _MOUSEY : _
            GOSUB ➔HandleColorChosen
    END IF
  LOOP

  END

'🔶 — SUBROUTINES —

➔SetupColors:
    FOR this_row = 0 TO 1 : FOR this_col = 0 TO 7
        index = ( this_row * 8 ) + this_col
        this_color(index).x1% = this_col * 20
        this_color(index).y1% = this_row * 20
        this_color(index).x2% = this_color(index).x1% + 20
        this_color(index).y2% = this_color(index).y1% + 19
        LINE _
            ( this_color(index).x1%, this_color(index).y1% ) _
              - ( this_color(index).x2%, this_color(index).y2% ), _
            index, BF
    NEXT this_col : NEXT this_row
RETURN

➔HandleColorChosen:
    FOR index = 0 to 15
      IF xpos_now% >= this_color(index).x1% _
        AND xpos_now% <= this_color(index).x2% _
        AND ypos_now% >= this_color(index).y1% _
        AND ypos_now% <= this_color(index).y2% _
      THEN _ALERT("color: " + index) : RETURN
    NEXT index
RETURN