this gosub is supposed to load a series of track blocks from a txt file, but it only seems to load the last block.
loading:
cls
input "Open: ",savename$
savename$=savename$+".txt"
if file exist(savename$) then goto skipopen
print "File Not Found":wait key:return
skipopen:
for r=1 to q
delete object r
piece(r)=0
next r
open to read 1,savename$
read string 1,q$
q=val(q$)
for e=2 to q
read string 1,piece$(e)
piece(e)=val(piece$(e))
next e
close file 1
trackx#=0
tracky#=0
trackz#=0
trackax#=0
trackay#=0
trackaz#=0
for t=2 to q
if piece(t)=1
piece(t)=1
load object "straight.x",q
position object q,trackx#,tracky#,trackz#
rotate object q,trackax#,trackay#,trackaz#
trackx#=newxvalue(trackx#,trackay#,1.9)
trackz#=newzvalue(trackz#,trackay#,1.9)
endif
if piece(t)=2
piece(1)=2
load object "up.x",q
position object q,trackx#,tracky#,trackz#
rotate object q,trackax#,trackay#,trackaz#
trackx#=newxvalue(trackx#,trackay#,1.9)
tracky#=tracky#+1.75
trackz#=newzvalue(trackz#,trackay#,1.9)
endif
if piece(t)=3
piece(t)=3
load object "down.x",q
position object q,trackx#,tracky#,trackz#
rotate object q,trackax#,trackay#,trackaz#
trackx#=newxvalue(trackx#,trackay#,1.9)
tracky#=tracky#-1.75
trackz#=newzvalue(trackz#,trackay#,1.9)
endif
if piece(t)=4
piece(t)=4
trackay#=wrapvalue(trackay#+90)
endif
if piece(t)=5
piece(t)=5
trackay#=wrapvalue(trackay#-90)
endif
next t
return

Programs for programmers.