UBASIC Speed Hints

Loops
A loop containing 
    if Inbyte<>I then ....
Took 219 ms

where a loop containing
    If Inbyte=I then....
Took 31 ms, or about 7 times faster.

Subroutines
If the sub is small, your program may run significantly faster if the code is in the main body rather using the subroutine, especially if sub is called many times.

 

On a 486DX/4 75 MHz:

310    Inbyte%=bitxor(bitor(bitand(inp(957),240),bitand(inp(958),15)),139)

Runs in 65% of the time it takes this:

310    B1=bitand(inp(base+1),240)
320    B2=bitand(inp(base+1),15)
330    Inbyte=bitor(B1,B2)

Using Hex instead of decimal values slowed it down slightly.

BUT,  Out base%,0   tested 4% faster than   Out 956,0.      Four percent may not seem like much, but multiply that by the number of times it is used, and the number of nodes installed.

 

UBASIC Commands

CLR A is faster than A = 0.

DEC A is faster than A = A - 1.

ENCODE(string)  makes VAL faster.

INC A is faster than A = A + 1.

NEG A is equivalent to A = -A, but faster.