Changeset 636 for FOIAVistA/tag/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/_ZIS1.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/_ZIS1.m
r628 r636 1 %ZIS1 ;SFISC/AC,RWF -- DEVICE HANDLER (DEVICE INPUT) ;1/24/08 16:06 2 ;;8.0;KERNEL;**18,49,69,104,112,199,391,440**;JUL 10, 1995;Build 13 3 ;Per VHA Directive 2004-038, this routine should not be modified 1 %ZIS1 ;SFISC/AC,RWF -- DEVICE HANDLER (DEVICE INPUT) ;07/07/2005 15:48 2 ;;8.0;KERNEL;**18,49,69,104,112,199,391**;JUL 10, 1995 4 3 MAIN ;Called from %ZIS with a GO 5 4 I '$D(IOP),$D(^%ZIS(1,%E,0)),'$P(^(0),"^",3) S %A=%H,%Z=^(0) D L2^%ZIS2 G EXIT … … 7 6 I '$D(IOP),$D(IO("Q")),POP D AQUE^%ZIS3 K:%=2 IO("Q") S:%=2 %ZISB=$S(%IS'["N":2,1:0) I %=-1 S POP=1 G EXIT 8 7 S %E=%H,POP=0,%IS=%ZIS ;Reset %IS from %ZIS 9 I %IS'["Q",$D(XQNOGO) S POP=1 W:'$D(IOP) !, $C(7),"OUTPUT IS NEVER ALLOWED FOR THIS OPTION" G EXIT8 I %IS'["Q",$D(XQNOGO) S POP=1 W:'$D(IOP) !,*7,"OUTPUT IS NEVER ALLOWED FOR THIS OPTION" G EXIT 10 9 D IOP:$D(IOP),R:'$D(IOP) 11 10 G EXIT:$D(DTOUT)!$D(DUOUT)!(POP&$D(IOP)),L1:POP&'$D(IOP) 12 11 D LKUP I %A'>0 S POP=1 D:'$D(DUOUT) MSG1 K DUOUT 12 I POP G EXIT:$D(IOP),L1:'$D(IOP) 13 13 I '$D(^%ZIS(1,%A,0)) D MSG1 K %ZISIOS S POP=1 14 14 I POP G EXIT:$D(IOP),L1:'$D(IOP) … … 16 16 I $D(%ZIS("S")) N Y S Y=%E D XS^ZISX S:'$T POP=1 G G:POP 17 17 W:'$D(IOP)&($P(%Z,"^",2)'=$I)&($P(%Z1,"^")]"") " ",$P(%Z1,"^") 18 D L2^%ZIS2 ;Call18 D L2^%ZIS2 19 19 G G L1:POP&'$D(IOP)&'($D(DTOUT)!$D(DUOUT)) ;Didn't get it 20 ;For type[TRM reset $X & $Y 21 I 'POP,%ZTYPE["TRM",IO]"",$D(IO(1,IO)) U IO S:'(IO=IO(0)&'$D(IO("S"))&'$D(ZTQUEUED)) $X=0,$Y=0 20 22 ; 21 EXIT ; 22 I POP G EX2 ;Did not get the device. 23 ;For type[TRM reset $X & $Y 24 I %ZTYPE["TRM",IO]"",$D(IO(1,IO)) U IO S:'(IO=IO(0)&'$D(IO("S"))&'$D(ZTQUEUED)) $X=0,$Y=0 23 EXIT I $D(IO)#2,IO]"",$D(IO(1,IO))#2,$D(%Z1),$P(%Z1,"^",11) S IO(1,IO,"NOFF")=1 25 24 ;Do count of number of times device opened. Field 51. 26 I $L($G(IO)),$D(IO(1,IO))#2, $G(%ZISIOS) D25 I $L($G(IO)),$D(IO(1,IO))#2,'POP,$G(%ZISIOS) D 27 26 . S $P(^(5),"^",1)=$P($G(^%ZIS(1,%ZISIOS,5)),"^",1)+1 28 I %ZIS["H" S IO(0)=IO,IO("HOME")=%ZISIOS_"^"_IO ;Make home device 29 I '$D(IO("Q")),$D(%ZISLOCK) S ^XUTL("XQ",$J,"lock",%ZISIOS)=%ZISLOCK 30 I $D(IO)#2,IO]"",$D(IO(1,IO))#2,$D(%Z1),$P(%Z1,"^",11) S IO(1,IO,"NOFF")=1 31 EX2 ; 27 I 'POP,%ZIS["H" S IO(0)=IO,IO("HOME")=%ZISIOS_"^"_IO ;Make home device 32 28 I %IS'[0,$G(IO(0))]"" U IO(0) ;Make sure return with home active 33 29 G SETVAR:'POP!(%IS["T"),KILVAR … … 37 33 S %IS=%IS_%X K IOP W %X D SETQ Q 38 34 ;Get ready to ask user for device 39 R I %IS["Q",$D(XQNOGO) W !, $C(7),"AT THIS TIME, OUTPUT MUST BE QUEUED"35 R I %IS["Q",$D(XQNOGO) W !,*7,"AT THIS TIME, OUTPUT MUST BE QUEUED" 40 36 S %A=$S($D(%IS("B")):%IS("B"),1:"HOME") ;Setup default 41 37 I %IS["P",%A="HOME",$D(^%ZIS(1,%E,99)),$D(^%ZIS(1,+^(99),0)) S %A=$P(^(0),"^",1) … … 60 56 I %X'=%ZISVT S %ZISVT=%X D VTLKUP^%ZIS S %A=%E Q:%A>0 ;uppercase lookup 61 57 N %XX,%YY S %XX=%X D 1^%ZIS5 S %A=+%YY Q 62 SBR K DFOUT,DTOUT,DUOUT R %X:$S($D(DTIME)#2:DTIME,1:300) E W $C(7)S DTOUT=1 Q58 SBR K DFOUT,DTOUT,DUOUT R %X:$S($D(DTIME)#2:DTIME,1:300) E W *7 S DTOUT=1 Q 63 59 S:%X="."!(%X="^") DUOUT=1,%X="" Q 64 60 LC S %X=$$UP(%X) … … 66 62 LOW(%) Q $TR(%,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz") 67 63 UP(%) Q $TR(%,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ") 68 ; 69 ;Call/Return % = 1 (yes), 2 (no) -1 (^) 70 YN W "? ",$P("Yes// ^No// ",U,%) 71 RYN R %X:$S($D(DTIME):DTIME,$D(%ZISDTIM):%ZISDTIM,1:300) E S DTOUT=1,%X=U W $C(7) 64 YN W "? ",$P("YES// ^NO// ",U,%) 65 RYN R %X:$S($D(DTIME):DTIME,$D(%ZISDTIM):%ZISDTIM,1:300) E S DTOUT=1,%X=U W *7 72 66 S:%X]""!'% %=$A(%X),%=$S(%=89:1,%=121:1,%=78:2,%=110:2,%=94:-1,1:0) 73 I '%,%X'?."?" W $C(7),"??",!?4,"ANSWER 'Yes' OR 'No': " G RYN 74 W:$X>73 ! W $P(" (Yes)^ (No)",U,%) 75 Q 76 MSG1 I '$D(IOP) W ?20,$C(7)," [DEVICE DOES NOT EXIST]" 67 I '%,%X'?."?" W *7,"??",!?4,"ANSWER 'YES' OR 'NO': " G RYN 68 W:$X>73 ! W $P(" (YES)^ (NO)",U,%) Q 69 MSG1 I '$D(IOP) W ?20,*7," [DEVICE DOES NOT EXIST]" 77 70 Q 78 71 SETVAR ;Come here to setup the variables for the selected device … … 84 77 S IOT=%ZTYPE,IOST(0)=%ZISIOST(0),IOST=%ZISIOST,IOPAR=%ZISOPAR,IOUPAR=%ZISUPAR,IOHG=%ZISHG 85 78 S:IOF="" IOF="#" ;See that IOF has something 86 K IOCPU S:$D(%ZISCPU) IOCPU=%ZISCPU 87 G KIL 79 K IOCPU S:$D(%ZISCPU) IOCPU=%ZISCPU G KIL 88 80 ; 89 81 KILVAR ;Come here to restore the calling variables … … 97 89 S:%IS["T" IO("T")=1 K %ZIS,%IS,%A,%E,%H,%ZISOS,%ZISV,IOP 98 90 K2 K %I,%X,%Y,%Z,%Z1,%Z91,%Z95,%ZTYPE,%ZTIME 99 K %ZISCHK,%ZISCPU,%ZISI,%ZISR,%ZISVT,%ZISB,%ZISX,ZISI,%ZISHGL,%ZISHP,%ZISIO,%ZISIOS,%ZISIOM 100 K %ZISIOF,%ZISIOSL,%ZISIOBS,%ZISIOST,%ZISIOST(0),%ZISTO,%ZISTP,%ZISHG,%ZISSIO,%ZISOPEN,%ZISOPAR,%ZISUPAR 101 K %ZISMY,%ZISQUIT,%ZISLOCK 91 K %ZISCHK,%ZISCPU,%ZISI,%ZISR,%ZISVT,%ZISB,%ZISX,ZISI,%ZISHGL,%ZISHP,%ZISIO,%ZISIOS,%ZISIOM,%ZISIOF,%ZISIOSL,%ZISIOBS,%ZISIOST,%ZISIOST(0),%ZISTO,%ZISTP,%ZISHG,%ZISSIO,%ZISOPEN,%ZISOPAR,%ZISUPAR 92 K %ZISMY,%ZISQUIT 102 93 Q
Note:
See TracChangeset
for help on using the changeset viewer.