RCA BASIC3 V1.1
Two versions of this BASIC are available: one running on the ELf machines in Emma 02 and one running from ROM on the RCA MDCS. On this site I have indicated where there ar differences with 'Elf version' and MDCS version'.
Start-up
To start RCA BASIC3 V1.1 in the Elf version first wait a few seconds (until the data display on the main Elf board shows 14) then press return followed by ‘C’ for a cold start and ‘W’ for a warm start.
To start RCA BASIC3 on the MDCS type 'B' from within the UT62 and then press return followed by ‘C’ for a cold start and ‘W’ for a warm start.
Commands
All RCA BASIC3 V1.1 Commands including some of the start addresses of these commands are listed below. Click on the command itself to get a description of command format and usage. The first address listed is for the Elf version, the second for the MDCS.
The commands BYE, DLOAD, DSAVE, PLOAD, PSAVE only work on the MCDS version.
@4B09 - @CDD9 |
@3B03 |
||
@3991 - @D15C |
@4004 |
||
@3D06 - @D067 |
@3500 |
||
@2997 - @B225 |
@2A68 |
||
@3B6B - @CF01 |
@3D0C |
||
|
@3FAC |
||
@31D0 - @B9ED |
|
||
CLOSE |
@2927 - @B19F |
@22C2 |
|
@40F3 - @C6FF |
@2833 |
||
@3D03 - @D064 |
@3E7B |
||
@34FB - @C2FB |
@2800 |
||
@48D8 - @C8DA |
@39DF |
||
@44ED - @C8FA |
@38E2 |
||
@51F7 |
@2524 |
||
@3900 |
@40C1 |
||
DIN |
@31B9 |
@4501 - @C900 |
|
@422D |
@273F |
||
@2527 |
@51FA |
||
@2FF8 |
@4F6C |
||
DOUT |
@31A2 |
@3FF9 |
|
@2742 |
@3600 |
||
@2600 |
@34EF |
||
@228C |
@3EAB |
||
@30C9 |
RFLN |
@26F5 |
|
@47E1 |
@3800 |
||
@41B9 |
@3276 |
||
@41B6 |
|
||
@51AF |
@3899 |
||
@3D09 |
@3D00 |
||
@3DE7 |
@3D0F |
||
@3E00 |
@27F5 |
||
@3400 |
|
||
@50F0 |
@2FEA |
||
@398E |
@29F2 |
||
@3EB7 |
@40E0 |
||
@412A |
@3B6E |
||
@4233 |
@35DA |
||
@28C3 |
WFLN |
@296C |
|
@3F74 |
@2286 |
||
|
|
|
Operators
Arithmetic operators
Unary minus | - | (first priority) |
Exponentiation | ↑ | (first priority) |
Multiply | * | (second priority) |
Divide | / | (second priority) |
Add | + | (third priority) |
Subtract | - | (third priority) |
Assignment operator
The assignment symbol is the equal sign ‘=‘.
Relational operators
Equality: =
Inequality: <>
Greater than: >
Less than: <
Greater than or equal to: >=
Less than or equal to: <=
Logical operators
Miscellaneous operators
: | separates statements on the same line |
; | PRINT delimiter |
, | PRINT delimiter |
“ | string delimiter |
( | group terms |
) | group terms |
\..\ | 8 bit binary values |
# | 8 bit hexadecimal values |
@ | 16 bit hexadecimal values |
System Parameters
In the Elf version memory @5200-@5400 and in the MCDS version @0000-@0200 is used by the BASIC for storing data, usage for some of the addresses is explained below. MCDS addresses are shown, for the ELf version add @5200.
0000 - 005F | Line Buffer |
0081 - 0082 | DEFUS value |
0083 - 0084 | EOP (End Of Program) value |
008A - 008D | In hook, call to input routine |
008E - 0091 | Out hook, call to output routine |
0092 - 0093 | End array/start string value |
0094 - 0095 | Start array value |
0099 - 009A | EOD (End Of Data) and end string value |
009B | X value TAB |
009D | Flags |
009E | Start address user RAM |
009F - 00A2 | Call to BASIC functions |
00A3 - 00A6 | Call to BASIC functions |
00B1 - 00B2 | DATA pointer |
00BB | High byte memory end |
00D0 - 00xx | Converted Line buffer, this will overwrite A - Z variable storage |
0100 - 0168 | Storage A, B, C.... Z, 4 bytes per variable |