[NTLK] Einstein news?

Steven Frank stevenf at panic.com
Wed May 25 12:25:30 EDT 2016

> On May 18, 2016, at 11:38 AM, Matthias Melcher <mm at matthiasm.com> wrote:
> Thanks for the nice words. No news from my side though: my job again keeps me really busy, which stalled my hardware and software experiments.
> My brain wants to attack the ROM code quite frequently, but I just can;t get the lever in to reverse all that ARM code to C++ again. The code is pretty much completely unoptimized and straight forward, it should not be so freaking difficult - until I hit the MMU restrictions again - aaaaaaaah! ;-)

I did a little spring cleaning of the Mac & iOS builds, since I still am not at a point at which I'm knowledgeable enough to meaningfully help with the deeper stuff.

Changes include:

- Removed unused Info.plists and libraries to prevent confusion for people new to the codebase
- Consolidate Info.plists for all targets under Resources/
- Rename "Xcode6" build folder to simply "Xcode", since Xcode is just going to keep getting new versions
- Applied Xcode 7's recommend build setting changes
- Remove TNativeCalls and ffi code from the Xcode projects since they are no longer being used by it
- Fixed a crash that would occur on launch of non-debug builds due to a null pointer to TSymbolList

Things I noticed:

- The NIBs version of the iOS build will crash on launch if the Newton ROM is not installed in the expected location on the device.
- The Storyboards version of the iOS build does not have this issue, so maybe this should become the "official" iOS build.  It seems stable.

Items for discussion:

- Should we remove the Nokia / Maemo-related folders from the project, since it is a dead platform?  
- Same question for OpenZaurus-related items?

I continue to read and study the code whenever I can.  I have a slightly better understanding now of the JIT and MMU than I did earlier.  It seems like most of the work that needs to be done is not in Einstein at this time, but in Matthias' static analysis / decompiler project "Albert".  I simply do not have the ARM chops at this time to contribute much to it yet, but I will read and study the code.

It's really cool that we can re-assemble a working ROM from Albert's disassembly.  I know the end goal is to have it produce compilable, relocatable C code.  I'd love to help with this, but what I'd need the most is a complete step-by-step tutorial of decompiling and single ROM function to native code and patching it back in at runtime in Einstein.  I just don't know what the process is, and I'm having trouble figuring it out from the existing documentation.


More information about the NewtonTalk mailing list