GOTO (arithmetical expression) - Printable Version +- Forum (https://www.boriel.com/forum) +-- Forum: Compilers and Computer Languages (https://www.boriel.com/forum/forumdisplay.php?fid=12) +--- Forum: ZX Basic Compiler (https://www.boriel.com/forum/forumdisplay.php?fid=11) +---- Forum: Help & Support (https://www.boriel.com/forum/forumdisplay.php?fid=16) +---- Thread: GOTO (arithmetical expression) (/showthread.php?tid=351) GOTO (arithmetical expression) - JBGV - 05-09-2011 Hello! Could anyone tell me how I can simulate "GOTO (arithmetical expression)": ex: Code:```N can have a value between 1 and 20 GOTO (1000+(N*10))``` I need to assign values ​​to an array depends on the value "N", I had thought something like this: Code:```ASM ORG 62000 DEFB 12,5,8,11,12,11,4,11,(...)       END ASM DIM P(7) AS UBYTE ... N=20 ... FOR B=0 TO 7 P(B)=PEEK (62000+N+B) NEXT B``` Is this efficient? Is there a danger that the program itself erase the data stored at positions 62000? THANKS Re: GOTO (arithmetical expression) - LCD - 05-11-2011 Line numbers? this is stone age! just make a buffer and calculate the offset to copy the data from memory to variable array. pseudocode, as I'm at work now: Code:```address=@labelofdata+size*n copymemory(address,@p(),size)```There is a include for copymemory... This if efficiency! GoTo calculation was working only in HiSoft Basic compiler, but you had do define all possible lines for calculated jumps with REM: GOTO directive. With more programming experience there is absolutly no need for calculated goto. Re: GOTO (arithmetical expression) - JBGV - 05-11-2011 Copymemory, Thanks ¡