Floating Point BASIC 2.2
Three versions of FPB are included in Emma 02:
- fbb.bin: original FPB
- fpb_color.bin: colour version of FPB
- fpb_color_skip_loader.bin: same as above but skipping the boot loader
All files include the (original) boot loader from 0 to FF. The bootloader is also included as a stand alone file (fpb_bootloader.bin). On startup the VIP will run the bootloader where:
- Key 1: Jump directly to FPB.
- Hold 'B' while switching to 'RUN' (F12 in Emma 02): "Tape Read", this isn't needed in Emma 02 as FPB is already loaded via the fpb.bin or fpb_color.bin file.
- hold 'F' while switching to 'RUN': "Tape Write", allows user to make a copy of FPB hex 100-3FFF.
When using the fpb_color_skip_loader.bin version FPB will skip the bootloader on startup this was done by changing the following bytes: FPB only allows 32K of RAM (Due to the VIP ROM using all addresses above hex 8000). The bootloader included is set to 32K. If you would like to use less RAM you need to alter the following addresses in the fpb-rom and/or fpb_color.rom files:
Original: Mod: 0008: 62 0008: 30 0009: 0B 0009: 1A 0012: 62 0012: 30 0013: 01 0013: 1A
hex 1C - High byte of available RAM size (hex 7F for 32K) hex 1F - Low byte of available RAM size (hex FF for 32K)
Commands
All Floating Point BASIC 2.2 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.
@3200 |
@31BB |
||
@3300 |
@2D81 |
||
@1C82 |
@2F70 |
||
@2162 |
@1CFB |
||
|
@1CF7 |
||
@20D3 |
@1C8A |
||
@31E9 |
@28BA |
||
@1BDC |
|
||
@131E |
@32B9 |
||
@1C7E |
@3400 |
||
@34ED |
@22DE |
||
@3420 |
@18E2 |
||
@34BC |
@14FE |
||
@2B00 |
@1982 |
||
@2063 |
@19E1 |
||
@1501 |
@2C00 |
||
@1507 |
@1504 |
||
@1C6E |
@1F43 |
||
@34D9 |
@306E |
||
@27F8 |
@34E1 |
||
@21DB |
@26F4 |
||
@1C86 |
@34E8 |
||
@33F0 |
@106A |
||
@1D78 |
|
||
@2600 |
@1E70 |
||
@20C2 |
@1A00 |
||
@1DF1 |
@1C7A |
||
@1FE2 |
@1C8E |
||
@1DCB |
@1FF3 |
||
@20A6 |
|
||
@13EC |
@1BF1 |
||
@2E00 |
@1EF0 |
||
@2599 |
@1CE7 |
||
|
@1B7D |
||
@1904 |
@1B6A |
||
@17E6 |
@2165 |
||
|
|
@33D4 |
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:<=
Miscellaneous operators
: | separates statements on the same line |
; | PRINT delimiter |
, | PRINT delimiter |
“ | string delimiter |
( | group terms |
) | group terms |
# | 8 bit hexadecimal values |
@ | 16 bit hexadecimal values |
System Parameters
Memory @4000-@4200 in the Floating Point BASIC 2.2 is used by BASIC for storing data, usage for some of the addresses is explained below.
4000 - 405F | Line buffer |
4081 - 4082 | DEFUS value |
4083 - 4084 | EOP (End Of Program) value |
408A - 408D | In hook, call to input routine |
408E - 4091 | Out hook, call to output routine |
4092 - 4093 | End array/start string value |
4094 - 4095 | Start array value |
4099 - 409A | EOD (End Of Data) and end string value |
409B | X value TAB |
409D | Flags |
409E | Start address user RAM |
409F - 40A2 | Call to BASIC functions |
40A3 - 40A6 | Call to BASIC functions |
40B1 - 40B2 | DATA pointer |
4100 - 4168 | Storage A, B, C.... Z, 4 bytes per variable |