79708083

Date: 2025-07-20 14:37:34
Score: 0.5
Natty:
Report link

8 bytes per character on C64 could be related either to displaying text in VIC (= C64 video chip) graphics (bitmap) modes, or font definition in VIC text mode.

Graphics mode requires 8 x 8-bit = 8 bytes (if we use 8x8 characters, of course; graphics mode could use any size of character, if I remember well, Final Cartridge III used proportional fonts), whereas VIC text mode used hardcoded matrix of 256 characters, each of them 8 x 8 bits = 8 bytes.

Colors are omited in my considerations, since there are more video modes allowing more background colors or multicolor mode with lower horizontal resolution.

Legacy VGA worked quite similarly, just it allowed more graphics modes with different addressing of VRAM and font was also more complex defined - both horizontally and vertically. Actually, vertical font resolution could be scaled down to 1 line which allowed to emulate graphics mode with textmode layout (= address 0xb800:0x0000, first character, then colour/flash attribute). VGA also allows double font tables: bg colour highest bit was used to select font table which produces 512 characters - this feature used eg. DOS port of Manic Miner which was completely written in text mode, including title screen).

Modern fonts are completely rendered in graphics from complex vector (glyphs) file formats and characters could be defined even by kilobytes of information.

Despite what I've explained above, text itself is in both C64 and PC defined by single byte per character (although there are slight differences: C64 uses PETSCII and PC ASCII), in case of national characters it could be extended to more bytes, eg. fixed size Unicode or variable size UTF-8.

To answer your question: you were comparing font with text definition, therefor it seems that bytes per character is different. Actually, text using basic characters is defined similarly = 1 byte per character on both platforms.

Reasons:
  • Long answer (-1):
  • No code block (0.5):
  • Low reputation (1):
Posted by: KmsDev