Teletext Font Generator

0 views
Skip to first unread message

Lorin Searing

unread,
Aug 5, 2024, 6:10:28 AM8/5/24
to grunfarcgaxis
Thisfont is pretty much of a mixture of a few sources, including various VCR on screen displays, Teletext bulletins (mainly Ceefax), and the Trilithic EASyPLUS, which encodes/decodes broadcasts of the United States Emergency Alert System. As of now, this font is comprised primarily with Basic Latin characters, as well as a few extra accents and glyphs.

This font's title means "masterpiece" in Spanish. The FontStruction can be used for closed-captioning, translating, videogame developing, cable footages, and much more! Please give credit to us when you download this font. Tell us what you think in the comment section below!


This is pretty similar to Small Fonts, with a twist of MS Sans Serif and CEEFAX Teletext 2. Notice that it is not pretty much compared to Unicode 4.5. This was reissued no later than August 23rd, 1997.


During the mid-80s to the 1990s, the BBC Crew had to copy the same teletext/closed-captioning direct from the UK, but throughout the Americas, other local TV stations decided to broadcast a newspaper-styled page, although it doesn't appear to look like MS Sans Serif from the same computer in 1994. CEEFAX Teletext 3 was then launced in December 27th, 1989 and was reissued no more than April 14th, 1995.


Before the Internet, if we wanted to read up-to-the-minute news or weather, we had Teletext. It is a low-bandwidth text standard that used to be sent via the hidden black border on TV signals. BBC Micro and Master computers had a Teletext character generator chip and mode, which they actually booted into by default. Therefore, Teletext was easy to implement via a small ROM and a modem. I managed to get it running, despite Teletext here in the UK being killed off years ago. Here is how I did it.


Teletext is rendered using just a font which not only has standard alphanumeric and basic symbol characters, but a set of characters that had various configurations of blocks in a 23 grid turned on and off. Using this, you can create crude graphics. Each character can have a foreground and background colour, as well as a flashing mode. This is an example of its graphics capabilities, not great, but extremely low bandwidth required:


In the BBC Micro / Master computers, this had the advantage over the graphics modes in that the memory used for the screen only needed to store the character data rather than pixel information. It was therefore much lighter in RAM usage and in general was much faster for rendering text.


The first step to setting up is getting composite working on the Pi. Most Raspberry Pi models have a 3.5mm socket which not only carries audio, but carries composite video too. The problem is, as with many things, there are competing standards for the pinout of the cable.


I bought a cable on Amazon which was advertised as being for Raspberry Pi, luckily I tested it before use. It was the MP3 player standard, but came with an adapter which turned it into the camcorder standard. This works, but you have to use the red connector for composite video and yellow for right audio.


This will take a while to install everything, but when done it will pop up a menu to configure it. From here you can choose a feed and I chose CEEFAX, which is generated from current news, weather and other data. Details of how this service is generated can be found here.


Of course, I need to make it look pretty as well, instead of showing a Pi console output before you hit the Teletext button on the TV. I found a test card image and set things to show this on boot. First, I edited /boot/cmdline.txt so it looked like this:


The Pi is giving a composite output, but for this project to work, I need to be able to tune to a TV channel. Analogue TV has been dead for a number of years, but I found a device which will convert a composite signal to a broadcast on a specific UHF frequency. A TV can be tuned to this, and my Sony TV has analogue support, so we can test it.


From here I cabled everything up, the Pi to the RF modulator, the RF modulator to the TV. The modulator booted into channel 69 (855.25), so I auto-tuned the TV. It found channel 69 and locked-on without any issue.


As mentioned, the BBC computers came with a Teletext graphics mode. This meant that it really only needs a modem to get the data and a small tool suite in a ROM. The rendering is already built-in. There were several such devices that existed, but I ended up with one made by Morley Electronics.


What also could be useful is the function key strip. It is the same for the original Acorn ROM and the Morley ROM, and I found the Acorn one here. I cut it out on my colour laser printer and popped it into the holder. Whilst not perfect, it is good enough to help indicate the device controls.


Now, the fact that there are two components connected to the I2C is what got me thinking, what happens if I remove the tuner chip? I tried this and the BBC could talk to it! So, something is either up with the tuner chip, or the circuit around it which is causing it to jam up the I2C bus.


This can be controlled using the left and right arrow keys. I set the transmitter to the lowest channel it can do (21) and tuned the unit by holding down the right arrow until I was at channel 21, tapping to fine tune from there.


Once we were into channel 21, the index page loaded! We can now hit SPACE to exit the tuning menu and use Teletext as normal. For example, jumping to page 401 (literally typing 401 on the keyboard) gives me the weather for the next 24 hours over three pages.


This photo pretty much captures the entire end-to-end setup. The Pi obtains the raw Teletext data and outputs the control signals in the hidden part of the composite output image. Then the RF modulator turns the composite into an RF signal, just like an original analogue TV used to use. The Morley Teletext Adapter pulls the data from the RF signal and the software and hardware in the BBC translating that into something it can display.


Bedstead is a family of outline fonts based on the characters produced by the Mullard SAA5050 series of Teletext Character Generators. The SAA5050 is familiar to those of a certain age as the chip that produced the MODE 7 display on the BBC Microcomputer. It generates characters from a 5 9 pixel matrix, smoothing diagonal lines to produce an interlaced 10 18 matrix for each character. Bedstead extends that algorithm to continuity, converting a 5 9 pixel grid into an outline with smooth diagonals.


Bedstead includes all the character designs from the SAA5050 and its various sister chips, including Cyrillic and Hebrew alphabets. It also has a large number of custom-designed glyphs, all of them of course based on the same 5 9 pixel grid.


Bedstead is available in six widths. The standard version of Bedstead is based on a square pixel grid. This is good for displays with square pixels, but not entirely faithful to the SAA5050. There is a second version, Bedstead Extended, that more accurately reflects the character shapes generated by an SAA5050 driving a 576i display.


To simulate teletext double-height mode, Bedstead and Bedstead Extended each has a half-width version, Bedstead Ultra Condensed and Bedstead Extra Condensed respectively. Bedstead Condensed and Bedstead Semi Condensed provide intermediate widths.


Bedstead includes all of the teletext mosaic graphics characters available from the SAA5050. These are encoded at the standard code points defined by Unicode. Separated graphics are available using an OpenType feature. The mosaic graphics characters are also encoded in the Private Use area between U+EE00 and U+EE7F, in the same arrangement as is used by ZVBI.


The SAA5050 was used in teletext-equipped television sets, viewdata terminals, and microcomputers, most notably on computers like the Philips P2000 (1980), Acorn System 2 (1980), BBC Micro (1982), Malzak and the Poly-1,[2] and Prestel adapters like the AlphaTantel.[3][4][5]


The chip generated appropriate video output for a 7-bit input character code representing the current character on the text line, while keeping track of the effect of any of the various control characters defined by the teletext standard that had previously occurred in that text line, which could be used to change the foreground and background colour, switch to or from the alternate block graphics character set, or various other effects.


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 that was loosely based on the Signetics 2513 character ROM chip. This was then interpolated by smoothing diagonals to give a 1018 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.


The alternate set of 2 3 block graphic characters were created on the same 12 20 pixel grid, so that the top two blocks were each 6 6 pixels, the middle two blocks each 68 pixels, and the bottom two blocks again 6 6 pixels (or two fewer in each direction, if the "separated graphics" control character had been sent).


Compared to other alternative chips, the SAA5050 implemented the original World System Teletext teletext standard (Level 1), which had no provision to set black for the foreground text colour. Some alternative chips at the time did allow this, as became formalized in the 1981 CEPT videotex standard.


The SAA5050 was later superseded by the SAA5243 CCT chip, integrating a similar teletext character generator with all previously separately implemented functions such as decoding, timing and video generation. It was controlled through I2C.


This package renders teletext pages using vector graphics (SVG). Note this is just the display part of teletext, and operates as a screen or a dumb terminal. The application using this package will need to supply the page content, implement page numbers, navigation, etc. The package provides an API to set page content and change the display characteristics such as the screen height and aspect ratio.

3a8082e126
Reply all
Reply to author
Forward
0 new messages