Tiny Machine Basic Tutorial
3201 Highgate Lane
St. Charles, MO
Phone: (636) 723-4000
Trademark and Copyright Information
Tiny Machine Basic and TMB are Trademarks of Industrologic, Inc. 2000.
This document is Copyright (c) 2000-2015 by Industrologic, Inc.
All rights reserved.
No part of this manual may be reproduced or transmitted in any form or by
any means, electronic or mechanical, including photocopying or scanning,
for any purpose other than the personal use by the purchaser of this
product. Industrologic, Inc. reserves the right to revise this document
at any time without obligation to notify any person of such revision.
Industrologic, Inc. assumes no responsibility for any errors that may
appear in this document.
Whereas effort has been made to make the information in this document as
useful and accurate as possible, Industrologic, Inc. assumes no
responsibility for the application, usefulness, or completeness,
of the information contained herein. Under no circumstance will
Industrologic, Inc. be responsible or liable for any damages or
losses including indirect or consequential damages or losses arising
from either the use of any information contained within this manual or
the use of any products or services referenced within this manual.
If you have purchased one of Industrologic's products that includes a
microcontroller with Tiny Machine Basic, this guide will help get you started.
Industrologic has created a customized version of Tiny Machine Basic
for each of its microcontroller boards in order to take advantage of
the specific hardware on each board, therefore each version will be
slightly different. However, to keep things simple this guide will refer
only to information common to all versions. Once you have written a few
simple programs you will need to refer to the documentation supplied with
your product to learn about the features of Tiny Machine Basic specific
to that board.
Information specific to Tiny Machine Basic
The "prompt" - If Tiny Machine Basic is not already running your program, it displays a prompt, which is the
"greater than" (>) character. This means that it is "prompting" you to enter an instruction or begin entering
a program. If you like you can enter instructions one at a time to see what they do. You simply need to type the
instruction name and hit the ENTER key.
Programs in Tiny Machine Basic use "line numbers" to identify instructions. When Tiny Machine Basic runs your
program it begins with the lowest line number it finds. To write one line of your program you would type a line
number, a space, the instruction, and the ENTER key. (Programs can also be loaded automatically from software
running on your PC.)
Special instructions - There are a few instructions that you will need every time you use Tiny Machine Basic,
but these instructions should never actually be part of a program. They should only be used at the prompt
or without a line number.
NEW - This erases all of your program lines in preparation for entering a new program
RUN - This tells Tiny Machine Basic to run your program once entered (or loaded from the software running on the PC)
LIST - This displays your program to the screen for you to read (or to download and save)
BOOTON - This tells Tiny Machine Basic to run your program automatically when power is applied to the board.
BOOTOFF - This reverse the action of BOOTON and causes Tiny Machine Basic to return the prompt when power is applied.
Once the BOOTON instruction is used you will need to press the pushbutton switch on the board (or type a
Control C for some boards) while applying power in order to return to the prompt. Refer to the Tiny Machine
Basic manual for the board.
Changing the communication parameters
The BAUD instruction is used to change the baud rate of a serial port in Tiny Machine Basic. (Some products also have a
MODE instruction to change other communication parameters.) If you change the communication parameters they will remain
changed unless changed again. The BAUD and MODE instructions may be used while running a program, but in most cases you
will want to change them only at the command prompt. (This will of course require that any communication program used be
changed to match.) If the pushbutton switch on the board is used to bypass the BOOTON instruction, it will also return
a prompt at the factory settings of 9600 baud, 8 bits, 1 stop bit, no parity, and no flow control (handshaking).
Getting your microcontroller product ready to program
Note: Use a baud rate of 9600 or less for programming.
You are now ready to do any of the following:
- Connect the board to an RS-232 serial port on your IBM PC compatible computer with the included cable.
- Connect the wallblock power supply to the board and apply power.
- Install the CD included with your product and view the README.TXT file. which explains the contents of the disk.
(You can either use the installation program on the CD or manually copy the files you need to a folder on your computer.)
- Run the communication program called TERMBAS.EXE.
- Select the Com port according to which RS-232 port you used on the computer.
- Hit the ENTER key, and if everything has been set up correctly you will see the Tiny Machine Basic prompt, the ">".
- Load sample programs (see the HELP function in the program for directions).
- Begin experimenting with instructions by entering them one at a time at the prompt.
- Write simple programs.
Entering and running a simple program
At the prompt do the following:
You have just written a program that consists of a simple loop.
You should now see the numbers 0 through 255 being continuously displayed.
- Type NEW and hit the ENTER key (in case there is already a program entered)
- Type 1 A=0 and hit the ENTER key
- Type 2 PRINT A and hit the ENTER key
- Type 3 A=A+1 and hit the ENTER key
- Type 4 GOTO 2 and hit the ENTER key
- Type RUN and hit the ENTER key (this will start your program)
To stop your program you can turn off power to the board and then turn
it back on so that it displays the prompt again. (With some versions
of Tiny Machine Basic you can stop the program by entering a "Control C"
character, that is, holding down the "Ctrl" key while pressing the "C" key.)
Other example programs
In the first program, we were very specific about what you were supposed
to type because you had never before entered a program, but for the rest
of the programs in this guide we will simply list the program lines much
like the LIST instruction would do once your program was entered. Enter
these programs just like you did the first one, ending each line with the
ENTER key. (The left column is the only part to enter. The right column
explains the instruction.) Before entering a program remember to use the
NEW instruction to erase the old one, and after entering the new program
use the RUN instruction to start it.
Example of how to check for a key pressed:
1 A=KEY if a key is pressed put value in variable A (zero if no key pressed)
2 IF A=0 1 if A is zero go back to line 1 (this is a conditional branch)
3 PRINT A display value of the key which is in variable A (try the Esc key)
6 GOTO 1 go to line 1 (this creates a loop from line 1 to line 6)
Add these lines to the above program:
4 A=A-27 subtract the value for the Escape key
5 IF A=0 10 if variable A is zero (used to be 27) go to line 10 (program will end)
This method will allow the Escape key to exit the loop. No power cycling
necessary to return to the prompt.
Example of a time delay in a program:
1 PRINT "X" display the X character (could be any character)
2 DELAY 20 delay 20 tenths of a second (2 seconds)
5 GOTO 1 go to line 1
Add these lines to the above program:
3 PRINT 13 send the "carriage return" character
4 PRINT 10 send the "line feed" character
These are two special control characters that must be sent to
go to the next line of the display.
This is an example of how to make the program wait for you to enter a
number from 0 to 255 at the keyboard and then use the value in the program.
(Remember, a number cannot include any of the alphabet or punctuation
characters.) It also shows how LOOP and ENDLOOP work to do something a
specified number of times:
1 INPUT A wait for a value to be entered followed by ENTER key
2 LOOP A initiate a loop for the number of times in variable A
3 PRINT "X" display the X character (could be any character)
4 ENDLOOP this marks the end of the loop
5 GOTO 1 go to line 1
This is an example of how to have a main program call a subroutine:
1 A=10 put the value 10 into variable A
2 GOSUB 20 call the subroutine at line 20
3 A=15 put the value 15 into variable A
4 GOSUB 20 call the subroutine at line 20
5 DELAY 10 delay 10 tenths of a second (1 second)
6 GOTO 1 go to line 1
20 LOOP A initiate a loop for the number of times in variable A
21 PRINT "X" display the X character (could be any character)
22 ENDLOOP this marks the end of the loop
23 PRINT 13 send the "carriage return" character
24 PRINT 10 send the "line feed" character
25 RETURN must be at the end of every subroutine
Remember, these example programs used only those instructions common
to all version of Tiny Machine Basic, but there are a lot more. What
you should now do is to learn about the instructions related to the
specific hardware of your particular microcontroller board by referring
to the Tiny Machine Basic documentation you received with your board.
Using what you have learned from these simple example programs will
allow you to better understand how to use these additional instructions.
Writing programs in a text editor
The previous program examples have all been written while at the
Tiny Machine Basic prompt, and have been entered directly into the
Tiny Machine Basic program storage area. Although this works well
for short programs, there is a much better way to write programs
that allows you to save the programs on your PC. Since Tiny Machine
Basic programs are text only you can use a "text editor" program to
create, edit, and save your programs. There are a number of text
editors available including some that are included with the PC operating
system, like Windows Notepad. (If you use a "word processing" program
to write programs, they must be saved as "plain text" and not in the
word processing document format.)
The communication software included with Industrologic microcontroller
products includes either a text editor (or a way to access a text editor)
just for this purpose, along with an easy way to load your program into
Tiny Machine Basic just as though you were entering it by typing at the prompt.
Using the NEW and BOOTON instructions in a text editor
Remember that the special instructions should be used only at the command prompt or
without line numbers. Here is an example of how to use the NEW and BOOTON instructions
in a program written in a text editor:
NEW erases all program lines from any old program
1 PRINT "X"
2 DELAY 20
5 GOTO 1
BOOTON runs your program when power is applied to board
end of manual