[NTLK] Calling out to all developers...

Matthias Melcher mm at matthiasm.com
Thu Jan 28 08:14:28 EST 2010


There we have it, the iPad. Nice shape, OK software, but not a Newton - of course.

Since we have a working Newton Emulator for OS X and the iPhone SDK is pretty much only a reorganized Cocoa interface, and since the iPad's now running at 1 GHz, it may actually be the time to *move Einstein to the iPad*.

It would still be a slow emulation, and that's where my call to all of you comes in: can we go from emulation to simulation to native code? Can we accelerate Einstein to run ten times faster, a hundred times? Can it be a made to run on *all* handheld devices out there? 

Sure, we just need to focus! It's all there.

TASK 1: the MMU need over 50% of the emulation time. Remove all dependencies on the MMU from the Newton ROM. 
  1.1: find the code in ROM that creates memory pages that are not mapped to RAM yet
  1.2: intercept all callers and make them allocate true RAM instead of MMU pages
  1.3: verify in Einstein that no more MMU hits are created at run time
  1.4: remove 90% of MMU emulation from Einstein, doubling emulation speed

TASK 2: emulating the CPU is the next bottle neck. generate pseudo C++ code and manually replace the most time consuming functions
  2.1: use the symbol table and the ROM to create a complete C++ source tree
  2.2: use analysis tools and hit counting to find the functions that are called most often
  2.3: compile those into Einstein and patch the ROM (we already do that)

TASK 3: auto-generate C++ code
  3.1: use the knowledge from task 2 to improve the interpreter from 2.1
  3.2: fill in the missing information that is not in the symbol table
  3.2.1: find return values where they are needed
  3.2.2: replace all access to fixed addresses in RAM with symbols
  3.3: remove the remaining MMU emulation
  3.4: compile natively and relocatable code and make NewtonOS into a user-space application

TASK 4: driver for al platforms
  4.1: with NewtonOS running natively at full speed, create a standardized driver interface
  4.2: write screen/touch//sound/etc. drivers for all target platforms
  4.3: enjoy!

As a result, NewtonOS will run on any platform with over 200 MB of RAM, a pointing device, and a graphics screen. In terms of 2010: on pretty much anything - including the iPad.

If enough capable people would get involved, I'd be happy to set up the development environment and dedicate a fixed amount of time per week. Much of the work has been done already, but has not been focused enough. This would be a great chance.

How about it?

 Matthias
  


More information about the NewtonTalk mailing list