File:  [Coherent Logic Development] / freem_fileman / USER / DINVDTM.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:21 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    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>