Home
News
Community
Products
Download
Support
Sales
About CASL

 
 
 
 
 
 

CASL Product FAQ


This page will concern itself with frequently asked questions having to do with the CASL products.  We have information about CASL purchasing questions on the Sales FAQ page.  Our Support page has other FAQ pages.

  1. What's CASL?
  2. What are the differences between the CASL p-code, CASLpro (C build), and CASLppc compilers?
  3. What is an "upgrade"?
  4. Is there a maximum size to Standard CASL p-code applications?
  5. Is CASL compatible with Treo 650, T|X, etc?
  6. Does CASL allow wireless communication with Palm VII and i705?
  7. Does CASL allow communication with Symbol's bar code scanner?
  8. Does CASL allow communication with printer through the IR port?
  9. Does CASL allow communication through the IR port?
  10. Is CASL a good environment for developing a db application?
  11. What are the db limits for CASL?
  12. Can CASL db's be imported/exported to/from Excel/Access?
  13. Can CASL db's be HotSync'd with ODBC/Excel/Access db's?
  14. Is CASL easy to learn?
  15. Where can I learn more about how to program in CASL? [books, sites, source samples, newgroups, supportboards...]
  16. How do I get the newest release of CASL? (I'm already a licensed CASL user.)
  17. Can I run the CASL IDE on an Apple Mac?
  18. Can I run the CASL IDE on Linux?
  19. How does CASL compare to NS Basic? To AppForge?

What's CASL?

CASL is an acronym for Compact Application Solution Language.  It's a language and development environment specifically tailored to Personal Data Assistants (PDA) and Smartphones such as the Treo 650/700 series.

There's an Introduction to CASL e-book available on our Support page, and an overview is given on the Product Page.

Top

What are the differences between the CASL p-code, CASLpro (C build), and CASLppc compilers?

An overview is given on the Product Page.

Top

What is an "upgrade"?

This is the word we use to describe a version increase (newer version).

Note, for those familiar with older CASL terminology, we used to refer to our CASLpro product as an upgrade.  Now, CASL comprises CASLPro (PalmOS), CASLPPC (PocketPC) and CASLWin (Windows).  There is no longer individual pricing for each component.  When you upgrade, you receive support for all 3 platforms! 

Top

Is there a maximum size to CASL p-code applications?

For the Palm OS, yes, there is a maximum size that a CASL p-code application can be.  There is 64 kB available for p-code and variables. The compiler will display the amount used when doing a p-code compile. If the application goes over the limit you can continue to increase the size of the application by breaking it up into separate applications that call each other using the CASL launch command.  Shared variables will need to be a database file.

You can also use CASLpro to generate larger applications without having to use the launch method.  Size is only limited by available memory.  In fact, CASL p-code is no longer recommended since CASLPro (C Build) is now a standard part of the CASL product.

For PocketPC, no.  Size is only limited by available memory (up to a total of 640 CASL objects within a single project).

Top

Is CASL compatible with Treo 650, T|X, etc?

Yes, the Product Page has information about device compatibility.

Top

Does CASL allow wireless communication with Palm VII and i705?

Yes, however Palm has dropped support for Web Clipping and is therefore of little use.

Top

Does CASL allow communication with Symbol's bar code scanner?

CASL programs can receive data on the Symbol bar code scanners SPT1500, and SPT1700 using a CASL-callable C function library or C library (CASLpro).  CSM150 (Springboard module for Handspring Visor products) is supported with CASLpro only.  If you've downloaded the Demo Edition, there's a sample program in your Samples folder.  There's also a download on the Samples Page.

Some users have also gotten the library to work with the SPT1550, and SPT1800 by modifying the check for the ScanMgr program in the device, because Symbol had changed the name of the program to ObScanMgr.

In the file CASL_SPT.cpk, in the function SPT_init change

if exists("ScanMgr");

to

if exists("OBScanMgr") or exists("ScanMgr");

Top

Does CASL allow communication with a printer through the IR port?

CASL programs can print text strings through the IR port or the serial port by calling  PalmPrint, a printer library which must be purchased from Steven's Creek, and a special CASLrt runtime environment (Standard CASL), or C library (CASLpro).  If you've downloaded the Demo Edition, there's a sample program in your Samples folder.  There's also a download on the Samples Page.

Top

Does CASL allow communication through the IR port?

Your Palm device must have OS 3.3 or higher, so that the exchange library is available.  Most Palm OS 3x devices can perform a flash upgrade of their OS, by downloading an upgrade file from www.palm.com. Use the site's search feature for details. The cost is approx $15.

Sending and receiving data over the IR port is handled by CASL the same as serial access is handled, with the file object, and the appropriate communication settings.  For complete details, see file open command in the on-line manual on the Support Page.  If you've downloaded the Demo Edition, there's a FilePad sample program in your Samples folder which demo's IR usage.

Top

Is CASL a good environment for developing a db application?

Absolutely.  CASL has an easy db file object (dbfile), which allows a db record to be defined by binding field variables to a db record. A single get_fields/put_fields command is used to read/write all bound field variables with single command. db files are automatically sorted by key field when new records are added (with insert command), or during HotSync with CASL Conduit. There are search and seek commands for random access, and setting the db file bookmark.  Db operations are very fast in CASL.

There's a table-like grid object with cells, which can be populated with a label, text, button, checkbox, or dropdown object. The grid columns can be bound to a db file object field or an array for auto-filling without writing any code. A single grid can be bound to multiple db file objects. The cell object's traditional invoker functions are available for programming. You can use the row_loaded invoker function to load cells, which might be calculated values. You can use the row_unloaded event to save cells back to a dbfile object file. There's a row_selected invoker function so you can take action when a user selects a row.

CASL db files can be HotSync'd from PC to Palm, Palm to PC, merged between PC and Palm, or not synchronized at all. The CASL conduit also allows initial installation of db files onto the Palm device, if the db file has been created on the PC. The CASL Conduit performs the HotSync operation (automatically called by normal Palm HotSync manager), and is a freely distributed file.  On the PC, the CASL Conduit by default saves the file in the CASL HotySync folder with extension cdb.  The cdb file format is basically a csv type format.  The CASL Conduit can also be configured to synchronize with an ODBC compliant file, (such as MS Excel and Access), whose location you specify.  There are additional details about the CASL Conduit on the Conduit Page, and by referencing on-line IDE Manual, on the Support Page.

When using the default cdb file format, CASLwin programs can directly access the db.  Alternatively a PC program can be built with standard PC development tools, such as VB or VC, to access ODBC compliant data.

If you've downloaded the Demo Edition, there's a Password33 sample program in your Samples folder which demo's database access, use of the grid object, and HotSync conduit.

Top

What are the db limits for CASL?

A Palm file name is limited to 31 characters.  On the PC (Win32), the following characters cannot be used in a file name, and therefore will cause problems for the CASL Conduit if used, / \ < > : | ?.  Notice the . (period) is legal on both Palm and PC, although on the Palm it's just a character in a file name, and on the PC it's a file and extension separator.

We're not aware of a limit to the number of cdb files. We've had a CASL program make use of over 70 cdb files, although about 6 were open at one time.

The maximum database record size is 32 kB.  This limit is inherited by the CASL conduit from the Palm HotSync manager.

The maximum records per db file is 15,999.

The maximum fields per db record is 100.

A string field will get truncated after 3,999 bytes during a HotSync operation.  If you don't need to HotSync, then perhaps a string field could be as long as a normal CASL string variable.  We're not aware of a limit for a single string, other than all data is restricted to a 64 kB sector (and this is shared with all your other global data).

For CASL db file storage requirements on the Palm and PC platform, see the Support FAQ regarding file formats.

Top

Can CASL db's be imported/exported to/from Excel/Access?

On windows, the cdb file format by default is basically a csv type format, and therefore with minor manual changes can be imported/exported into data programs having a csv import/export option, (such as MS Excel and Access).  There are also many 3rd party tools for accessing CASL db files with Excel, Access, Visual Basic, etc.

Top

Can CASL db's be HotSync'd with ODBC/Excel/Access db's?

The CASL Conduit has an ODBC option and therefore CASL db's on a Palm device can HotSync directly with data from programs like Excel and Access.  ODBC databases on the PC must have 2 special Palm fields for the Record ID, and Status.  There are additional details about the CASL Conduit on the Conduit Page, and by referencing on-line IDE Manual, on the Support Page.

Top

Is CASL easy to learn?

If you know an event driven language now, like Visual Basic, Delphi, C, or Java Script, then developing in CASL is very, very easy.

If you're familiar with old fashion Fortran, Basic, or some other procedural language, then user interface objects like buttons and event procedures will be new. We'd suggest any of the CASL books listed on the Support Page to help get you started.  Start with the beginner sample applications, and from there you should progress quickly along the learning curve.

If you're totally new to programming, then writing code will also be new.  You might want a beginners object oriented, event driven programming book.  Most of the CASL books on the Support Page assume some prior object oriented, event driven programming.  As Visual Basic is very popular, we could suggest any of the many beginners books tailored to this language.  As the CASL and Visual Basic syntax are very similar, you could work out VB examples in CASL with minor translation.  The same can be said of beginner books for Delphi.  You'll also benefit from at least one of the CASL books on the Support Page.

Top

Where can I learn more about how to program in CASL? [books, sites, source samples, newgroups, supportboards...]

See the Support Page.

Top

How do I get the newest release of CASL? (I'm already a licensed CASL user.)

See Download Page.

Top

Can I run the CASLide on an Apple Mac?

This is not supported by CASLsoft.

Ken Peregoy, a CASL user, informed us on 3 Dec 2000 that CASL works fine on a Mac running VirtualPC.

His system:

  • Powerbook 233mhz (Wallstreet 2) System 8.6 (1 revision from newest, soon to be 2 revs.)
  • 96mb RAM
  • 2 gig HD 
  • VirtualPC 2.1.3

Top

Can I run the CASLide on Linux?

This is not supported by CASLsoft.

Bill Bardon, a CASL user, of ComputAssist in Omaha, Nebraska, informed us on 20 Jul 2000 that CASL works on Linux running Wine.  His explanation:

Introduction

What's this all about? I program applications for the Palm OS running on handheld computers like the Palm III, V, VII, the Handspring Visor, and TRGPro. The development environment I use for this is CASL, a very nice IDE package from CASLsoft. I also recently purged Windows from my computing environment, something I have been trying to do for some time. I'm running RedHat Linux 6.2. I tried to talk John Feras into a Linux version of CASL, but failing that, I needed a way to run the CASL IDE in Linux.

Having had success with other Windows programs (most notably Visual FoxPro) in the Wine windows replacement program, I planned to try to run CASL the same way. There were a few snags along the way, but it's now running well on my Linux box. Hopefully this guide will save others from the pitfalls I ran into.

This document will not try to cover the details of Linux or Wine setup and configuration, as they are too large in scope, and well documented elsewhere.

Getting the necessary components

Linux is a free Unix-type operating system originally created by Linus Torvalds with the assistance of developers around the world. Linux is an independent POSIX implementation and includes true multitasking, virtual memory, shared libraries, demand loading, proper memory management, TCP/IP networking, and other features consistent with Unix-type systems. Developed under the GNU General Public License, the source code for Linux is freely available to everyone. The Linux operating system is available from many distributors and download sites. If you are not familiar with Linux, www.linux.org is a good place to start. You can download the entire OS via FTP, or get a copy on CD.

Wine is an implementation of the Windows 3.x and Win32 APIs on top of X and Unix. Think of Wine as a Windows compatibility layer. Wine allows unmodified Windows 3.1/95/NT binaries to run under Intel Unixes. Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code. Wine comes with complete sources, documentation and examples and is freely redistributable. Once you have a running Linux box, your next step is to visit www.winehq.com, where you can choose from many alternatives to acquire a binary package or the source code for Wine, and compile and/or install it on your system. Test the Wine installation with Solitaire or Wordpad to verify that you have a functional Wine environment. This HOW-TO was created while running a version of Wine downloaded from the CVS tree on July 19th, 2000.

Developing Palm OS applications is where CASL comes in. It includes a visual object form designer using event-driven design, a code editor, compiler and debugger. CASL allows you to test your Palm program on your PC, then download it to run on the PalmPilot. You probably already have CASL or you wouldn't be reading this. In any case, you can go to www.caslsoft.com to read up on what CASL can do, and order a copy for yourself. The program is well worth the price in time saved creating Palm applications. With the optional C code generator, you can easily take your CASL programs from prototype to commercial-quality application.

Wine settings for CASL Source code

Source Code: As of July 20, 2000, there is one line of code that needs to be changed for CASL to run. This will change in the future; it may change next week. It will change when someone writes the code that makes it happen.

CASL calls a Windows API function called PeekNamedPipe, and Wine has not implemented it yet. There is a stub function which outputs a warning to stderr and returns false. The false return value causes CASL to loop endlessly. If changed to true, CASL moves on, apparently without harm.

To change the code, edit the source file win32/newfns.c, and change this code:

BOOL WINAPI PeekNamedPipe (HANDLE hPipe,
		LPVOID lpvBuffer, DWORD cbBuffer,
		LPDWORD lpcbRead, LPDWORD lpcbAvail, LPDWORD lpcbMessage)
{
  FIXME("(%08x, %p, %08lx, %p, %p, %p): stub\n",
	hPipe, lpvBuffer, cbBuffer, lpcbRead, lpcbAvail, lpcbMessage);

  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
  return FALSE;
}

to this:

BOOL WINAPI PeekNamedPipe (HANDLE hPipe,
		LPVOID lpvBuffer, DWORD cbBuffer,
		LPDWORD lpcbRead, LPDWORD lpcbAvail, 
		  LPDWORD lpcbMessage)
{
  FIXME("(%08x, %p, %08lx, %p, %p, %p): stub\n",
	hPipe, lpvBuffer, cbBuffer, lpcbRead, lpcbAvail, lpcbMessage);

  SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
  return TRUE;
}

This is a kludge, a quick hack, a mouldy biscuit, whatever you want to call it, but it works! After you make this change, use tools/wineinstall to compile and install Wine.

Window Manager: RedHat installs Enlightenment and Gnome, but I switched to IceWM. It's small, fast and provides the features I need. Your choice of window manager won't affect Wine much, at any rate.

Wine.conf: You can use the default settings for most of options in the config file. I changed a couple of them, however. In the [x11drv]section, I set PerfectGraphics = Y and Managed = Y.

Registry: The CASL setup program, CASL3.exe, can be run in Wine to install CASL into your Wine environment. However, all the registry keys will not be correctly added to the Wine registry. You must open the Wine registry files with a text editor (like Nedit) and double-check that the values stored match your actual setup.

The following keys were required to get CASL running on my system:

~/.wine/user.reg
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
[root\\Software\\CaslSoft\\CASLide3\\Settings] 964122322
"CurrentDirectory"="F:\\palm\\hq\\source"
"PalmPilotInstallDir"="F:\\palm"

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~/.wine/user.reg

/usr/local/etc/wine.systemreg
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
[MACHINE\\Software\\CASLsoft\\CASL3\\3.0] 963368557
"Company"="CA"
"Name"="Bill"

[MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\
  CaslIde3.exe] 963368557
"Path"="C:\\Program Files\\CASLsoft\\CASL3"

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Of course, you need to make sure that you use values that are valid for your installation. CASL adds other keys as it is used.

Fonts: Most people will want the CASL fonts installed for designing forms. RedHat installs with xfsft configured, so adding TrueType fonts is just a matter of copying the font files into the TrueType directory and restarting the font server. If you are using another distribution, consult your X font server documentation.

The future

As the Wine development team continues to work on the program, it keeps getting better and better. They stress that Wine is alpha software, and they are working toward the beta program.

Top


Home | News | Community | Products | Download | Support | Sales | About CASL

© 1997-2007 WAGWARE Systems, Inc. & Brainyware, LLC.

All Rights Reserved. Legal info

Last Modified 01/02/2007