S
PL_
PL_
PL_ALLOC.PLCB{%},{%}{WTHEN\ELSE}
*
      S$ = CALLFN('00':         \
                  FNR.ALLOC.PLCB:            \ ;* Function code
                  OCONV({%1},'MCDX')'R%2':   \ ;* Port type
                  '00':                      \ ;* Filler
                  OCONV({%2},'MCDX')'R%4'    \ ;* Port number
                  )
*
      IF S$[3,4] = IPX.SOCKET.NO THEN
         ERR = 0
         RES = OCONV(S$[7,4],'MCXD')
         IF RES > 32768 THEN
            RES = RES - 65536
         END ELSE
            LOCATE(RES,RESOURCE.LIST,1;T$$$) ELSE
               RESOURCE.LIST<1,-1> = RES
            END
         END
      END ELSE
         ERR = 1
         RES = 0
      END
*
      IF NOT(ERR) AND RES >= 0 {%3}
