Annotation of freem_fileman/DINVDTM.m, revision 1.1

1.1     ! snw         1: %ZOSV  ;SFISC/AC,LL/DFH,sfisc/fyb-View commands and special functions ;03:15 PM  21 Dec 1994
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        ; ** For DataTree **
        !             5:        ;
        !             6: ACTJ() ; Active Jobs
        !             7:        Q $$njobs^%mjob("running")
        !             8:        ;
        !             9: AVJ()  ; Available Jobs
        !            10:        Q $$njobs^%mjob("free")
        !            11:        ;
        !            12: T0     ; start RT clock
        !            13:        S XRT0=$H Q
        !            14: T1     ; store RT datum
        !            15:        S ^%ZRTL(3,XRTL,+$H,XRTN,$P($H,",",2))=XRT0 K XRT0 Q
        !            16: MAXJ   ; Maximum # of Jobs
        !            17:        S Y=$$njobs^%mjob("total") Q
        !            18:        ;
        !            19: BAUD   ; Baud rate of device - used by BAUD field of the Device File
        !            20:        ; Internal entry of device is D0
        !            21:        ;ZETRAP BAUDERR
        !            22:        ;S X=$zdevspeed($P(^%ZIS(1,D0,0),"^",2)) Q
        !            23: BAUDERR        ;S X="" Q
        !            24:        Q
        !            25:        ;
        !            26: LGR()  Q $ZR ;Last global reference
        !            27:        ;
        !            28: EC()   Q $ZE ;Error code
        !            29:        ;
        !            30: DEVOPN ;X=$J,Y=List of devices separated by a comma
        !            31:        G DEVOPN^%ZOSV1
        !            32:        ;
        !            33: DEVOK  ;X=Device $I, Y=0 if available, Y=999 if device is busy
        !            34:        ;Y=-1 if device is undefined.
        !            35:        G RES:$G(X1)="RES" I $E(X)="/"!($E(X)="\") S Y=0 Q
        !            36:        I $D(X)[0 S X=$I
        !            37:        I X=$I S Y=$J Q
        !            38:        I X<20,(X>9) S Y=0 D NULLDEV O X:("W":NULLDEV):0 C:$T X S:'$T Y=999 Q
        !            39:        ZETRAP NODEV
        !            40:        L:$D(%ZISLOCK) +@%ZISLOCK:60
        !            41:        O X::0 I '$T S Y=999 L:$D(%ZISLOCK) -@%ZISLOCK Q
        !            42:        L:$D(%ZISLOCK) -@%ZISLOCK
        !            43:        C X S Y=0
        !            44:        Q
        !            45: RES    S Y=0,%ZISD0=$O(^%ZISL(3.54,"B",X,0))
        !            46:        I '%ZISD0 S Y=-1,%ZISD0=%O(^%ZIS(1,"C",X)) Q:'%ZISD0  Q:'$D(^%ZIS(1,+%ZISD0,0))  Q:$P(^(0),"^")'=X  Q:'$D(^("TYPE"))  Q:^("TYPE")'="RES"  S Y=0 Q
        !            47:        S X1=$S($D(^%ZISL(3.54,+%ZISD0,0)):^(0),1:"")
        !            48:        I $P(X1,"^",2)&(X=$P(X1,"^")) S Y=0 Q
        !            49:        S Y=999 F %ZISD1=0:0 S %ZISD1=$O(^%ZISL(3.54,%ZISD0,1,%ZISD1)) Q:%ZISD1'>0  I $D(^(%ZISD1,0)) S Y=$P(^(0),"^",3) Q
        !            50:        K %ZISD0,%ZISD1
        !            51:        Q
        !            52: NULLDEV        ; based on %device
        !            53:        K HWTYPE S NULLDEV="NUL",H=$V($S($P($ZVER,"/",2)<4:4,1:1),3,-1)
        !            54:        S HWTYPE=$S(H<10:"WS",H<20:"MF",H<64:"?",H<129:"PC",1:"?")
        !            55:        I HWTYPE'="PC" S NULLDEV="[NUL]"
        !            56:        K H,HWTYPE Q
        !            57:        ;
        !            58: NODEV  S Y=-1
        !            59:        Q
        !            60:        ;
        !            61: DOLRO  ;SAVE ENTIRE SYMBOL TABLE IN LOCATION SPECIFIED BY X
        !            62:        ;I $P($ZVER,"/",2)<4 D ^%VARLOG
        !            63:        S Y="%" F %=0:0 S Y=$O(@Y) Q:Y=""  S %=$D(@Y) S:%#2 @(X_"Y)="_Y) I %>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
        !            64:        Q
        !            65:        ;
        !            66: ORDER  ; Save part of the symbol table in location specified by X
        !            67:        S (Y,Y1)=$P(Y,"*",1) I $D(@Y)=0 F %=0:0 S Y=$O(@Y) Q:Y=""!(Y[Y1)
        !            68:        Q:Y=""  S %=$D(@Y) S:%#2 @(X_"Y)="_Y)
        !            69:        I %>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
        !            70:        F %=0:0 S Y=$O(@Y) Q:Y=""!(Y'[Y1)  S %=$D(@Y) S:%#2 @(X_"Y)="_Y) I %>9 S %X=Y_"(",%Y=X_"Y," D %XY^%RCR
        !            71:        K %,X,Y,Y1 Q
        !            72:        ;
        !            73: JOBPAR ; Returns job X's namespace
        !            74:        D JSTAT^%ZOSV1
        !            75:        I ($P($ZVER,"/",2)'<4)&($P($ZVER,"/",2)<4.3) S Y=$ZCONVERT($V(0,JA+908,-5),"U")
        !            76:        E  S Y=$$jstat^%mjob(X),Y=$P(Y,"|",4)
        !            77:        Q
        !            78:        ;
        !            79:        ;
        !            80: NOLOG  ; No logins allowed
        !            81:        S Y=0 Q
        !            82:        ;
        !            83: PARSIZ ;
        !            84:        S X=3 Q
        !            85:        ;
        !            86: PRIINQ()       ; Priority Inquire
        !            87:        N X,Y S X=$J D JSTAT^%ZOSV1
        !            88:        I ZVER S Y=$V(0,$V(1,(X-1*2)+100,-2)*16+5,-1)-128\2 S:Y Y=10-Y
        !            89:        E  S Y=$$jstat^%mjob(X),Y=$P(Y,"|",7) S:Y Y=10-Y
        !            90:        Q Y
        !            91:        ;
        !            92: PRIORITY       ; Set priority of job
        !            93:        I X<1!(X>10) Q
        !            94:        S Y=X,X=10-X ; convert Kernel to DTM priority
        !            95:        I $P($ZVER,"/",2)<4 V 64+$J:50:$C(128+X) Q
        !            96:        S X=X*2+128 zc #changepriority(X) V 2:5:$C(X)
        !            97:        Q
        !            98: PRGMODE        ;
        !            99:        W ! S ZTPAC=$S($D(^VA(200,+DUZ,.1))#10:$P(^(.1),"^",5),1:""),XUVOL=^%ZOSF("VOL")
        !           100:        I ZTPAC]"" X ^%ZOSF("EOFF") R !,"PAC: ",X:60 S X=$ZCONVERT(X,"U") X ^%ZOSF("EON") I X'=ZTPAC W "??",*7 Q
        !           101:        I $D(^XMB(3.7,0)),$D(DUZ)#2 S XMB="XUPROGMODE",XMB(1)=DUZ,XMB(2)=$I D ^XMB:$D(^XMB(3.7,0)) K ^XMB(3.7,DUZ,100,$I),^XUSEC(0,"CUR",DUZ,+^XUTL("XQ",$J,0))
        !           102:        K ZTPAC,X,XMB
        !           103:        X ^%ZOSF("UCI") S XUCI=Y,XQZ="PRGM^ZUA[MGR]",XUSLNT=1 D DO^%XUCI
        !           104:        U:$I>99 $I:IXXLATE=2 D ^%mshell
        !           105:        ;
        !           106: UCICHECK(X)    ; The call to ns^%m for Version 4 is necessary
        !           107:        ; only if namespaces are password protected.
        !           108:        ZETRAP BADUCI N CURUCI
        !           109:        S X=$P(X,",")
        !           110:        S X=$ZCONVERT(X,"U"),CURUCI=$ZNSPACE
        !           111:        I $P($ZVER,"/",2)<4 ZNSPACE X ZNSPACE CURUCI Q X
        !           112:        D ns^%m(X,1) S ^UTILITY($J)="" ; *** force error if dataset not mounted
        !           113:        I CURUCI'=X D ns^%m(CURUCI,1)
        !           114:        Q X
        !           115: BADUCI ; set flag and return to old namespace
        !           116:        S Y=0
        !           117:        I $P($ZVER,"/",2)<4 ZNSPACE CURUCI
        !           118:        E  D ns^%m(CURUCI,1)
        !           119:        Q Y
        !           120:        ;
        !           121: SETENV ; Set environment
        !           122:        S XUENV=X_"^"
        !           123:        I $P($ZVER,"/",2)>4.2 V 2:374:$C($L(X))_X:$J#256 Q
        !           124:        S X1=X,X=$J D JSTAT^%ZOSV1
        !           125:        V 0:JA+374:$C($L(X1))_X1
        !           126:        Q
        !           127: GETENV ; Get environment
        !           128:        S Y=$ZNSPACE_"^"_^%ZOSF("VOL")_"^^"_^%ZOSF("VOL")
        !           129:        Q
        !           130: TRMON  ;Turn terminators on
        !           131:        U $I:IXINTERP=2 N % S %=$$getall^%mixinterp()
        !           132:        I $A(%)'=35 F %=0:1:31,127 D set^%mixinterp(%,35)
        !           133:        Q
        !           134: TRMOFF ;Turn terminators off
        !           135:        U $I:IXINTERP=$S($I>99:1,1:0)
        !           136:        Q
        !           137: PASSALL        ;Pass all characters
        !           138:        U $I:IXINTERP=3 N % S %=$$getall^%mixinterp()
        !           139:        I $A(%)'=18 F %=0:1:31,127 D set^%mixinterp(%,18)
        !           140:        Q
        !           141: NOPASS ;Do not pass all characters
        !           142:        D TRMOFF
        !           143:        Q
        !           144:        ;
        !           145: HFSREW(IO,IOPAR)       ;Rewind Host File
        !           146:        S $ZT="HFSRWERR"
        !           147:        U IO:(LFA=0)
        !           148:        Q 1
        !           149: HFSRWERR       ;Error encountered.
        !           150:        Q 0
        !           151: LOGRSRC(OPT)   ;record resource usage in ^XUCP
        !           152:        Q
        !           153: SETTRM(X)      ;Turn on specified terminators.
        !           154:        U $I:TERM=X
        !           155:        Q 1

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>