Annotation of freem_fileman/DINVDTM.m, revision 1.1.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>