Changes

Jump to: navigation, search

Technical information about Locomotive BASIC

3,958 bytes removed, 07:02, 15 March 2007
{|{{Prettytable|width: 700px; font-size: 2em;}}
|''Code (hexidecimal)Offset''||''BASIC KeywordCount''||''Description''
|-
|&000||end of tokenised line marker1||"|" character prefix
|-
|&011||":" statement seperator1||8-bit byte offset to tokens following RSX name.
|-
|&02||integer variable definition (defined with "%" suffix)|-|&03||string variable definition (defined with "$" suffix)|-|&04||floating point variable definition (defined with "!" suffix)|-|&05||var?|-|&06||var?|-|&07||var?|-|&08||var?|-|&09||var?|-|&0a||var?|-|&0b||variable definition (no suffix)|-|&0c||variable definition (no suffix)|-|&0d||variable definition (no suffix)|-|&0e||number constant "0"|-|&0f||number constant "1"|-|&10||number constant "2"|-|&11x||number constant "3"|-|&12||number constant "4"|-|&13||number constant "5"|-|&14||number constant "6"|-|&15||number constant "7"|-|&16||number constant "8"|-|&17||number constant "9"|-|&18||number constant "10"|-|&19||8-bit integer decimal value|-|&1a||16-bit integer decimal value|-|&1b||16-bit integer binary value RSX name. (with "&X" prefix)|-|&1c||16-Last character of name has bit integer hexadecimal value (with 7 set to "&H1" or "&" prefix)|-|&1d||16-, all other characters have bit BASIC program line memory address pointer|-|&1e||16-bit integer BASIC line number|-|&1f||floating point value|-|&20||7 set to " 0" (space) symbol|-|&21||ASCII "!" symbol|-|&22||quoted string value|-|&23-7b||ASCII printable symbols|-|&7c||"|" symbol; prefix for RSX commands|-|&80||[[AFTER]]|-|&81||[[AUTO]]|-|&82||[[BORDER]]|-|&83||[[CALL]]|-|&84||[[CAT]]|-|&85||[[CHAIN]]|-|&86||[[CLEAR]]|-|&87||[[CLG]]|-|&88||[[CLOSEIN]]|-|&89||[[CLOSEOUT]]|-|&8a||[[CLS]]|-|&8b||[[CONT]]|-|&8c||[[DATA]]|-|&8d||[[DEF]]|-|&8e||[[DEFINT]]|-|&8f||[[DEFREAL]]|-|&90||[[DEFSTR]]|-|&91||[[DEG]]|-|&92||[[DELETE]]|-|&93||[[DIM]]|-|&94||[[DRAW]]|-|&95||[[DRAWR]]|-|&96||[[EDIT]]|-|&97||[[ELSE]]|-|&98||[[END]]|-|&99||[[ENT]]|-|&9a||[[ENV]]|-|&9b||[[ERASE]]|-|&9c||[[ERROR]]|-|&9d||[[EVERY]]|-|&9e||[[FOR]]|-|&9f||[[GOSUB]], [[GO SUB]]|-|&a0||[[GOTO]], [[GO TO]]|-|&a1||[[IF]]|-|&a2||[[INK]]|-|&a3||[[INPUT]]|-|&a4||[[KEY]]|-|&a5||LET|-|&a6||LINE|-|&a7||LIST|-|&a8||LOAD|-|&a9||LOCATE|-|&aa||MEMORY|-|&ab||MERGE|-|&ac||MID$|-|&ad||MODE|-|&ae||MOVE|-|&af||MOVER|-|&b0||NEXT|-|&b1||NEW|-|&b2||ON|-|&b3||ON BREAK|-|&b4||ON ERROR GOTO, ON ERROR GO TO|-|&b5||SQ|-|&b6||OPENIN|-|&b7||OPENOUT|-|&b8||ORIGIN|-|&b9||OUT|-|&ba||PAPER|-|&bb||PEN|-|&bc||PLOT|-|&bd||PLOTR|-|&be||POKE|-|&bf||PRINT|-|&c0||"'" symbol (same function as REM keyword)|-|&c1||RAD|-|&c2||RANDOMIZE|-|&c3||READ|-|&c4||RELEASE|-|&c5||REM|-|&c6||RENUM|-|&c7||RESTORE|-|&c8||RESUME|-|&c9||RETURN|-|&ca||RUN|-|&cb||SAVE|-|&cc||SOUND|-|&cd||SPEED|-|&ce||STOP|-|&cf||SYMBOL|-|&d0||TAG|-|&d1||TAGOFF|-|&d2||TROFF|-|&d3||TRON|-|&d4||WAIT|-|&d5||WEND|-|&d6||WHILE|-|&d7||WIDTH|-|&d8||WINDOW|-|&d9||WRITE|-|&da||ZONE|-|&db||DI|-|&dc||EI|-|&dd||FILL (v1.1)|-|&de||GRAPHICS (v1.1)|-|&df||MASK (v1.1)|-|&e0||FRAME (v1.1)|-|&e1||CURSOR (v1.1)|-|&e2||(note 2)|-|&e3||ERL|-|&e4||FN|-|&e5||SPC|-|&e6||STEP|-|&e7||SWAP|-|&e8||(note 2)|-|&e9||(note 2)|-|&ea||TAB|-|&eb||THEN|-|&ec||TO|-|&ed||USING|-|&ee||> (greater than)|-|&ef||= (equal)|-|&f0||>=, > =, => (greater or equal)|-|&f1||< (less than)|-|&f2||<>, < > (not equal)|-|&f3||=<, <=, < = (less than or equal)|-|&f4||+ (addition)|-|&f5||- (subtraction or unary minus)|-|&f6||* (multiplication)|-|&f7||/ (division)|-|&f8||^ (x to the power of y)|-|&f9||\ (integer division)|-|&fa||AND|-|&fb||MOD|-|&fc||OR|-|&fd||XOR|-|&fe||NOT|-|&ff||(prefix for additional keywords)
|-
|}
 
''Notes:''
 
* The &ff code is used as a prefix for more keywords. See the table below for the list of keywords using this prefix.
* &e2,&e8 and &e9 are not used
* &7c ("|") is a character prefix used to identify a RSX command.
 
e.g. "|DIR".
 
An RSX is encoded in a BASIC program using the following structure:
 
Offset Count Description
0 1 "|" character prefix
1 1 8-bit byte offset to tokens following RSX name.
2 x RSX name. (Last character of name has bit 7 set to "1", all other characters have bit 7 set to "0")
* This token identifies a integer (16-bit) number. The two bytes following this token is the number, stored low byte then high byte. e.g. &19,&2d,&00 represents the integer number "&002d"="45".
* This token (&0B) is changed at run-time to &0D
12,273
edits