Email:   


Home
In This Issue
Email a Friend
EasyPrint
Click here for the RSS feed's XML code. This is not a browser URL.


ENTERPRISE CONNECTIONS
How to generate Doc files for Palm devices from Notes
By Mark Lawson

If you've ever used a Palm Computing device, you're probably familiar with Doc files. Files saved in this format can be easily downloaded and viewed on your Palm device using one of many popular Doc viewer applications.

This article shows you how to easily create uncompressed Doc e-text databases using just LotusScript. For many users this well-supported format, derived from the original program by Rick Bram, is their first choice for storing reference information, articles and even whole books on the Palm device. Once installed, Doc databases can be read by a variety of programs such as AportisDoc or TealDoc and can include formatting, bookmarks and even pictures depending on the chosen reader. Now there is even an editor called QED. A word of warning however: as you know, Palm devices have small amount of memory (1-4Mb) and little 160x160 screens; you may have to be inventive.

Doc database structure
A Doc database is actually a format-within-a-format, wrapped up inside a standard Palm device PDB database. To keep this article short we've omitted a detailed account of the PDB and Doc header fields but we've included a more detailed description in the accompanying example. After the PDB header and the offset list (easy in this case as the records are all defined lengths) the first record in the database is the Doc header. This simply holds the version; 1 for uncompressed in our case, and the number of 4096-byte records which then follow in successive records.

A simplified view of the Doc-PDB format as shown in Table A. An interesting feature to note is the 2-byte padding. Although not actually part of the format, the 2-byte pad is necessary for the file to install properly.

Pdb Section Bytes
Pdb Title 32
Pdb Header 48
Record Offset 1 8
Record Offset 2 8
Record Offset N 8
Padding 2
Record 1 Doc Header 16
Record 2 Doc Data 1 4096
Record N Doc Data N-1 4096

LotusScript and Palm device idiosyncrasies
There are a couple of hurdles to overcome before writing the file:

  • The DragonBall processor in any Palm unit expects data to be presented in a byte-swapped (MSB) format, so on Intel PC's you need to do a reversal (e.g. B2-EB-77-F4 is reversed to become F4-77-EB-B2). I've written Back4() and Back2() to handle this for 4 and 2 byte values using the simple Hex$() and CLng() functions rather than binary math. If you own a Mac, you'll have to change the code for Back4() and Back2() in the script library since the Mac's processors (also Motorola devices like in the Palm device) don't need the reversal.





[ Next ]

Copyright © 1998-2008, ZATZ Publishing. All rights reserved worldwide.