USR
Syntax
USR(<address>)
USR(<string value>)
Description
This function exist for the sole compatibility with Sinclair BASIC. It's not needed in ZX Basic.
If used with a numeric argument, it will jump to the given memory address and start executing the machine code from there.
To return the control to BASIC, a ret
instruction must be executed. The value of the BC register will be used as the
value (uInteger) returned by the function.
If used with a string argument, it will return the UDG (User Defined Graphic) memory address of the first character of the string.
For example, for the \A
UDG, USR "a"
will return the address of it. This function is case insensitive.
Returned value type is UInteger.
Examples
To call a machine code routine:
REM Uses USR to invoke a machine code routine
PRINT "BC register returned "; USR @myRoutine
END
myRoutine:
Asm
ld bc, 1234
ret
End Asm
To work with UDG:
REM Creates an UDG with Horizontal lines
FOR i = 0 TO 7:
POKE USR "a" + i, 255 * (i MOD 2)
NEXT i
PRINT "\A is the UDG A"
Remarks
- This function is 100% Sinclair BASIC Compatible