PalmOS emulation

Dear Lazyweb,

Is it really the case that there is no way to emulate or develop for a color version of PalmOS on MacOS X?

I'd like to be wrong about this, but I think the answer is "yes", and that:

  1. Only the PalmOS "Emulator" runs on OSX (not the PalmOS "Simulator");
  2. Only the "Simulator" can run ROMs of version 5 or newer;
  3. Only the 5.x ROMs do color;
  4. Only the 5.x ROMs are ARM based (earlier ROMs are 68k);
  5. Therefore, development on a Mac (or Linux?) can only result in emulated, 68K non-color binaries.

Is all that true? Say it ain't so.


Update: Apparently the 3.5 ROMs can do color, but Palm never distributed development ROMs that corresponded to a color device! So you can only do color if you've sucked the right ROMs out of a physical color 3.5 - 4.0 device.

The other items seem to be true: the "Simulator" doesn't fake the hardware, it is a port of the whole of PalmOS to Windows NT: the Garnet microkernel is replaced with NT's kernel, and the OS source was recompiled for x86. So MacOS and Linux are dead as development platforms for modern Palm apps.

Tags: , , , , , ,

30 Responses:

    • jwz says:

      Huh. So is POSE just unable to do color, then, even though the ROMs support it?

      • jerronimo says:

        I don't know. that's the extent of my PalmOS knowledge. Sorry.

      • Did you load it up with the ROMS from a PalmIIIc? This is all really hazy, as I haven't even thought about Palm development since around the time the PalmIIIc came out, but as I recall, you needed to emulate a color Palm to get color.

      • xxv says:

        I run POSE on Debian with a PalmOS 3.5 color rom. I'm going to guess that POSE doesn't run any of the high-res devices' roms, which generally also had color.

      • unwiredben says:

        PalmSource only provides two ROM images right now, a release and debug version of OS 4.1.2. This is a greyscale build. There are color ROM images, but they are not available from PalmSource at this time. The issue is that old Graffiti lawsuit with Xerox -- when the dev site was redesigned, any ROMs that had the original possibly-infringing implementation were removed to avoid further possible-infringement. Unfortunately, PalmSource never build new 4.1.2 ROM images that had color enabled, mainly because no one internally was working on the old 68K version of the OS anymore.

        If you can use those dark corners of the Interwebs to find a color OS 4.1 or 4.0 ROM, for the Palm m505 or m515, you'll be in good shape.

  1. tiff_seattle says:

    You could always just do it in Java instead:

    http://java.sun.com/products/midp4palm/

    That way there is a good chance your app would also be compatible with Java enabled cell phones as well.

    • jwz says:

      Seriously, fuck Java. No PalmOS devices come with a Java runtime installed, and it's gigantic. Like, you spend half your storage on it. I installed that PalmOS Google Maps thing that was written in Java, and it was a fucking disaster. Also Java apps don't act like PalmOS apps at all (e.g., no menubar).

      • tiff_seattle says:

        The runtime may be large but the apps are teensy tiny. The MP3 player on my Motorola V360 only takes up about 100 kilobytes! Opera Mini took up about the same amount of space.

        • jwz says:

          Who cares how small the apps are when they require a not-installed-by-default runtime that's bigger than the national debt?

          • tiff_seattle says:

            Lol I guess that's right. But I wouldnt be surprised to see Palm start including Java support in furture versions of the Palm OS. And Linux support is supposedly around the corner.

            • otterley says:

              PalmOS may have a bleak future - even PalmOne appears to be abandoning it for Windows in its upcoming Treo 700w. I'm not sure the CEO's protestations to the contrary are very convincing, given that the Treo is by far PalmOne's most popular product.

              • jwz says:

                You may be right, but contrary to early rumors, there will be a PalmOS "Treo 700p" as well as the Windows 700w. So it isn't dead just yet.

                "Sewer rat may taste like pumpkin pie, but I'll never know."

                • ciphergoth says:

                  This is great news. Googling for "700p" doesn't reveal an official announcement from Palm to that effect, but various people who track these things seem to believe it which gives me hope.

                • autopope says:

                  My prognostication for the future -- assuming they don't fuck it up this time the way they have for the past several years -- is that Palm should be shipping their first linux-based PDAs or smartphones by the middle of the year, and there's some speculation that some of the existing ones may be FLASHable to the new OS.

                  At which point, all the old dev tools are toast, all the old apps are legacy apps, and you'll find you've been wasting your time.

                  Seriously, now (as opposed to a year ago, or a year in the future) is probably not the right time to start learning PalmOS development. Although if you insist, there's always Onboard C.

                  • jwz says:

                    I already know PalmOS; I ported Dali Clock to it in 1999. But, it's black and white, and it should be color!

                  • When I was writing color apps I just used the old tools, and only had a greyscale handspring, and begged around for someone with a color palm to test it for me. Worked fine.

                    Comedy answer: Emulate the PalmOS on an emulated Windoze

                  • taffer says:

                    Somebody ported DaliClock to the Atari ST ages ago. Monochrome, 'cause the colour displays were too low-res (640x200x2-bit or 320x200x4-bit).

                    Yeah, I have no point.

  2. srattus says:

    I've kind of been wondering when we would see a newton-like product from apple again.

    • Huh, I'd been forgetting I was expecting that.

      They're running a bit late to compete with "tablet PCs," which is where I'd expect the Newton handwriting recognition to come back.

      I guess they've been distracted by music or something.

  3. kaseijin says:

    There is a facility for ARM-native subroutines (formerly 'armlets', now 'PACE Native Objects'), but I can't imagine it would be worth the pain for DaliClock.

  4. kaseijin says:

    Palm did distribute color ROMs, but apparently they stopped during the Xerox lawsuit. 'Cobalt' is OS 6, which isn't on any shipping device; OS 5 is 'Garnet'.

  5. notpeter says:

    Ok. Let's get some things straight. POSE (the emulator) can emulate almost any 68k palm device. The Palm (official) release of the emulator only supported palm and symbol devices. If I remember correctly, palm never released a hi-res device under palm 4.0. Palm did release one PalmOS 3.5 color device (IIIc-256 onscreen colors out of a possible 12bit 4096 colors) also Handspring released the Prism (3.5 with 16bit color). It wasn't until PalmOS 4.0 that palm really got the API straight for color devices and they released a couple under that platform (m505, m515). Palm didn't have PalmOS devices running hi-res till 5.0, but some other companies did...Sony being the one that comes to mind. I'm also not sure whether the sony API for hi-res was the same as that for 5.0. I think they were different.

    Another commenter mentioned that the old roms are no longer available because of the Xerox/Grafitti settlement. This may be true...somewhere in my old palm dev stuff I have all the roms from this era including both debug and release roms for Pilot through m505. If you need it, reply to my comment and I'll see if I can find em for you. If you are developing a color application and you want it to work on old devices (IIIC and prism) the rom you are looking for is the IIIc debug/release roms. (random warning, the IIIc debug rom sets a default background color of like pink or something so that you realize it's the default, not just empty white...your apps may look pink) If you want to develop for old hi-res devices, you're going to have to go to sony for those roms (I never signed up as a sony developer so I don't have those roms, sorry) and there were a couple hires grayscale devices if I recall, so think about them too.

    You can just check them out for yourself on the the matrix. Palm also has their own hardware matrix with not too much info.

    • obreerbo says:

      There's at least one other release of POSE I know about...it supports the Fossil Abacus WristPDA. It's only available as a Windows binary, though, but I can run it under WINE on Linux.

      Incidentally, Jamie, you may be interested to know that Palm DaliClock runs pretty well on the WristPDA. There just isn't a way to get to the settings, because there's no "Menu" button. And it's not really suitable for use as a "watch app," because it's constantly running and chews up the battery life (the standard watch app only executes once a minute, with the processor sleeping between those times). Not that I'm complaining, mind! Just offering a data point...

  6. unwiredben says:

    There is a ARM emulator that PalmSource developed called Janerio. It runs on both Windows and Mac OS X and comes with a special ARM ROM image built for it -- Janerio emulates the Intel development boards that PalmSource has used for its internal development, and there are enough hardware differences between those boards and any shipping devices that you won't be able to use ROM images extracted from the device. This emulator is only available to developers in the PalmSource Inside Track developer program, and the current version is rather slow.

    Also, you can develop on the Mac and debug over the network to a Win machine running one of the OS 5.x simulators or to an OS 5.x device using the USB-to-TCP bridge software that Florent Pilet developed.

  7. unwiredben says:

    Oh, just to clarify... Palm has distributed release and debug ROM images for OS 3.5, 4.0, and 4.1 in the past. Those ROM images were removed from the net back in 2004 to avoid possible patent infringement because of the handwriting recognition. A developer that downloaded the ROM images before they were removed can keep using them.