As for 'bbcnews', this script was written in January 2002.
This time, we are whizzing - by fetching four frames in one pass. Please note that this MAY NOT WORK on slower machines, or if your machine is 'laden'.
Note, also, that we've shaved the time down to one minute fifty nine. Or, in other words, we only saved sixteen seconds. You can only go so fast...
; Script to fetch news articles on BBC ceefax, in whizz time!
;
; Timed at 1 minute, 59 seconds.
¤script "bbcnewswhz"
; Select channel
channel(1)
; check we are receiving
getframe(100)
set A to status(pagefound)
if (A ! 1) error("Timed out trying to fetch page - is antenna connected?")
set A to 104
set E to 109
.fetchloop
getframe(A)
set F to A
add(F, 5)
getframe(F)
add(F, 5)
getframe(F)
add(F, 5)
getframe(F)
A++
if(A [ E) go("fetchloop")
Now, there's not enough time to process four frames in the roll-around, so we fetch first
and process once we have the frames. Generally, I prefer this method of processing (instead of
process-as-fetched).set A to 104
set E to 124
.processloop
set B to 1
selectframe(A)
set C to 1
.omittop
omitline(C)
C++
if(C [ 5) go("omittop")
set C to 22
.omitend
omitline(C)
C++
if(C [ 25) go("omitend")
storeframe()
A++
if(A [ E) go("processloop")
And, you know this bit...
filewrite("<Teletext$Temp>.bbcnews")
set A to 104
set E to 124
.outputframes
appendframe(A, 2)
filewritebyte(10)
filewritebyte(10)
A++
if(A [ E) go("outputframes")
fileclose()
filetype("<Teletext$Temp>.bbcnews", &FFF)
oscall("%Filer_Run <Teletext$Temp>.bbcnews")
terminate()