Difference between revisions of "Keyboard Microsoft BASIC"

From Intellivision Wiki
Jump to: navigation, search
 
m
Line 41: Line 41:
 
  OV  Numeric overflow
 
  OV  Numeric overflow
 
  OM  Out of memory
 
  OM  Out of memory
  US  ??
+
  US  Undefined line number
 
  BS  Bad array subscript  
 
  BS  Bad array subscript  
 
  DD  Attempt to re-DIM an array
 
  DD  Attempt to re-DIM an array
Line 50: Line 50:
 
  ST  String operation is too complex
 
  ST  String operation is too complex
 
  CN  Can't continue
 
  CN  Can't continue
  UF  ??
+
  UF  ?? Undefined user function?
 
  TR  ?? Tape read error?
 
  TR  ?? Tape read error?
 
  TP  ?? Tape error?
 
  TP  ?? Tape error?

Revision as of 13:37, 1 July 2006

(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?