Caratteri di interruzione
Occorre stabilire per la rete un modo standard di gestire il carattere di interruzione e includerlo nel protocollo. I problemi con il carattere di interruzione sorgono in diversi contesti. In primo luogo, il carattere di interruzione serve due scopi ben distinti. Uno è quello di pulsante di emergenza. Esso significa: « Non mi importa cosa stia accadendo, fermati e riportami subito al livello del monitor. » Questo comando viene eseguito immediatamente al ricevimento ed è usato soprattutto per uscire da un programma in cui non si vuole rimanere (ad esempio uno in un ciclo infinito, ecc.).
L'altro scopo servito è quello di un'uscita da un sottosistema o, su una macchina con struttura a fork, di un metodo per tornare al fork di livello immediatamente superiore. Questo secondo scopo non è immediato, poiché l'utente desidera che il sistema porti a termine tutto ciò che gli ha detto di fare prima di uscire.
Presumiamo che non esista in ogni sistema 1) un modo per svolgere ciascuna di queste funzioni, né 2) una distinzione netta tra la chiamata e l'operazione delle due. Inoltre, vi sono sottili differenze nel modo in cui ciascun sistema tratta i comandi.
La funzione di pulsante di emergenza può essere svolta facilmente dal comando di controllo proposto <INT>. Questa funzione deve essere realizzata mediante un comando di controllo, poiché un programma può entrare in uno stato in cui non accetta alcun input: non può quindi essere interrotto inviandogli un messaggio sul collegamento del telescrivente. Non c'è motivo di preoccuparsi della condizione di corsa causata dall'invio di questo comando sul collegamento di controllo, dato che il suo unico scopo è costringere la macchina a ignorare tutto il resto di ciò che l'utente ha inviato.
Nella nostra implementazione, chiederemmo all'utente di indicare al logger un carattere usato di rado che desidera come proprio pulsante di emergenza estraneo. Sarebbe poi un compito semplice, per il mittente, mappare questo carattere su un comando <INT>, che la macchina estranea deve interpretare correttamente. Questo schema funzionerebbe bene per la maggior parte delle macchine, ma alcune potrebbero prestarsi a modi diversi di generare <INT>.
L'altro problema che si presenta è cosa fare se il carattere « exit » della macchina estranea è identico a quello della macchina locale. Il problema è che, mentre un utente conversa con una macchina estranea, desidera trovarsi in modalità trasparente, in cui tutto ciò che digita viene inviato direttamente all'altra macchina. Per uscire da questa modalità, digita il carattere « exit » della propria macchina oppure il suo pulsante di emergenza. Pertanto, se la macchina estranea ha lo stesso carattere, non ci sarebbe modo di inviarlo. La soluzione è la stessa di sopra — una semplice mappatura di un altro carattere usato di rado sul carattere « exit » della macchina estranea. Questo tipo di mappatura può essere spinta fino a dove ciascuna installazione lo ritiene necessario. Concedere all'utente il pieno controllo della traduzione è utile, poiché gli consente di usare caratteri che il suo telescrivente non può generare.