Squeak on a 16Bit PDA? (try Squeakette)

Paul Fernhout pdfernhout at kurtz-fernhout.com
Fri Jan 15 15:47:43 UTC 1999


johnm at wdi.disney.com wrote:
> 
> Karsten Aalders <k_aalders at yahoo.com> wrote:
> > When you say that the port of Squeak to a 'bare' hardware is possible,
> > does that mean that the only thing I need to do that is an ANSI-C compiler for
> > the target platform, the Squeak source-code, and some (self-made) hardware
> > drivers? No low-level OS functions like task management?
> 
> Yes, that's exactly right. The essential I/O functions are those that
> (a) simulate a Unix stream in order to get the image loaded,
> (b) copy pixels from Squeak internal Display bitmap to the
> hardware display buffer, and (c) provide some sort of pointing
> device input. Doing this much will let you get an image on
> the screen and do things via menu commands, although you
> won't have a keyboard.
> 
> The file sqMacMinimal.c is good starting point for doing a bare-machine
> Squeak port. If you're good at writing drivers, you could be "on the air"
> in just a couple of weeks.

Karsten-

You might also want to take a look at using Embedded Squeak (Squeakette)
for a much easier first go. Once you have Squeakette running, you will
be able to evaluate Squeak/Smalltalk expressions entered from a serial
console. You will not have to get screen support or mouse support or
stream support working first. (Even if you try doing full Squeak first,
you coudl use the Squeakette code for embedding the image in the program
to save you time/trouble.)

Basically, all you need to get Squeakette running on your hardware is
serial port support (or other console I/O), possibly timer support, and
a way to bootstrap a cross-compiled C program onto your PDA. There is no
need for file support as the image is compiled into the C executeable. 

After you get Squeakette to work, you can then go further to supporting
display drivers and such. Once you have Squeakette working, you will at
least know you have all the compiler options set correctly for byte
order, structure size, integer length, and such. 

A version of Squeakette for Windows (compiles w/ VC++) is available at:
http://www.kurtz-fernhout.com/squeak
It should take ony a few minor changes to get it to run on any platform
(for example, to get it working under VxWorks was almost trivial). If
you otherwise have serial support and timer support, I'm guessing you
might be "on the air" in a couple of days. 

I haven't ported Squeakette to bare hardware, so it is possible there
could be unexpected reasosns it takes longer. However, almost everything
you do to get Squeakette to work will then be useable in a full Squeak
port, so you're not wasting much work in trying it. Squeakette was based
on "sqMacMinimal.c". If you can't get Squeakette to work on your
hardware, then there is probably no hope to get Squeak to work either.

One reasons not to use Squeakette would be if you thought getting the
serial port to work was harder than getting the display driver and
pointing device to work. Also, you might not have a serial port (or
other external I/O lines for faking one) if you load directly from
externally burned eeproms. However, often bare systems already have
serial port code used to bootstrap them, so that part may be done
already.

-Paul Fernhout
Kurtz-Fernhout Software 
=========================================================
Developers of custom software and educational simulations
Creators of the GPL Garden with Insight(TM) garden simulator
http://www.kurtz-fernhout.com/squeak





More information about the Squeak-dev mailing list