DINZDTM ;SFISC/HGL,AL-SETS %ZOSF FOR DATATREE ;2:32 PM  1 Oct 1998
 ;;22.0;VA FileMan;;Mar 30, 1999;Build 1
 ;Per VHA Directive 10-93-142, this routine should not be modified.
 K ^%ZOSF("MASTER"),^%ZOSF("SIGNOFF")
 F I=1:2 S Z=$P($T(Z+I),";;",2) Q:Z=""  S X=$P($T(Z+1+I),";;",2,99) S ^%ZOSF(Z)=X
 K I,X,Z
 Q
V3 ;
 S ^%ZOSF("TRAP")="$ZE=X"
 S ^%ZOSF("PROGMODE")="S Y=0"
 Q
Z ;;
 ;;OS;; Operating System Name
 ;;DTM-PC^9
 ;;ACTJ;; Active Jobs
 ;;S Y=$$ACTJ^%ZOSV
 ;;AVJ;; Available Jobs
 ;;S Y=$$AVJ^%ZOSV
 ;;MAXJ;; Maximum # of Jobs
 ;;G MAXJ^%ZOSV
 ;;BRK;; Enable Break
 ;;B 1
 ;;DEL;; Delete Routine in X
 ;;X "ZR  ZS @X"
 ;;EOFF;; Turn echo off
 ;;U $I:(echom=0)
 ;;EON;; Turn echo on
 ;;U $I:(echom=1)
 ;;EOT;; End of tape
 ;;S Y=($ZIOS=3)
 ;;ERRTN;; Error trap routine
 ;;^%ZTER
 ;;ETRP;; Set error trap to X
 ;;Q
 ;;GD;; Global Directory
 ;;G ^%gd
 ;;JOBPARAM
 ;;G JOBPAR^%ZOSV
 ;;LABOFF
 ;;U IO:(echom=0)
 ;;LOAD
 ;;S %N=0 X "ZL @X F XCNP=XCNP+1:1 S %N=%N+1,%=$T(+%N) Q:$L(%)=0  S @(DIF_XCNP_"",0)"")=%"
 ;;LPC;;
 ;;S Y=$ZCRC(X,1)
 ;;MAXSIZ;; Reset partition size
 ;;Q
 ;;NBRK;; Disable Break
 ;;B 0
 ;;NO-PASSALL
 ;;G NOPASS^%ZOSV
 ;;NO-TYPE-AHEAD;; Turn off type-ahead
 ;;U $I:(ta=0)
 ;;PARSIZ
 ;;S X=3
 ;;PASSALL
 ;;G PASSALL^%ZOSV
 ;;PRIINQ;; Find job's priority
 ;;S Y=$$PRIINQ^%ZOSV()
 ;;PRIORITY;; Set a job's priority
 ;;G PRIORITY^%ZOSV
 ;;PROGMODE;; Check if user is in programmer mode
 ;;S Y=$ZMODE
 ;;RD;; Routine Directory
 ;;G ^%rd
 ;;RESJOB
 ;;Q:'$D(DUZ)  Q:'$D(^XUSEC("XUMGR",+DUZ))  N XQZ S XQZ="^%mjob[MGR]" D DO^%XUCI
 ;;RM;; Set right margin to X ;***EDITED BY AC/SFISC***
 ;;U $I:(lmar=0:width=$S(X:X,1:$zdevfwid):wrap=(X&($I>99)))
 ;;RSEL;; Routine Select - returns number of routines in NRO
 ;;K ^UTILITY($J) S NRO=$$^%rselect W !,NRO," routines selected" S %X="^%RSET("_$J_",",%Y="^UTILITY("_$J_"," D %XY^%RCR S ^UTILITY($J)=^%RSET($J) K ^%RSET($J),%X,%Y
 ;;RSUM
 ;;ZL @X S Y=0 F %=1,3:1 S %1=$T(+%),%3=$F(%1," ") Q:'%3  S %3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y
 ;;SAVE
 ;;S XCS="F XCM=1:1 S XCN=$O(@(DIE_XCN_"")"")) Q:+XCN'=XCN  S %=^(XCN,0) Q:$E(%,1)=""$""  S:%'[$C(9) %=$P(%,"" "",1)_$C(9)_$P(%,"" "",2,999) I $E(%,1)'="";"" ZI %" X "ZR  X XCS ZS @X" S ^UTILITY("ROU",X)="" K XCS
 ;;SIZE;; Return size of routine in partition
 ;;S Y=$L($zrsource($zn))
 ;;SS;; System Status
 ;;G ^%mjob
 ;;TEST;; Routine existence test
 ;;I $ZRSTATUS(X)'=""
 ;;TMK;; Tapemark
 ;;Q
 ;;TRMOFF
 ;;G:$P($ZVER,"/",2)<4.3 TRMOFF^%ZOSV U $I:TERM=$C(13,27)
 ;;TRMON
 ;;G:$P($ZVER,"/",2)<4.3 TRMON^%ZOSV U $I:TERM=$C(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127)
 ;;TRMRD
 ;;S Y=$S('$ZIOS:$ZIOT,1:0)
 ;;TRAP;; DTM V4 only.  zetrap works for both versions
 ;;$ZT=X
 ;;TYPE-AHEAD;; Turn on type-ahead
 ;;U $I:(ta=1)
 ;;UCI;; Return current namespace in Y
 ;;S Y=$ZNSPACE
 ;;UCICHECK;;
 ;;S Y=$$UCICHECK^%ZOSV(X)
 ;;UPPERCASE
 ;;S Y=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 ;;XY;; Position cursor
 ;;S $X=DX,$Y=DY
 ;;ZD;; External date format in Y
 ;;S Y=$ZD($H,1)
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HDINZDTM   3192     printed  Sep 23, 2025@20:28:24                                                                                                                                                                                                     Page 2
DINZDTM   ;SFISC/HGL,AL-SETS %ZOSF FOR DATATREE ;2:32 PM  1 Oct 1998
 +1       ;;22.0;VA FileMan;;Mar 30, 1999;Build 1
 +2       ;Per VHA Directive 10-93-142, this routine should not be modified.
 +3        KILL ^%ZOSF("MASTER"),^%ZOSF("SIGNOFF")
 +4        FOR I=1:2
               SET Z=$PIECE($TEXT(Z+I),";;",2)
               if Z=""
                   QUIT 
               SET X=$PIECE($TEXT(Z+1+I),";;",2,99)
               SET ^%ZOSF(Z)=X
 +5        KILL I,X,Z
 +6        QUIT 
V3        ;
 +1        SET ^%ZOSF("TRAP")="$ZE=X"
 +2        SET ^%ZOSF("PROGMODE")="S Y=0"
 +3        QUIT 
Z         ;;
 +1       ;;OS;; Operating System Name
 +2       ;;DTM-PC^9
 +3       ;;ACTJ;; Active Jobs
 +4       ;;S Y=$$ACTJ^%ZOSV
 +5       ;;AVJ;; Available Jobs
 +6       ;;S Y=$$AVJ^%ZOSV
 +7       ;;MAXJ;; Maximum # of Jobs
 +8       ;;G MAXJ^%ZOSV
 +9       ;;BRK;; Enable Break
 +10      ;;B 1
 +11      ;;DEL;; Delete Routine in X
 +12      ;;X "ZR  ZS @X"
 +13      ;;EOFF;; Turn echo off
 +14      ;;U $I:(echom=0)
 +15      ;;EON;; Turn echo on
 +16      ;;U $I:(echom=1)
 +17      ;;EOT;; End of tape
 +18      ;;S Y=($ZIOS=3)
 +19      ;;ERRTN;; Error trap routine
 +20      ;;^%ZTER
 +21      ;;ETRP;; Set error trap to X
 +22      ;;Q
 +23      ;;GD;; Global Directory
 +24      ;;G ^%gd
 +25      ;;JOBPARAM
 +26      ;;G JOBPAR^%ZOSV
 +27      ;;LABOFF
 +28      ;;U IO:(echom=0)
 +29      ;;LOAD
 +30      ;;S %N=0 X "ZL @X F XCNP=XCNP+1:1 S %N=%N+1,%=$T(+%N) Q:$L(%)=0  S @(DIF_XCNP_"",0)"")=%"
 +31      ;;LPC;;
 +32      ;;S Y=$ZCRC(X,1)
 +33      ;;MAXSIZ;; Reset partition size
 +34      ;;Q
 +35      ;;NBRK;; Disable Break
 +36      ;;B 0
 +37      ;;NO-PASSALL
 +38      ;;G NOPASS^%ZOSV
 +39      ;;NO-TYPE-AHEAD;; Turn off type-ahead
 +40      ;;U $I:(ta=0)
 +41      ;;PARSIZ
 +42      ;;S X=3
 +43      ;;PASSALL
 +44      ;;G PASSALL^%ZOSV
 +45      ;;PRIINQ;; Find job's priority
 +46      ;;S Y=$$PRIINQ^%ZOSV()
 +47      ;;PRIORITY;; Set a job's priority
 +48      ;;G PRIORITY^%ZOSV
 +49      ;;PROGMODE;; Check if user is in programmer mode
 +50      ;;S Y=$ZMODE
 +51      ;;RD;; Routine Directory
 +52      ;;G ^%rd
 +53      ;;RESJOB
 +54      ;;Q:'$D(DUZ)  Q:'$D(^XUSEC("XUMGR",+DUZ))  N XQZ S XQZ="^%mjob[MGR]" D DO^%XUCI
 +55      ;;RM;; Set right margin to X ;***EDITED BY AC/SFISC***
 +56      ;;U $I:(lmar=0:width=$S(X:X,1:$zdevfwid):wrap=(X&($I>99)))
 +57      ;;RSEL;; Routine Select - returns number of routines in NRO
 +58      ;;K ^UTILITY($J) S NRO=$$^%rselect W !,NRO," routines selected" S %X="^%RSET("_$J_",",%Y="^UTILITY("_$J_"," D %XY^%RCR S ^UTILITY($J)=^%RSET($J) K ^%RSET($J),%X,%Y
 +59      ;;RSUM
 +60      ;;ZL @X S Y=0 F %=1,3:1 S %1=$T(+%),%3=$F(%1," ") Q:'%3  S %3=$S($E(%1,%3)'=";":$L(%1),$E(%1,%3+1)=";":$L(%1),1:%3-2) F %2=1:1:%3 S Y=$A(%1,%2)*%2+Y
 +61      ;;SAVE
 +62      ;;S XCS="F XCM=1:1 S XCN=$O(@(DIE_XCN_"")"")) Q:+XCN'=XCN  S %=^(XCN,0) Q:$E(%,1)=""$""  S:%'[$C(9) %=$P(%,"" "",1)_$C(9)_$P(%,"" "",2,999) I $E(%,1)'="";"" ZI %" X "ZR  X XCS ZS @X" S ^UTILITY("ROU",X)="" K XCS
 +63      ;;SIZE;; Return size of routine in partition
 +64      ;;S Y=$L($zrsource($zn))
 +65      ;;SS;; System Status
 +66      ;;G ^%mjob
 +67      ;;TEST;; Routine existence test
 +68      ;;I $ZRSTATUS(X)'=""
 +69      ;;TMK;; Tapemark
 +70      ;;Q
 +71      ;;TRMOFF
 +72      ;;G:$P($ZVER,"/",2)<4.3 TRMOFF^%ZOSV U $I:TERM=$C(13,27)
 +73      ;;TRMON
 +74      ;;G:$P($ZVER,"/",2)<4.3 TRMON^%ZOSV U $I:TERM=$C(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127)
 +75      ;;TRMRD
 +76      ;;S Y=$S('$ZIOS:$ZIOT,1:0)
 +77      ;;TRAP;; DTM V4 only.  zetrap works for both versions
 +78      ;;$ZT=X
 +79      ;;TYPE-AHEAD;; Turn on type-ahead
 +80      ;;U $I:(ta=1)
 +81      ;;UCI;; Return current namespace in Y
 +82      ;;S Y=$ZNSPACE
 +83      ;;UCICHECK;;
 +84      ;;S Y=$$UCICHECK^%ZOSV(X)
 +85      ;;UPPERCASE
 +86      ;;S Y=$TR(X,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 +87      ;;XY;; Position cursor
 +88      ;;S $X=DX,$Y=DY
 +89      ;;ZD;; External date format in Y
 +90      ;;S Y=$ZD($H,1)