Official Gadgeteer Hands On Review: NS Basic/Palm
by Julie Strietelmeier
Last date revised: 07/09/2000

Program Requirements:
Device:
Device running Palm OS 3.0 or later
150 K free RAM

Desktop:
Windows 95/98/NT/2000
10MB Free Disk Space

NS Basic Corporation has done it again with their new NS Basic/Palm programming development environment. NS Basic is an easy to use Basic-like scripting language that has been available for the Apple Newton, and Windows CE Palm-size PC devices for awhile now. It is now available for Palm OS devices running Palm OS version 3.0 or later.

This version of NS Basic is different than the Newton and Windows CE Palm-size PC devices version. Those versions required you to actually do the programming on the PDA itself. Although this worked well enough, it was tedious to work on those small devices. NS Basic/Palm allows you to write your code on your desktop PC using a graphical environment that is very similar to Microsoft Visual Basic.

Actually writing a program is pretty easy if you know anything about the Basic programming language. And it's not that hard to learn if you've never programmed before thanks to two tutorials and lots of example code that are included with the NS Basic/Palm package. I've not programmed for awhile and have never considered myself a real programmer. I like to piddle around here and there but don't get into anything really complex. As a result, I was able to sit down and create a program from start to finish in about an hour using NS Basic/Palm. The program I created converted degrees in Fahrenheit to degrees in Celsius or visa versa. Ok, I know it's not exactly exciting but it was a good test to see how the NS Basic/Palm environment worked.

The first thing I did was create an icon for my program using the included IconMake program. This is a pretty simple program to use. You basically just draw your icon on the screen using a grid and turn the pixels on or off to make the image. You can draw a regular sized icon and a small icon. I noticed a couple of weird things about this program. One is that the grid is oversized. The first time I drew an icon, it ended up being cut off when it was on my Palm V. There is a red and a blue outline on the grid. These outlines show the large and small icon boundaries. I'm not sure why the grid is larger than it needs to be. The other little thing that I had problems with was the Circle tool. You're supposed to be able to draw circles... This rarely worked for me. My circles ended up being cut in half or too large.  I'm not sure what the problem was. It would be nice if this feature would let you see the circle as you drew it. They way it works, you click on a spot on the grid and then drag your mouse across the grid for the size circle you want. But, you can't see the circle grow in size as you drag the mouse...

After creating my icon, I started up NS Basic and created my screen layout. I added the buttons, text fields and labels that I wanted. Doing this is really easy. You just click on the object in the toolbox that you want to add to your screen and then click on the screen layout window. After you have the object on the screen, you can resize it and move it to the exact spot you want.

The main window of the application displays the current screen layout that you're working with on the left and the project explorer on the right. A toolbox with the different buttons and gadgets is displayed on the left side of the screen. This layout works really well. You can easily see exactly what your Palm screen will look like when the program is finished because you work with an exact replica of it. 

From the toolbox you can easily add 13 different screen objects to your screen layout. You can have the following objects:

Button
Oval shaped with a text label inside.
Push Button
Rectangular shaped with text inside. When selected the button turns black and the text inside turns white.
Checkbox
Small square rectangle with a text string beside it. When the box is set, it has a checkmark in it.
Popup Trigger
Text box with a pull down list of items.
Label
Text strings that can be displayed on the screen.
Selector
Box that is usually used to select the date or time. 
Repeater
Like a regular button but code gets executed over and over if you hold the stylus down on it.
Field
An area where the user can enter data.
Bitmap
Image.
Gadget
User defined object that is invisible. You can use this to make a bitmap seem like a button.
Shift Indicator
An up arrow that will be displayed if the Graffiti input mode is in uppercase mode.
List
A list of text strings.
Scrollbar
Vertical bar that has arrows at each end.

After I created the layout that I wanted, I then started naming all my screen objects. If you are familiar with Microsoft Visual Basic, you'll be right at home. You can right click on an object and then select its properties. A property box will popup that you can edit. You can name the object, move it to an exact spot, change the font, and change other aspects of it depending on what type of object it is.

After changing the objects properties, I was then ready to start the actual coding. NS Basic/Palm is object oriented. Each object in the screen layout can have code associated with it. For example, when you click on a button, the code for that button is executed. So, I created code for the buttons in my layout. This was pretty easy. Right clicking on an object will allow you to select the show code feature. This will popup a window with the code for that object.  My program was pretty simple. I had 2 text boxes that I could enter a number into. One for Fahrenheit and one for Celsius. Then I could either convert Fahrenheit to Celsius by pressing one button, or Celsius to Fahrenheit by pressing another. I also created a button that would clear both values causing them to be blank.

 

As you can see above, the code to convert Celsius to Fahrenheit is pretty short and simple. I even added some error checking in case someone tried to convert when no value was entered. Programming this way is easy and fun. It's great for people that already know Basic or those that want to learn it. NS Basic/Palm has over 150 available functions which are detailed with short code snippets in a nice 144 page spiral bound handbook.

NS Basic doesn't have many debugging features to help you figure out problems with your programs, but you can download the Palm emulator and have NS Basic compile and automatically download your app to it. This is safer than loading the actual program on to your regular PDA. With the emulator, you can run the program on your desktop PC. It would be nice if there were some tracing, breakpoint and step thru features though. 

The great thing about NS Basic/Palm is that the programs you create look just like any other Palm program. They have their own icon and can be seen in the launcher like all the other programs. The only special thing you need to make this happen is the NS Basic Runtime module. This is a 77k .prc file that you need to install in order to be able to run your programs on the Palm PDA. You also need to include this .prc with any programs you want to distribute to other people. The nice thing is that you don't have to pay royalty fees to the NS Basic people if you want to sell your programs. Once you create a program, you can distribute it or sell it and include the NS Basic Runtime module for free.

You can check out my little Temperature Converter test program by downloading the following two files:

NSBRuntime.prc (NS Basic/Palm Runtime Module - 77k)
temp.prc (my test program - 3k)

NS Basic isn't just for simple programs, you can write programs that create, and edit database files, read and write to the serial port, use math and trig functions (using the free Mathlib module), and more. You can look at a dozen or so sample programs included with the package to give you examples on different types of programs. 

I think that the NS Basic/Palm package is a great for people wanting to get their feet wet with programming applications for their Palm PDA. It's relatively easy to learn and comes with a great manual. The NS Basic website also has an active message forum for people to talk about problems and questions concerning this development environment. The only thing that would be nice would be a some kind of demo so that people could try this package before actually buying it. But, the program does come with a 30 day money back guarantee.

Price: $99.95

Pros:
Visual environment.
Easy to learn.
No royalty fees.
Apps run seamlessly on your PDA with their own icon.

Cons:
77k runtime module required.
No demo available.

Let me know your comments on the NS Basic/Palm and read what others have to say.