ColorP.bas is a program to experiment with different text colors and backgrounds. It is a must have app to pick the right colors for your new programs and games. The rich features let you:
- Pick foreground & background colors by rbg elements
- Displays colors over a variety of text and textures
- Provides values as an 24bit integer and hex values
- Save a bmp for future reference
- Create a log of your favorite color combos for later reference
Please give my little program a test drive and post back pic’s of the best color palettes you’ve made.
Note: This program was written directly one the PicoCalc and my first major basic program so please ignore any code style blunders or inefficient code.
'a program for picking color palettes
'
'set rpg vars at 0
fr = 0
fg = 0
fb = 0
br = 0
bg = 0
bb = 0
'top line to render colors
LT$ = Chr$(201) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(203) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205)
LT$ = LT$ + Chr$(205) + Chr$(205) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(187)
'row line to render colors
LR$ = Chr$(186) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(186) +Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31)
LR$ = LR$ + Chr$(31) + Chr$(31) +Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(31) + Chr$(186)
'middle line to render colors
LM$ = Chr$(204) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(206) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205)
LM$ = LM$ + Chr$(205) + Chr$(205) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(185)
'bottom line to render colors
LB$ = Chr$(200) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(202) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205)
LB$ = LB$ + Chr$(205) + Chr$(205) +Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(205) + Chr$(188)
'text to render
LT1$ = "`/\-=[]~?|_+{}!@#$%^&"
LT2$ = "*()<>;':1234567890ABC"
LT3$ = "DEFGHIJKLMNOPQRSTUVWX"
LT4$ = "YZabcdefghijklmnopqrt"
Print
Print
Print
'lables for rgb values
Text 25, 10, "RED", "C", 4, 1, RGB(255,0,0)
Text 75, 10, "GREEN", "C", 4, 1, RGB(0,255,0)
Text 125, 10, "BLUE", "C", 4, 1, RGB(0,0,255 )
Text 185, 10, "RED", "C", 4, 1, RGB(255,0,0)
Text 235, 10, "GREEN", "C", 4, 1, RGB(0,255,0)
Text 285, 10, "BLUE", "C", 4, 1, RGB(0,0,255 )
'display rgb values
Text 25, 30, Str$(fr), "C", 4, 1
Text 75, 30, Str$(fg), "C", 4, 1
Text 125, 30, Str$(fb), "C", 4, 1
Text 185, 30, Str$(br), "C", 4, 1
Text 235, 30, Str$(bg), "C", 4, 1
Text 285, 30, Str$(bb), "C", 4, 1
'arrows to show changing rgb
Text 15, 75, Chr$(144), "CM", 4, 2
Text 35, 75, Chr$(144), "CM", 4, 1
Text 65, 75, Chr$(144), "CM", 4, 2
Text 85, 75, Chr$(144), "CM", 4, 1
Text 115, 75, Chr$(144), "CM", 4, 2
Text 135, 75, Chr$(144), "CM", 4, 1
Text 175, 75, Chr$(144), "CM", 4, 2
Text 195, 75, Chr$(144), "CM", 4, 1
Text 225, 75, Chr$(144), "CM", 4, 2
Text 245, 75, Chr$(144), "CM", 4, 1
Text 275, 75, Chr$(144), "CM", 4, 2
Text 295, 75, Chr$(144), "CM", 4, 1
'label for keys to change values
Text 15, 55, "1", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 35, 55, "2", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 65, 55, "3", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 85, 55, "4", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 115, 55, "5", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 135, 55, "6", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 15, 90, "Q", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 35, 90, "W", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 65, 90, "E", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 85, 90, "R", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 115, 90, "T", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 135, 90, "Y", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 175, 55, "A", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 195, 55, "S", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 220, 55, "D", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 245, 55, "F", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 275, 55, "G", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 295, 55, "H", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 175, 90, "Z", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 195, 90, "X", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 220, 90, "C", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 245, 90, "V", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 275, 90, "B", "CM", 1, 1, RGB(white), RGB(100,100,100)
Text 295, 90, "N", "CM", 1, 1, RGB(white), RGB(100,100,100)
'function command lables
Text 15, 286, "F1:Display", " M", 1, 1, RGB(white), RGB(100,100,100)
Text 110, 286, "F2:Quit", " M", 1, 1, RGB(white), RGB(100,100,100)
Text 180, 286, "F3:Screen to BMP", " M", 1, 1, RGB(white), RGB(100,100, 100)
Text 15, 300, "F4:add to log file", " M", 1, 1, RGB(white), RGB(100,100, 100)
'loop or key presses
colorloop:
a$=Inkey$
If a$ = "" Then GoTo colorloop
'red foreground
If Asc(a$) = 49 Then
fr = fr + 20
If fr > 255 Then fr = 255
Text 25, 30, " ", "C", 4, 1
Text 25, 30, Str$(fr), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 50 Then
fr = fr + 1
If fr > 255 Then fr = 255
Text 25, 30, " ", "C", 4, 1
Text 25, 30, Str$(fr), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 113 Then
fr = fr - 20
If fr < 0 Then fr = 0
Text 25, 30, " ", "C", 4, 1
Text 25, 30, Str$(fr), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 119 Then
fr = fr - 1
If fr < 0 Then fr = 0
Text 25, 30, " ", "C", 4, 1
Text 25, 30, Str$(fr), "C", 4, 1:GoTo colorloop
EndIf
'green foreground
If Asc(a$) = 51 Then
fg = fg + 20
If fg > 255 Then fg = 255
Text 75, 30, " ", "C", 4, 1
Text 75, 30, Str$(fg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 52 Then
fg = fg + 1
If fg > 255 Then fg = 255
Text 75, 30, " ", "C", 4, 1
Text 75, 30, Str$(fg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 101 Then
fg = fg - 20
If fg < 0 Then fg = 0
Text 75, 30, " ", "C", 4, 1
Text 75, 30, Str$(fg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 114 Then
fg = fg - 1
If fg < 0 Then fg = 0
Text 75, 30, " ", "C", 4, 1
Text 75, 30, Str$(fg), "C", 4, 1:GoTo colorloop
EndIf
'blue foreground
If Asc(a$) = 53 Then
fb = fb + 20
If fb > 255 Then fb = 255
Text 125, 30, " ", "C", 4, 1
Text 125, 30, Str$(fb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 54 Then
fb = fb + 1
If fb > 255 Then fb = 255
Text 125, 30, " ", "C", 4, 1
Text 125, 30, Str$(fb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 116 Then
fb = fb - 20
If fb < 0 Then fb = 0
Text 125, 30, " ", "C", 4, 1
Text 125, 30, Str$(fb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 121 Then
fb = fb - 1
If fb < 0 Then fb = 0
Text 125, 30, " ", "C", 4, 1
Text 125, 30, Str$(fb), "C", 4, 1:GoTo colorloop
EndIf
'Red background
If Asc(a$) = 97 Then
br = br + 20
If br > 255 Then br = 255
Text 185, 30, " ", "C", 4, 1
Text 185, 30, Str$(br), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 115 Then
br = br + 1
If br > 255 Then br = 255
Text 185, 30, " ", "C", 4, 1
Text 185, 30, Str$(br), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 122 Then
br = br - 20
If br < 0 Then br = 0
Text 185, 30, " ", "C", 4, 1
Text 185, 30, Str$(br), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 120 Then
br = br - 1
If br < 0 Then br = 0
Text 185, 30, " ", "C", 4, 1
Text 185, 30, Str$(br), "C", 4, 1:GoTo colorloop
EndIf
'Green background
If Asc(a$) = 100 Then
bg = bg + 20
If bg > 255 Then bg = 255
Text 235, 30, " ", "C", 4, 1
Text 235, 30, Str$(bg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 102 Then
bg = bg + 1
If bg > 255 Then bg = 255
Text 235, 30, " ", "C", 4, 1
Text 235, 30, Str$(bg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 99 Then
bg = bg - 20
If bg < 0 Then bg = 0
Text 235, 30, " ", "C", 4, 1
Text 235, 30, Str$(bg), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 118 Then
bg = bg - 1
If bg < 0 Then bg = 0
Text 235, 30, " ", "C", 4, 1
Text 235, 30, Str$(bg), "C", 4, 1:GoTo colorloop
EndIf
'Blue backfround
If Asc(a$) = 103 Then
bb = bb + 20
If bb > 255 Then bb = 255
Text 285, 30, " ", "C", 4, 1
Text 285, 30, Str$(bb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 104 Then
bb = bb + 1
If bb > 255 Then bb = 255
Text 285, 30, " ", "C", 4, 1
Text 285, 30, Str$(bb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 98 Then
bb = bb - 20
If bb < 0 Then bb = 0
Text 285, 30, " ", "C", 4, 1
Text 285, 30, Str$(bb), "C", 4, 1:GoTo colorloop
EndIf
If Asc(a$) = 110 Then
bb = bb - 1
If bb < 0 Then bb = 0
Text 285, 30, " ", "C", 4, 1
Text 285, 30, Str$(bb), "C", 4, 1:GoTo colorloop
EndIf
'render colors when F1 pressed
If Asc(a$) = 145 Then
Text 0, 120, LT$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 136, LR$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 152, LR$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 168, LM$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 184, LR$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 200, LR$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 0, 216, LB$, , 4, 1, RGB(fr, fg,fb), RGB(br,bg,bb)
Text 8, 136 ,Chr$(174) + Chr$(174) + Chr$(175) + Chr$(175) + Chr$(176) + Chr$(176) + Chr$(177) + Chr$(177), , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 8, 152 ,Chr$(174) + Chr$(174) + Chr$(175) + Chr$(175) + Chr$(176) +Chr$(176) + Chr$(177) + Chr$(177), , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 10, 184 ,Chr$(178) + Chr$(178) + Chr$(219) + Chr$(220) + Chr$(221) + Chr$(222) + Chr$(223) + Chr$(177), , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 10, 200 ,Chr$(178) + Chr$(178) + Chr$(219) + Chr$(220) + Chr$(221) +Chr$(222) + Chr$(223) + Chr$(177), , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 100, 136, LT1$, , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 100, 152, LT2$, , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 100, 184, LT3$, , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
Text 100, 200, LT4$, , 4, 1, RGB(fr,fg,fb), RGB(br,bg,bb)
'show hex and numeric of rbg
Text 0, 240, "Foreground: " + Str$(RGB(fr,fg,fb)) , , 4, 1, RGB(white), RGB(100,100,100)
Text 225, 240, Hex$(RGB(fr,fg, fb))) , , 4, 1, RGB(white), RGB(100, 100,100)
Text 0, 254, "Background: " +Str$(RGB(br,bg,bb)), , 4, 1, RGB(white), RGB(100,100,100)
Text 225, 254, Hex$(RGB(br,bg,bb)), , 4, 1, RGB(white), RGB(100,100,100)
GoTo colorloop
EndIf
'F2 to quit
If Asc(a$) = 146 Then End
'F3 to save bmp of screen
If Asc(a$) = 147 Then Save image "cp_"
'F4 to log rbg values to cp_log.txt
If Asc(a$) = 148 Then
Open "cp_log.txt" For append As #1
Print #1, "Foreground:"
Print #1, Str$(fr) + "," + Str$(fg) + "," + Str$(fb) + " " +Str$(RGB(fr,fg,fb)) + " " +Hex$(RGB(fr,fg,fb))
Print #1, "Background:"
Print #1, Str$(br) + "," + Str$(bg) +"," + Str$(bb) + " "+Str$(RGB(br,bg,bb)) + " " +Hex$(RGB(br,bg,bb))
Print #1, " "
Close #1
EndIf
GoTo colorloop
Thanks