Class IntegerBASIC
In: lib/native_file_types/apple2/IntegerBASIC.rb
Parent: NativeFileType
IntegerBASIC NativeFileType dot/f_33.png

Methods

Constants

IB_REM_TOKEN = 0x5D
IB_UNARY_PLUS = 0x35
IB_UNARY_MINUS = 0x36
IB_QUOTE_START = 0x28
IB_QUOTE_END = 0x29
INTEGER_BASIC_TOKENS = [ # $00-$0F "HIMEM:","<$01>", "_", " : ", "LOAD", "SAVE", "CON", "RUN", # Direct commands "RUN", "DEL", ",", "NEW", "CLR", "AUTO", ",", "MAN", # $10-$1F "HIMEM:","LOMEM:","+", "-", # Binary ops "*", "/", "=", "#", ">=", ">", "<=", "<>", "<", "AND", "OR", "MOD", # $20-$2F "^", "+", "(", ",", "THEN", "THEN", ",", ",", "\"", "\"", "(", "!", "!", "(", "PEEK", "RND", # $30-$3F "SGN", "ABS", "PDL", "RNDX", "(", "+", "-", "NOT", # Unary ops "(", "=", "#", "LEN(", "ASC(", "SCRN(", ",", "(", # $40-$4F "$", "$", "(", ",", ",", ";", ";", ";", ",", ",", ",", "TEXT", # Statements "GR", "CALL", "DIM", "DIM", # $50-$5F "TAB", "END", "INPUT", "INPUT", "INPUT", "FOR", "=", "TO", "STEP", "NEXT", ",", "RETURN", "GOSUB", "REM", "LET", "GOTO", # $60-$6F "IF", "PRINT", "PRINT", "PRINT", "POKE", ",", "COLOR=","PLOT", ",", "HLIN", ",", "AT", "VLIN", ",", "AT", "VTAB", # $70-$7F "=", "=", ")", ")", "LIST", ",", "LIST", "POP", "NODSP", "DSP", "NOTRACE","DSP", "DSP", "TRACE", "PR#", "IN#", ]

Public Class methods

Public Instance methods

 Adapted from FID.C -- a utility to browse Apple II .DSK image files by Paul Schlyter (pausch@saaf.se)

Integer Basic file format:

 <Length_of_file> (16-bit little endian)
 <Line>
 ......
 <Line>

 where <Line> is:
 1 byte:   Line length
 2 bytes:  Line number, binary little endian
 <token>
 <token>
 <token>
 ......
 <end-of-line token>

 <token> is one of:
 $12 - $7F:   Tokens as listed below: 1 byte/token
 $80 - $FF:   ASCII characters with high bit set
 $B0 - $B9:   Integer constant, 3 bytes:  $B0-$B9,
                     followed by the integer value in
                     2-byte binary little-endian format
                     (Note: a $B0-$B9 byte preceded by an
                      alphanumeric ASCII(hi_bit_set) byte
                      is not the start of an integer
                      constant, but instead part of a
                      variable name)

 <end-of-line token> is:
 $01:         One byte having the value $01
                   (Note: a $01 byte may also appear
                    inside an integer constant)

 Note that the tokens $02 to $11 represent commands which
 can be executed as direct commands only -- any attempt to
 enter then into an Integer Basic program will be rejected
 as a syntax error.  Therefore, no Integer Basic program
 which was entered through the Integer Basic interpreter
 will contain any of the tokens $02 to $11.  The token $00
 appears to be unused and won't appear in Integer Basic
 programs either.  However, $00 is used as an end-of-line
 marker in S-C Assembler source files, which also are of
 DOS file type "I".

 (note here a difference from Applesoft Basic, where there
 are no "direct mode only" commands - any Applesoft commands
 can be entered into an Applesoft program as well).

[Validate]