§ Способ подключения

Вызвать screen([id элемента canvas]) для назначения рабочей области. Если дополнительно добавить параметр (factor), то каждый пиксель будет в n раз больше. Если не задать id элемента, то будет выбран #canvas.
1screen()(2);
2for (var y = -120; y < 120; y++)
3for (var x = -160; x < 160; x++)
4    pset(160 + x, 120 + y, dos(x + y));

§ Набор функции для рисования

Файл canvas2d.js
1var canvas = {
2    element: null,
3    context: null,
4    width: null,
5    height: null,
6    img: null,
7    factor: 1,
8    refresh: 1,
9    dos: [
10        0x000000, 0x0000aa, 0x00aa00, 0x00aaaa, 0xaa0000, 0xaa00aa, 0xaa5500, 0xaaaaaa, // 0
11        0x555555, 0x5555ff, 0x55ff55, 0x55ffff, 0xff5555, 0xff55ff, 0xffff55, 0xffffff, // 8
12        0x000000, 0x141414, 0x202020, 0x2c2c2c, 0x383838, 0x454545, 0x515151, 0x616161, // 10
13        0x717171, 0x828282, 0x929292, 0xa2a2a2, 0xb6b6b6, 0xcbcbcb, 0xe3e3e3, 0xffffff, // 18
14        0x0000ff, 0x4100ff, 0x7d00ff, 0xbe00ff, 0xff00ff, 0xff00be, 0xff007d, 0xff0041, // 20
15        0xff0000, 0xff4100, 0xff7d00, 0xffbe00, 0xffff00, 0xbeff00, 0x7dff00, 0x41ff00, // 28
16        0x00ff00, 0x00ff41, 0x00ff7d, 0x00ffbe, 0x00ffff, 0x00beff, 0x007dff, 0x0041ff, // 30
17        0x7d7dff, 0x9e7dff, 0xbe7dff, 0xdf7dff, 0xff7dff, 0xff7ddf, 0xff7dbe, 0xff7d9e, // 38
18        0xff7d7d, 0xff9e7d, 0xffbe7d, 0xffdf7d, 0xffff7d, 0xdfff7d, 0xbeff7d, 0x9eff7d, // 40
19        0x7dff7d, 0x7dff9e, 0x7dffbe, 0x7dffdf, 0x7dffff, 0x7ddfff, 0x7dbeff, 0x7d9eff, // 48
20        0xb6b6ff, 0xc7b6ff, 0xdbb6ff, 0xebb6ff, 0xffb6ff, 0xffb6eb, 0xffb6db, 0xffb6c7, // 50
21        0xffb6b6, 0xffc7b6, 0xffdbb6, 0xffebb6, 0xffffb6, 0xebffb6, 0xdbffb6, 0xc7ffb6, // 58
22        0xb6ffb6, 0xb6ffc7, 0xb6ffdb, 0xb6ffeb, 0xb6ffff, 0xb6ebff, 0xb6dbff, 0xb6c7ff, // 60
23        0x000071, 0x1c0071, 0x380071, 0x550071, 0x710071, 0x710055, 0x710038, 0x71001c, // 68
24        0x710000, 0x711c00, 0x713800, 0x715500, 0x717100, 0x557100, 0x387100, 0x1c7100, // 70
25        0x007100, 0x00711c, 0x007138, 0x007155, 0x007171, 0x005571, 0x003871, 0x001c71, // 78
26        0x383871, 0x453871, 0x553871, 0x613871, 0x713871, 0x713861, 0x713855, 0x713845, // 80
27        0x713838, 0x714538, 0x715538, 0x716138, 0x717138, 0x617138, 0x557138, 0x457138, // 88
28        0x387138, 0x387145, 0x387155, 0x387161, 0x387171, 0x386171, 0x385571, 0x384571, // 90
29        0x515171, 0x595171, 0x615171, 0x695171, 0x715171, 0x715169, 0x715161, 0x715159, // 98
30        0x715151, 0x715951, 0x716151, 0x716951, 0x717151, 0x697151, 0x617151, 0x597151, // A0
31        0x517151, 0x517159, 0x517161, 0x517169, 0x517171, 0x516971, 0x516171, 0x515971, // A8
32        0x000041, 0x100041, 0x200041, 0x300041, 0x410041, 0x410030, 0x410020, 0x410010, // B0
33        0x410000, 0x411000, 0x412000, 0x413000, 0x414100, 0x304100, 0x204100, 0x104100, // B8
34        0x004100, 0x004110, 0x004120, 0x004130, 0x004141, 0x003041, 0x002041, 0x001041, // C0
35        0x202041, 0x282041, 0x302041, 0x382041, 0x412041, 0x412038, 0x412030, 0x412028, // C8
36        0x412020, 0x412820, 0x413020, 0x413820, 0x414120, 0x384120, 0x304120, 0x284120, // D0
37        0x204120, 0x204128, 0x204130, 0x204138, 0x204141, 0x203841, 0x203041, 0x202841, // D8
38        0x2c2c41, 0x302c41, 0x342c41, 0x3c2c41, 0x412c41, 0x412c3c, 0x412c34, 0x412c30, // E0
39        0x412c2c, 0x41302c, 0x41342c, 0x413c2c, 0x41412c, 0x3c412c, 0x34412c, 0x30412c, // E8
40        0x2c412c, 0x2c4130, 0x2c4134, 0x2c413c, 0x2c4141, 0x2c3c41, 0x2c3441, 0x2c3041, // F0
41        0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000, 0x000000  // F8
42    ]
43};
44
45// Создать текущую рабочую область
46function screen(id) {
47
48    var id = arguments.length == 0 ? "canvas" : arguments[0];
49    var el = document.getElementById(id);
50
51    canvas.element = el;
52    canvas.context = el.getContext('2d');
53    canvas.width   = el.width;
54    canvas.height  = el.height;
55    canvas.img     = canvas.context.getImageData(0, 0, el.width, el.height);
56
57    refresh();
58
59    // В случае необходимости использовать factor
60    return function(e) { canvas.factor = e; }
61}
62
63// Палитра
64function palette(i, r, g, b) {
65    canvas.dos[i] = (Math.floor(r)*65536 + Math.floor(g)*256 + Math.floor(b));
66}
67
68// Выгрузить данные
69function flush() { canvas.context.putImageData(canvas.img, 0, 0); }
70
71// Цвет VGA ДОС
72function dos(id) { return canvas.dos[id & 255]; }
73
74// Наблюдатель изменений в картинке
75function refresh() {
76
77    if (canvas.refresh) flush();
78
79    canvas.refresh = 0;
80    setTimeout("refresh()", 25);
81}
82
83// -------------------------------------------------------
84// ФУНКЦИИ РИСОВАНИЯ
85// -------------------------------------------------------
86
87// Нарисовать пиксель на экране
88function pset(x, y, c) {
89
90    x = Math.floor(x);
91    y = Math.floor(y);
92    f = canvas.factor;
93    canvas.refresh = 1;
94
95    for (var i = f*y; i < f*y + f; i++)
96    for (var j = f*x; j < f*x + f; j++) {
97
98        if (j >= 0 && i >= 0 && j < canvas.width && i < canvas.height) {
99
100            var p = 4*(j + i * canvas.width);
101            canvas.img.data[p    ] =  (c >> 16) & 0xff;
102            canvas.img.data[p + 1] =  (c >>  8) & 0xff;
103            canvas.img.data[p + 2] =  (c      ) & 0xff;
104            canvas.img.data[p + 3] = ((c >> 24) & 0xff) ^ 0xff;
105        }
106    }
107};
108
109// Нарисовать блок на экране
110function block(x1, y1, x2, y2, c) {
111
112    for (var y = y1; y <= y2; y++) {
113        for (var x = x1; x <= x2; x++) {
114            pset(x, y, c);
115        }
116    }
117};
118
119// Нарисовать линию на экране
120function line(x1, y1, x2, y2, c) {
121
122    x1 = Math.floor(x1); y1 = Math.floor(y1);
123    x2 = Math.floor(x2); y2 = Math.floor(y2);
124
125    var deltax = Math.abs(x2 - x1);
126    var deltay = Math.abs(y2 - y1);
127    var signx  = x1 < x2 ? 1 : -1;
128    var signy  = y1 < y2 ? 1 : -1;
129
130    var error = deltax - deltay;
131    var error2;
132
133    pset(x2, y2, c);
134    while (x1 !== x2 || y1 !== y2)
135    {
136        pset(x1, y1, c);
137        error2 = error * 2;
138
139        if (error2 > -deltay) {
140            error -= deltay;
141            x1 += signx;
142        }
143
144        if (error2 < deltax) {
145            error += deltax;
146            y1 += signy;
147        }
148    }
149};

§ Файл шрифтов

1var $cursor = {
2    x: 0,
3    y: 0,
4    height: 16,
5    fr: 0xffffff,
6    bg: 0x000000
7};
8
9var dosfont8x16 = [
10
11    /* $00 */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
12    /* $01 */ [0, 0, 126, 129, 165, 165, 165, 129, 129, 189, 153, 129, 126, 0, 0, 0],
13    /* $02 */ [0, 0, 126, 255, 219, 219, 219, 255, 255, 195, 231, 255, 126, 0, 0, 0],
14    /* $03 */ [0, 0, 108, 254, 254, 254, 254, 254, 254, 124, 56, 16, 0, 0, 0, 0],
15    /* $04 */ [0, 0, 0, 0, 16, 56, 124, 254, 124, 56, 16, 0, 0, 0, 0, 0],
16    /* $05 */ [0, 0, 0, 24, 60, 60, 231, 231, 231, 24, 24, 60, 0, 0, 0, 0],
17    /* $06 */ [0, 0, 0, 24, 60, 126, 255, 255, 126, 24, 24, 60, 0, 0, 0, 0],
18    /* $07 */ [0, 0, 0, 0, 0, 24, 60, 60, 24, 0, 0, 0, 0, 0, 0, 0],
19    /* $08 */ [255, 255, 255, 255, 255, 255, 231, 195, 195, 231, 255, 255, 255, 255, 255, 255],
20    /* $09 */ [0, 0, 0, 0, 0, 60, 102, 66, 66, 102, 60, 0, 0, 0, 0, 0],
21    /* $0A */ [255, 255, 255, 255, 195, 153, 189, 189, 153, 195, 255, 255, 255, 255, 255, 255],
22    /* $0B */ [0, 0, 0, 30, 14, 26, 50, 120, 204, 204, 204, 120, 0, 0, 0, 0],
23    /* $0C */ [0, 0, 0, 60, 102, 102, 102, 60, 24, 126, 24, 24, 0, 0, 0, 0],
24    /* $0D */ [0, 0, 0, 63, 51, 63, 48, 48, 48, 112, 240, 224, 0, 0, 0, 0],
25    /* $0E */ [0, 0, 0, 127, 99, 127, 99, 99, 99, 103, 231, 230, 192, 0, 0, 0],
26    /* $0F */ [0, 0, 0, 24, 24, 219, 60, 231, 60, 219, 24, 24, 0, 0, 0, 0],
27    /* $10 */ [0, 0, 0, 128, 192, 224, 248, 254, 248, 224, 192, 128, 0, 0, 0, 0],
28    /* $11 */ [0, 0, 0, 2, 6, 14, 62, 254, 62, 14, 6, 2, 0, 0, 0, 0],
29    /* $12 */ [0, 0, 0, 24, 60, 126, 24, 24, 24, 24, 24, 24, 126, 60, 24, 0],
30    /* $13 */ [0, 0, 0, 102, 102, 102, 102, 102, 102, 0, 102, 102, 0, 0, 0, 0],
31    /* $14 */ [0, 0, 0, 127, 219, 219, 219, 123, 27, 27, 27, 27, 0, 0, 0, 0],
32    /* $15 */ [0, 0, 124, 198, 96, 56, 108, 198, 198, 108, 56, 12, 198, 124, 0, 0],
33    /* $16 */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 254, 254, 0, 0, 0, 0],
34    /* $17 */ [0, 0, 0, 24, 60, 126, 24, 24, 24, 126, 60, 24, 126, 0, 0, 0],
35    /* $18 */ [0, 0, 0, 24, 60, 126, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0],
36    /* $19 */ [0, 0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 126, 60, 24, 0],
37    /* $1A */ [0, 0, 0, 0, 0, 24, 12, 254, 12, 24, 0, 0, 0, 0, 0, 0],
38    /* $1B */ [0, 0, 0, 0, 0, 48, 96, 254, 96, 48, 0, 0, 0, 0, 0, 0],
39    /* $1C */ [0, 0, 0, 0, 0, 0, 192, 192, 192, 254, 0, 0, 0, 0, 0, 0],
40    /* $1D */ [0, 0, 0, 0, 0, 40, 108, 254, 108, 40, 0, 0, 0, 0, 0, 0],
41    /* $1E */ [0, 0, 0, 0, 16, 56, 56, 124, 124, 254, 254, 0, 0, 0, 0, 0],
42    /* $1F */ [0, 0, 0, 254, 124, 56, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0],
43    /* $20   */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
44    /* $21 ! */ [0, 0, 24, 60, 60, 60, 60, 24, 24, 24, 0, 0, 24, 0, 0, 0],
45    /* $22 " */ [0, 102, 102, 102, 102, 102, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0],
46    /* $23 # */ [0, 0, 108, 108, 108, 254, 108, 108, 108, 254, 108, 108, 108, 0, 0, 0],
47    /* $24 $ */ [24, 24, 24, 124, 198, 194, 192, 124, 6, 134, 198, 124, 24, 24, 24, 0],
48    /* $25 % */ [0, 0, 0, 0, 0, 194, 198, 12, 24, 48, 102, 198, 0, 0, 0, 0],
49    /* $26 & */ [0, 0, 56, 108, 108, 108, 56, 118, 220, 204, 204, 204, 118, 0, 0, 0],
50    /* $27 ' */ [0, 48, 48, 48, 48, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
51    /* $28 ( */ [0, 0, 12, 24, 48, 48, 48, 48, 48, 48, 48, 24, 12, 0, 0, 0],
52    /* $29 ) */ [0, 0, 48, 24, 12, 12, 12, 12, 12, 12, 12, 24, 48, 0, 0, 0],
53    /* $2A * */ [0, 0, 0, 0, 102, 102, 60, 255, 60, 102, 102, 0, 0, 0, 0, 0],
54    /* $2B + */ [0, 0, 0, 0, 24, 24, 24, 126, 24, 24, 24, 0, 0, 0, 0, 0],
55    /* $2C , */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 48, 0, 0],
56    /* $2D - */ [0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 0, 0, 0, 0, 0, 0],
57    /* $2E . */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0],
58    /* $2F / */ [0, 0, 0, 2, 6, 12, 24, 48, 96, 192, 128, 0, 0, 0, 0, 0],
59    /* $30 0 */ [0, 0, 124, 198, 198, 206, 222, 246, 246, 230, 198, 198, 124, 0, 0, 0],
60    /* $31 1 */ [0, 0, 24, 24, 56, 120, 24, 24, 24, 24, 24, 24, 126, 0, 0, 0],
61    /* $32 2 */ [0, 0, 124, 198, 198, 6, 6, 12, 24, 48, 96, 198, 254, 0, 0, 0],
62    /* $33 3 */ [0, 0, 124, 198, 6, 6, 6, 60, 6, 6, 6, 198, 124, 0, 0, 0],
63    /* $34 4 */ [0, 0, 12, 28, 60, 108, 204, 204, 254, 12, 12, 12, 30, 0, 0, 0],
64    /* $35 5 */ [0, 0, 254, 192, 192, 192, 252, 6, 6, 6, 6, 198, 124, 0, 0, 0],
65    /* $36 6 */ [0, 0, 56, 96, 192, 192, 252, 198, 198, 198, 198, 198, 124, 0, 0, 0],
66    /* $37 7 */ [0, 0, 254, 198, 198, 6, 6, 12, 24, 48, 48, 48, 48, 0, 0, 0],
67    /* $38 8 */ [0, 0, 124, 198, 198, 198, 198, 124, 198, 198, 198, 198, 124, 0, 0, 0],
68    /* $39 9 */ [0, 0, 124, 198, 198, 198, 198, 198, 126, 6, 6, 12, 120, 0, 0, 0],
69    /* $3A : */ [0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0],
70    /* $3B ; */ [0, 0, 0, 24, 24, 0, 0, 0, 0, 24, 24, 24, 24, 48, 0, 0],
71    /* $3C < */ [0, 0, 0, 6, 12, 24, 48, 96, 48, 24, 12, 6, 0, 0, 0, 0],
72    /* $3D = */ [0, 0, 0, 0, 0, 0, 126, 0, 0, 126, 0, 0, 0, 0, 0, 0],
73    /* $3E > */ [0, 0, 0, 96, 48, 24, 12, 6, 12, 24, 48, 96, 0, 0, 0, 0],
74    /* $3F ? */ [0, 0, 124, 198, 198, 198, 12, 24, 24, 24, 0, 24, 24, 0, 0, 0],
75    /* $40 @ */ [0, 0, 124, 198, 198, 198, 222, 222, 222, 220, 192, 192, 124, 0, 0, 0],
76    /* $41 A */ [0, 0, 16, 56, 108, 198, 198, 198, 254, 198, 198, 198, 198, 0, 0, 0],
77    /* $42 B */ [0, 0, 252, 102, 102, 102, 102, 124, 102, 102, 102, 102, 252, 0, 0, 0],
78    /* $43 C */ [0, 0, 124, 198, 198, 192, 192, 192, 192, 198, 198, 198, 124, 0, 0, 0],
79    /* $44 D */ [0, 0, 252, 102, 102, 102, 102, 102, 102, 102, 102, 102, 252, 0, 0, 0],
80    /* $45 E */ [0, 0, 254, 102, 98, 96, 104, 120, 104, 104, 98, 102, 254, 0, 0, 0],
81    /* $46 F */ [0, 0, 254, 102, 98, 96, 104, 120, 104, 104, 96, 96, 240, 0, 0, 0],
82    /* $47 G */ [0, 0, 124, 198, 198, 192, 192, 192, 222, 198, 198, 198, 124, 0, 0, 0],
83    /* $48 H */ [0, 0, 198, 198, 198, 198, 198, 254, 198, 198, 198, 198, 198, 0, 0, 0],
84    /* $49 I */ [0, 0, 60, 24, 24, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0],
85    /* $4A J */ [0, 0, 30, 12, 12, 12, 12, 12, 12, 12, 204, 204, 120, 0, 0, 0],
86    /* $4B K */ [0, 0, 230, 102, 102, 108, 108, 120, 108, 108, 102, 102, 230, 0, 0, 0],
87    /* $4C L */ [0, 0, 240, 96, 96, 96, 96, 96, 96, 96, 98, 102, 254, 0, 0, 0],
88    /* $4D M */ [0, 0, 198, 198, 238, 254, 254, 214, 198, 198, 198, 198, 198, 0, 0, 0],
89    /* $4E N */ [0, 0, 198, 198, 230, 246, 254, 222, 206, 198, 198, 198, 198, 0, 0, 0],
90    /* $4F O */ [0, 0, 124, 198, 198, 198, 198, 198, 198, 198, 198, 198, 124, 0, 0, 0],
91    /* $50 P */ [0, 0, 252, 102, 102, 102, 102, 102, 124, 96, 96, 96, 240, 0, 0, 0],
92    /* $51 Q */ [0, 0, 124, 198, 198, 198, 198, 198, 198, 214, 222, 124, 12, 0, 0, 0],
93    /* $52 R */ [0, 0, 252, 102, 102, 102, 102, 124, 108, 102, 102, 102, 230, 0, 0, 0],
94    /* $53 S */ [0, 0, 124, 198, 198, 198, 96, 56, 12, 198, 198, 198, 124, 0, 0, 0],
95    /* $54 T */ [0, 0, 126, 126, 90, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0],
96    /* $55 U */ [0, 0, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 124, 0, 0, 0],
97    /* $56 V */ [0, 0, 198, 198, 198, 198, 198, 198, 198, 198, 108, 56, 16, 0, 0, 0],
98    /* $57 W */ [0, 0, 198, 198, 198, 198, 198, 214, 214, 254, 124, 108, 108, 0, 0, 0],
99    /* $58 X */ [0, 0, 198, 198, 198, 108, 56, 56, 56, 108, 198, 198, 198, 0, 0, 0],
100    /* $59 Y */ [0, 0, 102, 102, 102, 102, 102, 60, 24, 24, 24, 24, 60, 0, 0, 0],
101    /* $5A Z */ [0, 0, 254, 198, 198, 140, 24, 48, 96, 194, 198, 198, 254, 0, 0, 0],
102    /* $5B [ */ [0, 0, 60, 48, 48, 48, 48, 48, 48, 48, 48, 48, 60, 0, 0, 0],
103    /* $5C \ */ [0, 0, 0, 128, 192, 224, 112, 56, 28, 14, 6, 2, 0, 0, 0, 0],
104    /* $5D ] */ [0, 0, 60, 12, 12, 12, 12, 12, 12, 12, 12, 12, 60, 0, 0, 0],
105    /* $5E ^ */ [16, 16, 56, 108, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
106    /* $5F _ */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 0],
107    /* $60 ` */ [48, 48, 48, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
108    /* $61 a */ [0, 0, 0, 0, 0, 120, 204, 12, 124, 204, 204, 204, 118, 0, 0, 0],
109    /* $62 b */ [0, 0, 224, 96, 96, 96, 120, 108, 102, 102, 102, 102, 124, 0, 0, 0],
110    /* $63 c */ [0, 0, 0, 0, 0, 124, 198, 198, 192, 192, 198, 198, 124, 0, 0, 0],
111    /* $64 d */ [0, 0, 28, 12, 12, 12, 60, 108, 204, 204, 204, 204, 118, 0, 0, 0],
112    /* $65 e */ [0, 0, 0, 0, 0, 124, 198, 198, 254, 192, 198, 198, 124, 0, 0, 0],
113    /* $66 f */ [0, 0, 56, 108, 100, 96, 240, 96, 96, 96, 96, 96, 240, 0, 0, 0],
114    /* $67 g */ [0, 0, 0, 0, 0, 118, 204, 204, 204, 204, 204, 124, 12, 204, 120, 0],
115    /* $68 h */ [0, 0, 224, 96, 96, 108, 118, 102, 102, 102, 102, 102, 230, 0, 0, 0],
116    /* $69 i */ [0, 0, 24, 24, 0, 56, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0],
117    /* $6A j */ [0, 0, 6, 6, 0, 14, 6, 6, 6, 6, 6, 6, 102, 102, 60, 0],
118    /* $6B k */ [0, 0, 224, 96, 96, 102, 102, 108, 120, 108, 102, 102, 230, 0, 0, 0],
119    /* $6C l */ [0, 0, 56, 24, 24, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0],
120    /* $6D m */ [0, 0, 0, 0, 0, 236, 254, 214, 214, 214, 198, 198, 198, 0, 0, 0],
121    /* $6E n */ [0, 0, 0, 0, 0, 220, 102, 102, 102, 102, 102, 102, 102, 0, 0, 0],
122    /* $6F o */ [0, 0, 0, 0, 0, 124, 198, 198, 198, 198, 198, 198, 124, 0, 0, 0],
123    /* $70 p */ [0, 0, 0, 0, 0, 220, 102, 102, 102, 102, 102, 102, 124, 96, 240, 0],
124    /* $71 q */ [0, 0, 0, 0, 0, 118, 204, 204, 204, 204, 204, 204, 124, 12, 30, 0],
125    /* $72 r */ [0, 0, 0, 0, 0, 220, 118, 102, 96, 96, 96, 96, 240, 0, 0, 0],
126    /* $73 s */ [0, 0, 0, 0, 0, 124, 198, 198, 112, 28, 198, 198, 124, 0, 0, 0],
127    /* $74 t */ [0, 0, 16, 48, 48, 252, 48, 48, 48, 48, 48, 54, 28, 0, 0, 0],
128    /* $75 u */ [0, 0, 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 118, 0, 0, 0],
129    /* $76 v */ [0, 0, 0, 0, 0, 102, 102, 102, 102, 102, 102, 60, 24, 0, 0, 0],
130    /* $77 w */ [0, 0, 0, 0, 0, 198, 198, 198, 214, 214, 254, 108, 108, 0, 0, 0],
131    /* $78 x */ [0, 0, 0, 0, 0, 198, 198, 108, 56, 56, 108, 198, 198, 0, 0, 0],
132    /* $79 y  */ [0, 0, 0, 0, 0, 198, 198, 198, 198, 198, 198, 126, 6, 12, 248, 0],
133    /* $7A z */ [0, 0, 0, 0, 0, 254, 198, 204, 24, 48, 102, 198, 254, 0, 0, 0],
134    /* $7B [ */ [0, 14, 24, 24, 24, 24, 24, 112, 112, 24, 24, 24, 24, 24, 14, 0],
135    /* $7C | */ [0, 0, 24, 24, 24, 24, 24, 0, 24, 24, 24, 24, 24, 0, 0, 0],
136    /* $7D ] */ [0, 112, 24, 24, 24, 24, 24, 14, 14, 24, 24, 24, 24, 24, 112, 0],
137    /* $7E ~ */ [0, 0, 118, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
138    /* $7F   */ [0, 0, 0, 0, 16, 56, 108, 198, 198, 198, 198, 254, 0, 0, 0, 0],         // Домик непечатаемый
139    /* $80 А */ [0, 0, 16, 56, 108, 198, 198, 198, 254, 198, 198, 198, 198, 0, 0, 0],
140    /* $81 Б */ [0, 0, 254, 102, 98, 96, 124, 102, 102, 102, 102, 102, 252, 0, 0, 0],
141    /* $82 В */ [0, 0, 252, 102, 102, 102, 124, 102, 102, 102, 102, 102, 252, 0, 0, 0],
142    /* $83 Г */ [0, 0, 254, 102, 98, 96, 96, 96, 96, 96, 96, 96, 240, 0, 0, 0],
143    /* $84 Д */ [0, 0, 62, 102, 102, 102, 102, 102, 102, 102, 102, 102, 255, 195, 195, 0],
144    /* $85 Е */ [0, 0, 254, 102, 102, 98, 104, 120, 104, 98, 102, 102, 254, 0, 0, 0],
145    /* $86 Ж */ [0, 0, 214, 214, 214, 124, 56, 124, 214, 214, 214, 214, 214, 0, 0, 0],
146    /* $87 З */ [0, 0, 124, 198, 6, 6, 6, 60, 6, 6, 6, 198, 124, 0, 0, 0],
147    /* $88 И */ [0, 0, 198, 198, 206, 222, 254, 246, 230, 198, 198, 198, 198, 0, 0, 0],
148    /* $89 Й */ [56, 56, 198, 198, 206, 222, 254, 246, 230, 198, 198, 198, 198, 0, 0, 0],
149    /* $8A К */ [0, 0, 230, 102, 108, 108, 120, 108, 108, 102, 102, 102, 230, 0, 0, 0],
150    /* $8B Л */ [0, 0, 62, 102, 102, 102, 102, 102, 102, 102, 102, 102, 230, 0, 0, 0],
151    /* $8C М */ [0, 0, 198, 238, 254, 254, 214, 198, 198, 198, 198, 198, 198, 0, 0, 0],
152    /* $8D Н */ [0, 0, 198, 198, 198, 198, 254, 198, 198, 198, 198, 198, 198, 0, 0, 0],
153    /* $8E О */ [0, 0, 124, 198, 198, 198, 198, 198, 198, 198, 198, 198, 124, 0, 0, 0],
154    /* $8F П */ [0, 0, 254, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 0, 0, 0],
155    /* $90 Р */ [0, 0, 252, 102, 102, 102, 102, 102, 124, 96, 96, 96, 240, 0, 0, 0],
156    /* $91 С */ [0, 0, 124, 198, 198, 192, 192, 192, 192, 198, 198, 198, 124, 0, 0, 0],
157    /* $92 Т */ [0, 0, 126, 126, 90, 24, 24, 24, 24, 24, 24, 24, 60, 0, 0, 0],
158    /* $93 У */ [0, 0, 198, 198, 198, 198, 198, 126, 6, 6, 6, 198, 124, 0, 0, 0],
159    /* $94 Ф */ [0, 0, 24, 126, 219, 219, 219, 219, 219, 219, 219, 126, 24, 0, 0, 0],
160    /* $95 Х */ [0, 0, 198, 198, 198, 108, 56, 56, 56, 108, 198, 198, 198, 0, 0, 0],
161    /* $96 Ц */ [0, 0, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 254, 6, 6, 0],
162    /* $97 Ч */ [0, 0, 198, 198, 198, 198, 198, 198, 126, 6, 6, 6, 6, 0, 0, 0],
163    /* $98 Ш */ [0, 0, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 254, 0, 0, 0],
164    /* $99 Щ */ [0, 0, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 254, 3, 3, 0],
165    /* $9A Ъ */ [0, 0, 248, 240, 176, 48, 60, 54, 54, 54, 54, 54, 124, 0, 0, 0],
166    /* $9B Ы */ [0, 0, 198, 198, 198, 198, 246, 222, 222, 222, 222, 222, 246, 0, 0, 0],
167    /* $9C Ь */ [0, 0, 240, 96, 96, 96, 124, 102, 102, 102, 102, 102, 252, 0, 0, 0],
168    /* $9D Э */ [0, 0, 120, 204, 134, 134, 38, 62, 38, 134, 134, 204, 120, 0, 0, 0],
169    /* $9E Ю */ [0, 0, 156, 182, 182, 182, 182, 246, 182, 182, 182, 182, 156, 0, 0, 0],
170    /* $9F Я */ [0, 0, 126, 204, 204, 204, 204, 124, 108, 204, 204, 206, 206, 0, 0, 0],
171    /* $A0 а */ [0, 0, 0, 0, 0, 120, 204, 12, 124, 204, 204, 204, 118, 0, 0, 0],
172    /* $A1 б */ [0, 0, 0, 28, 48, 96, 124, 102, 102, 102, 102, 102, 60, 0, 0, 0],
173    /* $A2 в */ [0, 0, 0, 0, 0, 252, 102, 102, 124, 102, 102, 102, 252, 0, 0, 0],
174    /* $A3 г */ [0, 0, 0, 0, 0, 254, 98, 96, 96, 96, 96, 96, 240, 0, 0, 0],
175    /* $A4 д */ [0, 0, 0, 0, 0, 62, 102, 102, 102, 102, 102, 102, 255, 195, 195, 0],
176    /* $A5 е */ [0, 0, 0, 0, 0, 124, 198, 198, 254, 192, 192, 198, 124, 0, 0, 0],
177    /* $A6 ж */ [0, 0, 0, 0, 0, 214, 214, 214, 124, 124, 214, 214, 214, 0, 0, 0],
178    /* $A7 з */ [0, 0, 0, 0, 0, 60, 102, 102, 12, 6, 102, 102, 60, 0, 0, 0],
179    /* $A8 и */ [0, 0, 0, 0, 0, 198, 206, 222, 254, 246, 230, 198, 198, 0, 0, 0],
180    /* $A9 й */ [0, 0, 56, 56, 0, 198, 206, 222, 254, 246, 230, 198, 198, 0, 0, 0],
181    /* $AA к */ [0, 0, 0, 0, 0, 230, 102, 108, 120, 108, 102, 102, 230, 0, 0, 0],
182    /* $AB л */ [0, 0, 0, 0, 0, 62, 102, 102, 102, 102, 102, 102, 230, 0, 0, 0],
183    /* $AC м */ [0, 0, 0, 0, 0, 198, 238, 254, 254, 214, 198, 198, 198, 0, 0, 0],
184    /* $AD н */ [0, 0, 0, 0, 0, 198, 198, 198, 254, 198, 198, 198, 198, 0, 0, 0],
185    /* $AE о */ [0, 0, 0, 0, 0, 124, 198, 198, 198, 198, 198, 198, 124, 0, 0, 0],
186    /* $AF п */ [0, 0, 0, 0, 0, 254, 198, 198, 198, 198, 198, 198, 198, 0, 0, 0],
187    // Псевдографика $B0-$DF
188    /* $B0 */ [68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17, 68, 17],
189    /* $B1 */ [170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85, 170, 85],
190    /* $B2 */ [119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221, 119, 221],
191    /* $B3 */ [24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24],
192    /* $B4 */ [24, 24, 24, 24, 24, 24, 24, 24, 248, 24, 24, 24, 24, 24, 24, 24],
193    /* $B5 */ [24, 24, 24, 24, 24, 24, 248, 24, 248, 24, 24, 24, 24, 24, 24, 24],
194    /* $B6 */ [54, 54, 54, 54, 54, 54, 54, 54, 246, 54, 54, 54, 54, 54, 54, 54],
195    /* $B7 */ [0, 0, 0, 0, 0, 0, 0, 0, 254, 54, 54, 54, 54, 54, 54, 54],
196    /* $B8 */ [0, 0, 0, 0, 0, 0, 248, 24, 248, 24, 24, 24, 24, 24, 24, 24],
197    /* $B9 */ [54, 54, 54, 54, 54, 54, 246, 6, 246, 54, 54, 54, 54, 54, 54, 54],
198    /* $BA */ [54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54],
199    /* $BB */ [0, 0, 0, 0, 0, 0, 254, 6, 246, 54, 54, 54, 54, 54, 54, 54],
200    /* $BC */ [54, 54, 54, 54, 54, 54, 246, 6, 254, 0, 0, 0, 0, 0, 0, 0],
201    /* $BD */ [54, 54, 54, 54, 54, 54, 54, 54, 254, 0, 0, 0, 0, 0, 0, 0],
202    /* $BE */ [24, 24, 24, 24, 24, 24, 248, 24, 248, 0, 0, 0, 0, 0, 0, 0],
203    /* $BF */ [0, 0, 0, 0, 0, 0, 0, 0, 248, 24, 24, 24, 24, 24, 24, 24],
204    /* $C0 */ [24, 24, 24, 24, 24, 24, 24, 24, 31, 0, 0, 0, 0, 0, 0, 0],
205    /* $C1 */ [24, 24, 24, 24, 24, 24, 24, 24, 255, 0, 0, 0, 0, 0, 0, 0],
206    /* $C2 */ [0, 0, 0, 0, 0, 0, 0, 0, 255, 24, 24, 24, 24, 24, 24, 24],
207    /* $C3 */ [24, 24, 24, 24, 24, 24, 24, 24, 31, 24, 24, 24, 24, 24, 24, 24],
208    /* $C4 */ [0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0],
209    /* $C5 */ [24, 24, 24, 24, 24, 24, 24, 24, 255, 24, 24, 24, 24, 24, 24, 24],
210    /* $C6 */ [24, 24, 24, 24, 24, 24, 31, 24, 31, 24, 24, 24, 24, 24, 24, 24],
211    /* $C7 */ [54, 54, 54, 54, 54, 54, 54, 54, 55, 54, 54, 54, 54, 54, 54, 54],
212    /* $C8 */ [54, 54, 54, 54, 54, 54, 55, 48, 63, 0, 0, 0, 0, 0, 0, 0],
213    /* $C9 */ [0, 0, 0, 0, 0, 0, 63, 48, 55, 54, 54, 54, 54, 54, 54, 54],
214    /* $CA */ [54, 54, 54, 54, 54, 54, 247, 0, 255, 0, 0, 0, 0, 0, 0, 0],
215    /* $CB */ [0, 0, 0, 0, 0, 0, 255, 0, 247, 54, 54, 54, 54, 54, 54, 54],
216    /* $CC */ [54, 54, 54, 54, 54, 54, 55, 48, 55, 54, 54, 54, 54, 54, 54, 54],
217    /* $CD */ [0, 0, 0, 0, 0, 0, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0],
218    /* $CE */ [54, 54, 54, 54, 54, 54, 247, 0, 247, 54, 54, 54, 54, 54, 54, 54],
219    /* $CF */ [24, 24, 24, 24, 24, 24, 255, 0, 255, 0, 0, 0, 0, 0, 0, 0],
220    /* $D0 */ [54, 54, 54, 54, 54, 54, 54, 54, 255, 0, 0, 0, 0, 0, 0, 0],
221    /* $D1 */ [0, 0, 0, 0, 0, 0, 255, 0, 255, 24, 24, 24, 24, 24, 24, 24],
222    /* $D2 */ [0, 0, 0, 0, 0, 0, 0, 0, 255, 54, 54, 54, 54, 54, 54, 54],
223    /* $D3 */ [54, 54, 54, 54, 54, 54, 54, 54, 63, 0, 0, 0, 0, 0, 0, 0],
224    /* $D4 */ [24, 24, 24, 24, 24, 24, 31, 24, 31, 0, 0, 0, 0, 0, 0, 0],
225    /* $D5 */ [0, 0, 0, 0, 0, 0, 31, 24, 31, 24, 24, 24, 24, 24, 24, 24],
226    /* $D6 */ [0, 0, 0, 0, 0, 0, 0, 0, 63, 54, 54, 54, 54, 54, 54, 54],
227    /* $D7 */ [54, 54, 54, 54, 54, 54, 54, 54, 255, 54, 54, 54, 54, 54, 54, 54],
228    /* $D8 */ [24, 24, 24, 24, 24, 24, 255, 24, 255, 24, 24, 24, 24, 24, 24, 24],
229    /* $D9 */ [24, 24, 24, 24, 24, 24, 24, 24, 248, 0, 0, 0, 0, 0, 0, 0],
230    /* $DA */ [0, 0, 0, 0, 0, 0, 0, 0, 31, 24, 24, 24, 24, 24, 24, 24],
231    /* $DB */ [255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255],
232    /* $DC */ [0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255],
233    /* $DD */ [240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240],
234    /* $DE */ [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15],
235    /* $DF */ [255, 255, 255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0],
236
237    // Русский алфавит - второй том
238    /* $E0 р */ [0, 0, 0, 0, 0, 220, 102, 102, 102, 102, 102, 124, 96, 96, 240, 0],
239    /* $E1 с */ [0, 0, 0, 0, 0, 124, 198, 198, 192, 192, 198, 198, 124, 0, 0, 0],
240    /* $E2 т */ [0, 0, 0, 0, 0, 126, 90, 24, 24, 24, 24, 24, 60, 0, 0, 0],
241    /* $E3 у */ [0, 0, 0, 0, 0, 198, 198, 198, 198, 198, 198, 126, 6, 12, 248, 0],
242    /* $E4 ф */ [0, 0, 0, 0, 0, 24, 126, 219, 219, 219, 219, 219, 126, 24, 24, 0],
243    /* $E5 х */ [0, 0, 0, 0, 0, 198, 198, 108, 56, 56, 108, 198, 198, 0, 0, 0],
244    /* $E6 ц */ [0, 0, 0, 0, 0, 204, 204, 204, 204, 204, 204, 204, 254, 6, 6, 0],
245    /* $E7 ч */ [0, 0, 0, 0, 0, 198, 198, 198, 198, 126, 6, 6, 6, 0, 0, 0],
246    /* $E8 ш */ [0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 214, 214, 254, 0, 0, 0],
247    /* $E9 щ */ [0, 0, 0, 0, 0, 214, 214, 214, 214, 214, 214, 214, 254, 3, 3, 0],
248    /* $EA ъ */ [0, 0, 0, 0, 0, 248, 176, 60, 54, 54, 54, 54, 124, 0, 0, 0],
249    /* $EB ы */ [0, 0, 0, 0, 0, 198, 198, 246, 222, 222, 222, 222, 246, 0, 0, 0],
250    /* $EC ь */ [0, 0, 0, 0, 0, 240, 96, 96, 124, 102, 102, 102, 252, 0, 0, 0],
251    /* $ED э */ [0, 0, 0, 0, 0, 60, 102, 6, 30, 6, 102, 102, 60, 0, 0, 0],
252    /* $EE ю */ [0, 0, 0, 0, 0, 156, 182, 182, 246, 182, 182, 182, 156, 0, 0, 0],
253    /* $EF я */ [0, 0, 0, 0, 0, 126, 204, 204, 204, 124, 108, 204, 206, 0, 0, 0],
254
255    // Математические спецсимволы
256    /* $F0 === */ [0, 0, 0, 0, 254, 0, 0, 254, 0, 0, 254, 0, 0, 0, 0, 0],
257    /* $F1 +/- */ [0, 0, 0, 0, 24, 24, 126, 24, 24, 0, 0, 255, 0, 0, 0, 0],
258    /* $F2 >=  */ [0, 0, 0, 48, 24, 12, 6, 12, 24, 48, 0, 126, 0, 0, 0, 0],
259    /* $F3 <=  */ [0, 0, 0, 12, 24, 48, 96, 48, 24, 12, 0, 126, 0, 0, 0, 0],
260    /* $F4 It  */ [0, 0, 0, 14, 27, 27, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24],   // Верхний интеграл
261    /* $F5 Id  */ [24, 24, 24, 24, 24, 24, 24, 24, 24, 216, 216, 112, 0, 0, 0, 0], // Нижний
262    /* $F6 ./. */ [0, 0, 0, 0, 24, 24, 0, 126, 0, 24, 24, 0, 0, 0, 0, 0],          // Деление
263    /* $F7 ~~~ */ [0, 0, 0, 0, 0, 118, 220, 0, 118, 220, 0, 0, 0, 0, 0, 0],        // Не равно
264    /* $F8 o   */ [0, 56, 108, 108, 108, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],        // Градус
265    /* $F9 .   */ [0, 0, 0, 0, 0, 0, 0, 24, 24, 0, 0, 0, 0, 0, 0, 0],              // Крупная точка
266    /* $FA .   */ [0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0],               // Маленькая точка
267    /* $FB \/~ */ [0, 15, 12, 12, 12, 12, 12, 236, 108, 60, 28, 12, 0, 0, 0, 0],   // Корневище
268    /* $FC n   */ [0, 0, 216, 108, 108, 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0],    // Номер
269    /* $FD 2   */ [0, 0, 112, 216, 48, 96, 200, 248, 0, 0, 0, 0, 0, 0, 0, 0],      // Квадрат
270    /* $FE |   */ [0, 0, 0, 0, 60, 60, 60, 60, 60, 60, 60, 60, 0, 0, 0, 0],        // Прямоугольник
271    /* $FF     */ [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]                 // Пустая символга
272];
273
274var dosfont8x8 = [
275
276    [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
277    [0x7e, 0x81, 0xa5, 0x81, 0xbd, 0x99, 0x81, 0x7e],
278    [0x7e, 0xff, 0xdb, 0xff, 0xc3, 0xe7, 0xff, 0x7e],
279    [0x6c, 0xfe, 0xfe, 0xfe, 0x7c, 0x38, 0x10, 0x00],
280    [0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x10, 0x00],
281    [0x38, 0x7c, 0x38, 0xfe, 0xfe, 0x7c, 0x38, 0x7c],
282    [0x10, 0x10, 0x38, 0x7c, 0xfe, 0x7c, 0x38, 0x7c],
283    [0x00, 0x00, 0x18, 0x3c, 0x3c, 0x18, 0x00, 0x00],
284    [0xff, 0xff, 0xe7, 0xc3, 0xc3, 0xe7, 0xff, 0xff],
285    [0x00, 0x3c, 0x66, 0x42, 0x42, 0x66, 0x3c, 0x00],
286    [0xff, 0xc3, 0x99, 0xbd, 0xbd, 0x99, 0xc3, 0xff],
287    [0x0f, 0x07, 0x0f, 0x7d, 0xcc, 0xcc, 0xcc, 0x78],
288    [0x3c, 0x66, 0x66, 0x66, 0x3c, 0x18, 0x7e, 0x18],
289    [0x3f, 0x33, 0x3f, 0x30, 0x30, 0x70, 0xf0, 0xe0],
290    [0x7f, 0x63, 0x7f, 0x63, 0x63, 0x67, 0xe6, 0xc0],
291    [0x99, 0x5a, 0x3c, 0xe7, 0xe7, 0x3c, 0x5a, 0x99],
292    [0x80, 0xe0, 0xf8, 0xfe, 0xf8, 0xe0, 0x80, 0x00],
293    [0x02, 0x0e, 0x3e, 0xfe, 0x3e, 0x0e, 0x02, 0x00],
294    [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x7e, 0x3c, 0x18],
295    [0x66, 0x66, 0x66, 0x66, 0x66, 0x00, 0x66, 0x00],
296    [0x7f, 0xdb, 0xdb, 0x7b, 0x1b, 0x1b, 0x1b, 0x00],
297    [0x3e, 0x63, 0x38, 0x6c, 0x6c, 0x38, 0xcc, 0x78],
298    [0x00, 0x00, 0x00, 0x00, 0x7e, 0x7e, 0x7e, 0x00],
299    [0x18, 0x3c, 0x7e, 0x18, 0x7e, 0x3c, 0x18, 0xff],
300    [0x18, 0x3c, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00],
301    [0x18, 0x18, 0x18, 0x18, 0x7e, 0x3c, 0x18, 0x00],
302    [0x00, 0x18, 0x0c, 0xfe, 0x0c, 0x18, 0x00, 0x00],
303    [0x00, 0x30, 0x60, 0xfe, 0x60, 0x30, 0x00, 0x00],
304    [0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xfe, 0x00, 0x00],
305    [0x00, 0x24, 0x66, 0xff, 0x66, 0x24, 0x00, 0x00],
306    [0x00, 0x18, 0x3c, 0x7e, 0xff, 0xff, 0x00, 0x00],
307    [0x00, 0xff, 0xff, 0x7e, 0x3c, 0x18, 0x00, 0x00],
308    [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
309    [0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, 0x00],
310    [0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00],
311    [0x6c, 0x6c, 0xfe, 0x6c, 0xfe, 0x6c, 0x6c, 0x00],
312    [0x30, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x30, 0x00],
313    [0x00, 0xc6, 0xcc, 0x18, 0x30, 0x66, 0xc6, 0x00],
314    [0x38, 0x6c, 0x38, 0x76, 0xdc, 0xcc, 0x76, 0x00],
315    [0x60, 0x60, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00],
316    [0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00],
317    [0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00],
318    [0x00, 0x66, 0x3c, 0xff, 0x3c, 0x66, 0x00, 0x00],
319    [0x00, 0x30, 0x30, 0xfc, 0x30, 0x30, 0x00, 0x00],
320    [0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60],
321    [0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00],
322    [0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00],
323    [0x06, 0x0c, 0x18, 0x30, 0x60, 0xc0, 0x80, 0x00],
324    [0x7c, 0xc6, 0xce, 0xde, 0xf6, 0xe6, 0x7c, 0x00],
325    [0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xfc, 0x00],
326    [0x78, 0xcc, 0x0c, 0x38, 0x60, 0xcc, 0xfc, 0x00],
327    [0x78, 0xcc, 0x0c, 0x38, 0x0c, 0xcc, 0x78, 0x00],
328    [0x1c, 0x3c, 0x6c, 0xcc, 0xfe, 0x0c, 0x1e, 0x00],
329    [0xfc, 0xc0, 0xf8, 0x0c, 0x0c, 0xcc, 0x78, 0x00],
330    [0x38, 0x60, 0xc0, 0xf8, 0xcc, 0xcc, 0x78, 0x00],
331    [0xfc, 0xcc, 0x0c, 0x18, 0x30, 0x30, 0x30, 0x00],
332    [0x78, 0xcc, 0xcc, 0x78, 0xcc, 0xcc, 0x78, 0x00],
333    [0x78, 0xcc, 0xcc, 0x7c, 0x0c, 0x18, 0x70, 0x00],
334    [0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00],
335    [0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60],
336    [0x18, 0x30, 0x60, 0xc0, 0x60, 0x30, 0x18, 0x00],
337    [0x00, 0x00, 0xfc, 0x00, 0x00, 0xfc, 0x00, 0x00],
338    [0x60, 0x30, 0x18, 0x0c, 0x18, 0x30, 0x60, 0x00],
339    [0x78, 0xcc, 0x0c, 0x18, 0x30, 0x00, 0x30, 0x00],
340    [0x7c, 0xc6, 0xde, 0xde, 0xde, 0xc0, 0x78, 0x00],
341    [0x30, 0x78, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0x00],
342    [0xfc, 0x66, 0x66, 0x7c, 0x66, 0x66, 0xfc, 0x00],
343    [0x3c, 0x66, 0xc0, 0xc0, 0xc0, 0x66, 0x3c, 0x00],
344    [0xf8, 0x6c, 0x66, 0x66, 0x66, 0x6c, 0xf8, 0x00],
345    [0xfe, 0x62, 0x68, 0x78, 0x68, 0x62, 0xfe, 0x00],
346    [0xfe, 0x62, 0x68, 0x78, 0x68, 0x60, 0xf0, 0x00],
347    [0x3c, 0x66, 0xc0, 0xc0, 0xce, 0x66, 0x3e, 0x00],
348    [0xcc, 0xcc, 0xcc, 0xfc, 0xcc, 0xcc, 0xcc, 0x00],
349    [0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00],
350    [0x1e, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78, 0x00],
351    [0xe6, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0xe6, 0x00],
352    [0xf0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xfe, 0x00],
353    [0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00],
354    [0xc6, 0xe6, 0xf6, 0xde, 0xce, 0xc6, 0xc6, 0x00],
355    [0x38, 0x6c, 0xc6, 0xc6, 0xc6, 0x6c, 0x38, 0x00],
356    [0xfc, 0x66, 0x66, 0x7c, 0x60, 0x60, 0xf0, 0x00],
357    [0x78, 0xcc, 0xcc, 0xcc, 0xdc, 0x78, 0x1c, 0x00],
358    [0xfc, 0x66, 0x66, 0x7c, 0x6c, 0x66, 0xe6, 0x00],
359    [0x78, 0xcc, 0xe0, 0x70, 0x1c, 0xcc, 0x78, 0x00],
360    [0xfc, 0xb4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00],
361    [0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xfc, 0x00],
362    [0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00],
363    [0xc6, 0xc6, 0xc6, 0xd6, 0xfe, 0xee, 0xc6, 0x00],
364    [0xc6, 0xc6, 0x6c, 0x38, 0x38, 0x6c, 0xc6, 0x00],
365    [0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x30, 0x78, 0x00],
366    [0xfe, 0xc6, 0x8c, 0x18, 0x32, 0x66, 0xfe, 0x00],
367    [0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00],
368    [0xc0, 0x60, 0x30, 0x18, 0x0c, 0x06, 0x02, 0x00],
369    [0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00],
370    [0x10, 0x38, 0x6c, 0xc6, 0x00, 0x00, 0x00, 0x00],
371    [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff],
372    [0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00],
373    [0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00],
374    [0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0xdc, 0x00],
375    [0x00, 0x00, 0x78, 0xcc, 0xc0, 0xcc, 0x78, 0x00],
376    [0x1c, 0x0c, 0x0c, 0x7c, 0xcc, 0xcc, 0x76, 0x00],
377    [0x00, 0x00, 0x78, 0xcc, 0xfc, 0xc0, 0x78, 0x00],
378    [0x38, 0x6c, 0x60, 0xf0, 0x60, 0x60, 0xf0, 0x00],
379    [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8],
380    [0xe0, 0x60, 0x6c, 0x76, 0x66, 0x66, 0xe6, 0x00],
381    [0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00],
382    [0x0c, 0x00, 0x0c, 0x0c, 0x0c, 0xcc, 0xcc, 0x78],
383    [0xe0, 0x60, 0x66, 0x6c, 0x78, 0x6c, 0xe6, 0x00],
384    [0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00],
385    [0x00, 0x00, 0xcc, 0xfe, 0xfe, 0xd6, 0xc6, 0x00],
386    [0x00, 0x00, 0xf8, 0xcc, 0xcc, 0xcc, 0xcc, 0x00],
387    [0x00, 0x00, 0x78, 0xcc, 0xcc, 0xcc, 0x78, 0x00],
388    [0x00, 0x00, 0xdc, 0x66, 0x66, 0x7c, 0x60, 0xf0],
389    [0x00, 0x00, 0x76, 0xcc, 0xcc, 0x7c, 0x0c, 0x1e],
390    [0x00, 0x00, 0xdc, 0x76, 0x66, 0x60, 0xf0, 0x00],
391    [0x00, 0x00, 0x7c, 0xc0, 0x78, 0x0c, 0xf8, 0x00],
392    [0x10, 0x30, 0x7c, 0x30, 0x30, 0x34, 0x18, 0x00],
393    [0x00, 0x00, 0xcc, 0xcc, 0xcc, 0xcc, 0x76, 0x00],
394    [0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x78, 0x30, 0x00],
395    [0x00, 0x00, 0xc6, 0xd6, 0xfe, 0xfe, 0x6c, 0x00],
396    [0x00, 0x00, 0xc6, 0x6c, 0x38, 0x6c, 0xc6, 0x00],
397    [0x00, 0x00, 0xcc, 0xcc, 0xcc, 0x7c, 0x0c, 0xf8],
398    [0x00, 0x00, 0xfc, 0x98, 0x30, 0x64, 0xfc, 0x00],
399    [0x1c, 0x30, 0x30, 0xe0, 0x30, 0x30, 0x1c, 0x00],
400    [0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00],
401    [0xe0, 0x30, 0x30, 0x1c, 0x30, 0x30, 0xe0, 0x00],
402    [0x76, 0xdc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
403    [0x00, 0x10, 0x38, 0x6c, 0xc6, 0xc6, 0xfe, 0x00],
404    [0x1e, 0x36, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x00],
405    [0x7c, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00],
406    [0x7c, 0x66, 0x66, 0x7c, 0x66, 0x66, 0x7c, 0x00],
407    [0x7e, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00],
408    [0x38, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0xfe, 0xc6],
409    [0x7e, 0x60, 0x60, 0x7c, 0x60, 0x60, 0x7e, 0x00],
410    [0xdb, 0xdb, 0x7e, 0x3c, 0x7e, 0xdb, 0xdb, 0x00],
411    [0x3c, 0x66, 0x06, 0x1c, 0x06, 0x66, 0x3c, 0x00],
412    [0x66, 0x66, 0x6e, 0x7e, 0x76, 0x66, 0x66, 0x00],
413    [0x3c, 0x66, 0x6e, 0x7e, 0x76, 0x66, 0x66, 0x00],
414    [0x66, 0x6c, 0x78, 0x70, 0x78, 0x6c, 0x66, 0x00],
415    [0x1e, 0x36, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00],
416    [0xc6, 0xee, 0xfe, 0xfe, 0xd6, 0xc6, 0xc6, 0x00],
417    [0x66, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x66, 0x00],
418    [0x3c, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3c, 0x00],
419    [0x7e, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x00],
420    [0x7c, 0x66, 0x66, 0x66, 0x7c, 0x60, 0x60, 0x00],
421    [0x3c, 0x66, 0x60, 0x60, 0x60, 0x66, 0x3c, 0x00],
422    [0x7e, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00],
423    [0x66, 0x66, 0x66, 0x3e, 0x06, 0x66, 0x3c, 0x00],
424    [0x7e, 0xdb, 0xdb, 0xdb, 0x7e, 0x18, 0x18, 0x00],
425    [0x66, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x66, 0x00],
426    [0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x03],
427    [0x66, 0x66, 0x66, 0x3e, 0x06, 0x06, 0x06, 0x00],
428    [0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xff, 0x00],
429    [0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xff, 0x03],
430    [0xe0, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00],
431    [0xc6, 0xc6, 0xc6, 0xf6, 0xde, 0xde, 0xf6, 0x00],
432    [0x60, 0x60, 0x60, 0x7c, 0x66, 0x66, 0x7c, 0x00],
433    [0x78, 0x8c, 0x06, 0x3e, 0x06, 0x8c, 0x78, 0x00],
434    [0xce, 0xdb, 0xdb, 0xfb, 0xdb, 0xdb, 0xce, 0x00],
435    [0x3e, 0x66, 0x66, 0x66, 0x3e, 0x36, 0x66, 0x00],
436    [0x00, 0x00, 0x78, 0x0c, 0x7c, 0xcc, 0x76, 0x00],
437    [0x00, 0x3c, 0x60, 0x3c, 0x66, 0x66, 0x3c, 0x00],
438    [0x00, 0x00, 0x7c, 0x66, 0x7c, 0x66, 0x7c, 0x00],
439    [0x00, 0x00, 0x7e, 0x60, 0x60, 0x60, 0x60, 0x00],
440    [0x00, 0x00, 0x3c, 0x6c, 0x6c, 0x6c, 0xfe, 0xc6],
441    [0x00, 0x00, 0x3c, 0x66, 0x7e, 0x60, 0x3c, 0x00],
442    [0x00, 0x00, 0xdb, 0x7e, 0x3c, 0x7e, 0xdb, 0x00],
443    [0x00, 0x00, 0x3c, 0x66, 0x0c, 0x66, 0x3c, 0x00],
444    [0x00, 0x00, 0x66, 0x6e, 0x7e, 0x76, 0x66, 0x00],
445    [0x00, 0x18, 0x66, 0x6e, 0x7e, 0x76, 0x66, 0x00],
446    [0x00, 0x00, 0x66, 0x6c, 0x78, 0x6c, 0x66, 0x00],
447    [0x00, 0x00, 0x1e, 0x36, 0x66, 0x66, 0x66, 0x00],
448    [0x00, 0x00, 0xc6, 0xfe, 0xfe, 0xd6, 0xc6, 0x00],
449    [0x00, 0x00, 0x66, 0x66, 0x7e, 0x66, 0x66, 0x00],
450    [0x00, 0x00, 0x3c, 0x66, 0x66, 0x66, 0x3c, 0x00],
451    [0x00, 0x00, 0x7e, 0x66, 0x66, 0x66, 0x66, 0x00],
452    [0x11, 0x44, 0x11, 0x44, 0x11, 0x44, 0x11, 0x44],
453    [0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa],
454    [0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77, 0xdd, 0x77],
455    [0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18],
456    [0x18, 0x18, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18],
457    [0x18, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18],
458    [0x36, 0x36, 0x36, 0xf6, 0x36, 0x36, 0x36, 0x36],
459    [0x00, 0x00, 0x00, 0xfe, 0x36, 0x36, 0x36, 0x36],
460    [0x00, 0xf8, 0x18, 0xf8, 0x18, 0x18, 0x18, 0x18],
461    [0x36, 0xf6, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36],
462    [0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36],
463    [0x00, 0xfe, 0x06, 0xf6, 0x36, 0x36, 0x36, 0x36],
464    [0x36, 0xf6, 0x06, 0xfe, 0x00, 0x00, 0x00, 0x00],
465    [0x36, 0x36, 0x36, 0xfe, 0x00, 0x00, 0x00, 0x00],
466    [0x18, 0xf8, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00],
467    [0x00, 0x00, 0x00, 0xf8, 0x18, 0x18, 0x18, 0x18],
468    [0x18, 0x18, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00],
469    [0x18, 0x18, 0x18, 0xff, 0x00, 0x00, 0x00, 0x00],
470    [0x00, 0x00, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18],
471    [0x18, 0x18, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18],
472    [0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00],
473    [0x18, 0x18, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18],
474    [0x18, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18],
475    [0x36, 0x36, 0x36, 0x37, 0x36, 0x36, 0x36, 0x36],
476    [0x36, 0x37, 0x30, 0x3f, 0x00, 0x00, 0x00, 0x00],
477    [0x00, 0x3f, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36],
478    [0x36, 0xf7, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00],
479    [0x00, 0xff, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36],
480    [0x36, 0x37, 0x30, 0x37, 0x36, 0x36, 0x36, 0x36],
481    [0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00],
482    [0x36, 0xf7, 0x00, 0xf7, 0x36, 0x36, 0x36, 0x36],
483    [0x18, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00],
484    [0x36, 0x36, 0x36, 0xff, 0x00, 0x00, 0x00, 0x00],
485    [0x00, 0xff, 0x00, 0xff, 0x18, 0x18, 0x18, 0x18],
486    [0x00, 0x00, 0x00, 0xff, 0x36, 0x36, 0x36, 0x36],
487    [0x36, 0x36, 0x36, 0x3f, 0x00, 0x00, 0x00, 0x00],
488    [0x18, 0x1f, 0x18, 0x1f, 0x00, 0x00, 0x00, 0x00],
489    [0x00, 0x1f, 0x18, 0x1f, 0x18, 0x18, 0x18, 0x18],
490    [0x00, 0x00, 0x00, 0x3f, 0x36, 0x36, 0x36, 0x36],
491    [0x36, 0x36, 0x36, 0xff, 0x36, 0x36, 0x36, 0x36],
492    [0x18, 0xff, 0x18, 0xff, 0x18, 0x18, 0x18, 0x18],
493    [0x18, 0x18, 0x18, 0xf8, 0x00, 0x00, 0x00, 0x00],
494    [0x00, 0x00, 0x00, 0x1f, 0x18, 0x18, 0x18, 0x18],
495    [0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff],
496    [0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff],
497    [0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0],
498    [0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f],
499    [0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00],
500    [0x00, 0x00, 0x7c, 0x66, 0x66, 0x7c, 0x60, 0x00],
501    [0x00, 0x00, 0x3c, 0x66, 0x60, 0x66, 0x3c, 0x00],
502    [0x00, 0x00, 0x7e, 0x18, 0x18, 0x18, 0x18, 0x00],
503    [0x00, 0x00, 0x66, 0x66, 0x3e, 0x06, 0x3c, 0x00],
504    [0x00, 0x00, 0x7e, 0xdb, 0xdb, 0x7e, 0x18, 0x00],
505    [0x00, 0x00, 0x66, 0x3c, 0x18, 0x3c, 0x66, 0x00],
506    [0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x7f, 0x03],
507    [0x00, 0x00, 0x66, 0x66, 0x3e, 0x06, 0x06, 0x00],
508    [0x00, 0x00, 0xdb, 0xdb, 0xdb, 0xdb, 0xff, 0x00],
509    [0x00, 0x00, 0xdb, 0xdb, 0xdb, 0xdb, 0xff, 0x03],
510    [0x00, 0x00, 0xe0, 0x60, 0x7c, 0x66, 0x7c, 0x00],
511    [0x00, 0x00, 0xc6, 0xc6, 0xf6, 0xde, 0xf6, 0x00],
512    [0x00, 0x00, 0x60, 0x60, 0x7c, 0x66, 0x7c, 0x00],
513    [0x00, 0x00, 0x7c, 0x06, 0x3e, 0x06, 0x7c, 0x00],
514    [0x00, 0x00, 0xce, 0xdb, 0xfb, 0xdb, 0xce, 0x00],
515    [0x00, 0x00, 0x3e, 0x66, 0x3e, 0x36, 0x66, 0x00],
516    [0x6c, 0xfe, 0x80, 0xf8, 0x80, 0x80, 0xfe, 0x00],
517    [0x6c, 0x00, 0x7c, 0x82, 0xfe, 0x80, 0x7e, 0x00],
518    [0x3c, 0x62, 0xc0, 0xf8, 0xc0, 0x62, 0x3c, 0x00],
519    [0x00, 0x00, 0x3e, 0x60, 0x7c, 0x60, 0x3e, 0x00],
520    [0x48, 0x78, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00],
521    [0x50, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00],
522    [0x00, 0x18, 0x18, 0x00, 0x7e, 0x00, 0x18, 0x18],
523    [0x00, 0x76, 0xdc, 0x00, 0x76, 0xdc, 0x00, 0x00],
524    [0x00, 0x38, 0x6c, 0x6c, 0x38, 0x00, 0x00, 0x00],
525    [0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00],
526    [0x00, 0x00, 0x00, 0x38, 0x38, 0x00, 0x00, 0x00],
527    [0x03, 0x02, 0x06, 0x04, 0xcc, 0x68, 0x38, 0x10],
528    [0x8b, 0xcb, 0xe8, 0xb8, 0x98, 0x88, 0x88, 0x00],
529    [0x30, 0x48, 0x10, 0x20, 0x78, 0x00, 0x00, 0x00],
530    [0x00, 0x00, 0x7c, 0x7c, 0x7c, 0x7c, 0x00, 0x00],
531    [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
532];
533
534// Печать одного символа
535function printc(ch) {
536
537    var x = $cursor.x * 8,
538        y = $cursor.y * $cursor.height;
539
540    for (var i = 0; i < $cursor.height; i++) {
541
542        var font = $cursor.height == 8 ? dosfont8x8 : dosfont8x16;
543        var mask = font[ch.charCodeAt(0) & 255][i];
544        for (var j = 0; j < 8; j++) {
545
546            cl = mask & (1 << (7-j)) ? $cursor.fr : $cursor.bg;
547            if (cl >= 0) pset(x + j, y + i, cl);
548        }
549    }
550}
551
552// Печать строки
553function printf(s) {
554
555    for (var i = 0; i < s.length; i++) {
556
557        printc(s.substr(i, 1));
558        $cursor.x++;
559
560        if (8 * canvas.factor * $cursor.x >= canvas.width) {
561            $cursor.x = 0;
562            $cursor.y++;
563        }
564    }
565}
566
567// 8 или 16
568function fstyle(h) { $cursor.height = h; }
569
570// Установка позиции курсора
571function locate(x, y) {
572
573    $cursor.x = x;
574    $cursor.y = y;
575}