S
PL_
PL_
PL_TCP_READX{%}FROM{%},{%}{WTHEN\ELSE}
*
      L$$$ = {%3}
      IF L$$$ > PLIP$MAX.IO.LEN THEN
         L$$$ = PLIP$MAX.IO.LEN
      END
*
      S$ = CALLFN('00':              \
           {*FNR.55}:                             \
           OCONV({%2},'MCDX')'R%4':               \
           OCONV(L$$$,'MCDX')'R%4':               \
           '0000':                                \
           STR('00',L$$$)                         \
           )
*
      IF S$[3,4] = IPX.SOCKET.NO THEN
         RES = OCONV(S$[7,4],'MCXD')
         IF RES > 32768 THEN
            RES = RES - 65536
         END ELSE
            {%1} = S$[23,RES*2]
         END
         ERR = 0
      END ELSE
         ERR = 1
         RES = 0
      END
*
      IF NOT(ERR) AND RES >= 0 {%4}
