Connecting the Palmtop to MS-DOS and Windows NT 4.0

An HP Engineer shares his experience and Palmtop software as his division moves from DOS to Windows NT.

By Steve Grotheer

I manage a manufacturing test group of 14 people. The HP Palmtop has been my main tool for keeping track of my own activities as well as those of my employees. I've used one or another of the HP Palmtops since the days of the HP 95LX. Although I view myself as a Palmtop power user my wife has her own way of viewing things. She often suggests that I eed to find a "Palmtop Anonymous" group to work on my addiction. She's a long-time user of paper organizers and we often have friendly banter over which system is better. I take every opportunity I get to "one-up" the paper systems.

My Desktop Companion

My Palmtop is never far from my side. It wanders the world with me and, when I'm in the office, it's plugged into my desktop PC.

Over the past several years, I've developed some unique ways of using the Palmtop as an extension to my PC. All of these tools I developed were meant to work with Windows 3.1 PCs.

Since my company has recently switched to Windows NT, I have had to develop a different set of tools to work with NT. Perhaps I'll never use the DOS and Win 3.1 procedures again but maybe you will. I'll gladly share my DOS connectivity tools with you and share what I've created for WinNT with the understanding that I have not had as much time to build robust NT tools.

Many Uses for ZIP.COM

Perhaps the most important thing I do when my Palmtop is connected to the DOS machine is to perform incremental backups. I've tried all the connectivity software that's available for the Palmtop and had settled on Eric Meyer's ZIP.COM program. ZIP is small, very fast and can be run as a standalone program on the PC and the Palmtop. However, the thing that makes ZIP.COM ideal for my use is the fact that it can be run from within DOS batch files. When using ZIP I put the Palmtop in server mode and run all ZIP commands from the PC. To make ZIP easier to use, I wrote several, DOS batch files to automate frequent tasks. These tools allow me to keep files on my Palmtop where I can always have access to current information when away from my desk, yet allow for easy access from my desktop PC when I am at my desk. Not only do I use the desktop to back up the Palmtop but I also use it to edit, print or mail Palmtop files. Here's a brief description of each of the batch files I have created. They all start with "z" to indicate that they work with ZIP.

ZPR.BAT gets a file from the Palmtop and then prints it from my desktop computer using QEdit.

ZEDIT.BAT copies a file from the Palmtop, edits it using QEdit on the desktop and then saves the modified file back to the Palmtop. This lets me use the faster keyboard and the larger screen of the desktop while preserving the integrity of my file on the Palmtop.

ZBACK.BAT backs up the A and C drives from my Palmtop to the desktop. It copies only those files that have changed. It also reminds me to close applications on the Palmtop before doing the backup. I have a ToDo item in my appointment book that reminds me to run ZBACK once a week.

ZDIR.BAT displays a directory on the Palmtop in case I can't remember where the file I want is located.

ZAPT.BAT was written by Ed Keefe and lets me get the current appointment file from the Palmtop, edit it using the Appointment Book from the HP Connectivity Pack and copy it back to the Palmtop.

In addition to the batch files, I created a C program that will let you build batch subroutines using various formats of the path name or filename of the file on the Palmtop. This program is called BLDZCMD.EXE.

That summarizes the tools I pulled together for DOS or WINDOWS 3.1. Unfortunately, once I upgraded to WinNT, the ZIP program no longer worked. It relies on DOS calls and direct hardware access. WinNT will not tolerate that. So I started searching for an NT program that would provide the same script control and flexibility of ZIP.

Columbia University has recently introduced an NT version of Kermit software. Kermit has become much more flexible over the years and now has the capabilities needed for file backup including recursive copy and file date checking. I used K95 for WinNT and MSKermit version 3.16 on the Palmtop.

I've developed a set of Kermit script files analogous to the ZIP batch files I used under Windows 3.1. These are not as robust as the ZIP versions yet, but I'm working to improve them. For NT, I have a KEDIT, KDIR, KPR, KBACK and KGET. All are similar to the ZIP versions. KGET gets a copy of the file and puts it in the temporary directory for use as an email attachment. KBACK.BAT utilizes a Kermit script file called BACKUP.KSC. I also had to update the BLDZCMD. EXE file to accommodate the "/" character required by some Kermit commands.

Kermit

Kermit is infinitely configurable. Getting both Kermits set up optimally took a lot of experimentation.

I found that a baud rate of 57600 was the fastest I could communicate without getting too many errors or timeouts. I first set Kermit95 to fast mode which sets up large packets and optimizes many other Kermit parameters for high-speed communication over clean connections like a direct serial connection. Then I reconfigured some of the options set by the "fast" command so that I minimized errors during transmission. I can't provide a technical explanation as to why these sub-optimal settings are required when connected to the Palmtop but I do know they were necessary to achieve reasonable file transfers.

Kermit has a nice statistics command that I used to measure average transmit rate for sending a combination of files. I used this tool to determine if my adjustments increased or decreased throughput time.

The first thing I had to do was set windows to 1 or off. Multiple windows allows Kermit to send and receive multiple packets simultaneously to increase average communication speed. When I tried to use the windows option I got too many timeouts. Receive packet size can be anywhere from 100 to 9000 bytes and I chose 4000 so that if an error did occur the retransmit time was optimal. Surprisingly I had to set the transmit packet length to 100 bytes to avoid errors and timeouts. The Palmtop must have a small receive buffer and cannot use larger packets. Kermit also has a mode called "transfer slow" that starts communication of each file with very small packets and gradually gets larger as confidence in the communication increases. I set this to off because this can waste a lot of time when transferring many files at one time. I also set carrier detection off because I am not using a modem. I set "file collision update" which always checks for the existence of the file you are transferring and, if one exists by that name and has an equal or newer creation date, it will not make the transfer. This is very good for efficient backups and prevents accidentally erasing a more current version of a file.

Now that the desktop INI file is established, I created the mscustom.ini file on the Palmtop to match this one. The commands are identical to the desktop version, so I just had to copy the pertinent initializations from the Kermit95custom.ini file.

I chose to use MSKermit 3.16 on the Palmtop because it's the only version of Kermit that will automatically copy directories within directories. The program is still in the beta stage but it seems to work well. I considered using the built-in DataComm program on the HP 200LX. DataComm has a very basic Kermit server mode built in. However, this version of Kermit does not send file attribute information so it was not possible to do date checking and avoid backing up files that had not changed since the last backup. This is a very important feature on Palmtops with up to 32 MB of RAM disk and very large flash disks.

I have only been using Kermit on my NT system for a short while and thus I have not worked out all the quirks yet. I would also like to hear feedback if you try these tools and have any suggestions for improvement. Here are some things you should be aware of if you use this method.

1) I have not completely figured out the file and path formatting requirements between K95 and MSKermit. It is not as obvious as you might think. For example, I cannot issue a "remote cd a:\bin\tools" command on K95 to change a directory on the Palmtop. I have to do it in three steps: "remote cd a:", "remote cd /" and then "remote cd bin/tools". Note the use of forward versus back slashes.

2) I still get intermittent hangs or timeouts when communicating and have not had time to work these out. But communication works good enough for now.

3) Kermit is a very large and feature rich tool and there may be more elegant ways of doing some of these things that I have not tripped over yet. Unfortunately, I must say that ZIP.COM under windows 3.1 is still faster and more reliable than my WinNT Kermit setup. But they are getting closer.

As you can see, I already have a PC, and traveling, Companion that does everything I need. The most valuable thing about my Palmtop Companion is that I can make it do what I want rather than what some other programmer wants. I can add software and even enhance the software to suit my style of working. If you like the way that I do things, please give my small programs a try and let me know what you think.

In closing, let me mention that MS-DOS Kermit 3.16 is available as copyrighted freeware. However, as of June, 1999, the license prohibits anyone else from distributing it. You have to get it directly from the Kermit Web site. MS-DOS Kermit 3.16 and Kermit 95 are two programs well worth having in your collection.

My Traveling Companion

I work with people in many countries and travel quite a bit. The WorldTime feature is very valuable for me. Whenever I travel I create a special directory for that trip. In it I store an electronic copy of my travel itinerary, a copy of my expense tracking spreadsheet and any other files I will need on the trip. When I arrive in a new city I start WorldTime, find the city I'm visiting and switch to local time for that city.

In the notes section of WorldTime I include travel hints that my co-workers or I will use when we travel to this location again. I include information about hotels such as phone and fax numbers and facilities they have such as exercise equipment or restaurants. I also include information about local transportation, tolls and directions to businesses, etc. This information is very useful the next time someone travels to that location.

Phone application

As many users have done, I have modified the standard phone database to meet my specific needs. I use only one PhoneBook file to improve speed. The combination of the category field, subsets and sorting order allows me to view phone book entries for as many groups as needed such as my business, personal, medical and others categories. I have added an email address field, a Christmas list checkbox and changed the address fields to be more internationally friendly.

At Christmas time I use a subset and a smart clip to save all my Christmas card addresses in a comma delimited format. I import this file into MS-Word on my desktop PC and use mail merge to print custom Christmas card envelopes very quickly.

Appointment Book

Here are a few things that I do with my Appointment Book that I have not seen before. When storing anniversaries I use the following format:

Description: Steve&Vickie anniv

Location : 1990

This way, in the weekly and monthly views I can see "Steve&Vickie". In the daily appointment view. The anniversary year shows up for birthdays and anniversaries.

NoteTaker

To better organize my personal and business information I decided to keep all information about people or businesses in Phonebook. I store information about projects that my staff or I are working on in a database. I use NoteTaker for information about things or processes. I have notes divided into categories for the 200LX, Modems, my PC, Home, and various work topics. One of my NoteTaker files contains 60 notes for political topics. It contains lists of politicians with categories for state and US congress and senate as well as local county and city categories. I keep track of how the politicians vote and how I can get in contact with them. When I want to do a letter writing campaign for my favorite issue I have all the necessary contact data and have information about how they have voted recently. It is easy to write a form letter, copy addresses into it and reference recent voting practices.

Software Carousel

Due to the larger size of QEDIT with its spell checker and the large size of some of the files I edit, I could not run QEdit in DOS and more than one built-in application at any given time. Enter Software Carousel for the Palmtop. This task-swapping program lets me run QEDIT in another work area with lots of available memory while having all my built-in applications running in another work area. When I want to switch back and forth, I just swap to the other environment by using Shift F1 or by pressing any of the Blue application keys. It is very quick as long as you put the task swapping file on the C drive and not a stacked A drive. Great application!

ClipVue

Unfortunately, the authors of Software Carousel or QEDIT have not developed a way to use the Palmtop clip buffer to transfer information from DOS to the built-in applications, so I use ClipVue written by Gilles Kohl, CIS:100114,3146. With QEDIT, I use the ^k^r and ^k^w to read from and write to the clipvue.txt file. I press the ClipVue hotkey to enter ClipVue and either load or save the information I want to transfer.

Buddy

This application is terrific. It does so many useful things and provides many shortcuts to frequent operations. I am sure that most Palmtop users are aware of it by now. I have used it for so long that when I am showing a new Palmtop owner how to use their new toy, I have to think very carefully which features are original Palmtop features and which ones are Buddy features. My favorite features of Buddy are the typing aids such as double click caps and autocaps for new sentences as well as the caps lock for making ALLCAPS words. I also like the file open function keys.