📄 qfont.c
字号:
#ifndef lintstatic char *sccsid = "@(#)qfont.c 4.1 (ULTRIX) 7/2/90";#endif lint/************************************************************************ * * * Copyright (c) 1984, 1987 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * This software is derived from software received from the * * University of California, Berkeley, and from Bell * * Laboratories. Use, duplication, or disclosure is subject to * * restrictions under license agreements with University of * * California and with AT&T. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************//* * The following tables are used to translate LK201 key strokes * into ascii characters. The tables also support the special * function keys. * * MODIFICATION HISTORY * * 23-Jun-88 darrell * Put the Firefox fonts within an #ifdef KERNEL, to keep ultrixload * small. In ultrixload firefox uses console callback routines to * print to the console, so the fonts are not needed. * * 07-Jun-88 darrell for Ali * Added VAX60 (Firefox LEGSS) support. * * 9-Nov-87 Tim Burke * * Modified to allow 8-bit input and output on graphics devices. This * involved changing the special function bit to be the 9-th instead * of the 8-th bit. The character font has also been increased to include * the printable characters of value greater than 0177. * To include 8-bit input the q_key entries must be changed to the * corresponding 8-bit character. */unsigned short q_key[]={ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 0 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 8 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 16 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 24 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 32 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 40 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 48 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 56 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 64 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 72 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x101 ,0x102 /* 80 */ ,0x103 ,0x104 ,0x105 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 88 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x106 ,0x107 ,0x108 ,0x109 /* 96 */ ,0x10a ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 104 */ ,0x00 ,0x1b ,0x08 ,0x0a ,0x10b ,0x00 ,0x00 ,0x00 /* 112 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x10c ,0x10d ,0x00 ,0x00 /* 120 */ ,0x10e ,0x10f ,0x110 ,0x111 ,0x00 ,0x00 ,0x00 ,0x00 /* 128 */ ,0x00 ,0x00 ,0x112 ,0x113 ,0x114 ,0x115 ,0x116 ,0x117 /* 136 */ ,0x00 ,0x00 ,0x120 ,0x00 ,0x121 ,0x122 ,0x123 ,0x124 /* 144 */ ,0x125 ,0x126 ,0x127 ,0x128 ,0x129 ,0x12a ,0x12b ,0x12c /* 152 */ ,0x12d ,0x118 ,0x119 ,0x11a ,0x11b ,0x00 ,0x00 ,0x11c /* 160 */ ,0x11d ,0x11e ,0x11f ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 168 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 176 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x7f ,'\r' ,0x09 ,'`' /* 184 */ ,'1' ,'q' ,'a' ,'z' ,0x00 ,'2' ,'w' ,'s' /* 192 */ ,'x' ,'<' ,0x00 ,'3' ,'e' ,'d' ,'c' ,0x00 /* 200 */ ,'4' ,'r' ,'f' ,'v' ,' ' ,0x00 ,'5' ,'t' /* 208 */ ,'g' ,'b' ,0x00 ,'6' ,'y' ,'h' ,'n' ,0x00 /* 216 */ ,'7' ,'u' ,'j' ,'m' ,0x00 ,'8' ,'i' ,'k' /* 224 */ ,',' ,0x00 ,'9' ,'o' ,'l' ,'.' ,0x00 ,'0' /* 232 */ ,'p' ,0x00 ,';' ,'/' ,0x00 ,'=' ,']' ,'\\' /* 240 */ ,0x00 ,'-' ,'[' ,'\'' ,0x00 ,0x00 ,0x00 ,0x00 /* 248 */};unsigned short q_shift_key[]={ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 0 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 8 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 16 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 24 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 32 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 40 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 48 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 56 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 64 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 72 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x101 ,0x102 /* 80 */ ,0x103 ,0x104 ,0x105 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 88 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x106 ,0x107 ,0x108 ,0x109 /* 96 */ ,0x10a ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 104 */ ,0x00 ,0x1b ,0x08 ,0x0a ,0x10b ,0x00 ,0x00 ,0x00 /* 112 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x10c ,0x10d ,0x00 ,0x00 /* 120 */ ,0x10e ,0x10f ,0x110 ,0x111 ,0x00 ,0x00 ,0x00 ,0x00 /* 128 */ ,0x00 ,0x00 ,0x112 ,0x113 ,0x114 ,0x115 ,0x116 ,0x117 /* 136 */ ,0x00 ,0x00 ,0x120 ,0x00 ,0x121 ,0x122 ,0x123 ,0x124 /* 144 */ ,0x125 ,0x126 ,0x127 ,0x128 ,0x129 ,0x12a ,0x12b ,0x12c /* 152 */ ,0x12d ,0x118 ,0x119 ,0x11a ,0x11b ,0x00 ,0x00 ,0x11c /* 160 */ ,0x11d ,0x11e ,0x11f ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 168 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 /* 176 */ ,0x00 ,0x00 ,0x00 ,0x00 ,0x7f ,'\r' ,0x09 ,'~' /* 184 */ ,'!' ,'Q' ,'A' ,'Z' ,0x00 ,'@' ,'W' ,'S' /* 192 */ ,'X' ,'>' ,0x00 ,'#' ,'E' ,'D' ,'C' ,0x00 /* 200 */ ,'$' ,'R' ,'F' ,'V' ,' ' ,0x00 ,'%' ,'T' /* 208 */ ,'G' ,'B' ,0x00 ,'^' ,'Y' ,'H' ,'N' ,0x00 /* 216 */ ,'&' ,'U' ,'J' ,'M' ,0x00 ,'*' ,'I' ,'K' /* 224 */ ,',' ,0x00 ,'(' ,'O' ,'L' ,'.' ,0x00 ,')' /* 232 */ ,'P' ,0x00 ,':' ,'?' ,0x00 ,'+' ,'}' ,'|' /* 240 */ ,0x00 ,'_' ,'{' ,'"' ,0x00 ,0x00 ,0x00 ,0x00 /* 248 */};/* * LK201 special purpose keys. Translations from the tables above * includes codes for the function keys and other goodies. They can * be determined by the presence of the 8th bit being set. The * following table is accessed by removing that bit and using the * result as the index to the following table. Note that table begins * a null entry. */char *q_special[]={ 0, "\33[11~", /* f1 */ "\33[12~", /* f2 */ "\33[13~", /* f3 */ "\33[14~", /* f4 */ "\33[15~", /* f5 */ "\33[17~", /* f6 */ "\33[18~", /* f7 */ "\33[19~", /* f8 */ "\33[20~", /* f9 */ "\33[21~", /* f10 */ "\33[26~", /* f14 */ "\33[28~", /* f15 */ "\33[29~", /* f16 */ "\33[31~", /* f17 */ "\33[32~", /* f18 */ "\33[33~", /* f19 */ "\33[34~", /* f20 */ "\33[1~", /* find */ "\33[2~", /* insert */ "\33[3~", /* remove */ "\33[4~", /* select */ "\33[5~", /* prev */ "\33[6~", /* next */ "\33OP", /* pf1 */ "\33OQ", /* pf2 */ "\33OR", /* pf3 */ "\33OS", /* pf4 */ "\33[D", /* left */ "\33[C", /* right */ "\33[B", /* down */ "\33[A", /* up */ "\33Op", /* key pad 0 */ "\33On", /* key pad . */ "\33OM", /* key pad enter */ "\33Oq", /* key pad 1 */ "\33Or", /* key pad 2 */ "\33Os", /* key pad 3 */ "\33Ot", /* key pad 4 */ "\33Ou", /* key pad 5 */ "\33Ov", /* key pad 6 */ "\33O/*", /* key pad , */ "\33Ow", /* key pad 7 */ "\33Ox", /* key pad 8 */ "\33Oy", /* key pad 9 */ "\33Om", /* key pad - */ /* * The following strings are to allow a numeric keypad * mode and still use the same translation tables */ "0", ".", "\r", "1", "2", "3", "4", "5", "6", ",", "7", "8", "9", "-"};/* * QVSS font table of displayable characters. */char q_font[]={/* This font is 8x15 pixels *//* with the baseline at 3 pixels *//* character 32 = ' ' (space) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 33 = '!' (exclam) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x01, /* *....... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x01, /* *....... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 34 = '"' (quotedbl) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x09, /* *..*.... */ 0x09, /* *..*.... */ 0x09, /* *..*.... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 35 = '#' (numbersign) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x12, /* .*..*... */ 0x12, /* .*..*... */ 0x3f, /* ******.. */ 0x12, /* .*..*... */ 0x3f, /* ******.. */ 0x12, /* .*..*... */ 0x12, /* .*..*... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 36 = '$' (dollar) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x0e, /* .***.... */ 0x15, /* *.*.*... */ 0x06, /* .**..... */ 0x0c, /* ..**.... */ 0x15, /* *.*.*... */ 0x0e, /* .***.... */ 0x04, /* ..*..... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 37 = '%' (percent) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x12, /* .*..*... */ 0x1d, /* *.***... */ 0x0a, /* .*.*.... */ 0x08, /* ...*.... */ 0x04, /* ..*..... */ 0x14, /* ..*.*... */ 0x2a, /* .*.*.*.. */ 0x12, /* .*..*... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 38 = '&' (ampersand) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x0a, /* .*.*.... */ 0x0a, /* .*.*.... */ 0x04, /* ..*..... */ 0x2a, /* .*.*.*.. */ 0x11, /* *...*... */ 0x11, /* *...*... */ 0x2e, /* .***.*.. */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 39 = ''' (quoteright) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 40 = '(' (parenleft) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x04, /* ..*..... */ 0x00, /* ........ */ 0x00, /* ........ *//* character 41 = ')' (parenright) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x01, /* *....... */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ *//* character 42 = '*' (asterisk) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x15, /* *.*.*... */ 0x0e, /* .***.... */ 0x0e, /* .***.... */ 0x15, /* *.*.*... */ 0x04, /* ..*..... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 43 = '+' (plus) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x1f, /* *****... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 44 = ',' (comma) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ *//* character 45 = '-' (minus) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x3f, /* ******.. */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 46 = '.' (period) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x01, /* *....... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 47 = '/' (slash) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x08, /* ...*.... */ 0x08, /* ...*.... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x02, /* .*...... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x01, /* *....... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 48 = '0' (zero) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x0a, /* .*.*.... */ 0x11, /* *...*... */ 0x11, /* *...*... */ 0x11, /* *...*... */ 0x11, /* *...*... */ 0x0a, /* .*.*.... */ 0x04, /* ..*..... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 49 = '1' (one) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x04, /* ..*..... */ 0x06, /* .**..... */ 0x05, /* *.*..... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x04, /* ..*..... */ 0x1f, /* *****... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 50 = '2' (two) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x0e, /* .***.... */ 0x11, /* *...*... */ 0x10, /* ....*... */ 0x08, /* ...*.... */ 0x04, /* ..*..... */ 0x02, /* .*...... */ 0x01, /* *....... */ 0x1f, /* *****... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 51 = '3' (three) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x0e, /* .***.... */ 0x11, /* *...*... */ 0x10, /* ....*... */ 0x0c, /* ..**.... */ 0x10, /* ....*... */ 0x10, /* ....*... */ 0x11, /* *...*... */ 0x0e, /* .***.... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 52 = '4' (four) */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ */ 0x08, /* ...*.... */ 0x0c, /* ..**.... */ 0x0a, /* .*.*.... */ 0x09, /* *..*.... */ 0x09, /* *..*.... */ 0x1f, /* *****... */ 0x08, /* ...*.... */ 0x08, /* ...*.... */ 0x00, /* ........ */ 0x00, /* ........ */ 0x00, /* ........ *//* character 53 = '5' (five) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -