- Applix 1616
The Applix 1616 was a kit
computer with aMotorola 68000 CPU, produced by a small company called Applix inSydney, Australia , from 1986 to the early 1990s. It ran a custom multitaskingmultiuser operating system that was resident in ROM. A version ofMinix 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 theLinux 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 theApple IIc that allowed it to runCP/M . This product was not a commercial success, but Paul later proposed they develop aMotorola 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 of 1987, a disk controller card was also published as "Project 1617".Over the next decade, about 400 1616s were sold [ [http://kerneltrap.org/node/10 KernelTrap.org interview with Andrew Morton] ] .
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:
* aMotorola 68000 running at 7.5 MHz, or a68010 running at 15 MHz.
* 512kibibyte s ofDynamic RAM
* between 64kibibyte s and 256kibibyte s of ROM
* on board bit mapped colour graphics (no "text" mode), with timing provided by aMotorola 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.
* dualRS232 serial ports using aZilog Z8530 .
* aparallel port for Centronics-type printers or general purpose I/O. This was provided by aRockwell 6522 Versatile Interface Adaptor, 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 slot s. The 1616 shared thisbackplane 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:
* AZilog Z80 processor running at 6 MHz
* 32kibibyte s of ROM
* 64kibibyte s ofStatic RAM
* aWD1772 floppy disk controller
* dualRS232 serial ports using aZilog Z8530
* An NCR5380SCSI controllerThe coprocessor is able to run
ZRDOS (aCP/M clone), or can act as a smart disk controller.Memory expansion card
The memory card:
* accepts between 1 and 4mebibyte s ofDynamic RAM in 1 mebibyte increments,
* has an optionalmemory management unit implemented in fastStatic RAM and PALs,
* Another NCR5380SCSI 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 forKeno Computer Systems . The 34010 was a bit-addressablegraphics 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 orSpeedWire prototype?).
* Philip Hutchison developed aMotorola 68030 coprocessor card (small run of working double sided PCBs).Other one-off interface cards were developed for specific projects, including a numerically controlled sheet metal spinning machine controller, a
Transputer card, 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 toUnix 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 amemory management unit when fork()ing 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 theCP/M cloneZRDOS to theZ80 -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, zooSeveral messaging or
bulletin board systems were written, includingUsenet andFidonet 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)
**cscript - an interpreted C-like scripting language created by Andrew Morton. He later added OOP features and renamed it to CS++. CS++ has been ported to Unix, and the source is free to download from Andrew Morton's site: http://www.zipworld.com.au/~akpm/cs++.html
* Forth
* Lisp
*MUMPS
* 68000assembly language The collection of 1616/OS shareware eventually grew to seventeen 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 theirSydney store in 1987. The meetings were held on the second Saturday of the month, and often finished well after midnight after consumption of muchpizza . 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 199?, 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.
External links
* [http://www.zipworld.com.au/~akpm/1616.html The Applix 1616 Project] Andrew Morton's pages on the 1616
* [http://www.ericlindsay.com/applix/index.htm Applix 1616 manuals]References
Wikimedia Foundation. 2010.