[Thread Prev][Thread Next][Thread Index]

Xcopilot (was Re: [Fwd: PalmPilot kernel])



ftp://ns1.pfnet.com/pub/PalmOS/xcopilot-v0.4.tar.gz

The Pilot emulator has been ported to Unix.
It's called xcopilot.  The last version that I saw
was 0.4 as of April 9th.  I haven't had time to get it build yet...
BTW, It needs a library called Xpm that I haven't had time to look for.

I've included the readme below.

--Robert


	    This is release v0.4 of XCopilot (9-Apr-1997)


The last "official" release was v0.2. Release v0.3b was an interim
release by Jef Dionne.

Please note that this is still very ALPHA software, so expect
problems. Please send me any bug reports (or better yet, fixes) you
dicover.

Thanks to Kresten Krab Thorup <krab@xxxxxxxxxxxx> for the endian patches
Thanks to Andrew Pfiffer <andyp@xxxxxxxxxxxx> for 16bpp and keyboard patches

Improvements over v0.2
======================

  * support for BIG endian machines

  * support for 16bpp displays (only on little endian machines, although it
    will be easy for someone with a big endian 16bpp machine to add that).

  * menu user interface allows loading of .prc files without the debugger

  * keyboard input

  * working serial port

  * debug via a socket

Building under Linux
====================

Building under linux with gcc should be straightforward. You will need
the Xpm and Xext libraries

In the xcopilot-vxx directory, do

make xcopilot

this will make the libmc68k.a library in the mc68k directory, libmx in
the mx directory, and leave the executable xcopilot in the current
directory.

Building with other systems
===========================

Building with gcc should be straightforward. You will need
the Xpm and Xext libraries.

You will need to modify the Makefile in each directory (./, mx/ and
mc68k/). There are already alternate definitions for some compiler
flags for SunOS 4.1.4. Those of you on other systems, you will need to
do a little work.

Once the Makefiles have been edited, do

make xcopilot

this will make the libmc68k.a library in the mc68k directory, libmx in
the mx directory, and leave the executable xcopilot in the current
directory.

Running
=======

You will need a Pilot rom image file installed in the current
directory as "pilot.rom". Please see the original copilot
documentation for details on how to get this file.

do

xcopilot -u 

for a brief command line synopsis.

The serial port simply connects to stdin and stdout, so you can use
redirection to connect to any other port. eg. if your modem is on
/dev/cua1, then do

xcopilot < /dev/cua1 > /dev/cua1

Debugging
=========

To enable debug mode, run with the command switch -debug.  This will
start the debugger listening to socket port number 2000. To connect to
the debugger, use telnet e.g.

telnet localhost 2000

The debugger starts with the cpu stopped. You must explicitly start
the cpu for anything to happen (use the "start" command).

You should not issue the "load" command until after the welcome screen
has gone away.

Since the ram state is saved from run to run, once an app is loaded it
persists until deleted, or the pilot128.ram file is removed.

Potential problems
==================

  * The ram size is 128k. This can be changed by changing the symbol
    RAMSIZE in main.c

  * Some systems don't have the ftruncate function. There is a crude
    ftruncate function in memory.c, but I think it clobbers the file
    as well as truncating it. You might want to find a better ftruncate
   (or get a libc with more functionality)

  * The debugger uses port 2000 by default. If this port is not good for you,
    the port number can be changed by changing the symbol DEBUG_PORTNUM
    in main.c

  * Applications larger than 32k will not load unless the scratch size
    is increased. This can be done by changing the SCRATCH_SIZE symbol
    in mc68k/memory.h

  * People have had problems with the X shared memory extensions. If
    you have problems, try using the -noxshm option. This is definitely
    a problem when running from a remote cpu.

  * People have had problems with the pixmap code. This could be
    because I am using an older version of Xpm than most people. If
    you have problems, check the code in display.c and the docs for
    your version of xpm.
 
Shortcomings
============

Debugging, breakpointing, tracing support is still very rudimentary.
Expect more in the next release.

I have developed this under i386-linux and SunOS 4.1.1, so there may
be some portability problems, which I will rely on others to point
out.

I would like to coordinate further efforts on this port (certainly I
will be continuing work on it), so if anyone else out there would like
to help out, please contact me.

Anyone interested in modifying this code will benefit from studying
Greg Hewgill's copilot sources, which will need to be obtained
separately.

Ivan Curtis
icurtis@xxxxxxxxxxxxxxx


SourceForge.net Logo