P179 ORACLE 179 Sun20 Jun ITV 1951:10 35507170NISN0$ TEXTLIB 35507170NISN0$ 150 ! END OF PLAYBACK SECTION|;151 ! |t1 52 ! GET—REPLY SUBROUTINE|q153 PRINT CUR (L-1,0) SPACE$(40) CUR(L,0) SPACE$(40) C UR(L,0) YEL NWBG RED M$;|2154 ! ENTRY FO R NO MESSAGE|r155 IF SYS(5) THEN GET K$ ELSE GOTO 155|&156 R=INSTR(1,R$,K$) : IF R=0 THEN GOTO 155 ELSE RETURN |f157 ! E ND OF GET—REPLY|r158 ! |{159 ! WAIT—FOR— SPACE—SUBROUTINE|4160 L=23 : R$=" " : M$ ="Press spacebar to continue ..." : GOSU B 151 : RETURN |i161 ! END OF WAIT—FOR—S PACE|i162 ! |v163 ! RECORD—A—SCREENFULL ROUTINE|p164 FOR L=0 TO 23|?165 FOR C= 0 TO 39|÷166 PRINT £1,PEEK(FNA(L,C)) |=167 NEXT C |<168 NEXT L |&169 IF E T HEN PRINT £1,256 : ! WE'RE USING THIS AS AN EOF MARKER|;170 RETURN |4|
P179 ORACLE 179 Sun20 Jun ITV 1905:02 35507170NISN0$ TEXTLIB 35507170NISN0$ 46 PRINT CUR(12,0) MAG "Which page would you like ?" CYA;|z47 INPUT ""P9$|(48 ! NOW A BIT OF VALIDATION|}49 ON ERROR GOT O 54|250 P9=VAL(P9$)|(51 ON ERROR GOTO | b52 IF P9>=100 AND P9<=799 THEN 57|—53 P RINT MAG "ILLEGAL PAGE NUMBER" : GOTO 46 |g54 ! P9$ WASN'T NUMERIC|z55 RESUME 56| b56 PRINT MAG """" P9$ """"" IS NOT A NU MBER!" : GOTO 46|57 ! VALID PAGE NUMBER |58 E9=0 : GOSUB 106 : IF NOT E9 THEN 6 5|759 ! |k60 PRINT MAG "PAGE NOT AVAILAB LE"|761 PRINT MAG "DO YOU WANT ANOTHER P AGE ? Y/N";|q62 GOSUB 124|;63 IF I9=1 TH EN GOTO 20 ELSE GOTO 83|{64 ! |g65 IF S9 <=4 THEN 70|e66 PRINT CHR$(12) YEL "THER E WERE ERRORS IN THE PAGE RECEIVED"||67 PRINT YEL "DO YOU WISH TO TRY AGAIN? (Y/ N) ";|r68 GOSUB 124|a69 IF I9=1 THEN GOT O 58 ELSE GOTO 83|,70 ! GOT THE PAGE : N OW DISPLAY!|171 S9=CALL(R9(4),A9)|p|
P179 ORACLE 179 Sun20 Jun ITV 1901:01 255**********— 255**********— Telesoftware and Education Project  $FXT LIBRARY This program allows you to download, save and playback, in any order, broadcast teletext pages. It therefore permits the recall at daily, weekly or larger periods the FT index, foreign exchange rates, weather details, commodity prices etc. You may assign your own seven character code to identify each page in store but you must keep a written note of these for use during recall. Only seven pages of text may be saved on one side of a tape.
P179 ORACLE 179 Sun20 Jun ITV 1900:10 123 RETURN |2124 ! SUB NPTINEFORYNAN SWE USESRANDIINPU T ""R9$|x127 I9=INSTR 1,"YN",R9$) : IF I 9=0 DHEN PRINT CHR$(7) YEL "'Y' OR gN' O NLY, PLEASE" : GOTO 126|<128 RE$JRN |712 9 ! RECORD SECTION|m130 PREPARE F1$ AS F ILE 1|?131 M=1|l132 E=0 : GOSUB 163|8133 CLOSE |i134 RETURN |4135 ! END OF RECOR D SECTION|6136 ! PLAYBACK SECTION|s137 O PEN F1$ AS FILE 1|i138 PRINT CUR(23,0) Y EL NWBG RED "Press space to display the 0age ";|c139 GET K$ : IF K$=" " GOTO 140 ELSE GOTO 138|m140 PRINT CHR$(12)|3141 FOR L=0 TO 23|:142 FOR C=0 TO 39|y143 INPUT £1,K : IF K>255 THEN E=-1 : C= 39 : L=23 ELSE @OKE FNA(L,C),K|*144 NE XT C |7141 NEXT L |!146 CLOSE |m147 PRIN T CUR(23,0) YEL NWBG RED "Press space to continue";|4148 GET K$ : IF K$=" " THEN PRINT CHR$(12) : GOTO 149 ELSE ; CHR$(7 ) : GOTO 147|149 RETURN |:|
P179 ORACLE 179 Sun20 Jun ITV 0000:01 35507170NISN0$ DXTLIB 35507170NISN0$ 1 IN DGER |{2 ! Program to download, sav e on tape and playback pages of teletext |23 ! All routines are from GRABBER and EDITOR with modifications added by S Sou th at Brighton Polytechnic 12/11/81|u4 A 9$=SPACE$(960)|+5 DEF FNA(L,C)=31744+(L/ 8.-INT(L/8.))*1024+INT(L/8.)*40+C |}6 DE F FNP(X9)=PEEK(X9)+SWAP%(PEEK(X9+1)) |*7
P179 ORACLE 179 Sun20 Jun ITV 1942:23 35507170NISN0$ $FXTLIB 35507170NISN0$ 1 INTEGER |{2 ! Program to download, sav e on tape and playback pages of teletext |23 ! All routines are from GRABBER and EDITOR with modifications added by S Sou th at Brighton Polytechnic 12/11/81|u4 A 9$=SPACE$(960)|+5 DEF FNA(L,C)=31744+(L/ 8.-INT(L/8.))*1024+INT(L/8.)*40+C |}6 DE F FNP(X9)=PEEK(X9)+SWAP%(PEEK(X9+1)) |*7 G$="124578"|z8 C$=SPACE$(40)+STRING$(40 ,8)||9 A9=FNP(FNP(SYS(12))+6)|*10 FOR I9 =1 TO 4 : R9(I9)=FNP(30942+2*(I9-1)) : N EXT I9 |*11 ! R9(I9) NOW CONTAINS THE AD DRESS OF |,12 ! SUBROUTINE I9|r13 ! |a14 ! MACHINE CODE SUBROUTINES ARE:|'15 ! R 9%(1%) = 'FINDPAGE'|£16 ! R9%(2%) = 'STA TPAGE'|—17 ! R9%(3%) = 'FETCHPAGE'|p18 ! R9%(4%) = 'DISPLAY'|!19 ! ALL OF THE AB OVE CODE SHOULD OCCUR ONCE IN YOUR PROGRAM BEFORE CAPTU- RING ANY $FLE TEXT|020 PRINT CHR$(12)|—21 ; MAG "Do yo u want to record or playback "|g|
P179 ORACLE 179 Sun20 Jun ITV 1907:51 35507170NISN0$ TFXTLIB 35507170NISN0$ 123 RETURN |2124 ! SUBROUTINE FOR Y/N AN SWER|q125 ! (USES R9$ AND I9%)|/126 INPU T ""R9$|x127 I9=INSTR(1,"YN",R9$) : IF I 9=0 THEN PRINT CHR$(7) YEL "'Y' OR gN' O NLY, PLEASE" : GOTO 126|<128 RETURN |712 9 ! RECORD SECTION|m130 PREPARE F1$ AS F ILE 1|?131 M=1|l132 E=0 : GOSUB 163|8133 CLOSE |i134 RETURN |4135 ! END OF RECOR D SECTION|6136 ! PLAYBACK SECTION|s137 O PEN F1$ AS FILE 1|i138 PRINT CUR(23,0) Y EL NWBG RED "Press space to display the page ";|c139 GET K$ : IF K$=" " GOTO 140 ELSE GOTO 138|m140 PRINT CHR$(12)|3141 FOR L=0 TO 23|:142 FOR C=0 TO 39|y143 INPUT £1,K : IF K>255 THEN E=-1 : C= 39 : L=23 ELSE POKE FNA(L,C),K|*144 NE XT C |7145 NEXT L |!146 CLOSE |m147 PRIN T CUR(23,0) YEL NWBG RED "Press space to continue";|4148 GET K$ : IF K$=" " THEN PRINT CHR$(12) : GOTO 149 ELSE ; CHR$(7 ) : GOTO 147|149 RETURN |:|
P179 ORACLE 179 Sun20 Jun ITV 1905:41 35507170NISN0$ TEXTLIB 35507170NISN0$ 22 PRINT MAG "pages ? R/P" CYA;|÷23 INPU T ""R$|k24 IF R$="R" THEN GOTO 36|+25 IF R$="P" THEN GOTO 26|)26 PRINT CUR(4,0) MAG "Which of your recorded pages would" |/27 PRINT CUR(5,0) MAG "you like to see ? " CYA;|028 INPUT ""F$|d29 F1$=F$+".ED I"|830 PRINT CUR(7,0) YEL "Now insert yo ur tape with recorded "|n31 PRINT CUR(8, 0) YEL "pages on"|w32 FOR D=1 TO 20000 : NEXT D ! DELAY TO ALLOW TIME TO INSERT CASSETTE|a33 REWCT 1|x34 GOSUB 136|=35 G OTO 78|l36 ; CUR(4,0) MAG "Please input an identification code"|b37 ; CUR(5,0) M AG "for your page" CYA;|138 INPUT ""F$|e 39 F1$=F$+".EDI"|940 PRINT CUR(7,0) YEL "Now insert a tape on which to record"|o 41 PRINT CUR(8,0) YEL "your pages"|j42 P RINT CUR(10,0) MAG "Which channel ? (1/ 2/3) " CYA;|(43 INPUT ""C9|s44 IF C9<1 O R C9>3 THEN PRINT CHR$(7) : GOTO 42|h45 GOSUB 89|6|
P179 ORACLE 179 Sun20 Jun ITV 1950:00 35507170NISN0$ TEXTLIB 35507170NISN0$ 100 FOR I9=1 TO 3 : P9(I9)=VAL(MID$(P9$, I9,1)) : NEXT I9 |£101 P9(4)=9 : P9(5)=9 |1102 ! TIME-OUT 99 SECS|$103 ! YOU CAN CHANGE THAT VALUE (THE LENGTH O F TIME THE ROUTINE WILL GO ON WA ITING FOR A PAGE WHICH MAY NOT BE THERE!)|!104 FOR I9=-5 TO -1 : POKE I 9,P9(I9+6) : NEXT I9 |i105 RETURN |2106 ! FIND/STAT/FETCHPAGE (USES S9%,R 9%,E9% AND A9%)|5107 GOSUB 98|e108 ! S ET UP ARGS|t109 S9=CALL(R9(1))|y110 ! TH E TELE DXT UNIT RECEIVES THE |v111 ! THR EE DIGIT NUMBER AND IT THEN|a112 ! SELEC TS THE PAGE|b113 PRINT CHR$(12);|n114 S9 =CALL(R9(2))|v115 ! $FSTS FOR PAGE CAPTU RE AND THE |3116 ! EXPIRY OF THE TIME LI MIT|z117 PRINT RED "*";|&118 IF S9=0 THE N GOTO 114|<119 IF S9=1 THEN GOTO 121|<1 20 E9=-1 : RETURN |b121 S9=CALL(R9(3),A9 )|;122 ! FETCH IT AND PUT IT STARTING AT THE ADDRESS IN A9%|—|
P179 ORACLE 179 Sun20 Jun ITV 0001:20 T ""R$|k24 IF R$="R" THEN GOTO 36|+21 IF R$="P" THEN GO N 26|)26 PRINT CUR(4,0) MAG "Which of your recorded pages would" |/27 PRINT CUR(5,0) MAG "you like to see ? " CYA;|028 INPET ""F$|d2 F1$=F$+".ED I"|830 PRINT CUR(7,0) YEL "Now insert yo ur tape with recorded "|n31 PRINT CUR(8, 0) YEL "pages on"|w32 FOR D=1 TO 20000 : NEXT D ! DELAY TO ALLOC TIME TO INSERT CASSETTE|a33 DWCT 1|x34 GOSUB 136|=35 G OTO 78|l36 ; CUR(4,0) MAG "Please input an identification code"|b37 ; CUR(5,0) M AG "for your page" CYA;|138 INPUT "F$|e 39 F1$=F$+".EDI"|940 PRINT CUR(7,0) YEL "Now insert a tape on which to record"|o 41 PRINT CUR(8,0) YEL "your pages"|j42 P RINT CUR(10,0) MAG "Ghich channel ? (1/ 2/3) " CYA;|(43 INPUT ""C9|s44 IF C9<1 O R C9>3 THEN PRINT CHR$(7) : GOTO 42|h41 GOSUB 89|6|
P179 ORACLE 179 Sun20 Jun ITV 1900:20 35507170NISN0$ $FXTLIB 35507170NISN0$ 123 RE PRN |2124 ! SUB OUTINEFORYNAN SWER|q125 ! (USES R9$ AND I9%)|/126 INPU T ""R9$|x127 I9=INSTR(1,"YN",R9$) : IF I 9=0 THEN PRINT CHR$ 7) YEL "'Y' OR 'N' O NLY, PLEASE" : GOTO 126|<128 DTURN 9 ! RECORD SECTION|m130 PRE@ARE F1$ AS F ILE 1|?131 M=1|l132 E=0 : GOSUB 163|8133 CLOSE |i134 RE TRN |4135 ! DND OF RECOR D SECTION|6136 ! PLAYBACK SECTION|s137 O PEN F1$ AS FILE 1|i138 PRINT CUR(23,0) Y EL NWBG RED "Press space to display tha page ";|c139 GET K$ : IF K$=" " GOTO 140 ELSE GOTO 138|m140 PRINT CHR$ 12)|3141 FOR L=0 TO 23|:142 FOR C=0 TO 39|y143 INPUT £1,K : IF K>255 THEN @<,1 : C= 39 : L=23 ELSE POKE FNA(L,C),K|*144 NE XT C |7145 NEXT L |!146 CLOSE |m147 PRIN T CUR(23,0) YEL NGBG RED "Press s——ce to
P179 ORACLE 179 Sun20 Jun ITV 1941:22 35507170NISN0$ TEXTLIB 35507170NISN0$ 72 ! THE 2ND ARGUMENT ABOVE (i.e. A9%) TELLS THE DISPLAY ROUTINE WHERE TO FIND THE PAGE|s73 PRINT CUR(23,0) S PACE$(40) STRING$(40,8) MAG "Do you want to record this page ?Y/N" CYA;|o74 GET K$ : IF K$="N" OR K$="n" GOTO 77|£75 PRI NT CUR(23,0) C$;|s76 GOSUB 129|e77 PRINT CHR$(12)|l78 PRINT MAG "Would you like another run ? " CYA;|{79 GOSUB 124|c80 I F I9=1 THEN GOTO 20 ELSE GOTO 81|x81 PRI NT CHR$(12)|g82 ; YEL "END OF PROGRAM"|s 83 GOTO 65000|{84 ! |i85 ! END OF MAIN P ROGRAM|s86 ! *************************** ******|587 ! SUBROUTINES NOW|c88 ! |m89 ! SELECT CHANNEL |g90 ! |f91 OUT 128,127 -4*C9|&92 ! SELECT CHANNEL C9%|b93 IF IN P(129) AND 2=0 THEN 93|894 Z9=INP(128)|, 95 ! IGNORE THIS!!!|j96 RETURN |+97 ! |m 98 ! SET UP ARGS FOR FINDPAGE |q99 ! GET PAGE NO IN P9%(1%-3%)|z|
P179 ORACLE 179 Sun20 Jun ITV 0000:00 G$="124578"|z8 C$=SPACE$(40)+STRING$(40 ,8)||9 A9=FNP(FNP(SYS(12))+6)|*10 FOR I9 =1 TO 4 : R9 I9)=FNP(30942+2*(I9-1)) : N EXT I9 |*11 ! R9(I9) NOG CONTAINS THE AD DRESS OF |,12 ! SUB NPTINEI ! MACHINE CODE SUB OUTINESARER 9%(1%) = 'FINDPAGE'|£16 ! R9%(2%) = 'S @ TPAGE'|—17 ! R9%(3%) = 'FETCHPAGE'|p18 ! R9%(4%) = 'DISPLAY'|!19 ! ALL OF DHE AB OVE CODE SHOULD OCCUR ONCE IN YOUR PROGRAM BEFORE CAPTU- RING ANY DLE TEXT|020 PRINT CHR$(12)|—21 ; MAG "Do yo u want to record or playback "|g|