SAA5050 — Combined References

The primary Mullard SAA5050 datasheet (raw/manuals/SAA5050.pdf, 3.3 MB from bitshifters/bbc-documents/ICs/SAA5050) is an image-only scan with no extractable text. Alternative scans from stardot.org.uk, vd-view, and datasheet aggregators were checked — all image-only.

This source page consolidates four text-bearing alternatives that together cover the chip’s behaviour, plus notes about the unread primary datasheet. The wiki’s saa5050 entity page is synthesised from these.

Sources used

1. raw/manuals/SAA5050.pdf — Mullard 1982 datasheet (UNREAD)

Image-only PDF. 16 pages. Contains the canonical pinout, control code table, character ROM layout, electrical specs, and timing diagrams. Marked as a long-term TODO: needs OCR. Until OCR’d, treat the items below as authoritative.

2. Wikipedia: Mullard SAA5050

URL: https://en.wikipedia.org/wiki/Mullard_SAA5050

  • 480 × 500 pixel full-screen resolution; 40 × 25 character grid.
  • Character cell: 12 × 20 pixels.
  • Internal character ROM: 5 × 9 pixel grid (Signetics 2513-derived), interpolated by diagonal smoothing to 10 × 18 pixels.
  • 2 × 3 block graphics: 6×6 top, 6×8 middle, 6×6 bottom blocks.
  • Implements World System Teletext Level 1.
  • Limitation: “no provision to set black for the foreground text colour” (control codes &80 for “alpha black” don’t actually produce visible text — black-on-black).
  • Language variants: SAA5050 (UK), SAA5051 (DE), SAA5052 (SE), SAA5053 (IT), SAA5054 (BE), SAA5055 (US ASCII), SAA5056 (HE), SAA5057 (CY).
  • Successor: SAA5243 CCT (integrates teletext decoder + timing + video, I²C-controlled).
  • Used in: BBC Micro (1982), Acorn System 2 (1980), Philips P2000 (1980), teletext TVs, viewdata terminals, Prestel adapters.

3. HandWiki: Engineering: Mullard SAA5050

URL: https://handwiki.org/wiki/Engineering:Mullard_SAA5050

Largely overlaps Wikipedia. Confirms 5×9 internal grid derived from Signetics 2513 character generator. Same 12×20 cell, 480×500 resolution.

4. mdfs.net: Teletext Control Characters

URL: http://mdfs.net/Info/Comp/Teletext/Controls (redirected from /SAA5050/Controls)

Authoritative control-code table for the BBC’s MODE 7. Maintained by J.G. Harston (same as AllMem).

Control codes (BBC stores them with bit-7 set in screen RAM at &7C00):

CodeFunctionLine-start default?
&80Alpha black (text)
&81Alpha red
&82Alpha green
&83Alpha yellow
&84Alpha blue
&85Alpha magenta
&86Alpha cyan
&87Alpha whiteyes
&88Flash on
&89Flash off (steady)yes
&8AEnd box
&8BStart box
&8CNormal height (1×1)yes
&8DDouble height (1×2)
&8EDouble width (2×1)
&8FDouble size (2×2)
&90Mosaic black (graphics)
&91Mosaic red
&92Mosaic green
&93Mosaic yellow
&94Mosaic blue
&95Mosaic magenta
&96Mosaic cyan
&97Mosaic white
&98Conceal display
&99Contiguous graphics
&9ASeparated graphics
&9BToggle G0 character sets
&9CBlack backgroundyes
&9DNew background (use current fg as new bg)
&9EHold graphics
&9FRelease graphicsyes

Hold graphics semantics: when active (&9E), subsequent control characters (except &9E itself) display as the most recent graphics character on the line — including any joined/separated and colour state. Does NOT apply to text (alpha) characters.

Double-height rule: any character on the second row of a double-height pair that is not also marked double-height becomes invisible. So you cannot mix single and double heights vertically within such a pair.

5. BeebFpga saa5050.vhd (Hoglet67)

URL: https://github.com/hoglet67/BeebFpga/blob/master/src/common/saa5050.vhd

VHDL behavioural model of the SAA5050 as used in the BBC. Reveals signal-level and timing details.

Entity ports:

  • DI[6:0] — 7-bit character input from CRTC-fetched screen byte (bit 7 strips off).
  • DEW — Data Entry Window (synchronised to VSYNC; falling edge resets line counters and flash counter).
  • LOSE — Load Output Shift register Enable (active during visible video).
  • CRS — Character Rounding Select (tied to FIELD signal — picks even/odd-field rounding).
  • GLR — General Line Reset (not utilised in BBC integration).
  • R, G, B — single-bit colour outputs.
  • Y — monochrome luminance.

Set-after vs Set-at:

  • Set-after (control takes effect on the next character cell): Flash (&88), Steady… wait, actually per the VHDL — Flash is set-after, Steady is set-at. Double-height is set-after. Release Graphics is set-after.
  • Set-at (control takes effect immediately, in the current cell — which is consequently rendered as a space): Colour changes (alpha and mosaic), Conceal, Graphics Hold, Steady.

Practical implication: when you change colour mid-line in MODE 7, the control character itself occupies a cell rendered as background-colour space.

Hold-graphics bug (per VHDL comment):

“SAA5050 hold bug: control codes outside of hold clear the held character (apart from &9E=HOLD)”

i.e. when in hold-graphics mode, any control code OTHER than &9E itself clears the held character — even though the cell still renders. This is a chip quirk, not a spec feature.

Flash rate: ~0.78 Hz, with a 3:1 on/off ratio (cell visible for 3/4 of cycle, dark for 1/4).

Character rounding: the chip applies morphological smoothing to alphanumeric characters only — comparing the current ROM row with the adjacent row to fill in diagonal “stairsteps”, producing the characteristically angular SAA5050 typeface.

Not implemented in BeebFpga’s model (and likely not present in the BBC’s wiring either):

  • No /SI pin — TEXT mode is permanently enabled.
  • No remote control features.
  • No large-character support.
  • No box overlay.

Filed into

TODO

When the primary Mullard datasheet PDF is OCR’d, revisit this and verify:

  • Exact pinout (number / function of each of 28 pins).
  • Electrical specs (Vcc range, Icc, capacitances, propagation delays).
  • Timing diagrams (CLK to DI setup, LOSE-to-RGB latency).
  • Set-after vs set-at table for all control codes (BeebFpga gives some; the datasheet has the full table).
  • Conceal/reveal behaviour formally.
  • “End box / start box” semantics (mdfs.net lists them but doesn’t define).

This wiki is curated by Claude following the LLM-Wiki methodology — a human curates source documents, the LLM compiles structured cross-linked markdown. Content may contain errors, omissions, or stale claims. For authoritative information refer to the original source documents in the bbc-documents GitHub archive.