User Tools

Site Tools


basic

BASIC Programming Language

Beginners' All-Purpose Symbolic Instruction Code was developed at Dartmouth College in 1964. It is a high level programming language that was designed for ease of use and became a first programming language for many students. Microsoft's very first product in 1975 was a BASIC interpreter for the Altair 8800. In the microcomputer revolution that followed Microsoft BASIC became the built in language for many machines and saw wide use through the late 1980s.

Getting BASIC started

For most systems, typing BASIC once you are logged in will start a BASIC interpreter. From there you can issue BASIC commands or type in STATEMENTS that can be immediately evaluated. For typing in programs, the user usually types in line numbers with the common practice being that you start at 10 and number by 10s. This gives you enough space if you need to add additional lines between statements and is particularly critical on some BASIC interpreters that don't have a RENUM fuction. BASICs on the various systems do have their own dialects and this page will attempt to point those out. On the IBM 4361 running VM/SP5 there is no interactive BASIC interpreter, but you can EDIT files and provide them as input to BASIC.

CommandDescription
OLD, LOADLoads an existing file into the memory buffer
SAVE, REPLACESaves or replaces a file with the contents of the memory buffer
NEW, SCRATCHClears the memory buffer
RUNRuns the program currently in the memory buffer
RENUMNot always available, but will renumber your program
SYSTEM, MONITORReturns to the Operating System
BYE, LOGOUT, OFFQuits BASIC and logs the user out of the system

BASIC Programming Examples

There are many statements available to you in BASIC, but here are a few that can get you started and will work across many BASIC interpreters. Check out the BASIC Reference Manuals section below for all the statements available for a particular system. Statement names and syntax can vary a bit. These examples are run under UNIX System V on the AT&T 3B2 1000-70 using the Bell Labs BASIC interpreter, but are generic enough to run on any of the BASIC systems available.

    UNIX System V  R.3 (WINS) (lcm3b2)
   
   login: lcm
   Password: LCMguest
   UNIX System V Release 3.2.2 AT&T 3B2
   lcm3b2
   Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
   All Rights Reserved
   
   $ basic
   * REM *** BASIC will evaluate 2+2 to give us 4
   *print 2+2
    4 
    
   * REM *** The variable 'a' defaults to the value of '0'
   *print a
    0 
    
   * REM *** LET assigns the value of '1' to the variable 'a' and 'print a' gives us '1'
   *let a=1
   *print a
    1 
         
   * REM *** STRINGS are quoted in BASIC and to use a variable as a string, just append '$' to it
   *print "Hello World!"
   Hello World!
   * let a$ = "Hello World!"
   * print a$
   Hello World!
        
   * REM *** Now let's write it as a program with line numbers
   *10 print "Hello World!"
   *20 end
   
   * REM *** The LIST command will show us what we typed in
   *list
   10 print "Hello World!"
   20 end
        
   * REM *** The RUN command will run our program
   *run
   Hello World!
   
   * REM *** The NEW command will clear the memory buffer and LIST will show us nothing is there
   *new
   *list
   *
   
   * REM *** Lets write a programming using INPUT to assign a VARIABLE N
   *10 input "What is your name?"; n$
   *20 print "Hello "; n$
   *30 end
   *list
   10 input "What is your name?"; n$
   20 print "Hello "; n$
   30 end
   *run
   What is your name?? COMPUTER
   Hello COMPUTER
   
   * REM *** Here is an example of a FOR loop.  The loop is closed with the NEXT statement.
   * REM *** NEXT I tells BASIC that the variable I is free to be used again.
   *new
   *10 for i = 0 to 20
   *20 print i
   *30 next i
   *40 end
   *run
    0 
    1 
    2 
    3 
    4 
    5 
    6 
    7 
    8 
    9 
    10 
    11 
    12 
    13 
    14 
    15 
    16 
    17 
    18 
    19 
    20 
   
   * REM *** The STEP statement is implied in the FOR loop as "STEP 1" by default
   * REM *** But you can specify a STEP number - here we STEP by 2
   * REM *** To replace line 10, just type it in as if it were a new line
   *10 for i = 0 to 20 step 2
   *list
   10 for i = 0 to 20 step 2
   20 print i
   30 next i
   40 end
   *run
    0 
    2 
    4 
    6 
    8 
    10 
    12 
    14 
    16 
    18 
    20 
    
   * REM *** Likewise we can run the FOR loop backwards by using a "STEP -1"
   *10 for i = 20 to 0 step -1
   *list
   10 for i = 20 to 0 step -1
   20 print i
   30 next i
   40 end
   *run
    20 
    19 
    18 
    17 
    16 
    15 
    14 
    13 
    12 
    11 
    10 
    9 
    8 
    7 
    6 
    5 
    4 
    3 
    2 
    1 
    0 
         
   * REM *** Here is an advanced example which will introduce nested FOR loops
   * REM *** and the function INT (integer) and SIN (sine) to calculate a sine wave
   
   *list
   10 let w = 2  
   15 let h = 20
   20 let t = 6.28318/h  
   25 let s = 35
   30 for i = 1 to w
   35 for j = 0 to 6.38318 - t step t  
   40 let a = int(sin(j) * s + 0.5)  
   45 for k = 1 to s + a
   50 print " ";
   55 next k
   60 print "+"  
   65 next j
   70 next i
   *run
                                      +
                                                 +
                                                           +
                                                                  +
                                                                       +
                                                                         +
                                                                       +
                                                                  +
                                                           +
                                                 +
                                      +
                           +
                 +
          +
     +
   +
     +
          +
                 +
                           +
                                      +
                                                 +
                                                           +
                                                                  +
                                                                       +
                                                                         +
                                                                       +
                                                                  +
                                                           +
                                                 +
                                      +
                           +
                 +
          +
     +
   +
    
   * REM *** To return back to UNIX, type the command "SYSTEM"
   *system
   $

BASIC Reference Manuals

Visit our repository for User Documentation for Online Systems for formal user and reference manual.

basic.txt · Last modified: 2020/04/18 01:39 by smj