Break Characters
A standard way of handling the break character has to be established for the network and be included in the protocol. Problems with the break character arise in several contexts. First, there are two distinct purposes served by the break character. One is as a panic button. This says, "I do not care what is happening, stop and get me out to monitor level now." This command is executed immediately upon receipt, and is most commonly used to get out of a program that one does not want to be in (e.g., one that is in an infinite loop, etc.)
The other purpose that is served is that of an exit from a subsystem, or on a machine with a forking structure as a method to get back to the next higher level fork. This second purpose is not an immediate one in that the user wants the system to finish all that he has told it to do before exiting.
We assume that there does not exist in every system 1) a way of performing each of these functions, or 2) a clear cut distinction between the calling and operation of the two. Furthermore, there are subtle distinctions as to how each system treats the commands.
The panic button function can easily be performed by the proposed control command <INT>. This function must be accomplished by using a control command, since a program can enter a state where it is accepting no input: hence, the program cannot be aborted by sending it a message down the teletype link. There is no reason to worry about the race condition caused by sending this command down the control link since its whole purpose is to force the machine to disregard everything else the user has sent.
In our implementation of this, we would ask the user to specify to the logger a seldom used character that he wants to be his foreign panic button. Then, it would be a simple task for the sender to map this character into an <INT> command, which the foreign machine must interpret properly. This scheme would work well for most machines, but some may lend themselves to different ways of generating the <INT>.
The other problem that presents itself is what to do if the foreign machine's "exit" character is the same as the local machine's. The problem is that while a user is talking to a foreign machine, he would want to be in a transparent mode, where everything he types is sent directly to the other machine. The way he would get himself out of this mode is to type either his machine's "exit" character or its panic button. Thus, if the foreign machine has the same one, there would be no way to send it. The way out of this is the same as above--merely a mapping of another seldom used character into the foreign machine's "exit" character. This type of mapping can be carried as far as each installation deems necessary. Giving the user complete control over translation is helpful in that it allows him to user characters that his teletype cannot generate.