chiark / gitweb /
Correct separated vs contiguous flag in ZVBI compat mappings
authorNeil Williamson <neil.williamson@gmail.com>
Mon, 25 Nov 2024 00:14:52 +0000 (00:14 +0000)
committerBen Harris <bjh21@bjh21.me.uk>
Mon, 25 Nov 2024 21:35:35 +0000 (21:35 +0000)
[ from email ]

One thing I wanted to query was the ZVBI mosaic graphics codepoints at
0xEE00 to 0xEE7F.  The ZVBI code says (in lang.c):

" Table 47 G1 Block Mosaic is not representable
* in Unicode, translated to private code U+EE00 ... U+EE7F.
* (contiguous form has bit 5 set, separate form cleared)."

My reading of this is that the separated forms should therefore sit at
0xEE00-0xEE1F and 0xEE40-0xEE5F, with the contiguous forms at 0xEE20-0xEE3F
and 0xEE60-0xEE7F.  This is indeed what the teletext1/2/4 fonts commonly
seen in teletext recoveries do; see for example
https://al.zerostem.io/~al/teletext/bbc1/1996-12-28-0008.1/100.html.
Bedstead maps these the opposite way around, however, and if you swap it in
on the linked page, all the contiguous and separated mosaics will swap
places.

bedstead.c

index f6eaba0c7637025611cae6591760db2cfaa64dcf..1fb5e81ee5eb05effc1cb8a6f9544d3d6adeec2b 100644 (file)
@@ -2374,7 +2374,7 @@ static struct glyph {
  /* Private use area */
  /* U+EE00--U+EE7F: zvbi mosaic graphics */
 #define M(x) {{(0x##x & 0x1f)|((0x##x & 0x40)>>1)}, U(EE##x), \
-             (0x##x & 0x20 ? SEP6 : MOS6)}
+             (0x##x & 0x20 ? MOS6 : SEP6)}
  M(00), M(01), M(02), M(03), M(04), M(05), M(06), M(07),
  M(08), M(09), M(0A), M(0B), M(0C), M(0D), M(0E), M(0F),
  M(10), M(11), M(12), M(13), M(14), M(15), M(16), M(17),