Home
Name Modified Size InfoDownloads / Week
microAv12.zip 2024-05-05 3.4 MB
microAv11_10_9_2023.zip 2023-09-10 3.4 MB
ReadMe.txt 2023-06-01 5.1 kB
Totals: 3 Items   6.8 MB 0
micro(A) Interpreter by Aurel 
freeware and open source basic-like programming language for Windows.

v10 ,updated 31.5.2023

(c) Copyright By AurelSoft
Compiled with o2compiler -> Oxygen Basic by Charles Pegge
------------------------------------------------------------------
Because of security reasons source code aviable by request!
------------------------------------------------------------------
more INFO on:
http://basic4us.epizy.com
email : aurelw.wiz@gmail.com

------------------------------------------------------------------
>>>  ALL EXAMPLES TESTED <<<  on 21.5.2023
------------------------------------------------------------------
LIST OF STATEMENTS
This is 0.10 version of micro(A)
You must use editor Aurel Edit to run programs.

VARIABLE TYPES :
var - float
str - string
ptr - int/pointer

ARRAY TYPES:
var[i] - float
str[i] - string
ptr[i] - int/pointer
....................................................
Variable must be first defined then you can use it.
Variable names and keywords are not case sensitive!

----------------------------------- 
See demo programs ! 
-----------------------------------
minimal features ( more by request)
>>>numeric expression
>>>string expression 
>>>relation expr 
if:else:endif
>>>loops:
while:wend
>>>functions
func:endfn
>>>events
winMsg:endwm

variable types :........................................................
var a,b,c,d -> floating point variable type
------------------------------------------------------------------------
Str e,f,g,h -> string variable type
------------------------------------------------------------------------
Ptr i,j,k,l -> int|ptr variable type(read -> integer or pointer)
------------------------------------------------------------------------

math functions:........................................................
rnd     : rnd(var|num)   - floating point random number between 0...1
rand    : rand(var|num)  - random number from 0 to (var|num)->(read-> var or number)
sin     : sin(var|num)   - sinus of (var|num)
cos     : cos(var|num)   - cosinus of (var|num)
tan     : tan(var|num)   - tangens of (var|num)
atan    : arc tangens
log     : log(var|num)   - logarithm of (var|num)
sqr     : sqr(var|num)   - square root of (var|num)
abs     : abs(var|num)   - absolute value of (var|num)
round   : round(var|num) - rounded value of (var|num)
int     : int(var|num)   - integer value of (var|num)

string functions........................................................
strs    : strs(var)         - return string from numeric var
val     : val(str)          - return numeric value of string var 
chrs(n) : chr(num)          - return character
mstr    : mid(str,pos,len)  - return mid/sub-string from position
lstr    : left(pos,len)     - return left string
rstr    : right(pos,len)    - return right string

statements :...........................................................
print x , y ,var | QS -> print variable or quoted string on window

wColor r , g , b -> set window color

fColor r , g , b -> set front color

bColor r , g , b -> set back color(if is not defined then is wcolor)

pset x , y -> draw pixel on x,y position

circle x , y , r -> draw circle on x,y position with radius r

line x , y , x1 , y1 -> draw line from x,y position to x1,y1

rect x , y , w , h -> draw rectangle on x,y position

image handling:........................................................
image hendler require integer(ptr) type 
for example : ptr imgh
LoadImg imgh,"image.bmp", type , width, heigth, colors
 
'show image on window
ShowImgT img,0,0,640,360

'to get image visibile you need to use swap
swap -> swap GDI back buffer to front buffer 

labels:................................................................

label name -> label

goto name -> goto label

if var operator n|s Logic operator var operator n|s -> if statement
(if statement support '&'as AND operator and '|' as OR operator)
operators :..............................................................

< - less

> - greater

= - equal

! - not

Logic operator :......................................................

& - and

| - or

else - else statement

endif - end if

loops :................................................................

while var operator n|s
...
wend - while end
(while loop support '&' as AND operator and '|' as OR operator)

// function null type -> subroutine //
func myFn()
print 10,10,"my function"
endfn

// to call function just type name name with () like -> myFnNew() // 

//testing window messages use : WinMsg msgName .. EndWm

new winApi functions added :
MouseX var , MouseY var
hWparam var , hLParam var

//before you use message name you must declare it by ptr statement
ptr wmMouseMove ,wmKeyDown
...
WinMsg msagName
...
...
EndWm

------------------------------------------------- 
'inputBox (single line edit control) 
INPUTBOX handle, x,y,w,h,"text" 
SETTEXT handle, text|"text" <- variable or quoted 
GETTEXT handle, text <- must be variable 
Source: ReadMe.txt, updated 2023-06-01