OPT 1 Produce assembly listing 2 Enable errors 4 Offset assembly to O% 8 Bounds checking below L% 16 Extended instructions 1 (ARMv4, 65C02, 6309) 32 Extended instructions 2 (65C816) 64 128 Bit 0 Produce an assembly listing It is not normal these days to output a listing as it writes junk to the screen so isn't suitable for inline code in a game or a multitasking program. That said, it might be useful during testing and debugging. Bit 1 Enable errors For the first pass of assembly this should be unset to suppress errors, otherwise forward references will fail with an "Unknown or missing variable" error. For the second pass, this bit should be set so genuinely unknown references are faulted. Bit 2 Offset assembly Sometimes there is a need to perform offset assembly, in which the code is going to be executed at a different place to that where it is assembled. In this case, you must define both P% and O%. The difference is that the code is assembled to the memory now pointed to by O% while being set up to run from the address pointed to by P%. Bit 3 Bounds checking This checks that the code assembled does not exceed the memory allocated; namely that P% does not exceed L%. You use it as follows: codesize% = 1024 DIM code% codesize%, L% -1 and then set bit 3 in the OPT statement. Bit 4 Extended instructions 1 On ARM BASIC v??? this bit allows extended instructions (i.e. ARMv4 and later) to be assembled. Reference: Steve Drain's BASIC StrongHelp manual, but I couldn't find any reference to this elsewhere. On a non-65C02 BASIC with a 6502 assembler this enables 65C02 instrucions. On a BASIC with a 6809 assembler this enables 6309 instructions. Bit 5 Extended instructions 2 On a non-65C02 BASIC with a 6502 assembler this enables 65C816 instrucions. BBC BASIC for Windows, SDL *FLOAT64 enables 64-bit addressing: P%=program address b0-b31, Q%=program address b32-b63 O%=object address b0-b31, N%=object address b32-b63 L%=limit address b0-b31, M%=limit address b32-b63 start=somewhere DIM mcode size%, limit -1 FOR pass=0 TO 1 L%=limit : M%=limit >> 32 O%=mcode : N%=mcode >> 32 P%=start : Q%=start >> 32