Trailing-Edge
-
PDP-10 Archives
-
AP-D471B-SB_1978
-
soff.bli
There are no other files named soff.bli in the archive.
!***COPYRIGHT (C) 1974, 1975, 1976, 1977 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.***
MODULE SOFF(RESERVE(#11, #12, #13, #14), SREG = #17, FREG = #16,
DREGS = 4, VREG = #15, MLIST, TIMER = EXTERNAL(SIX12), FSAVE, ENTRIES=(SOFF)) =
BEGIN
REQUIRE DATA.BLI; ! EVERYONE NEEDS THIS
COMMENT;
!SPECIAL.BLI
!======= ===
! LAST MODIFIED: 7 JUL 76 BY CDO
EXTERNAL
SOFFLEAF,
KILGROUP,
FINDPORT,
GETREQUEST,
MAKEMSG,
MONSOFF,
FIXTERM,
OUTMSG;
COMMENT;
! ROUTINE SOFF
! ======= ====
! THIS ROUTINE HANDLES THE SIGNOFF TRANSACTION CODE
GLOBAL ROUTINE SOFF =
BEGIN
REGISTER
MSGCHUNKS,
GHPTR,
SRCPTR,
PORTADDR;
MAP FORMAT GHPTR;
MAP FORMAT SRCPTR;
MAP FORMAT PORTADDR;
LOCAL UDX;
IF (GHPTR _ GETREQUEST(SOFFLEAF)) EQL 0 THEN RETURN;
IF .GHPTR[G0TYPEOFSENDER] EQL LEAFTYPE THEN RETURN;
SRCPTR _ .GHPTR[G0SENDER]; ! GET THE SENDER
PORTADDR _ FINDPORT(UDX_.SRCPTR[S0PORTPTR]); ! GET ATTACHED PORT ADDRESS
! IN ANY CASE DELETE THE GROUP
KILGROUP(.GHPTR, -1);
IF .PORTADDR[PT0TMPSRCPTR] NEQ 0 THEN ! IF SIGNOFF ALLOWED
BEGIN
FIXTERM(.SRCPTR); !FIX UP TERMINAL FLAGS
SRCPTR[S0PORTPTR] _ PORTADDR[PT0SRCPTR] _ 0; !SIGN IT OFF
IF .MONSOFF THEN
INFORM(PAZ '[MCSSOF TERMINAL %0A% signing off from PORT %1S%]@',
SRCPTR[S0ID],.PORTADDR[PT0NAMEW],0,0,0);
MSGCHUNKS _ MAKEMSG( PAZ 'SIGN OFF CONFIRMED FROM TERMINAL:%0A%?M?J%Z%?M?J@',
SRCPTR[S0ID],0,0,0,0)
END
ELSE
BEGIN
MSGCHUNKS _ MAKEMSG( PAZ 'SIGN OFF NOT ALLOWED?M?J@',0,0,0,0,0)
END;
! SEND THE SIGN OFF MESSAGE OR SIGN OFF NOT ALLOWED MESSAGE
OUTMSG(.MSGCHUNKS,.UDX,FALSE,FALSE);
! ALL DONE
END;
END; ! END OF SOFF