The CHROMAtrs was a TRS‑80 Model I and III add-on that could display color text and graphics on a separate monitor or television. The CHROMAtrs had advanced graphics and sound features, but using those features required low-level programming that was beyond the abilities of many people. That all changed with the introduction of CHROMA BASIC.
CHROMA BASIC was written by Robert French, who was 14 years old at the time. It added over 68 commands to BASIC to manipulate the graphics, sound, and joystick features of the CHROMAtrs. Although originally priced at $30.00, CHROMA BASIC was soon bundled with the CHROMAtrs package and prominently featured in the advertisements.
CHROMA BASIC was offered in both tape and disk versions. The Model I disk version worked with most popular operating systems including TRSDOS, NEWDOS/80, and LDOS. The Model III disk version worked with TRSDOS, NEWDOS/80, LDOS, and DOSPLUS. There were also special versions for 32K disk systems and 16K cassette systems, although the limited memory meant that some of the commands were not available.
The CHROMA BASIC commands fit into several categories:
INIT, COLOR, SCREEN, CLR, PLOT, UNPLOT, PAINT, POSITION, TEXT, WRITE, SREAD, DASH, POLYGON, CIRCLE, PIE, STORE, RETRIEVE, DRAW, BLANK, NOBLANK, DUMP, WINDOW
DISPLAY, ROTATE, STRETCH
SOUND, DUTY, EFFECT, HARMONY, STATIC, SIRENUP, SIRENDOWN, STEREO
Sprite handling commands:
SMALL, LARGE, ZOOM, NOZOOM, CREATE, DEFPAT, UNPAT, ASSIGN, SCOLOR, MOVE, MREL, PLACE, ERASE, VELOC, CLRVELOC, PAUSE, NOPAUSE, LEFT, NORMAL, EXIT, SPRSAVE, SPRLOAD
&POINT, &JOYSTK, &PDL, &STRIG, &PTRIG, &SPRX, &SPRY, &SPRC, &SPRP, &UNCREATE, &COINCE, &FIFTH, &XVELOC, &YVELOC
This sample program was listed at the end of the CHROMA BASIC manual. Using only a handful of CHROMA BASIC commands, it displays a pie chart based on values entered.
10 INIT 1: COLOR 15: DIM A(50)
20 CLS: PRINT"PIE CHART": PRINT
30 PRINT"ENTER THE NUMBER OF ITEMS IN EACH GROUP, –1 TERMINATES."
40 PRINT: X=1
50 INPUT A(X): IF A(X) = -1 THEN X= X-1: GOTO 80
60 S = S + A(X)
70 X = X + 1: GOTO 50
80 G = 360/S
90 P = 0
100 FOR Y=1 TO X
120 IF Y = X THEN L = 360 ELSE L = A(Y) * G + P
130 PIE 0,128,96,95,95,P,L: P = L
140 NEXT Y