A little over a year ago, three enthusiastic users of both the Amiga computer and the World Wide Web decided that it was time for the Amiga to have its own version of Mosaic. The ``Three Michaels'', as we sometimes called ourselves, began the daunting task of porting NCSA's Mosaic for X to the Amiga platform. Although they did not consider this an official port, the NCSA gratiously allowed us to use their source code, and the name Mosaic.

Having decided to port NCSA Mosaic to the Amiga, we were faced with the job of moving some 50,000 lines of code designed to run under unix to an entirely different machine architecture and operating system. Fortunately, the Amiga Operating system has a number of features that made the process relatively painless. One such feature is the system's use of shared run-time libraries, which have allowed the developer community to produce widely used operating system extensions.

One of these extensions, a graphics toolkit called MUI, allowed us to easily construct the basic user interface for Amiga Mosaic, including full font sensitivity and user-level appearance configuration, using only a high-level generalized description of interface components and their inter-relations. Another extension provides a full TCP/IP implementation, with a unix-like interface. This allowed us to port the libwww code in a matter of days, and with a minimum of changes. Since the interface is provided by a runtime library, we were actually able to support three transport mechanisms in the same code: two TCP/IP implementations, one commercial ( AS225) and one public domain (AmiTCP), as well as DNET, an Amiga specific protocol providing limited internet connectivity over connections to vanilla unix shell accounts. Since these user interface and transport services are provided by shared, run-time libraries, they can be regularly updated without the need for users to obtain a new version of Amiga Mosaic.

Figure 1: The Amiga Mosaic window, with hotlist extension