************************************************** 1) BYE.DEC;1 2 .IDENT /02.2/ 3 ; *************** 2) BYE.MAC;1 2 .IDENT -02.5A- 3 ; ************************************************** 1) BYE.DEC;1 24 ; VERSION: 02.2 25 ; BY: H. LEV *************** 2) BYE.MAC;1 24 ; VERSION 2.5 25 ; BY: H. LEV ************************************************** 1) BYE.DEC;1 70 .MCALL MRKT$S,DIR$,EXIT$S,WTSE$S,QIO$,GMCR$,ABRT$ 71 .MCALL CMKT$S,WTLO$S,GTIM$S,MTADF$ 72 .MCALL QIOW$ ; ;MLG006 73 .MCALL SPWN$,STSE$ ;EAF004 74 MTADF$ ; DEFINE ANSI MAGTAPE DATA STRUCTURES 76 ; *************** 2) BYE.MAC;1 69 ; RA300 REPLACE STOP BIT WITH WAIT FOR 70 ; 71 ; DD041 FIX EXIT WITH OUTSTANDING I/O 72 ; 73 ; RWT001 14-NOV-80 OAK RIDGE NATIONAL LAB 74 ; LOCAL MODIFICATIONS FOR VIRTUAL DISK SUPPORT 75 ; 1) USE SPAWN DIRECTIVE INSTEAD OF GIVMCR FOR "DMO /USER" 76 ; (DIRECTIVE IS ISSUED WHILE TERMINAL IS PRIVILEGED) 77 ; 2) ADDED $USRSB TO SPAWN A "DVD /ALL/NM" COMMAND TO 78 ; RELEASE VIRTUAL DISKS 79 ; 3) DECLARE "BYEERR" AS A GLOBAL SYMBOL 80 ; 4) MOVE CODE TO SPAWN "ASN =/LOGIN" TO FOLLOW CALL 81 ; TO $USRSB. 82 ; 83 .GLOBL BYEERR ;RWT001 85 .MCALL MRKT$S,DIR$,EXIT$S,WTSE$S,QIO$,GMCR$,ABRT$ 86 .MCALL CMKT$S,WTLO$S,GTIM$S,MTADF$ 87 .MCALL QIOW$ ; ;MLG006 88 .MCALL SPWN$,WTSE$S ;RA300 89 .MCALL QIOW$C ; DD041 90 MTADF$ ; DEFINE ANSI MAGTAPE DATA STRUCTURES ;**-1 92 ; ************************************************** 1) BYE.DEC;1 97 MSG1: .ASCII <12>/XX-XXX-XX XX:XX / ;**-2 98 MSG1A: .ASCIZ /DDNN: LOGGED OFF/<15><12>/>/ *************** 2) BYE.MAC;1 113 MSG1: .ASCII <12>/XX-XXX-XX XX:XX / 114 MSG1A: .ASCIZ /DDNN: LOGGED OFF/<15><12>/>/ ************************************************** 1) BYE.DEC;1 106 LGOMSG: .ASCIZ /LOGOUT USER / ;**-1 107 MONTH: .ASCII /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/ *************** 2) BYE.MAC;1 122 LGOMSG: .ASCIZ /LOGOUT USER / 123 MONTH: .ASCII /JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC/ ************************************************** 1) BYE.DEC;1 116 NOHOLD: .BYTE 33,134,0 ; EXIT HOLD SCREEN MODE ESCAPE SEQUENCE ;EAF004 117 .EVEN ;EAF004 118 SPWDPB: SPWN$ MCR...,,,,,1,,,DEASSN,DEALEN,, ;EAF004 119 STSDPB: STSE$ 1 ;EAF004 120 UCB: .WORD 0 ; UCB ADDRESS OF TI ;**-3 121 ERRDPB: QIO$ IO.WBT,1,1,,IOSTAT,,<0,0,40> ; DPB FOR TI: I/O ;MLG057 122 IOSTAT: .BLKW 2 ; I/O STATUS BLOCK ;**-1 123 ;MLG006 *************** 2) BYE.MAC;1 132 DMOLEN = . - DMO - 1 ;RWT001 133 NOHOLD: .BYTE 33,134,0 ; EXIT HOLD SCREEN MODE ESCAPE SEQUENCE ;EAF004 134 .EVEN ;EAF004 135 SPWDPB: SPWN$ MCR...,,,,,1,,,DEASSN,DEALEN,, ;EAF004 136 UCB: .WORD 0 ; UCB ADDRESS OF TI ;**-1 137 ERRDPB: QIO$ IO.WBT,1,1,,IOSTAT,,<0,0,40> ; DPB FOR TI: I/O ;MLG057 138 IOSTAT: .BLKW 2 ; I/O STATUS BLOCK 139 ;MLG006 ************************************************** 1) BYE.DEC;1 142 2$: MOV $TKTCB,R0 ; GET OUR TCB ADDRESS ;**-3 143 MOV T.UCB(R0),R0 ; GET TI UCB ADDRESS *************** 2) BYE.MAC;1 158 2$: MOV $TKTCB,R0 ; GET OUR TCB ADDRESS 159 MOV T.UCB(R0),R0 ; GET TI UCB ADDRESS ************************************************** 1) BYE.DEC;1 164 .IF DF R$$SCS ;EAF004 165 ;EAF004 166 BIT #U2.SCS,U.CW2(R0) ; IS TI AN SCS TERMINAL? ;EAF004 167 BEQ 35$ ; IF EQ, NO ;EAF004 168 DEC SPWDPB+S.PWCL ; PREVENT DEASSIGN COMMAND FROM CAUSING A PROMPT;EAF004 169 35$: ;EAF004 170 .ENDC ; R$$SCS ;EAF004 171 ;EAF004 172 DIR$ #SPWDPB ; SPAWN MCR WITH DEASSIGN COMMAND LINE ;EAF004 173 BCS 4$ ; ERROR - TRY QUEUEING DEASSIGN COMMAND TO MCR ;EAF004 174 DIR$ #STSDPB ; STOP UNTIL DEASSIGN COMPLETED ;EAF004 175 BR 6$ ; ;EAF004 176 ;EAF004 177 4$: MOV #DEASSN,R5 ; GET DEASSIGN COMMAND 178 CALL GIVMCR ; GIVE IT TO MCR 179 BCC 5$ ; OKAY 180 CALL WAIT1 ; WAIT 1 SECOND 181 BR 4$ ; TRY IT AGAIN 182 5$: CALL WAIT1 ; WAIT ONE SECOND 183 MOV UCB,R0 ; GET TI UCB ADDRESS 184 BIT #U2.AT.,U.CW2(R0) ; IS MCR DONE? 185 BNE 5$ ; NO, WAIT SOME MORE 186 6$: ;EAF004 *************** 2) BYE.MAC;1 180 6$: ;EAF004 ************************************************** 1) BYE.DEC;1 191 BIC #U2.PRV,U.CW2(R0) ; SET TERMINAL NOT PRIVILEGED 192 MOV #DMO,R5 ; POINT TO "DMO /USER" ;MLG085 193 CALL GIVMCR ; DISMOUNT ALL USER'S DISKS ;MLG085 194 MOV $DEVHD,R5 ; GET FIRST DCB ADDRESS *************** 2) BYE.MAC;1 186 MOV #DMO,SPWDPB+S.PWCA ; SET SPAWN COMMAND TO "DMO /USER" ;RWT001 187 MOV #DMOLEN,SPWDPB+S.PWCL ; PUT COMMAND LENGTH IN DPB ;RWT001 188 301$: DIR$ #SPWDPB ; SPAWN DISMOUNT COMMAND ;RWT001 189 BCC 303$ ; IF CC, PROCEED ;RWT001 190 CALL WAIT1 ; WAIT ONE SECOND ;RWT001 191 BR 301$ ; TRY AGAIN ;RWT001 192 303$: WTSE$S #1 ; WAIT HERE UNTIL COMPLETE ;RWT001 193 MOV $DEVHD,R5 ; GET FIRST DCB ADDRESS ************************************************** 1) BYE.DEC;1 203 27$: CLR U.OWN(R3) ; DEAALOCATE DEVICE ;**-39 204 BICB #US.PUB,U.ST2(R3) ; AND SET IT PRIVATE *************** 2) BYE.MAC;1 202 27$: CLR U.OWN(R3) ; DEAALOCATE DEVICE 203 BICB #US.PUB,U.ST2(R3) ; AND SET IT PRIVATE ************************************************** 1) BYE.DEC;1 217 GTIM$S #TIMBUF ; GET TIME *************** 2) BYE.MAC;1 217 ; 218 ; THE FOLLOWING SECTION OF CODE (THROUGH THE LABEL 6$) WAS MOVED TO FOLLOW THE ;RWT001 219 ; CALL TO $USRSB. ;RWT001 220 ; 222 MOV #DEASSN,SPWDPB+S.PWCA ;SET UP DEASSIGN COMMAND 223 MOV #DEALEN,SPWDPB+S.PWCL ;... 225 .IF DF R$$SCS ;EAF004 226 ;EAF004 227 BIT #U2.SCS,U.CW2(R0) ; IS TI AN SCS TERMINAL? ;EAF004 228 BEQ 35$ ; IF EQ, NO ;EAF004 229 DEC SPWDPB+S.PWCL ; PREVENT DEASSIGN COMMAND FROM CAUSING A PROMPT;EAF004 230 35$: ;EAF004 231 .ENDC ; R$$SCS ;EAF004 232 ;EAF004 233 DIR$ #SPWDPB ; SPAWN MCR WITH DEASSIGN COMMAND LINE ;EAF004 234 BCS 4$ ; ERROR - TRY QUEUEING DEASSIGN COMMAND TO MCR ;EAF004 235 WTSE$S #1 ; WAIT UNTIL COMPLETE ;RA300 236 BR 6$ ; ;**-1 237 ;EAF004 238 4$: MOV #DEASSN,R5 ; GET DEASSIGN COMMAND 239 CALL GIVMCR ; GIVE IT TO MCR 240 BCC 5$ ; OKAY 241 CALL WAIT1 ; WAIT 1 SECOND 242 BR 4$ ; TRY IT AGAIN 243 5$: CALL WAIT1 ; WAIT ONE SECOND 244 MOV UCB,R0 ; GET TI UCB ADDRESS 245 BIT #U2.AT.,U.CW2(R0) ; IS MCR DONE? 246 BNE 5$ ; NO, WAIT SOME MORE 247 6$: ;REF LABEL ;RWT001 248 BIC #U2.PRV,U.CW2(R0) ; SET TERMINAL NOT PRIVILEGED ;RWT001 250 GTIM$S #TIMBUF ; GET TIME ************************************************** 1) BYE.DEC;1 240 CALL DATTIM ; CONVERT TIME TO ASCII ;**-1 241 MOV UCB,R3 ; GET TI UCB ADDRESS *************** 2) BYE.MAC;1 273 CALL DATTIM ; CONVERT TIME TO ASCII 274 MOV UCB,R3 ; GET TI UCB ADDRESS ************************************************** 1) BYE.DEC;1 251 ROR (SP)+ ; NEED TO WAIT ON CO:? ;**-5 252 BCS 20$ ; IF CS NO *************** 2) BYE.MAC;1 284 ROR (SP)+ ; NEED TO WAIT ON CO:? 285 BCS 20$ ; IF CS NO ************************************************** 1) BYE.DEC;1 264 MOV UCB,R0 ; GET TI: UCB ADDRESS ; PL018 *************** 2) BYE.MAC;1 297 QIOW$C IO.KIL,1 ; KILL ANY OUTSTANDING I/O ; DD041 298 MOV UCB,R0 ; GET TI: UCB ADDRESS ; PL018 ************************************************** 1) BYE.DEC;1 351 15$: RETURN ; RETURN TO USER STATE ;**-1 354 ;+ *************** 2) BYE.MAC;1 385 15$: RETURN ; RETURN TO USER STATE 388 ;+ ************************************************** 1) BYE.DEC;1 368 DIR$ #ERRDPB ; ISSUE MESSAGE ;**-2 369 BCS 20$ ; ERROR *************** 2) BYE.MAC;1 402 DIR$ #ERRDPB ; ISSUE MESSAGE 403 BCS 20$ ; ERROR ************************************************** 1) BYE.DEC;1 379 CALLR WAIT1 ; WAIT FOR KILLED I/O TO COMPLETE ;**-1 380 20$: RETURN ; *************** 2) BYE.MAC;1 413 CALLR WAIT1 ; WAIT FOR KILLED I/O TO COMPLETE 414 20$: RETURN ; 17 DIFFERENCES FOUND BYE.CMP/-SP=BYE.DEC,BYE.MAC