1 | HLCSDR ;ALB/RJS - INITIALIZE VARIABLES AND OPEN DEVICE FOR RECEIVER ;07/20/99 14:00
|
---|
2 | ;;1.6;HEALTH LEVEL SEVEN;**2,14,49,57**;Oct 13, 1995
|
---|
3 | ;
|
---|
4 | INIT ;
|
---|
5 | S HLZER=0
|
---|
6 | I '$D(HLDP)&($G(%)'="") S HLDP=% ;LAUNCHED FROM VMS
|
---|
7 | I '$D(HLDP) Q
|
---|
8 | D DT^DICRW
|
---|
9 | I HLDP'>0 S HLDP=$O(^HLCS(870,"B",HLDP,""))
|
---|
10 | I HLDP'>0 G EXIT
|
---|
11 | ;HLDP IEN of LOGICAL LINK file #870
|
---|
12 | S HLDNODE=$G(^HLCS(870,HLDP,0))
|
---|
13 | S HLPARM=$G(^HLCS(870,HLDP,200))
|
---|
14 | ;pointer to DEVICE file
|
---|
15 | S HLDEVPTR=$P(HLPARM,U)
|
---|
16 | G EXIT:HLDEVPTR'>0
|
---|
17 | S HLDEVICE=$P($G(^%ZIS(1,HLDEVPTR,0)),"^",1)
|
---|
18 | G EXIT:HLDEVICE=""
|
---|
19 | D FILE
|
---|
20 | INIT1 ;
|
---|
21 | G END:'HLZER
|
---|
22 | S HLZER=0
|
---|
23 | D OPEN G INIT1
|
---|
24 | FILE ;
|
---|
25 | D NOW^%DTC
|
---|
26 | L +^HLCS(870,HLDP,0):DTIME I '$T G FILE
|
---|
27 | ;9=Time Started, 10=Time Stopped, 11=Task Number
|
---|
28 | ;14=Shutdown LLP, 3=Shutdown LLP, 18=Gross Errors
|
---|
29 | I '$D(ZTSK) S ZTSK=""
|
---|
30 | S DIE="^HLCS(870,",DA=HLDP,DR="9////^S X=%;10////@;11////^S X=ZTSK;14////0;3////SH;18////@" D ^DIE K DIE,DA,DR
|
---|
31 | L -^HLCS(870,HLDP,0)
|
---|
32 | OPEN ;
|
---|
33 | I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="D ERROR^HLCSDR"
|
---|
34 | E S X="ERROR^HLCSDR",@^%ZOSF("TRAP")
|
---|
35 | OPEN1 I $P($G(^HLCS(870,HLDP,0)),U,15) G END
|
---|
36 | S HLST="OPEN" D STATUS(HLST,HLDP)
|
---|
37 | S IOP=HLDEVICE,%ZIS=0 D ^%ZIS
|
---|
38 | I POP S HLST="OPENFAIL" D STATUS(HLST,HLDP) H 5 G OPEN1
|
---|
39 | INIT2 ;
|
---|
40 | ;Re-transmission attempts, Node, Hang Time, Start character,
|
---|
41 | ;End character, LLP Version Number
|
---|
42 | S HLDAPP=$P(HLDNODE,U,1)
|
---|
43 | S HLRETPRM=$P(HLPARM,U,2),HLDBSIZE=$P(HLPARM,U,3),HLDREAD=$P(HLPARM,U,4),HLDWRITE=$P(HLPARM,U,5),HLDSTRT=$P(HLPARM,U,6),HLDEND=$P(HLPARM,U,7),HLDVER=$P(HLPARM,U,8)
|
---|
44 | ;Defaults
|
---|
45 | I HLRETPRM="" S HLRETPRM=5
|
---|
46 | I HLDREAD="" S HLDREAD=10
|
---|
47 | I HLDWRITE="" S HLDWRITE=2
|
---|
48 | I HLDSTRT="" S HLDSTRT=11
|
---|
49 | I HLDEND="" S HLDEND=28
|
---|
50 | I HLDVER="" S HLDVER=21
|
---|
51 | I HLDBSIZE'>1 S HLDBSIZE=245
|
---|
52 | ;Set up Device Params
|
---|
53 | S X=255 U IO X ^%ZOSF("EOFF"),^%ZOSF("RM"),^%ZOSF("TRMON")
|
---|
54 | START ;
|
---|
55 | D START^HLCSDR1(HLDP,HLRETPRM,HLDREAD,HLDWRITE,HLDSTRT,HLDEND,HLDVER,HLDBSIZE)
|
---|
56 | END ;
|
---|
57 | I '$G(HLDP) G EXIT
|
---|
58 | D NOW^%DTC
|
---|
59 | L +^HLCS(870,HLDP,0):DTIME I '$T G END
|
---|
60 | ;10=Time Stopped,9=Time Started,11=Task Number
|
---|
61 | S DIE="^HLCS(870,",DA=HLDP,DR="10////^S X=%;9////@;11////@" D ^DIE K DIE,DA,DR
|
---|
62 | L -^HLCS(870,HLDP,0)
|
---|
63 | EXIT ;
|
---|
64 | D ^%ZISC
|
---|
65 | K HLDNODE,HLDEVPTR,HLDEVICE,HLRETPRM,HLDAPP,X,HLDEND,HLDSTRT,HLDVER,HLDREAD,HLDWRITE,HLTRACE,ZTSK,HLDBSIZE,HLPARM
|
---|
66 | Q
|
---|
67 | STATUS(HLST,HLDP) ;Update field 4
|
---|
68 | ;HLST=Current Status
|
---|
69 | ;HLDP=IEN of Logical Link
|
---|
70 | S DIE="^HLCS(870,",DA=HLDP,DR="4///^S X=HLST" D ^DIE K DIE,DA,DR
|
---|
71 | Q
|
---|
72 | ERROR ;Trap disconnect & read errors
|
---|
73 | I $$EC^%ZOSV["DSCON"!($$EC^%ZOSV["data set hang-up") S HLST="DSCONECT" D STATUS(HLST,HLDP) H 3 S HLZER=1 I 1
|
---|
74 | E D ^%ZTER
|
---|
75 | S IO("C")=1 D ^%ZISC
|
---|
76 | G UNWIND^%ZTER
|
---|
77 | Q
|
---|