home *** CD-ROM | disk | FTP | other *** search
/ PDA Software Library / pdasoftwarelib.iso / PSION / 1997 / 915.ZIP / IRCHAT2.OPL < prev   
Encoding:
Text File  |  1997-01-28  |  1.3 KB  |  74 lines

  1. rem irchat.opl - Martin Roberts 1997
  2. rem Modified/improved by Tim Wilde
  3. rem gwi1@cableol.co.uk
  4. proc irchat:
  5.     global rbuf$(255),tbuf$(255),dbuf$(255)
  6.     global stat%,len%,tname%,name$(255)
  7.     global k%
  8.     dinit "What do you want to be sent as your name?"
  9.     dedit name$,"Name:",20
  10.     dialog
  11.     stat%=-48 rem to start first I/O req
  12.     lopen "sir:i" rem open IrDA port
  13.     print "IRCHAT - Psion-X to exit."
  14.     print "Type message to be sent in real time."
  15.     print "Your name will be appended to the transmission."
  16.     print "(CR) starts a new line."
  17.     cursor on
  18.     tname%=1
  19.     while 1
  20.         if checkrx%: >= 0
  21.             tname%=1
  22.             style 4
  23.             print rbuf$;
  24.             style 01
  25.         endif
  26.         k%=key
  27.         if k%<>0
  28.             if k%=$200+%x
  29.                 break
  30.             endif
  31.             tbuf$=tbuf$+chr$(k%)
  32.             irsend:
  33.             if k%=13
  34.                 print ""
  35.             else
  36.                 print chr$(k%);
  37.             endif
  38.         endif
  39.     endwh
  40.     lclose
  41. endp
  42.  
  43. proc irsend:
  44.     local lenname%
  45.     lprint chr$($c0); rem BOF
  46.     if tname%=1
  47.         lprint name$
  48.         lenname%=len(name$)
  49.         while lenname%
  50.             lprint "-";
  51.             lenname%=lenname%-1
  52.         endwh
  53.         tname%=0
  54.     endif
  55.     lprint tbuf$;
  56.     if k%=13
  57.         lprint ""
  58.     endif
  59.     lprint chr$($c1); rem EOF
  60.     tbuf$=""
  61. endp
  62.  
  63. proc checkrx%:
  64.     local lstat%,prbuf%
  65.     lstat% = stat%
  66.     if lstat% <> -46 rem I/O pending
  67.         prbuf%=addr(rbuf$)
  68.         pokeb prbuf%,len%
  69.         dbuf$=rbuf$
  70.         ioa(-1,1,stat%,#uadd(prbuf%,1),len%)
  71.     endif
  72.     return lstat%
  73. endp
  74.