.TITLE HANGUP MODEM .IDENT /HANGUP/ ; ; HANGUP IS A PRIVILEGED TASK THAT RUNS AT PERIODIC INTERVALS AND HANGS UP ; MODEMS FOR INACTIVE, LOGGED OUT TERMINALS. IT WAS WRITTEN FOR IAS 3.0 ; AND IS USUALLY RUN FROM THE SCI TERMINAL. ; ; NOTE : THIS PROGRAM SOLVES THE PROBLEM REFERED TO BY SPR'S 147570 (7 APR 78) ; AND 147572 (19 APR 78) AS WELL AS DECUS WISH LIST ITEM #56. ; ; AUTHOR - RICHARD C. ENG ; ; BUILD COMMANDS: ; ; MAC HANGUP ; LINK/OPT/PRIV HANGUP ; LIBR=IASCOM:RO ; / ; .MCALL DIR$,QIOW$S,EXIT$S .MCALL ALUN$,QIO$ ; PUDSCN: MOV .PUDBA,R2 ;START OF PUDS 1$: BIT #UC.IAS,U.C1(R2) ; .IS THIS AN IAS INTERACTIVE TERMINAL? BNE 7$ ;BNE= YES ;---------- 3$: ;PREPARE FOR NEXT TERMINAL ADD #U.SZ,R2 ;POINT TO NEXT PUD CMP R2,.PUDEA ;IS THIS THE END? BNE 1$ ;BNE= NO ;---------- BR 77$ ;********* 7$: CMP #"TT,U.DN(R2) ;DEVICE NAME= TT? BNE 3$ ;BNE= NO ;---------- MOVB U.UN(R2),ALUND+6 ; .MOVE UNIT# DIR$ #ALUND ;ASSIGN LU# TO PHYSICAL TERMINAL (TT) DIR$ #TCDLU ;CHECK IF DIALUP LINE BCS ERR1 ;---------- TST IOSB+2 ;WAS IT A DIALUP? BEQ 33$ ;BEQ=NO ;---------- MOV U.ACP(R2),R3 ;UTN ADDRESS TST I.UN(R3) ;TEST 1ST WD. OF USERNAME BNE 33$ ;BNE= THIS TERMINAL IN USE ;---------- DIR$ #IOHNG ;ISSUE HANGUP ;... BCS ERR2 ;---------- 33$: DIR$ #ALUND1 ;DEASSIGN LU# BR 3$ ;********* 77$: BR EXIT ;********* ERR1: QIOW$S #IO.WLB,#5,#1,,,,<#MES1,#MES1L> EXIT: EXIT$S ;************* ERR2: QIOW$S #IO.WLB,#5,#1,,,,<#MES2,#MES2L> BR EXIT ;********* TCDLU: QIO$ SF.GSC,1,3,,IOSB,, IOSB: .WORD 0,0 IOHNG: QIO$ IO.HNG,1,3,,IOSB ALUND: ALUN$ 1,TT,20 ;NOTE: "20" IS A DUMMY UNIT# ALUND1: ALUN$ 1 MES1: .ASCII <12><15>/ERR1/ MES1L=.-MES1 MES2: .ASCII <12><15>/ERR2/ MES2L=.-MES2 .END PUDSCN