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.
!










