Hmmm...
I've got a main idea how to do this.
You could save the content of an array in another.
Then you undim the first array and dim it with 1 more place in the dimension you like.
I tried this to code but I don't find the mistake that I'm doing.
Maybe I don't see the forest because of the trees
.
sync on:fastsync
randomize timer()
dim test(0,0,0,0,0)
while mouseclick()<>1
test(oldpos1,0,0,0,0)=rnd(1000)
test(0,oldpos2,0,0,0)=rnd(1000)
test(0,0,oldpos3,0,0)=rnd(1000)
test(0,0,0,oldpos4,0)=rnd(1000)
test(0,0,0,0,oldpos5)=rnd(1000)
inc oldpos1 : inc oldpos2 : inc oldpos3 : inc oldpos4 : inc oldpos5
risingarray(oldpos1,oldpos2,oldpos3,oldpos4,oldpos5,oldpos1+1,oldpos2+1,oldpos3+1,oldpos4+1,oldpos5+1)
cls
text 1,1,str$(test(oldpos1,0,0,0,0)): text 1,10,str$(test(0,oldpos2,0,0,0)): text 1,20,str$(test(0,0,oldpos3,0,0)): text 1,30,str$(test(0,0,0,oldpos4,0)): text 1,40,str$(test(0,0,0,0,oldpos5))
sync
endwhile
function risingarray(oldpos1,oldpos2,oldpos3,oldpos4,oldpos5,newpos1,newpos2,newpos3,newpos4,newpos5)
dim change(pos1,pos2,pos3,pos4,pos5)
for i1=0 to oldpos1
for i2=0 to oldpos2
for i3=0 to oldpos3
for i4=0 to oldpos4
for i5=0 to oldpos5
change(i1,i2,i3,i4,i5)=test(i1,i2,i3,i4,i5)
next i5
next i4
next i3
next i2
next i1
undim test()
dim test(p1,p2,p3,p4,p5)
for i1=0 to oldpos1
for i2=0 to oldpos2
for i3=0 to oldpos3
for i4=0 to oldpos4
for i5=0 to oldpos5
test(i1,i2,i3,i4,i5)=change(i1,i2,i3,i4,i5)
next i5
next i4
next i3
next i2
next i1
endfunction
"If you can't make it good
make it look good."
Bill Gates