効率が良いかは解りませんが以下のようにすれば、DATAだけでSPSETからSPOFSがまとめてできます。DATAの左端から順に管理番号、定義番号、X座標、Y座標となっています。()の中を付け足すことでZ座標も指定できます。
DATA -1,0,0,0(,0)のように左端を-1にすることで終わりを示します。
RESTORE @SP
WHILE 1
READ A,B,X,Y(,Z)
IF A==-1 THEN BREAK
SPSET A,B
SPOFS A,X,Y(,Z)
WEND
@SP
DATA 0,1,100,50(,500)
DATA 1,5,120,100(,-50)
DATA -1,0,0,0(,0)