Applesoft BASIC tokenized file

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
Line 5: Line 5:
 
}}
 
}}
  
'''Applesoft BASIC''' was licensed from Microsoft and originally made available to be loaded from tape or disk. Apple models starting with the Apple II+ (the first new model after the Apple II) had Applesoft BASIC in ROM instead of the older [[Apple Integer BASIC tokenized file|Integer BASIC]]. An Applesoft I language was first released in 1977, followed by Applesoft II Floating Point BASIC in 1978, which is the most-used version. The later Apple III BASIC was based on Applesoft.
+
'''Applesoft BASIC''' was licensed from Microsoft (with some changes by Apple) and originally made available to be loaded from tape or disk. Apple models starting with the Apple II+ (the first new model after the Apple II) had Applesoft BASIC in ROM instead of the older [[Apple Integer BASIC tokenized file|Integer BASIC]]. An Applesoft I language was first released in 1977, followed by Applesoft II Floating Point BASIC in 1978, which is the most-used version. The later Apple III BASIC was based on Applesoft.
 +
 
 +
There were some notorious bugs in Applesoft, such as an implementation of '''ON ERROR GOTO''' which messed up the program stack, requiring some devious peeks, pokes, and calls to get around it. Unfortunately, the fact that the language was stored in ROM (except for users of really old Apples who loaded it from disk or tape) made it difficult to update with bug fixes (unlike today's software that pesters you to install new updates practically every time you start your computer), and they couldn't fix it in newer machines either, since that would break all the old programs that expected the bug. So Apple users were stuck with the bugs for the whole life of that platform.
  
 
Applesoft BASIC programs were stored in a tokenized format, in files which were designated in [[Apple II DOS|Apple DOS]] directories as type "A".
 
Applesoft BASIC programs were stored in a tokenized format, in files which were designated in [[Apple II DOS|Apple DOS]] directories as type "A".

Revision as of 22:44, 23 December 2012

File Format
Name Applesoft BASIC tokenized file
Ontology
Released 1977

Applesoft BASIC was licensed from Microsoft (with some changes by Apple) and originally made available to be loaded from tape or disk. Apple models starting with the Apple II+ (the first new model after the Apple II) had Applesoft BASIC in ROM instead of the older Integer BASIC. An Applesoft I language was first released in 1977, followed by Applesoft II Floating Point BASIC in 1978, which is the most-used version. The later Apple III BASIC was based on Applesoft.

There were some notorious bugs in Applesoft, such as an implementation of ON ERROR GOTO which messed up the program stack, requiring some devious peeks, pokes, and calls to get around it. Unfortunately, the fact that the language was stored in ROM (except for users of really old Apples who loaded it from disk or tape) made it difficult to update with bug fixes (unlike today's software that pesters you to install new updates practically every time you start your computer), and they couldn't fix it in newer machines either, since that would break all the old programs that expected the bug. So Apple users were stuck with the bugs for the whole life of that platform.

Applesoft BASIC programs were stored in a tokenized format, in files which were designated in Apple DOS directories as type "A".

Similar to a number of other BASIC tokenizations (but distinct from Integer BASIC tokenization), Applesoft programs preserved ASCII characters unchanged in the 7-bit range (bytes with high bit clear) and used the "high bit set" byte values (#128-#155) to store tokens. BASIC lines were separated by the null byte (00), and started with a two-byte address of the next program line in memory, then a two-byte little-endian integer giving the line number, then the tokenized commands and literal characters of the program line.

Format documentation

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox