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