Remove ads
From Wikipedia, the free encyclopedia
Color BASIC is the implementation of Microsoft BASIC that is included in the ROM of the Tandy/Radio Shack TRS-80 Color Computers manufactured between 1980 and 1991. BASIC (Beginner's All-purpose Symbolic Instruction Code) is a high level language with simple syntax that makes it easy to write simple programs. Color BASIC is interpreted, that is, decoded as it is run.
Designed by | Bill Gates[1] |
---|---|
Developer | Microsoft |
First appeared | 1980 |
Stable release | Color BASIC 1.3 (1982) Extended Color BASIC ("ECB") (1984) Disk Extended Color BASIC ("DECB") (1984) |
Platform | TRS-80 Color Computer |
The nucleus of Color BASIC was Microsoft BASIC-69 which Tandy licensed from Microsoft. Color BASIC 1.0 was released with the original 4k TRS-80 Color Computer in 1980. It resides on 8k bytes of ROM, and is responsible for all 'housekeeping' duties on the system. This includes hardware initialization, memory management, interrupt processing, etc. Like most implementations of BASIC, each line of code starts with a line number and consists of one or more statements with variables and operators. 16k of memory is required for the next level of BASIC, Extended Color BASIC ("ECB"). Extended BASIC is required for the floppy disk controller, which then gives you Disk Extended Color BASIC ("DECB"). Emulators of the Color Computers running this interpreter and the others are available for modern computers, some of which require a "snapshot" file of the physical machine.[2]
Color BASIC understands one type of numeric variable and string variables. Variable names in Color BASIC have the first two characters significant. The first character of the variable name must be a letter. The second can be either a letter or number. String variables are indicated by adding a dollar sign ($) after the variable name.
A=5
A$="THIS IS A STRING"
K7=10
BB$="HELLO!"
ZZ=1.54
Numeric variables have only one type, a binary floating point implementation. Each numeric variable uses 5 bytes of memory and can be in the range from -1E+38 up to 1E+37.
Unlike most implementations of Microsoft BASIC, Color BASIC requires the user to reserve space for string variables via the CLEAR statement.
Multidimensional arrays are also supported with both numeric and string variables. In the case of an array, the element address is enclosed with a parenthesis:
A(1)=1
A$(1)="BOOKS"
Multiple dimensions are separated by commas
A(1,3)=4
A$(2,2)="XYZ123"
Color BASIC provides several operators for both mathematic and, to a lesser extent, string operations.
Parenthesis ( ) are used to override mathematical order of operation
For testing, the following operators are used:
Other symbols used in BASIC:
num indicates a numeric expression is required. This can be a fixed number, a variable, or other operation or function that returns a numeric quantity.
str indicates a string expression is required. This can be a static string value (in quotes), a string variable, or other function or expression that returns a string of characters.
device number indicates a device. By default, device 0 (screen and keyboard) is assumed. In Color BASIC, device #-1 (cassette) and #-2 (printer) are available to the programmer.
If you make a mistake typing in a line, you can either retype it from scratch (or DEL it).. or you can EDIT it. When in EDIT mode, you get a reprint of the line, and a second copy that you SPACEbar across chars. You cannot use arrow keys. backspace takes you left, but does not actually erase it in the buffer. 'i' puts you in insert mode. pressing return gets you out of it. 'c' changes one char, 'd' deletes one char. 'x' takes you to end of line, allowing you to e'x'tend it. 'l' redraws the line. 's' searches for the next instance of a character. For the 's', 'c' and 'd' commands you can also enter a number (#) before pressing any of them which will: 's' - search for the # instance of the character, 'c' - allow you to change # of characters, 'd' - delete # amount characters.
ABS(num)
ASC(str)
CHR$(num)
EOF(device number)
INKEY$
INT(num)
INSTR(startpos,search str,target str)
JOYSTK(num)
LEFT$(str,num)
LEN(str)
MEM
MID$(str,start num,length num)
PEEK(num)
POINT(x num,y num)
RIGHT$(str,position num)
RND(number)
SGN(num)
SIN(num)
STR$(num)
USR(num)
AUDIO [ON|OFF]
CLEAR variable space[,highest memory location]
CLOAD ["name"]
CLOADM ["name"]
CLOSE [device number]
CLS(num)
CONT
CSAVE ["name"]
DATA var,var,var...
DIM variable(dimension[,dimension 2,...]
END
EXEC
INPUT [device number] [{prompt text};] variable [,variable 2, variable n]
LIST [starting line] - [ending line]
LLIST [starting line] - [ending line]
MOTOR [ON|OFF]
NEW
ON {num} GOSUB line 1, line 2, ... line n
ON (num) GOTO line 1, line 2, ... line n
OPEN "[I|O]",device number[,"filename"]
POKE memory address, data
PRINT device number,expression
PRINT @{screen position} expression
READ variable[,variable,...]
RENUM NewStart num, OldStart num, Increment num
RESET(x,y)
RESTORE
RETURN
RUN num
SET(x,y,color)
SKIPF ["filename"]
SOUND tone,duration
STOP
TAB(column)
VAL(str)
GOSUB {line number}
GOTO {line number}
IF {test} THEN {command(s)} [ELSE {command(s)}]
FOR {num} = {number} TO {number} [STEP {number}] ... NEXT (num)
/0
AO
BS
CN
DD
DN
DS
FC
FD
FM
ID
IE
IO
LS
NF
NO
OD
OM
OS
OV
RG
SN
ST
TM
UL
There are a few subroutines available for machine language programs in the Color BASIC ROM that are available for general purpose programming.
POLCAT
CHROUT
CSRDON
BLKIN
BLKOUT
JOYIN
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.