Copilot - The Windows PalmPilot Emulator
FAQ NOTICE: If you are having trouble with Copilot,
please read the Copilot FAQ before sending me email.
This will probably answer your questions and you will get a faster response.
Thank you.
Copilot is a Windows program that emulates the PalmPilot handheld PDA from
Palm, Inc..
Copilot has a number of features for accurate emulation
of the PalmPilot hardware platform, plus additional features for debugging PalmPilot applications.
Copilot is intended primarily as a developer's tool, although anyone can run Copilot.
This means you can, for example, play your favorite PalmPilot game right on your Windows desktop.
Copilot requires Windows 95 or Windows NT, and will not work on Windows 3.x even with
Win32s. Copilot is a 32-bit multithreaded program, and Win32s does not support
multithreaded applications.
What if I don't have a real PalmPilot?
By far the most common question I am asked about Copilot is "I don't have a PalmPilot. Where can
I get a ROM file?" There used to be a place on the net where you could download a ROM file,
but it is no longer available. The Pilot ROM is copyrighted software by Palm, Inc., and
copying it is software piracy. I will not send ROM files to anybody, so please don't ask me to send you one
(any requests for ROM files will be cheerfully ignored).
I have heard from another Copilot user that TRG, a company that makes 3 MB PalmPilot memory boards,
has a program that will download your current ROM file as part of their upgrade process. I have not tried
this myself, but I don't see any reason why it would not work. Please see the
TRG SuperPilot page to download their SETUP.ZIP file.
(Alex Tang has written a description of this procedure.)
New Features in Beta 9:
- This release now supports the 1 MB PalmPilot ROM (either Personal or
Professional versions). However, it only just "works", there are some
known problems:
- Some kind of timing problem prevents the pen "up" action from taking
effect right away. Clicks on things like application selections will
take longer to happen than you might expect.
- The debugger is broken with anything other than the original English
Pilot 1.0 ROM file. I have disabled the Debugger selection on the menu
because of this (you can still make the debugger activate itself with
any one of the many questionable coding practices listed below involving
memory). The reason it's broken is it relies on absolute patch addresses
to hook actions like application loading. Of course these addresses have
changed.
- Fixed a problem with certain .prc files sans symbols crashing the debugger.
- Will now complain if the user attempts to load an application while the
emulator is turned off.
- Added a switch to enable and disable Copilot sounds. This option is
initially OFF under Windows 95 because 95 does not properly support the
Win32 Beep() API function used by Copilot to generate a tone at a specific
frequency and duration.
- Copilot will now break into the debugger on the following memory errors:
- Any word or long read or write on an odd address.
- Any size write to Storage RAM when it is write protected.
- Any size write to ROM (0x10c00000-0x10cfffff).
- Any size read or write to an address outside the range:
0x00000000-0x0000ffff, 0x10000000-(top of RAM), 0x10c00000-0x10cfffff
Exception: word access in the range 0x10000000-0x10ffffff are permitted
(PalmOS probes memory to find out how much is installed).
When the debugger is activated due to one of these traps, you may choose to
continue execution and the emulator will ignore the trap.
View the latest release notes (updated 6/10/97)
Download Copilot now! (copilot.zip, about 180k)
View Copilot documentation online
Source Code
I have had a number of requests for the source code to Copilot so that other developers can port Copilot
to different platforms such as Macintosh, Un*x, Linux, and BeBox. I have put together a package
containing the Copilot source code and some documentation describing the various pieces and how they
fit together. This code is, of course, provided as-is with no warranty :). But that doesn't mean
I won't answer questions about the code - I'm very interested in seeing Copilot ported to different
platforms!
Download Copilot Source Package (copilot-source.zip, about 180k)
Copilot Ports
Several other PalmPilot developers have ported Copilot to other platforms. Here are the current
ones that I've been able to find (corrections and additions welcome):
- BeOS
-
- Linux
-
- Macintosh (PowerMac only)
-
- OS/2
-
- Windows CE
-
Troubleshooting
-
If Copilot complains about MSVCRT.DLL, get this file. This is the Microsoft Visual C++
Runtime Library.
Download MSVCRT.DLL (msvcdll.zip, about 135k).
-
If Copilot runs but the pen clicks don't seem to line up with where you clicked on the screen,
you should shut down Copilot, erase the pilot*.ram file (to erase the PalmPilot's RAM), and restart
Copilot. The first thing the PalmPilot will ask you to do is calibrate the digitizer by tapping
on targets on the screen. If you are careful to do this accurately, the digitizer should work fine.
Copilot is Copyright © 1996-1997 by Greg Hewgill
Email: greg@hewgill.com