10 REM > BLib.StringIO 1.01 12Apr2005
   20 :
   30 REM String I/O routines
   40 REM ===================
   50 REM v1.00 - uses slow serial file access
   60 REM v1.01 - checks for crlf and lfcr
   70 :
   80 :
   90 REM rd(in%) - Read a <cr>, <lf>, <cr><lf>, <lf><cr> or <eof> terminated string from in%
  100 REM -----------------------------------------------------------------------------------
  110 DEFFNrd(i%):LOCALA%,B%,A$:REPEAT:A%=BGET#i%:IFA%<>10ANDA%<>13:A$=A$+CHR$A%
  120 UNTILA%=10ORA%=13OREOF#i%:IFNOTEOF#i%:B%=BGET#i%:IFA%=B%OR(B%<>13ANDB%<>10):PTR#i%=PTR#i%-1
  130 =A$
  140 :
  150 :
  160 REM wr(out%,A$) - Write A$ to out%. A$ must include required terminator
  170 REM -------------------------------------------------------------------
  180 DEFPROCwr(o%,A$):IFA$="":ENDPROC
  190 FORA%=1TOLENA$:BPUT#o%,ASCMID$(A$,A%,1):NEXT:ENDPROC
  200 :