Einstein (source)is an emulator for NewtonOS, the operating system of the Apple MessagePad that was released in 1993. Einstein was written for macOS by Paul Guyot.

I ported Einstein to MSWindows when Paul made the app OpenSource. I also wrote the initial ports to iOS (YouTube) and Android.

Emulating the Serial Port with Einstein

Einstein can now emulate the external serial port of the Newton on Mac OS X. It can directly connect NCX on the same machine.

It has been a lot of reverse engineering and a lot of fun. So, if you like to try this out, here is a binary release of the corresponding Mac OS X apps:


Feedback would be nice. Let me know what works and what doesn’t, which ROM/RAM/Flash configuration you are using and which machine is emulated.

The goal of this project is to intergrate Einstein into a developers environemt as much as possible. A developer could edit a NewtoScript file (*) press “Cmd-R”, and the code compiles, uploads, and runs on Einstein. Ideally, the Inspector would be reachable as well, including breakpoints and data views.

*) or a C or C++ file, or even an ARM assembler file…

Setting up Einstein for Networking

Nov 2 2012


As of this writing (nov 2nd, 2012) only Einstein for OS X supports Ethernet networking by emulating an NE2000 PCMCIA card. You will need the newest version of Einstein from code.google.com, the original US MP2100 ROM (717006), and some patience.

In return you will get a Netwon that has the correct time, connects to the Internet, and syncs with your Mac via NCX.

Set up Einstein

Download Einstein and put it in the Applications folder. Launch it. In the Preferences dialog, set the ROM path and the Flash path. Make sure the Network Driver is set to “User Mode”. Your Newton should now boot up.

Installing packages

You will need to install a bunch of packages. Make sure that you install them in the right order, or you will get error messages when you plug in your Ethernet Card. Allmost all of the packages can be found on UNNA.

  • install the latest ROM patch 711000, relaunch Einstein
  • install NIE2’s Internet Enabler (inetenbl.pkg)
  • install NIE2’s Internet Setup (inetstup.pkg)
  • install NIE2’s NewtonDevices (newtdev.pkg)
  • install NIE2’s Ethernet Support (enetsup.pkg)
  • install the network card driver from the Einstein archive (NE2K.pkg), relaunch Einstein

Install the Ethernet Card

Click on the “Network” button in the Einstein toolbar. The “PCMCIA Ethernet” dialog should pop up.

Start “Internet Setup” and create a generic setup. Choose “manual” and set the IP settings to the same as you host computer. “Domain Name” can be left empty. As a card, choose the “PCMCIA Ethernet” NE2000 card from the menu.

If all this goes well, you are 90% there

Test the internet Connection

I assume that your host computer can go online. Now let’s install a browser and see how far we can go:

  • install NTox 1.9 (NTox.pkg)
  • install ZLib 1.1 (ZLib.pkg)
  • install NHttpLib 3.5 (NHttpLib.pkg)
  • install Courier 1.1.1 (Courier.pkg)

Click on “Courier” , the click “->*” and enter a link to some simple HTML page, for example http://dillo.rti-zone.org/Html.testsuite/minimal.html

Courier will ask to open an internet connection, run through several dialogs, tell you that it is downloading the page. And after a minute or so, it will actually show the contents of that page. Wow. You are ready to browse the web (or whatever is left of it in HTML 1).

Docking and Synchronizing

Einstein can synchronize via NCX. Download the Dock TCP/IP installer package and add it to your Einstein setup. Install NCX 1.4 on your Mac (1.3 will NOT do!) and launch it. The start the “Dock” application on Einstein and select “Connect via TCP/IP”.

Click on “Prefs”, “Manual settings”, and enter the IP of the machine that runs NCX.

Close the preferences dialog. Back in the “Dock” window, tap on “Connect”. After a few seconds and two dialogs, the typical dock window with its six icons should pop up.

Awesome. You DID IT.

PS: I tried NCX Backup and NCX Export and they seemed to work. I have no clue if other things will work as well

PPS: if you relaunch Einstein at some point, remember that you need to put the PCMCIA Ethernet card back in (click the card icon).

Scroll to top