Skip to content

An implementation of the Apple Newton Dock protocol in Swift

License

Notifications You must be signed in to change notification settings

turbolent/NewtonKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewtonKit Logo


An implementation of the Apple Newton Dock protocol in Swift.

Usage

Connection type

TCP

On your computer, run:

swift run tcp

This will start a TCP server on the Newton Dock port 3679.

Once you see Waiting for connection ..., start the Dock application on your Newton and initiate a TCP/IP connection. The connection is succesfully established once Connected appears, at which point you may enter a command (see below).

Serial

On your computer, run:

swift run serial <path-to-serial-device>

Where <path-to-serial-device> is the path to the serial device the Newton is connected to. On macOS, you should use the /dev/cu.usbserial-* device which appears when a USB-to-serial adapter is used. On Linux, the device name is likely /dev/ttyUSB* or /dev/ttyS*.

Once you see Waiting for connection ... start the Dock application on your Newton and initiate a serial connection. The connection is succesfully established once Connected appears, at which point you may enter a command.

Commands

  • keyboard: Start keyboard passthrough. Enter .stop to stop and return to the command prompt.
  • info: Get Newton system information
  • backup: Start backup (work in progress)
    • Notes are exported as HTML files to ~/Library/Application Support/Newton/Backups/Notes/
  • load <path>: Install the package at the given path

Currently only Newton OS 2.x devices (MessagePad 130/2000/2100 and eMate) are supported.

Development

Einstein

NewtonKit works with the Einstein Newton OS emulator. Make sure to use at least the pre-release version with serial port emulation.

Once you have Einstein running, use socat to create a PTY device for the named pipes created by Einstein:

socat -d -d PTY,raw,mode=666,echo=0,link=$HOME/einstein \
    PIPE:$HOME/Library/Application\ Support/Einstein\ Emulator/ExtrSerPortSend\!\!PIPE:$HOME/Library/Application\ Support/Einstein\ Emulator/ExtrSerPortRecv

Then start the NewtonKit command line tool:

swift run serial $HOME/einstein

About

An implementation of the Apple Newton Dock protocol in Swift

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages