From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX" 30-AUG-1989 09:03
To:	MRGATE::"ARISIA::EVERHART"
Subj:	SNAP part 5 of 8

Message-Id:  <8908301248.AA09346@crdgw1.ge.com>
Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Wed, 30 AUG 89 05:18:21 PDT
Received: from drcvax.af.mil by KL.SRI.COM with TCP; Wed, 30 Aug 89 05:08:09 PDT
Date: 30 Aug 89 08:02:00 EST
From: "Daniel J. Graham" <graham@drcvax.af.mil>
Subject: SNAP part 5 of 8
To: "info-vax" <info-vax@kl.sri.com>

-+-+-+-+-+-+-+-+ START OF PART 5 -+-+-+-+-+-+-+-+
X`009    `009STATUS = SMG$ERASE_DISPLAY (VD2_ID)
X`009    `009GOTO 5
X`009    ENDIF
X`009    DCLCMD = '@G$PROG:VIEW '//TERMINAL
X`009    CALL LIB$DO_COMMAND(%DESCR(DCLCMD))
X`009ENDIF
XC
XC Offer choice of modifying proces priorities, suspending or resuming
XC
X`009IF (CHOICE .EQ. 'M') THEN
X`009    MENU_OPTION(1) = '   1 - Priority change'
X`009    MENU_OPTION(2) = '   2 - Suspend process'
X`009    MENU_OPTION(3) = '   3 - Resume process'
X
X`009    OPT_ROW = 3
X`009    OPT_COL = 30
X`009    STATUS = SMG$CREATE_VIRTUAL_DISPLAY(OPT_ROW,OPT_COL,VD3_ID,
X`0091`009SMG$M_BORDER)
X`009    STATUS = SMG$LABEL_BORDER (
X`0091`009VD3_ID,'Modify Options',SMG$K_TOP,,SMG$M_REVERSE)
X`009    DO I = 1,3
X`009`009 STATUS = SMG$PUT_WITH_SCROLL (
X`0091`009    VD3_ID,MENU_OPTION(I),SMG$M_UP)
X`009    ENDDO
X`009    STATUS = SMG$PUT_CHARS (VD3_ID,'->',%REF(1),%REF(2),,,)
X`009    STATUS = SMG$CHANGE_RENDITION(VD3_ID,%REF(1),%REF(4),
X`0091 `009%REF(1),%REF(20),SMG$M_UNDERLINE)
X`009    STATUS = SMG$SET_CURSOR_REL (VD3_ID,,%REF(-1))
X
X`009    STATUS = SMG$PASTE_VIRTUAL_DISPLAY (
X`0091`009VD3_ID,PB_ID,%REF(9),%REF(25))
X`009    STATUS = SMG$SET_CURSOR_ABS (VD3_ID,,%REF(1),%REF(2))
X
X`009    STATUS = SMG$RETURN_CURSOR_POS (
X`0091`009VD3_ID,CUR_ROW2,CUR_COL2)
X`009    MIN_CUR2 = CUR_ROW2
X`009    MAX_CUR2 = CUR_ROW2 + 2
X
X`009    TERM_CODE = 0
X`009    DO WHILE (TERM_CODE .NE. 13)
X`009        STATUS = SMG$READ_KEYSTROKE (KB_ID,TERM_CODE)
X`009        IF (TERM_CODE .EQ. SMG$K_TRM_CTRLW) STATUS = SMG$REPAINT_SCREEN
V (PB_ID)
X`009    `009IF (TERM_CODE .EQ. SMG$K_TRM_UPPERCASE_E .OR.
X`0091`009    TERM_CODE .EQ. SMG$K_TRM_UPPERCASE_Q .OR.
X`0091`009    TERM_CODE .EQ. SMG$K_TRM_CTRLZ .OR.
X`0091`009    TERM_CODE .EQ. SMG$K_TRM_PF4 .OR.
X`0091`009    TERM_CODE .EQ. SMG$K_TRM_LOWERCASE_E .OR.
X`0091`009    TERM_CODE .EQ. SMG$K_TRM_LOWERCASE_Q) THEN
X`009`009    STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    `009    STATUS = SMG$CHANGE_RENDITION(VD1_ID,%REF(24),CUR_COL,
X`0091   `009`009%REF(1),%REF(8),SMG$M_NORMAL)
X`009    `009    STATUS = SMG$ERASE_DISPLAY (VD2_ID)
X`009    `009    GOTO 5
X`009    `009ENDIF
X`009        IF (TERM_CODE .GT. 48 .AND. TERM_CODE .LT. 52) THEN
X`009`009    STATUS = SMG$ERASE_CHARS (VD3_ID,%REF(2),CUR_ROW2,%REF(2))
X`009`009    STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2,%REF(4),
X`0091`009  `009%REF(1),%REF(20),SMG$M_NORMAL)
X`009`009    CUR_ROW2 = TERM_CODE - 48
X`009`009    STATUS = SMG$SET_CURSOR_ABS(VD3_ID,CUR_ROW2,)
X`009`009    STATUS = SMG$PUT_CHARS (VD3_ID,'->',CUR_ROW2,%REF(2),,,)
X`009`009    STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2,%REF(4),
X`0091`009  `009%REF(1),%REF(20),SMG$M_UNDERLINE)
X`009`009    STATUS = SMG$SET_CURSOR_REL (VD3_ID,,%REF(-1))
X`009        ENDIF
X`009        IF (TERM_CODE .EQ. SMG$K_TRM_UP) THEN
X`009`009    CUR_ROW2 = CUR_ROW2 - 1
X`009`009    IF (CUR_ROW2 .GE. MIN_CUR2) THEN
X`009`009    `009STATUS = SMG$SET_CURSOR_REL (
X`0091`009`009    VD2_ID,%REF(-1))
X`009`009    `009STATUS = SMG$ERASE_CHARS (VD3_ID,%REF(2),CUR_ROW2+1,
X`0091`009`009    %REF(2))
X`009`009    `009STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2+1,%REF(4),
X`0091`009            %REF(1),%REF(20),SMG$M_NORMAL)
X`009`009    `009STATUS = SMG$PUT_CHARS (VD3_ID,'->',CUR_ROW2,%REF(2),,,)
X`009`009    `009STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2,%REF(4),
X`0091`009            %REF(1),%REF(20),SMG$M_UNDERLINE)
X`009`009    `009STATUS = SMG$SET_CURSOR_REL (VD3_ID,,%REF(-1))
X`009`009    ELSE
X`009`009    `009CUR_ROW2 = MIN_CUR2
X`009`009    `009STATUS = SMG$RING_BELL (VD3_ID)
X`009`009    ENDIF
X`009        ENDIF
X`009    `009IF (TERM_CODE .EQ. SMG$K_TRM_DOWN) THEN
X`009`009    CUR_ROW2 = CUR_ROW2 + 1
X`009`009    IF (CUR_ROW2 .LE. MAX_CUR2) THEN
X`009`009    `009STATUS = SMG$SET_CURSOR_REL (
X`0091`009`009    VD3_ID,%REF(+1))
X`009`009    `009STATUS = SMG$ERASE_CHARS (VD3_ID,%REF(2),CUR_ROW2-1,
X`0091`009`009    %REF(2))
X`009`009    `009STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2-1,%REF(4),
X`0091`009            %REF(1),%REF(20),SMG$M_NORMAL)
X`009`009    `009STATUS = SMG$PUT_CHARS (VD3_ID,'->',CUR_ROW2,%REF(2),,,)
X`009`009    `009STATUS = SMG$CHANGE_RENDITION(VD3_ID,CUR_ROW2,%REF(4),
X`0091`009            %REF(1),%REF(20),SMG$M_UNDERLINE)
X`009`009    `009STATUS = SMG$SET_CURSOR_REL (VD3_ID,,%REF(-1))
X`009`009    ELSE
X`009`009    `009CUR_ROW2 = MAX_CUR2
X`009`009        STATUS = SMG$RING_BELL (VD3_ID)
X`009`009    ENDIF
X`009    `009ENDIF
X`009    ENDDO
X`009    OPTION = CUR_ROW2
X
X`009    IF (OPTION .EQ. 1) THEN
X`009        STATUS = SYS$GETJPIW(,ALTPID(PIDTOALTER),,JPI_LIST,,,)
X`009`009STATUS = SMG$ERASE_DISPLAY (VD3_ID)
X`009`009CALL OTS$CVT_L_TI(PRIB,PRIBP)
X`009`009PLINE = 'Current priority = '//PRIBP
X`009`009STATUS = SMG$PUT_CHARS (VD3_ID,PLINE,%REF(2),%REF(2),,,)
X`009`009PLINE = 'New priority = '
X`009`009STATUS = SMG$PUT_CHARS (VD3_ID,PLINE,%REF(3),%REF(2),,,)
X`009`009STATUS = SMG$SET_CURSOR_ABS(VD3_ID,%REF(3),%REF(17))
X`009    `009STATUS = SMG$READ_STRING(KB_ID,NEWPRIBP,,,,,,STR_LEN,,VD3_ID)
X`009`009IF (STR_LEN .GT. 0) THEN
X44`009`009    CALL OTS$CVT_TI_L(NEWPRIBP,NEWPRIB)
X`009`009    IF (NEWPRIB .LT. 15) THEN
X`009`009`009STATUS = SYS$SETPRI(ALTPID(PIDTOALTER),,%VAL(NEWPRIB),)
X`009    `009`009STATUS = SMG$CHANGE_RENDITION(VD2_ID,CUR_ROW,%REF(1),
X`0091   `009`009    %REF(1),%REF(78),SMG$M_REVERSE)
X`009    `009`009STATUS = SMG$PUT_CHARS (VD1_ID,'    Process priority modifie
Vd - press RETURN to continue...',
X`0091`009`009    %REF(23),%REF(1),,,)
X`009    `009`009STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009`009    ENDIF
X`009`009ENDIF
X`009`009STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    ENDIF
X`009    IF (OPTION .EQ. 2) THEN
X`009`009STATUS = SYS$SUSPND(ALTPID(PIDTOALTER),)
X`009        IF (.NOT. STATUS) THEN
X`009            STATUS = SMG$PUT_CHARS (VD1_ID,'    ERROR Process not suspen
Vded - press RETURN to continue...',
X`0091`009  `009%REF(23),%REF(1),,,)
X`009    `009    STATUS = SMG$CHANGE_RENDITION(VD1_ID,%REF(24),CUR_COL,
X`0091   `009`009%REF(1),%REF(8),SMG$M_NORMAL)
X`009            STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009`009    STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    `009    STATUS = SMG$ERASE_DISPLAY (VD2_ID)
X`009    `009    GOTO 5
X`009        ENDIF
X`009    `009STATUS = SMG$CHANGE_RENDITION(VD2_ID,CUR_ROW,%REF(1),
X`0091   `009    %REF(1),%REF(78),SMG$M_REVERSE)
X`009    `009STATUS = SMG$PUT_CHARS (VD1_ID,'    Process suspended - press RE
VTURN to continue...',
X`0091`009    %REF(23),%REF(1),,,)
X`009    `009STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009`009STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    ENDIF
X`009    IF (OPTION .EQ. 3) THEN
X`009`009STATUS = SYS$RESUME(ALTPID(PIDTOALTER),)
X`009        IF (.NOT. STATUS) THEN
X`009            STATUS = SMG$PUT_CHARS (VD1_ID,'    ERROR Process not resume
Vd - press RETURN to continue...',
X`0091`009  `009%REF(23),%REF(1),,,)
X`009    `009    STATUS = SMG$CHANGE_RENDITION(VD1_ID,%REF(24),CUR_COL,
X`0091   `009`009%REF(1),%REF(8),SMG$M_NORMAL)
X`009            STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009`009    STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    `009    STATUS = SMG$ERASE_DISPLAY (VD2_ID)
X`009    `009    GOTO 5
X`009        ENDIF
X`009    `009STATUS = SMG$CHANGE_RENDITION(VD2_ID,CUR_ROW,%REF(1),
X`0091   `009    %REF(1),%REF(78),SMG$M_REVERSE)
X`009    `009STATUS = SMG$PUT_CHARS (VD1_ID,'    Process resumed - press RETU
VRN to continue...',
X`0091`009    %REF(23),%REF(1),,,)
X`009    `009STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009`009STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009    ENDIF`009
X`009ENDIF
XC
XC Gather selected statistics on the process
XC
X`009IF (CHOICE .EQ. 'S') THEN
X`009    STATUS = SYS$GETJPIW(,ALTPID(PIDTOALTER),,JPI_LIST,,,)
X`009    CALL OTS$CVT_L_TZ(PID2,HEXPID,,)
X`009    IF (ISTATE .EQ. SCH$C_CUR) STATE = 'CUR  '
X`009    IF (ISTATE .EQ. SCH$C_LEF) STATE = 'LEF  '
X`009    IF (ISTATE .EQ. SCH$C_HIB) STATE = 'HIB  '
X`009    IF (ISTATE .EQ. SCH$C_COM) STATE = 'COM  '
X`009    IF (ISTATE .EQ. SCH$C_CEF) STATE = 'CEF  '
X`009    IF (ISTATE .EQ. SCH$C_COMO) STATE = 'COMO '
X`009    IF (ISTATE .EQ. SCH$C_COLPG) STATE = 'COLPG'
X`009    IF (ISTATE .EQ. SCH$C_FPG) STATE = 'FPG  '
X`009    IF (ISTATE .EQ. SCH$C_HIBO) STATE = 'HIBO '
X`009    IF (ISTATE .EQ. SCH$C_LEFO) STATE = 'LEFO '
X`009    IF (ISTATE .EQ. SCH$C_MWAIT) STATE = 'MWAIT'
X`009    IF (ISTATE .EQ. SCH$C_PFW) STATE = 'PFW  '
X`009    IF (ISTATE .EQ. SCH$C_SUSP) STATE = 'SUSP  '
X`009    IF (ISTATE .EQ. SCH$C_SUSPO) STATE = 'SUSPO '
X`009    DO I=1,15
X`009`009IF (PRCNAM(I:I) .EQ. CHAR(NULL)) PRCNAM(I:I) = ' '
X`009    ENDDO
X`009    DO I=1,7
X`009`009IF (TERMINAL(I:I) .EQ. CHAR(NULL)) TERMINAL(I:I) = ' '
X`009    ENDDO
X`009    IF (TERMINAL(1:1) .NE. ' ') THEN
X`009    `009STATUS = SYS$GETDVIW(,,TERMINAL,DVI_LIST,,,,)
X`009`009IF (TERMINAL(1:3) .EQ. 'VTA' .AND. PHY_TERM(1:1) .NE. '_') THEN
X`009`009    PHY_TERM = '--DIS--'
X`009`009ENDIF
X`009    ELSE
X`009`009PHY_TERM = '        '
X`009    ENDIF
X
X`009    SERVER = '      '
X`009    PORT = '      '
X`009    IF (PHY_TERM(1:1) .EQ. '_') THEN
X`009        DO I=1,READ_BUF_LEN
X`009`009    READ_BUF(I:I) = ' '
X`009        ENDDO
X`009`009STATUS = SYS$ASSIGN(PHY_TERM(2:),LT_CHAN,,)
X`009`009STATUS = SYS$QIOW(,%VAL(LT_CHAN),
X`0091`009    %VAL(IO$_TTY_PORT.OR.IO$M_LT_READPORT),
X`0091`009    IOSB,,,%REF(READ_BUF),%VAL(READ_BUF_LEN),,,,)
X`009`009IDX = 2
X`009`009DO WHILE (ICHAR(READ_BUF(IDX:IDX)) .GT. 32 .AND.
X`0091`009`009ICHAR(READ_BUF(IDX:IDX)) .LT. 126)
X`009`009    PORT(IDX-1:IDX-1) = READ_BUF(IDX:IDX)
X`009`009    IDX = IDX + 1
X`009`009ENDDO
X`009`009SERVER = READ_BUF(IDX+1:IDX+6)
X`009    ELSE
X`009`009DO I=1,READ_BUF_LEN
X`009`009    READ_BUF(I:I) = ' '
X`009`009ENDDO
X`009    ENDIF
X`009    STATUS = SYS$ASCTIM(,%DESCR(LOGINTIME),LOGINTIM,)
X`009    STATUS = SYS$GETTIM(CURTIM)
X`009    STATUS = LIB$SUBX(LOGINTIM,CURTIM,DIFTIM)
X`009    STATUS = SYS$ASCTIM(,%DESCR(CONTIME),DIFTIM,)
X`009    DAYS = CPUTIM / 8640000
X`009    TEMP = DAYS * 8640000
X`009    CPUTIM = CPUTIM - TEMP
X`009    HOURS = CPUTIM / 360000
X`009    TEMP = HOURS * 360000
X`009    CPUTIM = CPUTIM - TEMP
X`009    MINUTES = CPUTIM / 6000
X`009    TEMP = MINUTES * 6000
X`009    CPUTIM = CPUTIM - TEMP
X`009    SECONDS = CPUTIM / 100
X`009    TEMP = SECONDS * 100
X`009    CPUTIM = CPUTIM - TEMP
X`009    HUNDREDTHS = CPUTIM
X`009    CALL OTS$CVT_L_TI(DAYS,DAYSP,,,)
X`009    CALL OTS$CVT_L_TI(HOURS,HRS,,,)
X`009    CALL OTS$CVT_L_TI(MINUTES,MINS,,,)
X`009    CALL OTS$CVT_L_TI(SECONDS,SECS,,,)
X`009    CALL OTS$CVT_L_TI(HUNDREDTHS,HUNDS,,,)
X`009    DO I=1,2
X`009        IF (HRS(I:I) .EQ. ' ') HRS(I:I) = '0'
X`009        IF (MINS(I:I) .EQ. ' ') MINS(I:I) = '0'
X`009        IF (SECS(I:I) .EQ. ' ') SECS(I:I) = '0'
X`009        IF (HUNDS(I:I) .EQ. ' ') HUNDS(I:I) = '0'
X`009    ENDDO
X`009    CPUTIMEP = DAYSP//' '//HRS//':'//MINS//':'//SECS//'.'//HUNDS
X`009    FULUIC = UIC(1) + (65536 * UIC(2))
X`009    STATUS = SYS$FAO('!%I',IDLEN,ID,%VAL(FULUIC))
X`009    STATUS = SYS$FAO('!%U',UICLEN,PUIC,%VAL(FULUIC))
X`009    IF (PRIB .GT. 9) PRIB = 0
X`009    CALL LIB_DEFAULT_DIR(ALTPID(PIDTOALTER),DIRECTORY)
X`009    CALL OTS$CVT_L_TI(WSSIZE,MEM)
X`009    CALL OTS$CVT_L_TI(BUFIO,BUFIOP)
X`009    CALL OTS$CVT_L_TI(DIRIO,DIRIOP)
X`009    CALL OTS$CVT_L_TI(PAGEFLTS,PAGEFLTSP)
X`009    CALL OTS$CVT_L_TI(PRIB,PRIBP)
X`009    CALL OTS$CVT_L_TI(PRI,PRIP)
X`009    IMAGES = IMAGE(1:64)
X
X`009    STAT_LINE(1) = ' Username: '//USERNAME//'   Process name: '
X`0091`009//PRCNAM//'   PID: '//HEXPID
X`009    STAT_LINE(2) = ' Account: '//ACCOUNT//'        Terminal: '
X`0091`009//TERMINAL//'   Physical Term: '//PHY_TERM
X`009    STAT_LINE(3) = ' UIC: '//PUIC//'  Ident: '//ID
X`009    STAT_LINE(4) = '                                         '//
X`0091`009'                               '
X`009    STAT_LINE(5) = ' Priority:        '//PRIBP//'/'//PRIP
X`0091`009//'         State:           '//STATE
X`009    STAT_LINE(6) = ' Working set:      '//MEM
X`0091`009//'         Page faults: '//PAGEFLTSP
X`009    STAT_LINE(7) = ' Buffered IO: '//BUFIOP//'         Direct IO:   '
X`0091`009//DIRIOP//'      '
X`009    STAT_LINE(8) = ' CPU time:    '//CPUTIMEP//'   Connect time: '
X`0091`009//CONTIME
X`009    STAT_LINE(9) = '                                Login time    '
X`0091`009//LOGINTIME
X`009    STAT_LINE(10) = ' Image:  '//IMAGES//'      '
X`009    STAT_LINE(11) = ' Dir:    '//DIRECTORY//'      '
X`009    STAT_LINE(12) = ' Server:    '//SERVER//'   Port: '//PORT
X
X`009    OPT_ROW = 12
X`009    OPT_COL = 72
X`009    STATUS = SMG$CREATE_VIRTUAL_DISPLAY(OPT_ROW,OPT_COL,VD3_ID,
X`0091`009SMG$M_BORDER)
X`009    STATUS = SMG$LABEL_BORDER (
X`0091`009VD3_ID,'Process Statistics',SMG$K_TOP,,SMG$M_REVERSE)
X`009    DO I = 1,12
X`009`009STATUS = SMG$PUT_CHARS (VD3_ID,STAT_LINE(I),
X`0091`009%REF(I),%REF(1),,,)
X`009    ENDDO
X`009    STATUS = SMG$PUT_CHARS (VD1_ID,'    Press RETURN to continue...',
X`0091`009%REF(23),%REF(1),,,)
X`009    STATUS = SMG$PASTE_VIRTUAL_DISPLAY (
X`0091`009VD3_ID,PB_ID,%REF(5),%REF(5))
X`009    STATUS = SMG$SET_CURSOR_ABS(VD1_ID,%REF(23),%REF(32))
X`009    STATUS = SMG$READ_KEYSTROKE (KB_ID,DUMMY)
X`009    STATUS = SMG$DELETE_VIRTUAL_DISPLAY (VD3_ID)
X`009ENDIF
XC
XC Gather selected UAF data
XC
X`009IF (CHOICE .EQ. 'U') THEN
X777`009    STATUS = SYS$GETJPIW(,ALTPID(PIDTOALTER),,JPI_LIST,,,)
X`009    STATUS = SYS$GETUAI(,,USERNAME,UAI_LIST,,,)
X`009    STATUS = SYS$ASCTIM(,%DESCR(LASTLOG),LASTLOGIN,)
X`009    STATUS = OTS$CVT_L_TI(WSQUO,WSQ)
X`009    STATUS = OTS$CVT_L_TI(WSEXT,WSE)
X`009    STATUS = OTS$CVT_L_TI(PGFLQUOTA,PGFL)
X`009    STATUS = OTS$CVT_L_TU(UAFPRI,PRIBP,,%VAL(1))
X`009    STATUS = OTS$CVT_L_TI(DFWSCNT,WSD)
X`009    STATUS = OTS$CVT_L_TI(PRCCNT,PRCLIM)
X`009    STATUS = OTS$CVT_L_TU(MAXJOBS,MAXJ,,%VAL(2))
X`009    STATUS = OTS$CVT_L_TU(ENQLM,ENQ,,%VAL(2))
X`009    STATUS = OTS$CVT_L_TU(FILLM,FILP,,%VAL(2))
X`009    STATUS = OTS$CVT_L_TI(BYTLM,BYTL)
X`009    FULUIC = UAFUIC(1) + (65536 * UAFUIC(2))
X`009    STATUS = SYS$FAO('!%I',IDLEN,ID,%VAL(FULUIC))
X`009    STATUS = SYS$FAO('!%U',UICLEN,PUIC,%VAL(FULUIC))
X`009    DEVLEN = INDEX(DEFDEV,' ')
X`009    OWNLEN = ICHAR(OWNER(1:1))
X
X`009    UAF_LINE(1) = ' Username:  '//USERNAME//'   Account:  '//ACCOUNT
X`009    UAF_LINE(2) = ' UIC: '//PUIC//'  Ident: '//ID
X`009    UAF_LINE(3) = ' Default directory:  '//DEFDEV(2:DEVLEN-1)//
X`0091`009DEFDIR(2:)
X`009    UAF_LINE(4) = ' Owner:  '//OWNER(2:OWNLEN+2)//'   Last Login:  '
+-+-+-+-+-+-+-+-  END  OF PART 5 +-+-+-+-+-+-+-+-


