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

LIST

Keyword Abbreviation Token (hex) Version(s) Classification
LIST L{Shift+I} 9B 1.0+ Command and Statement*

 
Syntax  
LIST [ { firstLine [ - [ lastLine ] ] | - lastLine } ]
 
Parameters Type Legal Value(s) Default Value Note(s)
firstLine Literal integer
0 to 63999
 
lastLine Literal integer
0 to 63999, but
not less than firstLine
63999
 
 
 
Purpose  
Print the BASIC program line(s) in memory to the current output device.

 
 
Remarks  
LIST is obstensibly for viewing (portions of) a BASIC program, but due to the full-screen text editor of the CBM machines, it is often used while (re)writing and debugging a program.  All program lines in memory (if any) are printed if no parameters are supplied.  If parameters are supplied, they must be literal integer values; attempts to use a floating-point literal value, a variable, or a mathematical expression will generate SYNTAX ERROR.
 
If both parameters are supplied, but lastLine is less than firstLine then nothing is printed and no error is generated (this doesn't seem very logical).  If firstLine is greater than the last line number of the program, or if lastLine is less than the first line number of the program, then nothing is printed and no error is generated (this is quite logical).  If only firstLine is supplied, and without the optional hyphen/minus (-), then only the program with that specific line number is printed, if it exists (no error otherwise).  If only firstLine is supplied and is followed with a hyphen/mnus, then all lines of the program greater or equal to firstLine (if any) are printed.  Similarly, if only a hyphen/minus and lastLine is given, then all lines less than or equal to lastLine (if any) are printed.  Finally if both parameters are given, and firstLine is less than or equal to lastLine, then all program lines numbered from firstLine to lastLine (inclusive) are printed, if any exist in that range.
 
That last paragraph doesn't read very well.  It operates quite simply in practice; see the examples.
 
* Some versions of BASIC (such as v2 of the C64) contain a bug, such that if LIST is used as a statement in a program, the program will stop without any error message.  It works fine in v7.0; I'm not sure about other versions.  This isn't a big deal since LIST is normally only used as a command in direct mode.
 
Examples:
NEW

READY.
10 REM LINE 10
20 REM LINE 20
LIST

10 REM LINE 10
20 REM LINE 20

READY.
LIST 15


READY.
LIST 15-

20 REM LINE 20

READY.
LIST -15

10 REM LINE 10

READY.
 
 
 
Compare With  
 
  Contrast With  
 
  See Also  

© H2Obsession, 2014
Comments