Commodore‎ > ‎BASIC‎ > ‎Keywords‎ > ‎

RESTORE

Keyword Abbreviation Token (hex) Version(s) Classification
RESTORE RE{Shift+S} 8C 1.0 to 7.0 Command and Statement

 
Syntax  
RESTORE lineNumber ] ...
 
Parameters Type Legal Value(s) Default Value Note(s)
lineNumber Unsigned Integer 0 ~ 63999 first line of program Only valid in v3.5+; lineNumber must exist if specified
 
 
 
Purpose  
Internal BASIC state management / user DATA access management.

 
 
Remarks  
The statement resets the secret DATA pointer to (by default) the beginning of the program.  In a way, it is the opposite of READ (which advances the DATA pointer).
 
Without a lineNumber, this statement simply allows the program to re-read DATA that has previously been READ.  It might be used to re-set the initial state of the program; or it might be used to READ the same DATA a second (third, etc.) time for some other use (parallel/duplicate arrays maybe).
 
With a lineNumber (only available in v3.5+)the possibilites increase a lot.  Instead of simply re-setting the DATA pointer (like rewinding a tape), it allows for random access to DATA (almost) anywhere in the program (like a random disk file).  Almost anywhere means the RESTORE statement can only set the DATA pointer to the start of a program line.  Most DATA statements have multiple values, but there is no way to specify which one (it always sets the DATA pointer to the start of a line).
 
If a lineNumber is specified, it must exist or an UNDEF'D STATEMENT ERROR is generated.  The lineNumber need not have DATA statements on it; in this case, some later line in the program should have DATA statements (otherwise the next READ would generate OUT OF DATA ERROR).
 
 
Example:
NEW
10 DATA SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
20 FOR I = 1 TO 7
30 READ D$(I) : NEXT : REM initialize table
40 RESTORE : REM reset data pointer
50 READ N$: PRINT N$: REM re-read first item, and print it
RUN
SUNDAY

READY.
That isn't a very practical example... you could just PRINT D$(1) instead of re-reading the data!  But hopefully it makes the action of RESTORE clear to you.
 
 
See Also  
 
 
 
Compare With  

 
 
Contrast With  
 
© H2Obsession, 2014
Comments