Code:
DECLARE SUB pal (col!, r!, g!, b!)
DECLARE SUB mouse ()
'$INCLUDE: 'qb.bi'
SCREEN 12
DIM SHARED in AS RegTypeX, outr AS RegTypeX
CLS
in.ax = 0: mouse
LINE (50, 0)-(100, 40), 7, B
LINE (150, 0)-(200, 40), 7, B
LINE (250, 0)-(300, 40), 7, B
in.ax = 1: mouse
r = 2: b = 2: g = 2
DO UNTIL a$ = CHR$(27)
a$ = INKEY$
LOCATE 2, 1: PRINT "R:"; r
LOCATE 2, 14: PRINT "G:"; g
LOCATE 2, 27: PRINT "B:"; b
FOR i = 1 TO 100000: IF a$ = CHR$(27) THEN END
NEXT
in.ax = 3: mouse
IF r < 63 AND outr.bx = 1 AND outr.cx > 50 AND outr.cx < 100 AND outr.dx > 0 AND outr.dx < 40 THEN
r = r + 1
END IF
IF g < 63 AND outr.bx = 1 AND outr.cx > 150 AND outr.cx < 200 AND outr.dx > 0 AND outr.dx < 40 THEN
g = g + 1
END IF
IF b < 63 AND outr.bx = 1 AND outr.cx > 250 AND outr.cx < 300 AND outr.dx > 0 AND outr.dx < 40 THEN
b = b + 1
END IF
IF r > 0 AND outr.bx = 2 AND outr.cx > 50 AND outr.cx < 100 AND outr.dx > 0 AND outr.dx < 40 THEN
r = r - 1
END IF
IF g > 0 AND outr.bx = 2 AND outr.cx > 150 AND outr.cx < 200 AND outr.dx > 0 AND outr.dx < 40 THEN
g = g - 1
END IF
IF b > 0 AND outr.bx = 2 AND outr.cx > 250 AND outr.cx < 300 AND outr.dx > 0 AND outr.dx < 40 THEN
b = b - 1
END IF
pal 1, r, g, b
LINE (0, 100)-(640, 400), 1, BF
LOOP
SUB mouse
CALL INTERRUPTX(&H33, in, outr)
END SUB
SUB pal (col, r, g, b)
PALETTE col, (b * 256 ^ 2) + (g * 256) + r
END SUB