BASICtools for ARM
The syntax of this BASIC is much like the original Microsoft BASIC, QBASIC or early versions of Visual BASIC.
As part of the compile process a modified version of the C pre-processor is called that allows
#include, #define, #ifdef ... #endif, #if ... #endif, #error and #warn
Support for interrupts, floating point accelerators, and multi-tasking.
On DOWNLOAD an executable installer will be downloaded.
Declarations |
|
DIM |
declares a variable or array |
AS INTEGER |
declares an integer variable |
AS SINGLE |
declares a floating point variable |
AS STRING |
declares a string |
AS BYTE |
declares an array of bytes |
PARAMARRAY |
declares a variable number of arguments |
CONST |
declares an integer, single, string or array constant |
SUB |
declares a subroutine |
FUNCTION |
declares a function that returns a value |
INTERRUPT SUB |
declares an interrupt subroutine |
' a comment |
comments |
Control Flow |
|
DO.. UNTIL |
repeats a block of statement |
FOR.. NEXT |
iterates a block of statemets |
IF..THEN.. ELSE..ENDIF |
conditional execution |
SELECT..CASE |
conditional execution |
WHILE.. LOOP |
repeats a block of statements |
GOTO |
transfers control |
GOSUB |
call subroutine or function (not required) |
RETURN |
return from subroutine or function |
MAIN |
start of a program |
EXIT |
terminates a block of statements |
STOP |
enters a debug monitor |
Hardware function |
|
|
AD |
returns analog value on specific pins (10 bit) |
BAUD |
sets the baud rate on the serial channel |
RXD |
receive a character on the serial channel |
TXD |
send a character to the serial channel |
*(expression) |
access hardware registers (like PEEK or POKE) |
DIR |
controls direction of a pin |
HIGH |
sets a pin to output and high |
IN |
reads digital value of a pin |
INPUT |
sets a pin as an input |
IO |
controls or reads a pin |
LOW |
sets a pin as output and low |
OUT |
sets state of an output pin |
OUTPUT |
sets a pin to be an output |
INTERRUPT |
enable or disable interrupts |
TIMER |
returns free running counter incrementing each microsecond |
WAIT |
waits a number of milliseconds |
WAITMICRO |
waits a number of microseconds |
Strings |
|
LEN |
returns the number of bytes in a string |
LEFT |
returns a number of characters on the left of a string |
RIGHT |
returns a number of characters on the right of a string |
STRCHR |
finds first instance of a character in a string |
STRCOMP |
compares two strings |
SPRINTF |
C style string formating |
Trig functions |
|
cos |
returns the cos of the radians passed |
sin |
returns the sin of the radians passed |
tan |
returns the tangent of the radians passed |
Power Functions |
|
sqrt |
returns the square root |
exp |
returns e to the x power |
logn |
returns natural log |
log10 |
returns 10 based log |
pow |
returns number raised to power |
Conversion |
|
fix |
integer value of single, conversions also implied |
floor |
rounds down |
ceil |
rounds up |
round |
rounds to closest integer |
Inverse Trig functions |
|
acos |
arc cosine |
asin |
arc sine |
atan |
arc tangent |
Hyperbolic functions |
|
cosh |
hyperbolic cosine |
sinh |
hyperbolic sine |
tanh |
hyperbolic tangent |
Register definitions |
|
LPC11U37.bas |
defines registers of the LPC11U37 accessed thru pointers |
String Functions |
|
midstr |
extracts characters from a string forming a new string |
strchr |
finds a character in a string |
strstr |
finds a string in a string |
tolower |
converts a string to lower case |
toupper |
converts a string to upper case |
I2C operations |
|
I2CIN |
read an I2C device |
I2COUT |
write to an I2C device |
SPI functions |
|
SPIIN |
read an SPI device |
SPIOUT |
write to an SPI device |
SHIFT functions |
|
SHIFTIN |
read to a non-byte oriented serial device |
SHIFTOUT |
write to a non-byte oriented serial device |
Onewire functions |
|
OWIN |
read a one wire device |
OWOUT |
write to a one wire device |
PWM functions |
|
HWPWM |
library hardware PWM functions, using counter peripheral |
Conversions |
|
CHR |
converts an ASCII character to a number |
HEX |
returns hex value of a string |
VAL |
converts a string to a decimal number |
Console functions |
|
DEBUGIN |
accepts input from console |
PRINT |
prints to the console |
PRINTF |
formatted print (C conventions) |
Operators |
|
- |
subtraction |
MOD |
modulus arithmetic |
* |
multiply |
/ |
divide |
- |
negate |
& |
string concatenation |
IF |
ternary operation |
NOT |
binary negate |
AND |
binary or conditional and |
OR |
binary or conditional or |
XOR |
binary or conditional exclusive or |
>> |
shift right |
<< |
shift left |
= |
equality |
<> |
not equals |
< |
less than |
<= |
less than or equal to |
> |
greater than |
>= |
greater than or equal to |
These are added for backward compatibility, but most have been replaced
PBASIC functions |
|
COUNT |
|
PULSIN |
|
PULSOUT |
|
PWM |
|
RCTIME |
|
FREQOUT |
|