Skip to main content
Home Forums ARM - Newton
ARM - Newton
· Networking · 25 posts · Mar 10, 2015 — Mar 16, 2015 View original thread ↗
1) This isn't about Einstein...

2) Does anyone have any thoughts on possible compatibility of any ARM-based smartphone and NewtonOS?

- That's it.  I don't really know enough to ask any other questions.  However, at some point if I ever find a really cheap Galaxy or Note, I have seriously thought about the possibility of attempting to root it with a Newton ROM purely out of curiosity.  I'm not willing to extend that same curious spirit to my Note 3.

[i apologize for the thread title; I should have made it more informative.]

Unfortunately, beyond the similarity of the ARM processor, which despite being descendent from the one used in the MessagePads is probably a slightly different instruction set, the MessagePads and eMates also used a significant amount of custom chips as well. The problem is that the whole architecture is different, so you wouldn't be able to run the NewtonOS directly in modern hardware.

That said, Einstein emulates all that custom hardware, including MMU (memory management unit), allowing it to run under other operating systems. I don't think it has been done yet--and I could be wrong about that--but I know one plan was to support passing ARM instructions through to the processor (I believe some of the funky MMU work had to be handled first) so as to reduce some layers of emulation to make it run faster. The Einstein developers are working in removing other layers, incl. much of the ROM, so it's getting better and better.

Ultimately, Einstein really is required to run NewtonOS on other platforms, regardless of OS. I'd love to see someone develop a minimal Linux/BSD based OS install with just enough to run Einstein on it, further reducing the overhead for running NewtonOS and making it feel more like a native installation.

Right.  This is why I don't want to risk any expensive or interesting tech.  So two things.  1) Have you ever seen WiFi working in Einstein?  I saw a reference to it being possible, but I've never gotten it to work.  [because Einstein at the moment is way less functional than my 2100]  2) Do you know what the most compatible 'modern' ARM chip would be?  That was going to be my next line of research when I have time.

The short answer on CPU compatibility proper is that the Newton devices used the ARMv3 family CPUs (you'll find some ignorant references claiming that the Newton was "ARM 6", but "ARM6" isn't the same as "ARMv6". "ARM6" was a family of ARMv3 CPU... confused yet?) whilst some ARMv6 CPUs, as used in some now quite old cell phones and tablets, can be configurable to run in an "ARMv5" compatibility mode which itself is mostly compatible with ARMv3... with the *very large* caveat being "configurable to run"; an OS kernel designed for an ARMv3 isn't just going to work out of the box. (Note that there are some things supported by ARMv3 that are *not* supported however, like "26 bit" code; I have no idea if the Newton uses that, but if it does you're flat out SOL, that was depreciated after ARMv4.) ARMv7 CPUs, which you'll find in most "modern" devices, dispense with some of the more arcane features of the older architecture and need software to either to be recompiled for them or to use some heavyweight "trap and emulate" techniques for handling older code. It's possible to write a "clean" binary that'll run on all of them but it entails some pretty strict restrictions and old compiled code that predates ARMv7 is is pretty much guaranteed to break the rules. So... the short answer is that something using an ARMv5 or ARMv6 is the best fit you're going to fine for directly running Newton code but it's not a very good fit. IF one had access to the Newton source code it could undoubtedly be made to work "reasonably trivially" on a newer CPU but without it, no. (Unless the original code used the "26 bit" mode, in which case there's likely to be some major architectural changes needed and the resulting OS would almost certainly be unable to run any third party software compiled against the original Newton libraries.)

But all that aside... are you under the impression that you can just wedge a Newton binary into a modern phone and have it just magically work, setting aside entirely the question of whether the CPU is capable of executing the compiled binary code? Every single hardware device is different, do you think that the Newton OS is going to be able to magically figure out the new framebuffer hardware, digitizer, networking devices, etc? If you think that's going to work, well... before you do that, why don't you try yanking the ROMs out of a Commodore 64 and stuffing them into an Apple IIgs and letting us know how well that works? They both use 6502-family CPUs so clearly it should fire right up, no problem.

What would happen if you physically adapted a Commodore ROM for an Apple II board? It seems the digitizer would be a second-order problem. But no, I didn't think it's work out of the box

I think a better question is what do *you* think would happen if one were to stick a Commodore 64 ROM into an Apple II. The answer is essentially the same as what you could reasonably expect from plopping a Newton ROM onto a cell phone, after all. Would every issue you encountered doing this be a "second order problem"? What level of technical skill do you believe would be required to work around these problems? What tools and documentation would you need to fix them, and would such fixes be trivial in nature or would they entail partial or complete rewrites of the hardware drivers and OS kernel?

Honestly I'm genuinely curious how much you know about the Newton OS (or operating systems in general) at a low level, given your apparent confidence.

Honestly, I'm curious to see what happens, even if it costs me an arm.  Not if it costs me an arm and a leg, though.

Then by all means just take whatever random Android phone you can bum off of eBay for $10 and try dragging-and-dropping a MessagePad ROM image to it. They're all going to work equally well for this particular experiment.

Perhaps not, but they may be more informative.

Non sequitur. Your facts are uncoordinated.

Where would I get a $10 phone? I haven't asserted any facts. (That second sentence is a non sequitur in relation to the first.)

So the SA-110, which is ARMv4, seems to have its most 'modern' successor in the SA-1110.  So I think I'm going to get an iPAQ.

That presupposes one can actually root it.

Windows CE isn't multiuser. You always have "root," because there is no concept of it.

As for just jumping a ROM: Yeah, no. There's hardware initiliazation, hardware differences, and the fact ARM CPU cross-generation compatibility isn't good, especially for ~20 year versions.

I guess what I really meant was flashing the ROM to something other than a factory default.  Maybe one can do that.  [http://forum.xda-developers.com/showthread.php?t=410156]

SA-1100 is a derivative of SA-110.  In theory they are compatible.  As for the other hardware differences... yep... there's a rub (because there are probably multiple rubs...).

You can flash other ROMs (in fact, that's not really needed - you can start Linux from an .exe in CE) - but the fact absolutely nothing will work (memory mappings, chips, etc) makes the task pointless.

Save your $10, it's not going to work. It's not even going to fail in an interesting way. It might be good for a laugh if it could at least partly boot up or something, but it won't - you'll get a black screen and a dead phone and that's it. Sorry.

I had already bought it by the time you posted.  Worst case scenario, I wind up with a bigmessowires... (a cha cha cha cha)

Honestly Gorgonops, I don't know that much about the stuff underlying NewtonOS. Obviously I 'solved' the CPU issue Kobeyashi Maru style. I think the screen resolution may be supported, but I might need to use my 120's ROM image if I've upgraded it. As to the digitizer and every other hardware issue... I really don't know. I'm willing to pay $20 to find out. I'm not being sarcastic. That's my actual thought process.

Sounds like you've got this all figured out then. With such a brilliantly deductive and fertile mind as yours it's a wonder you bother asking questions of us ignoramuses at all.

That said, Einstein emulates all that custom hardware, including MMU (memory management unit), allowing it to run under other operating systems. / I'd love to see someone develop a minimal Linux/BSD based OS install with just enough to run Einstein on it
Honestly, this is the only realistic approach.

Morgant, if I might ask, where is Einstein development happening these days?

I had already bought it by the time you posted.  Worst case scenario, I wind up with a bigmessowires...
Naw, stick OpenEmbedded on it and you'll at least have a useable pocket *nix machine.  Basilisk or Mini vMac should even run adequately on top of that.

Has there been any progress on Internet capability from the underlying system or system's drivers?

Einstein development has picked up on GitHub at https://github.com/pguyot/Einstein. Paul Guyot returned to make some fixes and migrate it from Google Code to GitHub, Steven Frank has made some updates for building on new versions of OS X (and iOS? I can't recall), and Matthias Melcher has been continuing to make excellent progress on replacing ROM code with native code for improved performance.

I know an ethernet card emulation had been added at some point and that it worked for HTTP access, but I can't recall which platforms other than OS X were supported or how reliable it was. Since it connects through the host device's network/Internet connection, that can work with WiFi.

Naturally, the big issue with Internet connectivity at this point is the lack of SSL support. Beside some of the research I had done in planning my own port of PolarSSL to NewtonOS (see NewtSSL on Google Code, which I sadly haven't had time to continue yet), Jake Bordens has experimented with compiling CyaSSL.

Thank you. I'll check it out. I mostly use it on android but I have it on OS X.

I'LL PM you. I have some broader NewtonOS questions.

For the record, I would have posted again sooner but I can't figure out how to convert a Newton ROM into a .stg file for the Backup feature on Active Sync/Mobile Center.  I'm honestly probably not going to be able to put much time into surmounting that for a while.

mp.ls