For the lastest !startup script (with keypress modifiers, etc), look in the Scripts directory of the !Teletext v1.52 update.
First, some comments.
; Teletext "!startup" script. ; The current version of Teletext does not ask if you'd like to run ; this script, upon startup. The next version probably will. ; If you don't want to be bothered by that, don't call it "!startup".Now, select channel 5 and force a poll to let the hardware catch up.
; select satellite decoder channel(5) poll_now()Ask the user to select CNBC.
; we want to receive CNBC (channel 2 on my satellite decoder; 10,732 Vertical, Analogue PAL)
.isitcnbc
message("Please set satellite receiver to CNBC (channel 2)")
channelid(A)
if (A ! &714E) go("isitcnbc")
What we want from CNBC is Jay Leno's guest list and Conan O'Brien's guest list. Frankly, they're
the only things worth watching on CNBC. The teletext is sparse (can't they pipe through some
stuff from MSNBC?) and the majority of the programming is boring stock market stuff, a lot of
which is presented by a wide-eyed girl that looks like she's had a dozen coffees too many in the
past hour...
; Jay Leno's guest list, and Conan's guest list getframes(182) getframes(183)Now, we want CNN.
; now we want to receive CNN (channel 1 on my satellite decoder; 11,627 Vertical, Analogue PAL)
.isitcnn
message("Please set satellite receiver to CNN (channel 1)")
channelid(A)
if (A ! &804F) go("isitcnn")
Similar to the BBCnews scripts, we want to snarf pages 101 to 110 (inclusive). Unlike the BBCnews
scripts, we'll just toddle on and get 'em one by one. CNN ain't fast, but as we are a little
background task, it's no rush.; News
set A to 101
.getnews
getframe(A)
A++
if (A [ 110) go("getnews")
We only want the headlines frames now. Much of the business and entertainment stuff is boring. I
don't care if SARS is causing a problem for the UK Hilton, and quite frankly I'm not that
interested if Halle Berry breaks her ulna (ask a medical student if you don't know). Sorry Halle,
it's not personal, though I care more about your ulna than I care about Jennifer Garner filing
for divorce... namely 'cos I know who Halle Berry is. Who the <beep> is Jennifer Garner?
And given the appalling divorce rate, this isn't really newsworthy, is it? Then again, she and
her husband, fellow TV actor Scott Foley, had only been married two and a half years (CNN,
16May03). They are splitting, apparently, due to "irreconcilable differences" (yes, that is a
Drew Barrymore film - the one where she divorces her parents (only in America!)). Sorry to be a
cynic, but I feel that people that only make two and a half years either got married too quickly,
or just didn't try hard enough. Mmmm... Maybe this crap isn't so boring after all?
; Business headlines getframe(701) ; Entertainment headlines getframe(130)I like the daily words of wisdom. Some, if I had email, I'd be awfully tempted to send to everybody's favourite president. Like, I dunno, "Whoever fights monsters should see to it that in the process he doesn't become a monster" (Friedrich Nietzsche; CNN 16May03).
; Quote for the day getframe(178)Now, the weather. I look for Nantes in the 'weather now' and 'Paris' in the three-day forecast. If you want to know what my weather is right now, look for Nantes on page 463. :-) Sadly our weather is affected by the Atlantic, so the report for 'gai Pari' is about as relevant as the report for London. Still, it's the closest I've got...
; Current weather (Nantes) getframes(463) ; 3day forecast (Paris) getframes(470)That's all the pages fetched and cached. Let's whip up a document...
; now we have all the frames, let's generate ourselves a document
poll_nomessages()
poll_disable()
filewrite("<Teletext$Temp>.Report")
filewriteovnhead()
filewritestring("{align 1}") ; make it all centred
I want little section headings, so I need to output some OvationPro DDL script. If you cannot
easily follow the following code, run the script and look at the output.; NEWS
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Headlines")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNN)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
set A to 101
.writenews
appendframe(A, 3)
A++
if (A [ 110) go("writenews")
; BUSINESS HEADLINES
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Business headlines")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNN)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendframe(701, 3)
; ENTERTAINMENT HEADLINES
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Entertainment headlines")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNN)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendframe(130, 3)
; QUOTE
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Quote for the day")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNN)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendframe(178, 3)
; WEATHER IN NANTES
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("The weather in Nantes")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNN)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendgivenframe(463, 2, 3) ; it is frame 2 of 3 that we want
; JAY LENO
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Jay Leno's guest list")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNBC)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendgivenframe(182, 2, 3) ; it is frame 2 of 2 that we want
; CONAN
filewritestring("{newpara}{textsize 16000}{bold 1}{underline 1}")
filewritebyte(34)
filewritestring("Conan O'Brien's guest list")
filewritebyte(34)
filewritestring("{bold 0}{underline 0}{textsize 12000}")
filewritebyte(34)
filewritestring(" (from CNBC)")
filewritebyte(34)
filewritebyte(10)
filewritestring("{textsize}{bold}{underline}{newpara}")
appendgivenframe(183, 2, 3); it is frame 2 of 2 that we want
Well, that's the hard work over. All that really remains is to finalise the file, and then run
it.
; tidy up
filewriteovntail()
fileclose()
filetype("<Teletext$Temp>.Report", &B25)
oscall("Filer_Run <Teletext$Temp>.Report")
Above, we set the filetype to &B25 - OvPDDL. Then we try to run the file. If OvationPro is
loaded, it'll pick up on the file and display it. As OvationPro is booted at startup (on my
system), this will auto-load OvationPro, which will then display the document!; we're done terminate()Done!