The '''LOC''' function returns the status of a Serial(COM) port receive buffer or the current byte position in a file. {{PageSyntax}} :: bytes% = LOC(open_number) * The parameter used is the number used in the port [[OPEN]] AS statement. * Returns 0 if the buffer is empty. Any value above 0 indicates COM has received data. * Use it in conjunction with [[INPUT$]] to get the data bytes received. * Can also be used for the current position in a file routine. See: [[SEEK]] ''Example:'' Reading and writing from a COM port opened in Basic. {{CodeStart}} '' '' {{Cl|OPEN}} "{{Cl|OPEN_COM|COM}}1: 9600,N,8,1,OP0" {{Cl|FOR (file statement)|FOR}} {{Cl|RANDOM}} {{Cl|AS}} #1 {{Cl|LEN}} = 2048 ' random mode = input and output {{Cl|DO}}: t$ = {{Cl|INKEY$}} ' get any transmit keypresses from user {{Cl|IF}} {{Cl|LEN}}(t$) {{Cl|THEN}} {{Cl|PRINT (file statement)|PRINT}} #1, t$ ' send keyboard byte to transmit buffer bytes% = {{Cl|LOC}}(1) ' bytes in buffer {{Cl|IF}} bytes% {{Cl|THEN}} ' check receive buffer for data" r$ = {{Cl|INPUT$}}(bytes%, 1) ' get bytes in the receive buffer {{Cl|PRINT}} r$; ' print byte strings consecutively to screen" {{Cl|END IF}} {{Cl|LOOP}} {{Cl|UNTIL}} t$ = {{Cl|CHR$}}(27) 'escape key exit {{Cl|CLOSE}} # '' '' {{CodeEnd}} ''See also:'' * [[PRINT]], [[OPEN COM]], [[PRINT (file statement)]] {{PageNavigation}}