aboutsummaryrefslogtreecommitdiff
path: root/sys/gio/fonts
diff options
context:
space:
mode:
Diffstat (limited to 'sys/gio/fonts')
-rw-r--r--sys/gio/fonts/README42
-rw-r--r--sys/gio/fonts/font.com746
-rw-r--r--sys/gio/fonts/greek.com501
-rw-r--r--sys/gio/fonts/greekc.txt96
-rw-r--r--sys/gio/fonts/mkfont.c199
5 files changed, 1584 insertions, 0 deletions
diff --git a/sys/gio/fonts/README b/sys/gio/fonts/README
new file mode 100644
index 00000000..8b657b76
--- /dev/null
+++ b/sys/gio/fonts/README
@@ -0,0 +1,42 @@
+
+FONT Generation Utilities (August 1997)
+----------------------------------------
+
+This directory contains utilities for building font tables for the GIO
+system executables. For reference we include here the font tables for
+the standard and greek fonts currently installed in the system:
+
+ font.com standard text font (Roman)
+ greek.com greek character font
+
+These table were built from the Hershey stroke data using the following
+files:
+
+ mkfont.c task to build font table
+ hershey.dat Hershey stroke data table
+
+Once compiled the MKFONT task can be used to build the table with a command
+such as
+
+ % mkfont < romant.txt > font.com
+
+Note that by default the tables are created with a "chr" prefix for the
+index, width, and character tables in the .com file. When building a new
+Greek or other symbolic font these should be changed appropriately.
+
+
+Addition input files for fonts supplied here include:
+
+ futural.txt Futura (light)
+ futuram.txt Futura (medium)
+ gotheng.txt Gothic (english)
+ gothger.txt Gothic (german)
+ gothita.txt Gothic (italian)
+ greekc.txt Greek (complex) (current greek.com)
+ greeks.txt Greek (simple)
+ math.txt Math symbols
+ meteor.txt Meteorological symbols
+ romans.txt Roman (simple)
+ romant.txt Roman (Times) (current font.com)
+ scripts.txt Script text font
+ timesr.txt Times-Roman
diff --git a/sys/gio/fonts/font.com b/sys/gio/fonts/font.com
new file mode 100644
index 00000000..c26af8d6
--- /dev/null
+++ b/sys/gio/fonts/font.com
@@ -0,0 +1,746 @@
+# CHRTAB -- Table of strokes for the printable ASCII characters. Each
+# character is encoded as a series of strokes. Each stroke is ex-
+# pressed by a single integer containing the following bitfields:
+#
+# 2 1
+# 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
+# | | | | | | |
+# | | | +---------+ +---------+
+# | | | | |
+# | | | X Y
+# | | |
+# | | +-- pen up/down
+# | +---- begin paint (not used at present)
+# +------ end paint (not used at present)
+#
+#----------------------------------------------------------------------------
+
+# Define the database.
+
+short chridx[97] # character index in chrtab
+short chrwid[97] # character width table
+short chrtab[3363] # stroke data to draw the characters
+
+# Index into CHRTAB of each printable character (starting with SP)
+
+data (chridx(i), i=001,005) / 1, 3, 32, 49, 58/
+data (chridx(i), i=006,010) / 110, 140, 207, 228, 253/
+data (chridx(i), i=011,015) / 278, 309, 322, 343, 350/
+data (chridx(i), i=016,020) / 365, 372, 418, 438, 494/
+data (chridx(i), i=021,025) / 563, 583, 632, 696, 733/
+data (chridx(i), i=026,030) / 803, 867, 896, 931, 935/
+data (chridx(i), i=031,035) / 948, 952, 999, 1052, 1077/
+data (chridx(i), i=036,040) / 1139, 1174, 1223, 1281, 1330/
+data (chridx(i), i=041,045) / 1381, 1436, 1463, 1500, 1547/
+data (chridx(i), i=046,050) / 1583, 1626, 1653, 1703, 1748/
+data (chridx(i), i=051,055) / 1818, 1881, 1923, 1962, 1997/
+data (chridx(i), i=056,060) / 2021, 2060, 2097, 2131, 2160/
+data (chridx(i), i=061,065) / 2169, 2172, 2181, 2190, 2193/
+data (chridx(i), i=066,070) / 2214, 2263, 2303, 2335, 2378/
+data (chridx(i), i=071,075) / 2415, 2447, 2527, 2575, 2606/
+data (chridx(i), i=076,080) / 2640, 2682, 2704, 2778, 2826/
+data (chridx(i), i=081,085) / 2868, 2916, 2961, 2994, 3033/
+data (chridx(i), i=086,090) / 3052, 3086, 3108, 3140, 3173/
+data (chridx(i), i=091,095) / 3204, 3233, 3271, 3274, 3312/
+data (chridx(i), i=096,096) / 3335/
+
+
+# Width data.
+
+data (chrwid(i), i=001,005) / 21, 16, 23, 26, 25/
+data (chrwid(i), i=006,010) / 29, 31, 16, 19, 19/
+data (chrwid(i), i=011,015) / 21, 30, 16, 30, 16/
+data (chrwid(i), i=016,020) / 28, 25, 25, 25, 25/
+data (chrwid(i), i=021,025) / 25, 25, 25, 25, 25/
+data (chrwid(i), i=026,030) / 25, 16, 16, 29, 30/
+data (chrwid(i), i=031,035) / 29, 24, 32, 25, 27/
+data (chrwid(i), i=036,040) / 26, 27, 26, 25, 28/
+data (chrwid(i), i=041,045) / 29, 17, 21, 27, 23/
+data (chrwid(i), i=046,050) / 31, 29, 27, 27, 27/
+data (chrwid(i), i=051,055) / 27, 25, 25, 29, 25/
+data (chrwid(i), i=056,060) / 29, 25, 27, 25, 19/
+data (chrwid(i), i=061,065) / 19, 19, 21, 21, 16/
+data (chrwid(i), i=066,070) / 25, 26, 24, 26, 24/
+data (chrwid(i), i=071,075) / 19, 24, 28, 17, 18/
+data (chrwid(i), i=076,080) / 27, 17, 32, 28, 25/
+data (chrwid(i), i=081,085) / 26, 25, 22, 22, 20/
+data (chrwid(i), i=086,090) / 28, 23, 29, 25, 24/
+data (chrwid(i), i=091,095) / 23, 19, 13, 19, 29/
+data (chrwid(i), i=096,096) / 19/
+
+
+# Stroke data.
+
+data (chrtab(i), i=0001,0005) / 35, 0, 220, 4251, 4249/
+data (chrtab(i), i=0006,0010) / 4305, 220, 4302, 4366, 220/
+data (chrtab(i), i=0011,0015) / 4380, 4366, 284, 4443, 4441/
+data (chrtab(i), i=0016,0020) / 4369, 202, 4233, 4232, 4295/
+data (chrtab(i), i=0021,0025) / 4359, 4424, 4425, 4362, 4298/
+data (chrtab(i), i=0026,0030) / 201, 4296, 4360, 4361, 4297/
+data (chrtab(i), i=0031,0035) / 0, 220, 4251, 4245, 219/
+data (chrtab(i), i=0036,0040) / 4245, 220, 4379, 4245, 796/
+data (chrtab(i), i=0041,0045) / 4827, 4821, 795, 4821, 796/
+data (chrtab(i), i=0046,0050) / 4955, 4821, 0, 604, 4224/
+data (chrtab(i), i=0051,0055) / 988, 4608, 145, 5137, 75/
+data (chrtab(i), i=0056,0060) / 5067, 0, 416, 4483, 672/
+data (chrtab(i), i=0061,0065) / 4739, 919, 5016, 4952, 4950/
+data (chrtab(i), i=0066,0070) / 5078, 5080, 5018, 4955, 4764/
+data (chrtab(i), i=0071,0075) / 4508, 4315, 4185, 4182, 4244/
+data (chrtab(i), i=0076,0080) / 4434, 4816, 4943, 5005, 5002/
+data (chrtab(i), i=0081,0085) / 4936, 150, 4308, 4435, 4817/
+data (chrtab(i), i=0086,0090) / 4944, 5006, 219, 4249, 4247/
+data (chrtab(i), i=0091,0095) / 4309, 4436, 4818, 5008, 5070/
+data (chrtab(i), i=0096,0100) / 5067, 5001, 4936, 4743, 4487/
+data (chrtab(i), i=0101,0105) / 4296, 4233, 4171, 4173, 4301/
+data (chrtab(i), i=0106,0110) / 4299, 4235, 4236, 0, 1244/
+data (chrtab(i), i=0111,0115) / 4167, 412, 4634, 4632, 4566/
+data (chrtab(i), i=0116,0120) / 4437, 4309, 4183, 4185, 4251/
+data (chrtab(i), i=0121,0125) / 4380, 4508, 4635, 4826, 5018/
+data (chrtab(i), i=0126,0130) / 5211, 5340, 974, 4941, 4875/
+data (chrtab(i), i=0131,0135) / 4873, 4999, 5127, 5256, 5322/
+data (chrtab(i), i=0136,0140) / 5324, 5198, 5070, 0, 1299/
+data (chrtab(i), i=0141,0145) / 5396, 5332, 5330, 5458, 5460/
+data (chrtab(i), i=0146,0150) / 5397, 5333, 5268, 5202, 5069/
+data (chrtab(i), i=0151,0155) / 4938, 4808, 4679, 4423, 4296/
+data (chrtab(i), i=0156,0160) / 4234, 4237, 4303, 4691, 4821/
+data (chrtab(i), i=0161,0165) / 4887, 4889, 4827, 4700, 4571/
+data (chrtab(i), i=0166,0170) / 4505, 4502, 4563, 4688, 4939/
+data (chrtab(i), i=0171,0175) / 5128, 5255, 5383, 5449, 5450/
+data (chrtab(i), i=0176,0180) / 264, 4298, 4301, 4367, 4432/
+data (chrtab(i), i=0181,0185) / 725, 4889, 791, 4827, 475/
+data (chrtab(i), i=0186,0190) / 4503, 468, 4689, 4940, 5129/
+data (chrtab(i), i=0191,0195) / 5256, 455, 4424, 4362, 4365/
+data (chrtab(i), i=0196,0200) / 4431, 4691, 409, 4565, 4753/
+data (chrtab(i), i=0201,0205) / 5004, 5193, 5320, 5384, 5449/
+data (chrtab(i), i=0206,0210) / 0, 346, 4377, 4313, 4250/
+data (chrtab(i), i=0211,0215) / 4251, 4316, 4380, 4443, 4440/
+data (chrtab(i), i=0216,0220) / 4374, 4245, 219, 4314, 4378/
+data (chrtab(i), i=0221,0225) / 4379, 4315, 281, 4440, 346/
+data (chrtab(i), i=0226,0230) / 4374, 0, 544, 4510, 4379/
+data (chrtab(i), i=0231,0235) / 4247, 4178, 4174, 4233, 4357/
+data (chrtab(i), i=0236,0240) / 4482, 4608, 282, 4311, 4243/
+data (chrtab(i), i=0241,0245) / 4237, 4297, 4358, 414, 4444/
+data (chrtab(i), i=0246,0250) / 4377, 4307, 4301, 4359, 4420/
+data (chrtab(i), i=0251,0255) / 4482, 0, 160, 4382, 4507/
+data (chrtab(i), i=0256,0260) / 4631, 4690, 4686, 4617, 4485/
+data (chrtab(i), i=0261,0265) / 4354, 4224, 410, 4567, 4627/
+data (chrtab(i), i=0266,0270) / 4621, 4553, 4486, 286, 4444/
+data (chrtab(i), i=0271,0275) / 4505, 4563, 4557, 4487, 4420/
+data (chrtab(i), i=0276,0280) / 4354, 0, 412, 4443, 4561/
+data (chrtab(i), i=0281,0285) / 4496, 412, 4496, 412, 4571/
+data (chrtab(i), i=0286,0290) / 4433, 4496, 89, 4249, 4755/
+data (chrtab(i), i=0291,0295) / 4819, 89, 4819, 89, 4184/
+data (chrtab(i), i=0296,0300) / 4820, 4819, 729, 4761, 4243/
+data (chrtab(i), i=0301,0305) / 4179, 729, 4179, 729, 4824/
+data (chrtab(i), i=0306,0310) / 4180, 4179, 0, 665, 4744/
+data (chrtab(i), i=0311,0315) / 4808, 665, 4825, 4808, 145/
+data (chrtab(i), i=0316,0320) / 5329, 5328, 145, 4240, 5328/
+data (chrtab(i), i=0321,0325) / 0, 328, 4359, 4295, 4232/
+data (chrtab(i), i=0326,0330) / 4233, 4298, 4362, 4425, 4422/
+data (chrtab(i), i=0331,0335) / 4356, 4227, 201, 4296, 4360/
+data (chrtab(i), i=0336,0340) / 4361, 4297, 263, 4422, 328/
+data (chrtab(i), i=0341,0345) / 4356, 0, 145, 5329, 5328/
+data (chrtab(i), i=0346,0350) / 145, 4240, 5328, 0, 202/
+data (chrtab(i), i=0351,0355) / 4233, 4232, 4295, 4359, 4424/
+data (chrtab(i), i=0356,0360) / 4425, 4362, 4298, 201, 4296/
+data (chrtab(i), i=0361,0365) / 4360, 4361, 4297, 0, 1184/
+data (chrtab(i), i=0366,0370) / 4096, 4160, 1184, 5344, 4160/
+data (chrtab(i), i=0371,0375) / 0, 476, 4379, 4248, 4179/
+data (chrtab(i), i=0376,0380) / 4176, 4235, 4360, 4551, 4679/
+data (chrtab(i), i=0381,0385) / 4872, 5003, 5072, 5075, 5016/
+data (chrtab(i), i=0386,0390) / 4891, 4700, 4572, 282, 4312/
+data (chrtab(i), i=0391,0395) / 4244, 4239, 4299, 4361, 777/
+data (chrtab(i), i=0396,0400) / 4939, 5007, 5012, 4952, 4890/
+data (chrtab(i), i=0401,0405) / 476, 4443, 4377, 4308, 4303/
+data (chrtab(i), i=0406,0410) / 4362, 4424, 4551, 583, 4808/
+data (chrtab(i), i=0411,0415) / 4874, 4943, 4948, 4889, 4827/
+data (chrtab(i), i=0416,0420) / 4700, 0, 474, 4551, 538/
+data (chrtab(i), i=0421,0425) / 4616, 604, 4679, 604, 4505/
+data (chrtab(i), i=0426,0430) / 4376, 199, 4935, 456, 4423/
+data (chrtab(i), i=0431,0435) / 457, 4487, 585, 4743, 584/
+data (chrtab(i), i=0436,0440) / 4807, 0, 152, 4247, 4311/
+data (chrtab(i), i=0441,0445) / 4312, 4248, 153, 4313, 4376/
+data (chrtab(i), i=0446,0450) / 4375, 4310, 4246, 4183, 4184/
+data (chrtab(i), i=0451,0455) / 4250, 4315, 4508, 4764, 4955/
+data (chrtab(i), i=0456,0460) / 5018, 5080, 5078, 5012, 4818/
+data (chrtab(i), i=0461,0465) / 4496, 4367, 4237, 4170, 4167/
+data (chrtab(i), i=0466,0470) / 858, 5016, 5014, 4948, 668/
+data (chrtab(i), i=0471,0475) / 4891, 4952, 4950, 4884, 4754/
+data (chrtab(i), i=0476,0480) / 4496, 73, 4234, 4362, 4681/
+data (chrtab(i), i=0481,0485) / 4937, 5066, 266, 4680, 4936/
+data (chrtab(i), i=0486,0490) / 5001, 266, 4679, 4935, 5000/
+data (chrtab(i), i=0491,0495) / 5066, 5068, 0, 152, 4247/
+data (chrtab(i), i=0496,0500) / 4311, 4312, 4248, 153, 4313/
+data (chrtab(i), i=0501,0505) / 4376, 4375, 4310, 4246, 4183/
+data (chrtab(i), i=0506,0510) / 4184, 4250, 4315, 4508, 4764/
+data (chrtab(i), i=0511,0515) / 4955, 5017, 5014, 4948, 4755/
+data (chrtab(i), i=0516,0520) / 795, 4953, 4950, 4884, 604/
+data (chrtab(i), i=0521,0525) / 4827, 4889, 4886, 4820, 4691/
+data (chrtab(i), i=0526,0530) / 467, 4755, 4882, 5008, 5070/
+data (chrtab(i), i=0531,0535) / 5067, 5001, 4936, 4743, 4487/
+data (chrtab(i), i=0536,0540) / 4296, 4233, 4171, 4172, 4237/
+data (chrtab(i), i=0541,0545) / 4301, 4364, 4363, 4298, 4234/
+data (chrtab(i), i=0546,0550) / 848, 5006, 5003, 4937, 595/
+data (chrtab(i), i=0551,0555) / 4818, 4881, 4942, 4939, 4872/
+data (chrtab(i), i=0556,0560) / 4743, 140, 4235, 4299, 4300/
+data (chrtab(i), i=0561,0565) / 4236, 0, 601, 4679, 666/
+data (chrtab(i), i=0566,0570) / 4744, 732, 4807, 732, 4109/
+data (chrtab(i), i=0571,0575) / 5133, 391, 4999, 584, 4551/
+data (chrtab(i), i=0576,0580) / 585, 4615, 713, 4871, 712/
+data (chrtab(i), i=0581,0585) / 4935, 0, 220, 4178, 4308/
+data (chrtab(i), i=0586,0590) / 4501, 4693, 4884, 5010, 5071/
+data (chrtab(i), i=0591,0595) / 5069, 5002, 4872, 4679, 4487/
+data (chrtab(i), i=0596,0600) / 4296, 4233, 4171, 4172, 4237/
+data (chrtab(i), i=0601,0605) / 4301, 4364, 4363, 4298, 4234/
+data (chrtab(i), i=0606,0610) / 850, 5008, 5004, 4938, 597/
+data (chrtab(i), i=0611,0615) / 4820, 4883, 4944, 4940, 4873/
+data (chrtab(i), i=0616,0620) / 4808, 4679, 140, 4235, 4299/
+data (chrtab(i), i=0621,0625) / 4300, 4236, 220, 4956, 219/
+data (chrtab(i), i=0626,0630) / 4827, 218, 4570, 4827, 4956/
+data (chrtab(i), i=0631,0635) / 0, 793, 4888, 4952, 4953/
+data (chrtab(i), i=0636,0640) / 4889, 858, 4890, 4825, 4824/
+data (chrtab(i), i=0641,0645) / 4887, 4951, 5016, 5017, 4955/
+data (chrtab(i), i=0646,0650) / 4828, 4636, 4443, 4313, 4247/
+data (chrtab(i), i=0651,0655) / 4179, 4173, 4234, 4360, 4551/
+data (chrtab(i), i=0656,0660) / 4679, 4872, 5002, 5069, 5070/
+data (chrtab(i), i=0661,0665) / 5009, 4883, 4692, 4564, 4435/
+data (chrtab(i), i=0666,0670) / 4370, 4304, 281, 4311, 4243/
+data (chrtab(i), i=0671,0675) / 4237, 4298, 4361, 842, 5004/
+data (chrtab(i), i=0676,0680) / 5007, 4945, 540, 4507, 4442/
+data (chrtab(i), i=0681,0685) / 4376, 4308, 4301, 4362, 4424/
+data (chrtab(i), i=0686,0690) / 4551, 583, 4808, 4873, 4940/
+data (chrtab(i), i=0691,0695) / 4943, 4882, 4819, 4692, 0/
+data (chrtab(i), i=0696,0700) / 92, 4182, 988, 5081, 5014/
+data (chrtab(i), i=0701,0705) / 4753, 4687, 4619, 4615, 592/
+data (chrtab(i), i=0706,0710) / 4622, 4555, 4551, 918, 4689/
+data (chrtab(i), i=0711,0715) / 4558, 4491, 4487, 4615, 88/
+data (chrtab(i), i=0716,0720) / 4250, 4380, 4508, 4825, 4953/
+data (chrtab(i), i=0721,0725) / 5018, 5084, 218, 4379, 4507/
+data (chrtab(i), i=0726,0730) / 4634, 88, 4249, 4378, 4506/
+data (chrtab(i), i=0731,0735) / 4825, 0, 412, 4315, 4249/
+data (chrtab(i), i=0736,0740) / 4246, 4308, 4499, 4755, 4948/
+data (chrtab(i), i=0741,0745) / 5014, 5017, 4955, 4764, 4508/
+data (chrtab(i), i=0746,0750) / 283, 4313, 4310, 4372, 788/
+data (chrtab(i), i=0751,0755) / 4950, 4953, 4891, 412, 4443/
+data (chrtab(i), i=0756,0760) / 4377, 4374, 4436, 4499, 659/
+data (chrtab(i), i=0761,0765) / 4820, 4886, 4889, 4827, 4764/
+data (chrtab(i), i=0766,0770) / 403, 4306, 4241, 4175, 4171/
+data (chrtab(i), i=0771,0775) / 4233, 4296, 4487, 4743, 4936/
+data (chrtab(i), i=0776,0780) / 5001, 5067, 5071, 5009, 4946/
+data (chrtab(i), i=0781,0785) / 4755, 209, 4239, 4235, 4297/
+data (chrtab(i), i=0786,0790) / 841, 5003, 5007, 4945, 403/
+data (chrtab(i), i=0791,0795) / 4370, 4303, 4299, 4360, 4487/
+data (chrtab(i), i=0796,0800) / 647, 4872, 4939, 4943, 4882/
+data (chrtab(i), i=0801,0805) / 4755, 0, 203, 4298, 4362/
+data (chrtab(i), i=0806,0810) / 4363, 4299, 851, 4881, 4816/
+data (chrtab(i), i=0811,0815) / 4687, 4559, 4368, 4242, 4181/
+data (chrtab(i), i=0816,0820) / 4182, 4249, 4379, 4572, 4700/
+data (chrtab(i), i=0821,0825) / 4891, 5017, 5078, 5072, 5004/
+data (chrtab(i), i=0826,0830) / 4938, 4808, 4615, 4423, 4296/
+data (chrtab(i), i=0831,0835) / 4234, 4235, 4300, 4364, 4427/
+data (chrtab(i), i=0836,0840) / 4426, 4361, 4297, 210, 4244/
+data (chrtab(i), i=0841,0845) / 4247, 4313, 794, 4953, 5014/
+data (chrtab(i), i=0846,0850) / 5008, 4940, 4874, 463, 4432/
+data (chrtab(i), i=0851,0855) / 4369, 4308, 4311, 4378, 4443/
+data (chrtab(i), i=0856,0860) / 4572, 604, 4827, 4889, 4950/
+data (chrtab(i), i=0861,0865) / 4943, 4875, 4809, 4744, 4615/
+data (chrtab(i), i=0866,0870) / 0, 213, 4244, 4243, 4306/
+data (chrtab(i), i=0871,0875) / 4370, 4435, 4436, 4373, 4309/
+data (chrtab(i), i=0876,0880) / 212, 4307, 4371, 4372, 4308/
+data (chrtab(i), i=0881,0885) / 202, 4233, 4232, 4295, 4359/
+data (chrtab(i), i=0886,0890) / 4424, 4425, 4362, 4298, 201/
+data (chrtab(i), i=0891,0895) / 4296, 4360, 4361, 4297, 0/
+data (chrtab(i), i=0896,0900) / 213, 4244, 4243, 4306, 4370/
+data (chrtab(i), i=0901,0905) / 4435, 4436, 4373, 4309, 212/
+data (chrtab(i), i=0906,0910) / 4307, 4371, 4372, 4308, 328/
+data (chrtab(i), i=0911,0915) / 4359, 4295, 4232, 4233, 4298/
+data (chrtab(i), i=0916,0920) / 4362, 4425, 4422, 4356, 4227/
+data (chrtab(i), i=0921,0925) / 201, 4296, 4360, 4361, 4297/
+data (chrtab(i), i=0926,0930) / 263, 4422, 328, 4356, 0/
+data (chrtab(i), i=0931,0935) / 1177, 4240, 5255, 0, 149/
+data (chrtab(i), i=0936,0940) / 5333, 5332, 149, 4244, 5332/
+data (chrtab(i), i=0941,0945) / 141, 5325, 5324, 141, 4236/
+data (chrtab(i), i=0946,0950) / 5324, 0, 153, 5264, 4231/
+data (chrtab(i), i=0951,0955) / 0, 151, 4248, 4312, 4310/
+data (chrtab(i), i=0956,0960) / 4182, 4184, 4250, 4315, 4444/
+data (chrtab(i), i=0961,0965) / 4700, 4891, 4954, 5016, 5014/
+data (chrtab(i), i=0966,0970) / 4948, 4883, 4625, 794, 4953/
+data (chrtab(i), i=0971,0975) / 4949, 4884, 604, 4827, 4889/
+data (chrtab(i), i=0976,0980) / 4885, 4819, 4754, 465, 4558/
+data (chrtab(i), i=0981,0985) / 4622, 4625, 4561, 458, 4489/
+data (chrtab(i), i=0986,0990) / 4488, 4551, 4615, 4680, 4681/
+data (chrtab(i), i=0991,0995) / 4618, 4554, 457, 4552, 4616/
+data (chrtab(i), i=0996,1000) / 4617, 4553, 0, 1044, 5078/
+data (chrtab(i), i=1001,1005) / 4951, 4759, 4630, 4565, 4498/
+data (chrtab(i), i=1006,1010) / 4495, 4557, 4684, 4876, 5005/
+data (chrtab(i), i=1011,1015) / 5071, 663, 4629, 4562, 4559/
+data (chrtab(i), i=1016,1020) / 4621, 4684, 1047, 5071, 5069/
+data (chrtab(i), i=1021,1025) / 5196, 5324, 5454, 5521, 5523/
+data (chrtab(i), i=1026,1030) / 5462, 5400, 5274, 5147, 4956/
+data (chrtab(i), i=1031,1035) / 4764, 4571, 4442, 4312, 4246/
+data (chrtab(i), i=1036,1040) / 4179, 4176, 4237, 4299, 4425/
+data (chrtab(i), i=1041,1045) / 4552, 4743, 4935, 5128, 5257/
+data (chrtab(i), i=1046,1050) / 5322, 1111, 5135, 5133, 5196/
+data (chrtab(i), i=1051,1055) / 0, 540, 4168, 473, 4935/
+data (chrtab(i), i=1056,1060) / 537, 4999, 540, 5063, 205/
+data (chrtab(i), i=1061,1065) / 4877, 7, 4423, 647, 5191/
+data (chrtab(i), i=1066,1070) / 72, 4103, 72, 4295, 840/
+data (chrtab(i), i=1071,1075) / 4807, 841, 4871, 905, 5127/
+data (chrtab(i), i=1076,1080) / 0, 220, 4295, 283, 4360/
+data (chrtab(i), i=1081,1085) / 348, 4423, 28, 4892, 5083/
+data (chrtab(i), i=1086,1090) / 5146, 5208, 5206, 5140, 5075/
+data (chrtab(i), i=1091,1095) / 4882, 986, 5144, 5142, 5076/
+data (chrtab(i), i=1096,1100) / 796, 5019, 5081, 5077, 5011/
+data (chrtab(i), i=1101,1105) / 4882, 338, 4882, 5073, 5136/
+data (chrtab(i), i=1106,1110) / 5198, 5195, 5129, 5064, 4871/
+data (chrtab(i), i=1111,1115) / 4103, 976, 5134, 5131, 5065/
+data (chrtab(i), i=1116,1120) / 786, 5009, 5071, 5066, 5000/
+data (chrtab(i), i=1121,1125) / 4871, 92, 4315, 156, 4314/
+data (chrtab(i), i=1126,1130) / 412, 4442, 476, 4443, 200/
+data (chrtab(i), i=1131,1135) / 4167, 201, 4231, 329, 4487/
+data (chrtab(i), i=1136,1140) / 328, 4551, 0, 985, 5148/
+data (chrtab(i), i=1141,1145) / 5142, 5081, 4955, 4828, 4636/
+data (chrtab(i), i=1146,1150) / 4443, 4313, 4247, 4180, 4175/
+data (chrtab(i), i=1151,1155) / 4236, 4298, 4424, 4615, 4807/
+data (chrtab(i), i=1156,1160) / 4936, 5066, 5132, 281, 4311/
+data (chrtab(i), i=1161,1165) / 4244, 4239, 4300, 4362, 540/
+data (chrtab(i), i=1166,1170) / 4507, 4376, 4308, 4303, 4363/
+data (chrtab(i), i=1171,1175) / 4488, 4615, 0, 220, 4295/
+data (chrtab(i), i=1176,1180) / 283, 4360, 348, 4423, 28/
+data (chrtab(i), i=1181,1185) / 4764, 4955, 5081, 5143, 5204/
+data (chrtab(i), i=1186,1190) / 5199, 5132, 5066, 4936, 4743/
+data (chrtab(i), i=1191,1195) / 4103, 921, 5079, 5140, 5135/
+data (chrtab(i), i=1196,1200) / 5068, 5002, 668, 4891, 5016/
+data (chrtab(i), i=1201,1205) / 5076, 5071, 5003, 4872, 4743/
+data (chrtab(i), i=1206,1210) / 92, 4315, 156, 4314, 412/
+data (chrtab(i), i=1211,1215) / 4442, 476, 4443, 200, 4167/
+data (chrtab(i), i=1216,1220) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1221,1225) / 4551, 0, 220, 4295, 283/
+data (chrtab(i), i=1226,1230) / 4360, 348, 4423, 28, 5148/
+data (chrtab(i), i=1231,1235) / 5142, 338, 4818, 726, 4814/
+data (chrtab(i), i=1236,1240) / 7, 5127, 5133, 92, 4315/
+data (chrtab(i), i=1241,1245) / 156, 4314, 412, 4442, 476/
+data (chrtab(i), i=1246,1250) / 4443, 732, 5147, 860, 5146/
+data (chrtab(i), i=1251,1255) / 924, 5145, 988, 5142, 726/
+data (chrtab(i), i=1256,1260) / 4754, 4814, 724, 4690, 4816/
+data (chrtab(i), i=1261,1265) / 723, 4562, 4817, 200, 4167/
+data (chrtab(i), i=1266,1270) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1271,1275) / 4551, 711, 5128, 839, 5129/
+data (chrtab(i), i=1276,1280) / 903, 5130, 967, 5133, 0/
+data (chrtab(i), i=1281,1285) / 220, 4295, 283, 4360, 348/
+data (chrtab(i), i=1286,1290) / 4423, 28, 5148, 5142, 338/
+data (chrtab(i), i=1291,1295) / 4818, 726, 4814, 7, 4615/
+data (chrtab(i), i=1296,1300) / 92, 4315, 156, 4314, 412/
+data (chrtab(i), i=1301,1305) / 4442, 476, 4443, 732, 5147/
+data (chrtab(i), i=1306,1310) / 860, 5146, 924, 5145, 988/
+data (chrtab(i), i=1311,1315) / 5142, 726, 4754, 4814, 724/
+data (chrtab(i), i=1316,1320) / 4690, 4816, 723, 4562, 4817/
+data (chrtab(i), i=1321,1325) / 200, 4167, 201, 4231, 329/
+data (chrtab(i), i=1326,1330) / 4487, 328, 4551, 0, 985/
+data (chrtab(i), i=1331,1335) / 5148, 5142, 5081, 4955, 4828/
+data (chrtab(i), i=1336,1340) / 4636, 4443, 4313, 4247, 4180/
+data (chrtab(i), i=1341,1345) / 4175, 4236, 4298, 4424, 4615/
+data (chrtab(i), i=1346,1350) / 4807, 4936, 5064, 5127, 5135/
+data (chrtab(i), i=1351,1355) / 281, 4311, 4244, 4239, 4300/
+data (chrtab(i), i=1356,1360) / 4362, 540, 4507, 4376, 4308/
+data (chrtab(i), i=1361,1365) / 4303, 4363, 4488, 4615, 974/
+data (chrtab(i), i=1366,1370) / 5065, 911, 5001, 4936, 719/
+data (chrtab(i), i=1371,1375) / 5327, 783, 5006, 847, 5005/
+data (chrtab(i), i=1376,1380) / 1103, 5133, 1167, 5134, 0/
+data (chrtab(i), i=1381,1385) / 220, 4295, 283, 4360, 348/
+data (chrtab(i), i=1386,1390) / 4423, 988, 5063, 1051, 5128/
+data (chrtab(i), i=1391,1395) / 1116, 5191, 28, 4636, 796/
+data (chrtab(i), i=1396,1400) / 5404, 338, 5074, 7, 4615/
+data (chrtab(i), i=1401,1405) / 775, 5383, 92, 4315, 156/
+data (chrtab(i), i=1406,1410) / 4314, 412, 4442, 476, 4443/
+data (chrtab(i), i=1411,1415) / 860, 5083, 924, 5082, 1180/
+data (chrtab(i), i=1416,1420) / 5210, 1244, 5211, 200, 4167/
+data (chrtab(i), i=1421,1425) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1426,1430) / 4551, 968, 4935, 969, 4999/
+data (chrtab(i), i=1431,1435) / 1097, 5255, 1096, 5319, 0/
+data (chrtab(i), i=1436,1440) / 220, 4295, 283, 4360, 348/
+data (chrtab(i), i=1441,1445) / 4423, 28, 4636, 7, 4615/
+data (chrtab(i), i=1446,1450) / 92, 4315, 156, 4314, 412/
+data (chrtab(i), i=1451,1455) / 4442, 476, 4443, 200, 4167/
+data (chrtab(i), i=1456,1460) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1461,1465) / 4551, 0, 476, 4555, 4488/
+data (chrtab(i), i=1466,1470) / 4423, 539, 4619, 4552, 604/
+data (chrtab(i), i=1471,1475) / 4683, 4616, 4423, 4295, 4168/
+data (chrtab(i), i=1476,1480) / 4106, 4108, 4173, 4237, 4300/
+data (chrtab(i), i=1481,1485) / 4299, 4234, 4170, 76, 4171/
+data (chrtab(i), i=1486,1490) / 4235, 4236, 4172, 284, 4892/
+data (chrtab(i), i=1491,1495) / 348, 4571, 412, 4570, 668/
+data (chrtab(i), i=1496,1500) / 4698, 732, 4699, 0, 220/
+data (chrtab(i), i=1501,1505) / 4295, 283, 4360, 348, 4423/
+data (chrtab(i), i=1506,1510) / 1051, 4432, 530, 5063, 594/
+data (chrtab(i), i=1511,1515) / 5127, 596, 5191, 28, 4636/
+data (chrtab(i), i=1516,1520) / 860, 5340, 7, 4615, 775/
+data (chrtab(i), i=1521,1525) / 5319, 92, 4315, 156, 4314/
+data (chrtab(i), i=1526,1530) / 412, 4442, 476, 4443, 988/
+data (chrtab(i), i=1531,1535) / 5147, 1180, 5147, 200, 4167/
+data (chrtab(i), i=1536,1540) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1541,1545) / 4551, 969, 4935, 969, 5255/
+data (chrtab(i), i=1546,1550) / 0, 220, 4295, 283, 4360/
+data (chrtab(i), i=1551,1555) / 348, 4423, 28, 4636, 7/
+data (chrtab(i), i=1556,1560) / 5063, 5069, 92, 4315, 156/
+data (chrtab(i), i=1561,1565) / 4314, 412, 4442, 476, 4443/
+data (chrtab(i), i=1566,1570) / 200, 4167, 201, 4231, 329/
+data (chrtab(i), i=1571,1575) / 4487, 328, 4551, 647, 5064/
+data (chrtab(i), i=1576,1580) / 775, 5065, 839, 5066, 903/
+data (chrtab(i), i=1581,1585) / 5069, 0, 220, 4296, 220/
+data (chrtab(i), i=1586,1590) / 4743, 284, 4746, 348, 4810/
+data (chrtab(i), i=1591,1595) / 1116, 4743, 1116, 5191, 1179/
+data (chrtab(i), i=1596,1600) / 5256, 1244, 5319, 28, 4444/
+data (chrtab(i), i=1601,1605) / 1116, 5532, 7, 4487, 903/
+data (chrtab(i), i=1606,1610) / 5511, 92, 4315, 1308, 5338/
+data (chrtab(i), i=1611,1615) / 1372, 5339, 200, 4167, 200/
+data (chrtab(i), i=1616,1620) / 4423, 1096, 5063, 1097, 5127/
+data (chrtab(i), i=1621,1625) / 1225, 5383, 1224, 5447, 0/
+data (chrtab(i), i=1626,1630) / 220, 4296, 220, 5191, 284/
+data (chrtab(i), i=1631,1635) / 5130, 348, 5194, 1115, 5191/
+data (chrtab(i), i=1636,1640) / 28, 4444, 924, 5404, 7/
+data (chrtab(i), i=1641,1645) / 4487, 92, 4315, 988, 5211/
+data (chrtab(i), i=1646,1650) / 1244, 5211, 200, 4167, 200/
+data (chrtab(i), i=1651,1655) / 4423, 0, 540, 4443, 4313/
+data (chrtab(i), i=1656,1660) / 4247, 4179, 4176, 4236, 4298/
+data (chrtab(i), i=1661,1665) / 4424, 4615, 4743, 4936, 5066/
+data (chrtab(i), i=1666,1670) / 5132, 5200, 5203, 5143, 5081/
+data (chrtab(i), i=1671,1675) / 4955, 4764, 4636, 281, 4311/
+data (chrtab(i), i=1676,1680) / 4244, 4239, 4300, 4362, 906/
+data (chrtab(i), i=1681,1685) / 5068, 5135, 5140, 5079, 5017/
+data (chrtab(i), i=1686,1690) / 540, 4507, 4376, 4308, 4303/
+data (chrtab(i), i=1691,1695) / 4363, 4488, 4615, 647, 4872/
+data (chrtab(i), i=1696,1700) / 5003, 5071, 5076, 5016, 4891/
+data (chrtab(i), i=1701,1705) / 4764, 0, 220, 4295, 283/
+data (chrtab(i), i=1706,1710) / 4360, 348, 4423, 28, 4892/
+data (chrtab(i), i=1711,1715) / 5083, 5146, 5208, 5205, 5139/
+data (chrtab(i), i=1716,1720) / 5074, 4881, 4433, 986, 5144/
+data (chrtab(i), i=1721,1725) / 5141, 5075, 796, 5019, 5081/
+data (chrtab(i), i=1726,1730) / 5076, 5010, 4881, 7, 4615/
+data (chrtab(i), i=1731,1735) / 92, 4315, 156, 4314, 412/
+data (chrtab(i), i=1736,1740) / 4442, 476, 4443, 200, 4167/
+data (chrtab(i), i=1741,1745) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=1746,1750) / 4551, 0, 540, 4443, 4313/
+data (chrtab(i), i=1751,1755) / 4247, 4179, 4176, 4236, 4298/
+data (chrtab(i), i=1756,1760) / 4424, 4615, 4743, 4936, 5066/
+data (chrtab(i), i=1761,1765) / 5132, 5200, 5203, 5143, 5081/
+data (chrtab(i), i=1766,1770) / 4955, 4764, 4636, 281, 4311/
+data (chrtab(i), i=1771,1775) / 4244, 4239, 4300, 4362, 906/
+data (chrtab(i), i=1776,1780) / 5068, 5135, 5140, 5079, 5017/
+data (chrtab(i), i=1781,1785) / 540, 4507, 4376, 4308, 4303/
+data (chrtab(i), i=1786,1790) / 4363, 4488, 4615, 647, 4872/
+data (chrtab(i), i=1791,1795) / 5003, 5071, 5076, 5016, 4891/
+data (chrtab(i), i=1796,1800) / 4764, 330, 4492, 4621, 4685/
+data (chrtab(i), i=1801,1805) / 4812, 4874, 4932, 4994, 5122/
+data (chrtab(i), i=1806,1810) / 5188, 5190, 838, 4996, 5059/
+data (chrtab(i), i=1811,1815) / 5123, 778, 4997, 5060, 5124/
+data (chrtab(i), i=1816,1820) / 5189, 0, 220, 4295, 283/
+data (chrtab(i), i=1821,1825) / 4360, 348, 4423, 28, 4892/
+data (chrtab(i), i=1826,1830) / 5083, 5146, 5208, 5206, 5140/
+data (chrtab(i), i=1831,1835) / 5075, 4882, 4434, 986, 5144/
+data (chrtab(i), i=1836,1840) / 5142, 5076, 796, 5019, 5081/
+data (chrtab(i), i=1841,1845) / 5077, 5011, 4882, 594, 4817/
+data (chrtab(i), i=1846,1850) / 4879, 5001, 5063, 5191, 5257/
+data (chrtab(i), i=1851,1855) / 5259, 907, 5065, 5128, 5192/
+data (chrtab(i), i=1856,1860) / 721, 4880, 5066, 5129, 5193/
+data (chrtab(i), i=1861,1865) / 5258, 7, 4615, 92, 4315/
+data (chrtab(i), i=1866,1870) / 156, 4314, 412, 4442, 476/
+data (chrtab(i), i=1871,1875) / 4443, 200, 4167, 201, 4231/
+data (chrtab(i), i=1876,1880) / 329, 4487, 328, 4551, 0/
+data (chrtab(i), i=1881,1885) / 921, 5084, 5078, 5017, 4891/
+data (chrtab(i), i=1886,1890) / 4700, 4508, 4315, 4185, 4182/
+data (chrtab(i), i=1891,1895) / 4244, 4434, 4816, 4943, 5005/
+data (chrtab(i), i=1896,1900) / 5002, 4936, 150, 4308, 4435/
+data (chrtab(i), i=1901,1905) / 4817, 4944, 5006, 219, 4249/
+data (chrtab(i), i=1906,1910) / 4247, 4309, 4436, 4818, 5008/
+data (chrtab(i), i=1911,1915) / 5070, 5067, 5001, 4936, 4743/
+data (chrtab(i), i=1916,1920) / 4551, 4360, 4234, 4173, 4167/
+data (chrtab(i), i=1921,1925) / 4234, 0, 28, 4118, 476/
+data (chrtab(i), i=1926,1930) / 4551, 539, 4616, 604, 4679/
+data (chrtab(i), i=1931,1935) / 1052, 5142, 28, 5148, 263/
+data (chrtab(i), i=1936,1940) / 4871, 92, 4118, 156, 4121/
+data (chrtab(i), i=1941,1945) / 220, 4122, 348, 4123, 732/
+data (chrtab(i), i=1946,1950) / 5147, 860, 5146, 924, 5145/
+data (chrtab(i), i=1951,1955) / 988, 5142, 456, 4423, 457/
+data (chrtab(i), i=1956,1960) / 4487, 585, 4743, 584, 4807/
+data (chrtab(i), i=1961,1965) / 0, 220, 4301, 4362, 4488/
+data (chrtab(i), i=1966,1970) / 4679, 4807, 5000, 5130, 5197/
+data (chrtab(i), i=1971,1975) / 5211, 283, 4364, 4426, 348/
+data (chrtab(i), i=1976,1980) / 4428, 4489, 4552, 4679, 28/
+data (chrtab(i), i=1981,1985) / 4636, 924, 5404, 92, 4315/
+data (chrtab(i), i=1986,1990) / 156, 4314, 412, 4442, 476/
+data (chrtab(i), i=1991,1995) / 4443, 988, 5211, 1244, 5211/
+data (chrtab(i), i=1996,2000) / 0, 92, 4615, 156, 4618/
+data (chrtab(i), i=2001,2005) / 4615, 220, 4682, 987, 4615/
+data (chrtab(i), i=2006,2010) / 28, 4508, 732, 5212, 28/
+data (chrtab(i), i=2011,2015) / 4250, 284, 4314, 348, 4315/
+data (chrtab(i), i=2016,2020) / 860, 5083, 1052, 5083, 0/
+data (chrtab(i), i=2021,2025) / 156, 4487, 220, 4492, 4487/
+data (chrtab(i), i=2026,2030) / 284, 4556, 668, 4556, 4487/
+data (chrtab(i), i=2031,2035) / 668, 4999, 732, 5004, 4999/
+data (chrtab(i), i=2036,2040) / 796, 5068, 1179, 5068, 4999/
+data (chrtab(i), i=2041,2045) / 28, 4572, 668, 4892, 988/
+data (chrtab(i), i=2046,2050) / 5468, 28, 4315, 92, 4314/
+data (chrtab(i), i=2051,2055) / 348, 4378, 412, 4379, 1052/
+data (chrtab(i), i=2056,2060) / 5275, 1308, 5275, 0, 92/
+data (chrtab(i), i=2061,2065) / 4935, 156, 4999, 220, 5063/
+data (chrtab(i), i=2066,2070) / 923, 4232, 28, 4508, 732/
+data (chrtab(i), i=2071,2075) / 5212, 7, 4423, 647, 5191/
+data (chrtab(i), i=2076,2080) / 28, 4314, 284, 4314, 348/
+data (chrtab(i), i=2081,2085) / 4315, 796, 5019, 1052, 5019/
+data (chrtab(i), i=2086,2090) / 136, 4103, 136, 4359, 840/
+data (chrtab(i), i=2091,2095) / 4807, 841, 4871, 841, 5127/
+data (chrtab(i), i=2096,2100) / 0, 92, 4625, 4615, 156/
+data (chrtab(i), i=2101,2105) / 4689, 4680, 220, 4753, 4743/
+data (chrtab(i), i=2106,2110) / 1051, 4753, 28, 4508, 860/
+data (chrtab(i), i=2111,2115) / 5340, 327, 4935, 28, 4251/
+data (chrtab(i), i=2116,2120) / 348, 4315, 924, 5147, 1180/
+data (chrtab(i), i=2121,2125) / 5147, 520, 4487, 521, 4551/
+data (chrtab(i), i=2126,2130) / 649, 4807, 648, 4871, 0/
+data (chrtab(i), i=2131,2135) / 988, 4188, 4182, 860, 4167/
+data (chrtab(i), i=2136,2140) / 924, 4231, 988, 4295, 71/
+data (chrtab(i), i=2141,2145) / 5063, 5069, 156, 4182, 220/
+data (chrtab(i), i=2146,2150) / 4185, 284, 4186, 412, 4187/
+data (chrtab(i), i=2151,2155) / 647, 5064, 775, 5065, 839/
+data (chrtab(i), i=2156,2160) / 5066, 903, 5069, 0, 160/
+data (chrtab(i), i=2161,2165) / 4224, 224, 4288, 160, 4704/
+data (chrtab(i), i=2166,2170) / 128, 4672, 0, 28, 4868/
+data (chrtab(i), i=2171,2175) / 0, 480, 4544, 544, 4608/
+data (chrtab(i), i=2176,2180) / 96, 4640, 64, 4608, 0/
+data (chrtab(i), i=2181,2185) / 278, 4505, 4630, 83, 4504/
+data (chrtab(i), i=2186,2190) / 4819, 408, 4487, 0, 5/
+data (chrtab(i), i=2191,2195) / 4997, 0, 348, 4315, 4249/
+data (chrtab(i), i=2196,2200) / 4246, 4309, 4373, 4438, 4439/
+data (chrtab(i), i=2201,2205) / 4376, 4312, 4247, 215, 4310/
+data (chrtab(i), i=2206,2210) / 4374, 4375, 4311, 219, 4247/
+data (chrtab(i), i=2211,2215) / 153, 4312, 0, 210, 4307/
+data (chrtab(i), i=2216,2220) / 4371, 4369, 4241, 4243, 4308/
+data (chrtab(i), i=2221,2225) / 4437, 4693, 4820, 4883, 4945/
+data (chrtab(i), i=2226,2230) / 4938, 5000, 5063, 723, 4881/
+data (chrtab(i), i=2231,2235) / 4874, 4936, 597, 4756, 4818/
+data (chrtab(i), i=2236,2240) / 4810, 4872, 5063, 5127, 720/
+data (chrtab(i), i=2241,2245) / 4751, 4430, 4237, 4171, 4170/
+data (chrtab(i), i=2246,2250) / 4232, 4423, 4615, 4744, 4810/
+data (chrtab(i), i=2251,2255) / 205, 4235, 4234, 4296, 655/
+data (chrtab(i), i=2256,2260) / 4494, 4365, 4299, 4298, 4360/
+data (chrtab(i), i=2261,2265) / 4423, 0, 220, 4295, 4360/
+data (chrtab(i), i=2266,2270) / 4488, 283, 4361, 28, 4444/
+data (chrtab(i), i=2271,2275) / 4424, 338, 4500, 4629, 4757/
+data (chrtab(i), i=2276,2280) / 4948, 5074, 5135, 5133, 5066/
+data (chrtab(i), i=2281,2285) / 4936, 4743, 4615, 4488, 4426/
+data (chrtab(i), i=2286,2290) / 914, 5072, 5068, 5002, 661/
+data (chrtab(i), i=2291,2295) / 4884, 4947, 5008, 5004, 4937/
+data (chrtab(i), i=2296,2300) / 4872, 4743, 92, 4315, 156/
+data (chrtab(i), i=2301,2305) / 4314, 0, 849, 4946, 4882/
+data (chrtab(i), i=2306,2310) / 4880, 5008, 5010, 4884, 4757/
+data (chrtab(i), i=2311,2315) / 4565, 4372, 4242, 4175, 4173/
+data (chrtab(i), i=2316,2320) / 4234, 4360, 4551, 4679, 4872/
+data (chrtab(i), i=2321,2325) / 5002, 210, 4240, 4236, 4298/
+data (chrtab(i), i=2326,2330) / 469, 4436, 4371, 4304, 4300/
+data (chrtab(i), i=2331,2335) / 4361, 4424, 4551, 0, 796/
+data (chrtab(i), i=2336,2340) / 4871, 5191, 859, 4936, 604/
+data (chrtab(i), i=2341,2345) / 5020, 4999, 786, 4820, 4693/
+data (chrtab(i), i=2346,2350) / 4565, 4372, 4242, 4175, 4173/
+data (chrtab(i), i=2351,2355) / 4234, 4360, 4551, 4679, 4808/
+data (chrtab(i), i=2356,2360) / 4874, 210, 4240, 4236, 4298/
+data (chrtab(i), i=2361,2365) / 469, 4436, 4371, 4304, 4300/
+data (chrtab(i), i=2366,2370) / 4361, 4424, 4551, 668, 4891/
+data (chrtab(i), i=2371,2375) / 732, 4890, 905, 5063, 904/
+data (chrtab(i), i=2376,2380) / 5127, 0, 207, 5007, 5009/
+data (chrtab(i), i=2381,2385) / 4947, 4884, 4693, 4565, 4372/
+data (chrtab(i), i=2386,2390) / 4242, 4175, 4173, 4234, 4360/
+data (chrtab(i), i=2391,2395) / 4551, 4679, 4872, 5002, 848/
+data (chrtab(i), i=2396,2400) / 4945, 4883, 210, 4240, 4236/
+data (chrtab(i), i=2401,2405) / 4298, 783, 4882, 4820, 4693/
+data (chrtab(i), i=2406,2410) / 469, 4436, 4371, 4304, 4300/
+data (chrtab(i), i=2411,2415) / 4361, 4424, 4551, 0, 666/
+data (chrtab(i), i=2416,2420) / 4763, 4699, 4697, 4825, 4827/
+data (chrtab(i), i=2421,2425) / 4764, 4572, 4443, 4378, 4311/
+data (chrtab(i), i=2426,2430) / 4295, 346, 4375, 4360, 476/
+data (chrtab(i), i=2431,2435) / 4507, 4441, 4423, 21, 4693/
+data (chrtab(i), i=2436,2440) / 7, 4615, 200, 4167, 201/
+data (chrtab(i), i=2441,2445) / 4231, 329, 4487, 328, 4551/
+data (chrtab(i), i=2446,2450) / 0, 852, 5011, 5076, 5013/
+data (chrtab(i), i=2451,2455) / 4949, 4820, 4755, 405, 4372/
+data (chrtab(i), i=2456,2460) / 4307, 4241, 4239, 4301, 4364/
+data (chrtab(i), i=2461,2465) / 4491, 4619, 4748, 4813, 4879/
+data (chrtab(i), i=2466,2470) / 4881, 4819, 4756, 4629, 4501/
+data (chrtab(i), i=2471,2475) / 275, 4305, 4303, 4365, 653/
+data (chrtab(i), i=2476,2480) / 4815, 4817, 4755, 405, 4436/
+data (chrtab(i), i=2481,2485) / 4370, 4366, 4428, 4491, 523/
+data (chrtab(i), i=2486,2490) / 4684, 4750, 4754, 4692, 4629/
+data (chrtab(i), i=2491,2495) / 205, 4236, 4170, 4169, 4231/
+data (chrtab(i), i=2496,2500) / 4294, 4485, 4741, 4932, 4995/
+data (chrtab(i), i=2501,2505) / 199, 4486, 4742, 4933, 73/
+data (chrtab(i), i=2506,2510) / 4232, 4423, 4743, 4934, 4996/
+data (chrtab(i), i=2511,2515) / 4995, 4929, 4736, 4352, 4161/
+data (chrtab(i), i=2516,2520) / 4099, 4100, 4166, 4359, 256/
+data (chrtab(i), i=2521,2525) / 4225, 4163, 4164, 4230, 4359/
+data (chrtab(i), i=2526,2530) / 0, 220, 4295, 283, 4360/
+data (chrtab(i), i=2531,2535) / 28, 4444, 4423, 337, 4499/
+data (chrtab(i), i=2536,2540) / 4564, 4693, 4885, 5012, 5075/
+data (chrtab(i), i=2541,2545) / 5136, 5127, 915, 5072, 5064/
+data (chrtab(i), i=2546,2550) / 789, 4948, 5009, 4999, 7/
+data (chrtab(i), i=2551,2555) / 4615, 711, 5319, 92, 4315/
+data (chrtab(i), i=2556,2560) / 156, 4314, 200, 4167, 201/
+data (chrtab(i), i=2561,2565) / 4231, 329, 4487, 328, 4551/
+data (chrtab(i), i=2566,2570) / 904, 4871, 905, 4935, 1033/
+data (chrtab(i), i=2571,2575) / 5191, 1032, 5255, 0, 220/
+data (chrtab(i), i=2576,2580) / 4314, 4442, 4444, 4316, 284/
+data (chrtab(i), i=2581,2585) / 4378, 219, 4443, 213, 4295/
+data (chrtab(i), i=2586,2590) / 276, 4360, 21, 4437, 4423/
+data (chrtab(i), i=2591,2595) / 7, 4615, 85, 4308, 149/
+data (chrtab(i), i=2596,2600) / 4307, 200, 4167, 201, 4231/
+data (chrtab(i), i=2601,2605) / 329, 4487, 328, 4551, 0/
+data (chrtab(i), i=2606,2610) / 348, 4442, 4570, 4572, 4444/
+data (chrtab(i), i=2611,2615) / 412, 4506, 347, 4571, 341/
+data (chrtab(i), i=2616,2620) / 4420, 4353, 4288, 404, 4485/
+data (chrtab(i), i=2621,2625) / 4418, 149, 4565, 4549, 4482/
+data (chrtab(i), i=2626,2630) / 4417, 4288, 4096, 4097, 4099/
+data (chrtab(i), i=2631,2635) / 4163, 4161, 4097, 4098, 213/
+data (chrtab(i), i=2636,2640) / 4436, 277, 4435, 0, 220/
+data (chrtab(i), i=2641,2645) / 4295, 283, 4360, 28, 4444/
+data (chrtab(i), i=2646,2650) / 4423, 916, 4427, 591, 5127/
+data (chrtab(i), i=2651,2655) / 590, 5063, 526, 4999, 725/
+data (chrtab(i), i=2656,2660) / 5269, 7, 4615, 711, 5255/
+data (chrtab(i), i=2661,2665) / 92, 4315, 156, 4314, 789/
+data (chrtab(i), i=2666,2670) / 5012, 1109, 5012, 200, 4167/
+data (chrtab(i), i=2671,2675) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=2676,2680) / 4551, 905, 4871, 841, 5191/
+data (chrtab(i), i=2681,2685) / 0, 220, 4295, 283, 4360/
+data (chrtab(i), i=2686,2690) / 28, 4444, 4423, 7, 4615/
+data (chrtab(i), i=2691,2695) / 92, 4315, 156, 4314, 200/
+data (chrtab(i), i=2696,2700) / 4167, 201, 4231, 329, 4487/
+data (chrtab(i), i=2701,2705) / 328, 4551, 0, 213, 4295/
+data (chrtab(i), i=2706,2710) / 276, 4360, 21, 4437, 4423/
+data (chrtab(i), i=2711,2715) / 337, 4499, 4564, 4693, 4885/
+data (chrtab(i), i=2716,2720) / 5012, 5075, 5136, 5127, 915/
+data (chrtab(i), i=2721,2725) / 5072, 5064, 789, 4948, 5009/
+data (chrtab(i), i=2726,2730) / 4999, 1041, 5203, 5268, 5397/
+data (chrtab(i), i=2731,2735) / 5589, 5716, 5779, 5840, 5831/
+data (chrtab(i), i=2736,2740) / 1619, 5776, 5768, 1493, 5652/
+data (chrtab(i), i=2741,2745) / 5713, 5703, 7, 4615, 711/
+data (chrtab(i), i=2746,2750) / 5319, 1415, 6023, 85, 4308/
+data (chrtab(i), i=2751,2755) / 149, 4307, 200, 4167, 201/
+data (chrtab(i), i=2756,2760) / 4231, 329, 4487, 328, 4551/
+data (chrtab(i), i=2761,2765) / 904, 4871, 905, 4935, 1033/
+data (chrtab(i), i=2766,2770) / 5191, 1032, 5255, 1608, 5575/
+data (chrtab(i), i=2771,2775) / 1609, 5639, 1737, 5895, 1736/
+data (chrtab(i), i=2776,2780) / 5959, 0, 213, 4295, 276/
+data (chrtab(i), i=2781,2785) / 4360, 21, 4437, 4423, 337/
+data (chrtab(i), i=2786,2790) / 4499, 4564, 4693, 4885, 5012/
+data (chrtab(i), i=2791,2795) / 5075, 5136, 5127, 915, 5072/
+data (chrtab(i), i=2796,2800) / 5064, 789, 4948, 5009, 4999/
+data (chrtab(i), i=2801,2805) / 7, 4615, 711, 5319, 85/
+data (chrtab(i), i=2806,2810) / 4308, 149, 4307, 200, 4167/
+data (chrtab(i), i=2811,2815) / 201, 4231, 329, 4487, 328/
+data (chrtab(i), i=2816,2820) / 4551, 904, 4871, 905, 4935/
+data (chrtab(i), i=2821,2825) / 1033, 5191, 1032, 5255, 0/
+data (chrtab(i), i=2826,2830) / 469, 4372, 4242, 4175, 4173/
+data (chrtab(i), i=2831,2835) / 4234, 4360, 4551, 4679, 4872/
+data (chrtab(i), i=2836,2840) / 5002, 5069, 5071, 5010, 4884/
+data (chrtab(i), i=2841,2845) / 4693, 4565, 210, 4240, 4236/
+data (chrtab(i), i=2846,2850) / 4298, 842, 5004, 5008, 4946/
+data (chrtab(i), i=2851,2855) / 469, 4436, 4371, 4304, 4300/
+data (chrtab(i), i=2856,2860) / 4361, 4424, 4551, 583, 4808/
+data (chrtab(i), i=2861,2865) / 4873, 4940, 4944, 4883, 4820/
+data (chrtab(i), i=2866,2870) / 4693, 0, 213, 4288, 276/
+data (chrtab(i), i=2871,2875) / 4353, 21, 4437, 4416, 338/
+data (chrtab(i), i=2876,2880) / 4500, 4629, 4757, 4948, 5074/
+data (chrtab(i), i=2881,2885) / 5135, 5133, 5066, 4936, 4743/
+data (chrtab(i), i=2886,2890) / 4615, 4488, 4426, 914, 5072/
+data (chrtab(i), i=2891,2895) / 5068, 5002, 661, 4884, 4947/
+data (chrtab(i), i=2896,2900) / 5008, 5004, 4937, 4872, 4743/
+data (chrtab(i), i=2901,2905) / 0, 4608, 85, 4308, 149/
+data (chrtab(i), i=2906,2910) / 4307, 193, 4160, 194, 4224/
+data (chrtab(i), i=2911,2915) / 322, 4480, 321, 4544, 0/
+data (chrtab(i), i=2916,2920) / 788, 4864, 851, 4929, 724/
+data (chrtab(i), i=2921,2925) / 4948, 5013, 4992, 786, 4820/
+data (chrtab(i), i=2926,2930) / 4693, 4565, 4372, 4242, 4175/
+data (chrtab(i), i=2931,2935) / 4173, 4234, 4360, 4551, 4679/
+data (chrtab(i), i=2936,2940) / 4808, 4874, 210, 4240, 4236/
+data (chrtab(i), i=2941,2945) / 4298, 469, 4436, 4371, 4304/
+data (chrtab(i), i=2946,2950) / 4300, 4361, 4424, 4551, 576/
+data (chrtab(i), i=2951,2955) / 5184, 769, 4736, 770, 4800/
+data (chrtab(i), i=2956,2960) / 898, 5056, 897, 5120, 0/
+data (chrtab(i), i=2961,2965) / 213, 4295, 276, 4360, 21/
+data (chrtab(i), i=2966,2970) / 4437, 4423, 787, 4884, 4820/
+data (chrtab(i), i=2971,2975) / 4818, 4946, 4948, 4885, 4757/
+data (chrtab(i), i=2976,2980) / 4628, 4498, 4431, 7, 4615/
+data (chrtab(i), i=2981,2985) / 85, 4308, 149, 4307, 200/
+data (chrtab(i), i=2986,2990) / 4167, 201, 4231, 329, 4487/
+data (chrtab(i), i=2991,2995) / 328, 4551, 0, 723, 4885/
+data (chrtab(i), i=2996,3000) / 4881, 4819, 4756, 4629, 4373/
+data (chrtab(i), i=3001,3005) / 4244, 4179, 4177, 4239, 4366/
+data (chrtab(i), i=3006,3010) / 4685, 4812, 4873, 148, 4177/
+data (chrtab(i), i=3011,3015) / 144, 4367, 4686, 4813, 780/
+data (chrtab(i), i=3016,3020) / 4808, 83, 4241, 4368, 4687/
+data (chrtab(i), i=3021,3025) / 4814, 4876, 4873, 4808, 4679/
+data (chrtab(i), i=3026,3030) / 4423, 4296, 4233, 4171, 4167/
+data (chrtab(i), i=3031,3035) / 4233, 0, 218, 4300, 4361/
+data (chrtab(i), i=3036,3040) / 4424, 4551, 4679, 4808, 4874/
+data (chrtab(i), i=3041,3045) / 282, 4363, 4425, 218, 4444/
+data (chrtab(i), i=3046,3050) / 4427, 4488, 4551, 21, 4693/
+data (chrtab(i), i=3051,3055) / 0, 213, 4300, 4361, 4424/
+data (chrtab(i), i=3056,3060) / 4551, 4743, 4872, 4937, 5003/
+data (chrtab(i), i=3061,3065) / 276, 4363, 4425, 21, 4437/
+data (chrtab(i), i=3066,3070) / 4427, 4488, 4551, 917, 4999/
+data (chrtab(i), i=3071,3075) / 5319, 980, 5064, 725, 5141/
+data (chrtab(i), i=3076,3080) / 5127, 85, 4308, 149, 4307/
+data (chrtab(i), i=3081,3085) / 1033, 5191, 1032, 5255, 0/
+data (chrtab(i), i=3086,3090) / 85, 4551, 149, 4553, 213/
+data (chrtab(i), i=3091,3095) / 4617, 852, 4617, 4551, 21/
+data (chrtab(i), i=3096,3100) / 4501, 597, 5077, 21, 4307/
+data (chrtab(i), i=3101,3105) / 341, 4308, 725, 4948, 917/
+data (chrtab(i), i=3106,3110) / 4948, 0, 149, 4487, 213/
+data (chrtab(i), i=3111,3115) / 4490, 277, 4554, 661, 4554/
+data (chrtab(i), i=3116,3120) / 4487, 661, 4999, 725, 5002/
+data (chrtab(i), i=3121,3125) / 661, 4885, 5066, 1172, 5066/
+data (chrtab(i), i=3126,3130) / 4999, 21, 4565, 981, 5461/
+data (chrtab(i), i=3131,3135) / 21, 4308, 405, 4372, 1045/
+data (chrtab(i), i=3136,3140) / 5268, 1301, 5268, 0, 149/
+data (chrtab(i), i=3141,3145) / 4871, 213, 4935, 277, 4999/
+data (chrtab(i), i=3146,3150) / 852, 4296, 21, 4565, 661/
+data (chrtab(i), i=3151,3155) / 5141, 7, 4487, 583, 5127/
+data (chrtab(i), i=3156,3160) / 85, 4308, 405, 4372, 725/
+data (chrtab(i), i=3161,3165) / 4948, 981, 4948, 200, 4167/
+data (chrtab(i), i=3166,3170) / 200, 4423, 776, 4743, 840/
+data (chrtab(i), i=3171,3175) / 5063, 0, 149, 4615, 213/
+data (chrtab(i), i=3176,3180) / 4617, 277, 4681, 916, 4681/
+data (chrtab(i), i=3181,3185) / 4483, 4353, 4224, 4096, 4097/
+data (chrtab(i), i=3186,3190) / 4099, 4163, 4161, 4097, 4098/
+data (chrtab(i), i=3191,3195) / 21, 4565, 661, 5141, 85/
+data (chrtab(i), i=3196,3200) / 4371, 405, 4372, 789, 5012/
+data (chrtab(i), i=3201,3205) / 981, 5012, 0, 725, 4167/
+data (chrtab(i), i=3206,3210) / 789, 4231, 853, 4295, 853/
+data (chrtab(i), i=3211,3215) / 4181, 4177, 71, 4935, 4939/
+data (chrtab(i), i=3216,3220) / 149, 4177, 213, 4178, 277/
+data (chrtab(i), i=3221,3225) / 4179, 405, 4180, 519, 4936/
+data (chrtab(i), i=3226,3230) / 647, 4937, 711, 4938, 775/
+data (chrtab(i), i=3231,3235) / 4939, 0, 480, 4447, 4382/
+data (chrtab(i), i=3236,3240) / 4316, 4314, 4376, 4439, 4501/
+data (chrtab(i), i=3241,3245) / 4499, 4369, 351, 4381, 4379/
+data (chrtab(i), i=3246,3250) / 4441, 4504, 4566, 4564, 4498/
+data (chrtab(i), i=3251,3255) / 4240, 4494, 4556, 4554, 4488/
+data (chrtab(i), i=3256,3260) / 4423, 4357, 4355, 4417, 271/
+data (chrtab(i), i=3261,3265) / 4493, 4491, 4425, 4360, 4294/
+data (chrtab(i), i=3266,3270) / 4292, 4354, 4417, 4544, 0/
+data (chrtab(i), i=3271,3275) / 160, 4224, 0, 224, 4447/
+data (chrtab(i), i=3276,3280) / 4510, 4572, 4570, 4504, 4439/
+data (chrtab(i), i=3281,3285) / 4373, 4371, 4497, 351, 4509/
+data (chrtab(i), i=3286,3290) / 4507, 4441, 4376, 4310, 4308/
+data (chrtab(i), i=3291,3295) / 4370, 4624, 4366, 4300, 4298/
+data (chrtab(i), i=3296,3300) / 4360, 4423, 4485, 4483, 4417/
+data (chrtab(i), i=3301,3305) / 399, 4365, 4363, 4425, 4488/
+data (chrtab(i), i=3306,3310) / 4550, 4548, 4482, 4417, 4288/
+data (chrtab(i), i=3311,3315) / 0, 77, 4175, 4242, 4371/
+data (chrtab(i), i=3316,3320) / 4499, 4626, 4879, 5006, 5134/
+data (chrtab(i), i=3321,3325) / 5263, 5329, 79, 4241, 4370/
+data (chrtab(i), i=3326,3330) / 4498, 4625, 4878, 5005, 5133/
+data (chrtab(i), i=3331,3335) / 5262, 5329, 5331, 0, 284/
+data (chrtab(i), i=3336,3340) / 4251, 4185, 4183, 4245, 4372/
+data (chrtab(i), i=3341,3345) / 4500, 4629, 4695, 4697, 4635/
+data (chrtab(i), i=3346,3350) / 4508, 4380, 284, 4185, 4245/
+data (chrtab(i), i=3351,3355) / 4500, 4695, 4635, 4380, 412/
+data (chrtab(i), i=3356,3360) / 4251, 4183, 4372, 4629, 4697/
+data (chrtab(i), i=3361,3362) / 4508, 0/
diff --git a/sys/gio/fonts/greek.com b/sys/gio/fonts/greek.com
new file mode 100644
index 00000000..82c5fe34
--- /dev/null
+++ b/sys/gio/fonts/greek.com
@@ -0,0 +1,501 @@
+# CHRTAB -- Table of strokes for the printable ASCII characters. Each
+# character is encoded as a series of strokes. Each stroke is ex-
+# pressed by a single integer containing the following bitfields:
+#
+# 2 1
+# 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1
+# | | | | | | |
+# | | | +---------+ +---------+
+# | | | | |
+# | | | X Y
+# | | |
+# | | +-- pen up/down
+# | +---- begin paint (not used at present)
+# +------ end paint (not used at present)
+#
+#----------------------------------------------------------------------------
+
+# Define the database.
+
+short gchidx[97] # character index in gchtab
+short gchwid[97] # character width table
+short gchtab[2140] # stroke data to draw the characters
+
+# Index into CHRTAB of each printable character (starting with SP)
+
+data (gchidx(i), i=001,005) / 1, 3, 16, 29, 38/
+data (gchidx(i), i=006,010) / 77, 107, 154, 162, 181/
+data (gchidx(i), i=011,015) / 200, 205, 212, 233, 240/
+data (gchidx(i), i=016,020) / 246, 259, 297, 306, 348/
+data (gchidx(i), i=021,025) / 392, 402, 437, 483, 510/
+data (gchidx(i), i=026,030) / 568, 614, 645, 658, 666/
+data (gchidx(i), i=031,035) / 673, 681, 688, 741, 767/
+data (gchidx(i), i=036,040) / 793, 795, 806, 821, 863/
+data (gchidx(i), i=041,045) / 874, 883, 888, 899, 901/
+data (gchidx(i), i=046,050) / 912, 921, 930, 972, 987/
+data (gchidx(i), i=051,055) / 1037, 1067, 1083, 1088, 1117/
+data (gchidx(i), i=056,060) / 1143, 1182, 1207, 1242, 1244/
+data (gchidx(i), i=061,065) / 1253, 1256, 1265, 1267, 1276/
+data (gchidx(i), i=066,070) / 1284, 1321, 1373, 1394, 1436/
+data (gchidx(i), i=071,075) / 1465, 1500, 1525, 1554, 1568/
+data (gchidx(i), i=076,080) / 1610, 1635, 1655, 1679, 1699/
+data (gchidx(i), i=081,085) / 1729, 1746, 1788, 1817, 1849/
+data (gchidx(i), i=086,090) / 1862, 1891, 1893, 1934, 1975/
+data (gchidx(i), i=091,095) / 2006, 2036, 2074, 2079, 2117/
+data (gchidx(i), i=096,096) / 2126/
+
+
+# Width data.
+
+data (gchwid(i), i=001,005) / 21, 15, 15, 26, 25/
+data (gchwid(i), i=006,010) / 29, 30, 15, 19, 19/
+data (gchwid(i), i=011,015) / 27, 29, 30, 29, 15/
+data (gchwid(i), i=016,020) / 31, 25, 25, 25, 25/
+data (gchwid(i), i=021,025) / 25, 25, 25, 25, 25/
+data (gchwid(i), i=026,030) / 25, 29, 15, 29, 31/
+data (gchwid(i), i=031,035) / 29, 31, 32, 25, 30/
+data (gchwid(i), i=036,040) / 21, 25, 29, 26, 23/
+data (gchwid(i), i=041,045) / 26, 19, 25, 21, 25/
+data (gchwid(i), i=046,050) / 21, 21, 27, 29, 27/
+data (gchwid(i), i=051,055) / 29, 26, 19, 24, 25/
+data (gchwid(i), i=056,060) / 27, 27, 28, 21, 19/
+data (gchwid(i), i=061,065) / 19, 19, 21, 31, 27/
+data (gchwid(i), i=066,070) / 28, 26, 23, 24, 23/
+data (gchwid(i), i=071,075) / 27, 25, 27, 17, 24/
+data (gchwid(i), i=076,080) / 25, 25, 28, 25, 23/
+data (gchwid(i), i=081,085) / 27, 28, 24, 26, 25/
+data (gchwid(i), i=086,090) / 25, 21, 28, 22, 28/
+data (gchwid(i), i=091,095) / 23, 19, 19, 19, 31/
+data (gchwid(i), i=096,096) / 19/
+
+
+# Stroke data.
+
+data (gchtab(i), i=0001,0005) / 35, 0, 220, 4250, 4302/
+data (gchtab(i), i=0006,0010) / 4378, 4316, 218, 4308, 201/
+data (gchtab(i), i=0011,0015) / 4232, 4295, 4360, 4297, 0/
+data (gchtab(i), i=0016,0020) / 213, 4244, 4307, 4372, 4309/
+data (gchtab(i), i=0021,0025) / 199, 4232, 4297, 4360, 4358/
+data (gchtab(i), i=0026,0030) / 4292, 4227, 0, 604, 4224/
+data (gchtab(i), i=0031,0035) / 988, 4608, 145, 5137, 75/
+data (gchtab(i), i=0036,0040) / 5067, 0, 416, 4483, 672/
+data (gchtab(i), i=0041,0045) / 4739, 921, 4952, 5015, 5080/
+data (gchtab(i), i=0046,0050) / 5081, 4955, 4764, 4508, 4315/
+data (gchtab(i), i=0051,0055) / 4185, 4183, 4245, 4308, 4435/
+data (gchtab(i), i=0056,0060) / 4817, 4944, 5070, 87, 4309/
+data (gchtab(i), i=0061,0065) / 4436, 4818, 4945, 5008, 5070/
+data (gchtab(i), i=0066,0070) / 5066, 4936, 4743, 4487, 4296/
+data (gchtab(i), i=0071,0075) / 4170, 4171, 4236, 4299, 4234/
+data (gchtab(i), i=0076,0080) / 0, 1244, 4167, 412, 4634/
+data (gchtab(i), i=0081,0085) / 4632, 4566, 4437, 4309, 4183/
+data (gchtab(i), i=0086,0090) / 4185, 4251, 4380, 4508, 4635/
+data (gchtab(i), i=0091,0095) / 4826, 5018, 5211, 5340, 974/
+data (gchtab(i), i=0096,0100) / 4941, 4875, 4873, 4999, 5127/
+data (gchtab(i), i=0101,0105) / 5256, 5322, 5324, 5198, 5070/
+data (gchtab(i), i=0106,0110) / 0, 1236, 5267, 5330, 5395/
+data (gchtab(i), i=0111,0115) / 5396, 5333, 5269, 5204, 5138/
+data (gchtab(i), i=0116,0120) / 5005, 4874, 4744, 4615, 4423/
+data (gchtab(i), i=0121,0125) / 4232, 4170, 4173, 4239, 4627/
+data (gchtab(i), i=0126,0130) / 4757, 4823, 4825, 4763, 4636/
+data (gchtab(i), i=0131,0135) / 4507, 4441, 4439, 4500, 4625/
+data (gchtab(i), i=0136,0140) / 4938, 5064, 5255, 5319, 5384/
+data (gchtab(i), i=0141,0145) / 5385, 327, 4296, 4234, 4237/
+data (gchtab(i), i=0146,0150) / 4303, 4433, 343, 4501, 5002/
+data (gchtab(i), i=0151,0155) / 5128, 5255, 0, 218, 4251/
+data (gchtab(i), i=0156,0160) / 4316, 4379, 4377, 4311, 4246/
+data (gchtab(i), i=0161,0165) / 0, 608, 4574, 4443, 4311/
+data (gchtab(i), i=0166,0170) / 4242, 4238, 4297, 4421, 4546/
+data (gchtab(i), i=0171,0175) / 4672, 478, 4442, 4375, 4306/
+data (gchtab(i), i=0176,0180) / 4302, 4361, 4422, 4546, 0/
+data (gchtab(i), i=0181,0185) / 96, 4318, 4443, 4567, 4626/
+data (gchtab(i), i=0186,0190) / 4622, 4553, 4421, 4290, 4160/
+data (gchtab(i), i=0191,0195) / 222, 4442, 4503, 4562, 4558/
+data (gchtab(i), i=0196,0200) / 4489, 4422, 4290, 0, 151/
+data (gchtab(i), i=0201,0205) / 5129, 1047, 4233, 0, 664/
+data (gchtab(i), i=0206,0210) / 4743, 144, 5264, 135, 5255/
+data (gchtab(i), i=0211,0215) / 0, 1227, 5195, 5068, 4942/
+data (gchtab(i), i=0216,0220) / 4754, 4691, 4564, 4436, 4307/
+data (gchtab(i), i=0221,0225) / 4241, 4239, 4301, 4428, 4556/
+data (gchtab(i), i=0226,0230) / 4685, 4750, 4946, 5076, 5205/
+data (gchtab(i), i=0231,0235) / 5333, 0, 664, 4743, 152/
+data (gchtab(i), i=0236,0240) / 5272, 144, 5264, 0, 201/
+data (gchtab(i), i=0241,0245) / 4232, 4295, 4360, 4297, 0/
+data (gchtab(i), i=0246,0250) / 729, 4760, 4823, 4888, 4825/
+data (gchtab(i), i=0251,0255) / 144, 5392, 713, 4744, 4807/
+data (gchtab(i), i=0256,0260) / 4872, 4809, 0, 476, 4379/
+data (gchtab(i), i=0261,0265) / 4248, 4179, 4176, 4235, 4360/
+data (gchtab(i), i=0266,0270) / 4551, 4679, 4872, 5003, 5072/
+data (gchtab(i), i=0271,0275) / 5075, 5016, 4891, 4700, 4572/
+data (gchtab(i), i=0276,0280) / 476, 4443, 4378, 4312, 4243/
+data (gchtab(i), i=0281,0285) / 4240, 4299, 4361, 4424, 4551/
+data (gchtab(i), i=0286,0290) / 583, 4808, 4873, 4939, 5008/
+data (gchtab(i), i=0291,0295) / 5011, 4952, 4890, 4827, 4700/
+data (gchtab(i), i=0296,0300) / 0, 280, 4505, 4700, 4679/
+data (gchtab(i), i=0301,0305) / 539, 4615, 263, 4935, 0/
+data (gchtab(i), i=0306,0310) / 152, 4311, 4246, 4183, 4184/
+data (gchtab(i), i=0311,0315) / 4250, 4315, 4508, 4764, 4955/
+data (gchtab(i), i=0316,0320) / 5018, 5080, 5078, 5012, 4818/
+data (gchtab(i), i=0321,0325) / 4496, 4367, 4237, 4170, 4167/
+data (gchtab(i), i=0326,0330) / 668, 4891, 4954, 5016, 5014/
+data (gchtab(i), i=0331,0335) / 4948, 4754, 4496, 73, 4234/
+data (gchtab(i), i=0336,0340) / 4362, 4680, 4872, 5001, 5066/
+data (gchtab(i), i=0341,0345) / 266, 4679, 4935, 5000, 5066/
+data (gchtab(i), i=0346,0350) / 5068, 0, 152, 4311, 4246/
+data (gchtab(i), i=0351,0355) / 4183, 4184, 4250, 4315, 4508/
+data (gchtab(i), i=0356,0360) / 4764, 4955, 5017, 5014, 4948/
+data (gchtab(i), i=0361,0365) / 4755, 4563, 668, 4891, 4953/
+data (gchtab(i), i=0366,0370) / 4950, 4884, 4755, 659, 4882/
+data (gchtab(i), i=0371,0375) / 5008, 5070, 5067, 5001, 4936/
+data (gchtab(i), i=0376,0380) / 4743, 4487, 4296, 4233, 4171/
+data (gchtab(i), i=0381,0385) / 4172, 4237, 4300, 4235, 849/
+data (gchtab(i), i=0386,0390) / 5006, 5003, 4937, 4872, 4743/
+data (gchtab(i), i=0391,0395) / 0, 666, 4743, 732, 4807/
+data (gchtab(i), i=0396,0400) / 732, 4109, 5133, 455, 4999/
+data (gchtab(i), i=0401,0405) / 0, 220, 4178, 82, 4308/
+data (gchtab(i), i=0406,0410) / 4501, 4693, 4884, 5010, 5071/
+data (gchtab(i), i=0411,0415) / 5069, 5002, 4872, 4679, 4487/
+data (gchtab(i), i=0416,0420) / 4296, 4233, 4171, 4172, 4237/
+data (gchtab(i), i=0421,0425) / 4300, 4235, 597, 4820, 4946/
+data (gchtab(i), i=0426,0430) / 5007, 5005, 4938, 4808, 4679/
+data (gchtab(i), i=0431,0435) / 220, 4956, 219, 4635, 4956/
+data (gchtab(i), i=0436,0440) / 0, 857, 4888, 4951, 5016/
+data (gchtab(i), i=0441,0445) / 5017, 4955, 4828, 4636, 4443/
+data (gchtab(i), i=0446,0450) / 4313, 4247, 4179, 4173, 4234/
+data (gchtab(i), i=0451,0455) / 4360, 4551, 4679, 4872, 5002/
+data (gchtab(i), i=0456,0460) / 5069, 5070, 5009, 4883, 4692/
+data (gchtab(i), i=0461,0465) / 4628, 4435, 4305, 4238, 540/
+data (gchtab(i), i=0466,0470) / 4507, 4377, 4311, 4243, 4237/
+data (gchtab(i), i=0471,0475) / 4298, 4424, 4551, 583, 4808/
+data (gchtab(i), i=0476,0480) / 4938, 5005, 5006, 4945, 4819/
+data (gchtab(i), i=0481,0485) / 4692, 0, 92, 4182, 88/
+data (gchtab(i), i=0486,0490) / 4250, 4380, 4508, 4825, 4953/
+data (gchtab(i), i=0491,0495) / 5018, 5084, 154, 4379, 4507/
+data (gchtab(i), i=0496,0500) / 4825, 988, 5081, 5014, 4753/
+data (gchtab(i), i=0501,0505) / 4687, 4620, 4615, 918, 4689/
+data (gchtab(i), i=0506,0510) / 4623, 4556, 4551, 0, 412/
+data (gchtab(i), i=0511,0515) / 4315, 4249, 4246, 4308, 4499/
+data (gchtab(i), i=0516,0520) / 4755, 4948, 5014, 5017, 4955/
+data (gchtab(i), i=0521,0525) / 4764, 4508, 412, 4379, 4313/
+data (gchtab(i), i=0526,0530) / 4310, 4372, 4499, 659, 4884/
+data (gchtab(i), i=0531,0535) / 4950, 4953, 4891, 4764, 403/
+data (gchtab(i), i=0536,0540) / 4306, 4241, 4175, 4171, 4233/
+data (gchtab(i), i=0541,0545) / 4296, 4487, 4743, 4936, 5001/
+data (gchtab(i), i=0546,0550) / 5067, 5071, 5009, 4946, 4755/
+data (gchtab(i), i=0551,0555) / 403, 4370, 4305, 4239, 4235/
+data (gchtab(i), i=0556,0560) / 4297, 4360, 4487, 647, 4872/
+data (gchtab(i), i=0561,0565) / 4937, 5003, 5007, 4945, 4882/
+data (gchtab(i), i=0566,0570) / 4755, 0, 917, 4946, 4816/
+data (gchtab(i), i=0571,0575) / 4623, 4559, 4368, 4242, 4181/
+data (gchtab(i), i=0576,0580) / 4182, 4249, 4379, 4572, 4700/
+data (gchtab(i), i=0581,0585) / 4891, 5017, 5078, 5072, 5004/
+data (gchtab(i), i=0586,0590) / 4938, 4808, 4615, 4423, 4296/
+data (gchtab(i), i=0591,0595) / 4234, 4235, 4300, 4363, 4298/
+data (gchtab(i), i=0596,0600) / 463, 4432, 4306, 4245, 4246/
+data (gchtab(i), i=0601,0605) / 4313, 4443, 4572, 604, 4827/
+data (gchtab(i), i=0606,0610) / 4953, 5014, 5008, 4940, 4874/
+data (gchtab(i), i=0611,0615) / 4744, 4615, 0, 1247, 5278/
+data (gchtab(i), i=0616,0620) / 5341, 5406, 5407, 5344, 5216/
+data (gchtab(i), i=0621,0625) / 5087, 4957, 4891, 4824, 4756/
+data (gchtab(i), i=0626,0630) / 4616, 4548, 4482, 926, 4956/
+data (gchtab(i), i=0631,0635) / 4888, 4748, 4680, 4613, 4547/
+data (gchtab(i), i=0636,0640) / 4417, 4288, 4160, 4097, 4098/
+data (gchtab(i), i=0641,0645) / 4163, 4226, 4161, 0, 213/
+data (gchtab(i), i=0646,0650) / 4244, 4307, 4372, 4309, 199/
+data (gchtab(i), i=0651,0655) / 4232, 4297, 4360, 4358, 4292/
+data (gchtab(i), i=0656,0660) / 4227, 0, 1180, 4245, 5262/
+data (gchtab(i), i=0661,0665) / 140, 5260, 135, 5255, 0/
+data (gchtab(i), i=0666,0670) / 149, 5397, 144, 5392, 139/
+data (gchtab(i), i=0671,0675) / 5387, 0, 156, 5269, 4238/
+data (gchtab(i), i=0676,0680) / 140, 5260, 135, 5255, 0/
+data (gchtab(i), i=0681,0685) / 1177, 4359, 147, 5395, 141/
+data (gchtab(i), i=0686,0690) / 5389, 0, 1044, 5078, 4951/
+data (gchtab(i), i=0691,0695) / 4759, 4630, 4565, 4498, 4495/
+data (gchtab(i), i=0696,0700) / 4557, 4684, 4876, 5005, 5071/
+data (gchtab(i), i=0701,0705) / 663, 4629, 4562, 4559, 4621/
+data (gchtab(i), i=0706,0710) / 4684, 1047, 5071, 5069, 5196/
+data (gchtab(i), i=0711,0715) / 5324, 5454, 5521, 5523, 5462/
+data (gchtab(i), i=0716,0720) / 5400, 5274, 5147, 4956, 4764/
+data (gchtab(i), i=0721,0725) / 4571, 4442, 4312, 4246, 4179/
+data (gchtab(i), i=0726,0730) / 4176, 4237, 4299, 4425, 4552/
+data (gchtab(i), i=0731,0735) / 4743, 4935, 5128, 5257, 5322/
+data (gchtab(i), i=0736,0740) / 1111, 5135, 5133, 5196, 0/
+data (gchtab(i), i=0741,0745) / 473, 4167, 601, 5063, 537/
+data (gchtab(i), i=0746,0750) / 4999, 205, 4877, 7, 4423/
+data (gchtab(i), i=0751,0755) / 711, 5191, 480, 4447, 4381/
+data (gchtab(i), i=0756,0760) / 4379, 4441, 4568, 4696, 4825/
+data (gchtab(i), i=0761,0765) / 4891, 4893, 4831, 4704, 4576/
+data (gchtab(i), i=0766,0770) / 0, 1295, 5325, 5196, 5068/
+data (gchtab(i), i=0771,0775) / 4941, 4878, 4690, 4627, 4500/
+data (gchtab(i), i=0776,0780) / 4372, 4243, 4177, 4175, 4237/
+data (gchtab(i), i=0781,0785) / 4364, 4492, 4621, 4686, 4882/
+data (gchtab(i), i=0786,0790) / 4947, 5076, 5204, 5331, 5393/
+data (gchtab(i), i=0791,0795) / 5391, 0, 35, 0, 540/
+data (gchtab(i), i=0796,0800) / 4103, 540, 5127, 537, 5063/
+data (gchtab(i), i=0801,0805) / 72, 5064, 7, 5127, 0/
+data (gchtab(i), i=0806,0810) / 1176, 4824, 4567, 4438, 4308/
+data (gchtab(i), i=0811,0815) / 4241, 4239, 4300, 4426, 4553/
+data (gchtab(i), i=0816,0820) / 4808, 5256, 144, 5008, 0/
+data (gchtab(i), i=0821,0825) / 540, 4615, 604, 4679, 407/
+data (gchtab(i), i=0826,0830) / 4310, 4245, 4179, 4176, 4238/
+data (gchtab(i), i=0831,0835) / 4301, 4492, 4812, 5005, 5070/
+data (gchtab(i), i=0836,0840) / 5136, 5139, 5077, 5014, 4823/
+data (gchtab(i), i=0841,0845) / 4503, 407, 4374, 4309, 4243/
+data (gchtab(i), i=0846,0850) / 4240, 4302, 4365, 4492, 716/
+data (gchtab(i), i=0851,0855) / 4941, 5006, 5072, 5075, 5013/
+data (gchtab(i), i=0856,0860) / 4950, 4823, 348, 4892, 327/
+data (gchtab(i), i=0861,0865) / 4871, 0, 220, 4295, 284/
+data (gchtab(i), i=0866,0870) / 4359, 28, 5084, 5078, 5020/
+data (gchtab(i), i=0871,0875) / 7, 4551, 0, 608, 4224/
+data (gchtab(i), i=0876,0880) / 992, 4608, 147, 5139, 77/
+data (gchtab(i), i=0881,0885) / 5069, 0, 160, 4224, 544/
+data (gchtab(i), i=0886,0890) / 4608, 0, 28, 4615, 92/
+data (gchtab(i), i=0891,0895) / 4617, 1052, 4615, 28, 5148/
+data (gchtab(i), i=0896,0900) / 91, 5083, 0, 35, 0/
+data (gchtab(i), i=0901,0905) / 540, 4167, 540, 5063, 537/
+data (gchtab(i), i=0906,0910) / 4999, 7, 4423, 711, 5191/
+data (gchtab(i), i=0911,0915) / 0, 278, 4505, 4630, 83/
+data (gchtab(i), i=0916,0920) / 4504, 4819, 408, 4487, 0/
+data (gchtab(i), i=0921,0925) / 266, 4487, 4618, 77, 4488/
+data (gchtab(i), i=0926,0930) / 4813, 409, 4488, 0, 540/
+data (gchtab(i), i=0931,0935) / 4443, 4313, 4247, 4179, 4176/
+data (gchtab(i), i=0936,0940) / 4236, 4298, 4424, 4615, 4743/
+data (gchtab(i), i=0941,0945) / 4936, 5066, 5132, 5200, 5203/
+data (gchtab(i), i=0946,0950) / 5143, 5081, 4955, 4764, 4636/
+data (gchtab(i), i=0951,0955) / 540, 4507, 4377, 4311, 4243/
+data (gchtab(i), i=0956,0960) / 4240, 4300, 4362, 4488, 4615/
+data (gchtab(i), i=0961,0965) / 647, 4872, 5002, 5068, 5136/
+data (gchtab(i), i=0966,0970) / 5139, 5079, 5017, 4891, 4764/
+data (gchtab(i), i=0971,0975) / 0, 220, 4295, 284, 4359/
+data (gchtab(i), i=0976,0980) / 1052, 5127, 1116, 5191, 28/
+data (gchtab(i), i=0981,0985) / 5404, 7, 4551, 839, 5383/
+data (gchtab(i), i=0986,0990) / 0, 540, 4443, 4313, 4247/
+data (gchtab(i), i=0991,0995) / 4179, 4176, 4236, 4298, 4424/
+data (gchtab(i), i=0996,1000) / 4615, 4743, 4936, 5066, 5132/
+data (gchtab(i), i=1001,1005) / 5200, 5203, 5143, 5081, 4955/
+data (gchtab(i), i=1006,1010) / 4764, 4636, 540, 4507, 4377/
+data (gchtab(i), i=1011,1015) / 4311, 4243, 4240, 4300, 4362/
+data (gchtab(i), i=1016,1020) / 4488, 4615, 647, 4872, 5002/
+data (gchtab(i), i=1021,1025) / 5068, 5136, 5139, 5079, 5017/
+data (gchtab(i), i=1026,1030) / 4891, 4764, 405, 4494, 789/
+data (gchtab(i), i=1031,1035) / 4878, 402, 4882, 401, 4881/
+data (gchtab(i), i=1036,1040) / 0, 1244, 4167, 412, 4634/
+data (gchtab(i), i=1041,1045) / 4632, 4566, 4437, 4309, 4183/
+data (gchtab(i), i=1046,1050) / 4185, 4251, 4380, 4508, 4635/
+data (gchtab(i), i=1051,1055) / 4826, 5018, 5211, 5340, 974/
+data (gchtab(i), i=1056,1060) / 4941, 4875, 4873, 4999, 5127/
+data (gchtab(i), i=1061,1065) / 5256, 5322, 5324, 5198, 5070/
+data (gchtab(i), i=1066,1070) / 0, 92, 4626, 4103, 28/
+data (gchtab(i), i=1071,1075) / 4562, 28, 5084, 5142, 5020/
+data (gchtab(i), i=1076,1080) / 72, 5000, 7, 5063, 5133/
+data (gchtab(i), i=1081,1085) / 4999, 0, 160, 4224, 544/
+data (gchtab(i), i=1086,1090) / 4608, 0, 23, 4121, 4187/
+data (gchtab(i), i=1091,1095) / 4252, 4380, 4443, 4505, 4565/
+data (gchtab(i), i=1096,1100) / 4551, 25, 4251, 4379, 4505/
+data (gchtab(i), i=1101,1105) / 983, 5081, 5019, 4956, 4828/
+data (gchtab(i), i=1106,1110) / 4763, 4697, 4629, 4615, 985/
+data (gchtab(i), i=1111,1115) / 4955, 4827, 4697, 263, 4807/
+data (gchtab(i), i=1116,1120) / 0, 473, 4167, 601, 5063/
+data (gchtab(i), i=1121,1125) / 537, 4999, 205, 4877, 7/
+data (gchtab(i), i=1126,1130) / 4423, 711, 5191, 480, 4447/
+data (gchtab(i), i=1131,1135) / 4381, 4379, 4441, 4568, 4696/
+data (gchtab(i), i=1136,1140) / 4825, 4891, 4893, 4831, 4704/
+data (gchtab(i), i=1141,1145) / 4576, 0, 74, 4231, 4487/
+data (gchtab(i), i=1146,1150) / 4363, 4239, 4178, 4182, 4249/
+data (gchtab(i), i=1151,1155) / 4379, 4572, 4828, 5019, 5145/
+data (gchtab(i), i=1156,1160) / 5206, 5202, 5135, 5003, 4871/
+data (gchtab(i), i=1161,1165) / 5127, 5194, 267, 4302, 4242/
+data (gchtab(i), i=1166,1170) / 4246, 4313, 4443, 4572, 732/
+data (gchtab(i), i=1171,1175) / 4955, 5081, 5142, 5138, 5070/
+data (gchtab(i), i=1176,1180) / 5003, 136, 4424, 840, 5128/
+data (gchtab(i), i=1181,1185) / 0, 157, 4184, 1117, 5144/
+data (gchtab(i), i=1186,1190) / 404, 4431, 852, 4879, 139/
+data (gchtab(i), i=1191,1195) / 4166, 1099, 5126, 155, 5147/
+data (gchtab(i), i=1196,1200) / 154, 5146, 402, 4882, 401/
+data (gchtab(i), i=1201,1205) / 4881, 137, 5129, 136, 5128/
+data (gchtab(i), i=1206,1210) / 0, 604, 4679, 668, 4743/
+data (gchtab(i), i=1211,1215) / 21, 4182, 4309, 4369, 4431/
+data (gchtab(i), i=1216,1220) / 4494, 4621, 86, 4245, 4305/
+data (gchtab(i), i=1221,1225) / 4367, 4430, 4621, 4813, 5006/
+data (gchtab(i), i=1226,1230) / 5071, 5137, 5205, 5270, 717/
+data (gchtab(i), i=1231,1235) / 4942, 5007, 5073, 5141, 5270/
+data (gchtab(i), i=1236,1240) / 5333, 412, 4956, 391, 4935/
+data (gchtab(i), i=1241,1245) / 0, 35, 0, 160, 4224/
+data (gchtab(i), i=1246,1250) / 224, 4288, 160, 4704, 128/
+data (gchtab(i), i=1251,1255) / 4672, 0, 28, 4868, 0/
+data (gchtab(i), i=1256,1260) / 480, 4544, 544, 4608, 96/
+data (gchtab(i), i=1261,1265) / 4640, 64, 4608, 0, 35/
+data (gchtab(i), i=1266,1270) / 0, 1106, 5392, 5198, 917/
+data (gchtab(i), i=1271,1275) / 5328, 5003, 144, 5328, 0/
+data (gchtab(i), i=1276,1280) / 85, 4437, 4809, 277, 4807/
+data (gchtab(i), i=1281,1285) / 1312, 4807, 0, 533, 4436/
+data (gchtab(i), i=1286,1290) / 4306, 4240, 4173, 4170, 4232/
+data (gchtab(i), i=1291,1295) / 4423, 4551, 4680, 4875, 5006/
+data (gchtab(i), i=1296,1300) / 5138, 5205, 533, 4500, 4370/
+data (gchtab(i), i=1301,1305) / 4304, 4237, 4234, 4296, 4423/
+data (gchtab(i), i=1306,1310) / 533, 4757, 4884, 4946, 5066/
+data (gchtab(i), i=1311,1315) / 5128, 5191, 661, 4820, 4882/
+data (gchtab(i), i=1316,1320) / 5002, 5064, 5191, 5255, 0/
+data (gchtab(i), i=1321,1325) / 732, 4635, 4505, 4373, 4306/
+data (gchtab(i), i=1326,1330) / 4238, 4168, 4096, 732, 4699/
+data (gchtab(i), i=1331,1335) / 4569, 4437, 4370, 4302, 4232/
+data (gchtab(i), i=1336,1340) / 4160, 732, 4956, 5083, 5146/
+data (gchtab(i), i=1341,1345) / 5143, 5077, 5012, 4819, 4563/
+data (gchtab(i), i=1346,1350) / 860, 5082, 5079, 5013, 4948/
+data (gchtab(i), i=1351,1355) / 4819, 467, 4818, 4944, 5006/
+data (gchtab(i), i=1356,1360) / 5003, 4937, 4872, 4679, 4551/
+data (gchtab(i), i=1361,1365) / 4424, 4361, 4300, 467, 4754/
+data (gchtab(i), i=1366,1370) / 4880, 4942, 4939, 4873, 4808/
+data (gchtab(i), i=1371,1375) / 4679, 0, 21, 4245, 4372/
+data (gchtab(i), i=1376,1380) / 4434, 4739, 4801, 4864, 149/
+data (gchtab(i), i=1381,1385) / 4308, 4370, 4675, 4737, 4864/
+data (gchtab(i), i=1386,1390) / 4992, 981, 5011, 4880, 4229/
+data (gchtab(i), i=1391,1395) / 4098, 4096, 0, 724, 4693/
+data (gchtab(i), i=1396,1400) / 4565, 4372, 4241, 4174, 4171/
+data (gchtab(i), i=1401,1405) / 4233, 4296, 4423, 4551, 4744/
+data (gchtab(i), i=1406,1410) / 4875, 4942, 4945, 4883, 4632/
+data (gchtab(i), i=1411,1415) / 4570, 4572, 4637, 4765, 4892/
+data (gchtab(i), i=1416,1420) / 5018, 469, 4436, 4305, 4238/
+data (gchtab(i), i=1421,1425) / 4234, 4296, 455, 4680, 4811/
+data (gchtab(i), i=1426,1430) / 4878, 4882, 4820, 4695, 4633/
+data (gchtab(i), i=1431,1435) / 4635, 4700, 4828, 5018, 0/
+data (gchtab(i), i=1436,1440) / 850, 4820, 4693, 4437, 4308/
+data (gchtab(i), i=1441,1445) / 4306, 4432, 4623, 341, 4372/
+data (gchtab(i), i=1446,1450) / 4370, 4496, 4623, 527, 4302/
+data (gchtab(i), i=1451,1455) / 4172, 4170, 4232, 4423, 4615/
+data (gchtab(i), i=1456,1460) / 4744, 4874, 527, 4366, 4236/
+data (gchtab(i), i=1461,1465) / 4234, 4296, 4423, 0, 404/
+data (gchtab(i), i=1466,1470) / 4371, 4241, 4174, 4171, 4233/
+data (gchtab(i), i=1471,1475) / 4296, 4423, 4615, 4808, 5002/
+data (gchtab(i), i=1476,1480) / 5133, 5200, 5203, 5077, 4949/
+data (gchtab(i), i=1481,1485) / 4819, 4687, 4554, 4352, 75/
+data (gchtab(i), i=1486,1490) / 4297, 4424, 4616, 4809, 5003/
+data (gchtab(i), i=1491,1495) / 5133, 1107, 5076, 4948, 4818/
+data (gchtab(i), i=1496,1500) / 4687, 4553, 4416, 0, 18/
+data (gchtab(i), i=1501,1505) / 4180, 4309, 4437, 4564, 4627/
+data (gchtab(i), i=1506,1510) / 4688, 4684, 4616, 4416, 19/
+data (gchtab(i), i=1511,1515) / 4244, 4500, 4627, 1045, 5074/
+data (gchtab(i), i=1516,1520) / 5008, 4681, 4484, 4352, 981/
+data (gchtab(i), i=1521,1525) / 5010, 4944, 4681, 0, 17/
+data (gchtab(i), i=1526,1530) / 4115, 4245, 4437, 4500, 4498/
+data (gchtab(i), i=1531,1535) / 4430, 4295, 277, 4436, 4434/
+data (gchtab(i), i=1536,1540) / 4366, 4231, 334, 4562, 4692/
+data (gchtab(i), i=1541,1545) / 4821, 4949, 5076, 5139, 5136/
+data (gchtab(i), i=1546,1550) / 5067, 4864, 853, 5075, 5072/
+data (gchtab(i), i=1551,1555) / 5003, 4800, 0, 277, 4238/
+data (gchtab(i), i=1556,1560) / 4170, 4168, 4231, 4423, 4553/
+data (gchtab(i), i=1561,1565) / 4619, 341, 4302, 4234, 4232/
+data (gchtab(i), i=1566,1570) / 4295, 0, 848, 4883, 4820/
+data (gchtab(i), i=1571,1575) / 4693, 4565, 4372, 4241, 4174/
+data (gchtab(i), i=1576,1580) / 4171, 4233, 4296, 4423, 4551/
+data (gchtab(i), i=1581,1585) / 4744, 4874, 4941, 5010, 5015/
+data (gchtab(i), i=1586,1590) / 4954, 4891, 4764, 4572, 4443/
+data (gchtab(i), i=1591,1595) / 4378, 4377, 4441, 4442, 469/
+data (gchtab(i), i=1596,1600) / 4436, 4305, 4238, 4234, 4296/
+data (gchtab(i), i=1601,1605) / 455, 4680, 4810, 4877, 4946/
+data (gchtab(i), i=1606,1610) / 4951, 4890, 4764, 0, 277/
+data (gchtab(i), i=1611,1615) / 4103, 341, 4167, 917, 5076/
+data (gchtab(i), i=1616,1620) / 5140, 5077, 4949, 4820, 4560/
+data (gchtab(i), i=1621,1625) / 4431, 4303, 335, 4558, 4680/
+data (gchtab(i), i=1626,1630) / 4743, 335, 4494, 4616, 4679/
+data (gchtab(i), i=1631,1635) / 4807, 4936, 5067, 0, 92/
+data (gchtab(i), i=1636,1640) / 4316, 4443, 4506, 4568, 4938/
+data (gchtab(i), i=1641,1645) / 5000, 5063, 220, 4442, 4504/
+data (gchtab(i), i=1646,1650) / 4874, 4936, 5063, 5127, 533/
+data (gchtab(i), i=1651,1655) / 4103, 533, 4167, 0, 341/
+data (gchtab(i), i=1656,1660) / 4096, 405, 4096, 338, 4364/
+data (gchtab(i), i=1661,1665) / 4361, 4487, 4615, 4744, 4874/
+data (gchtab(i), i=1666,1670) / 5005, 1045, 4938, 4936, 4999/
+data (gchtab(i), i=1671,1675) / 5191, 5321, 5387, 1109, 5002/
+data (gchtab(i), i=1676,1680) / 5000, 5063, 0, 277, 4231/
+data (gchtab(i), i=1681,1685) / 341, 4367, 4298, 4231, 981/
+data (gchtab(i), i=1686,1690) / 5009, 4877, 1045, 5074, 5008/
+data (gchtab(i), i=1691,1695) / 4877, 4747, 4553, 4424, 4231/
+data (gchtab(i), i=1696,1700) / 85, 4437, 0, 469, 4372/
+data (gchtab(i), i=1701,1705) / 4241, 4174, 4171, 4233, 4296/
+data (gchtab(i), i=1706,1710) / 4423, 4551, 4744, 4875, 4942/
+data (gchtab(i), i=1711,1715) / 4945, 4883, 4820, 4693, 4565/
+data (gchtab(i), i=1716,1720) / 469, 4436, 4305, 4238, 4234/
+data (gchtab(i), i=1721,1725) / 4296, 455, 4680, 4811, 4878/
+data (gchtab(i), i=1726,1730) / 4882, 4820, 0, 468, 4295/
+data (gchtab(i), i=1731,1735) / 468, 4359, 852, 4935, 852/
+data (gchtab(i), i=1736,1740) / 4999, 18, 4244, 4437, 5269/
+data (gchtab(i), i=1741,1745) / 18, 4243, 4436, 5268, 0/
+data (gchtab(i), i=1746,1750) / 17, 4115, 4245, 4437, 4500/
+data (gchtab(i), i=1751,1755) / 4498, 4429, 4426, 4488, 4551/
+data (gchtab(i), i=1756,1760) / 277, 4436, 4434, 4365, 4362/
+data (gchtab(i), i=1761,1765) / 4424, 4551, 4679, 4808, 4938/
+data (gchtab(i), i=1766,1770) / 5069, 5136, 5205, 5209, 5147/
+data (gchtab(i), i=1771,1775) / 5020, 4892, 4762, 4760, 4821/
+data (gchtab(i), i=1776,1780) / 4946, 5072, 5262, 712, 4939/
+data (gchtab(i), i=1781,1785) / 5005, 5072, 5141, 5145, 5083/
+data (gchtab(i), i=1786,1790) / 5020, 0, 140, 4297, 4360/
+data (gchtab(i), i=1791,1795) / 4487, 4615, 4808, 4939, 5006/
+data (gchtab(i), i=1796,1800) / 5009, 4947, 4884, 4757, 4629/
+data (gchtab(i), i=1801,1805) / 4436, 4305, 4238, 4096, 519/
+data (gchtab(i), i=1806,1810) / 4744, 4875, 4942, 4946, 4884/
+data (gchtab(i), i=1811,1815) / 533, 4500, 4369, 4302, 4096/
+data (gchtab(i), i=1816,1820) / 0, 1109, 4565, 4372, 4241/
+data (gchtab(i), i=1821,1825) / 4174, 4171, 4233, 4296, 4423/
+data (gchtab(i), i=1826,1830) / 4551, 4744, 4875, 4942, 4945/
+data (gchtab(i), i=1831,1835) / 4883, 4820, 4693, 469, 4436/
+data (gchtab(i), i=1836,1840) / 4305, 4238, 4234, 4296, 455/
+data (gchtab(i), i=1841,1845) / 4680, 4811, 4878, 4882, 4820/
+data (gchtab(i), i=1846,1850) / 724, 5204, 0, 596, 4487/
+data (gchtab(i), i=1851,1855) / 596, 4551, 18, 4244, 4437/
+data (gchtab(i), i=1856,1860) / 5141, 18, 4243, 4436, 5140/
+data (gchtab(i), i=1861,1865) / 0, 17, 4115, 4245, 4437/
+data (gchtab(i), i=1866,1870) / 4500, 4498, 4364, 4361, 4487/
+data (gchtab(i), i=1871,1875) / 277, 4436, 4434, 4300, 4297/
+data (gchtab(i), i=1876,1880) / 4360, 4487, 4551, 4744, 4874/
+data (gchtab(i), i=1881,1885) / 5005, 5072, 5075, 5013, 4948/
+data (gchtab(i), i=1886,1890) / 5011, 5072, 909, 5075, 0/
+data (gchtab(i), i=1891,1895) / 35, 0, 145, 4371, 4564/
+data (gchtab(i), i=1896,1900) / 4501, 4372, 4241, 4174, 4171/
+data (gchtab(i), i=1901,1905) / 4232, 4295, 4423, 4552, 4683/
+data (gchtab(i), i=1906,1910) / 4750, 75, 4233, 4296, 4424/
+data (gchtab(i), i=1911,1915) / 4553, 4683, 590, 4683, 4744/
+data (gchtab(i), i=1916,1920) / 4807, 4935, 5064, 5195, 5262/
+data (gchtab(i), i=1921,1925) / 5265, 5204, 5141, 5076, 5203/
+data (gchtab(i), i=1926,1930) / 5265, 587, 4745, 4808, 4936/
+data (gchtab(i), i=1931,1935) / 5065, 5195, 0, 604, 4571/
+data (gchtab(i), i=1936,1940) / 4506, 4505, 4568, 4759, 4951/
+data (gchtab(i), i=1941,1945) / 663, 4502, 4373, 4307, 4305/
+data (gchtab(i), i=1946,1950) / 4431, 4622, 4814, 663, 4566/
+data (gchtab(i), i=1951,1955) / 4437, 4371, 4369, 4495, 4622/
+data (gchtab(i), i=1956,1960) / 526, 4365, 4236, 4170, 4168/
+data (gchtab(i), i=1961,1965) / 4294, 4612, 4675, 4673, 4544/
+data (gchtab(i), i=1966,1970) / 4416, 526, 4429, 4300, 4234/
+data (gchtab(i), i=1971,1975) / 4232, 4358, 4612, 0, 860/
+data (gchtab(i), i=1976,1980) / 4544, 924, 4480, 17, 4115/
+data (gchtab(i), i=1981,1985) / 4245, 4437, 4500, 4498, 4429/
+data (gchtab(i), i=1986,1990) / 4426, 4552, 4744, 4873, 5068/
+data (gchtab(i), i=1991,1995) / 5199, 277, 4436, 4434, 4365/
+data (gchtab(i), i=1996,2000) / 4362, 4424, 4551, 4743, 4872/
+data (gchtab(i), i=2001,2005) / 5002, 5133, 5199, 5333, 0/
+data (gchtab(i), i=2006,2010) / 604, 4571, 4506, 4505, 4568/
+data (gchtab(i), i=2011,2015) / 4759, 5079, 5080, 4887, 4629/
+data (gchtab(i), i=2016,2020) / 4435, 4240, 4173, 4171, 4233/
+data (gchtab(i), i=2021,2025) / 4423, 4613, 4675, 4673, 4608/
+data (gchtab(i), i=2026,2030) / 4480, 4417, 662, 4499, 4304/
+data (gchtab(i), i=2031,2035) / 4237, 4235, 4297, 4423, 0/
+data (gchtab(i), i=2036,2040) / 480, 4447, 4382, 4316, 4314/
+data (gchtab(i), i=2041,2045) / 4376, 4439, 4501, 4499, 4369/
+data (gchtab(i), i=2046,2050) / 351, 4381, 4379, 4441, 4504/
+data (gchtab(i), i=2051,2055) / 4566, 4564, 4498, 4240, 4494/
+data (gchtab(i), i=2056,2060) / 4556, 4554, 4488, 4423, 4357/
+data (gchtab(i), i=2061,2065) / 4355, 4417, 271, 4493, 4491/
+data (gchtab(i), i=2066,2070) / 4425, 4360, 4294, 4292, 4354/
+data (gchtab(i), i=2071,2075) / 4417, 4544, 0, 160, 4224/
+data (gchtab(i), i=2076,2080) / 544, 4608, 0, 224, 4447/
+data (gchtab(i), i=2081,2085) / 4510, 4572, 4570, 4504, 4439/
+data (gchtab(i), i=2086,2090) / 4373, 4371, 4497, 351, 4509/
+data (gchtab(i), i=2091,2095) / 4507, 4441, 4376, 4310, 4308/
+data (gchtab(i), i=2096,2100) / 4370, 4624, 4366, 4300, 4298/
+data (gchtab(i), i=2101,2105) / 4360, 4423, 4485, 4483, 4417/
+data (gchtab(i), i=2106,2110) / 399, 4365, 4363, 4425, 4488/
+data (gchtab(i), i=2111,2115) / 4550, 4548, 4482, 4417, 4288/
+data (gchtab(i), i=2116,2120) / 0, 338, 4240, 4430, 533/
+data (gchtab(i), i=2121,2125) / 4304, 4619, 208, 5392, 0/
+data (gchtab(i), i=2126,2130) / 284, 4251, 4185, 4183, 4245/
+data (gchtab(i), i=2131,2135) / 4372, 4500, 4629, 4695, 4697/
+data (gchtab(i), i=2136,2139) / 4635, 4508, 4380, 0/
diff --git a/sys/gio/fonts/greekc.txt b/sys/gio/fonts/greekc.txt
new file mode 100644
index 00000000..3dbbf454
--- /dev/null
+++ b/sys/gio/fonts/greekc.txt
@@ -0,0 +1,96 @@
+2199
+2214
+2213
+2275
+2274
+2271
+2272
+2251
+2221
+2222
+8004
+8002
+8063
+8003
+2210
+8089
+2200
+2201
+2202
+2203
+2204
+2205
+2206
+2207
+2208
+2209
+8081
+2213
+8007
+8033
+8008
+8032
+2273
+2078
+8064
+2199
+2030
+8073
+2047
+2029
+733
+8090
+8079
+2199
+2037
+8075
+8077
+2041
+2042
+2034
+2271
+2044
+8090
+2046
+2078
+2050
+2040
+2049
+2199
+2223
+804
+2224
+2199
+8074
+8067
+2127
+2128
+2148
+2130
+2131
+2147
+2129
+2133
+2135
+8078
+2136
+2137
+2138
+2139
+2141
+2142
+2134
+2143
+2144
+2145
+2146
+2199
+2150
+2140
+2149
+2132
+2225
+8090
+2226
+8076
+2218
diff --git a/sys/gio/fonts/mkfont.c b/sys/gio/fonts/mkfont.c
new file mode 100644
index 00000000..841d99f5
--- /dev/null
+++ b/sys/gio/fonts/mkfont.c
@@ -0,0 +1,199 @@
+#include <stdio.h>
+
+#define DEBUG 0
+#define MASK 0x3F
+#define SCALE 1.0
+
+#define max(a,b) (a > b ? a : b)
+#define min(a,b) (a < b ? a : b)
+/*
+#define XCOORD() ((*dp - 'R') + 9)
+#define YCOORD() (('R' - *dp) + 14)
+#define XCOORD() (max(0,min(20,((int)(((*dp - 'R') + 9)*SCALE+0.5)))))
+#define XCOORD() (max(0,min(20,((int)(((*dp - 'R') - minx)*SCALE+0.5)))))
+#define YCOORD() ((int)((('R' - *dp) + 13) * SCALE + 0.5))
+#define XCOORD() ((int)(((*dp - 'R') - minx) * SCALE + 0.5))
+#define YCOORD() (max(0,min(32,(((int)(('R' - *dp) + 13)*SCALE+0.5)))))
+*/
+#define XCOORD() (max(0,((int)(((*dp - 'R') - minx - 2) * SCALE + 0.5))))
+#define YCOORD() (max(0,min(35,(((int)(('R' - *dp) + 16)*SCALE+0.5)))))
+#define ENCODE(pen,x,y) ((int)(((pen<<12)|((x&MASK)<<6))|(y&MASK)))
+
+int chridx[200]; /* Character index table */
+int chrwid[200]; /* Character width table */
+int chrtab[5000]; /* Character stroke table */
+
+
+struct hershey_tab {
+ int num; /* hershey number */
+ int length; /* length */
+ char *code; /* stroke data string */
+} htab[] = {
+#include "hershey.dat"
+};
+
+int encode();
+
+
+main (argc, argv)
+int argc;
+char *argv[];
+{
+ register int i=0;
+ int minx, maxx, charnum=0, idx=0, hnum, hindex, hlength;
+ short x, y, pen, xspace, yspace;
+ char ch, *dp, *data;
+
+ /* Read all the hershey numbers from standard input and build up a
+ * table of stroke data.
+ */
+ ch = 32;
+ while (scanf ("%d", &hnum) != EOF) {
+
+ chridx[charnum] = idx + 1;
+
+ /* Get the index for the given number. */
+ for (hindex=0; hnum != htab[hindex].num; hindex++)
+ ;
+
+ hlength = htab[hindex].length;
+ dp = data = htab[hindex].code;
+
+ if (DEBUG)
+ printf ("'%c' %4d: index=%4d len=%3d dlen=%3d %s\n",
+ ch, hnum, hindex, hlength, strlen(data),
+ (strlen(data) % 2) ? "ERROR" : "");
+
+ /* Now decode the stroke data into X-Y pairs, first pair is for
+ * proportional spacing.
+ */
+ minx = (*dp - 'R'); dp++;
+ maxx = (*dp - 'R'); dp++;
+ chrwid[charnum++] = min (32, maxx - minx + 5);
+
+ if (DEBUG) printf("\twidth (%02d) (%d,%d)\n", maxx-minx,minx,maxx);
+
+ /* Next pair is the initial move. The Y coords are flipped
+ * for what we need so fix that every place we get a Yval.
+ */
+ pen = 0;
+ x = XCOORD(); dp++;
+x = (ch == '1' ? x-3: x);
+ y = YCOORD(); dp++;
+ chrtab[idx++] = ENCODE(pen, x, y);
+
+ if (DEBUG) printf ("\tmove (%3d,%3d) '%s'\n", x, y, dp);
+
+ /* The remainder of the codes are move/draw strokes.
+ */
+ for (i=0; i < (hlength-2); i++) {
+ if (*dp == ' ') {
+ pen = 0;
+ x = XCOORD(); dp++; /* skip pen-up coords */
+x = (ch == '1' ? x-3: x);
+ y = YCOORD(); dp++;
+ i++;
+ } else
+ pen = 1;
+ x = XCOORD(); dp++;
+x = (ch == '1' ? x-3: x);
+ y = YCOORD(); dp++;
+
+ chrtab[idx++] = ENCODE(pen, x, y);
+
+ if (DEBUG)
+ printf("\t%s (%3d,%3d) => %6d\n",
+ pen?"draw":"move", x, y, ENCODE(pen,x,y));
+ }
+ chrtab[idx++] = ENCODE(0, 0, 0);
+ ch++;
+ }
+
+ print_prologue (charnum, idx);
+ print_index (chridx, charnum);
+ printf ("\n\n# Width data.\n\n");
+ print_widths (chrwid, charnum);
+ printf ("\n\n# Stroke data.\n\n");
+ print_strokes (chrtab, idx);
+}
+
+
+print_index (idxtab, N)
+int *idxtab, N;
+{
+ register int i, j, start=1, end=5;
+
+ for (i=0; i < N; ) {
+ printf ("data (chridx(i), i=%03d,%03d) /", start, min(N,end));
+ for (j=0; j < 5 && i < N; j++)
+ printf ("%5d%c", idxtab[i++], (j<4 && i<N ? ',' : '/'));
+ printf ("\n");
+ start = end + 1;
+ end += 5;
+ }
+}
+
+
+print_widths (wtab, N)
+int *wtab, N;
+{
+ register int i, j, start=1, end=5;
+
+ for (i=0; i < N; ) {
+ printf ("data (chrwid(i), i=%03d,%03d) /", start, min(N,end));
+ for (j=0; j < 5 && i < N; j++)
+ printf ("%5d%c", wtab[i++], (j<4 && i<N ? ',' : '/'));
+ printf ("\n");
+ start = end + 1;
+ end += 5;
+ }
+}
+
+
+print_strokes (strtab, N)
+int *strtab, N;
+{
+ register int i, j, start=1, end=5;
+
+ for (i=0; i < N; ) {
+ printf ("data (chrtab(i), i=%04d,%04d) /", start, min(N,end));
+ for (j=0; j < 5 && i < N; j++)
+ printf ("%6d%c", strtab[i++], (j<4 && i<N ? ',' : '/'));
+ printf ("\n");
+ start = end + 1;
+ end += 5;
+ }
+}
+
+
+print_prologue(nidx, nchar)
+int nidx;
+int nchar;
+{
+
+printf ("# CHRTAB -- Table of strokes for the printable ASCII characters. Each\n");
+printf ("# character is encoded as a series of strokes. Each stroke is ex-\n");
+printf ("# pressed by a single integer containing the following bitfields:\n");
+printf ("#\n");
+printf ("# 2 1\n");
+printf ("# 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1\n");
+printf ("# | | | | | | |\n");
+printf ("# | | | +---------+ +---------+\n");
+printf ("# | | | | |\n");
+printf ("# | | | X Y\n");
+printf ("# | | |\n");
+printf ("# | | +-- pen up/down\n");
+printf ("# | +---- begin paint (not used at present)\n");
+printf ("# +------ end paint (not used at present)\n");
+printf ("#\n");
+printf ("#----------------------------------------------------------------------------\n");
+printf ("\n");
+printf ("# Define the database.\n");
+printf ("\n");
+printf ("short chridx[%d]\t# character index in chrtab\n", nidx+1);
+printf ("short chrwid[%d]\t# character width table\n", nidx+1);
+printf ("short chrtab[%d]\t# stroke data to draw the characters\n", nchar+1);
+printf ("\n");
+printf ("# Index into CHRTAB of each printable character (starting with SP)\n");
+printf ("\n");
+}