X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=pc-tools%2Ffontgen%2Fsrc%2Fcharset4.h;fp=pc-tools%2Ffontgen%2Fsrc%2Fcharset4.h;h=f433ee0d06a97f27b1fd399170bd2aea4c1f6447;hb=5e2538182c99ec053b457255722f704927a5f003;hp=0000000000000000000000000000000000000000;hpb=b82408e342cb04c0f21fcb9314c1d76eb9e13190;p=h316.git diff --git a/pc-tools/fontgen/src/charset4.h b/pc-tools/fontgen/src/charset4.h new file mode 100644 index 0000000..f433ee0 --- /dev/null +++ b/pc-tools/fontgen/src/charset4.h @@ -0,0 +1,211 @@ +/* + Copyright (c) 1992 - 1994 Heinz W. Werntges. All rights reserved. + Parts Copyright (c) 1999 Martin Kroeker All rights reserved. + + Distributed by Free Software Foundation, Inc. + +This file is part of HP2xx. + +HP2xx is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY. No author or distributor accepts responsibility +to anyone for the consequences of using it or for whether it serves any +particular purpose or works at all, unless he says so in writing. Refer +to the GNU General Public License, Version 2 or later, for full details. + +Everyone is granted permission to copy, modify and redistribute +HP2xx, but only under the conditions described in the GNU General Public +License. A copy of this license is supposed to have been +given to you along with HP2xx so you can know your rights and +responsibilities. It should be in a file named COPYING. Among other +things, the copyright notice and this notice must be preserved on all +copies. + +- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +*/ +/** charset2.h HP-GL character set 4, Spanish/Latin American + ** MK February 1999 + **/ +/** + ** This file defines a standard character set by elementary + ** "draw" & "move" commands. The format is a very compact one from + ** the old days where every byte was still appreciated. + ** + ** A font or character set is an array of strings. Each character + ** corresponds to one of these strings, which is addressed by its ASCII code. + ** + ** A character is a (NULL-terminated) string of bytes. Each byte + ** codes for a draw or move action according to the code below: + ** + ** Bit: 7 6 5 4 3 2 1 0 + ** p x x x y y y y + ** + ** p: Plot flag. If set, "draw to" new point, else "move to" it. + ** xxx: 3-bit unsigned integer (0...7). X coordinate of new point. + ** yyyy: 4-bit unsigned integer (0..15). Y coordinate of new point. + ** + ** The baseline is y = 4 instead of y = 0, so characters with parts + ** below it can be drawn properly without a need for sign bits. + ** Function "code_to_ucoord()" transforms these coordinates into + ** actual user coordinates. + ** + ** Example: code for character 'L': "\032\224\324" translates to: + ** moveto(1,10); drawto(1,4); drawto(5,4); + ** + ** From the example you can conclude that the font below essentially is + ** defined on a 5x7 grid: + ** + ** 0 1 2 3 4 5 6 7 + ** 15 . . . . . . . . . : unused + ** 14 . . . . . . . . * : always used + ** 13 . . . . . . . . o : sometimes used + ** 12 . . . . . . . . + ** 11 . . . . . . . . + ** 10 o * * * * * . . + ** 9 o * * * * * . . + ** 8 o * * * * * . . + ** 7 o * * * * * . . + ** 6 o * * * * * . . + ** 5 o * * * * * . . + ** 4 o * * * * * . . + ** 3 o o o o o o . . + ** 2 o o o o o o . . + ** 1 o o o o o o . . + ** 0 o o o o o o . . + **/ + + +/** + ** The following array of strings contains the basic character set (set 0). + ** + ** NOTE: A nice way to add a new charset would be, e. g., to introduce a + ** ``charset1[]'' as the "alternate" charset and implement the HP-GL + ** commands needed for switching from one to the other. + **/ + +char *charset4[128] = { + /* 0x00 ... 0x1f */ + +/** + ** Some control codes are valid in HPGL. These are handled elsewhere + ** in a font-independent manner, so following codes are dummies: + **/ + "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", + "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", + +/** + ** Unfortunately, some compilers do not process \xNN properly, + ** so I changed all hex codes (\xNN) into octal codes (\NNN), + ** thereby losing readability but gaining portability. + **/ + + /* 0x20 ... 0x2f */ + "", + "\064\265\066\272", + "\051\252\111\312", + "\072\271\070\267\247\226\225\244\304\325", /*inverted question mark */ + "\064\272\131\251\230\247\307\326\305\225", + "\024\332\051\250\270\271\251\066\265\305\306\266", + "\124\230\231\252\271\270\226\225\244\264\326", + "\052\315", /* (BS) acute */ + "\132\270\266\324", + "\024\266\270\232", + "\005\351\145\211\072\264", + "\065\271\027\327", + "\064\244\245\265\263\242", + "\027\327", + "\064\244\245\265\264", + "\352", + + /* 0x30 ... 0x3f */ +/* +"\025\244\304\325\331\312\252\231\225\331", ** Zero including `/' ** +*/ + "\025\244\304\325\331\312\252\231\225", + "\044\304\064\272\251", + "\031\252\312\331\330\225\224\324", + "\025\244\304\325\326\307\267\332\232", + "\112\227\226\326\107\304", + "\132\232\230\310\327\325\304\244\225", + "\132\272\230\225\244\304\325\326\307\227", + "\032\332\331\226\224", + "\107\330\331\312\252\231\230\247\307\326\325\304\244\225\226\247", + "\044\264\326\331\312\252\231\230\247\327", + "\047\250\270\267\247\045\265\264\244\245", + "\046\247\267\266\246\064\244\245\265\263\242", + "\112\227\304", + "\030\330\026\326", + "\032\307\224", + "\031\252\312\331\330\307\267\266\065\264", + + /* 0x40 ... 0x4f */ + "\103\243\224\230\252\312\331\326\305\266\267\310\330", + "\024\231\252\312\331\324\026\326", + "\024\232\312\331\330\307\227\024\304\325\326\307", + "\125\304\244\225\231\252\312\331", + "\024\232\312\331\325\304\224", + "\124\224\232\332\027\307", + "\024\232\332\027\307", + "\131\312\252\231\225\244\304\325\327\247", + "\024\232\124\332\027\327", + "\024\324\064\272\032\332", + "\025\244\304\325\332\232", + "\024\232\027\247\324\047\332", + "\032\224\324", + "\024\232\270\332\324", + "\024\232\324\332", + "\044\225\231\252\312\331\325\304\244", + + /* 0x50 ... 0x5f */ + "\024\232\312\331\330\307\227", + "\044\225\231\252\312\331\326\264\244\066\324", + "\024\232\312\331\330\307\227\247\324", + "\025\244\304\325\326\307\247\230\231\252\312\331", + "\064\272\232\332", + "\032\225\244\304\325\332", + "\032\230\264\330\332", + "\032\224\267\324\332", + "\024\332\124\232", + "\032\231\266\264\066\331\332", + "\032\332\224\324", + "\124\264\272\332", + "\072\271\070\264", /* inverted exclamation mark */ + "\024\264\272\232", + "\030\272\330", /* (BS) hat */ + "\023\323", /* (BS) underline */ + + /* 0x60 ... 0x6f */ + "\053\310", + "\124\244\225\227\250\310\304", + "\024\304\325\327\310\250\052\244", + "\125\304\264\245\247\270\310\327", + "\112\304\244\225\227\250\310\104\324", + "\026\306\327\310\250\227\225\244\324", + "\064\271\312\332\047\307", + "\022\262\303\310\250\227\225\244\304", + "\032\224\030\270\307\304", + "\072\271\050\270\264\044\304", + "\072\271\050\270\263\242\222", + "\024\232\104\226\310", + "\052\272\264\044\304", + "\024\230\027\250\267\264\067\310\327\324", + "\024\230\027\250\270\307\304", + "\044\225\227\250\270\307\305\264\244", + + /* 0x70 ... 0x7f */ + "\022\230\270\307\305\264\224", + "\104\244\225\227\250\310\302", + "\030\224\026\270\310", + "\110\250\227\246\266\305\264\224", + "\052\244\304\030\310", + "\030\225\244\304\310", + "\030\226\264\326\330", + "\030\225\244\265\267\065\304\325\330", + "\030\324\024\330", + "\022\326\330\030\226\264", + "\030\310\224\304", + "\013\254\333\374", /* (BS) wide tilde (caps) */ + "\033\254\312\333", /* (BS) tilde (caps) */ + "\012\253\332\372", /* (BS) wide tilde (lowercase) */ + "\032\253\311\332", /* (BS) tilde */ + "" +};