GDSX Manual
USKELEX and USKELEXC Listings
Extended General Device Support (GDSX) Manual–134303
B-23
USKELEXC Listing
E^STOP -> ! TASK STOPPED FROM SCF
CALL STOP^LINE;
OTHERWISE ->
CALL PROCESS_DEBUG_;
END; ! CASE
END; ! WHILE
END; ! L^H PROC
?PAGE " "
!===========================================================================
?PAGE "USER^START"
!===========================================================================
! CALLED FOR D^H TASKS
INT PROC USER^START (DCBP, OPENID);
INT .EXT DCBP;
INT (32) .OPENID;
BEGIN ! OPENID specified by USER (In this case, pointer to
! DCB) is stored in TCB.OPENID
OPENID := @DCBP;
RETURN 0;
END;
!===========================================================================
?PAGE "USER^STOP"
!===========================================================================
PROC USER^STOP (TCB);
INT .EXT TCB(TCB^TEMPLATE);
BEGIN
INT FILENO;
INT MESSG[0:8] := "D^H TASK STOPPED ";
INT .EXT DCB(DCB^TEMPLATE);
@DCB := TCB.DCBADDR;
IF ((TCB.STATE.<10:15> < 16 ) ! A D^H TASK IS BEING STOPPED
AND
(DCB.WT^RD^PEND = TRUE)) THEN ! WAITING ON A WRITEREAD
BEGIN ! CANCEL OUTSTANDING I/O FROM A D^H TASK
CALL ^CANCEL(TCB.TERM); ! (EITHER FOR DEVICE I/O OR FOR ITC)
IF <> THEN CALL PROCESS_DEBUG_;
IF (DCB.LINENO = 0 ) THEN
BEGIN
FILENO := TCB.TERM;
CALL ^WRITE(FILENO, MESSG, 18); !We don't use WRITEX because
IF <> THEN CALL PROCESS_DEBUG_; !MESSG is in local stack.
CALL ^AWAITIO(FILENO);
END;
END;
END;
!===========================================================================
?PAGE "PROC PROCESS^ASSIGNS"
!===========================================================================
!***************************************************************************
! Function:
!
! This PROC is used to process user assign parameters as part of
! startup msg
!
! Input: INT buf; buffer string points to assign parameters
!
! Output: None.
!