A modem hangup on RSX spawns BYE which aborts any non-privileged tasks that have a TI: the same as the terminal which hungup. This patch saves the task after modem hangup before BYE gets spawned. Another program reconnects a terminal to a previously saved task. The first program is DEV.MAC. It links a stub database for a device called RS0: into the DCB chain. This RS0: device is used as the TI: for 'saved' tasks and points to the list of saved task context. This program is run once at startup. The second program is called STS.MAC. It also is run once at startup. It patches the terminal driver modem hangup code to 'save' the task and terminal driver context. No re-sysgen or re-build of the terminal driver is required. You must only re-VMR with patch space at the end of the terminal driver. Like so: LOA TT:/SIZE=12540 One other small change to the terminal driver is required. Word 770 in module TTINI must be changed from a 6 to a 2 with a simple ZAP. This is what the source code looks like: 50$: BITB #US.DSB,U.STS-U.TSTA(R5) ;patched by Frank for RSTS attach ; BITB #US.DSB!US.CRW,U.STS-U.TSTA(R5) ;old way This change is necessary to prevent the terminal driver from returning a device not ready message to the task while the terminal line is waiting for carrier before being hungup. The final program is ATT.MAC. After a modem hangup, the user reconnects and runs this program to reconnect to the 'saved' task. NOTES: Very little pool is used, only about 11 decimal words for the RS0: database, secondary pool is used for everything else. I wrote this for my application, a word processing package with no journalling facility and a host select, port contention terminal switch that looks like modem lines. Good luck with your application. Known Problems: Some tasks like PIP assign LUNS not to TI: but to the actual terminal number (e.g. TT134:). This causes problems when reconnecting on a different numbered line. The fix (I think) would be to patch the RSX assign lun code not to assign to a specific number but to TI: only. My application doesn't have this problem. My hardware is only DZ interfaces. One piece of code is missing for a DH, restarting output on a reconnect. EDT and others do an attach with control-C AST. On a reconnect, I don't bother to change the UCBX address in the AST block. This means a reconnect on a different terminal line and then typing a control-C can crash the system. Again, my application doesn't do this.