This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
basic [2020/04/16 15:00] smj |
basic [2020/04/18 01:39] smj |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== BASIC Programming Language ====== | ====== BASIC Programming Language ====== | ||
+ | Beginners' | ||
+ | |||
+ | ====== 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. | ||
+ | |||
+ | ^**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. | ||
+ | |||
+ | UNIX System V R.3 (WINS) (lcm3b2) | ||
+ | |||
+ | | ||
+ | | ||
+ | UNIX System V Release 3.2.2 AT&T 3B2 | ||
+ | | ||
+ | | ||
+ | All Rights Reserved | ||
+ | |||
+ | $ basic | ||
+ | * REM *** BASIC will evaluate 2+2 to give us 4 | ||
+ | | ||
+ | 4 | ||
+ | | ||
+ | * REM *** The variable ' | ||
+ | | ||
+ | 0 | ||
+ | | ||
+ | * REM *** LET assigns the value of ' | ||
+ | *let a=1 | ||
+ | | ||
+ | 1 | ||
+ | |||
+ | * REM *** STRINGS are quoted in BASIC and to use a variable as a string, just append ' | ||
+ | | ||
+ | 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?"; | ||
+ | *20 print "Hello "; n$ | ||
+ | *30 end | ||
+ | *list | ||
+ | 10 input "What is your name?"; | ||
+ | 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/ | ||
+ | 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 " | ||
+ | | ||
+ | $ | ||
====== BASIC Reference Manuals ====== | ====== BASIC Reference Manuals ====== | ||
- | * Control Data Corporation BASIC(([[http://bitsavers.trailing-edge.com/pdf/cdc/ | + | Visit our repository for [[https://livingcomputers.org/ |