[NTLK] NSM - a NewtonScript virtual machine
mm at matthiasm.com
Tue Feb 4 07:19:32 EST 2014
On 04.02.2014, at 04:10, Tony Kan <tony.kan at clear.net.nz> wrote:
> Hi List Members
> Please bear with me, an interested non-tech professional who nevertheless
> holds the Newton in high regard, what are the differences between Matthias'
> emulator and Matej's virtual machine? How do these differences impact what
> we can and can't do with each of these projects? What is a bytecode
> compiler/assembler and isn't that what Newt/0 does? Probably nonsense
> questions to the informed but I'm just curious.
> Tony Kan
> New Zealand
Paul's emulator "Einstein" which I maintain is a software that takes the Newton ROM file and makes it "feel at home" by emulating the hardware around it. This is the 100% correct Newton experience. The drawback is the need for a ROM file and bad performance.
Matej's project uses the documentation around NewtonScript, the language that you need to use to program anything for the Newton, and provides a program that runs .pkg files. This is extremely fast on any platform, but it can only provide a subset of the Newton experience. Newt/0 i quite similar, but no longer active.
Simon's approach of a framework is a simulator. That means that he uses the publicly available API (the programmers interface), and writes his own implementation of the functions in ROM. His framework, like Matei's and Gnue's do not need any Apple code or ROM, but will also never be entirely complete (the ROM code is just too big). OTOH, he must understand the API to write the code, so he can fix issues with the original ROM in his code.
I have put some time into combining all three projects by merging a simulator (fast, copyright free) with the emulator (precise, slow), and even though it basically works, it is a pain to write thanks to some hardware specifics of the MessagePad (virtual memory management).
It's really hard to find a good middle way, and even if APple were to give us the entire source code of NewtonOS for free (LOL), it would still be years to get a fully working NewtonOS in native code working.
More information about the NewtonTalk