Index | Introduction | Hardware | Newton OS | Community | Software | Books | Development


PART VII: Development


A) Environments

1) What are Apple's Tools to develop software on the Newton, and where can I find them?

a) Apple NTK: The Newton Toolkit.

Allows you to develop programs in NewtonScript on MacOS or Windows and to install them (that's cross development). There is a cross debugger for Newton Script programs.

You can find it on Apple's FTP site: [Dead Link] ftp://ftp.apple.com/developer/Newton_Development/tools/ntk/

It was also on Planet Newton and it's now on the mirror on UNNA: http://guelph.unna.org/mirrors/download.planetnewton.com/download/programming/appledesktoptools.htm

It's also included into NewtonDev, an archive of essential development tools and documentation for MacOS (and Basilisk II) which is on UNNA: http://www.unna.org/unna/development/NewtonDev/.

NTK and MacOS X 10.1. NTK might not work on MacOS X under classic if it cannot find a serial port. To fix this problem or to use NTK over EtherTalk under MacOS X (this is the only way), you might need to create/define a serial port.

To do this, you can use PortShare Demo http://www.stalker.com/pub/PortShareDemo.sit.hqx

Or you can use TCPSerial (which is freeware) and can be found here: http://tucows.sympatico.ca/mac/preview/205826.shtml

b) Apple NCT: The Newton C++ Toolbox.

The Newton C++ Toolbox is divided into several parts available at various places on the internet:

The core archive was avaible at Planet Newton, it's now at the mirror on UNNA: http://guelph.unna.org/mirrors/download.planetnewton.com/download/programming/applec++tools.htm.

You can find additional SDK to design drivers (DDK) on UNNA site: http://www.unna.org/unna/apple/development/DDKs/.

There is the Lantern DDK. It is the DDK for Ethernet cards drivers. It includes Hammer and Newtsbug, the low level debuggers. It can be found on UNNA: http://www.unna.org/unna/apple/development/DDKs/FullLanternDDK.sit.

NCT requires MPW which only runs on MacOS:

ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./MPW-PR_Images/MPW-PR.img.bin (August 1999 distribution is 18.5 megs).

You can find all that without MPW and a Basilisk II image with MPW into NewtonDev which is on UNNA: http://www.unna.org/unna/development/NewtonDev/. NewtonDev includes additions and bug fixes of the NCT. It also includes NTK, other tools and the most important documentation.

2) What are the solutions to develop directly on my Newton?

a) NDE by Steve Weyer

There is Steve Weyer's Newton Dev Environment: http://www.kagi.com/weyer/#NewtDevEnv. It allows you to build packages directly on the Newton.

Here is a comparison between NTK and NDE I made. It only involves my [PG] responsibility.

b) software on Newton OS: nsScribe by Prism Research

Many software programs allow you to execute NewtonScript. One which is the easiest to use is nsScribe: it allows you to execute code from the Notepad, the Assistant or Works.

http://members.aol.com/NewtsPrism/nsScribe/nsScribe.sit.hqx

c) A powerful tool: View Frame by Jason Harper

View Frame is a very powerful tool for debugging directly on the Newton, inspect the Newton environment. However, it does not allow you to set breakpoints or to step.

http://pobox.com/~JasonHarper

3) Are there any other languages than NS?

a) NS Basic Softwares

http://www.nsbasic.com

NS Basic/Newton is a complete implementation of the BASIC programming language, with extensions to take advantage of the rich Newton OS. The product is commercial and fully supported, with many thousand users worldwide. (George Henne)
NewtCard is a hypercard-like environment for the Newton. It allows you to manage text and pictures as a collection of cards. It's easy to add text fields, check boxes, buttons and lots more to the cards. Buttons can be scripted using NS Basic/Newton. NewtCard is also commercial and fully supported. (George Henne)

Try the demo: ftp://ftp.nsbasic.com/pub/NewtCard_files/NewtDemo.sit

b) Lisp
c) Assembler
d) Is Java available on the Newton?

Sean Luke and Steve Weyer implemented Waba which is a subset of Java. Currently, the software is in alpha release. You can find the binaries and the sources on Sean's website: http://www.cs.umd.edu/users/seanl/newton/

e) C/C++ on other platforms

C++ and other compiled languages can basically be used in two ways: as native functions and for P-Classes which are used in drivers. The Newton C++ Toolbox is more than a compiler and a linker. It also includes tools to use this C++ code, either to convert a link output to a Native Module, a file used by NTK or to generate and pack a P-Class.

All the documentation required to make a tool to convert from link output to NTK is available, but no such tool exists. Therefore, with a C/C++ suite, you will have to use NCT anyway. The other solution is to use Roger Milne's tool. http://roger.trideja.com/newton/newtonasm.html.

The format of the P-Class encapsulated programs is unknown.

Finally, the low level debuggers (Newtsbug and Hammer) only run on MacOS. Apparently, they are based on RDI, but nobody succeeded to write a compatible low level debugger.

There are several C/C++ compilers for ARM, here are just the most common ones:

BTW, you can use NCT on Basilisk II which you'll find at http://www.uni-mainz.de/~bauec002/B2Main.html. It's a Mac 68K emulator for Win NT, BeOS, UNIX with X11 and AmigaOS.

4) Are there any other tool to develop Newton Packages?

Yes, there is Pinehill AppGen that can be found on UNNA: http://www.unna.org/unna/development/AppGeneratorV3/.

It lets you create simple data collection applications on your Newton and export the data to a PC (using PineHill Mover).


B) Documentation

1) Where can I find documentation?

a) Apple standard manuals

Apple published a book called findinfo.pdf http://www.unna.org/unna/apple/documentation/developer/FINDINFO.PDF

I reproduce here the content of this book with added links. I removed comments about the CD where this book was originally. DV=DocViewer for MacOS. You need both the file and the index.

There are several sources of information on the Newton Platform APIs and how to use them. Although the Newton Programmers Guide is the first source, it is not necessarily the most complete or up to date. There are a number of additional places you can search for information on the Newton Platform APIs.

Below is a list of where to look. The order of items is also a rough order of searching, i.e., check the NPG, then the OS 2.1 documentation, then the Q&A's, and so on.

b) Additional Apple docs

Apple published additional books. These can be found on Newton Gurus' sites.

c) Articles and additional documentation

There were a lot of articles written by Apple and third party developers. They were published in the Newton Technology Journal, in the PIE Developers and other journals.

You can also consult the documentation concerning the processor (ARMs). Please note that this is useless to the NewtonScript developer. It is only useful for assembly development and sometimes C++ development.

d) The Newton Bowels Project

The Newton Internals are not documented. But several developers made discoveries when digging the system to interface with it. There is a repository for these documents and thrill seekers tools, called The Newton Bowels Project. It can be found on Kallisys website: http://www.kallisys.com/newton/bowels/.

2) Wow, that's a huge list! Where do I start?

My advice is to start with the examples. Try the examples that comes with NDE or those on Apple's FTP site.

You can also try the interactive tutorial book NewtATut to create a simple app: http://www.kagi.com/weyer/#NewtATut


C) Sample Code

1) Sources for Apple's Sample Code modules

Most of them, in their latest version, can be found on UNNA at: http://www.unna.org/unna/apple/development/Examples/.

2) The list of Apple's Sample Code modules

There is a list on Rochester FTP. It has the advantage to include keywords and description.

However, it is not complete, with latest versions. Here is a more complete list:


Index | Introduction | Hardware | Newton OS | Community | Software | Books | Development


This FAQ is HTML 4.0 compliant & Newton friendly.



Impressum