Jump to content
Sign in to follow this  
raoulduke

ARM - Newton

Recommended Posts

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.]

Edited by raoulduke

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by raoulduke

Share this post


Link to post
Share on other sites

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.

Edited by Gorgonops

Share this post


Link to post
Share on other sites

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

Edited by raoulduke

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by raoulduke

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by raoulduke

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Edited by morgant

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×