[NTLK] UNDO: Unified Newton Development Overview

Matthias Melcher m.melcher at robowerk.de
Tue Mar 24 09:05:04 EDT 2020


tl;dr

I added a ton of stuff yesterday and today, inching Android toward being a nice developer (and user) platform. Nothing to download just yet.


too long; don't read

OK, I would like to give the geeks among you a much more detailed overview of what's happening. But I will probably be just rambling on at some point, so don;t woory if you get bored and stop reading.

So, the underlying idea is, that Newton should run mainly on mobile devices where it belongs. Out of those, the most MessagePad'ish devices are probably low-end e-Ink devices which run Linux or Android, but are usually not very powerful, making emulation slow. To make Einstein bearable on those devices, it makes sense to optimize for every device individually. Screen refresh rate is one of the obvious things, but other settings may help too (screen resolution, use of built-in pen code and HWR).

I have written a little code snippet in ARM assembler that can be linked to any NTK project and allows NewtonScript apps to call Einstein code. One call will be a way to set screen refresh rates, for example. Whenever Einstein is called that way, Einstein can call back into the Newton ROM (any 2.c ROM) and allocate Frames and Arrays, create Strings, etc., and return them to the NewtonScript app. And yes, they are 100% compatible to the system and are even managed by the garbage collector, just as if they were allocated within the NS app.

Now, I am really lazy concerning repetitive task. Developing Newton apps *is* repetitive though (write some code, compile, take the package, copy it to the Android device, install it there, run it, get the results somehow, then go back to writing code). Apple developers did not liek that either and invented the Inspector which takes all those tasks and manages them through a serial cable. I replaced thet serial cable with a network connection to make thsi super convenient. In the current implementation, you have NTK running on some Mac (PC soon), and have Einstein running on your Phone, and if they share the same network, you can write, push, and debug apps automatically and over the air.

What's next?

Next, I will finish a littel Newton app that can chnage the screen setting on the fly, and that can select an IP address and a port for the debugging connection. This will run on matching Einstein implementations, currently on macOS and Android.

I will then port all this to Linux. MSWindows, and eventually to iOS. Since NTK currently runs only on BasiliskII, I will port my changes to Linux and MSWindows for that app as well. I would like to end up with a package that contains everything needed to write apps, and configures and launches everything with just a double-click (well, except finding the ROMs, moan).


Anyway, stay healthy!

 - Matthias



> On Mar 20, 2020, at 15:17, Matthias Melcher <m.melcher at robowerk.de> wrote:
> 
> I wrote a little something for us to waste some time in the next week. Feel free to add/edit/comment.




More information about the NewtonTalk mailing list