| 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
 | 
|---|