As I mentioned, none of the native API of PalmOS 5.x was ever documented. There was a small number of people who figured out some parts of it, but nobody really got it all, or even close to it. To start with, because large parts are not useful to an app developer, and thus attracted no interest. This is a problem, however, if one wants to make a new device. So I had to actually do a lot of reverse engineering for this project – a lot of boring reverse engineering of very boring APIs that I still had to implement. Oh, and I needed a kernel, and actual hardware to run on.
I’m in awe. This is nothing short of breathtaking.
TRULY Awesome! ๐
This very impressive (and agonizing). My hat is off to the developer’s resourcefulness (and persistence).
I have a slightly off-topic question: Is anyone aware of a up-to-date M68K PalmOS emulator?
I see references to POSE and xcopilot, but the packages I can find don’t seem to work on 64-bit Linux (and I’m too lazy to try to build from source).
There is a new one that someone wrote recently called “mu” which is VERY good https://github.com/meepingsnesroms/Mu
2 replies on this? It has been a long time that something so OSNewsy has been posted and in such great detail while still concise and it only gets 3 replies? People don’t come here to talk about Operating Systems anymore, they much prefer to discuss politics and economics
On topic: What a great find. I was wondering how this guy was spending his actual work time, but he hasn’t updated that part of his website. A pure geek and I kept hearing “when the going gets tough, the tough keep going” in my mind while reading.
I suspect a lot of people see this post and move on. It isn’t immediately obvious what it is about from the pull quote and Thom’s comment. It just sounds like a technical description of Palm OS.
It would be nice if it had briefly explained what Dimitry was doing, For that matter it would be nice if Dimitry had an opening paragraph that clearly explained what he was doing…
Sometimes I specifically decide not to make such an introduction, because quite often if I do that, lots of people simply don’t even read the source article. With articles like this, I’ll often basically separate the wheat from the chaff by letting the article stand on its own.
I’ve been short on time lately, so as for myself I’m much more likely to read the article if I get a better idea of what it’s about.
Also, any chance of getting comment reply notifications back? It’s much harder to follow a conversation now
That approach leaves us with a lot of posts about a subject we may not know anything about, and pointing to a source article from someone we may not know (or their bona fides).
I only clicked through in this case because I already knew about the rePalm project and was curious what was new.
I think there is a middle ground., where you could say that the rePalm project is an attempt to get PalmOS 5 running on modern hardware, give your pull quote; and let the reader decide. I am not going to click though everything blind.
Truly remarkable and a computer scientist dream. I love how he went function by assembler function translating to C. Amazing!
Would have loved not to, but there was no option ๐
Darn, just when I start thinking I’m a 133t hacker because I am bringing my Epson PX-8 and Epson QX-10 computers back to glorious CP/M life, I read an article like this and I AM A TOTAL NOOOOB!
As much as I consider myself as having zero programming skills (some batch and scripts, meh) I still read through the entire thing with interest and glee. I had a small handful of palm devices back in the day (I even embedded the palm cradle into a spare 2.5″ bay in my pc) and they really were magical devices. I also had the folding palm keyboard and I would actually type my university notes on it all day while classmates lugged laptops and scrambled for power outlets.
I too was surprised as the lack of comment traction and thus ashamed I did not comment sooner.
I think I have been following osnews from the shadows since near day 1. I look forward to some true OS diversity. Amazing things covered here over the years. BeOS, AthOS, SkyOS, Menuet, Hauku and the scramble of other BeOS clones, efforts, etc.
Thom, let me know if you ever want any hardware to review BlackBerry BB10 OS. I still use a Z30 as my daily driver and feel as sad for its demise as I did for BeOS.
That is insane. Isn’t it going too far?
Also, I had no idea that my humble Palm was running a 68k emulator before reading that. Wow.
“Too far” was a few thousand hours of work ago. Currently I am blowing past “entirely unnecessary”, well on my way to “why oh why?”
Ooooh, Palm.
First thought I had when reading this article – it can’t be that Dmitry guy… ? Yes, indeed it is.
I remember his programs from that time were always top-notch and they went beyond possible. They were usually like good, better, best, Dmitry!
Keep up the good work! I recently fired up my (still working!) Palm TX and … just great. Fond memories of that platform.
This guy is a glutton for punishment. i read his bio, and then with complete unadulterated bias, thought of the term “Russian Engineering”. This is where you go straight to build, fire something into space, maybe with a few people or dogs on board, and then if it blows up try again later. You build first then think. There is no overview of objectives here, but it has to make you wonder if he didn’t think this through enough before starting to code. Like 4K lines of code to emulate two ARM instructions in Thumb2. It makes me wonder if it would not be easier to do some kind of reverse compile rather then a direct machine code to machine code translation. Then again Dmitry can probably code 4K lines faster then I can think of anything.
…. or emulate RISC with CISC and make the whole Palm OS (ARM and Thumb2) emulated on a relatively fast low power CISC micro controller.. A RISC instruction set is far more likely to be a subset of a CISC whereas two RISC architectures are very likely to have far apart instructions, i.e. high code count to cross emulate. I remember the creator of the Kestrel having to abandon using Machine Forth on the RISC-V version of his computer because of the code length to implement stack functions. Same issue Dmitry is having. Machine Forth is like a RISC equivalent of a high level language. On CISC (x86) Samuel (Kestrel creator) could write a Machine Forth interpreter very efficiently.
There is no way to beat a JIT for speed. And I want to produce fully working devices. Emulating is at least a 10x speed penalty, and i do not know of anyone selling a Cortex-M chip at 4GHz ๐
Nice to see my project here.
Work is ongoing, but progress is good. IF you have an STM32F429 dev board ($20) you can flash it with images i release occasionally and play with it!)