summaryrefslogtreecommitdiff
path: root/sys/arch/i386/isa/pcvt/Doc/Charsets
blob: b30dd8a44a875c60d670a615ba0a4edd8ddc2fbd (plain)
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.