GAPCTTY Remote Communications Handler October 3, 1988 (C) Copyright 1988 The GAP Development Company GAPCTTY (C) Copyright 1988 The GAP Development Company GENERAL OVERVIEW ---------------- GAPCTTY is a replacement for the DOS CTTY function. However, unlike the CTTY function, I/O is not redirected. It is a terminate and stay resident (TSR) type of program and must be turned on to use it and off to disable it. Disabling the program removes it from memory. GAPCTTY was designed to be utilized by Bulletin Board operators while exiting to DOS from a remote location. It may also be used whenever there is a need to invoke CTTY. This program was written out of necessity because of bugs with the CTTY function in DOS 3.3 which can cause a computer to "hang" if a remote user types a backspace or an ESC while the cursor is in column 0 of the local computer. With some computers (Compaq) this problem does not occur, but with the majority of clones it is a real menace. GAPCTTY monitors three interrupt vectors : DOS functions, keyboard, and communications port. The communications port is set up to provide input/output at speeds greater than 19,200 bps. The keyboard is monitored to determine if a backspace was pressed on the local keyboard (yes, the backspace IS a problem). The DOS interrupt 21 is monitored so that any local I/O can be sent to the remote terminal. The program monitors the carrier detect line and will reboot the computer if there is a loss of carrier. USAGE ----- To use GAPCTTY you must provide it with three command line parameters : 1 - Communication port (1 or 2) 2 - On/Off flag 3 - Ctrl-C checking (ON or Off) The communications port is either COM 1 or COM 2. The On/Off flag tells the program to either install itself in memory or remove itself from memory. The flag for Ctrl-C checking is provided so that you may use GAPCTTY in conjunction with programs that do not provide their own communications I/O and you wish to prevent a user from breaking out of the program (or the batch file that runs the program). For simple remote exits to DOS, you would normally leave this flag set to OFF. You must provide a valid com port number or the program will simply exit back to DOS. Page 2 GAPCTTY (C) Copyright 1988 The GAP Development Company Some sample invocations would appear as follows : GAPCTTY 1 ON ON - Invoke GAPCTTY for COM 1 and do not allow a Ctrl-C from the remote terminal. GAPCTTY 1 ON OFF - Invoke GAPCTTY for COM 1 but do allow a Ctrl-C from the remote terminal. GAPCTTY 1 OFF OFF - Reset interrupt vectors back to their previous state and remove program from memory. The third parameter in this case is irrelevant. Since most BBS programs implement their remote exit to DOS by exiting to a batch file, a sample remote batch file might look like this : echo off cls set prompt=Type EXIT To Return To GAP$_$p$_ gapctty 1 ON OFF command c: cd \gap gapctty 1 OFF OFF set prompt=$p$_ gap It is imperative that you disable GAPCTTY when it is no longer needed. This is the equivalent of issuing a CTTY CON command to DOS. The program must be disabled or when the user returns to your BBS he/she will receive double characters and the display will be generally messy! No permanent harm of course will come but as soon as the user logs off and the DTR line is dropped, your computer will reboot! If you run GAPCTTY when there is no remote connection, your computer may reboot at an inopportune time (depending on how "noisy" your com port is). This is normal and is for your protection. QUIRKS ------ GAPCTTY will work only with programs that use DOS for their I/O. Programs that directly write to the screen or use BIOS services will run just fine on the local computer but the remote terminal will receive absolutely nothing! The backspace problem with DOS 3.3 and CTTY is definately a bazarr problem. If the backspace were not trapped, the remote user would receive a space instead of an actual Page 3 GAPCTTY (C) Copyright 1988 The GAP Development Company backspace. DOS sends the space and the BIOS takes the responsibility of repositioning the cursor. It was strange to watch the BIOS routines continuosly re-invoke themselves through software interrupts. No wonder DOS has bugs! Cursor positioning commands generated thru the BIOS are not supported (IE, the CLS command), however ANSI codes work just fine. GAPCTTY fully expects the keyboard buffer to be where it was when the computer was turned on (the BIOS keyboard buffer). The current version does not support keyboard enhancers that provide for buffers larger than 16 bytes. We will be working on this problem and will provide a new version when a solution is found. The program uses the vector for interrupt 65h to store vital information which means that you may not use any other program that takes over this interrupt. Page 4 GAPCTTY (C) Copyright 1988 The GAP Development Company LEGAL STUFF ----------- Individuals are granted a license to use the accompanying software freely: copy it, post it on computer services, distribute it through software exchanges, etc. However, no fee must be charged other than the cost of duplication. The program may freely be distributed with other programs as long as no charge is made for those "other" programs. No part of the executible file may be altered, especially when such an alteration would remove the name GAP from the program. COPYRIGHT --------- The software accompanying this documentation is owned exclusively by GAP Development Company. It may be used freely by individuals and need not be registered. The software may NOT be distributed commercially for profit or gain without written consent from GAP Development Company. The software contains valuable trade secrets and proprietary information and is protected by federal copyright laws. Unauthorized use of the software or this documentation can result in civil damages and criminal prosecution. WARRANTY -------- The software is licensed AS IS and THERE ARE NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND ALL SUCH WARRANTIES ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL GAP DEVELOPMENT COMPANY BE RESPONSIBLE FOR ANY INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS TO YOU OR ANY OTHER PERSON OR ENTITY REGARDLESS OF THE LEGAL THEORY, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. No dealer, company or person is authorized to expand or alter either these warranties or this agreement; any such representation will not bind GAP Development Company. GAP Development Company 24242 Porto Fino Laguna Niguel, CA 92677 Page 5