11

Mode 7 on the BBC Micro is very different to the other seven display Modes (0-6).

From the programmer's point of view, the BBC Micro's mode 7 looks like 'oh, there is also a character cell mode that saves memory', but from the BBC's viewpoint it was also about supporting the existing Teletext standard. From the hardware engineer's viewpoint it may also have been about using the existing, proven and mass-produced SAA 5050 chip, which not only provided a high-quality character display, but also a hardware implementation of Teletext features.

It presumably also informed the color palette; according to a comment on the Stardot forums:

I thought Steve or Sophie had mentioned in one of their talks that the PAL encoder basically came from the BBC.

So reusing the existing color generator circuit designed for Teletext TV sets; that makes sense.

According to Wikipedia's article on the SAA5050 chip (used for Mode 7):

Full-screen resolution generated by the SAA5050 was 480×500 pixels, corresponding to 40×25 characters. Each character position therefore corresponded to a 12×20 pixel space. Internally each character shape was defined on a 5×9 pixel grid. This was then interpolated by smoothing diagonals to give a 10×18 pixel character, with a characteristically angular shape, surrounded to the top and to the left by two pixels of blank space. This gave a particularly stable and flicker-free arrangement on interlaced displays.

This also makes sense (well, except I'm not clear on how anything ever made interlace usable given how abominably it flickered when I tried it on the Amiga, but that's a separate question; I think the BBC Micro used progressive scan like other computers of the time).

While Mode 7 has an effective horizontal resolution of 480 pixles, the other modes have a horizontal resolution of 320 or 640. I would intuitively have expected 240 or 480 in a machine that incorporates the SAA 5050 as a core feature. Why choose 320/640 for the other modes?

  • Conjecture: By the time the BBC contract came into the picture, Acorn's engineers had already designed a bitmap video system based on 320/640 for the adequate and sufficient reason that this was the usual way of doing things. Given the very tight development schedule, it made more sense to accept a bit more manufacturing cost for two separate pixel clock circuits, than to redesign the bitmap video around the pixel clock for the 5050.

  • Alternative conjecture: Acorn wanted the micro to double as a business computer, for which an 80 column mode was highly desirable. The ideal would've been an 80 column character cell display, but in the absence of sufficient development time, they decided a 640-pixel bitmap mode would double as this while also having other uses.

Is either of those conjectures accurate, or is there another explanation?

  • 2
    It would have made interlace usable because it doubled the pixel height (and width) of 5x9 characters in order to make 10x18 characters. If it wasn't for the "smoothing" step this would make the display effectively not interlaced, since both interlaced fields would be displaying the same thing. The smoothing step makes it so they're not exactly the same, but still very close so flicker should be very minimal. – Ross Ridge Feb 16 at 0:04
14

The BBC Micro's specification was drawn up by the BBC (with some subsequent modifications). Computer manufacturers were invited to design a computer system that would meet that specification, and Acorn had an early prototype for their Proton computer that they were able to adapt to suit the BBC.

The specification includes:

Video display: Either (a) an integral single line display of 40 characters (each built from at least 5 by 7 dots) and a modulated UHF output of the full screen (see below) or (b) an integral display of the full screen plus a modulated UHF output of the full screen or (c) a modulated UHF output of the full screen

A composite video output should be included.

The 'full screen' should consist of at least 24 lines of 40 characters (*preferably an option of 80 characters from the outset) of upper and lower case alpha-numerics and (colour) Teletext graphics. These should be capable of being freely mixed with (colour) medium resolution graphics of at least 200 horizontal points. The medium resolution graphics should be eraseable separately from the other displays.

The computer should either produce UHF colour signals at the time of purchase or be easily expaned to produce UHF colour signals. It must be designed with colour Teletext and colour graphics in mind.

We can see here that the BBC requested the Teletext display, and also expressed a desire for 80 column displays. The requirements for graphics are fairly moderate: a minimum horizontal resolution of just 200 pixels.

The display MODEs that Acorn implemented for the BBC Micro are as follows:

  • MODE 0: 640x256 graphics, 80x32 characters, 2 colours, 20kB RAM
  • MODE 1: 320x256 graphics, 40x32 characters, 4 colours, 20kB RAM
  • MODE 2: 160x256 graphics, 20x32 characters, 8 colours, 20kB RAM
  • MODE 3: no graphics, 80x25 characters, 2 colours, 16kB RAM
  • MODE 4: 320x256 graphics, 40x32 characters, 2 colours, 10kB RAM
  • MODE 5: 160x256 graphics, 20x32 characters, 4 colours, 10kB RAM
  • MODE 6: no graphics, 40x25 characters, 2 colours, 8kB RAM
  • MODE 7: teletext, 40x25 characters, 8 colours, 1kB RAM

Note that the Model A variant shipped with only 16kB of RAM, so could only use MODEs 4-7. The 40x25 and 80x25 character resolutions were a common standard used by a number of existing computers.

The BBC Micro used an MC6845 video address generator in conjunction with a custom graphics chip for generate MODEs 0-6. For Mode 7, the MC6845 drove the SAA5050 character generator, who's output was passed through the custom graphics chip to the display.

Prior to the BBC/Proton, Acorn had designed and used three different display interfaces: two for their System range and one for the Acorn Atom.

  • The first System display was a 40x25 character Teletext VDU, which used an MC6845 and SAA5050 along with 1kB of video RAM in almost the same manner that MODE 7 on the BBC operates.

  • Later System machines used a 80x25 character VDU. These had a similar 6845-compatible address generator, and 2kB of RAM, but used a custom EPROM for the character generator.

  • The Atom used an MC6847 video display generator. This had built-in support for graphics modes, but they don't correspond to those used on the BBC Micro: the Atom used 64x64, 64x96, 128x96, 64x192, 128x192 and 256x192 resolutions, in a variety of colour ranges.

It's therefore clear that the BBC didn't specify the exact graphics resolutions used in the BBC Micro, and neither did they come from an existing Acorn machine.

One final piece of the jigsaw comes from an interview Sophie Wilson gave in 2007. In it she states:

Proton as originally conceived did not have the SAA5050 character generator (MODE 7) and teletext capabilities.

Teletext capability was part of the BBC's specification, and it would appear that Acorn met this requirement by integrating the SAA5050-based 40x25 System VDU with their existing Proton design.

The interview also says:

What did you think of the BBC Model B at the time, and - looking back - is there anything you'd change about it?

The SAA5050 was a pain - expensive and different from the rest of the machine - but it did give a lot more memory for programs!

I would conjecture that the 320/640 horizontal resolution was part of Acorn's original design for the Proton, and as it exceeded the BBC's requirements (in all but Teletext support) it was used in the BBC Micro virtually as-is. As the Proton was not intended to use an SAA5050, there would have been no particular reason to use its 480 pixel horizontal resolution.

  • 1
    MMM, while the BBC micro's modes aren't precisely what the BBC asked for (you can't mix teletext with bitmapped graphics) they were presumablly close enough (you can mix 40-column 4-color text with 4-color "medium-resoloution" graphics). – Peter Green Feb 18 at 22:30
  • Did those higher-resolution outputs only work on composite? It seems beyond the capabilities even of PAL. – Maury Markowitz Feb 20 at 19:32
  • @MauryMarkowitz All the MODEs could be displayed via RGB, composite, or UHF outputs, though of course the picture quality would be far better on RGB or composite. – Kaz Feb 21 at 21:25
  • 1
    Pretty much yeah. IIRC you can just about read mode 0 text on a TV connected by RF, but it's very fuzzy and with weird color artifacts. – Peter Green Feb 25 at 3:36
  • 1
    Regarding the composite output IIRC there were jumpers insider that could be used to set it up either as a monochrome only output or a PAL color output. I think it was set up as monochrome by default but i'm not 100% sure (I only ever used the RF and RGB outputs). – Peter Green Feb 25 at 3:40
5

For the video modes apart from MODE 7, the BBC Micro used a 6845 CRTC, hence the familiar horizontal resolution factors. The SAA5050's display function were not used by the other MODEs.

  • 1
    … and I'm typing MODE vs mode because BBC BASIC was upper case only. – scruss Feb 15 at 21:35
  • I certainly understand how it makes sense to use an off-the-shelf video address generator, but according to en.m.wikipedia.org/wiki/Motorola_6845 'Because all aspects of video timing are programmable, a single machine can switch between NTSC and PAL timings in software' so that sounds like it would equally well support 240/480? – rwallace Feb 15 at 22:05
  • 1
    @rwallace in fact the other graphics modes were based on 256 scan lines for PAL. A modified version was made for US export using 200 scan lines for NTSC, but this was incompatible with UK-market software, and the US version was a commercial failure and quickly abandoned. Some hardware intended for sale to the US was modified back to the UK standard and sold in the UK. – alephzero Feb 15 at 23:58
  • 2
    @alephzero but that's only at the MOS's command, I believe. The CRTC itself has no problem churning out either type of timing. – Tommy Feb 16 at 0:11
  • The 6845 was actually used for all video modes: it's connected to one pair of buffer ICs for the low-resolution Mode 7 (Teletext), and a different set of buffers for the other (hi-res) modes. See ICs 8-11 on the circuit diagram: 8bs.com/boards/BBCBschematicJTribbeck.png – Kaz Feb 20 at 12:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.