This document is written and intended for A-Shell developers seeking to take advantage of A-Shell capabilities to create or enhance existing applications. Most of the topics in this document are what we call A-Shell "extensions," which are capabilities or functions or processes that "extend" A-Shell beyond its original AMOS roots. Although using these extensions may increase the difficulty of maintaining backward-AMOS compatibility, there are at least three reasons why you might want to do so anyway.
• Some of A-Shell’s extensions, such as the expanding library of subroutines written in BASIC, provide you the tools to be more productive as a programmer.
• Some extensions, like memory mapping, may help you significantly improve your application’s performance.
• Probably the most powerful reason is that once applications have been moved to the Windows or UNIX/Linux environments, they will start to encounter users who don’t know AMOS, but who expect certain things out of applications that were not commonly available under AMOS. This is especially true under Windows, where users expect applications to support the mouse, graphics, GDI printing, message boxes, etc., but is also true under UNIX/Linux where applications are expected to be able to handle signals, spawn background tasks, interface with the web and other services using socket-based protocols or FIFOs, understand native directories, etc.
To accommodate these needs and interests, A-Shell has built up a variety of tools and other capabilities over the years, and the list is constantly growing. Many of A-Shell's expanded capabilities are in the form of subroutines or system configuration parameters. The information in this section overlaps those topics, and frequently references them, but is organized differently and presented with an emphasis on discussion and examples.
There is no perfect way to organize these topics, and it is doubtful that you would want to read it from front to back, so you may need to rely on a combination of the table of contents, the index, and general browsing to find what you are looking for.