Tiny Basic

Overview

Tiny Basic has been removed from Mon3 as of v1.6 but it can be loaded as a stand-alone program. See the GitHub for source files.

Tiny Basic is an easy-to-use BASIC programming language. Tiny Basic by default uses the FTDI to USB serial terminal connection. If a GLCD Add-On board is installed, the GLCD can be used as a terminal along with a Matrix Keyboard. Go to Settings -> Toggle GLCD Term to enable. Some additional commands have been implemented to interact with the TEC-1G hardware. Tiny Basic will use RAM address 0900H-3FFFH

Functionality has been added to the Mon3 version to make it more useful for the TEC-1G. Here is a list of language additions.

Language Additions

Syntax Description
PEEK(n) Return the contents of memory at location n. Value is in decimal.
OUT p,n Output n to port p on the TEC.
XOFF, XON Turn the serial terminal output off and on. Used if outputting to the seven segments.
PRINT extensions Placed in PRINT statements and preceding a number. For example, PRINT &255,%12,$65 outputs FF . A.
& outputs a number as hexadecimal.
% outputs a number as an ASCII character, printing . for non-printable characters.
$ outputs a number as an ASCII character, printing all characters.
Ctrl-D, Ctrl-Z Ctrl-D exits back to the monitor. Ctrl-Z clears the whole line.

Example Programs

Here are some Tiny Basic Example programs

Display the first 22 Fibonacci Numbers
 5 REM ** FIBONACCI SEQUENCE **
10 PRINT "FIBONACCI SEQUENCE"
20 FOR I=1 TO 22
30 GOSUB 70
40 PRINT "F",I,F
50 NEXT I
60 STOP
70 LET A=0; LET B=1
80 FOR J=1 TO I
90 LET T=A+B; LET A=B; LET B=T
100 NEXT J
110 LET F=A
120 RETURN

Display the Factors of a given number
 5 REM ** FACTORS OF N **
10 INPUT "GIVE ME A NUMBER" I
20 LET C=1
30 PRINT "FACTORS OF ",#3,I,":"
40 IF I/C*C=I PRINT C
50 C=C+1
60 IF C<=I GOTO 40
70 GOTO 10

Output the numbers 0 to 9 on the TEC-1G Seven Segment Display
 5 REM ** SEGMENT OUTPUT DEMO **
10 @(0)=235;@(1)=40;@(2)=205;@(3)=173;@(4)=46
20 @(5)=167;@(6)=231;@(7)=41;@(8)=239;@(9)=175
30 XOFF
40 OUT 1,1
50 FOR I=0 TO 9
60 OUT 2,@(I)
70 FOR J=1 TO 1000;NEXT J
80 NEXT I
90 XON

Print All ASCII Characters
10 REM ** PRINT ASCII CHARACTERS **
20 FOR I=32 TO 255
30 PRINT #1,&I+32,$32,$I+32,$32,
40 IF (I+1)/10*10=(I+1) PRINT
50 NEXT I