AmigaNPI 1.4

Download from the Aminet.

Or the latest version from here.

Short:    v1.4 Load packages into the Newton
Uploader: David Fong < >
Author:   David Fong < >
Type:     misc/emu
Replaces: misc/emu/AmigaNPI*
Version:  1.4

AmigaNPI 1.4 - 28th December 1997

 Amiga Newton Package Installer

 Converted into Blitz2 Basic by David Fong

 Based on source code by Filip R. Zawadiak

 Based on information graciously provided by Apple Computer and Newton Inc.


 To upload packages from the Amiga to the Newton without using
 a Macintosh emulator.

 Three versions are provided. A generic WB/CLI version (v1.4),
 a CLI only version (v1.4) and another CLI only version (v0.2a).


 Can be used from CLI - a fast Amiga is recommended.

 Used from CLI on an Amiga 1200 with a 40 MHz 030 and the standard
 serial port, AmigaNPI consumes approximately 75% of available CPU
 processor power.  This requirement drops to about 60% if an external
 serial port (such as provided on the Surf Squirrel) is used.

 Graphical user interface requires OS 2.0 (3.0 recommended) and
 Magic User Interface v3.8.  On the same Amiga as above, AmigaNPI
 consumes 80% of available CPU power when uploading a package.


 Can be used from Workbench, or from CLI.


 Double click the program's icon, or type in just `AmigaNPI'
 from the CLI.

 From the main window, the package to be uploaded can be
 chosen. The button immediately below the chooser can be used
 to set preferences, including both serial and wait times.
 These preferences can be saved to env:AmigaNPI.prefs (and
 will then be copied to envarc:AmigaNPI.prefs). NOTE THAT THE
 1.2. Wait time (Amiga) is the time the Amiga will wait for
 the Newton before timeout. Wait time (Newton) is the time the
 Newton will (hopefully) wait for the Amiga to respond.

 The bottom button will then transfer the package to the
 Newton.  During transfer, the transfer can be stopped by
 pressing the `Abort' button.


 From CLI type...

  AmigaNPI filename [device [device_unit [bps [flags [buffer size]]]]]

 Where filename is the name of the package file you are uploading.

 `AmigaNPI ?' is a special case, and will result in a help and
 information file being displayed in the shell window.

 Optionally, the serial device and serial options can be specified.
 Flags is a value derived by adding the possible numbers below.

 Flags - 128 - Disable Xon/Xoff
       -  64 - Enable EOF checking
       -  32 - Enable shared mode
       -  16 - Enable high speed mode
       -   8 - Break command waits for buffer empty
       -   4 - use RTS/CTS
       -   2 - Select odd parity (otherwise use even)
       -   1 - Enable parity checking

 The default is

  serial.device 0 38400 148 64

 Defaults can also be read from the AmigaNPI.prefs file, in the
 default directory, or env:AmigaNPI.prefs file. In this file,
 the arguments are separated by line feeds (ASC 10). To see the
 format, look at the example prefs file provided.

 Note that AmigaNPI will only upload package files, which are usually
 suffixed with a `.pkg' extension.

 Stuffit files, with a `.sit' extension, are archive files, like
 the Amiga's .lha files, or the .zip files commonly used on
 Windows machines.  Unfortunately, only very old Stuffit de-archiver
 programs are available for the Amiga.  It is called something
 like `unsit', it is available on the Aminet.  It does not work
 properly with modern .sit files.

 Many Macintosh archives are suffixed with `.hqx'.  These files
 are in BinHex format, which is similar to the `.uu' type files
 which are occasionally used on the Amiga.  BinHex files allow
 binary files to transmitted over Internet lines which can
 only handle text.  There are a few BinHex converter programs
 available for the Amiga, but unfortunately you will usually
 end up with a Stuffit file anyway.  Stuffit Expander (Mac or
 Windows) will de-archive .hqx and .sit files, although there
 are separate BinHex converters available for the Mac as well.

 Fortunately, most Newton packages are also provided in Zip format.
 Good UnZip programs are available for the Amiga e.g. from InfoZip.
 Try the Aminet, or ADE (


 Only tested on my MessagePad 2000 and 2100 :)
 However, others report success with NOS 2.0 powered MP120s.

 Many people have had trouble using one version or another of
 AmigaNPI (especially version 1.0).  This might be a Blitz2
 problem, since Blitz2 was designed with speed rather than
 system-friendliness in mind.

 I experienced the same problems myself after upgrading from
 a 68030EC processor to a 68060.  The `solution' is to turn
 off the 68060 caches, superscalar mode etc..

 Currently, it is difficult to claim that AmigaNPI is truly
 multitasking, in the sense that the Newton will stop downloading the
 package if the Amiga is significantly delayed for any reason. For
 example, trying to use the Amiga's menu (by pressing the Amiga's right
 mouse button) often results in the Newton stopping the transfer!

 Speed is probably slower than it should be.

 Cannot interpret compressed information, which is part of the
 V42bis standard. Contrary to what I had earlier thought, this
 does not appear to be a problem (yet).


 Transfer data with PocketMoney's Wildcat

 Transfer data with Steve Weyer's Sloup.

 AmigaE/C++ version?


 Blitz2 BASIC

 Filip R. Zawadiak - provided the original source code, which
                     is present in the src_c directory.
                   - (LINK BROKEN!)

 Andrew Kennan     - for some helpful hints to avoid `busy waiting'

 Michael Graeber   - for looking at my code, and bringing to my attention
                     some problems with my serial buffer handling.

 Andreas Håkannson - for providing EFMuiLib, which now links Blitz2
                     to the Magic User Interface.

 Apple Computer, Newton Inc.

                   - for at last providing the necessary information
                     to make non-Mac package uploaders
                   - for making the wonderful MessagePad 2000.
                   - Newton Incorporated

 The Makers of the Amiga


 0.1  - 13th September, 1997.  First release

      - added code to `round-up' files to the next largest number
        evenly divisible by four.  This is a requirement according
        to the Newton Load Package protocol.  In fact, most packages
        seem to have been carefully manicured to the appropriate
        size anyway.

      - note that Blitz2's lof() function doesn't seem to work
        properly if the end of the file has already been reached.

 0.2  - 23rd September, 1997. (beta)

      - added code to cope with time-outs or disconnections.
        Unfortunately, the implication of this is that AmigaNPI
        will `busy wait' while waiting for serial port activity.
        I hope this fix this problem shortly...probably at
        the same time that I write a GUI interface for AmigaNPI.

      - NEW - optional specification of device (usually serial.device)
        and serial options.  This is for use with FastSerialConn
        by Filip Zawadiak, or if you need a slower than usual
        transfer rate.

      - BUG FIX - corrected Bad CRC reporting format.

 0.2a - 25th September, 1997.

      - BUG FIX - now uses RTS/CTS handshaking (instead of none)

 1.0  - 4th October, 1997

      - NEW - Graphical User Interface via MUI 3.8

      - NEW - AmigaNPI no longer busy waits if the Newton is
        not responding.

      - NEW - User can manually abort the transfer (if using the
        graphical user interface).

      - NEW - User can set the serial flags personally.

      - NEW - Save serial preferences to ENV:AmigaNPI.prefs (from
        graphical user interface only)

      - BUG FIX - now turns off Xon/Xoff handling (I hope this is
        a bug fix, rather than introducing a new bug!)
      - Source code now split into four separate files.

 1.1  - 11th October, 1997

       - BUG FIX - Used Delay_(1) instead of VWait in the serial
       handling code. Many people seemed to be experiencing serial
       problems with 1.0, I hope this fixes the problem... Delay_(1)
       is supposed to be more system friendly, and also happens to
       further decrease processor load.

 1.1a - 19th October, 1997

      - NEW - changed wildcard from * to #?.  (Thanks Michael Boehmer)

 1.2  - 22nd October, 1997

      - NEW - New preference file format, not compatible with
        version 1.1.

      - NEW - preferences options including wait times for Newton
        and desktop.

      - NEW - displays information received in kdNewtonName frame
        in the Package Upload information window.

 1.3  - 12th December, 1997

      - BUG FIX - Considerable change in MUI handling routines. This
      will not be apparant to the user, but will hopefully result in
      more people being able to run AmigaNPI.

      - BUG FIX - Some cleaning up of the MUI display, and also
        another replacement of a VWait with a Delay_(1)

      - NEW - CLI only v1.3 provided.

      - NEW - attempts to load AmigaNPI.prefs from default directory
      first. If AmigaNPI.prefs is found in the default directory,
      then AmigaNPI will also try to save the prefs in the default
      directory. If this fails, AmigaNPI will ask permission to try
      to save AmigaNPI.prefs in the env: directory, but will only to
      env: in the NEXT attempt. (This behaviour is more Amiga User
      Interface Style Guide compliant).

 1.3a - 13th December, 1997

      - BUG FIX - Numerous fixes to MUI handling routines.

 1.4  - 28th December, 1997

      - NEW - user-definable serial device buffer length.
        Default is 64 bytes (used to be 8000 bytes!)

      - BUG FIX - AmigaNPI was ALWAYS trying to set the buffer
        length to 8000, and ALWAYS trying to set this buffer
        length for serial unit zero!  This bug has been fixed.

      - BUG FIX - fixed some misleading `usage' information
        displayed when AmigaNPI is called from CLI.

CONTACT (this is my permanent address)
  - contains a lot of information about connecting the Newton
    to the Amiga.

Last modified 10th May 2000.