Jump to content

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

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

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.

Link to post
Share on other sites

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

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
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?

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.

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
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...