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 |