10 REM > BLib.Ttxt
   20 REM Teletext functions
   30 :
   40 DEFPROCttx_show(D%):VDU12,31,39,24,D%?999OR&80,32,30,11
   50 FORA%=0TO998:VDUD%?A%OR&80:NEXT:ENDPROC
   60 :
   70 DEFPROCttx_type(fn$):in%=OPENIN(fn$):IFin%=0:ENDPROC
   80 LOCALN%:REPEAT:VDUBGET#in%OR&80:N%=N%+1:UNTILN%>959OREOF#in%
   90 CLOSE#in%:in%=0:ENDPROC
  100 :
  110 DEFPROCttx_page(ch%)
  120 LOCALN%:REPEAT:VDUBGET#ch%OR&80:N%=N%+1:UNTILN%>959OREOF#ch%
  130 IFNOTEOF#ch%:REPEAT:A%=BGET#ch%:N%=N%+1:UNTILN%>1023OREOF#ch%
  140 ENDPROC
  150 :
  160 DEFPROCttx_display(D%):LOCALB%,R%
  170 CLS:R%=FNttx_rows(D%):IFR%<25:PRINTFNttx_title(D%,R%)
  180 FORA%=1TO4:B%=D%?(230*A%):D%?(230*A%)=13:PRINT$(D%+230*(A%-1));
  190 D%?(230*A%)=B%:NEXT:IFR%<24:ENDPROC
  200 A%=D%+959-40*(R%=25):B%=?A%:?A%=13:PRINT$(D%+920);:?A%=B%:ENDPROC
  210 :
  220 DEFFNttx_rows(D%):A%=919:REPEATA%=A%+1:UNTILA%>999ORD%?A%<32:=A%DIV40
  230 :
  240 DEFFNttx_title(D%,R%):LOCALB%:D%=D%+920-40*(R%=24)
  250 A%=D%-1:REPEATA%=A%+1:UNTIL?A%<32:B%=?A%:?A%=13:A$=$D%:?A%=B%:=A$
  260 :