REM Testing 'rem'. We cannot use capitalized keywords in 'rem' statements. SUB hello() PRINT "Hello sub" NL ENDSUB CLEAR REM Testing 'declare' DECLARE a DECLARE x TYPE short DECLARE name TYPE char* DECLARE e REM We can delare directly with 'string','float','integer' STRING ab, bc, some FLOAT gh, ij INTEGER kl, mn REM Testing 'const' CONST g = 56 CONST i = 57 REM Testing 'let' for numbers LET a = 0 LET x = 1 REM Testing 'set' for strings SET name = "Hello cruel world" SET some = "123" REM Testing 'print' PRINT "Hello world.\n" PRINT "Hello world." NL REM We can only print strings. PRINT "The value of 'name' is: " PRINT name NL PRINT "The value of 'a' is: " PRINT STR(a) NL REM Or use 'print' with 'format'. PRINT "The value of 'x' is: ", x FORMAT "%s%d\n" REM Testing 'while' WHILE a < 10 DO PRINT STR(a) NL INCR a, 2 WEND REM Testing 'if' 'elif' 'else' IF a > 5 THEN PRINT "a is bigger than 5.\n" ELIF a > 10 THEN PRINT "a is bigger than 10.\n" ELSE PRINT "The else clause.\n" IF 2 < 3 THEN PRINT "2 is smaller than 3.\n" ENDIF ENDIF REM Testing 'repeat' REPEAT PRINT "Decreasing a: " PRINT STR(a) NL DECR a UNTIL a == 0 REM Testing 'for' FOR x = 1 TO 5 PRINT STR(x) NL NEXT FOR x = 1 TO 20 STEP 4 PRINT STR(x) NL NEXT x REM Testing some functions PRINT "sin: ", SIN(x) FORMAT "%s%g\n" PRINT "cos: ", COS(x) FORMAT "%s%g\n" PRINT "tan: ", TAN(x) FORMAT "%s%g\n" PRINT "pow: " PRINT STR(POW(2, 4)) NL PRINT "sqr: ", SQR(25) FORMAT "%s%g\n" PRINT "log: ", LOG(1.2345) FORMAT "%s%g\n" PRINT "exp: ", EXP(x) FORMAT "%s%g\n" PRINT "round: ", ROUND(5.4321) FORMAT "%s%ld\n" PRINT "mod: ", MOD(10, 4) FORMAT "%s%ld\n" PRINT "even: ", EVEN(4) FORMAT "%s%d\n" PRINT "odd: ", ODD(4) FORMAT "%s%d\n" PRINT "floor: ", FLOOR(1.654) FORMAT "%s%ld\n" PRINT "instr: ", INSTR(name, "o") FORMAT "%s%ld\n" PRINT "asc: ", ASC("@") FORMAT "%s%ld\n" PRINT "val: ", VAL("1.2345") FORMAT "%s%g\n" PRINT "str: ", STR(4.56789) FORMAT "%s%s\n" PRINT "chr: ", CHR(64) FORMAT "%s%s\n" PRINT "left: ", LEFT(name, 3) FORMAT "%s%s\n" PRINT "right: ", RIGHT(name, 3) FORMAT "%s%s\n" PRINT "mid: ", MID(name, 7, 3) FORMAT "%s%s\n" PRINT "concat: " PRINT CONCAT("Hello ", "World", "123") NL PRINT "File '/etc/hosts' exists: " PRINT STR(FILEEXISTS("/etc/hosts")) NL REM Testing 'goto' GOTO further PRINT "Should not be shown.\n" LABEL further PRINT "We went here.\n" REM Testing 'input' PRINT "Enter some text... " INPUT name REM Testing 'equal' and 'len' PRINT EQUAL(LEFT(name,LEN(name)-1), "Hello") FORMAT "%ld\n" REM testing 'system' and 'retval' SYSTEM "ls" PRINT "return value is: " PRINT STR(RETVAL) NL REM Testing some file commands DECLARE p TYPE FILEPTR OPEN "file.txt" FOR READWRITE AS p WRITELN "This is a file test\n" TO p REWIND p READLN name FROM p SEEK p OFFSET 5 CLOSE p PRINT name REM Testing 'color' COLOR FOREGROUND TO BLUE REM Testing 'sleep' PRINT "Sleeping 100 msecs..." NL SLEEP 100 COLOR RESET REM Testing 'address' PRINT STR(ADDRESS(name)) NL REM Testing 'memory' MEMTYPE float INTEGER mem LET mem = MEMORY(100) REM Testing 'poke' and 'peek' POKE mem, 123.123 PRINT "Peek: " PRINT STR(PEEK(mem)) NL FREE mem REM Testing 'random' FOR x = 1 TO 10 PRINT STR(RANDOM(x)) NL NEXT CALL hello() REM Testing 'deffn' DEFFN bla(x) = 12 * x PRINT STR(bla(3)) NL REM Testing 'getenv' PRINT GETENV("PATH") NL REM Tesing 'columns' and 'rows' PRINT COLUMNS, ROWS FORMAT "Columns: %d - Rows: %d\n" REM Testing 'end' with optional return status END 3