GDSX Manual
USKELEX and USKELEXC Listings
Extended General Device Support (GDSX) Manual–134303
B-9
USKELEX Listing
?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 DEBUG;
IF (DCB.LINENO = 0 ) THEN
BEGIN
FILENO := TCB.TERM;
CALL ^WRITE(FILENO, MESSG, 18); !We don't use writeX because
IF <> THEN CALL DEBUG; !MESSG is in local stack.
CALL ^AWAITIO(FILENO);
END; !Mixing local
END; !and ext memory is reasonable
!and feasible.
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.
!
!***************************************************************************
PROC PROCESS^ASSIGNS (buf);
INT .buf;
BEGIN
!
! Any user assign params will be passed to this proc for further processing