-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathnewton-faq-development.html
411 lines (309 loc) · 27.8 KB
/
newton-faq-development.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
<!DOCTYPE html>
<html lang="en">
<head>
<title>Newton FAQ: Development</title>
<meta charset="utf-8">
<meta name="robots" content="index, follow">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Frequently asked questions and answers lovingly compiled and sporadically edited specifically for the Apple Newton community.">
<meta name="author" content="The Newton FAQ Group">
<link rel="shortcut icon" href="favicon.ico">
<link rel="me" href="https://mastodon.social/@splorp">
<link rel="stylesheet" type="text/css" media="screen" href="styles.css?2024012300">
</head>
<body>
<header>
<h1><a href="index.html">Newton FAQ</a></h1>
<p>Answers to common questions regarding Apple’s Newton computing platform.</p>
<hr>
<nav>
<ul>
<li><a href="index.html">Index</a></li>
<li><a href="newton-faq-introduction.html">Introduction</a></li>
<li><a href="newton-faq-hardware.html">Hardware</a></li>
<li><a href="newton-faq-nos.html">Newton OS</a></li>
<li><a href="newton-faq-community.html">Community</a></li>
<li><a href="newton-faq-software.html">Software</a></li>
<li><a href="newton-faq-books.html">Newton Books</a></li>
<li><strong>Development</strong></li>
<li><a href="newton-faq-history.html">Change History</a></li>
</ul>
</nav>
<hr>
</header>
<section>
<h2>Part VII: Development</h2>
<article>
<ol type="A">
<li><a href="#VIIA">Environments</a>
<ol>
<li><a href="#VIIA1">What are Apple’s tools to develop software for the Newton?</a>
<ol type="a">
<li><a href="#VIIA1a">Newton Toolkit</a></li>
<li><a href="#VIIA1b">Newton C++ Toolbox</a></li>
</ol>
</li>
<li><a href="#VIIA2">What tools let me develop directly on the Newton?</a>
<ol type="a">
<li><a href="#VIIA2a">Newton Dev Environment</a></li>
<li><a href="#VIIA2b">nsScribe</a></li>
<li><a href="#VIIA2c">ViewFrame</a></li>
</ol>
</li>
<li><a href="#VIIA3">Are there other programming languages for the Newton?</a>
<ol type="a">
<li><a href="#VIIA3a">NS Basic</a></li>
<li><a href="#VIIA3b">NewtCard</a></li>
<li><a href="#VIIA3c">Lisp</a></li>
<li><a href="#VIIA3d">Assembler</a></li>
<li><a href="#VIIA3e">Java</a></li>
<li><a href="#VIIA3f">C/C++ on other platforms</a></li>
</ol>
</li>
<li><a href="#VIIA4">Are there any other tools to develop Newton packages?</a></li>
</ol>
</li>
<li><a href="#VIIB">Documentation</a>
<ol>
<li><a href="#VIIB1">Where can I find documentation?</a>
<ol type="a">
<li><a href="#VIIB1a">Apple Programming Reference</a></li>
<li><a href="#VIIB1b">Other Apple Documents</a></li>
<li><a href="#VIIB1c">Other Articles & Documentation</a></li>
<li><a href="#VIIB1d">The Newton Bowels Project</a></li>
<li><a href="#VIIB1e">NewtonScript.org</a></li>
</ol>
</li>
<li><a href="#VIIB2">Where’s a good place to start?</a></li>
</ol>
</li>
<li><a href="#VIIC">Sample Code</a>
<ol>
<li><a href="#VIIC1">Where can I find sample code?</a></li>
<li><a href="#VIIC2">Where can I find a list of Apple’s sample code?</a></li>
</ol>
</li>
<li><a href="#VIID">Source Code</a>
<ol>
<li><a href="#VIID1">Where can I find source code?</a></li>
</ol>
</ol>
<hr>
<h3 id="VIIA">A. Environments</h3>
<h4 id="VIIA1">1. What are Apple’s tools to develop software for the Newton?</h4>
<h5 id="VIIA1a">a. Newton Toolkit</h5>
<p>Newton Toolkit (NTK) allows you to develop programs in NewtonScript on Mac OS or Windows, installing them as packages onto a Newton device. There is also a cross-platform debugger for NewtonScript programs.</p>
<p>Installers and documentation for Newton Toolkit are available from Planet Newton’s <a href="http://mirrors.unna.org/download.planetnewton.com/download/programming/appledesktoptools.htm">Newton Programming Tools</a>.</p>
<p>Newton Toolkit is also included as part of <a href="http://www.unna.org/view.php?/development/NewtonDev">NewtonDev</a>, an archive of essential development tools and documentation for classic Mac OS. NewtonDev also includes a bootable image for use with the <a href="https://basilisk.cebix.net/">Basilisk II</a> emulator.</p>
<p>Be aware, that Newton Toolkit might not work in Classic under Mac OS X if it cannot find a serial port. To fix this problem, you might need to create or define a serial port using software.</p>
<p>To create a virtual serial port, you can try Stalker Software’s <a href="https://archive.org/details/tucows_206656_PortShare_Pro">PortShare</a>.</p>
<ol>
<li>Install “PortShare Demo”.</li>
<li>Boot into Classic.</li>
<li>Open the “PortShare Demo” control panel and create a new port.</li>
<li>Start Newton Toolkit and select the port you created.</li>
</ol>
<p>You can also use <a href="https://archive.org/details/tucows_205826_TCPSerial">TCPSerial</a> to simulate a serial port using a TCP/IP connection.</p>
<h5 id="VIIA1b">b. Newton C++ Toolbox</h5>
<p>The Newton C++ Toolbox (NCT) is divided into several parts available at various places on the internet:</p>
<p>Installers and documentation are available from Planet Newton’s <a href="http://mirrors.unna.org/download.planetnewton.com/download/programming/applec++tools.htm">Newton C++ Tools</a>.</p>
<p>Additional <a href="http://www.unna.org/view.php?/apple/development/DDKs">Driver Development Kits</a> (DDKs) are available from UNNA.</p>
<p>There is also the <a href="http://www.unna.org/unna/apple/development/DDKs/FullLanternDDK.sit">Lantern DDK</a> for developing ethernet card drivers. It includes the Hammer and Newtsbug low level debuggers.</p>
<p>Newton C++ Toolbox requires the Macintosh Programmer’s Workshop (MPW), which is available from <a href="https://macintoshgarden.org/apps/macintosh-programmers-workshop">Macintosh Garden</a> and as part of <a href="http://www.unna.org/view.php?/development/NewtonDev">NewtonDev</a>.</p>
<p>NewtonDev includes documentation, additional support files, and bug fixes for Newton C++ Toolbox.</p>
<h4 id="VIIA2">2. What tools let me develop directly on the Newton?</h4>
<h5 id="VIIA2a">a. Newton Dev Environment</h5>
<p>Steve Weyer’s <a href="https://communicrossings.com/html/newton/newtdev.htm">Newton Dev Environment</a> (NDE) allows you to build packages directly on the Newton.</p>
<p>Here’s a comparison of <a href="#VIIA1a">Newton Toolkit</a> and Newton Dev Environment provided by Paul Guyot.</p>
<ul>
<li>Newton Dev Environment
<ul>
<li>Pros:
<ul>
<li>Develop directly on your Newt</li>
<li>Save applications as packages</li>
<li>Play with the turtle</li>
<li>Easier to incorporate Help Books (typically created with Newt’s Cape)</li>
<li>Still supported</li>
</ul>
</li>
<li>Cons:
<ul>
<li>No graphical user interface to develop your application’s GUI (However, Serg Koren’s <a href="https://web.archive.org/web/20020626111122/http://www.visualnewt.com/Newton/VN/VNHelp.html">VisualNewt</a> provides a graphical layout editor for this.)</li>
<li>Direct text input for frames</li>
<li>No way to compile C++ code on your Newton (But you can import libraries)</li>
<li>No way to compile “native” NewtonScript (But you can import it)</li>
<li>No integrated debugger (But you can use <a href="#VIIA2c">ViewFrame</a>)</li>
</ul>
</li>
</ul>
</li>
<li>Newton Toolkit
<ul>
<li>Pros:
<ul>
<li>Graphical user interface</li>
<li>Allows use of C++ code</li>
<li>Allows native functions</li>
<li>Integrated debugger with breakpoints and steps (for NewtonScript code)</li>
<li>Cross platform development (Mac OS and Windows)</li>
</ul>
</li>
<li>Cons:
<ul>
<li>Projects can be exported from Mac OS to Windows, not the other way around</li>
<li>No longer supported by Apple</li>
</ul>
</li>
</ul>
</li>
</ul>
<h5 id="VIIA2b">b. nsScribe</h5>
<p>Prism Research’s <a href="http://newted.org/newtsprism/nsScribe/nsScribe.html">nsScribe</a> allows you to execute NewtonScript code from the Notepad, the Assistant or Newton Works.</p>
<h5 id="VIIA2c">c. ViewFrame</h5>
<p>Jason Harper’s <a href="http://pobox.com/~JasonHarper">ViewFrame</a> 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.</p>
<h4 id="VIIA3">3. Are there other programming languages for the Newton?</h4>
<h5 id="VIIA3a">a. NS Basic</h5>
<p><a href="https://www.nsbasic.com/newton/info/nsbasic/">NS Basic</a> is a complete implementation of the BASIC programming language, with extensions to take advantage of Newton OS.</p>
<p>Once a commercial application, <a href="https://github.com/gwhenne">George Henne</a> has released <a href="https://github.com/nsbasic-archive/NS-Basic-for-Newton-OS">NS Basic and its source code</a> on GitHub.</p>
<h5 id="VIIA3b">b. NewtCard</h5>
<p><a href="https://www.nsbasic.com/newton/info/newtcard/">NewtCard</a> is a HyperCard-like environment for the Newton. It allows you to manage text and pictures as a collection of cards. Easily add text fields, check boxes, buttons, and other elements to the cards. Buttons can be scripted using <a href="#VIIA3a">NS Basic</a>.</p>
<p>Once a commercial application, <a href="https://github.com/gwhenne">George Henne</a> has released <a href="https://github.com/nsbasic-archive/NewtCard-for-Newton-OS">NewtCard and its source code</a> on GitHub.</p>
<p>Archived <a href="https://web.archive.org/web/20090608184151/http://www.nsbasic.com/pub/NewtCard_files/">NewtCard Demo</a> files are also available.</p>
<h5 id="VIIA3c">c. Lisp</h5>
<p>Jonathan K. Millen (with the help of Phil Torrone) wrote a minimal <a href="http://www.unna.org/view.php?/development/languages/Lisp/LISP0.5">Lisp</a> interpreter that implemented a subset of Lisp language.</p>
<p><a href="https://web.archive.org/web/20220807212528/http://www.users.on.net/~dbenn/LittleLisp/LittleLispDocs/">LittleLisp</a> is a Lisp interpreter for the Newton developed by <a href="https://web.archive.org/web/20220807212526/http://www.users.on.net/~dbenn/">David Benn</a>.</p>
<p>A collection of LittleLisp <a href="https://web.archive.org/web/20090117025636/http://www.users.on.net/~dbenn/LittleLisp/code/">example code</a> is also available.</p>
<p>As well, the source code for <a href="http://www.unna.org/view.php?/development/languages/Lisp/LittleLisp1.01">LittleLisp</a> is available on UNNA.</p>
<h5 id="VIIA3d">d. Assembler</h5>
<p>Roger Milne succeeded in writing programs such as <a href="https://web.archive.org/web/20100403072239/http://roger.trideja.com/newton/modplayer.html">ModPlayer</a> in assembly language on his PC with a GNU assembler. His process is documented in the article <a href="https://web.archive.org/web/20090227035203/http://roger.trideja.com/newton/newtonasm.html">Writing Assembly for your Newton</a>.</p>
<p>There is also the <a href="http://newted.org/newtsprism/chARM/chARM.html">Compiler-Formerly-Known-As-ChARM</a> (CFKAC) by Prism Research. It allows to compile and disassemble code directly on the Newton using <a href="http://newted.org/newtsprism/nsScribe/nsScribe.html">nsScribe</a>.</p>
<h5 id="VIIA3e">e. Java</h5>
<p><a href="https://cs.gmu.edu/~sean/">Sean Luke</a>, <a href="https://communicrossings.com/">Steve Weyer</a>, and several other contributors implemented a subset of Java called <a href="https://wabasoft.com/">Waba</a> on the Newton platform. The software is currently in beta release, with binaries and source code available on Sean’s <a href="https://cs.gmu.edu/~sean/projects/newton/waba/">Waba for the Newton</a> page.</p>
<h5 id="VIIA3f">f. C/C++ on other platforms</h5>
<p>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 <a href="#VIIA1a">Newton Toolkit</a> or to generate and pack a P-Class.</p>
<p>All the documentation required to make a tool to convert from link output to <a href="#VIIA1a">Newton Toolkit</a> is available, but no such tool exists. Therefore, with a C/C++ suite, you will have to use <a href="#VIIA1b">Newton C++ Toolkit</a> anyway. The other solution is to use Roger Milne’s <a href="https://web.archive.org/web/20090227035203/http://roger.trideja.com/newton/newtonasm.html">MakePKG</a> tool.</p>
<p>The format of the P-Class encapsulated programs is unknown.</p>
<p>Also, the low level debuggers (Newtsbug and Hammer) only run on Mac OS. Both are apparently based on RDI (Remote Debug Interface), a standard defined by ARM.</p>
<p>Documentation for the <a href="https://developer.arm.com/documentation/dui0047/">C++ for the ARM Software Development Toolkit</a> (1997) is still available online.</p>
<p>You can also use <a href="#VIIA1b">Newton C++ Toolkit</a> with <a href="https://basilisk.cebix.net/">Basilisk II</a>, a 68k Mac OS emulator that runs on several platforms, including Mac OS X, Windows, BeOS, various flavours of UNIX with X11, and AmigaOS.</p>
<h4 id="VIIA4">4. Are there any other tools to develop Newton packages?</h4>
<p><a href="http://www.unna.org/view.php?/development/AppGeneratorV3">AppGen</a> from <a href="https://web.archive.org/web/19980702062058/http://www.pinehill.com/">Pinehill Softworks</a> lets you create simple data collection applications on your Newton and export the data to a PC using the <a href="https://web.archive.org/web/19970704030125/http://www.pinehill.com/Pinehill.Newton.Mover.html">PTK Mover</a> utility.</p>
<hr>
<h3 id="VIIB">B. Documentation</h3>
<h4 id="VIIB1">1. Where can I find documentation?</h4>
<h5 id="VIIB1a">a. Apple Programming Reference</h5>
<p>Apple provided several sources of information relating to the Newton platform and the associated APIs (Application Programming Interfaces) in a document called <a href="http://www.unna.org/unna/apple/documentation/developer/FINDINFO.PDF">Find Info</a>. Although the Newton Programmer’s Guide is listed as one of the primary sources of information, it is not necessarily the most complete or up to date.</p>
<p>Here is a simplified list of the documentation mentioned in the <a href="http://www.unna.org/unna/apple/documentation/developer/FINDINFO.PDF">Find Info</a> document.</p>
<ul>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/ProgrammersGuideOS2.0.pdf">Newton Programmer’s Guide 2.0</a><br>
<a href="http://www.unna.org/unna/apple/documentation/developer/ProgrammersReferenceOS2.0.pdf">Newton Programmer’s Reference 2.0</a><br>
These two documents are the primary source of NewtonScript programming information.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/ProgrammersGuideOS2.1Addenum.pdf">Newton Programmer’s Guide: 2.1 OS Addendum</a><br>
A supplement to the Newton Programmer’s Guide and Newton Programmer’s Reference. Describes changes and additions to Newton OS 2.1, including information regarding new APIs. Like the Newton Programmer’s Guide, this is a primary source of information.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/NewtonScriptProgLanguage.pdf">NewtonScript Programming Language</a><br>
The primary reference for the NewtonScript language and related support functions.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/QAs-2.x/html/index.html">Newton 2.x OS Q&As</a><br>
Information that addresses Newton 2.x OS development issues not found in the printed documentation. One of the best sources outside of the Newton Programmer’s Guide.</li>
<li><a href="https://www.newted.org/download/manuals/NTKPlatformFileFunctions.pdf">NTK Platform File Functions</a><br>
Documentation of the APIs included as part of the <a href="#VIIA1a">Newton Toolkit</a> Platform File.</li>
<li><a href="http://www.unna.org/view.php?/apple/development/Examples/SampleCodeMac">Sample Code (Mac OS)</a><br>
<a href="http://www.unna.org/view.php?/apple/development/Examples/SampleCodeWin">Sample Code (Windows)</a><br>
In addition to demonstrating how to use particular Newton OS features, some sample code examples include additional (possibly interim) documentation.</li>
<li><a href="https://www.newted.org/download/manuals/NewtonToolkitUsersGuide.pdf">Newton Toolkit User’s Guide</a><br>
In addition to documenting <a href="#VIIA1a">Newton Toolkit</a>, this guide also contains valuable information on debugging your application and performance tuning.</li>
</ul>
<h5 id="VIIB1b">b. Other Apple Documents</h5>
<ul>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/UserInterfaceGuidelinesOS2.0.pdf">Newton 2.0 User Interface Guidelines</a><br>
Describes how to create Newton software, optimizing the interaction between people and devices specifically through the Newton 2.0 interface. It also contains examples of how not to design human interfaces.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/UserInterfaceKeyboardOS2.1.pdf">User Interface Guidelines for Newton OS 2.1 Keyboard Enhancements</a><br>
This supplement to the Newton 2.0 User Interface Guidelines provides guidelines for the enhanced
keyboard features found in Newton OS 2.1.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/EngineeringDocsOS2.1.pdf">Newton OS 2.1 Engineering Documents</a><br>
Describes the various changes and additions to Newton OS 2.1.</li>
<li><a href="https://www.newted.org/download/manuals/NewtonFontSpecifications.pdf">Newton Font Specifications</a><br>
Describes the structure of Newton TrueType fonts.</li>
<li><a href="http://www.unna.org/unna/apple/documentation/developer/NewtonFormats1.1.pdf">Newton Formats</a><br>
Describes the format of packages and stream objects.</li>
<li><a href="https://web.archive.org/web/20040809072819/http://www.geocities.com/SiliconValley/Code/5100/newton/ntkfrmat.pdf">Newton Toolkit 1.6.x File Formats</a><br>
Describes the format of Newton Toolkit files on both Mac OS and Windows platforms.</li>
<li><a href="https://www.newted.org/download/manuals/NewtonToolkitEnhancements164.pdf">Newton Toolkit Enhancements</a><br>
Describes changes in version 1.6.4 of <a href="#VIIA1a">Newton Toolkit</a>.</li>
<li><a href="http://www.unna.org/unna/development/documentation/interconnect/newton_i.pdf">Newton Interconnect Port Hardware Specification for the MessagePad</a><br>
Describes technical aspects of the Newton Interconnect Port.</li>
</ul>
<h5 id="VIIB1c">c. Other Articles & Documentation</h5>
<p>There were many articles and papers written by Apple staff and third-party developers.</p>
<ul>
<li>The <a href="http://www.unna.org/view.php?/apple/documentation/developer/NewtonTechnologyJournal">Newton Technology Journal</a> contains both general and developer information. Issues from February 1995 (Volume I, Issue 1) to March 1997 (Volume III, Issue 2) were published.</li>
<li>Issues of the Newton Technology Journal are also available from the <a href="https://wiki.preterhuman.net/Newton_Technology_Journal">Higher Intellect Vintage Computing Wiki</a>, including a couple of Japanese editions.</li>
<li>Various <a href="http://www.unna.org/view.php?/apple/documentation/developer/Articles/">articles and papers</a> by members of the Newton developer support team.</li>
<li>An archive of articles and source code from Apple’s <a href="https://web.archive.org/web/20041107094808/https://developer.apple.com/dev/techsupport/develop/">Develop</a> periodical can be found over at <a href="http://preserve.mactech.com/articles/develop/index.html">MacTech</a>.</li>
<li><a href="https://web.archive.org/web/19970710163402/http://www.cdpubs.com/hhsj.html">The Handheld Systems Journal</a> published <a href="https://web.archive.org/web/19970710163742/http://www.cdpubs.com/excerpts.html">excerpts from the magazine</a>, including Newton-related articles. Thanks to Victor Rehorst, a copy of the <a href="https://archive.org/details/handheld-systems-archive">Handheld Systems CD-ROM Archives</a> is available via the Internet Archive.</li>
<li><a href="http://mirrors.unna.org/www.geocities.com/SiliconValley/Code/5100/newton_docs.html">Ask The Llama</a> articles are in the form of developer Q & A.</li>
<li><a href="https://web.archive.org/web/20160305064751/http://waltersmith.us/newton/">Walter Smith</a> — the father of NewtonScript — posted articles and papers on Newton OS and the NewtonScript language.</li>
</ul>
<p>There is also a pile of documentation relating to the ARM processor. This is not very useful to the NewtonScript developer, but could be valuable when working with assembly language or C++.</p>
<ul>
<li><a href="https://archive.org/details/SCE-ARMref-Jul1996/">ARM Architecture Reference Manual</a> (1996) by David Jaggar et al.</li>
<li><a href="https://archive.org/details/armsystemarchite0000furb">ARM System Architecture</a> (1996) by Steve Furber</li>
<li><a href="https://www.goodreads.com/book/show/1784243.The_Arm_Risc_Chip/">The ARM RISC Chip: A Programmer’s Guide</a> (1994) by Alex Van Someren & Carol Atack</li>
<li><a href="https://developer.arm.com/documentation/dui0041/">ARM Software Development Toolkit Reference Guide</a> (1998)</li>
<li><a href="https://developer.arm.com/documentation/dui0040/">ARM Software Development Toolkit User Guide</a> (1998)</li>
<li><a href="https://developer.arm.com/documentation/dui0047/">C++ For the ARM Software Development Toolkit User and Reference Guide</a> (1997)</li>
<li><a href="https://developer.arm.com/documentation/dei0002/">ARM SDT 2.50 User and Reference Guides Errata 01</a> (2000)</li>
<li>Intel’s <a href="http://developer.intel.com/design/strong/applnots/">application notes</a> and <a href="http://developer.intel.com/design/strong/">technical documents</a> for the StrongARM processor.</li>
</ul>
<h5 id="VIIB1d">d. The Newton Bowels Project</h5>
<p>The inner workings of Newton OS are not well documented. However, several developers were able to discover certain useful details while digging around the system in their attempts to interface with it. <a href="http://www.kallisys.com/files/newton/Bowels/">The Newton Bowels Project</a> is a repository of documents, sample code, and other “thrill-seeking” tools.</p>
<h5 id="VIIB1e">e. NewtonScript.org</h5>
<p>A one-stop shop for all things related to the NewtonScript programming language. <a href="http://newtonscript.org/">NewtonScript.org</a> is a collaborative project hosted on <a href="https://github.com/NewtonScript/newtonscript.github.com/">GitHub</a>, collecting all manner of NewtonScript development tools, documentation, libraries, sample code, and other resources.</p>
<h4 id="VIIB2">2. Where’s a good place to start?</h4>
<p>Our advice is to start with the code examples that come with Steve Weyer’s <a href="#VIIA2a">Newton Dev Environment</a> or Apple’s <a href="http://www.unna.org/view.php?/apple/development/Examples">Development Examples</a>.</p>
<p>You can also try Steve Weyer’s interactive <a href="https://communicrossings.com/html/newton/newtpkgs.htm#NewtATut">NewtATut</a> (Newt Application Tutorial) that shows how to develop a simple application in NewtonScript directly on your Newton device.</p>
<hr>
<h3 id="VIIC">C. Sample Code</h3>
<h4 id="VIIC1">1. Where can I find sample code?</h4>
<p>Most of the sample code and developer examples distributed by Apple are available from <a href="http://www.unna.org/">UNNA</a> as part of the <a href="http://www.unna.org/view.php?/apple/development/Examples">Development Examples</a> and <a href="http://www.unna.org/view.php?/development/NewtonDev">NewtonDev</a> collections.</p>
<p>You can also find sample and source code as part of <a href="http://newtonscript.org/">NewtonScript.org</a> and <a href="http://www.kallisys.com/files/newton/Bowels/">The Newton Bowels Project</a>.</p>
<p>See also: <a href="#VIID1">Where can I find source code?</a></p>
<h4 id="VIIC2">2. Where can I find a list of Apple’s sample code?</h4>
<p>A complete list of <a href="https://web.archive.org/web/19980529083053/http://www.newton-inc.com/dev/samples.htm">Newton 2.x OS Sample Code</a> with descriptions was published on the Newton Inc. website. (1997)</p>
<p>Unfortunately, this copy of the information located in the Internet Archive does not have valid links to the source code itself.</p>
<p>See: <a href="#VIIC1">Where can I find sample code?</a></p>
<hr>
<h3 id="VIID">D. Source Code</h3>
<h4 id="VIID1">1. Where can I find source code?</h4>
<p>Eckhart Köppen includes the source code for <a href="https://40hz.org/downloads/">every version of every package</a> he’s created.</p>
<p>Adam Tow includes source code for most of his <a href="https://tow.com/projects/newton/">Newton software</a>.</p>
<p>Steve Weyer published source code for much of his popular Newton software, including <a href="https://github.com/saweyer/newtscape">Newt’s Cape</a>, <a href="https://github.com/saweyer/newtvnc">NewtVNC</a>, <a href="https://github.com/saweyer/sloup">Sloup</a>, <a href="https://github.com/saweyer/waba">Waba</a>, <a href="https://github.com/saweyer/crypto">Crypto</a>, and <a href="https://github.com/saweyer/newtdevenv">NewtDevEnv</a>.</p>
<p>George Henne published the source code for his <a href="https://github.com/nsbasic-archive/NS-Basic-for-Newton-OS">NS Basic</a> and <a href="https://github.com/nsbasic-archive/NewtCard-for-Newton-OS">NewtCard</a> development tools.</p>
<p>Mason Mark published the source code for his incredibly powerful <a href="https://github.com/masonmark/Dash-Board-for-Newton-OS">Dash Board</a> enhancement.</p>
<p>Simon Bell supplies source code for his <a href="https://newtonresearch.org/mailv/developer.html">Mail V</a> and <a href="https://newtonresearch.org/simplemail/developer.html">SimpleMail</a> email clients, as well as his <a href="https://newtonresearch.org/sudoku/">Sudoku</a> game.</p>
<p>Source code for David Benn’s <a href="http://www.unna.org/view.php?/development/languages/Lisp/LittleLisp1.01">LittleLisp</a> is available on UNNA.</p>
<p>André Chichak includes source code with his <a href="http://www.chichak.ca/file/Projects_files/FastTimes.zip">Fast Times</a> clock setting utility.</p>
<p>Leslie Rose Titze has published the source code for Netstrategy’s <a href="https://github.com/lrtitze/EnRoute-for-Newton-OS">EnRoute email suite</a> on GitHub. Also available from the <a href="https://web.archive.org/web/20221123055442/https://enroute4newton.com/">EnRoute i-net Twentieth Birthday</a> website.</p>
<p>See also: <a href="#VIIC1">Where can I find sample code?</a></p>
<hr>
</article>
</section>
<footer>
<nav>
<ul>
<li><a href="index.html">Index</a></li>
<li><a href="newton-faq-introduction.html">Introduction</a></li>
<li><a href="newton-faq-hardware.html">Hardware</a></li>
<li><a href="newton-faq-nos.html">Newton OS</a></li>
<li><a href="newton-faq-community.html">Community</a></li>
<li><a href="newton-faq-software.html">Software</a></li>
<li><a href="newton-faq-books.html">Newton Books</a></li>
<li><strong>Development</strong></li>
<li><a href="newton-faq-history.html">Change History</a></li>
</ul>
</nav>
<hr>
<p>Copyright © 1999–2025 The Newton FAQ Group</p>
</footer>
</body>
</html>