80 column teletext

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

80 column teletext

Post by dominicbeesley » Wed May 31, 2017 6:40 pm

In a recent thread an 80 column "teletext" mode was posited, I was not sure that the SAA5050 could handle such a thing. Reading the datasheets left me none too sure but it didn't look to be ruled out. So out with the breadboard...

This is very quick n dirty, character rounding is not working yet but I see no reason why it shouldn't...
Also, the data is not buffered/latched like on the beeb so is a bit sparkly!
It's a shame the 5050 isn't socketed or I'd make up a pcb...
20170531_173634-s.jpg
20170531_192707-s.jpg

User avatar
BeebMaster
Posts: 2926
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!
Contact:

Re: 80 column teletext

Post by BeebMaster » Wed May 31, 2017 8:08 pm

Wow, that is amazing!

I'd love to see two pages of Ceefax side by side!
Image

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 12:39 am

I got interlace and character smoothing working, I think it is surprisingly readable!
20170601_013326-s.jpg

User avatar
jms2
Posts: 2313
Joined: Mon Jan 08, 2007 6:38 am
Location: Derby, UK
Contact:

Re: 80 column teletext

Post by jms2 » Thu Jun 01, 2017 5:26 am

That's incredible, well done!! =D>

Is there a way to integrate this into a Beeb, or is it just a very cool experiment?

User avatar
oss003
Posts: 3126
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: 80 column teletext

Post by oss003 » Thu Jun 01, 2017 6:50 am

Nice job Dominic ..... Looks great ..... =D> =D>

Greetings
Kees

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Thu Jun 01, 2017 7:49 am

Awesome! =D>

What hardware modifications did you have to do to get this working? And what prevents this from working on standard hardware? I assume the standard configuration just really hardwires Teletext to a 1MHz clock, but that being the case, it must be a pretty complicated mod!

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 9:28 am

This isn't on a real beeb but my 6809 clone thing. It should be possible on a beeb but a non-socketed IC would have to be popped. Probably IC37 or the SAA5050 itself then a take off taken from the 6845 character clock and a x6 multiplier. On my setup all my clocks are derived from a 48MHz source so getting 6 / 12 MHz is relatively easy, on the beeb some sort of PLL would probably be simplest. The Master doesn't look as simple. An updated MOS with an extra Mode should be easy enough but space would need to be found so some feature or other would have to be dropped, it might be possible in a utility ROM but I'm not sure...

This was just a proof-of-concept to see if the SAA5050 would handle running at 2x12 MHz...which it seems to handle, if there's interest I'll give it some more thought

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Thu Jun 01, 2017 9:42 am

Ah gotcha. I think getting this working on the Beeb would be really difficult. There's stuff like the IC15 buffer which discards every other byte (due to the DRAM refresh hack which toggles MA6 every 1MHz). But it's interesting to see that on totally custom hardware, the SAA5050 seems to accept the fast clock. This means a 2k address space could also be implemented for a 'proper' 80x25 Teletext mode. Amazing to think of the possibilities a reimplemented BBC Micro clone could have!

guesser
Posts: 307
Joined: Mon Jun 26, 2006 9:21 pm
Contact:

Re: 80 column teletext

Post by guesser » Thu Jun 01, 2017 5:50 pm

Does it specifically have to be double the frequency/characters or is that just the easiest?

I ask because the level 2.5 spec introduces "side panels" which increases the number of characters per row up to 56. I have no idea if this was ever implemented with old-school teletext chipsets though.
A web based teletext editor which can export as Mode 7 screen memory: https://zxnet.co.uk/teletext/editor
Join the Teletext Discord for teletext chat.

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 9:05 pm

Thanks Rich, I'd not quite cottoned on to that, it would be a bit of a problem to work around. What is that MA6 flip for? I don't quite see the point of it...but I'm probably being incredibly dense!

Guesser, I should think that 56 should be possible without changing hardware...I might give it a go at some point

D

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 9:14 pm

dominicbeesley wrote:What is that MA6 flip for? I don't quite see the point of it...but I'm probably being incredibly dense!
Yes, I was being dense, 2ms refresh time on those DRAM chips, so that would have to be worked around...mmm, thinking cap later

guesser
Posts: 307
Joined: Mon Jun 26, 2006 9:21 pm
Contact:

Re: 80 column teletext

Post by guesser » Thu Jun 01, 2017 9:16 pm

Not that it's terribly useful since there's no content avaikable, and the 5050 can't do any of the rest of the level 2 stuff it would use if there was. I just wondered :)

I'm assuming that someone deep in the bowels of a research lab did actually build hardware to do side panels back in the day like the BBC did with ther level 2 colour decoder.
A web based teletext editor which can export as Mode 7 screen memory: https://zxnet.co.uk/teletext/editor
Join the Teletext Discord for teletext chat.

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 9:37 pm

I just had a quick try out, it kind of works but most of the text gets lost off the screen sides. Upping the pixel clock to 8Mhz and having a 1.33333 would probably do the trick.

D
20170601_223019-s.jpg

User avatar
SimonSideburns
Posts: 405
Joined: Mon Aug 26, 2013 8:09 pm
Location: Purbrook, Hampshire
Contact:

Re: 80 column teletext

Post by SimonSideburns » Thu Jun 01, 2017 9:58 pm

Fascinating stuff indeed.

If the Beeb could have done 80x25 teletext out of the box imagine how great the early word processors could have been. Great screen resolution, quite readable and loads of free RAM for document storage.
Just remember kids, Beeb spelled backwards is Beeb!

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Thu Jun 01, 2017 10:18 pm

Or coding, I well remember starting off in mode 0 then 3 then 7 as I ran out of room for my Basic+assembler concoctions

guesser
Posts: 307
Joined: Mon Jun 26, 2006 9:21 pm
Contact:

Re: 80 column teletext

Post by guesser » Thu Jun 01, 2017 11:52 pm

As a completely off topic aside, I've been puzzling all day thinking your name seems familiar for some reason and just twigged that I recognise you from the NBTVA forum :)
A web based teletext editor which can export as Mode 7 screen memory: https://zxnet.co.uk/teletext/editor
Join the Teletext Discord for teletext chat.

User avatar
1024MAK
Posts: 9393
Joined: Mon Apr 18, 2011 4:46 pm
Location: Looking forward to summer in Somerset, UK...
Contact:

Re: 80 column teletext

Post by 1024MAK » Fri Jun 02, 2017 9:34 am

dominicbeesley wrote:
dominicbeesley wrote:What is that MA6 flip for? I don't quite see the point of it...but I'm probably being incredibly dense!
Yes, I was being dense, 2ms refresh time on those DRAM chips, so that would have to be worked around...mmm, thinking cap later
Sinclair found that often you can reduce the refresh frequency to lower than the manufacturers stated frequency, and the DRAM chips will still retain their contents. Of course, there are limits to how long you can go between refreshing before intermittent memory corruption occurs...

Mark

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Fri Jun 02, 2017 9:45 am

Also, doesn't the Master do something different? I think it was claimed that the MA6 flip doesn't happen there (although doesn't it use a custom ULA for all this stuff anyway?).

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Fri Jun 02, 2017 10:28 am

Hi guesser, yes that's me!

Yes, 1024MAK, RTW, I've no idea if the MA6 flip is "needed" except on marginal chips. I did some experiments a while ago on some (similar, possibly identical) DRAMs and found that some could hold data for many seconds, of course the chip sheet will cover manufacturing tolerances, temperature and supply ranges etc that I didn't check.

The Master does indeed have a custom chip, I should think it does something like the MA6 bodge. I tried getting 56 chars TTX on the Master last night but it appears that when I selected the teletext bit in the video ULA it forced the 1k memory map into action rather than on the model B the teletext bit in the ULA turns on the output of the SAA505 and MA13 of the CRTC enables the teletext memory map...I may be wrong though. I need to get a model B working to test (I tried in BeebEm too but that didn't behave as I expected either).

I suspect a "wide" (i.e. ~50 chars) teletext mode could be had on the model B but would require 10K of RAM as characters would have to repeat 8 times to work against the CRTC's row addresses.

I'm not sure of the easiest way to go would be a board with a 2k RAM which held a copy of the top 2k of memory, would take some thought on how to get all the address lines etc in though, or something that replaces IC37,38,11. I've no idea how useful people would find a mode7_80, I suspect as it would require desoldering at the least that it would be pretty niche!

D

SteveBagley
Posts: 206
Joined: Sun Mar 15, 2015 8:44 pm
Contact:

Re: 80 column teletext

Post by SteveBagley » Fri Jun 02, 2017 10:56 am

1024MAK wrote: Sinclair found that often you can reduce the refresh frequency to lower than the manufacturers stated frequency, and the DRAM chips will still retain their contents. Of course, there are limits to how long you can go between refreshing before intermittent memory corruption occurs...
A friend of mine had an Atari STE where the memory contents would survive for a good few seconds after being switched off, which was really annoying when you'd loaded a demo with a hidden reset screen that you didn't want to have to watch…

Steve

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Fri Jun 02, 2017 12:14 pm

One point with the 80 column teletext is you wouldn't need the MA6 hack any more as you could guarantee a period of no more than 640us between refreshes for a given DRAM row. If MA10 were translated to DA10, you could have a nice 2k screen clocked at 2MHz with a 12MHz pixel rate. Though for this to work you'd probably have to always allocate 2k to teletext screens so that wraparound would work (though maybe there's some clever way to use the other address lines to avoid this).

Anyway, it's probably a fairly moot point as I can't imagine this kind of mod being trivial on a stock BBC B, and even less so on a Master!

Edit: maybe you can do this by mapping MA11 to DA10, and letting a carry from MA10 determine whether the other bank gets used or not. Haven't really thought it through very clearly but I feel like there might be a way.

B3_B3_B3
Posts: 97
Joined: Sat Apr 08, 2017 9:42 pm
Contact:

Re: 80 column teletext

Post by B3_B3_B3 » Fri Jun 02, 2017 8:20 pm

I like this thread. =D> =D> =D> :)

Coeus
Posts: 1402
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: 80 column teletext

Post by Coeus » Sun Jun 04, 2017 10:31 am

SteveBagley wrote:A friend of mine had an Atari STE where the memory contents would survive for a good few seconds after being switched off, which was really annoying when you'd loaded a demo with a hidden reset screen that you didn't want to have to watch…
That sounds like it is caused by the PSU having a few seconds of power stored in the capacitors and whatever is refreshing the RAM continuing to do so for a few seconds.

User avatar
kieranhj
Posts: 831
Joined: Sat Sep 19, 2015 10:11 pm
Location: Farnham, Surrey, UK
Contact:

Re: 80 column teletext

Post by kieranhj » Sat Jun 10, 2017 4:52 pm

Coeus wrote:
SteveBagley wrote:A friend of mine had an Atari STE where the memory contents would survive for a good few seconds after being switched off, which was really annoying when you'd loaded a demo with a hidden reset screen that you didn't want to have to watch…
That sounds like it is caused by the PSU having a few seconds of power stored in the capacitors and whatever is refreshing the RAM continuing to do so for a few seconds.
As a complete aside, any of you fond of the Nintendo 64 console may remember the mythical "Stop & Swop" Easter egg in Banjo-Kazooie...
Bitshifters Collective | Retro Code & Demos for BBC Micro & Acorn computers | https://bitshifters.github.io/

Coeus
Posts: 1402
Joined: Mon Jul 25, 2016 11:05 am
Contact:

Re: 80 column teletext

Post by Coeus » Sat Jun 10, 2017 9:36 pm

kieranhj wrote:As a complete aside, any of you fond of the Nintendo 64 console may remember the mythical "Stop & Swop" Easter egg in Banjo-Kazooie...
I don't remember that by I remember have an ETACS (pre-GSM) mobile phone with which, when it complained the battery was low, you could release the existing batter and snap a freshly charged one into place without dropping the phone call.

Telemedic
Posts: 21
Joined: Sat Jan 27, 2018 5:35 pm
Contact:

Re: 80 column teletext

Post by Telemedic » Thu Jul 19, 2018 8:39 pm

Here is a question. The dot clock for 40 columns is 6mhz, 80 is 12mhz. I get that. My question is this. What is the relationship with the 6mhz and the columns? What would happen if the 6mhz was set to 10mhz? How would this effect the display?

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Thu Jul 19, 2018 8:52 pm

I assume it'd make the characters thinner with more space between them (I assume it's some kind of shift register which emits pixels one by one, and when it's over, it's blank).

But here's another question: the teletext pixel clock is 6MHz but, with character rounding, it actually needs 12MHz for the "half dots". So how does that timing work then?

And here's another question: we know that the 6MHz clock was an extremely cunning but inexact hack. Is it possible to see the irregularity of the timing when looking at a teletext glyph close up?

colonel32
Posts: 65
Joined: Wed Jan 18, 2017 7:59 pm
Location: USA
Contact:

Re: 80 column teletext

Post by colonel32 » Thu Jul 19, 2018 10:30 pm

Only jusut seen this. Amazing Rich!

User avatar
Rich Talbot-Watkins
Posts: 1556
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: 80 column teletext

Post by Rich Talbot-Watkins » Fri Jul 20, 2018 11:06 am

Nothing to do with me; this is Dominic's immense genius at work here!

dominicbeesley
Posts: 911
Joined: Tue Apr 30, 2013 11:16 am
Contact:

Re: 80 column teletext

Post by dominicbeesley » Fri Jul 20, 2018 12:44 pm

Thanks Rich "genius" is a bit strong, dabbler is more like it!

I can't remember now what happened when I had the pixel clock going too fast for the data clock. I think it did leave blanks (shifting rather than rotating) but I can't recall 100%.

Just the other day I pulled the test boards apart (I needed the breadboard for something ) and put away the 6809 sprawling mess that was my mk1 6809 computer. After I've done the house move I will dig it all out again if there's interest and do some more measurements.

I did try some other pixel clock speeds but that was before I got character rounding working properly. I'm pretty sure that the rounding works on _both_ clock edges so I don't see why it wouldn't work at other clock frequencies.

I'm quite surprised that the dirty 6MHz clock works as well as it does with the character rounding. I do notice on RobC's VidenoNULA in my Model B that sometimes certain characters look a bit "odd" i.e. lower case m has different sized gaps on each half and the two verticals of upper case H are sometimes vert slightly different widths. This is not all the time and I suspect that it is to do with the NULA sampling at nice regular 12MHz and the SAA5050 in the beeb outputting at a ropey 6MHz on both clock edges - the effect is certainly not very pronounced and hardly shows up on most monitors. In the attached picture the lower m looks a bit squiffy but this could easily be down to the aperture grille rather than my posited clock beats!

D
Attachments
compare.jpg

Post Reply