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

NEW

Keyword Abbreviation Token (hex) Version(s) Classification
NEW none A2 1.0+ Command and Statement*

  Syntax  
NEW
 
  Purpose  
State managment.  Delete the program in memory.

 
  Remarks  
NEW obstensibly deletes any BASIC program in memory.  The program is not actually erased; BASIC performs these actions:
  1. The first line-link is zeroed (see Program Format)
  2. The secret variable Text Pointer is set equal to another secret variable, Start of BASIC
  3. (v4.7, v7.0) End of Text is updated to point 2 bytes past Start of BASIC
  4. (v3.5, v7.0) program tracing is turned off (see TROFF)
  5. CLR is performed
The first action effectively remove all program lines.  Because of this behavior it is possible to completely recover the "erased" program using (for example) one of several UN-NEW utilitilies that have been published.
 
* NEW may be used as a statement in a program, but this is rare because BASIC will return to direct mode once the program has deleted itself.  This is due (mainly) to the second action.
 
When used as a command in direct mode, any following commands entered on the same line will be ignored (also mainly due to the second action).
 
The final action, CLR, obstensibly deletes all user variables, but has numerous side-effects.
 
Example:
10 A$ = "WORLD"
20 PRINT "HELLO "; A$
RUN
HELLO WORLD

READY.
LIST
10 A$ = "WORLD"
20 PRINT "HELLO "; A$

READY.
PRINT A$
WORLD

READY.
NEW : PRINT "ERASED!" 

READY.
LIST

READY.
PRINT A$

READY.
 
  Compare With  
 
  Contrast With  
 
  See Also  

© H2Obsession, 2014
Comments