[NTLK] Starting up NewtonScript programming
Matthias Melcher
m.melcher at robowerk.de
Tue Mar 31 17:05:36 EDT 2020
So what's new?
A new release of Einstein on macOS is on my site. It's 2020.2 and it fixes a lot of connection issues to NTK/Basilisk.
A new release of Basilisk on macOS is on my site and it runs now perfectly on Catalina as well. I fixed some communication issues here as well, and two annoying crash-bugs.
A brand new Newton package is on my site as well. "NewtonPrefs" makes it possible to change Einstein setting from from within NewtonOS. This is not so exciting yet, but will be very helpful when developing for Android devices and iPads. It can connect your Android-Newton directly to apps on any PC in the network.
So again, everything is available starting now at <http://www.elektriktrick.com/Newton_Install_MacOS.html>.
--- under the hood ---
Reading my text above again, this does not look like four days of continuous coding work. I probably could have done this functionality in a day or so, but there is tons of new stuff going on under the hood ;-) .
I added a quite complex and relatively complete interface between Einstein and NewtonScript. It's now really easy to create a frame or array in NewtonScript and send it to some function in Einstein. The other direction is just as simple. I implemented the essentials of the NCT, the Newton C Tools, inside Einstein, so we can read and understand data inside NewtonOS, and we can create complex objects, and send them right back. And for the Newton, all this looks just like something that happened in its own bubble, so even the garbage collection will work just fine.
So what can we do with this?
1: more fine tuning: I will use this to have more settings inside Newton without needing some external preferences dialog. This makes porting easy, because we don't need to learn how to code on the target platform. All we need to know is how to set pixels.
2: quick Flash memory change. I have seen others have two or three or four different Flash files so they can have different environments (I have a Flash with developer tools, and another one for doodles). We could have a liite app on the Newton where we select a different Flash file and tap for reboot. Flash change in under 15 seconds.
3: we can manage PCMCIA cards (PC cards). We can already emulate a network card, but how about a 16MB Flash memory? A fax modem? Or even the VGA card ;-)
4: we can take shortcuts. How about a Newton app that can brows Unna in its entire beauty and install packages right from there. Einstein would do the hard work, internet access, decoding HTML, directory listings, decompression, and present the ready-to-install package to the Newton for installation.
--- conclusion ---
The last days were a great trip back into the past. I used ARM Assembler code, C, and C++14, learned some awesome details about the implementation of NewtonScript (respect to the devs!), learned a lot of NewtonScript itself, learned some ObjectiveC (Thanks, Apple :-/ ), and worked many hours on an (emulated) Classic Mac Performa from 1993. Wow, what a trip.
It's great to see how many things back then were so elegant thanks to their simplicity, but it's also great to see how things improved. Try working for hours in an environment that does not support a right mouse button and context menus, and you know what I mean).
Which brings me to the last issue. NTK, the Newton Toolkit on Classic Mac is - um - tedious, to say it nice. Don;t get me wrong. It's a very capable program that does its job well and quickly, but the user interface is just horrible to use. Error messages are almost as brief as with the 1980 Sinclair ZX80 (well, at least the ZX80 would give you the line number of the code with the error), and even though there seems to have been an attempt at implementing a debugger, developing code without breakpoints, live data view, and single stepping is just nerve wrecking!
Looking back at my attempts at this with DyneE5, I feel quite embarrassed: NTK is so much more, but at the same time, so limited in the UI. Rewriting DyneE5 with my new knowledge would sure be interesting, but before I do that (if ever), I promised you guys fresh versions of Einstein for all platforms, and judging by current Corona news, I may just have that much time ;-)
- Matthias
More information about the NewtonTalk
mailing list