Basic
From Mindstab Wiki
Structure
- BasicTokenizer src -> tokens
- BasicParser tokens -> obj
- BasicInterpreter obj -> exec
- BasicCompiler obj -> native code
Variables
- strings
- numbers
- integer % -32767 to 32767
- long integer & -2 billion to 2 billion
- float !
- long float #
- Array
- DIM ArrayName$ (size)
- LET ArrayName$(1) = 7
- DIM ArrayName$ (size)
00 - black 08 - dark grey
01 - dark blue 09 - light blue
02 - dark green 10 - light green
03 - dark cyan 11 - light cyan
04 - dark red 12 - light red
05 - dark purple 13 - magenta
06 - orange brown 14 - yellow
07 - grey 15 - bright white
Primitives
- <> - greater or less (not equal to)
- COMMON SHARED variable$, vairable2$ - make a public variable - goes ater DECALRE SUB
- DIM SHARRED
Commands
- '$INCLUDE: 'MyLib.BI'
- LET - variable assignment
- DIM - array creation
- DIM ArrayName$ (size)
- LET ArrayName$(1) = 7
- LET nummber = 123
- DIM ArrayName$ (size)
- PRINT
- PRINT "sdfsdfs"
- PRINT "username: "; name$; " and stuff"
- PRINT "Today is "; Day$(1); "."
- INPUT
- INPUT "What is Player 1's name"; players$(1)
- CLS - clears the screen
- FOR i = 1 TO max STEP -2
- NEXT i
- label
- GOTO label
- IF THEN
- IF choice = 1 THEN GOTO label1
- END - exti block?
- COLOR - set foreground text color
- DO..LOOP
- DO WHILE
- DO UNTIL
- WHILE WEND
- WHILE condition WEND
- SELECT CASE
- SELECT CASE foo
- CASE 1
- PRINT "foo"
- END
- CASE ELSE
- END
- CASE 1
- END SELECT
- SELECT CASE foo
- RND - random #
- INT
- x = INT(RND * 10) + 1
- SUB
- SUB Dobox(x1, x2, y1, y2)
- DoBox 20, 30, 50, 20
- FUNCTION
- FUNCTION Cube(num)
- Cube = num*num*num
- END FUNCTION
- FUNCTION Cube(num)
- TYPE - for reading records from files
- TYPE people
- nm AS STRING * 40
- age AS INTEGER
- address AS STRING * 60
- END TYPE
- DIM person AS people
- OPEN "address.dat" FOR RANDOM AS #1 LEN = LEN(person)
- TYPE people
- PUT insert into a array/Random access file
- PUT [filename], [recordnumber], [arrayname]
- INPUT "What record to add"; record
- INPUT "Name"; person.nm
- INPUT "Age"; person.age
- INPUT "Address"; person.address
- PUT 1, record, person
- GET - get a record from a random access file
- GET 1, record, person
- PRINT "Name"; person.nm
- PRINT "Age"; person.age
- PRINT "Address"; person.addres
- RTRIM - remove extras space from the end of a var from a random file
- personname$ = RTRIM$(person.nm)
One such use of the DO loop is to have a "Press Any Key" prompt that new programmers are so eager to stick in their programs, but usually have to settle for "Please press enter... <sigh>". This is accomplished with the nifty function INKEY$, which is the IMMEDIATE, CURRENT key being pressed on the keyboard at any given moment. To make a "Press a key" prompt, you can cut and paste this next little bit into your program.
DO WHILE INKEY$ = "" LOOP
