1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
I. Character Set Selection on VT220 Terminals
==================================================
name C0 GL C1 GR
+---+ +-------------------+ +---+ +-------------------+
|00h| | | |80h| | |
range | | | | 20h .. 7fh | | | | | a0h .. ffh |
|1fh| | | |9fh| | |
+---+ +-------------------+ +---+ +-------------------+
length 32 96 32 96
/\
SECOND /||\ "lock"- or "single"-shift one set of G0, G1, G2 or
STEP || G3 into one of the "displayable" charactersets GL
|| or GR. (escape) sequences are: SI, SO, ESC ~, ESC n,
|| ESC }, ESC o, ESC |, ESC N and ESC O.
+----+ +----+ +----+ +----+
name | G0 | | G1 | | G2 | | G3 |
length |(96)| |(96)| |(96)| |(96)|
+----+ +----+ +----+ +----+
/\
/||\ designate a hard or a soft character set as
|| one of G0, G1, G2 or G3, used escape sequences
FIRST || are, ESC ( X, ESC ) X, ESC * X and ESC + X - where X is
STEP || B for ascii, < for supplemental, 0 for special, A for
|| british, 4 for dutch, C and 5 for finnish etc. etc. ...
||
+-----+ +------------+ +--------+ +-----------+ +------------+
name |ascii| |supplemental| |special | | national | |downloadable|
| | | graphics | |graphics| |replacement| |characterset|
length | (96)| | (96)| | (96)| | (96)| | (96)|
+-----+ +------------+ +--------+ +-----------+ +------------+
\-------\ /----------/ norway/danish
| dutch
together, this is also finnish
referred to as the french
multinational character french canada
set (power on default german
on a dec vt220) italian
spanish
swedish
swiss
II. Emulating Character Set Selection
=========================================
MDA/HCG/CGA:
just a partial emulation is done, because these boards don't allow
downloadable charactersets. some characters simply don't display
because they are not in the characterset roms on the video board.
if you want to change the mapping, have a look at the default tables
in pcvt_tbl.h.
EGA/VGA:
these cards have provisions for downloadable charactersets and so
many vt220/vt320 charactersets are fully supported:
- US Ascii
- DEC Supplemental
- DEC Special Graphic
- DEC Technical
- ISO Latin-1
- Downloadable
when the emulator is started, it behaves initially similar to
the MDA/CGA/HCG method described above.
when a second (special) characterset for a given screen resolution
is loaded via the "loadfont" utility, the emulator detects this fact
and uses from then on extended tables to access the second charset
as an upper half 512 characterset in terms of ega/vga speak.
from this time on, vt220 downloadable fonts are usable.
the organization of this extended characterset is as follows:
0x00 ... 0x1f C0 display function fonts
0x20 ... 0x3f C1 display function fonts
0x40 ... 0x9f fonts for DEC Supplemental, DEC Special
Graphic, DEC Technical and ISO Latin-1
0xa0 ... 0xff VT220 Downloadable Font
the mapping between vt220 charactersets and the charactersets inside
the ega/vga is done by tables found in the file pcvt_tbl.h.
there is a MSDOS fonteditor called "EVAFONT" available on the
SIMTEL-20 archive, which i used to edit the character sets in the
distribution.
|