Sure, why not? If you need to, you could create your own types with a memblock.
Maybe you have a character that has a name, some stats, and a weapon. Set up a memblock to store all those things:
name max characters = 20 so that'll be 20 bytes
health = maybe only from 0 to 100 - we could use a single byte instead of a 4 byte integer if we used an array or standard variable
attitude = same thing as health
has a weapon = maybe 1 byte again - just yes or no
weapon name = another string maybe 20 characters
weapon power = another byte or maybe a word - let's make it a word so it can be devastating if we want
So let's add up all those bytes: 20 + 1 + 1 + 1 + 20 + 2 = 45 bytes
So each character's type can be stored in 45 bytes. Now, depending on how many characters there are, we multiply 45 times that and that is the size of the memblock (we'll say 20 characters)
make memblock 1,45*20
To access a character, every 45 bytes is an index starting at 0:
rem 45 bytes per char
rem 20 chars
mem=1
make memblock mem,20*45
rem make sure the memblock is clear
for n=0 to get memblock size(mem)-1
write memblock byte mem,n,0
next n
rem just putting a name in the memblock - make a function for this
name$="vinny"
for n=0 to len(name$)-1
write memblock byte mem,n,asc(mid$(name$,n+1))
next n
print query_character(1,1,1)
end
function query_character(cnum,stat,mem)
rem identify positions in memblock
pos=(cnum-1)*45
cname=0
health=20
attitude=21
hasweapon=22
wname=23
wp=43
temp$=""
rem get the stat info
select stat
case 1
pos=pos+cname
temp$=""
for n=pos to pos+20
temp$=temp$+chr$(memblock byte(mem,n))
next n
`exitfunction temp$
endcase
case 2
pos=pos+health
temp$=str$(memblock byte(mem,pos))
endcase
case 3
pos=pos+attitude
temp$=str$(memblock byte(mem,pos))
endcase
case 4
pos=pos+hasweapon
temp$=str$(memblock byte(mem,pos))
endcase
case 5
pos=pos+wname
temp$=""
for n=pos to pos+20
temp$=temp$+chr$(memblock byte(mem,n))
next n
`exitfunction temp$
endcase
case 6
pos=pos+wp
temp$=str$(memblock word(mem,pos))
endcase
case default
rem if non of the stats were chosen we can return an error code
rem I'll use -999 as the error code meaning invalid stat
temp$="-999"
endcase
endselect
endfunction temp$
Enjoy your day.