Jump to content

True BASIC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Peripitus (talk | contribs) at 00:45, 20 August 2006 (Reverted edits by 65.151.154.204 (talk) to version 70208749 by Bluebot using VP). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

File:True BASIC logo.png

True BASIC is a variant of the BASIC programming language descended from Dartmouth BASIC – the original BASIC – invented by college professors John G. Kemeny and Thomas E. Kurtz.

When True BASIC appeared on the market in 1985, initially based on Dartmouth BASIC 7 — otherwise known as ANSI BASIC — it implemented a number of new features over QBASIC, and allowed the user a redefinable 16-color, 640×480 pixel backdrop for program editing. True BASIC introduced new functions for graphics primitives like plot, plot area, flood, etc. It also was the first to provide a method for saving a portion of the screen and blitting it elsewhere, but had no proper buffering implementation.

Being a structured programming implementation of the language, it dispensed with the need for line numbers and GOTO statements, although these earlier features can still be used. Use of LET for value assignment became optional. It also allowed for descriptive variable names longer than a single letter plus a single digit. For example, the familiar algebraic equation y = mx + b could be expressed as:

slope = 2
let x = 3
y_intercept = 4
let y2 = slope * x + y_intercept
print "y2="; y2

The above code segment would yield "y2= 10".

True BASIC provides statements for matrix arithmetic, a feature that had been dropped in microcomputer versions of BASIC interpreters due to memory limitations. It also supports global and local variables, which permits recursive functions and subroutines to be written, a powerful technique not available on any other microcomputer version of BASIC at the time of its introduction.

There are versions of the True BASIC compiler for DOS, Windows, and Mac OS. At one time versions for Tandy, Amiga and Atari computers were offered.

The designers wanted to make the language hardware-independent, to allow True BASIC source code to run equally well on any version of their compiler. For the most part they succeed in this endeavor. The drawback for users was that direct access to some features of their machines was not available, but this could be remedied with callable functions and subroutines specially written in assembly language.

Using newer versions of True BASIC, some of the older functions are blocked out. An example of the recent code would be more like this (Note that any exclamation point (!) after text means that anything to the right of the exclamation point is a comment, meaning that the compiler doesn't read it):

RANDOMIZE
SET WINDOW 0,20,0,20
SET COLOR 132 !Set the pen and text color to 132
PRINT "Welcome To . . ." !Print "Welcome To . . ." on the user's screen

DO !Begin the loop
    LET x=rnd*20 !Let the value 'x' equal a random number between '0' and '20'
    LET y=rnd*20 !Let the value 'y' equal a random number between '0' and '20'
    PLOT TEXT, at x,y: "Fabulous Wikipedia!" !Plot 'Fabulous Wikipedia!' at the cordinates set by our random 'x' and 'y'
LOOP !End the loop

END !End the program

As you can see, even without comments, True BASIC code can be read rather easily. This simple program plots the text "Welcome To . . ." at the top left-hand corner of the screen, and then continues into a never-ending loop plotting "Fabulous Wikipedia!" at random cordinates.

An example of simple animation could be like this:

!Draw the Car
SET WINDOW 0,20,0,20
SET COLOR 5
BOX AREA 2,6,2,3
BOX AREA 9,13,2,3
BOX AREA 16,20,2,3
SET COLOR 249
PLOT LINES :0,5;20,5
FLOOD 10,1
BOX KEEP 0,20,0,5 IN road$
BOX CIRCLE 2,3,5,6
FLOOD 2.5,5.5
BOX CIRCLE 5,6,5,6
FLOOD 5.5,5.5
SET COLOR 35
PLOT LINES :2.5,6;5.5,6
PLOT LINES :5,6;8,6;8,8;6,8;6,10;2,10;2,8;0,8;0,6;3,6
FLOOD 4,8
SET COLOR 248
BOX AREA 4,5,8,9

BOX KEEP 0,8,5,10 IN car$ !Save the car in 'car$'
 
FOR x=1 TO 20 STEP 1 !Create a 'for' loop
    BOX SHOW road$ AT 0,0
    BOX SHOW car$ AT x,5  
    PAUSE .1
    CLEAR
NEXT x !End the 'for' loop

END !End the programs

Further reading

  • Kemeny, John G.; Kurtz, Thomas E. (1985). Back To BASIC: The History, Corruption, and Future of the Language. Addison-Wesley. 141 pp. ISBN 0-201-13433-0.