# Applix 1616

The Applix 1616 was a kit computer with a Motorola 68000 CPU, produced by a small company called Applix in Sydney, Australia, from 1986 to the early 1990s. It ran a custom multitasking multiuser operating system that was resident in ROM. A version of Minix was also ported to the 1616, as was the MGR Window System. Andrew Morton, designer of the 1616 and one of the founders of Applix, later became the maintainer of the 2.6 version of the Linux kernel.

## History

Paul Berger and Andrew Morton formed the Australian company Applix Pty. Ltd. in approximately 1984 to sell a Z80 card they had developed for the Apple IIc that allowed it to run CP/M. This product was not a commercial success, but Paul later proposed they develop a Motorola 68000-based personal computer for sale in kit form.
The project was presented to Jon Fairall, then editor of the Australia and New Zealand electronics magazine Electronics Today International, and in December 1986, the first of four construction articles was published as "Project 1616", with the series concluding in June 1987. In October and November 1987, a disk controller card was also published as "Project 1617".
Over the next decade, about 400 1616s were sold.
Applix Pty. Ltd., was in no way related to the North American company of the same name that produced Applixware.

## Hardware
### Main board

The main board contains:
* a Motorola 68000 running at 7.5 MHz, or a 68010 running at 15 MHz.
* 512 kibibytes of Dynamic RAM
* between 64 kibibytes and 256 kibibytes of ROM
* on board bit mapped colour graphics (no "text" mode), with timing provided by a Motorola 6845 CRT controller. The video could produce 320x200 in 16 colours, or 640x200 in a palette of 4 colours out of 16, with a later modification providing a 960x512 monochrome mode. The frame buffer resided in system memory and video refresh provided DRAM refresh cycles. The video output was able to drive CGA, EGA, MGA and multisync monitors.
* dual RS-232 serial ports using a Zilog Z8530.
* a parallel port for Centronics-type printers or general purpose I/O. This was provided by a Rockwell 6522 Versatile Interface Adapter, which was also the source of timer interrupts.
* 4 channel analog/audio output via an 8 bit DAC and multiplexor.
* software audio/analogue input via the DAC and a comparator.
* a PC/XT keyboard interface.
The main board also had four 80-pin expansion slots. The 1616 shared this backplane with a platform developed by Andrew Morton for Keno Computer Systems, allowing the 1616 to use expansion boards developed for the Keno Computer Systems platform (primarily the 34010 graphics coprocessor), although the form-factor was different, which left the KCS cards sticking out of the top of the 1616 case.

### Disk controller card

The disk controller card contains:
* A Zilog Z80 processor running at 8 MHz
* 32 kibibytes of ROM
* 64 kibibytes of static RAM
* a WD1772 floppy disk controller
* dual RS-232 serial ports using a Zilog Z8530
* An NCR5380 SCSI controller
The coprocessor is able to run ZRDOS (a CP/M clone), or can act as a smart disk controller.

### Memory expansion card

The memory card:
* accepts between 1 and 4 megabytes of Dynamic RAM in 1 megabyte increments,
* has an optional memory management unit implemented in fast static RAM and PALs,
* Another NCR5380 SCSI hard disk interface. This SCSI controller was mapped into the 68000's address space, and was considerably faster than the one on the Z80 coprocessor card.

### 34010 graphics coprocessor card

The TMS34010 card was developed by Andrew Morton for Keno Computer Systems. The 34010 was a bit-addressable graphics processor with instructions for two-dimensional graphics primitives and arbitrary width arithmetic operations on pixel data.

### User developed cards

* Graham Redwood developed an Ethernet card (wire-wrap or Speedwire prototype?).
* Philip Hutchison developed a Motorola 68030 coprocessor card (small run of working double sided PCBs).
* Kevin Bertram developed a Transputer card, an EPROM programmer, and an I/O card. (The EPROM programmer was manufactured under licence by Timothy Ward of Silicon Supply and Manufacturing.) (The I/O card design was used in development by Silicon Supply and Manufacturing of a CNC PC Drill which had a provisional patent, but never released as a kit.)
Other one-off interface cards were developed for specific projects, including a numerically controlled sheet metal spinning machine controller, several EEPROM programmers, etc.

## Operating systems
### 1616/OS

1616/OS was initially little more than a powerful monitor, with commands for dumping and modifying memory, loading and saving to tape, and a built in macro assembler and full screen editor. Over time, the operating system gained a hierarchical file system, preemptive multitasking, support for multiple users with access controls (although no memory protection), lightweight threads, message passing primitives and pipes. Ultimately, the operating system had around 250 system calls, and 78 commands built into the shell. The operating system had enough similarity to Unix that porting Unix source to the 1616/OS was relatively painless.

### Minix

Colin McCormack ported Minix to the 1616. He worked around the lack of a memory management unit when forking by copying BSS, heap and stack of the child and parent processes before scheduling each one. The MMU on the RAM expansion card was developed to support Colin's Minix port, although it's unclear if it was ever used for this purpose.

### ZRDOS

Conal Walsh ported the CP/M clone ZRDOS to the Z80-based disk controller card. When operating in this mode, the 68000 acted as a console for ZRDOS, although it was still possible to suspend the connection to ZRDOS, and run 1616 programs, provided they didn't need disk I/O.

### MGR

Not strictly an operating system, the MGR windowing system run under 1616/OS, but usurped the console video and keyboard, and added virtual tty devices for each window. The MGR port required a video hack to add a higher resolution but monochrome video mode; this was done by replacing a PAL in the video circuit.

## Applications

Most Unix and Minix programs were able to be ported to 1616/OS. Ports included:
    advent, ar, arc, at, cal, cat, chess (gnu), cmp, comm, compress, conquest, cron, dd, diff, ed, eroff, grep, head, indent, make, MicroEMACS, more, nroff, roff, sc, sed, sort, split, STEVIE, strings, sum, tail, tar, tee, ularn, uniq, vi, wanderer, wc, xmodem, ymodem, zmodem, zoo
Several messaging or bulletin board systems were written, including Usenet and Fidonet gateways, and many utilities to allow safe shell-level dial-up access.
Several computer languages were supported, including:
* BASIC
** Tiny BASIC
* C (HiTech C, and later gcc)
* Forth
* Lisp
* MUMPS
* 68000 assembly language
The collection of 1616/OS shareware eventually grew to thirty-one 800kB floppies. Included were innumerable small utilities and ported applications from other environments.

## The 1616 users group

Applix Pty Ltd started holding informal user group meetings in their Sydney store in 1987. The meetings were held on the second Saturday of the month, and often finished well after midnight after consumption of much pizza. Users brought their latest 1616-related creations to demonstrate and share, and discussion ranged from hardware design, operating system theory, language design, to politics and philosophy.
When the Mortons sold the shop in the 1990s, the meetings moved to their house at Yerrinbool, in the Southern Highlands, NSW. When the Mortons again moved to Wollongong, the meetings moved with them. Not able to escape the User Group by moving around NSW, the Mortons moved to Palo Alto, California in 2001.
The user group still meets on the second Saturday of every month, although it has been many years since an Applix 1616 has been booted at one, and, everyone being older, the meetings tend to end somewhat before midnight, and pizza is consumed in moderation.