HLCSDL2 ;ALB/MTC/JC - X3.28 LOWER LAYER PROTOCOL UTILITIES 2.2 - 2/28/95 ;04/25/96 10:52 [ 04/02/2003 8:37 AM ]
Source file <HLCSDL2.m>
Package | Total | Call Graph |
---|---|---|
Health Level Seven | 3 | LOG^HLCSDL1 TRACE^HLCSDL2 ($$CHKSUM,$$CHKSUM2,$$READ)^HLCSUTL |
Package | Total | Caller Graph |
---|---|---|
Health Level Seven | 3 | HLCSDL HLCSDL1 HLCSDL2 |
Name | Comments | DBIA/ICR reference |
---|---|---|
BLOOP | ;-- block read loop
|
|
RETRY | ||
HEXQ | ||
BUILD(HLTEXT,HLSEQ,HLEND,HLHEAD,HLFOOT) | ;-- This function will build the block to write.
; INPUT : HLTEXT - Array to write/format ; : HLSEQ - Sequence in message ; : HLEND - ETX or ETB ; : HLHEAD - Passed by reference - will be the header portion ; : HLFOOT - Passed by reference - will be the footer portion |
|
READBK(HLTEXT,LEN,BLOCK,CHKSUM,BTERM) | ; This function will read a block of data from the input device
; and store the result in the array specified by HLTEXT. ; INPUT : HLTEXT - Array reference to store data ; LEN - Passed by reference will get message lenght ; BLOCK - Passed by refence will get message block # ; CHKSUM - Passed by refence will get message BCC ; BTERM - Passed by reference will block termination char ; OUTPUT : 1 - OK, 0 - Fails ; If EOT is encountered HLTEXT=EOT ; If TimeOut is encountered then HLTEXT="-1^TIMEOUT" |
|
HEXCON(%) | ;-- converts a decimal #<128 to a two byte hex #
; INPUT : % - Decimal to convert |
|
SENDACK(HLBK) | ;-- This function will send an ack for the block specified
; by the parameter HLBK. ; INPUT : HLBK current sequence (block) ; OUTPUT: NONE |
|
TRACE(HLSTATE) | ;-- This function is used during for debug. It will print
; the current state of the X3.28 protocol. Each state is passed in ; through the variable HLSTATE |
|
RDENQ | ||
VALID(HLTEXT,HLBLK,LEN,BLOCK,CHKSUM,BTERM) | ;-- This function will validate the incoming message as in should
; conform to the X3.28 protocol. No other error checking is perfomred ; for this validation. If this function is successful a ; 1 is returned else 0. ; INPUT : HLTEXT - The block that was read in from the device ; : HLBLK - Current block expected ; : LEN - xmitted length ; : BLOCK - xmitted block number ; : CHKSUM - xmitted checksum ; : BTERM - Block termination char (ETX or ETB) ; OUTPUT : 1 ok, 0 fails |
|
READACK(HLBK) | ;-- This function will read the input device for an ackN
; specified by HLBK. ; INPUT : HLBK - Expected AckN ; OUTPUT: 1- Ok 0-Fails |
|
VALIDQ | ||
EOT | ;-- this function will send an EOT to the secondary station
; to end the master/stave relationship. |
|
BLOOP2 | ||
ENQ | ;-- this function will send an ENQ to the secondary station
; to establish a master/slave relationship for transmissions. |
|
RUN() | ;-- This function will determine if this occurance of the LLP
; should still be running. ; INPUT : NONE |
|
RDACKQ | ||
READBKQ | ||
READENQ() | ;-- This function will read the input device for an ENQ
|
|
SENDNAK | ;-- This function will send an nack for the block specified
; by the parameter HLBK. ; OUTPUT: NONE |
Name | Field # of Occurrence |
---|---|
LOG^HLCSDL1 | SENDNAK+7, SENDACK+9, READACK+11, READACK+15, RETRY+3, RETRY+9, READBK+15, READBK+19, READBK+21, READBK+26 , BLOOP2+5, BLOOP2+12, BLOOP2+21, ENQ+5, EOT+5 |
TRACE^HLCSDL2 | READACK+12, RETRY+4 |
$$CHKSUM^HLCSUTL | BUILD+12 |
$$CHKSUM2^HLCSUTL | VALID+21 |
$$READ^HLCSUTL | READACK+10, READACK+14, RETRY+2, RETRY+8, READBK+14, READBK+19, READBK+21, READBK+25, BLOOP2+4, BLOOP2+11 , BLOOP2+20 |
Name | Line Occurrences |
---|---|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: WRITE |
|
Function Call: READ |
|
Function Call: WRITE |
|
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^%ZOSF("LPC" | BUILD+18, VALID+23 |
^HLCS(870 - [#870] | RUN+9, RUN+11* |
Name | Line Occurrences |
---|---|
$$HEXCON | BUILD+20, VALID+25 |
BLOOP2 | BLOOP2+16 |
HEXQ | HEXCON+6, HEXCON+7 |
RDACKQ | READACK+13, READACK+16 |
RDENQ | RETRY+5, RETRY+10 |
READBKQ | READBK+17, READBK+19, READBK+23, READBK+28, BLOOP2+14 |
RETRY | RETRY+6 |
VALIDQ | VALID+27, VALID+29, VALID+31 |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
% | HEXCON~, HEXCON+6, HEXCON+7, HEXCON+8, HEXCON+9 |
BLOCK | READBK~, READBK+12*, READBK+31*, VALID~, VALID+23, VALID+31 |
BTERM | READBK~, READBK+12*, BLOOP2+18*, VALID~, VALID+23 |
CHKSUM | READBK~, READBK+12*, BLOOP2+23*, VALID~, VALID+27 |
H | HEXCON+4~, HEXCON+8*, HEXCON+9* |
H1 | HEXCON+4~, HEXCON+6*, HEXCON+7*, HEXCON+8*, HEXQ |
H2 | HEXCON+4~, HEXCON+6*, HEXCON+7*, HEXCON+9*, HEXQ |
HLACKN | SENDACK+5~, SENDACK+7*, SENDACK+8, SENDACK+9, READACK+5~, READACK+8*, READACK+16 |
HLBCC | VALID+18~, VALID+21*, VALID+23, VALID+29 |
HLBCC1 | VALID+18~, VALID+23*, VALID+25*, VALID+27 |
HLBK | SENDACK~, SENDACK+7, READACK~, READACK+8 |
HLBL | BUILD+10~, BUILD+14*, BUILD+18, BUILD+22 |
HLBLK | VALID~, VALID+31 |
>> HLCHK | BUILD+12*, BUILD+16, BUILD+17, BUILD+18 |
>> HLDBLOCK | READACK+10, READACK+14, RETRY+2, RETRY+8, READBK+14, READBK+19, READBK+21, READBK+25, BLOOP2+4, BLOOP2+11 , BLOOP2+20 |
>> HLDLE | SENDACK+8, SENDACK+9, READACK+13 |
>> HLDONE | BLOOP2+3*, BLOOP2+4, BLOOP2+6*, BLOOP2+8* |
>> HLDP | RUN+9, RUN+11 |
HLEND | BUILD~, BUILD+18, BUILD+22 |
>> HLENQ | RETRY+6, ENQ+4, ENQ+5 |
>> HLEOT | READBK+19, EOT+4, EOT+5 |
>> HLETB | BLOOP2+18 |
>> HLETX | BLOOP2+18 |
HLFOOT | BUILD~, BUILD+22* |
HLHEAD | BUILD~, BUILD+22* |
HLHEX | BUILD+10~, BUILD+20*, BUILD+22 |
>> HLI | READBK+30*, BLOOP+3, BLOOP2*, BLOOP2+7 |
>> HLJ | BLOOP2+3*, BLOOP2+7* |
HLLEN | VALID+18~ |
>> HLLN | BUILD+16*, BUILD+17*, BUILD+18, BUILD+22 |
>> HLNAK | SENDNAK+6, SENDNAK+7 |
HLSEQ | BUILD~, BUILD+14 |
>> HLSOH | READBK+21 |
HLSTATE | TRACE~, TRACE+9 |
>> HLSTX | READBK+23, BUILD+22 |
>> HLTERM | SENDNAK+6, SENDNAK+7, SENDACK+8, SENDACK+9, READACK+16, RETRY+10, BLOOP2+8, BLOOP2+16, BUILD+22, ENQ+4 , ENQ+5, EOT+4, EOT+5 |
HLTEXT | READBK~, READBK+17, READBK+19, READBK+21, READBK+28, BLOOP2, BLOOP2+7, BLOOP2+14, BUILD~, BUILD+12 , VALID~, VALID+21 |
>> HLTIMA | READACK+10, READACK+14, RETRY+2, RETRY+8 |
>> HLTIMB | READBK+14, READBK+19, READBK+21, READBK+25, BLOOP2+4, BLOOP2+11, BLOOP2+20 |
>> HLTRACE | RUN+11, TRACE+7 |
HLTRM | READACK+5~, READACK+7*, READACK+10, READACK+11, READACK+12, READACK+13, READACK+14, READACK+15, READACK+16, READENQ+5~ , RETRY*, RETRY+2, RETRY+3, RETRY+4, RETRY+6, RETRY+8, RETRY+9, RETRY+10, READBK+11~, READBK+14 , READBK+15, READBK+19, READBK+21, READBK+23, READBK+25, READBK+26, BLOOP2+2, BLOOP2+4, BLOOP2+5, BLOOP2+8 , BLOOP2+11, BLOOP2+12, BLOOP2+16, BLOOP2+18, BLOOP2+20, BLOOP2+21 |
HLX | READENQ+5~, READENQ+7*, RETRY+5*, READBK+11~, READBK+14*, READBK+15, READBK+17, READBK+19*, READBK+21*, READBK+25* , READBK+26, READBK+28, READBK+31, BLOOP+3*, BLOOP2, BLOOP2+4*, BLOOP2+5, BLOOP2+6, BLOOP2+7, BLOOP2+11* , BLOOP2+12, BLOOP2+14, BLOOP2+20*, BLOOP2+21, BLOOP2+23 |
IO | SENDNAK+5, SENDACK+8, ENQ+3, EOT+3 |
IO(0 | RUN+11, TRACE+8 |
LEN | READBK~, READBK+12*, READBK+31*, VALID~, VALID+23, VALID+29 |
RESULT | READACK+5~, READACK+7*, READACK+17*, RDACKQ, READENQ+5~, RETRY*, RETRY+11*, RDENQ, READBK+11~, READBK+12* , READBK+19*, BLOOP2+25*, READBKQ, RUN+5~, RUN+7*, RUN+9*, RUN+11*, RUN+13, VALID+18~, VALID+19* , VALID+33*, VALIDQ |
U | READACK+12, RETRY+4, BUILD+16, BUILD+17, BUILD+18, RUN+9, RUN+11, VALID+23, VALID+29 |
X | READACK+5~, READACK+10*, READACK+11, READACK+12, READACK+14*, READACK+15, READACK+16, READENQ+5~, RETRY+2*, RETRY+3 , RETRY+4, RETRY+8*, RETRY+9, BUILD+10~, BUILD+18*, RUN+11*, VALID+18~, VALID+23* |
Y | READACK+5~, READENQ+5~, BUILD+10~, BUILD+20, VALID+18~, VALID+23 |