vt100/src/vt100_font.inc
1/* DEC VT100 character generator ROM, part 23-018E2 (2 KB).2 * Generated by vt100/tools/mkfont.py from the dump published by PCjs:3 * https://www.pcjs.org/machines/dec/vt100/rom/23-018E2.json54 * The glyph data is DEC's (now HP's); it is reproduced unchanged so the terminal shows5 * exactly the dots a VT100 did. 16 bytes per character, most significant bit = leftmost dot. */6static const unsigned char vt100_rom[128][16] = {7 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x00 */8 {0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x01 */9 {0x92,0x44,0x92,0x44,0x92,0x44,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x02 */10 {0x88,0x88,0xF8,0x88,0x88,0x3E,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x03 */11 {0xF0,0x80,0xE0,0x80,0x9E,0x10,0x1C,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x04 */12 {0x78,0x80,0x80,0x78,0x3C,0x22,0x3C,0x22,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x05 */13 {0x80,0x80,0x80,0xF8,0x3E,0x20,0x3C,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x06 */14 {0x38,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x07 */15 {0x00,0x10,0x10,0xFE,0x10,0x10,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x08 */16 {0x88,0xC8,0xA8,0x98,0x88,0x20,0x20,0x20,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x09 */17 {0x88,0x88,0x50,0x20,0x3E,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x0A */18 {0x10,0x10,0x10,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x0B */19 {0x00,0x00,0x00,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x0C */20 {0x00,0x00,0x00,0x1F,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x0D */21 {0x10,0x10,0x10,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x0E */22 {0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x0F */23 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF}, /* 0x10 */24 {0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x11 */25 {0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x12 */26 {0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x13 */27 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x14 */28 {0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x15 */29 {0x10,0x10,0x10,0xF0,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x16 */30 {0x10,0x10,0x10,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x17 */31 {0x00,0x00,0x00,0xFF,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x18 */32 {0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x10}, /* 0x19 */33 {0x02,0x08,0x20,0x80,0x20,0x08,0x02,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1A */34 {0x80,0x20,0x08,0x02,0x08,0x20,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1B */35 {0x00,0x00,0xFE,0x24,0x24,0x24,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1C */36 {0x02,0x04,0xFE,0x10,0xFE,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1D */37 {0x1C,0x22,0x20,0xF8,0x20,0x78,0xA6,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1E */38 {0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x1F */39 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x20 */40 {0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ! */41 {0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* " */42 {0x48,0x48,0xFC,0x48,0xFC,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* # */43 {0x10,0x7C,0x90,0x7C,0x12,0x7C,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* $ */44 {0xC2,0xC4,0x08,0x10,0x20,0x46,0x86,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* % */45 {0x70,0x88,0x88,0x70,0x8A,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* & */46 {0x18,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ' */47 {0x08,0x10,0x20,0x20,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ( */48 {0x20,0x10,0x08,0x08,0x08,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ) */49 {0x00,0x44,0x28,0xFE,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x2A */50 {0x00,0x10,0x10,0xFE,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* + */51 {0x00,0x00,0x00,0x00,0x00,0x30,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* , */52 {0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* - */53 {0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* . */54 {0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x2F */55 {0x38,0x44,0x82,0x82,0x82,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0 */56 {0x10,0x30,0x50,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 1 */57 {0x78,0x84,0x02,0x1C,0x60,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 2 */58 {0xFE,0x04,0x08,0x1C,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 3 */59 {0x08,0x18,0x28,0x48,0xFE,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 4 */60 {0xFE,0x80,0xBC,0xC2,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 5 */61 {0x3C,0x42,0x80,0xBC,0xC2,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 6 */62 {0xFE,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 7 */63 {0x7C,0x82,0x82,0x7C,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 8 */64 {0x78,0x84,0x86,0x7A,0x02,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 9 */65 {0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* : */66 {0x00,0x30,0x30,0x00,0x00,0x30,0x20,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ; */67 {0x02,0x08,0x20,0x80,0x20,0x08,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* < */68 {0x00,0x00,0xFE,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* = */69 {0x80,0x20,0x08,0x02,0x08,0x20,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* > */70 {0x7C,0x82,0x0C,0x10,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ? */71 {0x7C,0x82,0x8A,0x92,0x9C,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* @ */72 {0x10,0x28,0x44,0x82,0xFE,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* A */73 {0xFC,0x42,0x42,0x7C,0x42,0x42,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* B */74 {0x3C,0x42,0x80,0x80,0x80,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* C */75 {0xF8,0x44,0x42,0x42,0x42,0x44,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* D */76 {0xFE,0x80,0x80,0xF8,0x80,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* E */77 {0xFE,0x80,0x80,0xF8,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* F */78 {0x3C,0x42,0x80,0x80,0x8E,0x42,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* G */79 {0x82,0x82,0x82,0xFE,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* H */80 {0x7C,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* I */81 {0x0E,0x04,0x04,0x04,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* J */82 {0x82,0x8C,0xB0,0xC0,0xB0,0x8C,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* K */83 {0x80,0x80,0x80,0x80,0x80,0x80,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* L */84 {0x82,0xC6,0xAA,0x92,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* M */85 {0x82,0xC2,0xA2,0x92,0x8A,0x86,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* N */86 {0x7C,0x82,0x82,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* O */87 {0xFC,0x82,0x82,0xFC,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* P */88 {0x7C,0x82,0x82,0x82,0x8A,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* Q */89 {0xFC,0x82,0x82,0xFC,0x88,0x84,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* R */90 {0x7C,0x82,0x80,0x7C,0x02,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* S */91 {0xFE,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* T */92 {0x82,0x82,0x82,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* U */93 {0x82,0x82,0x44,0x44,0x28,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* V */94 {0x82,0x82,0x82,0x92,0x92,0xAA,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* W */95 {0x82,0x44,0x28,0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* X */96 {0x82,0x44,0x28,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* Y */97 {0xFE,0x04,0x08,0x10,0x20,0x40,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* Z */98 {0x3C,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* [ */99 {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x5C */100 {0x78,0x08,0x08,0x08,0x08,0x08,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ] */101 {0x10,0x28,0x44,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ^ */102 {0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* _ */103 {0x30,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ` */104 {0x00,0x00,0x7C,0x02,0x7E,0x82,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* a */105 {0x80,0x80,0xBC,0xC2,0x82,0xC2,0xBC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* b */106 {0x00,0x00,0x3C,0x42,0x80,0x40,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* c */107 {0x02,0x02,0x7A,0x86,0x82,0x86,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* d */108 {0x00,0x00,0x7C,0x82,0xFE,0x80,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* e */109 {0x1C,0x22,0x20,0xF8,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* f */110 {0x00,0x02,0x7A,0x84,0x84,0x7C,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* g */111 {0x80,0x80,0xBC,0xC2,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* h */112 {0x10,0x00,0x30,0x10,0x10,0x10,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* i */113 {0x04,0x00,0x04,0x04,0x04,0x04,0x84,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* j */114 {0x80,0x80,0x88,0x90,0xE0,0x88,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* k */115 {0x30,0x10,0x10,0x10,0x10,0x10,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* l */116 {0x00,0x00,0xC4,0xAA,0x92,0x92,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* m */117 {0x00,0x00,0xBC,0xC2,0x82,0x82,0x82,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* n */118 {0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* o */119 {0x00,0x00,0xBC,0xC2,0xC2,0xBC,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* p */120 {0x00,0x00,0x7A,0x86,0x86,0x7A,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* q */121 {0x00,0x00,0x9C,0x62,0x40,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* r */122 {0x00,0x00,0x7C,0x80,0x7C,0x02,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* s */123 {0x20,0x20,0xF8,0x20,0x20,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* t */124 {0x00,0x00,0x84,0x84,0x84,0x84,0x7A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* u */125 {0x00,0x00,0x82,0x82,0x44,0x28,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* v */126 {0x00,0x00,0x82,0x82,0x92,0xAA,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* w */127 {0x00,0x00,0x84,0x48,0x30,0x48,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* x */128 {0x00,0x00,0x84,0x84,0x8C,0x74,0x04,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* y */129 {0x00,0x00,0xFE,0x04,0x18,0x20,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* z */130 {0x0E,0x10,0x10,0x60,0x10,0x10,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* { */131 {0x10,0x10,0x10,0x00,0x00,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* | */132 {0xE0,0x10,0x10,0x0C,0x10,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* } */133 {0x62,0x92,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* ~ */134 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0x7F */135};