[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