User Tools

Site Tools


basic

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
basic [2020/04/16 15:00]
smj
basic [2020/04/18 01:39] (current)
smj
Line 1: Line 1:
 ====== BASIC Programming Language ====== ====== 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 [[vm_cms_survival_guide|IBM 4361 running VM/SP5]] there is no interactive BASIC interpreter, but you can EDIT files and provide them as input to BASIC.
 +
 +^**Command**^**Description**^
 +|OLD, LOAD|Loads an existing file into the memory buffer|
 +|SAVE, REPLACE|Saves or replaces a file with the contents of the memory buffer|
 +|NEW, SCRATCH|Clears the memory buffer|
 +|RUN|Runs the program currently in the memory buffer|
 +|RENUM|Not always available, but will renumber your program|
 +|SYSTEM, MONITOR|Returns to the Operating System|
 +|BYE, LOGOUT, OFF|Quits 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_survival|UNIX System V]] on the [[at_t_3b2_1000-70|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 ====== ====== BASIC Reference Manuals ======
  
-  * Control Data Corporation BASIC(([[http://bitsavers.trailing-edge.com/pdf/cdc/cyber/lang/basic/19980300B_BASIC_Language_Version_2_Reference_Nov74.pdf|CDC Basic v2 Reference]]))+Visit our repository for [[https://livingcomputers.org/Computer-Collection/Online-Systems/User-Documentation.aspx|User Documentation for Online Systems]] for formal user and reference manual. 
  
  
basic.1587049242.txt.gz · Last modified: 2020/04/16 15:00 by smj