ACME Serial 1.2 aka Asynchronous Connection Manager Example for Serial endpoints 1.2 By Jim Schram Copyright (c) 1994-1995 Apple Computer, Inc. All rights reserved. This sample is a modified version of the ACME Modem sample for use with serial endpoints rather than modem endpoints. Like ACME Modem, ACME Serial shows you how to properly handle an asynchronous endpoint connect/disconnect cycle with retries. It also shows you how to open the IR port as a plain serial port, and how to use the retry mechanism to automatically switch between ports. ACME Serial assumes that both ports are full-duplex. The IR port, however, is not, so everything sent out that port immediately triggers the input script. It is left as an excercise for the reader to propogate the half-duplex nature of serial IR to higher levels in the application. ******* WARNING: Using the IR port as a plain serial port is NOT a fully supported capability in the 1.x Newton operating system. It is HIGHLY recommended the developer implement the public Sharp IR (ie. kCMSSlowIR) protocol in their application instead. This simple point-to-point protocol provides automatic error detection and correction, is already implemented in the Newton ROM, and will basically just save you a lot of hair... More information on this protocol's implementation can be found in the Q/A Communications article "Sharp IR Protocol". ******* Please refer to the ACME Modem sample and its README file for more information. Bugs? That's a definate maybe. Please report any you find! MODIFICATION HISTORY ==================== Version 1.2 (eg. ACME Serial-3) ------------------------------ Modifications for NTK 1.5 evaluate slot for app title, GetLayout Version 1.1 (eg. ACME Serial-2) ------------------------------ Added code to detect and avoid the heinous side-effects of FlushOutput. Refer to the Q/A Communications article "FlushOutput and the nested event loop problem" for a detailed description of this problem. Version 1.0 (eg. ACME Serial-1) ------------------------------ Initial release.