OK now I understand completely what I am dealing with here all together. It seems I still need to grasp the bank system all together. I am going to paste the code here with my correction and what I will do with it in my own...so you can see me on top of my shoulder and tell me where I went wrong or tell me you are doing it right.
So Board is the declared value I have at the beginning of the program, boardsteps is set to five and is set as global variable at the top of my program. BoardX is set 0 and BoardY is 1 and it is also a global value at the beginning of the program. This value here ITEMLOC= Fn BOARDARRAY(X,Y,0,15+X) I have fixed it and made it like this instead ITEMLOC= Fn BOARDARRAY(X,Y,0,15). However, offset will always and always be zero....is that wrong? If so..how do I know what offset it will be in? This one here you said it is wrong If Peek(ITEMLOC+10)=0 it should really be If Peek(ITEMLOC+0)=0 or 1, or 2, or 3, because my understanding that is actually the index of the array as say Array(0) and Array(1) and so on. If that is what you are saying is true...why do I need Fn BOARDARRAY(X,Y....then? Aren't these X,Y the same as Array(X,Y)? Should these be the ones that change in value or what you are saying that ITEMLOC+0 should always be zero?
HA! So I have proved that I did not really understand how this works all together...but hopefully it will stick in my hand and I will become professional on this!
Procedure SETBOARDARRAY[X1INIT,Y1INIT,X2INIT,Y2INIT]
Shared BOARDSTEPS,BOARDX,BOARDY,BOARD
For Y=0 To 21
For X=0 To 32
Def Fn BOARDARRAY(X,Y,OFFSET,BANKNUM)=BOARDHEADER+OFFSET+((X+Y*(Peek(Start(BANKNUM)+BOARDX))*BOARDSTEPS))
ITEMLOC= Fn BOARDARRAY(X,Y,0,15)
If Peek(ITEMLOC+10)=0
Doke ITEMLOC+X1,X1INIT
Doke ITEMLOC+Y1,Y1INIT
Doke ITEMLOC+X2,X2INIT
Doke ITEMLOC+Y2,Y2INIT
Locate 20,20 : Print Peek( Fn BOARDARRAY(0,0,OFFSET,15+X))
Wait 30
Locate 20,20 : Print " "
Goto QUIT
End If
Next X
Next Y
QUIT:
End Proc