Keyboard Microsoft BASIC

From Intellivision Wiki

Jump to: navigation, search

(this is a stub article. must upload photos of BASIC cart as well.)

Microsoft ported a version of its ubiquitous BASIC to the Intellivision Keyboard Component. It reports itself as "Intellivision BASIC" with the following copyright: "Copyright Microsoft, Mattel 1980."

The version found on the Keyboard Component appears to be based off the same 8K BASIC that other late-70s and early 80s machines used. Similarities included the cryptic 2-character error codes associated with those versions of BASIC. The BASIC interpreter is a 6502-specific program that does not appear to make use of any Master Component functionality. The BASIC interpreter is 8K bytes in size, and resides at $E000 - $FFFF in the address map.

The BASIC interpreter supports the following keywords:

END           PRINT       SGN
FOR           CONT        INT
NEXT          LIST        ABS
DATA          CLEAR       VER
INPUT         PRT         FRE
DIM           NEW         POS
READ          TAB(        SQR
LET           TO          RND
GOTO          FN          LOG
RUN           SPC(        EXP
IF            THEN        COS
RESTORE       NOT         SIN
GOSUB         STEP        TAN
RETURN        +           ATN
REM           -           GETC
STOP          *           LEN
ON            /           STR$
PLOD          #           VAL
PSAV          AND         ASC
VLOD          OR          CHR$
VSAV          >           LEFT$
DEF           =           RIGHT$
SLOD          <           MID$

It reports the following error codes:

GO  ??
NF  NEXT without FOR
SN  Syntax error
RG  RETURN without GOSUB
OD  Out of DATA.  Attempted to READ beyond last DATA statement.
FC  Illegal function call (e.g. arguments are out of range)
OV  Numeric overflow
OM  Out of memory
US  Undefined line number
BS  Bad array subscript 
DD  Attempt to re-DIM an array
/0  Division by 0
ID  Illegal direct-mode instruction.  Instruction legal only inside a program.
TM  Type mismatch. (e.g. assigning a number to a string variable or vice versa)
LS  Long string.  Strings have a maximum length of 255(?) chars.
ST  String operation is too complex
CN  Can't continue
UF  ?? Undefined user function?
TR  ?? Tape read error?
TP  ?? Tape error?
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox