







             The  following are the statement formats for the  SuperBASIC 
             Programming Language.

         1.  BEGIN

         2.  REAL <variable> {,<variable>,..........,<variable>};

         3.  INTEGER <variable> {,<variable>,..........,<variable>};

         4.  STRING <variable> {,<variable>,..........,<variable>};

         5.  REAL ARRAY <array variable>(<bounds>) {,<array variable>  

             (<bounds>),..........};    

         6.  INTEGER ARRAY <array variable>(<bounds>) {,<array variable>

             (<bounds>),..........};

         7.  STRING ARRAY <array variable>(<bounds>) {,<array variable>

             (<bounds>),..........};

         8.  PROCEDURE <procedure name> { (<parameter list>) };

             BEGIN

              <statements>

             END

         9.  COMMENT <text>; [Note: <text> should not contain ' char.]

        10.  GO <label>;

        11.  GO TO <label>;

        12.  GOTO <label>;

        13.  ONERRGOTO <label>;

        14.  RETURN {<label>};

        15.  INPUT( {@} {<prompt string>{@|,}} <variable list> );

        15a. INPUT( #<file number>,<variable list> );

        15b. LINEIN( {@} {<prompt string>{@|,}} <string variable>);

        15c. LINEIN( #<file number>,<string variable>);

        16.  GET #<file number> {,<record number>};

        17.  PUT #<file number> {,<record number>};



                                        9








        18.  OUTPUT( {#<file number>,} {USING <string expression>@}

             {<output expression list>} );

        19.  {CALL} <procedure name> {( <argument list> )};

        20.  FOR <scalar arithmetic variable> := <start arith. expr.>

                  STEP <increment arithmetic expression>

                       UNTIL <limit arithmetic expression>

                            DO BEGIN

                                 <statements>

                            END

        21.  IF <logical expression> THEN  <statement>

             { ELSE <statement> }

             Note: In each of the clauses THEN,ELSE the <statement>

             can be replaced with BEGIN <statements> END

             The  single  statement may not be an IF,FOR,REPEAT,REAL,

             INTEGER,STRING,PROCEDURE,ON, or WHILE statement. You

             must place it between BEGIN and END statements.

        22.  END

        23.  WHILE <logical expression> DO

             BEGIN

              <statements>

             END

        24.  REPEAT <statements>

             UNTIL <logical expression>;

        25.  ;

        26.  WRITE {#<file number>,} {<expression list>};

        27.  CHAIN( <file name> );

        28.  BEEP;

        29.  BLOAD( <file name> {,<offset>} );


                                       10








        30.  BSAVE( <file name>,<offset>,<length> );

             Note:The  offset  is  added to the current  segment  address

             which gives the address.

        31.  CALL <variable> {( <argument list> )};

             Note:<variable>  is  an INTEGER variable that has  the  same

             name as a global program name as in PASCAL,ASSEMBLER, or

             FORTRAN (by MICROSOFT)

        32.  CLEAR {{,<highest location>} {,<stack space>}};

        33.  CLOSE( {#} <file number> {,{#} <file number>,..........} );

        34.  FILES( { <files> } );

        35.  FIELD # <file number>,<field width> AS <string variable>,

             { <field width> AS <string variable>,.......... };

        36.  KILL( <files> );

        37.  NAME( <file name> AS <new file name> );

        38.  OPEN( <mode>,{#} <file number>,<file name> {,<record len.>} );

             Note:The <mode> in 38. is 'O','I',or 'R'

        38a. OPEN( <file name> { FOR <mode> } AS {#} <file number> 

             { LEN = <record length> } );

             Note:The <mode> in 38a. is INPUT,OUTPUT,or APPEND. RANDOM

             is assumed if mode is left out.

        38b. OPEN( 'COM1:<speed>,<parity>,<data>,<stop>' AS <file no.> );

        39.  OUT( <port number>,<data> );

        40.  DOS;

             Note:This statement brings the user back to MS DOS.

        41.  POKE <machine location offset>,<data>;

        42.  RESET;

        43.  RESUME { <label> };

        44.  RUN( <file name> );


                                       11








        45.  STOP;

        46.  WAIT <port address>,<integer expr.>,<integer expr.>;

        47.  HOME;   Note:This statement clears the screen.

        48.  DEFSEG := <expression>;

        49.  ERROR <integer expression>;

        50.  KEY <key number>,<string expression>;

        50a. KEY LIST;

        50b. KEY ON;

        50c. KEY OFF;

        51.  LSET <string variable> := <string expression>;

        52.  RSET <string variable> := <string expression>;

        53.  RANDOMIZE <arithmetic expression>;

        54.  SWAP <variable>,<variable>;

        55.  COLOR { <foreground> } {,<background> };

        56.  DRAW <string expression>;

        57.  CIRCLE (<x center>,<y center>),<radius> {,<color {,<start>

             ,<end> {,<aspect ratio>}}};

        58.  GET (<x1>,<y1>)-(<x2>,<y2>),<array name>;

        59.  PUT (<x1>,<y1>),<array name> {,<action verb> };

             Note: <action verb> is AND,OR,XOR,PSET,or PRESET

        60.  LINE (<x1>,<y1>)-(<x2>,<y2>) {,{<color>} {,B {F}};

             Note:Lower case letters b,f can be used instead of B,F

        61.  LOCATE {<row>},{<column>} {,{<cursor>}};

        62.  PRESET (<x>,<y>) {,<color>};

        62a. PRESET STEP (<x offset>,<y offset>) {,<color>};

        63.  PSET (<x>,<y>) {,<color>};

        63a. PSET STEP (<x offset>,<y offset>) {,<color>};

        64.  PAINT (<x start>,<y start>) {,<paint color> {,<border color>}};


                                       12








        65.  SCREEN {<graphics mode>,} {<reverse video>};

        66.  DATE$ := <date string expression>;

        67.  TIME$ := <time string expression>;

        68.  MID$(<string expr. 1>,<integer expr. 1>{,<integer expr. 2>})

                  := <string expression 2>;

        69.  WIDTH <integer expression>;

        70.  COM( <arithmetic expression> )  ON
                                             OFF   ;
                                             STOP

        71.  KEY( <arithmetic expression> )  ON
                                             OFF   ;
                                             STOP

        72.  ON COM( <arithmetic expression> ) THEN CALL <procedure name> ;

        73.  ON KEY( <arithmetic expression> ) THEN CALL <procedure name> ;

        Note:  For statements 72. and 73. the <procedure name> represents 

        a procedure without arguments.

        74.  NULL <integer expression>;

        75. <space> EOT <space>

             Note:This must be on the last line of the file.

        76.  <arithmetic variable> := <arithmetic expression>;

        77.  <string variable> := <string expression>;

        78.  <label>:.....:<label>:<executable statement>;

        Anything in between { } is optional.

        Anything  between  < > means a description of the value and  that 

        the < > are not part of the statement.

        Repetition symbol ......... means that an item can be repeated.











