Yes there is, but it's not much:
sync on
sync rate 60
` Generate a pretty image
lock pixels
for x = 0 to 63
for y = 0 to 63
dot x, y, rgb(x*4, y*4, 256-(x*2)-(y*2))
next
next
unlock pixels
get image 1, 0, 0, 64, 64, 1
make object cube 1, 1.0
texture object 1, 1
repeat
` Rotate the box
yrotate object 1, wrapvalue(object angle y(1) + 0.2)
xrotate object 1, wrapvalue(object angle x(1) + 0.4)
zrotate object 1, wrapvalue(object angle z(1) + 0.6)
` Get some input and display it
NewInput$ = GetInput(100, 300)
` The function only returns something when you hit the enter key
if NewInput$ <> ""
LastInput$ = NewInput$
endif
text 0, 0, LastInput$
sync
until lower$(LastInput$) = "quit"
end
function GetInput(x as integer, y as integer)
local In as string
local ReturnPos as integer
local Result as string
Result = ""
` Read the entry buffer - let it take care of backspaces itself
In = entry$(1)
` Look for the return key
ReturnPos = find char(In, cr$())
if ReturnPos > 0
` If return key found, store to that point, then remove it from the entry buffer
Result = fast left$( In, ReturnPos-1 )
set entry buffer remove$( In, 1, ReturnPos )
else
` No return key, so just display what's been keyed
text x, y, In
endif
endfunction Result
... a few string commands included, but the big one is SET ENTRY BUFFER, which allows you to write back to the entry buffer. I'm actually using the entry buffer as if it were a global string.