From 05bc30b15e31c427ce208495a889e9ff36e6642b Mon Sep 17 00:00:00 2001 From: Tim Mann Date: Mon, 27 Oct 2003 17:20:58 +0000 Subject: [PATCH] Initial checkin. I created this by combining the XBoard 4.2.6 and WinBoard 4.2.6 source distributions, eliminating duplicate files, renaming the Windows MSVC makefile, removing superfluous files, and removing files from separate projects that were included in the WinBoard 4.2.6 binary installer package (gnuchess4, gnuchess5, ICC timestamp, and FICS timeseal). The file contents are unchanged. This version of the project does not compile as-is. The makefiles need changes to work with the new directory structure. It's here only as a base reference point. The initial CVS version is set to 2.0 to avoid overlapping with the RCS version numbers that were used in past releases of the project. They all were in the 1.x series except cmail, which was in the 3.x series. --- COPYING | 340 ++ COPYRIGHT | 51 + ChangeLog | 3183 +++++++++++++ ChangeLog.2 | 1012 ++++ FAQ.html | 1601 +++++++ INSTALL | 183 + Makefile.in | 256 + READ_ME | 63 + ToDo | 1097 +++++ acconfig.h | 54 + backend.c | 9891 +++++++++++++++++++++++++++++++++++++++ backend.h | 243 + backendz.h | 72 + bitmaps/README.bitmaps | 94 + bitmaps/b108o.bm | 129 + bitmaps/b108s.bm | 129 + bitmaps/b116o.bm | 148 + bitmaps/b116s.bm | 148 + bitmaps/b129o.bm | 186 + bitmaps/b129s.bm | 186 + bitmaps/b21o.bm | 9 + bitmaps/b21s.bm | 9 + bitmaps/b25o.bm | 12 + bitmaps/b25s.bm | 12 + bitmaps/b29o.bm | 13 + bitmaps/b29s.bm | 13 + bitmaps/b33o.bm | 39 + bitmaps/b33s.bm | 39 + bitmaps/b37o.bm | 19 + bitmaps/b37s.bm | 19 + bitmaps/b40o.bm | 20 + bitmaps/b40s.bm | 20 + bitmaps/b45o.bm | 51 + bitmaps/b45s.bm | 51 + bitmaps/b49o.bm | 55 + bitmaps/b49s.bm | 55 + bitmaps/b54o.bm | 35 + bitmaps/b54s.bm | 35 + bitmaps/b58o.bm | 42 + bitmaps/b58s.bm | 42 + bitmaps/b64o.bm | 46 + bitmaps/b64s.bm | 46 + bitmaps/b72o.bm | 57 + bitmaps/b72s.bm | 57 + bitmaps/b80o.bm | 70 + bitmaps/b80s.bm | 70 + bitmaps/b87o.bm | 83 + bitmaps/b87s.bm | 83 + bitmaps/b95o.bm | 98 + bitmaps/b95s.bm | 98 + bitmaps/bitmaps.h | 367 ++ bitmaps/checkmark.bm | 6 + bitmaps/dopkbm.sh | 16 + bitmaps/dopkbm1.sh | 27 + bitmaps/fixup.sed | 3 + bitmaps/icon_black.bm | 14 + bitmaps/icon_outline.bm | 14 + bitmaps/icon_white.bm | 14 + bitmaps/k108o.bm | 129 + bitmaps/k108s.bm | 129 + bitmaps/k116o.bm | 148 + bitmaps/k116s.bm | 148 + bitmaps/k129o.bm | 186 + bitmaps/k129s.bm | 186 + bitmaps/k21o.bm | 9 + bitmaps/k21s.bm | 9 + bitmaps/k25o.bm | 12 + bitmaps/k25s.bm | 12 + bitmaps/k29o.bm | 13 + bitmaps/k29s.bm | 13 + bitmaps/k33o.bm | 17 + bitmaps/k33s.bm | 17 + bitmaps/k37o.bm | 19 + bitmaps/k37s.bm | 19 + bitmaps/k40o.bm | 20 + bitmaps/k40s.bm | 20 + bitmaps/k45o.bm | 51 + bitmaps/k45s.bm | 26 + bitmaps/k49o.bm | 55 + bitmaps/k49s.bm | 55 + bitmaps/k54o.bm | 35 + bitmaps/k54s.bm | 35 + bitmaps/k58o.bm | 42 + bitmaps/k58s.bm | 42 + bitmaps/k64o.bm | 46 + bitmaps/k64s.bm | 46 + bitmaps/k72o.bm | 57 + bitmaps/k72s.bm | 57 + bitmaps/k80o.bm | 70 + bitmaps/k80s.bm | 70 + bitmaps/k87o.bm | 83 + bitmaps/k87s.bm | 83 + bitmaps/k95o.bm | 98 + bitmaps/k95s.bm | 98 + bitmaps/n108o.bm | 129 + bitmaps/n108s.bm | 129 + bitmaps/n116o.bm | 148 + bitmaps/n116s.bm | 148 + bitmaps/n129o.bm | 186 + bitmaps/n129s.bm | 186 + bitmaps/n21o.bm | 9 + bitmaps/n21s.bm | 9 + bitmaps/n25o.bm | 12 + bitmaps/n25s.bm | 12 + bitmaps/n29o.bm | 13 + bitmaps/n29s.bm | 13 + bitmaps/n33o.bm | 39 + bitmaps/n33s.bm | 39 + bitmaps/n37o.bm | 19 + bitmaps/n37s.bm | 19 + bitmaps/n40o.bm | 20 + bitmaps/n40s.bm | 20 + bitmaps/n45o.bm | 51 + bitmaps/n45s.bm | 51 + bitmaps/n49o.bm | 55 + bitmaps/n49s.bm | 55 + bitmaps/n54o.bm | 35 + bitmaps/n54s.bm | 35 + bitmaps/n58o.bm | 42 + bitmaps/n58s.bm | 42 + bitmaps/n64o.bm | 46 + bitmaps/n64s.bm | 46 + bitmaps/n72o.bm | 57 + bitmaps/n72s.bm | 57 + bitmaps/n80o.bm | 70 + bitmaps/n80s.bm | 70 + bitmaps/n87o.bm | 83 + bitmaps/n87s.bm | 83 + bitmaps/n95o.bm | 98 + bitmaps/n95s.bm | 98 + bitmaps/p108o.bm | 129 + bitmaps/p108s.bm | 129 + bitmaps/p116o.bm | 148 + bitmaps/p116s.bm | 148 + bitmaps/p129o.bm | 186 + bitmaps/p129s.bm | 186 + bitmaps/p21o.bm | 9 + bitmaps/p21s.bm | 9 + bitmaps/p25o.bm | 12 + bitmaps/p25s.bm | 12 + bitmaps/p29o.bm | 13 + bitmaps/p29s.bm | 13 + bitmaps/p33o.bm | 17 + bitmaps/p33s.bm | 17 + bitmaps/p37o.bm | 19 + bitmaps/p37s.bm | 19 + bitmaps/p40o.bm | 20 + bitmaps/p40s.bm | 20 + bitmaps/p45o.bm | 51 + bitmaps/p45s.bm | 51 + bitmaps/p49o.bm | 55 + bitmaps/p49s.bm | 55 + bitmaps/p54o.bm | 35 + bitmaps/p54s.bm | 35 + bitmaps/p58o.bm | 42 + bitmaps/p58s.bm | 42 + bitmaps/p64o.bm | 46 + bitmaps/p64s.bm | 46 + bitmaps/p72o.bm | 57 + bitmaps/p72s.bm | 57 + bitmaps/p80o.bm | 70 + bitmaps/p80s.bm | 70 + bitmaps/p87o.bm | 83 + bitmaps/p87s.bm | 83 + bitmaps/p95o.bm | 98 + bitmaps/p95s.bm | 98 + bitmaps/q108o.bm | 129 + bitmaps/q108s.bm | 129 + bitmaps/q116o.bm | 148 + bitmaps/q116s.bm | 148 + bitmaps/q129o.bm | 186 + bitmaps/q129s.bm | 186 + bitmaps/q21o.bm | 9 + bitmaps/q21s.bm | 9 + bitmaps/q25o.bm | 12 + bitmaps/q25s.bm | 12 + bitmaps/q29o.bm | 13 + bitmaps/q29s.bm | 13 + bitmaps/q33o.bm | 38 + bitmaps/q33s.bm | 39 + bitmaps/q37o.bm | 19 + bitmaps/q37s.bm | 19 + bitmaps/q40o.bm | 20 + bitmaps/q40s.bm | 20 + bitmaps/q45o.bm | 51 + bitmaps/q45s.bm | 51 + bitmaps/q49o.bm | 55 + bitmaps/q49s.bm | 55 + bitmaps/q54o.bm | 35 + bitmaps/q54s.bm | 35 + bitmaps/q58o.bm | 42 + bitmaps/q58s.bm | 42 + bitmaps/q64o.bm | 46 + bitmaps/q64s.bm | 46 + bitmaps/q72o.bm | 57 + bitmaps/q72s.bm | 57 + bitmaps/q80o.bm | 70 + bitmaps/q80s.bm | 70 + bitmaps/q87o.bm | 83 + bitmaps/q87s.bm | 83 + bitmaps/q95o.bm | 98 + bitmaps/q95s.bm | 98 + bitmaps/r108o.bm | 129 + bitmaps/r108s.bm | 129 + bitmaps/r116o.bm | 148 + bitmaps/r116s.bm | 148 + bitmaps/r129o.bm | 186 + bitmaps/r129s.bm | 186 + bitmaps/r21o.bm | 9 + bitmaps/r21s.bm | 9 + bitmaps/r25o.bm | 12 + bitmaps/r25s.bm | 12 + bitmaps/r29o.bm | 13 + bitmaps/r29s.bm | 13 + bitmaps/r33o.bm | 39 + bitmaps/r33s.bm | 39 + bitmaps/r37o.bm | 19 + bitmaps/r37s.bm | 19 + bitmaps/r40o.bm | 20 + bitmaps/r40s.bm | 20 + bitmaps/r45o.bm | 51 + bitmaps/r45s.bm | 51 + bitmaps/r49o.bm | 55 + bitmaps/r49s.bm | 55 + bitmaps/r54o.bm | 35 + bitmaps/r54s.bm | 35 + bitmaps/r58o.bm | 42 + bitmaps/r58s.bm | 42 + bitmaps/r64o.bm | 46 + bitmaps/r64s.bm | 46 + bitmaps/r72o.bm | 57 + bitmaps/r72s.bm | 57 + bitmaps/r80o.bm | 70 + bitmaps/r80s.bm | 70 + bitmaps/r87o.bm | 83 + bitmaps/r87s.bm | 83 + bitmaps/r95o.bm | 98 + bitmaps/r95s.bm | 98 + bitmaps/unsigned.sh | 8 + childio.c | 260 + childio.h | 51 + cmail.in | 1839 ++++++++ cmail.man | 275 ++ comment.in | 42 + common.h | 452 ++ config.guess | 693 +++ config.h.in | 135 + config.sub | 927 ++++ configure | 3835 +++++++++++++++ configure.in | 323 ++ engine-intf.html | 1825 ++++++++ frontend.h | 172 + gamelist.c | 305 ++ gpl.texinfo | 398 ++ ics-parsing.txt | 161 + install-sh | 250 + lists.c | 149 + lists.h | 66 + mkinstalldirs | 40 + moves.c | 978 ++++ moves.h | 147 + parser.h | 59 + parser.l | 922 ++++ pgntags.c | 262 ++ pixmaps/README.pixmaps | 2 + pixmaps/bdd108.xpm | 117 + pixmaps/bdd116.xpm | 125 + pixmaps/bdd129.xpm | 138 + pixmaps/bdd21.xpm | 30 + pixmaps/bdd25.xpm | 34 + pixmaps/bdd29.xpm | 38 + pixmaps/bdd33.xpm | 42 + pixmaps/bdd37.xpm | 46 + pixmaps/bdd40.xpm | 49 + pixmaps/bdd45.xpm | 54 + pixmaps/bdd49.xpm | 58 + pixmaps/bdd54.xpm | 63 + pixmaps/bdd58.xpm | 67 + pixmaps/bdd64.xpm | 73 + pixmaps/bdd72.xpm | 81 + pixmaps/bdd80.xpm | 89 + pixmaps/bdd87.xpm | 96 + pixmaps/bdd95.xpm | 104 + pixmaps/bdl108.xpm | 117 + pixmaps/bdl116.xpm | 125 + pixmaps/bdl129.xpm | 138 + pixmaps/bdl21.xpm | 30 + pixmaps/bdl25.xpm | 34 + pixmaps/bdl29.xpm | 38 + pixmaps/bdl33.xpm | 42 + pixmaps/bdl37.xpm | 46 + pixmaps/bdl40.xpm | 49 + pixmaps/bdl45.xpm | 54 + pixmaps/bdl49.xpm | 58 + pixmaps/bdl54.xpm | 63 + pixmaps/bdl58.xpm | 67 + pixmaps/bdl64.xpm | 73 + pixmaps/bdl72.xpm | 81 + pixmaps/bdl80.xpm | 89 + pixmaps/bdl87.xpm | 96 + pixmaps/bdl95.xpm | 104 + pixmaps/bld108.xpm | 117 + pixmaps/bld116.xpm | 125 + pixmaps/bld129.xpm | 138 + pixmaps/bld21.xpm | 30 + pixmaps/bld25.xpm | 34 + pixmaps/bld29.xpm | 38 + pixmaps/bld33.xpm | 42 + pixmaps/bld37.xpm | 43 + pixmaps/bld40.xpm | 49 + pixmaps/bld45.xpm | 54 + pixmaps/bld49.xpm | 58 + pixmaps/bld54.xpm | 63 + pixmaps/bld58.xpm | 67 + pixmaps/bld64.xpm | 73 + pixmaps/bld72.xpm | 81 + pixmaps/bld80.xpm | 89 + pixmaps/bld87.xpm | 96 + pixmaps/bld95.xpm | 104 + pixmaps/bll108.xpm | 117 + pixmaps/bll116.xpm | 125 + pixmaps/bll129.xpm | 138 + pixmaps/bll21.xpm | 30 + pixmaps/bll25.xpm | 34 + pixmaps/bll29.xpm | 38 + pixmaps/bll33.xpm | 42 + pixmaps/bll37.xpm | 43 + pixmaps/bll40.xpm | 49 + pixmaps/bll45.xpm | 54 + pixmaps/bll49.xpm | 58 + pixmaps/bll54.xpm | 63 + pixmaps/bll58.xpm | 67 + pixmaps/bll64.xpm | 73 + pixmaps/bll72.xpm | 81 + pixmaps/bll80.xpm | 89 + pixmaps/bll87.xpm | 96 + pixmaps/bll95.xpm | 104 + pixmaps/convbm | 35 + pixmaps/convbm.sed | 4 + pixmaps/convbm2.sed | 5 + pixmaps/kdd108.xpm | 117 + pixmaps/kdd116.xpm | 125 + pixmaps/kdd129.xpm | 138 + pixmaps/kdd21.xpm | 30 + pixmaps/kdd25.xpm | 34 + pixmaps/kdd29.xpm | 38 + pixmaps/kdd33.xpm | 42 + pixmaps/kdd37.xpm | 46 + pixmaps/kdd40.xpm | 46 + pixmaps/kdd45.xpm | 54 + pixmaps/kdd49.xpm | 58 + pixmaps/kdd54.xpm | 63 + pixmaps/kdd58.xpm | 67 + pixmaps/kdd64.xpm | 73 + pixmaps/kdd72.xpm | 81 + pixmaps/kdd80.xpm | 89 + pixmaps/kdd87.xpm | 96 + pixmaps/kdd95.xpm | 104 + pixmaps/kdl108.xpm | 117 + pixmaps/kdl116.xpm | 125 + pixmaps/kdl129.xpm | 138 + pixmaps/kdl21.xpm | 30 + pixmaps/kdl25.xpm | 34 + pixmaps/kdl29.xpm | 38 + pixmaps/kdl33.xpm | 42 + pixmaps/kdl37.xpm | 46 + pixmaps/kdl40.xpm | 46 + pixmaps/kdl45.xpm | 54 + pixmaps/kdl49.xpm | 58 + pixmaps/kdl54.xpm | 63 + pixmaps/kdl58.xpm | 67 + pixmaps/kdl64.xpm | 73 + pixmaps/kdl72.xpm | 81 + pixmaps/kdl80.xpm | 89 + pixmaps/kdl87.xpm | 96 + pixmaps/kdl95.xpm | 104 + pixmaps/kld108.xpm | 117 + pixmaps/kld116.xpm | 125 + pixmaps/kld129.xpm | 138 + pixmaps/kld21.xpm | 30 + pixmaps/kld25.xpm | 34 + pixmaps/kld29.xpm | 38 + pixmaps/kld33.xpm | 42 + pixmaps/kld37.xpm | 46 + pixmaps/kld40.xpm | 46 + pixmaps/kld45.xpm | 54 + pixmaps/kld49.xpm | 58 + pixmaps/kld54.xpm | 63 + pixmaps/kld58.xpm | 67 + pixmaps/kld64.xpm | 73 + pixmaps/kld72.xpm | 81 + pixmaps/kld80.xpm | 89 + pixmaps/kld87.xpm | 96 + pixmaps/kld95.xpm | 104 + pixmaps/kll108.xpm | 117 + pixmaps/kll116.xpm | 125 + pixmaps/kll129.xpm | 138 + pixmaps/kll21.xpm | 30 + pixmaps/kll25.xpm | 34 + pixmaps/kll29.xpm | 38 + pixmaps/kll33.xpm | 42 + pixmaps/kll37.xpm | 46 + pixmaps/kll40.xpm | 46 + pixmaps/kll45.xpm | 54 + pixmaps/kll49.xpm | 58 + pixmaps/kll54.xpm | 63 + pixmaps/kll58.xpm | 67 + pixmaps/kll64.xpm | 73 + pixmaps/kll72.xpm | 81 + pixmaps/kll80.xpm | 89 + pixmaps/kll87.xpm | 96 + pixmaps/kll95.xpm | 104 + pixmaps/ndd108.xpm | 117 + pixmaps/ndd116.xpm | 125 + pixmaps/ndd129.xpm | 138 + pixmaps/ndd21.xpm | 30 + pixmaps/ndd25.xpm | 34 + pixmaps/ndd29.xpm | 35 + pixmaps/ndd33.xpm | 42 + pixmaps/ndd37.xpm | 43 + pixmaps/ndd40.xpm | 46 + pixmaps/ndd45.xpm | 51 + pixmaps/ndd49.xpm | 55 + pixmaps/ndd54.xpm | 63 + pixmaps/ndd58.xpm | 67 + pixmaps/ndd64.xpm | 73 + pixmaps/ndd72.xpm | 81 + pixmaps/ndd80.xpm | 89 + pixmaps/ndd87.xpm | 96 + pixmaps/ndd95.xpm | 104 + pixmaps/ndl108.xpm | 117 + pixmaps/ndl116.xpm | 125 + pixmaps/ndl129.xpm | 138 + pixmaps/ndl21.xpm | 30 + pixmaps/ndl25.xpm | 34 + pixmaps/ndl29.xpm | 35 + pixmaps/ndl33.xpm | 42 + pixmaps/ndl37.xpm | 43 + pixmaps/ndl40.xpm | 46 + pixmaps/ndl45.xpm | 51 + pixmaps/ndl49.xpm | 55 + pixmaps/ndl54.xpm | 63 + pixmaps/ndl58.xpm | 67 + pixmaps/ndl64.xpm | 73 + pixmaps/ndl72.xpm | 81 + pixmaps/ndl80.xpm | 89 + pixmaps/ndl87.xpm | 96 + pixmaps/ndl95.xpm | 104 + pixmaps/nld108.xpm | 117 + pixmaps/nld116.xpm | 125 + pixmaps/nld129.xpm | 138 + pixmaps/nld21.xpm | 30 + pixmaps/nld25.xpm | 34 + pixmaps/nld29.xpm | 38 + pixmaps/nld33.xpm | 42 + pixmaps/nld37.xpm | 46 + pixmaps/nld40.xpm | 46 + pixmaps/nld45.xpm | 51 + pixmaps/nld49.xpm | 58 + pixmaps/nld54.xpm | 63 + pixmaps/nld58.xpm | 67 + pixmaps/nld64.xpm | 73 + pixmaps/nld72.xpm | 81 + pixmaps/nld80.xpm | 89 + pixmaps/nld87.xpm | 96 + pixmaps/nld95.xpm | 104 + pixmaps/nll108.xpm | 117 + pixmaps/nll116.xpm | 125 + pixmaps/nll129.xpm | 138 + pixmaps/nll21.xpm | 30 + pixmaps/nll25.xpm | 34 + pixmaps/nll29.xpm | 38 + pixmaps/nll33.xpm | 42 + pixmaps/nll37.xpm | 46 + pixmaps/nll40.xpm | 46 + pixmaps/nll45.xpm | 51 + pixmaps/nll49.xpm | 58 + pixmaps/nll54.xpm | 63 + pixmaps/nll58.xpm | 67 + pixmaps/nll64.xpm | 73 + pixmaps/nll72.xpm | 81 + pixmaps/nll80.xpm | 89 + pixmaps/nll87.xpm | 96 + pixmaps/nll95.xpm | 104 + pixmaps/pdd108.xpm | 116 + pixmaps/pdd116.xpm | 124 + pixmaps/pdd129.xpm | 137 + pixmaps/pdd21.xpm | 29 + pixmaps/pdd25.xpm | 33 + pixmaps/pdd29.xpm | 37 + pixmaps/pdd33.xpm | 41 + pixmaps/pdd37.xpm | 45 + pixmaps/pdd40.xpm | 48 + pixmaps/pdd45.xpm | 53 + pixmaps/pdd49.xpm | 57 + pixmaps/pdd54.xpm | 62 + pixmaps/pdd58.xpm | 66 + pixmaps/pdd64.xpm | 72 + pixmaps/pdd72.xpm | 80 + pixmaps/pdd80.xpm | 88 + pixmaps/pdd87.xpm | 95 + pixmaps/pdd95.xpm | 103 + pixmaps/pdl108.xpm | 116 + pixmaps/pdl116.xpm | 124 + pixmaps/pdl129.xpm | 137 + pixmaps/pdl21.xpm | 29 + pixmaps/pdl25.xpm | 33 + pixmaps/pdl29.xpm | 37 + pixmaps/pdl33.xpm | 41 + pixmaps/pdl37.xpm | 45 + pixmaps/pdl40.xpm | 48 + pixmaps/pdl45.xpm | 53 + pixmaps/pdl49.xpm | 57 + pixmaps/pdl54.xpm | 62 + pixmaps/pdl58.xpm | 66 + pixmaps/pdl64.xpm | 72 + pixmaps/pdl72.xpm | 80 + pixmaps/pdl80.xpm | 88 + pixmaps/pdl87.xpm | 95 + pixmaps/pdl95.xpm | 103 + pixmaps/pixmaps.h | 659 +++ pixmaps/pld108.xpm | 117 + pixmaps/pld116.xpm | 125 + pixmaps/pld129.xpm | 138 + pixmaps/pld21.xpm | 30 + pixmaps/pld25.xpm | 34 + pixmaps/pld29.xpm | 38 + pixmaps/pld33.xpm | 42 + pixmaps/pld37.xpm | 46 + pixmaps/pld40.xpm | 49 + pixmaps/pld45.xpm | 54 + pixmaps/pld49.xpm | 58 + pixmaps/pld54.xpm | 63 + pixmaps/pld58.xpm | 67 + pixmaps/pld64.xpm | 73 + pixmaps/pld72.xpm | 81 + pixmaps/pld80.xpm | 89 + pixmaps/pld87.xpm | 96 + pixmaps/pld95.xpm | 104 + pixmaps/pll108.xpm | 117 + pixmaps/pll116.xpm | 125 + pixmaps/pll129.xpm | 138 + pixmaps/pll21.xpm | 30 + pixmaps/pll25.xpm | 34 + pixmaps/pll29.xpm | 38 + pixmaps/pll33.xpm | 42 + pixmaps/pll37.xpm | 46 + pixmaps/pll40.xpm | 49 + pixmaps/pll45.xpm | 54 + pixmaps/pll49.xpm | 58 + pixmaps/pll54.xpm | 63 + pixmaps/pll58.xpm | 67 + pixmaps/pll64.xpm | 73 + pixmaps/pll72.xpm | 81 + pixmaps/pll80.xpm | 89 + pixmaps/pll87.xpm | 96 + pixmaps/pll95.xpm | 104 + pixmaps/qdd108.xpm | 117 + pixmaps/qdd116.xpm | 125 + pixmaps/qdd129.xpm | 138 + pixmaps/qdd21.xpm | 30 + pixmaps/qdd25.xpm | 31 + pixmaps/qdd29.xpm | 38 + pixmaps/qdd33.xpm | 42 + pixmaps/qdd37.xpm | 46 + pixmaps/qdd40.xpm | 49 + pixmaps/qdd45.xpm | 54 + pixmaps/qdd49.xpm | 58 + pixmaps/qdd54.xpm | 63 + pixmaps/qdd58.xpm | 67 + pixmaps/qdd64.xpm | 73 + pixmaps/qdd72.xpm | 78 + pixmaps/qdd80.xpm | 89 + pixmaps/qdd87.xpm | 96 + pixmaps/qdd95.xpm | 104 + pixmaps/qdl108.xpm | 117 + pixmaps/qdl116.xpm | 125 + pixmaps/qdl129.xpm | 138 + pixmaps/qdl21.xpm | 30 + pixmaps/qdl25.xpm | 31 + pixmaps/qdl29.xpm | 38 + pixmaps/qdl33.xpm | 42 + pixmaps/qdl37.xpm | 46 + pixmaps/qdl40.xpm | 49 + pixmaps/qdl45.xpm | 54 + pixmaps/qdl49.xpm | 58 + pixmaps/qdl54.xpm | 63 + pixmaps/qdl58.xpm | 67 + pixmaps/qdl64.xpm | 73 + pixmaps/qdl72.xpm | 78 + pixmaps/qdl80.xpm | 89 + pixmaps/qdl87.xpm | 96 + pixmaps/qdl95.xpm | 104 + pixmaps/qld108.xpm | 117 + pixmaps/qld116.xpm | 125 + pixmaps/qld129.xpm | 138 + pixmaps/qld21.xpm | 30 + pixmaps/qld25.xpm | 31 + pixmaps/qld29.xpm | 38 + pixmaps/qld33.xpm | 42 + pixmaps/qld37.xpm | 46 + pixmaps/qld40.xpm | 49 + pixmaps/qld45.xpm | 54 + pixmaps/qld49.xpm | 58 + pixmaps/qld54.xpm | 63 + pixmaps/qld58.xpm | 67 + pixmaps/qld64.xpm | 73 + pixmaps/qld72.xpm | 78 + pixmaps/qld80.xpm | 89 + pixmaps/qld87.xpm | 96 + pixmaps/qld95.xpm | 104 + pixmaps/qll108.xpm | 117 + pixmaps/qll116.xpm | 125 + pixmaps/qll129.xpm | 138 + pixmaps/qll21.xpm | 30 + pixmaps/qll25.xpm | 31 + pixmaps/qll29.xpm | 38 + pixmaps/qll33.xpm | 42 + pixmaps/qll37.xpm | 46 + pixmaps/qll40.xpm | 49 + pixmaps/qll45.xpm | 54 + pixmaps/qll49.xpm | 58 + pixmaps/qll54.xpm | 63 + pixmaps/qll58.xpm | 67 + pixmaps/qll64.xpm | 73 + pixmaps/qll72.xpm | 78 + pixmaps/qll80.xpm | 89 + pixmaps/qll87.xpm | 96 + pixmaps/qll95.xpm | 104 + pixmaps/rdd108.xpm | 117 + pixmaps/rdd116.xpm | 125 + pixmaps/rdd129.xpm | 138 + pixmaps/rdd21.xpm | 30 + pixmaps/rdd25.xpm | 34 + pixmaps/rdd29.xpm | 38 + pixmaps/rdd33.xpm | 42 + pixmaps/rdd37.xpm | 46 + pixmaps/rdd40.xpm | 46 + pixmaps/rdd45.xpm | 54 + pixmaps/rdd49.xpm | 58 + pixmaps/rdd54.xpm | 63 + pixmaps/rdd58.xpm | 67 + pixmaps/rdd64.xpm | 73 + pixmaps/rdd72.xpm | 81 + pixmaps/rdd80.xpm | 89 + pixmaps/rdd87.xpm | 96 + pixmaps/rdd95.xpm | 104 + pixmaps/rdl108.xpm | 117 + pixmaps/rdl116.xpm | 125 + pixmaps/rdl129.xpm | 138 + pixmaps/rdl21.xpm | 30 + pixmaps/rdl25.xpm | 34 + pixmaps/rdl29.xpm | 38 + pixmaps/rdl33.xpm | 42 + pixmaps/rdl37.xpm | 46 + pixmaps/rdl40.xpm | 46 + pixmaps/rdl45.xpm | 54 + pixmaps/rdl49.xpm | 58 + pixmaps/rdl54.xpm | 63 + pixmaps/rdl58.xpm | 67 + pixmaps/rdl64.xpm | 73 + pixmaps/rdl72.xpm | 81 + pixmaps/rdl80.xpm | 89 + pixmaps/rdl87.xpm | 96 + pixmaps/rdl95.xpm | 104 + pixmaps/rld108.xpm | 117 + pixmaps/rld116.xpm | 125 + pixmaps/rld129.xpm | 138 + pixmaps/rld21.xpm | 30 + pixmaps/rld25.xpm | 34 + pixmaps/rld29.xpm | 38 + pixmaps/rld33.xpm | 42 + pixmaps/rld37.xpm | 46 + pixmaps/rld40.xpm | 49 + pixmaps/rld45.xpm | 54 + pixmaps/rld49.xpm | 58 + pixmaps/rld54.xpm | 63 + pixmaps/rld58.xpm | 67 + pixmaps/rld64.xpm | 73 + pixmaps/rld72.xpm | 81 + pixmaps/rld80.xpm | 89 + pixmaps/rld87.xpm | 96 + pixmaps/rld95.xpm | 104 + pixmaps/rll108.xpm | 117 + pixmaps/rll116.xpm | 125 + pixmaps/rll129.xpm | 138 + pixmaps/rll21.xpm | 30 + pixmaps/rll25.xpm | 34 + pixmaps/rll29.xpm | 38 + pixmaps/rll33.xpm | 42 + pixmaps/rll37.xpm | 46 + pixmaps/rll40.xpm | 49 + pixmaps/rll45.xpm | 54 + pixmaps/rll49.xpm | 58 + pixmaps/rll54.xpm | 63 + pixmaps/rll58.xpm | 67 + pixmaps/rll64.xpm | 73 + pixmaps/rll72.xpm | 81 + pixmaps/rll80.xpm | 89 + pixmaps/rll87.xpm | 96 + pixmaps/rll95.xpm | 104 + pxboard | 21 + sounds/alarm.wav | Bin 0 -> 10234 bytes sounds/challenge.wav | Bin 0 -> 7244 bytes sounds/channel.wav | Bin 0 -> 4400 bytes sounds/channel1.wav | Bin 0 -> 9636 bytes sounds/ching.wav | Bin 0 -> 5625 bytes sounds/click.wav | Bin 0 -> 2182 bytes sounds/cymbal.wav | Bin 0 -> 12124 bytes sounds/ding1.wav | Bin 0 -> 10214 bytes sounds/draw.wav | Bin 0 -> 8624 bytes sounds/drip.wav | Bin 0 -> 800 bytes sounds/gong.wav | Bin 0 -> 42072 bytes sounds/honkhonk.wav | Bin 0 -> 5104 bytes sounds/kibitz.wav | Bin 0 -> 6710 bytes sounds/laser.wav | Bin 0 -> 1924 bytes sounds/lose.wav | Bin 0 -> 10281 bytes sounds/move.wav | Bin 0 -> 14828 bytes sounds/penalty.wav | Bin 0 -> 6278 bytes sounds/phone.wav | Bin 0 -> 14102 bytes sounds/pop.wav | Bin 0 -> 4044 bytes sounds/pop2.wav | Bin 0 -> 4486 bytes sounds/request.wav | Bin 0 -> 9152 bytes sounds/seek.wav | Bin 0 -> 6424 bytes sounds/shout.wav | Bin 0 -> 6060 bytes sounds/slap.wav | Bin 0 -> 2933 bytes sounds/squeak.wav | Bin 0 -> 1652 bytes sounds/sshout.wav | Bin 0 -> 9614 bytes sounds/swish.wav | Bin 0 -> 3359 bytes sounds/tell.wav | Bin 0 -> 5722 bytes sounds/thud.wav | Bin 0 -> 2524 bytes sounds/unfinished.wav | Bin 0 -> 12584 bytes sounds/whipcrak.wav | Bin 0 -> 4633 bytes sounds/win.wav | Bin 0 -> 8544 bytes winboard/READ_ME.txt | 80 + winboard/bcc32.cfg | 7 + winboard/bitmaps/README.bitmaps | 20 + winboard/bitmaps/b108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/b108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/b108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/b116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/b116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/b116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/b129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/b129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/b129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/b21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/b21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/b21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/b25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/b25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/b25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/b29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/b29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/b29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/b33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/b33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/b33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/b37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/b37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/b37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/b40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/b40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/b40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/b45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/b45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/b45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/b49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/b49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/b49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/b54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/b54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/b54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/b58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/b58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/b58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/b64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/b64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/b64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/b72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/b72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/b72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/b80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/b80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/b80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/b87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/b87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/b87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/b95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/b95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/b95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/board.ico | Bin 0 -> 1086 bytes winboard/bitmaps/galactic.bmp | Bin 0 -> 96142 bytes winboard/bitmaps/icon_b.bmp | Bin 0 -> 190 bytes winboard/bitmaps/icon_b.ico | Bin 0 -> 1086 bytes winboard/bitmaps/icon_o.ico | Bin 0 -> 326 bytes winboard/bitmaps/icon_ob.ico | Bin 0 -> 1086 bytes winboard/bitmaps/icon_ow.ico | Bin 0 -> 1086 bytes winboard/bitmaps/icon_w.bmp | Bin 0 -> 190 bytes winboard/bitmaps/icon_w.ico | Bin 0 -> 326 bytes winboard/bitmaps/icon_whi.ico | Bin 0 -> 1086 bytes winboard/bitmaps/k108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/k108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/k108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/k116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/k116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/k116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/k129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/k129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/k129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/k21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/k21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/k21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/k25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/k25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/k25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/k29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/k29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/k29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/k33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/k33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/k33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/k37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/k37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/k37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/k40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/k40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/k40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/k45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/k45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/k45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/k49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/k49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/k49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/k54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/k54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/k54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/k58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/k58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/k58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/k64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/k64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/k64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/k72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/k72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/k72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/k80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/k80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/k80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/k87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/k87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/k87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/k95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/k95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/k95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/n108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/n108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/n108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/n116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/n116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/n116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/n129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/n129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/n129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/n21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/n21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/n21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/n25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/n25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/n25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/n29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/n29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/n29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/n33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/n33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/n33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/n37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/n37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/n37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/n40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/n40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/n40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/n45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/n45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/n45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/n49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/n49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/n49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/n54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/n54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/n54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/n58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/n58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/n58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/n64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/n64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/n64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/n72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/n72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/n72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/n80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/n80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/n80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/n87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/n87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/n87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/n95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/n95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/n95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/p108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/p108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/p108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/p116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/p116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/p116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/p129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/p129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/p129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/p21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/p21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/p21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/p25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/p25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/p25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/p29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/p29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/p29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/p33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/p33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/p33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/p37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/p37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/p37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/p40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/p40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/p40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/p45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/p45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/p45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/p49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/p49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/p49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/p54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/p54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/p54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/p58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/p58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/p58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/p64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/p64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/p64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/p72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/p72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/p72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/p80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/p80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/p80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/p87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/p87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/p87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/p95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/p95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/p95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/q108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/q108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/q108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/q116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/q116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/q116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/q129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/q129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/q129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/q21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/q21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/q21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/q25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/q25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/q25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/q29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/q29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/q29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/q33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/q33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/q33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/q37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/q37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/q37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/q40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/q40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/q40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/q45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/q45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/q45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/q49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/q49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/q49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/q54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/q54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/q54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/q58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/q58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/q58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/q64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/q64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/q64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/q72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/q72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/q72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/q80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/q80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/q80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/q87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/q87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/q87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/q95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/q95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/q95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/r108o.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/r108s.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/r108w.bmp | Bin 0 -> 1790 bytes winboard/bitmaps/r116o.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/r116s.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/r116w.bmp | Bin 0 -> 1918 bytes winboard/bitmaps/r129o.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/r129s.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/r129w.bmp | Bin 0 -> 2642 bytes winboard/bitmaps/r21o.bmp | Bin 0 -> 146 bytes winboard/bitmaps/r21s.bmp | Bin 0 -> 146 bytes winboard/bitmaps/r21w.bmp | Bin 0 -> 146 bytes winboard/bitmaps/r25o.bmp | Bin 0 -> 162 bytes winboard/bitmaps/r25s.bmp | Bin 0 -> 162 bytes winboard/bitmaps/r25w.bmp | Bin 0 -> 162 bytes winboard/bitmaps/r29o.bmp | Bin 0 -> 178 bytes winboard/bitmaps/r29s.bmp | Bin 0 -> 178 bytes winboard/bitmaps/r29w.bmp | Bin 0 -> 178 bytes winboard/bitmaps/r33o.bmp | Bin 0 -> 326 bytes winboard/bitmaps/r33s.bmp | Bin 0 -> 326 bytes winboard/bitmaps/r33w.bmp | Bin 0 -> 326 bytes winboard/bitmaps/r37o.bmp | Bin 0 -> 358 bytes winboard/bitmaps/r37s.bmp | Bin 0 -> 358 bytes winboard/bitmaps/r37w.bmp | Bin 0 -> 358 bytes winboard/bitmaps/r40o.bmp | Bin 0 -> 382 bytes winboard/bitmaps/r40s.bmp | Bin 0 -> 382 bytes winboard/bitmaps/r40w.bmp | Bin 0 -> 382 bytes winboard/bitmaps/r45o.bmp | Bin 0 -> 422 bytes winboard/bitmaps/r45s.bmp | Bin 0 -> 422 bytes winboard/bitmaps/r45w.bmp | Bin 0 -> 422 bytes winboard/bitmaps/r49o.bmp | Bin 0 -> 454 bytes winboard/bitmaps/r49s.bmp | Bin 0 -> 454 bytes winboard/bitmaps/r49w.bmp | Bin 0 -> 454 bytes winboard/bitmaps/r54o.bmp | Bin 0 -> 494 bytes winboard/bitmaps/r54s.bmp | Bin 0 -> 494 bytes winboard/bitmaps/r54w.bmp | Bin 0 -> 494 bytes winboard/bitmaps/r58o.bmp | Bin 0 -> 526 bytes winboard/bitmaps/r58s.bmp | Bin 0 -> 526 bytes winboard/bitmaps/r58w.bmp | Bin 0 -> 526 bytes winboard/bitmaps/r64o.bmp | Bin 0 -> 574 bytes winboard/bitmaps/r64s.bmp | Bin 0 -> 574 bytes winboard/bitmaps/r64w.bmp | Bin 0 -> 574 bytes winboard/bitmaps/r72o.bmp | Bin 0 -> 926 bytes winboard/bitmaps/r72s.bmp | Bin 0 -> 926 bytes winboard/bitmaps/r72w.bmp | Bin 0 -> 926 bytes winboard/bitmaps/r80o.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/r80s.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/r80w.bmp | Bin 0 -> 1022 bytes winboard/bitmaps/r87o.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/r87s.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/r87w.bmp | Bin 0 -> 1106 bytes winboard/bitmaps/r95o.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/r95s.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/r95w.bmp | Bin 0 -> 1202 bytes winboard/bitmaps/tim.bmp | Bin 0 -> 7478 bytes winboard/borland.mak | 87 + winboard/config.h | 130 + winboard/cygwin.mak | 57 + winboard/defaults.h | 249 + winboard/msvc.mak | 103 + winboard/resource.h | 355 ++ winboard/wclipbrd.c | 320 ++ winboard/wclipbrd.h | 32 + winboard/wedittags.c | 234 + winboard/wedittags.h | 27 + winboard/wgamelist.c | 250 + winboard/wgamelist.h | 26 + winboard/winboard.c | 7764 ++++++++++++++++++++++++++++++ winboard/winboard.dsp | 528 +++ winboard/winboard.dsw | 29 + winboard/winboard.h | 165 + winboard/winboard.hpj | 19 + winboard/winboard.rc | 1371 ++++++ winboard/winboard.rtf | 1880 ++++++++ winboard/woptions.c | 2432 ++++++++++ winboard/woptions.h | 34 + winboard/wsockerr.c | 60 + winboard/wsockerr.h | 10 + xboard.c | 8475 +++++++++++++++++++++++++++++++++ xboard.h | 117 + xboard.man | 2381 ++++++++++ xboard.texi | 2846 +++++++++++ xboard.texinfo.in | 26 + xedittags.c | 433 ++ xedittags.h | 34 + xgamelist.c | 470 ++ xgamelist.h | 36 + xhistory.c | 484 ++ xhistory.h | 37 + zic2xpm.c | 602 +++ zic2xpm.man | 74 + zippy.README | 399 ++ zippy.c | 1071 +++++ zippy.h | 57 + zippy.lines | 33 + 1112 files changed, 112145 insertions(+), 0 deletions(-) create mode 100644 COPYING create mode 100644 COPYRIGHT create mode 100644 ChangeLog create mode 100644 ChangeLog.2 create mode 100644 FAQ.html create mode 100644 INSTALL create mode 100644 Makefile.in create mode 100644 READ_ME create mode 100644 ToDo create mode 100644 acconfig.h create mode 100644 backend.c create mode 100644 backend.h create mode 100644 backendz.h create mode 100644 bitmaps/README.bitmaps create mode 100644 bitmaps/b108o.bm create mode 100644 bitmaps/b108s.bm create mode 100644 bitmaps/b116o.bm create mode 100644 bitmaps/b116s.bm create mode 100644 bitmaps/b129o.bm create mode 100644 bitmaps/b129s.bm create mode 100644 bitmaps/b21o.bm create mode 100644 bitmaps/b21s.bm create mode 100644 bitmaps/b25o.bm create mode 100644 bitmaps/b25s.bm create mode 100644 bitmaps/b29o.bm create mode 100644 bitmaps/b29s.bm create mode 100644 bitmaps/b33o.bm create mode 100644 bitmaps/b33s.bm create mode 100644 bitmaps/b37o.bm create mode 100644 bitmaps/b37s.bm create mode 100644 bitmaps/b40o.bm create mode 100644 bitmaps/b40s.bm create mode 100644 bitmaps/b45o.bm create mode 100644 bitmaps/b45s.bm create mode 100644 bitmaps/b49o.bm create mode 100644 bitmaps/b49s.bm create mode 100644 bitmaps/b54o.bm create mode 100644 bitmaps/b54s.bm create mode 100644 bitmaps/b58o.bm create mode 100644 bitmaps/b58s.bm create mode 100644 bitmaps/b64o.bm create mode 100644 bitmaps/b64s.bm create mode 100644 bitmaps/b72o.bm create mode 100644 bitmaps/b72s.bm create mode 100644 bitmaps/b80o.bm create mode 100644 bitmaps/b80s.bm create mode 100644 bitmaps/b87o.bm create mode 100644 bitmaps/b87s.bm create mode 100644 bitmaps/b95o.bm create mode 100644 bitmaps/b95s.bm create mode 100644 bitmaps/bitmaps.h create mode 100644 bitmaps/checkmark.bm create mode 100755 bitmaps/dopkbm.sh create mode 100755 bitmaps/dopkbm1.sh create mode 100644 bitmaps/fixup.sed create mode 100644 bitmaps/icon_black.bm create mode 100644 bitmaps/icon_outline.bm create mode 100644 bitmaps/icon_white.bm create mode 100644 bitmaps/k108o.bm create mode 100644 bitmaps/k108s.bm create mode 100644 bitmaps/k116o.bm create mode 100644 bitmaps/k116s.bm create mode 100644 bitmaps/k129o.bm create mode 100644 bitmaps/k129s.bm create mode 100644 bitmaps/k21o.bm create mode 100644 bitmaps/k21s.bm create mode 100644 bitmaps/k25o.bm create mode 100644 bitmaps/k25s.bm create mode 100644 bitmaps/k29o.bm create mode 100644 bitmaps/k29s.bm create mode 100644 bitmaps/k33o.bm create mode 100644 bitmaps/k33s.bm create mode 100644 bitmaps/k37o.bm create mode 100644 bitmaps/k37s.bm create mode 100644 bitmaps/k40o.bm create mode 100644 bitmaps/k40s.bm create mode 100644 bitmaps/k45o.bm create mode 100644 bitmaps/k45s.bm create mode 100644 bitmaps/k49o.bm create mode 100644 bitmaps/k49s.bm create mode 100644 bitmaps/k54o.bm create mode 100644 bitmaps/k54s.bm create mode 100644 bitmaps/k58o.bm create mode 100644 bitmaps/k58s.bm create mode 100644 bitmaps/k64o.bm create mode 100644 bitmaps/k64s.bm create mode 100644 bitmaps/k72o.bm create mode 100644 bitmaps/k72s.bm create mode 100644 bitmaps/k80o.bm create mode 100644 bitmaps/k80s.bm create mode 100644 bitmaps/k87o.bm create mode 100644 bitmaps/k87s.bm create mode 100644 bitmaps/k95o.bm create mode 100644 bitmaps/k95s.bm create mode 100644 bitmaps/n108o.bm create mode 100644 bitmaps/n108s.bm create mode 100644 bitmaps/n116o.bm create mode 100644 bitmaps/n116s.bm create mode 100644 bitmaps/n129o.bm create mode 100644 bitmaps/n129s.bm create mode 100644 bitmaps/n21o.bm create mode 100644 bitmaps/n21s.bm create mode 100644 bitmaps/n25o.bm create mode 100644 bitmaps/n25s.bm create mode 100644 bitmaps/n29o.bm create mode 100644 bitmaps/n29s.bm create mode 100644 bitmaps/n33o.bm create mode 100644 bitmaps/n33s.bm create mode 100644 bitmaps/n37o.bm create mode 100644 bitmaps/n37s.bm create mode 100644 bitmaps/n40o.bm create mode 100644 bitmaps/n40s.bm create mode 100644 bitmaps/n45o.bm create mode 100644 bitmaps/n45s.bm create mode 100644 bitmaps/n49o.bm create mode 100644 bitmaps/n49s.bm create mode 100644 bitmaps/n54o.bm create mode 100644 bitmaps/n54s.bm create mode 100644 bitmaps/n58o.bm create mode 100644 bitmaps/n58s.bm create mode 100644 bitmaps/n64o.bm create mode 100644 bitmaps/n64s.bm create mode 100644 bitmaps/n72o.bm create mode 100644 bitmaps/n72s.bm create mode 100644 bitmaps/n80o.bm create mode 100644 bitmaps/n80s.bm create mode 100644 bitmaps/n87o.bm create mode 100644 bitmaps/n87s.bm create mode 100644 bitmaps/n95o.bm create mode 100644 bitmaps/n95s.bm create mode 100644 bitmaps/p108o.bm create mode 100644 bitmaps/p108s.bm create mode 100644 bitmaps/p116o.bm create mode 100644 bitmaps/p116s.bm create mode 100644 bitmaps/p129o.bm create mode 100644 bitmaps/p129s.bm create mode 100644 bitmaps/p21o.bm create mode 100644 bitmaps/p21s.bm create mode 100644 bitmaps/p25o.bm create mode 100644 bitmaps/p25s.bm create mode 100644 bitmaps/p29o.bm create mode 100644 bitmaps/p29s.bm create mode 100644 bitmaps/p33o.bm create mode 100644 bitmaps/p33s.bm create mode 100644 bitmaps/p37o.bm create mode 100644 bitmaps/p37s.bm create mode 100644 bitmaps/p40o.bm create mode 100644 bitmaps/p40s.bm create mode 100644 bitmaps/p45o.bm create mode 100644 bitmaps/p45s.bm create mode 100644 bitmaps/p49o.bm create mode 100644 bitmaps/p49s.bm create mode 100644 bitmaps/p54o.bm create mode 100644 bitmaps/p54s.bm create mode 100644 bitmaps/p58o.bm create mode 100644 bitmaps/p58s.bm create mode 100644 bitmaps/p64o.bm create mode 100644 bitmaps/p64s.bm create mode 100644 bitmaps/p72o.bm create mode 100644 bitmaps/p72s.bm create mode 100644 bitmaps/p80o.bm create mode 100644 bitmaps/p80s.bm create mode 100644 bitmaps/p87o.bm create mode 100644 bitmaps/p87s.bm create mode 100644 bitmaps/p95o.bm create mode 100644 bitmaps/p95s.bm create mode 100644 bitmaps/q108o.bm create mode 100644 bitmaps/q108s.bm create mode 100644 bitmaps/q116o.bm create mode 100644 bitmaps/q116s.bm create mode 100644 bitmaps/q129o.bm create mode 100644 bitmaps/q129s.bm create mode 100644 bitmaps/q21o.bm create mode 100644 bitmaps/q21s.bm create mode 100644 bitmaps/q25o.bm create mode 100644 bitmaps/q25s.bm create mode 100644 bitmaps/q29o.bm create mode 100644 bitmaps/q29s.bm create mode 100644 bitmaps/q33o.bm create mode 100644 bitmaps/q33s.bm create mode 100644 bitmaps/q37o.bm create mode 100644 bitmaps/q37s.bm create mode 100644 bitmaps/q40o.bm create mode 100644 bitmaps/q40s.bm create mode 100644 bitmaps/q45o.bm create mode 100644 bitmaps/q45s.bm create mode 100644 bitmaps/q49o.bm create mode 100644 bitmaps/q49s.bm create mode 100644 bitmaps/q54o.bm create mode 100644 bitmaps/q54s.bm create mode 100644 bitmaps/q58o.bm create mode 100644 bitmaps/q58s.bm create mode 100644 bitmaps/q64o.bm create mode 100644 bitmaps/q64s.bm create mode 100644 bitmaps/q72o.bm create mode 100644 bitmaps/q72s.bm create mode 100644 bitmaps/q80o.bm create mode 100644 bitmaps/q80s.bm create mode 100644 bitmaps/q87o.bm create mode 100644 bitmaps/q87s.bm create mode 100644 bitmaps/q95o.bm create mode 100644 bitmaps/q95s.bm create mode 100644 bitmaps/r108o.bm create mode 100644 bitmaps/r108s.bm create mode 100644 bitmaps/r116o.bm create mode 100644 bitmaps/r116s.bm create mode 100644 bitmaps/r129o.bm create mode 100644 bitmaps/r129s.bm create mode 100644 bitmaps/r21o.bm create mode 100644 bitmaps/r21s.bm create mode 100644 bitmaps/r25o.bm create mode 100644 bitmaps/r25s.bm create mode 100644 bitmaps/r29o.bm create mode 100644 bitmaps/r29s.bm create mode 100644 bitmaps/r33o.bm create mode 100644 bitmaps/r33s.bm create mode 100644 bitmaps/r37o.bm create mode 100644 bitmaps/r37s.bm create mode 100644 bitmaps/r40o.bm create mode 100644 bitmaps/r40s.bm create mode 100644 bitmaps/r45o.bm create mode 100644 bitmaps/r45s.bm create mode 100644 bitmaps/r49o.bm create mode 100644 bitmaps/r49s.bm create mode 100644 bitmaps/r54o.bm create mode 100644 bitmaps/r54s.bm create mode 100644 bitmaps/r58o.bm create mode 100644 bitmaps/r58s.bm create mode 100644 bitmaps/r64o.bm create mode 100644 bitmaps/r64s.bm create mode 100644 bitmaps/r72o.bm create mode 100644 bitmaps/r72s.bm create mode 100644 bitmaps/r80o.bm create mode 100644 bitmaps/r80s.bm create mode 100644 bitmaps/r87o.bm create mode 100644 bitmaps/r87s.bm create mode 100644 bitmaps/r95o.bm create mode 100644 bitmaps/r95s.bm create mode 100755 bitmaps/unsigned.sh create mode 100644 childio.c create mode 100644 childio.h create mode 100644 cmail.in create mode 100644 cmail.man create mode 100644 comment.in create mode 100644 common.h create mode 100755 config.guess create mode 100644 config.h.in create mode 100755 config.sub create mode 100755 configure create mode 100644 configure.in create mode 100644 engine-intf.html create mode 100644 frontend.h create mode 100644 gamelist.c create mode 100644 gpl.texinfo create mode 100644 ics-parsing.txt create mode 100755 install-sh create mode 100644 lists.c create mode 100644 lists.h create mode 100755 mkinstalldirs create mode 100644 moves.c create mode 100644 moves.h create mode 100644 parser.h create mode 100644 parser.l create mode 100644 pgntags.c create mode 100644 pixmaps/README.pixmaps create mode 100644 pixmaps/bdd108.xpm create mode 100644 pixmaps/bdd116.xpm create mode 100644 pixmaps/bdd129.xpm create mode 100644 pixmaps/bdd21.xpm create mode 100644 pixmaps/bdd25.xpm create mode 100644 pixmaps/bdd29.xpm create mode 100644 pixmaps/bdd33.xpm create mode 100644 pixmaps/bdd37.xpm create mode 100644 pixmaps/bdd40.xpm create mode 100644 pixmaps/bdd45.xpm create mode 100644 pixmaps/bdd49.xpm create mode 100644 pixmaps/bdd54.xpm create mode 100644 pixmaps/bdd58.xpm create mode 100644 pixmaps/bdd64.xpm create mode 100644 pixmaps/bdd72.xpm create mode 100644 pixmaps/bdd80.xpm create mode 100644 pixmaps/bdd87.xpm create mode 100644 pixmaps/bdd95.xpm create mode 100644 pixmaps/bdl108.xpm create mode 100644 pixmaps/bdl116.xpm create mode 100644 pixmaps/bdl129.xpm create mode 100644 pixmaps/bdl21.xpm create mode 100644 pixmaps/bdl25.xpm create mode 100644 pixmaps/bdl29.xpm create mode 100644 pixmaps/bdl33.xpm create mode 100644 pixmaps/bdl37.xpm create mode 100644 pixmaps/bdl40.xpm create mode 100644 pixmaps/bdl45.xpm create mode 100644 pixmaps/bdl49.xpm create mode 100644 pixmaps/bdl54.xpm create mode 100644 pixmaps/bdl58.xpm create mode 100644 pixmaps/bdl64.xpm create mode 100644 pixmaps/bdl72.xpm create mode 100644 pixmaps/bdl80.xpm create mode 100644 pixmaps/bdl87.xpm create mode 100644 pixmaps/bdl95.xpm create mode 100644 pixmaps/bld108.xpm create mode 100644 pixmaps/bld116.xpm create mode 100644 pixmaps/bld129.xpm create mode 100644 pixmaps/bld21.xpm create mode 100644 pixmaps/bld25.xpm create mode 100644 pixmaps/bld29.xpm create mode 100644 pixmaps/bld33.xpm create mode 100644 pixmaps/bld37.xpm create mode 100644 pixmaps/bld40.xpm create mode 100644 pixmaps/bld45.xpm create mode 100644 pixmaps/bld49.xpm create mode 100644 pixmaps/bld54.xpm create mode 100644 pixmaps/bld58.xpm create mode 100644 pixmaps/bld64.xpm create mode 100644 pixmaps/bld72.xpm create mode 100644 pixmaps/bld80.xpm create mode 100644 pixmaps/bld87.xpm create mode 100644 pixmaps/bld95.xpm create mode 100644 pixmaps/bll108.xpm create mode 100644 pixmaps/bll116.xpm create mode 100644 pixmaps/bll129.xpm create mode 100644 pixmaps/bll21.xpm create mode 100644 pixmaps/bll25.xpm create mode 100644 pixmaps/bll29.xpm create mode 100644 pixmaps/bll33.xpm create mode 100644 pixmaps/bll37.xpm create mode 100644 pixmaps/bll40.xpm create mode 100644 pixmaps/bll45.xpm create mode 100644 pixmaps/bll49.xpm create mode 100644 pixmaps/bll54.xpm create mode 100644 pixmaps/bll58.xpm create mode 100644 pixmaps/bll64.xpm create mode 100644 pixmaps/bll72.xpm create mode 100644 pixmaps/bll80.xpm create mode 100644 pixmaps/bll87.xpm create mode 100644 pixmaps/bll95.xpm create mode 100644 pixmaps/convbm create mode 100644 pixmaps/convbm.sed create mode 100644 pixmaps/convbm2.sed create mode 100644 pixmaps/kdd108.xpm create mode 100644 pixmaps/kdd116.xpm create mode 100644 pixmaps/kdd129.xpm create mode 100644 pixmaps/kdd21.xpm create mode 100644 pixmaps/kdd25.xpm create mode 100644 pixmaps/kdd29.xpm create mode 100644 pixmaps/kdd33.xpm create mode 100644 pixmaps/kdd37.xpm create mode 100644 pixmaps/kdd40.xpm create mode 100644 pixmaps/kdd45.xpm create mode 100644 pixmaps/kdd49.xpm create mode 100644 pixmaps/kdd54.xpm create mode 100644 pixmaps/kdd58.xpm create mode 100644 pixmaps/kdd64.xpm create mode 100644 pixmaps/kdd72.xpm create mode 100644 pixmaps/kdd80.xpm create mode 100644 pixmaps/kdd87.xpm create mode 100644 pixmaps/kdd95.xpm create mode 100644 pixmaps/kdl108.xpm create mode 100644 pixmaps/kdl116.xpm create mode 100644 pixmaps/kdl129.xpm create mode 100644 pixmaps/kdl21.xpm create mode 100644 pixmaps/kdl25.xpm create mode 100644 pixmaps/kdl29.xpm create mode 100644 pixmaps/kdl33.xpm create mode 100644 pixmaps/kdl37.xpm create mode 100644 pixmaps/kdl40.xpm create mode 100644 pixmaps/kdl45.xpm create mode 100644 pixmaps/kdl49.xpm create mode 100644 pixmaps/kdl54.xpm create mode 100644 pixmaps/kdl58.xpm create mode 100644 pixmaps/kdl64.xpm create mode 100644 pixmaps/kdl72.xpm create mode 100644 pixmaps/kdl80.xpm create mode 100644 pixmaps/kdl87.xpm create mode 100644 pixmaps/kdl95.xpm create mode 100644 pixmaps/kld108.xpm create mode 100644 pixmaps/kld116.xpm create mode 100644 pixmaps/kld129.xpm create mode 100644 pixmaps/kld21.xpm create mode 100644 pixmaps/kld25.xpm create mode 100644 pixmaps/kld29.xpm create mode 100644 pixmaps/kld33.xpm create mode 100644 pixmaps/kld37.xpm create mode 100644 pixmaps/kld40.xpm create mode 100644 pixmaps/kld45.xpm create mode 100644 pixmaps/kld49.xpm create mode 100644 pixmaps/kld54.xpm create mode 100644 pixmaps/kld58.xpm create mode 100644 pixmaps/kld64.xpm create mode 100644 pixmaps/kld72.xpm create mode 100644 pixmaps/kld80.xpm create mode 100644 pixmaps/kld87.xpm create mode 100644 pixmaps/kld95.xpm create mode 100644 pixmaps/kll108.xpm create mode 100644 pixmaps/kll116.xpm create mode 100644 pixmaps/kll129.xpm create mode 100644 pixmaps/kll21.xpm create mode 100644 pixmaps/kll25.xpm create mode 100644 pixmaps/kll29.xpm create mode 100644 pixmaps/kll33.xpm create mode 100644 pixmaps/kll37.xpm create mode 100644 pixmaps/kll40.xpm create mode 100644 pixmaps/kll45.xpm create mode 100644 pixmaps/kll49.xpm create mode 100644 pixmaps/kll54.xpm create mode 100644 pixmaps/kll58.xpm create mode 100644 pixmaps/kll64.xpm create mode 100644 pixmaps/kll72.xpm create mode 100644 pixmaps/kll80.xpm create mode 100644 pixmaps/kll87.xpm create mode 100644 pixmaps/kll95.xpm create mode 100644 pixmaps/ndd108.xpm create mode 100644 pixmaps/ndd116.xpm create mode 100644 pixmaps/ndd129.xpm create mode 100644 pixmaps/ndd21.xpm create mode 100644 pixmaps/ndd25.xpm create mode 100644 pixmaps/ndd29.xpm create mode 100644 pixmaps/ndd33.xpm create mode 100644 pixmaps/ndd37.xpm create mode 100644 pixmaps/ndd40.xpm create mode 100644 pixmaps/ndd45.xpm create mode 100644 pixmaps/ndd49.xpm create mode 100644 pixmaps/ndd54.xpm create mode 100644 pixmaps/ndd58.xpm create mode 100644 pixmaps/ndd64.xpm create mode 100644 pixmaps/ndd72.xpm create mode 100644 pixmaps/ndd80.xpm create mode 100644 pixmaps/ndd87.xpm create mode 100644 pixmaps/ndd95.xpm create mode 100644 pixmaps/ndl108.xpm create mode 100644 pixmaps/ndl116.xpm create mode 100644 pixmaps/ndl129.xpm create mode 100644 pixmaps/ndl21.xpm create mode 100644 pixmaps/ndl25.xpm create mode 100644 pixmaps/ndl29.xpm create mode 100644 pixmaps/ndl33.xpm create mode 100644 pixmaps/ndl37.xpm create mode 100644 pixmaps/ndl40.xpm create mode 100644 pixmaps/ndl45.xpm create mode 100644 pixmaps/ndl49.xpm create mode 100644 pixmaps/ndl54.xpm create mode 100644 pixmaps/ndl58.xpm create mode 100644 pixmaps/ndl64.xpm create mode 100644 pixmaps/ndl72.xpm create mode 100644 pixmaps/ndl80.xpm create mode 100644 pixmaps/ndl87.xpm create mode 100644 pixmaps/ndl95.xpm create mode 100644 pixmaps/nld108.xpm create mode 100644 pixmaps/nld116.xpm create mode 100644 pixmaps/nld129.xpm create mode 100644 pixmaps/nld21.xpm create mode 100644 pixmaps/nld25.xpm create mode 100644 pixmaps/nld29.xpm create mode 100644 pixmaps/nld33.xpm create mode 100644 pixmaps/nld37.xpm create mode 100644 pixmaps/nld40.xpm create mode 100644 pixmaps/nld45.xpm create mode 100644 pixmaps/nld49.xpm create mode 100644 pixmaps/nld54.xpm create mode 100644 pixmaps/nld58.xpm create mode 100644 pixmaps/nld64.xpm create mode 100644 pixmaps/nld72.xpm create mode 100644 pixmaps/nld80.xpm create mode 100644 pixmaps/nld87.xpm create mode 100644 pixmaps/nld95.xpm create mode 100644 pixmaps/nll108.xpm create mode 100644 pixmaps/nll116.xpm create mode 100644 pixmaps/nll129.xpm create mode 100644 pixmaps/nll21.xpm create mode 100644 pixmaps/nll25.xpm create mode 100644 pixmaps/nll29.xpm create mode 100644 pixmaps/nll33.xpm create mode 100644 pixmaps/nll37.xpm create mode 100644 pixmaps/nll40.xpm create mode 100644 pixmaps/nll45.xpm create mode 100644 pixmaps/nll49.xpm create mode 100644 pixmaps/nll54.xpm create mode 100644 pixmaps/nll58.xpm create mode 100644 pixmaps/nll64.xpm create mode 100644 pixmaps/nll72.xpm create mode 100644 pixmaps/nll80.xpm create mode 100644 pixmaps/nll87.xpm create mode 100644 pixmaps/nll95.xpm create mode 100644 pixmaps/pdd108.xpm create mode 100644 pixmaps/pdd116.xpm create mode 100644 pixmaps/pdd129.xpm create mode 100644 pixmaps/pdd21.xpm create mode 100644 pixmaps/pdd25.xpm create mode 100644 pixmaps/pdd29.xpm create mode 100644 pixmaps/pdd33.xpm create mode 100644 pixmaps/pdd37.xpm create mode 100644 pixmaps/pdd40.xpm create mode 100644 pixmaps/pdd45.xpm create mode 100644 pixmaps/pdd49.xpm create mode 100644 pixmaps/pdd54.xpm create mode 100644 pixmaps/pdd58.xpm create mode 100644 pixmaps/pdd64.xpm create mode 100644 pixmaps/pdd72.xpm create mode 100644 pixmaps/pdd80.xpm create mode 100644 pixmaps/pdd87.xpm create mode 100644 pixmaps/pdd95.xpm create mode 100644 pixmaps/pdl108.xpm create mode 100644 pixmaps/pdl116.xpm create mode 100644 pixmaps/pdl129.xpm create mode 100644 pixmaps/pdl21.xpm create mode 100644 pixmaps/pdl25.xpm create mode 100644 pixmaps/pdl29.xpm create mode 100644 pixmaps/pdl33.xpm create mode 100644 pixmaps/pdl37.xpm create mode 100644 pixmaps/pdl40.xpm create mode 100644 pixmaps/pdl45.xpm create mode 100644 pixmaps/pdl49.xpm create mode 100644 pixmaps/pdl54.xpm create mode 100644 pixmaps/pdl58.xpm create mode 100644 pixmaps/pdl64.xpm create mode 100644 pixmaps/pdl72.xpm create mode 100644 pixmaps/pdl80.xpm create mode 100644 pixmaps/pdl87.xpm create mode 100644 pixmaps/pdl95.xpm create mode 100644 pixmaps/pixmaps.h create mode 100644 pixmaps/pld108.xpm create mode 100644 pixmaps/pld116.xpm create mode 100644 pixmaps/pld129.xpm create mode 100644 pixmaps/pld21.xpm create mode 100644 pixmaps/pld25.xpm create mode 100644 pixmaps/pld29.xpm create mode 100644 pixmaps/pld33.xpm create mode 100644 pixmaps/pld37.xpm create mode 100644 pixmaps/pld40.xpm create mode 100644 pixmaps/pld45.xpm create mode 100644 pixmaps/pld49.xpm create mode 100644 pixmaps/pld54.xpm create mode 100644 pixmaps/pld58.xpm create mode 100644 pixmaps/pld64.xpm create mode 100644 pixmaps/pld72.xpm create mode 100644 pixmaps/pld80.xpm create mode 100644 pixmaps/pld87.xpm create mode 100644 pixmaps/pld95.xpm create mode 100644 pixmaps/pll108.xpm create mode 100644 pixmaps/pll116.xpm create mode 100644 pixmaps/pll129.xpm create mode 100644 pixmaps/pll21.xpm create mode 100644 pixmaps/pll25.xpm create mode 100644 pixmaps/pll29.xpm create mode 100644 pixmaps/pll33.xpm create mode 100644 pixmaps/pll37.xpm create mode 100644 pixmaps/pll40.xpm create mode 100644 pixmaps/pll45.xpm create mode 100644 pixmaps/pll49.xpm create mode 100644 pixmaps/pll54.xpm create mode 100644 pixmaps/pll58.xpm create mode 100644 pixmaps/pll64.xpm create mode 100644 pixmaps/pll72.xpm create mode 100644 pixmaps/pll80.xpm create mode 100644 pixmaps/pll87.xpm create mode 100644 pixmaps/pll95.xpm create mode 100644 pixmaps/qdd108.xpm create mode 100644 pixmaps/qdd116.xpm create mode 100644 pixmaps/qdd129.xpm create mode 100644 pixmaps/qdd21.xpm create mode 100644 pixmaps/qdd25.xpm create mode 100644 pixmaps/qdd29.xpm create mode 100644 pixmaps/qdd33.xpm create mode 100644 pixmaps/qdd37.xpm create mode 100644 pixmaps/qdd40.xpm create mode 100644 pixmaps/qdd45.xpm create mode 100644 pixmaps/qdd49.xpm create mode 100644 pixmaps/qdd54.xpm create mode 100644 pixmaps/qdd58.xpm create mode 100644 pixmaps/qdd64.xpm create mode 100644 pixmaps/qdd72.xpm create mode 100644 pixmaps/qdd80.xpm create mode 100644 pixmaps/qdd87.xpm create mode 100644 pixmaps/qdd95.xpm create mode 100644 pixmaps/qdl108.xpm create mode 100644 pixmaps/qdl116.xpm create mode 100644 pixmaps/qdl129.xpm create mode 100644 pixmaps/qdl21.xpm create mode 100644 pixmaps/qdl25.xpm create mode 100644 pixmaps/qdl29.xpm create mode 100644 pixmaps/qdl33.xpm create mode 100644 pixmaps/qdl37.xpm create mode 100644 pixmaps/qdl40.xpm create mode 100644 pixmaps/qdl45.xpm create mode 100644 pixmaps/qdl49.xpm create mode 100644 pixmaps/qdl54.xpm create mode 100644 pixmaps/qdl58.xpm create mode 100644 pixmaps/qdl64.xpm create mode 100644 pixmaps/qdl72.xpm create mode 100644 pixmaps/qdl80.xpm create mode 100644 pixmaps/qdl87.xpm create mode 100644 pixmaps/qdl95.xpm create mode 100644 pixmaps/qld108.xpm create mode 100644 pixmaps/qld116.xpm create mode 100644 pixmaps/qld129.xpm create mode 100644 pixmaps/qld21.xpm create mode 100644 pixmaps/qld25.xpm create mode 100644 pixmaps/qld29.xpm create mode 100644 pixmaps/qld33.xpm create mode 100644 pixmaps/qld37.xpm create mode 100644 pixmaps/qld40.xpm create mode 100644 pixmaps/qld45.xpm create mode 100644 pixmaps/qld49.xpm create mode 100644 pixmaps/qld54.xpm create mode 100644 pixmaps/qld58.xpm create mode 100644 pixmaps/qld64.xpm create mode 100644 pixmaps/qld72.xpm create mode 100644 pixmaps/qld80.xpm create mode 100644 pixmaps/qld87.xpm create mode 100644 pixmaps/qld95.xpm create mode 100644 pixmaps/qll108.xpm create mode 100644 pixmaps/qll116.xpm create mode 100644 pixmaps/qll129.xpm create mode 100644 pixmaps/qll21.xpm create mode 100644 pixmaps/qll25.xpm create mode 100644 pixmaps/qll29.xpm create mode 100644 pixmaps/qll33.xpm create mode 100644 pixmaps/qll37.xpm create mode 100644 pixmaps/qll40.xpm create mode 100644 pixmaps/qll45.xpm create mode 100644 pixmaps/qll49.xpm create mode 100644 pixmaps/qll54.xpm create mode 100644 pixmaps/qll58.xpm create mode 100644 pixmaps/qll64.xpm create mode 100644 pixmaps/qll72.xpm create mode 100644 pixmaps/qll80.xpm create mode 100644 pixmaps/qll87.xpm create mode 100644 pixmaps/qll95.xpm create mode 100644 pixmaps/rdd108.xpm create mode 100644 pixmaps/rdd116.xpm create mode 100644 pixmaps/rdd129.xpm create mode 100644 pixmaps/rdd21.xpm create mode 100644 pixmaps/rdd25.xpm create mode 100644 pixmaps/rdd29.xpm create mode 100644 pixmaps/rdd33.xpm create mode 100644 pixmaps/rdd37.xpm create mode 100644 pixmaps/rdd40.xpm create mode 100644 pixmaps/rdd45.xpm create mode 100644 pixmaps/rdd49.xpm create mode 100644 pixmaps/rdd54.xpm create mode 100644 pixmaps/rdd58.xpm create mode 100644 pixmaps/rdd64.xpm create mode 100644 pixmaps/rdd72.xpm create mode 100644 pixmaps/rdd80.xpm create mode 100644 pixmaps/rdd87.xpm create mode 100644 pixmaps/rdd95.xpm create mode 100644 pixmaps/rdl108.xpm create mode 100644 pixmaps/rdl116.xpm create mode 100644 pixmaps/rdl129.xpm create mode 100644 pixmaps/rdl21.xpm create mode 100644 pixmaps/rdl25.xpm create mode 100644 pixmaps/rdl29.xpm create mode 100644 pixmaps/rdl33.xpm create mode 100644 pixmaps/rdl37.xpm create mode 100644 pixmaps/rdl40.xpm create mode 100644 pixmaps/rdl45.xpm create mode 100644 pixmaps/rdl49.xpm create mode 100644 pixmaps/rdl54.xpm create mode 100644 pixmaps/rdl58.xpm create mode 100644 pixmaps/rdl64.xpm create mode 100644 pixmaps/rdl72.xpm create mode 100644 pixmaps/rdl80.xpm create mode 100644 pixmaps/rdl87.xpm create mode 100644 pixmaps/rdl95.xpm create mode 100644 pixmaps/rld108.xpm create mode 100644 pixmaps/rld116.xpm create mode 100644 pixmaps/rld129.xpm create mode 100644 pixmaps/rld21.xpm create mode 100644 pixmaps/rld25.xpm create mode 100644 pixmaps/rld29.xpm create mode 100644 pixmaps/rld33.xpm create mode 100644 pixmaps/rld37.xpm create mode 100644 pixmaps/rld40.xpm create mode 100644 pixmaps/rld45.xpm create mode 100644 pixmaps/rld49.xpm create mode 100644 pixmaps/rld54.xpm create mode 100644 pixmaps/rld58.xpm create mode 100644 pixmaps/rld64.xpm create mode 100644 pixmaps/rld72.xpm create mode 100644 pixmaps/rld80.xpm create mode 100644 pixmaps/rld87.xpm create mode 100644 pixmaps/rld95.xpm create mode 100644 pixmaps/rll108.xpm create mode 100644 pixmaps/rll116.xpm create mode 100644 pixmaps/rll129.xpm create mode 100644 pixmaps/rll21.xpm create mode 100644 pixmaps/rll25.xpm create mode 100644 pixmaps/rll29.xpm create mode 100644 pixmaps/rll33.xpm create mode 100644 pixmaps/rll37.xpm create mode 100644 pixmaps/rll40.xpm create mode 100644 pixmaps/rll45.xpm create mode 100644 pixmaps/rll49.xpm create mode 100644 pixmaps/rll54.xpm create mode 100644 pixmaps/rll58.xpm create mode 100644 pixmaps/rll64.xpm create mode 100644 pixmaps/rll72.xpm create mode 100644 pixmaps/rll80.xpm create mode 100644 pixmaps/rll87.xpm create mode 100644 pixmaps/rll95.xpm create mode 100755 pxboard create mode 100644 sounds/alarm.wav create mode 100644 sounds/challenge.wav create mode 100644 sounds/channel.wav create mode 100644 sounds/channel1.wav create mode 100644 sounds/ching.wav create mode 100644 sounds/click.wav create mode 100644 sounds/cymbal.wav create mode 100644 sounds/ding1.wav create mode 100644 sounds/draw.wav create mode 100644 sounds/drip.wav create mode 100644 sounds/gong.wav create mode 100644 sounds/honkhonk.wav create mode 100644 sounds/kibitz.wav create mode 100644 sounds/laser.wav create mode 100644 sounds/lose.wav create mode 100644 sounds/move.wav create mode 100644 sounds/penalty.wav create mode 100644 sounds/phone.wav create mode 100644 sounds/pop.wav create mode 100644 sounds/pop2.wav create mode 100644 sounds/request.wav create mode 100644 sounds/seek.wav create mode 100644 sounds/shout.wav create mode 100644 sounds/slap.wav create mode 100644 sounds/squeak.wav create mode 100644 sounds/sshout.wav create mode 100644 sounds/swish.wav create mode 100644 sounds/tell.wav create mode 100644 sounds/thud.wav create mode 100644 sounds/unfinished.wav create mode 100644 sounds/whipcrak.wav create mode 100644 sounds/win.wav create mode 100644 winboard/READ_ME.txt create mode 100644 winboard/bcc32.cfg create mode 100644 winboard/bitmaps/README.bitmaps create mode 100644 winboard/bitmaps/b108o.bmp create mode 100644 winboard/bitmaps/b108s.bmp create mode 100644 winboard/bitmaps/b108w.bmp create mode 100644 winboard/bitmaps/b116o.bmp create mode 100644 winboard/bitmaps/b116s.bmp create mode 100644 winboard/bitmaps/b116w.bmp create mode 100644 winboard/bitmaps/b129o.bmp create mode 100644 winboard/bitmaps/b129s.bmp create mode 100644 winboard/bitmaps/b129w.bmp create mode 100644 winboard/bitmaps/b21o.bmp create mode 100644 winboard/bitmaps/b21s.bmp create mode 100644 winboard/bitmaps/b21w.bmp create mode 100644 winboard/bitmaps/b25o.bmp create mode 100644 winboard/bitmaps/b25s.bmp create mode 100644 winboard/bitmaps/b25w.bmp create mode 100644 winboard/bitmaps/b29o.bmp create mode 100644 winboard/bitmaps/b29s.bmp create mode 100644 winboard/bitmaps/b29w.bmp create mode 100644 winboard/bitmaps/b33o.bmp create mode 100644 winboard/bitmaps/b33s.bmp create mode 100644 winboard/bitmaps/b33w.bmp create mode 100644 winboard/bitmaps/b37o.bmp create mode 100644 winboard/bitmaps/b37s.bmp create mode 100644 winboard/bitmaps/b37w.bmp create mode 100644 winboard/bitmaps/b40o.bmp create mode 100644 winboard/bitmaps/b40s.bmp create mode 100644 winboard/bitmaps/b40w.bmp create mode 100644 winboard/bitmaps/b45o.bmp create mode 100644 winboard/bitmaps/b45s.bmp create mode 100644 winboard/bitmaps/b45w.bmp create mode 100644 winboard/bitmaps/b49o.bmp create mode 100644 winboard/bitmaps/b49s.bmp create mode 100644 winboard/bitmaps/b49w.bmp create mode 100644 winboard/bitmaps/b54o.bmp create mode 100644 winboard/bitmaps/b54s.bmp create mode 100644 winboard/bitmaps/b54w.bmp create mode 100644 winboard/bitmaps/b58o.bmp create mode 100644 winboard/bitmaps/b58s.bmp create mode 100644 winboard/bitmaps/b58w.bmp create mode 100644 winboard/bitmaps/b64o.bmp create mode 100644 winboard/bitmaps/b64s.bmp create mode 100644 winboard/bitmaps/b64w.bmp create mode 100644 winboard/bitmaps/b72o.bmp create mode 100644 winboard/bitmaps/b72s.bmp create mode 100644 winboard/bitmaps/b72w.bmp create mode 100644 winboard/bitmaps/b80o.bmp create mode 100644 winboard/bitmaps/b80s.bmp create mode 100644 winboard/bitmaps/b80w.bmp create mode 100644 winboard/bitmaps/b87o.bmp create mode 100644 winboard/bitmaps/b87s.bmp create mode 100644 winboard/bitmaps/b87w.bmp create mode 100644 winboard/bitmaps/b95o.bmp create mode 100644 winboard/bitmaps/b95s.bmp create mode 100644 winboard/bitmaps/b95w.bmp create mode 100644 winboard/bitmaps/board.ico create mode 100644 winboard/bitmaps/galactic.bmp create mode 100644 winboard/bitmaps/icon_b.bmp create mode 100644 winboard/bitmaps/icon_b.ico create mode 100644 winboard/bitmaps/icon_o.ico create mode 100644 winboard/bitmaps/icon_ob.ico create mode 100644 winboard/bitmaps/icon_ow.ico create mode 100644 winboard/bitmaps/icon_w.bmp create mode 100644 winboard/bitmaps/icon_w.ico create mode 100644 winboard/bitmaps/icon_whi.ico create mode 100644 winboard/bitmaps/k108o.bmp create mode 100644 winboard/bitmaps/k108s.bmp create mode 100644 winboard/bitmaps/k108w.bmp create mode 100644 winboard/bitmaps/k116o.bmp create mode 100644 winboard/bitmaps/k116s.bmp create mode 100644 winboard/bitmaps/k116w.bmp create mode 100644 winboard/bitmaps/k129o.bmp create mode 100644 winboard/bitmaps/k129s.bmp create mode 100644 winboard/bitmaps/k129w.bmp create mode 100644 winboard/bitmaps/k21o.bmp create mode 100644 winboard/bitmaps/k21s.bmp create mode 100644 winboard/bitmaps/k21w.bmp create mode 100644 winboard/bitmaps/k25o.bmp create mode 100644 winboard/bitmaps/k25s.bmp create mode 100644 winboard/bitmaps/k25w.bmp create mode 100644 winboard/bitmaps/k29o.bmp create mode 100644 winboard/bitmaps/k29s.bmp create mode 100644 winboard/bitmaps/k29w.bmp create mode 100644 winboard/bitmaps/k33o.bmp create mode 100644 winboard/bitmaps/k33s.bmp create mode 100644 winboard/bitmaps/k33w.bmp create mode 100644 winboard/bitmaps/k37o.bmp create mode 100644 winboard/bitmaps/k37s.bmp create mode 100644 winboard/bitmaps/k37w.bmp create mode 100644 winboard/bitmaps/k40o.bmp create mode 100644 winboard/bitmaps/k40s.bmp create mode 100644 winboard/bitmaps/k40w.bmp create mode 100644 winboard/bitmaps/k45o.bmp create mode 100644 winboard/bitmaps/k45s.bmp create mode 100644 winboard/bitmaps/k45w.bmp create mode 100644 winboard/bitmaps/k49o.bmp create mode 100644 winboard/bitmaps/k49s.bmp create mode 100644 winboard/bitmaps/k49w.bmp create mode 100644 winboard/bitmaps/k54o.bmp create mode 100644 winboard/bitmaps/k54s.bmp create mode 100644 winboard/bitmaps/k54w.bmp create mode 100644 winboard/bitmaps/k58o.bmp create mode 100644 winboard/bitmaps/k58s.bmp create mode 100644 winboard/bitmaps/k58w.bmp create mode 100644 winboard/bitmaps/k64o.bmp create mode 100644 winboard/bitmaps/k64s.bmp create mode 100644 winboard/bitmaps/k64w.bmp create mode 100644 winboard/bitmaps/k72o.bmp create mode 100644 winboard/bitmaps/k72s.bmp create mode 100644 winboard/bitmaps/k72w.bmp create mode 100644 winboard/bitmaps/k80o.bmp create mode 100644 winboard/bitmaps/k80s.bmp create mode 100644 winboard/bitmaps/k80w.bmp create mode 100644 winboard/bitmaps/k87o.bmp create mode 100644 winboard/bitmaps/k87s.bmp create mode 100644 winboard/bitmaps/k87w.bmp create mode 100644 winboard/bitmaps/k95o.bmp create mode 100644 winboard/bitmaps/k95s.bmp create mode 100644 winboard/bitmaps/k95w.bmp create mode 100644 winboard/bitmaps/n108o.bmp create mode 100644 winboard/bitmaps/n108s.bmp create mode 100644 winboard/bitmaps/n108w.bmp create mode 100644 winboard/bitmaps/n116o.bmp create mode 100644 winboard/bitmaps/n116s.bmp create mode 100644 winboard/bitmaps/n116w.bmp create mode 100644 winboard/bitmaps/n129o.bmp create mode 100644 winboard/bitmaps/n129s.bmp create mode 100644 winboard/bitmaps/n129w.bmp create mode 100644 winboard/bitmaps/n21o.bmp create mode 100644 winboard/bitmaps/n21s.bmp create mode 100644 winboard/bitmaps/n21w.bmp create mode 100644 winboard/bitmaps/n25o.bmp create mode 100644 winboard/bitmaps/n25s.bmp create mode 100644 winboard/bitmaps/n25w.bmp create mode 100644 winboard/bitmaps/n29o.bmp create mode 100644 winboard/bitmaps/n29s.bmp create mode 100644 winboard/bitmaps/n29w.bmp create mode 100644 winboard/bitmaps/n33o.bmp create mode 100644 winboard/bitmaps/n33s.bmp create mode 100644 winboard/bitmaps/n33w.bmp create mode 100644 winboard/bitmaps/n37o.bmp create mode 100644 winboard/bitmaps/n37s.bmp create mode 100644 winboard/bitmaps/n37w.bmp create mode 100644 winboard/bitmaps/n40o.bmp create mode 100644 winboard/bitmaps/n40s.bmp create mode 100644 winboard/bitmaps/n40w.bmp create mode 100644 winboard/bitmaps/n45o.bmp create mode 100644 winboard/bitmaps/n45s.bmp create mode 100644 winboard/bitmaps/n45w.bmp create mode 100644 winboard/bitmaps/n49o.bmp create mode 100644 winboard/bitmaps/n49s.bmp create mode 100644 winboard/bitmaps/n49w.bmp create mode 100644 winboard/bitmaps/n54o.bmp create mode 100644 winboard/bitmaps/n54s.bmp create mode 100644 winboard/bitmaps/n54w.bmp create mode 100644 winboard/bitmaps/n58o.bmp create mode 100644 winboard/bitmaps/n58s.bmp create mode 100644 winboard/bitmaps/n58w.bmp create mode 100644 winboard/bitmaps/n64o.bmp create mode 100644 winboard/bitmaps/n64s.bmp create mode 100644 winboard/bitmaps/n64w.bmp create mode 100644 winboard/bitmaps/n72o.bmp create mode 100644 winboard/bitmaps/n72s.bmp create mode 100644 winboard/bitmaps/n72w.bmp create mode 100644 winboard/bitmaps/n80o.bmp create mode 100644 winboard/bitmaps/n80s.bmp create mode 100644 winboard/bitmaps/n80w.bmp create mode 100644 winboard/bitmaps/n87o.bmp create mode 100644 winboard/bitmaps/n87s.bmp create mode 100644 winboard/bitmaps/n87w.bmp create mode 100644 winboard/bitmaps/n95o.bmp create mode 100644 winboard/bitmaps/n95s.bmp create mode 100644 winboard/bitmaps/n95w.bmp create mode 100644 winboard/bitmaps/p108o.bmp create mode 100644 winboard/bitmaps/p108s.bmp create mode 100644 winboard/bitmaps/p108w.bmp create mode 100644 winboard/bitmaps/p116o.bmp create mode 100644 winboard/bitmaps/p116s.bmp create mode 100644 winboard/bitmaps/p116w.bmp create mode 100644 winboard/bitmaps/p129o.bmp create mode 100644 winboard/bitmaps/p129s.bmp create mode 100644 winboard/bitmaps/p129w.bmp create mode 100644 winboard/bitmaps/p21o.bmp create mode 100644 winboard/bitmaps/p21s.bmp create mode 100644 winboard/bitmaps/p21w.bmp create mode 100644 winboard/bitmaps/p25o.bmp create mode 100644 winboard/bitmaps/p25s.bmp create mode 100644 winboard/bitmaps/p25w.bmp create mode 100644 winboard/bitmaps/p29o.bmp create mode 100644 winboard/bitmaps/p29s.bmp create mode 100644 winboard/bitmaps/p29w.bmp create mode 100644 winboard/bitmaps/p33o.bmp create mode 100644 winboard/bitmaps/p33s.bmp create mode 100644 winboard/bitmaps/p33w.bmp create mode 100644 winboard/bitmaps/p37o.bmp create mode 100644 winboard/bitmaps/p37s.bmp create mode 100644 winboard/bitmaps/p37w.bmp create mode 100644 winboard/bitmaps/p40o.bmp create mode 100644 winboard/bitmaps/p40s.bmp create mode 100644 winboard/bitmaps/p40w.bmp create mode 100644 winboard/bitmaps/p45o.bmp create mode 100644 winboard/bitmaps/p45s.bmp create mode 100644 winboard/bitmaps/p45w.bmp create mode 100644 winboard/bitmaps/p49o.bmp create mode 100644 winboard/bitmaps/p49s.bmp create mode 100644 winboard/bitmaps/p49w.bmp create mode 100644 winboard/bitmaps/p54o.bmp create mode 100644 winboard/bitmaps/p54s.bmp create mode 100644 winboard/bitmaps/p54w.bmp create mode 100644 winboard/bitmaps/p58o.bmp create mode 100644 winboard/bitmaps/p58s.bmp create mode 100644 winboard/bitmaps/p58w.bmp create mode 100644 winboard/bitmaps/p64o.bmp create mode 100644 winboard/bitmaps/p64s.bmp create mode 100644 winboard/bitmaps/p64w.bmp create mode 100644 winboard/bitmaps/p72o.bmp create mode 100644 winboard/bitmaps/p72s.bmp create mode 100644 winboard/bitmaps/p72w.bmp create mode 100644 winboard/bitmaps/p80o.bmp create mode 100644 winboard/bitmaps/p80s.bmp create mode 100644 winboard/bitmaps/p80w.bmp create mode 100644 winboard/bitmaps/p87o.bmp create mode 100644 winboard/bitmaps/p87s.bmp create mode 100644 winboard/bitmaps/p87w.bmp create mode 100644 winboard/bitmaps/p95o.bmp create mode 100644 winboard/bitmaps/p95s.bmp create mode 100644 winboard/bitmaps/p95w.bmp create mode 100644 winboard/bitmaps/q108o.bmp create mode 100644 winboard/bitmaps/q108s.bmp create mode 100644 winboard/bitmaps/q108w.bmp create mode 100644 winboard/bitmaps/q116o.bmp create mode 100644 winboard/bitmaps/q116s.bmp create mode 100644 winboard/bitmaps/q116w.bmp create mode 100644 winboard/bitmaps/q129o.bmp create mode 100644 winboard/bitmaps/q129s.bmp create mode 100644 winboard/bitmaps/q129w.bmp create mode 100644 winboard/bitmaps/q21o.bmp create mode 100644 winboard/bitmaps/q21s.bmp create mode 100644 winboard/bitmaps/q21w.bmp create mode 100644 winboard/bitmaps/q25o.bmp create mode 100644 winboard/bitmaps/q25s.bmp create mode 100644 winboard/bitmaps/q25w.bmp create mode 100644 winboard/bitmaps/q29o.bmp create mode 100644 winboard/bitmaps/q29s.bmp create mode 100644 winboard/bitmaps/q29w.bmp create mode 100644 winboard/bitmaps/q33o.bmp create mode 100644 winboard/bitmaps/q33s.bmp create mode 100644 winboard/bitmaps/q33w.bmp create mode 100644 winboard/bitmaps/q37o.bmp create mode 100644 winboard/bitmaps/q37s.bmp create mode 100644 winboard/bitmaps/q37w.bmp create mode 100644 winboard/bitmaps/q40o.bmp create mode 100644 winboard/bitmaps/q40s.bmp create mode 100644 winboard/bitmaps/q40w.bmp create mode 100644 winboard/bitmaps/q45o.bmp create mode 100644 winboard/bitmaps/q45s.bmp create mode 100644 winboard/bitmaps/q45w.bmp create mode 100644 winboard/bitmaps/q49o.bmp create mode 100644 winboard/bitmaps/q49s.bmp create mode 100644 winboard/bitmaps/q49w.bmp create mode 100644 winboard/bitmaps/q54o.bmp create mode 100644 winboard/bitmaps/q54s.bmp create mode 100644 winboard/bitmaps/q54w.bmp create mode 100644 winboard/bitmaps/q58o.bmp create mode 100644 winboard/bitmaps/q58s.bmp create mode 100644 winboard/bitmaps/q58w.bmp create mode 100644 winboard/bitmaps/q64o.bmp create mode 100644 winboard/bitmaps/q64s.bmp create mode 100644 winboard/bitmaps/q64w.bmp create mode 100644 winboard/bitmaps/q72o.bmp create mode 100644 winboard/bitmaps/q72s.bmp create mode 100644 winboard/bitmaps/q72w.bmp create mode 100644 winboard/bitmaps/q80o.bmp create mode 100644 winboard/bitmaps/q80s.bmp create mode 100644 winboard/bitmaps/q80w.bmp create mode 100644 winboard/bitmaps/q87o.bmp create mode 100644 winboard/bitmaps/q87s.bmp create mode 100644 winboard/bitmaps/q87w.bmp create mode 100644 winboard/bitmaps/q95o.bmp create mode 100644 winboard/bitmaps/q95s.bmp create mode 100644 winboard/bitmaps/q95w.bmp create mode 100644 winboard/bitmaps/r108o.bmp create mode 100644 winboard/bitmaps/r108s.bmp create mode 100644 winboard/bitmaps/r108w.bmp create mode 100644 winboard/bitmaps/r116o.bmp create mode 100644 winboard/bitmaps/r116s.bmp create mode 100644 winboard/bitmaps/r116w.bmp create mode 100644 winboard/bitmaps/r129o.bmp create mode 100644 winboard/bitmaps/r129s.bmp create mode 100644 winboard/bitmaps/r129w.bmp create mode 100644 winboard/bitmaps/r21o.bmp create mode 100644 winboard/bitmaps/r21s.bmp create mode 100644 winboard/bitmaps/r21w.bmp create mode 100644 winboard/bitmaps/r25o.bmp create mode 100644 winboard/bitmaps/r25s.bmp create mode 100644 winboard/bitmaps/r25w.bmp create mode 100644 winboard/bitmaps/r29o.bmp create mode 100644 winboard/bitmaps/r29s.bmp create mode 100644 winboard/bitmaps/r29w.bmp create mode 100644 winboard/bitmaps/r33o.bmp create mode 100644 winboard/bitmaps/r33s.bmp create mode 100644 winboard/bitmaps/r33w.bmp create mode 100644 winboard/bitmaps/r37o.bmp create mode 100644 winboard/bitmaps/r37s.bmp create mode 100644 winboard/bitmaps/r37w.bmp create mode 100644 winboard/bitmaps/r40o.bmp create mode 100644 winboard/bitmaps/r40s.bmp create mode 100644 winboard/bitmaps/r40w.bmp create mode 100644 winboard/bitmaps/r45o.bmp create mode 100644 winboard/bitmaps/r45s.bmp create mode 100644 winboard/bitmaps/r45w.bmp create mode 100644 winboard/bitmaps/r49o.bmp create mode 100644 winboard/bitmaps/r49s.bmp create mode 100644 winboard/bitmaps/r49w.bmp create mode 100644 winboard/bitmaps/r54o.bmp create mode 100644 winboard/bitmaps/r54s.bmp create mode 100644 winboard/bitmaps/r54w.bmp create mode 100644 winboard/bitmaps/r58o.bmp create mode 100644 winboard/bitmaps/r58s.bmp create mode 100644 winboard/bitmaps/r58w.bmp create mode 100644 winboard/bitmaps/r64o.bmp create mode 100644 winboard/bitmaps/r64s.bmp create mode 100644 winboard/bitmaps/r64w.bmp create mode 100644 winboard/bitmaps/r72o.bmp create mode 100644 winboard/bitmaps/r72s.bmp create mode 100644 winboard/bitmaps/r72w.bmp create mode 100644 winboard/bitmaps/r80o.bmp create mode 100644 winboard/bitmaps/r80s.bmp create mode 100644 winboard/bitmaps/r80w.bmp create mode 100644 winboard/bitmaps/r87o.bmp create mode 100644 winboard/bitmaps/r87s.bmp create mode 100644 winboard/bitmaps/r87w.bmp create mode 100644 winboard/bitmaps/r95o.bmp create mode 100644 winboard/bitmaps/r95s.bmp create mode 100644 winboard/bitmaps/r95w.bmp create mode 100644 winboard/bitmaps/tim.bmp create mode 100644 winboard/borland.mak create mode 100644 winboard/config.h create mode 100644 winboard/cygwin.mak create mode 100644 winboard/defaults.h create mode 100644 winboard/msvc.mak create mode 100644 winboard/resource.h create mode 100644 winboard/wclipbrd.c create mode 100644 winboard/wclipbrd.h create mode 100644 winboard/wedittags.c create mode 100644 winboard/wedittags.h create mode 100644 winboard/wgamelist.c create mode 100644 winboard/wgamelist.h create mode 100644 winboard/winboard.c create mode 100644 winboard/winboard.dsp create mode 100644 winboard/winboard.dsw create mode 100644 winboard/winboard.h create mode 100644 winboard/winboard.hpj create mode 100644 winboard/winboard.rc create mode 100644 winboard/winboard.rtf create mode 100644 winboard/woptions.c create mode 100644 winboard/woptions.h create mode 100644 winboard/wsockerr.c create mode 100644 winboard/wsockerr.h create mode 100644 xboard.c create mode 100644 xboard.h create mode 100644 xboard.man create mode 100644 xboard.texi create mode 100644 xboard.texinfo.in create mode 100644 xedittags.c create mode 100644 xedittags.h create mode 100644 xgamelist.c create mode 100644 xgamelist.h create mode 100644 xhistory.c create mode 100644 xhistory.h create mode 100644 zic2xpm.c create mode 100644 zic2xpm.man create mode 100644 zippy.README create mode 100644 zippy.c create mode 100644 zippy.h create mode 100644 zippy.lines diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..a3f6b12 --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYRIGHT b/COPYRIGHT new file mode 100644 index 0000000..accde17 --- /dev/null +++ b/COPYRIGHT @@ -0,0 +1,51 @@ +XBoard -- a graphical chessboard for X + +Original authors: Dan Sears and Chris Sears +Enhancements (Version 2.0 and later): Tim Mann + +Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. +Enhancements Copyright 1992-98 Free Software Foundation, Inc. + +XBoard's alternative piece bitmaps (bitmaps.xchess) are derived from the +bitmaps in the XChess program, which was written and is copyrighted by +Wayne Christopher. + +The following terms apply to Digital Equipment Corporation's copyright +interest in XBoard: +------------------------------------------------------------------------ +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. +------------------------------------------------------------------------ + +The following terms apply to the enhanced version of XBoard distributed +by the Free Software Foundation: +------------------------------------------------------------------------ +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +------------------------------------------------------------------------ diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..1de035d --- /dev/null +++ b/ChangeLog @@ -0,0 +1,3183 @@ +xboard/WinBoard 4.2.6 -- Fri Feb 1 22:26:31 PST 2002 +Tim Mann + +Another small bugfix release. + +* Put in a small change from Alexander Mai to allow xboard to build in +an OS/2 EMX environment. + +* Fix WinBoard-only bug where editing a PGN file with comments would +insert more \r characters before the \n after every Load/Save cycle. +For some unknown reason we were reading the files in "rb" mode but +writing them in "a" mode, so we kept the \r characters on reading and +added an extra one on writing. Fix: change the "rb" to "r". Thanks +to Joel (last name not given) for the bug report. + +* Put the arguments to rsh/remsh in the right order for better +portability. Thanks to Michael Kalisz. + +* FreezeUI is now implemented in WinBoard; it was previously only +implemented in xboard. This function prevents the user from entering +moves or other commands while we are waiting for an engine to +initialize itself. Implementing it fixes a bug where the user could +start a game (etc.) during feature negotiation. One of the symptoms +of this bug was that we could send "new" one or move moves *after* the +first game started! + +* Fixed some handle leaks (WinBoard only), including a nasty one that +leaked one handle per command sent to ICS. Thanks to several folks +who helped characterize the bug and tried to look for leaks. + +* We now install and look for the info file in ${prefix}/share/info +instead of ${prefix}/info. The latter is still the default in +autoconf, but the former is currently used in Red Hat Linux and +probably elsewhere. + +xboard/WinBoard 4.2.5 -- Sat Dec 15 11:42:51 PST 2001 +Tim Mann + +* Changed the bundled GNU Chess 5.02 in the WinBoard package to +include a much smaller book and to use much less hash table space by +default (8 MB transposition table, 0.5 MB pawn evaluation table). The +large book included with 4.2.4 made the WinBoard download too big for +some people, and the default hash tables were larger than the +available physical memory on some people's computers. I built the +small book by running Crafty's "small.zip" book line collection +through a Perl script that makes it look enough like real PGN games +that the GNU Chess book builder will accept it. The script and some +minor patches to GNU Chess 5 are available in the WinBoard source +distribution and at http://www.tim-mann.org/gnuchess.html. + +* Fixed a bug in the code that deals with engines that complain that +"time" and "otim" are illegal moves. This was a new bug in 4.2.4. + +* Revamped the implementation of ToStart in analysis mode. Formerly +there was some ill-conceived code that would try to get back to the +start of the game by doing a "new" command (and all the followup +commands that requires) while remaining in analysis mode. This is +problematic for engine authors to support, though it works with +Crafty. This code was trying to solve the problem of ToStart being +slow because the engine would try to start an analysis after every +"undo" command all the way back to the start. But ToEnd already had a +much better solution to this problem, and now ToStart does the same +thing: we exit from analysis mode and enter force mode instead, +make/unmake moves to get to the end/start of the game, and then +reenter analysis mode. + +* Formerly, Zippy could try to start playing a game before the engine +was initialized; that is, during the initial timeout for protover 1 +engines, or before "feature done=1" for protover 2 engines. We now +wait until the engine is initialized before connecting to ICS, which +fixes this in the common case. If you turn off engine reuse for +multiple games (that is, if you give the -xreuse option), there could +still be problems; see item 503 in the ToDo file. Thanks to Dieter +Buerssner for the bug report. + +* Bugfix: All WinBoard versions since the merge with WinBoard Plus +(but not xboard) have had a bug in changing the PeriodicUpdates, +PonderNextMove, and ShowThinking options from the menu. The bug +mostly just caused changing these options during a game to not take +effect until after the next reset. For TwoMachines games, though, +changing PonderNextMove just before the game would take effect +immediately for the second engine but not until the next game for the +first engine. Thanks to Koundinya Veluri for the bug report. + +* Bugfix: In 4.2.4, we sometimes got confused when trying to leave and +reenter analyze mode. One symptom was that Analyze File did not work. +Thanks to Igor Syry for the bug report. + +xboard/WinBoard 4.2.4 -- Sun Dec 9 14:56:30 PST 2001 +Tim Mann + +* WinBoard now includes GNU Chess 5.02 in place of GNU Chess 5.00. + +* WinBoard's PasteGameFromClipboard will now handle a paste with +multiple games in it, popping up the game list dialog. xboard +already did this. Suggested by Robert Gerstman. + +* We now use the "clearboard" command on ICC where appropriate. + +* Bugfix: don't generate a bogus "variant normal" command to an engine +for the loadable ICC wild types that we internally flag as +VariantLoadable. Also clarified the message that Zippy sends when +declining such wild games -- it can't deal with the possibility of +loading an arbitrary position into the game. Thanks to Dieter +Buerssner for reporting the problem. It would be nice to be able to +actually play these wild types some day; presumably there would have +to be an option to either send "loadgame" with a specified position, +or to deal with an opponent sending it. + +* If we get a holdings message from ICS when we thought we were +playing normal chess, we now try asking for a move list so that we can +find out from the header what's really happening. Formerly we guessed +bughouse in this case. Response to a comment from Gian-Carlo +Pascutto. + +* Fixed two longstanding bugs in the clock code. These affected only +play between a user and a local engine, or between two local engines, +not ICS play. (1) The last fractional second used by a player before +moving and virtually pushing his clock was being charged to his +opponent instead of to him. (2) The time and otim commands were being +sent to an engine before the (buggy) fractional second update was +done. The second bug was pretty harmless in itself, but the first one +was serious. Many thanks to Peter Rosendahl for carefully diagnosing +and reporting these bugs! + +* Changed WinBoard timestamp key. Nothing is changed other than the +key and a recompilation. ICC may phase out the old key soon; if they +do, you'll need to use the timestamp.exe from WinBoard 4.2.4 or later +to connect to chessclub.com. + +* Fixed an xboard-only bug where most dialogs would not take keyboard +input unless the mouse was actually over the dialog, even if the +dialog window had focus. Thanks to Jason Varsoke for the bug report. + +* Bugfix; Remember to send time and otim commands to engine before +sending playother. Thanks to Bob Hyatt for the bug report. Also +fixed a bug where time and otim were sometimes sent even with feature +time=0. + +* Added small patches from Wilkin Ng that are meant to fix a crash in +CopyGameToClipboard and a "can't unlock clipboard memory" error in +PasteTextFromClipboard, under Windows 2000. + +* Changed cygwin.mak to not use -mno-cygwin. In other words, it now +uses cygwin1.dll instead of the mingw libraries. This works around +bugs in fileno() and stat() that I encountered in mingw. (fileno +seems to always return 0. stat fails because the library routine uses +a different definition of struct stat than the header files provide.) +Thanks to Robert Gerstman for reporting the symptoms these bugs caused +when WinBoard was compiled with Cygwin. + +* Added -showButtonBar option. This lets you delete the << < P > >> +buttons and thus widen the message widget a bit. + +* Added code to address a very obscure bug. If an engine dies and +needs to be restarted while in one of the analyze modes, it was not +getting put back into analyze mode. This bug should not really ever +have gotten tickled unless reuse was turned off and the engine sends +game end commands (such as 1-0) when a game ends by rule while in +analyze mode. The next version of the protocol spec will say that +engines should not do that, but version 2 and earlier didn't address +the issue. + +* We now use the FICS "iset ms 1" feature to get times in ms instead +of seconds. Thanks to DAV for email telling me about this feature. + +* Changed clock display to show tenths of seconds for 9.9 seconds and +less, instead of 0.9 seconds and less as before. + +* It has been discovered that Zippy can play simuls on ICC (but not on +FICS). If you arrange for Zippy to send the ICC command "simulize" in +the -zippyGameStart string, it will accept additional games while +playing. Zippy will use the same engine for every game, so whenever +it switches opponents, the engine's state will be reset with the "new" +command. This will of course weaken its play, so don't enable simuls +if you want your engine to have the highest possible rating. Zippy +was never designed to work with simuls; it just works by accident, and +it hasn't been tested much. So please report any bugs you notice, but +don't expect them to be fixed rapidly. Thanks to Paul McGuire for +noticing that this works. + +* Bugfix: Suppress the direct command to engine popup if there is no +engine. In WinBoard this case used to cause a crash. Thanks to +"Dargon" for the bug report. + +* Bugfix: formerly we did part of the engine initialization for the +very first game too soon, before feature negotiation. One result of +this is that engines would never get the "ics" command for the first +game. + +* Lengthened timeout to detect protocol version 1 chess engines to 10 +seconds. This should reduce problems with protocol version 2 engines +that are slow to initialize missing the timeout and not getting a +chance to send their feature commands before the first game starts. + +* Klaus Friedel says that adding a short sleep to WinBoard after +starting a new chess engine solves a problem that occurs under Windows +2000, in which engines sometimes don't see the initial command(s) from +WinBoard and hang. I don't understand how that can happen, but the +sleep is harmless, so I've put it in. Others have also reported what +may be the same problem, so hopefully this will fix it for them too. + +* Bugfix: editing the Result field in EditTags will no longer cause a +later crash. Thanks to DAV for a clear bug report that let me +reproduce the problem. + +* ICC wild 28 is now recognized as shatranj, but it is not supported. +You might be able to play it by turning off Test Legality. + +* Formerly we would always turn off "feature time" if the engine +printed an error message with the string "time" or "otim" in it; now +we do that only if the message comes before the engine makes its first +move. This change is useful because some engines spew a lot of bogus +error messages about commands they don't fully parse, so something +like "result 0-1 {White lost on time}" could generate such a message. +Engines shouldn't do that, but if they do, mysteriously turning off +"feature time" is not a good way to react. + +* Fixed an infrequently occurring Zippy bug: formerly, resuming from +adjournment by position (that is, with GetMoveList turned off) or +starting/resuming a wild game (nonstandard starting position) would +try to set up the position without putting the engine into force mode +first. That was probably tolerated by most engines, but if the +position was black-to-play and the engine hadn't set feature +setboard=1, then the fake "a2a3" move (which we use as a kludge to get +black to be on move before sending the edit command) would appear to +be a real move, and the engine might reply to it! This bug could also +be seen when trying to use Zippy to play a simul -- something that +Zippy was never designed to support, but which seems to mostly work +anyway. Thanks to Paul McGuire for sending a WinBoard.debug file that +showed the bug occurring. Some other cases of resuming adjournments +or starting games from nonstandard positions may have been broken too; +I think I've straightened out the problems. + +* Agreeing to a draw in the human vs. local engine case formerly did +not work if the human offered first; now it does. A human's +unsolicited offer is considered valid until he makes another move. +Thanks to Bruce Moreland for the bug report. + +* Bugfix: We used to look for just "fr" in Event tags or strings from +ICSes to recognize Fischer Random games. This caused a lot of false +matches. Now we look for "wild/fr" instead, which is what FICS uses. + +* Bugfix: Clicking on a move in the MoveList window only updated the +displayed position; if a chess engine was active, its state was not +updated. Thanks to Alejandro Dubrovsky for the bug report. + +* Bugfix: The "resign" command from engine to xboard formerly did not +work in ICS (Zippy) mode. + +* Bugfix: Formerly we would register a garbage premove if the user +clicked on a piece, then clicked on an edge or outside the board. Now +such an errant click is ignored. + +* Bugfix: GameEnds would send "exit" to an engine in analyze mode even +if we did not actually want to leave analyze mode. + +* Bugfix: "feature pause" was being rejected. We don't currently use +it, but that is no reason to reject it. Thanks to Gian-Carlo Pascutto +for the bug report. + +* Bugfix: when "partner" needed to be sent both to ICS and the engine, +Zippy was erroneously sending the ICS prefix character to the engine +too. Thanks to Gian-Carlo Pascutto for the bug report. + +* Zippy now declines challenges when the engine is not yet ready to +play again, instead of ignoring them. This is needed so that the +server will let the opponent repeat the challenge. It might be better +to remember such challenges and accept them when the engine is ready, +but that would be a bit more complicated to implement. + +* Bugfix: Zippy's emotes didn't work on FICS because there, "i" is a +built-in alias for "it", not a real command. So sending "$i foo" gave +an error message instead of doing "it foo". We now leave out the +alias-suppressing prefix for emotes. + +xboard/WinBoard 4.2.3 -- Mon Feb 19 19:55:05 PST 2001 +Tim Mann + +* Bugfix: The error message "Variant X not supported by gnuchessx" +formerly could pop up even in -ncp mode. + +* Fixed an xboard bug in premove highlighting. If you had +HighlightLastMove turned on, premoves got highlighted in +highlightSquareColor (yellow) instead of premoveHighlightColor (red). + +* Modified premove again. Now we are back to displaying the move +locally immediately after sending it to the server, as in versions +prior to 4.2.1. This is good because it lets you register your next +premove sooner. As a better fix to the problem that the change in +4.2.1 had been trying to address, we now suppress animating the +opponent's move if you have a premove reply pending. However, it's +probably still a good idea for you to turn off AnimateMoves entirely +if you are trying to play extremely fast games. + +* Removed an erroneous patch that left zombie chess engines around +when both sigterm and reuse were turned off. (Bug was in xboard only, +not winboard.) + +* Bugfix: loading a game with autostepping did not work for games with +PGN result "*" (unfinished). This bug was introduced in 4.1.0, caused +by some outdated code that was supposed to leave you in EditGame mode +after loading an unfinished game. I fixed this, and also changed it +to leave you in EditGame mode after loading *any* game, but without +changing the tags to say it's an edited game. It's not really clear +whether that is the best thing is to do here -- ideally, perhaps, the +tags should change to say "edited game" if you actually make any +changes, but that is harder to make work. + +xboard/WinBoard 4.2.2 -- Tue Feb 6 20:00:00 PST 2001 +Tim Mann + +* Fixed a problem introduced in 4.2.1. In -zippyPlay mode, 4.2.1 +started sending the initString immediately after the old game ended, +but then when the next game started, it would still send "force" and +another initString. Another problem was that the first initString put +the engine out of sync with the displayed board position, though that +might not usually have been noticeable. This is now changed to do a +full Reset at the end of the previous game, and avoid doing a Reset at +the start of a new game if we are still in BeginningOfGame mode. + +* Fixed some limitations in -zippyPlay mode. The engine was not being +fed the moves or history of games that were displayed but not being +played, so it would get confused if you tried to do something like +examine a game, then enter EditGame mode from somewhere in the middle +of the game. + +* Made a small change so that cygwin can compile xboard for Windows +(an X server is required to run it). Thanks to Volker Zell. Most +people would probably prefer to run WinBoard on Windows, however; note +that cygwin could already compile WinBoard. + +* Added some missing documentation to engine-intf.html: It is okay to +send "feature done=0" even before you receive the xboard and protover +commands, if this is needed to give your engine enough time to +initialize. See engine-intf.html for more discussion. + +* Bugfix: "feature done=0" did not work for the second engine; now it does. + +xboard/WinBoard 4.2.1 -- Sat Feb 3 19:52:26 PST 2001 +Tim Mann + +* Bugfix: in Zippy mode with feature san=1, the elapsed time was being +sent to the engine after the SAN move; for example, "e4 (0:01)" was +sent instead of just "e4". + +* It seems that scroll wheel mice with incompletely installed software +(under Windows 95, at least) can send repeated middle button up events +when the wheel is turned. Moved QuickPaste from middle button up to +middle button down to avoid problems with this. + +* A premove is now sent *before* the opponent's move that it replies +to is animated. The premove itself is no longer displayed (or +animated) when sent; instead, it is displayed when the chess server +echoes it back as a board update. + +* Bug fix: in -xreuse mode, xboard was only sending command line +arguments to the engine the first time it was started. (WinBoard +didn't have this bug.) + +* In -zippyPlay mode, we now initialize the chess engine for a new +game immediately after the old game ends. (In -xreuse mode, this +means starting a new engine process; in the default -reuse mode, it +just means sending "new".) If the engine supports ping, we don't +accept challenges until the "new" has finished. This should help +avoid losing time (re)initializing the engine after the game starts. + +* We now handle the new FICS field in style 12 that says whether the +clocks are ticking. + +* whiteFlag and blackFlag are now reset whenever an ICS board image +arrives, giving autoflag a fresh chance to work. + +* Suppressed "geometry error" debug messages unless -debug flag is given. + +* Bugfix: avoid core dump on Solaris with -debug flag, caused by +passing NULL to a %s format in GameEnds. + +* Added -firstProtocolVersion and -secondProtocolVersion. This will +allow use of extremely broken engines that hang or die when given the +"protover 2" command. It should be rarely if ever needed. + +* Zippy now strips highlights from player names in the Creating +message; previously the ratings would not be extracted from this +message properly if you had set the highlight variable. + +* Bug fix: Zippy with -zp but not -zt used to be fooled by false +partner tells inside channel tells; e.g.: +Garf(24): Garf (your partner) tells you: sit + +* Bug fix: when an engine reported its name with the new "feature +myname=" command, we had been putting just that name into the window +title even when in TwoMachines mode. + +* By default, WinBoard no longer uses the new feature introduced in +4.2.0beta of keeping the ICS menu, ICS server list, and lists of chess +engine command lines in separate files; instead, the lists are back in +the winboard.ini file. This gets rid of some problems where the +separate files could not be opened because the working directory was +not set to WinBoard's installation directory. + +* WinBoard command lines and ini files now have another optional +syntax for quoting an option value. All characters within { } curly +braces are interpreted literally except for '}' itself. SaveSettings +now uses this syntax for string values that contain a backslash or +newline and do not contain a '}'. This should address the problem +that the separate .ini files had been meant to fix; engine command +line lists can now be written without \-escapes. + +* Fixed three bugs in relaying moves between engines in TwoMachines +mode: an engine would be sent SAN if the *other* engine had set +feature san=1, a relayed SAN move did not end with a newline, and +feature usermove was not implemented for relayed moves. + +* Fixed several bugs in exiting: File/Exit would sometimes hang; +timestamp/timeseal would not get killed off; an engine crash would +cause error messages to be printed recursively until stack overflow. + +* Fixed a bug in the code to detect which ICS is in use and adapt to +it; the chess.net case was broken. + +* Removed the leading alias-suppression character when sending a move +to ICS, because it seemed to break accuclock on chess.net. + +* Fixed a bug where a FICS prompt like "10:01_fics%" would be matched +as finger note number 10, causing a problem detecting when the user is +logged in. + +* Added tellicsnoalias command to protocol. + +* Changed st command in protocol back to old behavior. + +* Added done=0 feature to protocol, to lengthen initial timeout. + +* Added missing -colorSeek command line option to xboard. (Was +present in WinBoard.) + +* Bug fix: setting feature reuse=0 was not working. + +xboard/WinBoard 4.2.0beta -- Sat Dec 16 16:34:56 PST 2000 +Tim Mann + +* Setting -searchTime no longer turns off -clockMode. Note that when +-searchTime is set, some engines may search for the lesser of +searchTime and the amount of time their normal clock management would +dictate, while others will disable their normal clock management and +always search for exactly searchTime. + +* Fixed WinBoard bug where on Windows 2000 (and maybe Windows 98) the +ICS Interaction window would scroll back to the top whenever it filled +to capacity and WinBoard trimmed some text off the top. + +* Changed xboard dragging so that the center of the dragged piece is +forced to be over the mouse cursor. (WinBoard dragging already worked +that way.) This should avoid confusing cases when you start a drag +with the mouse near the edge of a square -- formerly most or all of +the piece could be over one square but the mouse cursor over another. +Suggested by DAV. + +* Added move list window for xboard. Code contributed by Manuel +Hoelss and re-hacked a bit by me. Performance of this window is poor, +because the implementation regenerates the entire window contents +whenever anything changes. It's hard to avoid this when using the +Athena List widget, though we could be a little smarter and notice +when the current move number has changed but the move list has not. +There are also several drawing problems caused by bugs in the Athena +Form and List widgets. The window should not really allow a +horizontal scroll bar, but the bugs are much worse if I turn it off. +In both Xaw and Xaw3d, the List widget tries to resize itself when +XawListChange is called, even if you tell it not to; and what's worse, +if the widget cannot resize itself to be large enough to avoid +clipping any of the list item, it does not change the list! Arrgh. +On top of that, the Xaw Form widget is very buggy in XFree86 4.0.1 +(X11R6.4.3). + +* The OK button in the WinBoard startup dialog is now simply disabled +if none of the radio buttons is selected, instead of bringing up an +error dialog. Suggested by Ted Milbaugh. + +* Used ping to address the worst of the race conditions in the +protocol. Now if an engine supports ping, we ping it after sending +the "new" command and after trying to place it in force mode at the +end of a game. When a ping has been sent and the corresponding pong +has not yet come back, we (1) ignore or undo any moves the engine +sends, (2) ignore game end messages (such as "offer draw", etc.) from +the engine, (3) ignore thinking output from the engine, (4) delay +starting the next game if in -matchGames mode, (5) in -zippyPlay mode, +respond to challenges with a polite message to try again soon instead +of accepting them. There are a few more things that should be done +(and item 5 might not be quite what we want), but it's hard to fit +them all into the existing code. + +* Patched the version of GNU Chess 5.00 included with WinBoard to +support protover, feature, setboard, and ping, and to fix some minor +bugs. See gnu500+.patch. + +* Changed the GNU Chess 4 kludges for missing "st" and "sd" commands +to be invoked only if the engine gives an error message for "st" or +"sd", and to always use protocol commands instead of engine +command-line options. See "Idioms" in engine-intf.html. + +* Added new protocol command "protover 2" to tell the engine what +version of the protocol is in use. Version 2 is still compatible with +old engines; see engine-intf.html. + +* Add new protocol command "feature ..." The engine can send this in +response to the protover command command, to say what extended +protocol features it would like to enable, etc. xboard responds +"accepted F" or "rejected F" for each feature F that is set. See +engine-intf.html. + +* Added new protocol command "setboard ". This is an alternative +to "edit", used only if the engine says "feature setboard=1". + +* Added new protocol command "ping ". The engine is supposed to +respond "pong ". This gives us a tool to fix some race +conditions in the protocol, but it is not used to the fullest yet. + +* Added new protocol command "tellopponent". This will do a "say" if +you're on a chess server in Zippy mode, or pop up an information +dialog otherwise. + +* Added new protocol command "tellall". This will do a "kibitz" if +you're on a chess server in Zippy mode, or pop up an information +dialog otherwise. + +* Added new protocol command "tellothers". This will do a "whisper" if +you're on a chess server in Zippy mode, or do nothing otherwise. + +* Changed the WinBoard /icsNames, /icsMenu, /firstChessProgramNames, +and /secondChessProgramNames options to accept a filename preceded by +"@", meaning to find the value in the file. Changed the defaults to +use this feature, with filenames icsnames.ini, icsmenu.ini, fcp.ini, +and scp.ini. This should make it easier for users to edit the values, +since one less level of quoting is needed, and each value is in its +own file, not mixed into winboard.ini. Those who upgrade from an +older winboard version and already have a winboard.ini file will not +automatically have these values moved to a file; that has to be done +by hand if desired. + +* We now strip .exe from engine names for "name" command, tags, etc. + +* Allowed WinBoard input widget to hold more than one line. You can get +a newline into the widget with copy/paste or with Ctrl+Enter. + +* Fixed an xboard bug where the [P] button would appear in the +opposite highlight state from what it should be after being pressed. + +* We now use the "/" or "$" alias suppression feature on the chess +servers, to avoid problems if the user inadvertently aliases a +needed command to something else. + +* Changed the method used to deiconize xboard in AutoRaise and cmail. +This may fix bugs under some window managers where after +deiconization, the board window was mapped but nothing was drawn +inside. + +* Preliminary, partial support for playing several chess variants +against a local engine or editing variant games. The -variant option +must be given on the command line or WinBoard startup dialog; there is +no menu. The current variant is not displayed (except in the +Tags/EditTags window). Many variants will not work quite right even +if the engine supports them; see item 326 in the ToDo file for +details. + +* Added a workaround to detect the variant type when examining a +scratch wild game on an ICS. + +* Fixed two cases where "variant" command should be sent to the engine +when necessary but was not: loading a game from a file and restarting +a dead engine. Thanks to Gian-Carlo Pascutto. + +* Added missing support for FICS games that start from a bsetup position +with Black moving first. + +* Fixed a bug in loading a file from the game list window while in +Analysis or AnalyzeFile mode. This now leaves us in AnalyzeFile +mode, analyzing the new file. + +* Fixed a bug in loading games with a comment before the first move. + +* Fixed a bug in handling LoadGame (or -lgf) with -td 0. + +* Added a command line option to select an initial minor mode from the +Mode menu. This should satisfy requests from a couple of users with +special applications. + +* Fixed a problem where some things in WinBoard's General Options +dialog box were grayed out at the wrong time. + +* We look for a few messages from the chess engine pipe that are +intended to catch problems starting an engine via rsh, such as "No +such file". Moved code so that these strings won't match until other +protocol messages have been looked for, and documented the messages in +engine-intf.html. + +* Fixed the WinBoard bug that sometimes made the console input box +white-on-white even when not in password-entry mode. + +* Small changes to WinBoard to be compilable with the latest Cygwin +net release (as of 10-16-2000). Thanks to Mark Schoenberg. + +* Recompiled GNU Chess 5.0 for WinBoard with the latest Cygwin net +release (as of 10-16-2000). Also rebuilt the book just to be sure, +since I had one bug report about it. It came out identical and seems +to work fine. + +* Added messages for some common InstallShield errors instead of just +printing InstallShield's stupid error code numbers. + +* Added -firstComputerString and -secondComputerString, allowing you +to suppress or change the command that is sent to a chess engine when +its opponent is another computer. + +* Added "configure --with-Xaw3d" to allow use of Xaw3d widgets instead +of Xaw widgets in xboard. Thanks to Johnny C. Lam of the NetBSD +project. I've left Xaw as the default because Xaw3d is too ugly. + +* The version of the Xaw Form widget released in XFree86 4.0.1 +(X11R6.4.3) has a bug that causes xboard to display the button bar +on top of the message widget. I've reported the bug and have +installed a kludge workaround into xboard. + +xboard/WinBoard 4.1.0 -- Sun Sep 17 17:30:14 PDT 2000 +Tim Mann + +* Merged Winboard Plus 4.0.8 from Mark Williams into xboard + source pool. Status of Winboard Plus features in xboard: + + - White pieces now have borders, but the implementation is + completely different from WinBoard's; see below. + + - Options menu not changed, probably won't be. + + - Copy&paste support working, using Mark's changes to backend.c, Ben + Nye's changes to xboard.c for FEN positions, and some code of my + own in xboard.c for PGN games. + + - Premove hooked up and working. No pre-first-move, though. + + - ICS Alarm hooked up and working. + + - Auto-flip working. + + - PGN Training mode hooked up and working. + + - Improved menu item enable/disable working. + + - Improved >> button working. + + - Auto activate board working. I changed this to be optional; you + might not always want it, especially in Zippy mode. + + - Blindfold working. + + - Documentation updated. + +* Fixed more colorization bugs. Commands like "message foo tells you: +xxx" and "tell 33 tells you: xxx" will no longer generate bogus +colorization. + +* Added low-tech sound support to xboard, by invoking an external +program on a filename for each sound to be played. + +* ICC wild 27 is now recognized as VariantAtomic, and it sets the +"ignore check" flag, but is not otherwise supported. + +* Converted the piece bitmaps from .bm to .xpm for use with xboard's +xpm support. (An .xim version was not created.) Wrote a shell script +using ImageMagick to do the conversion and to bucket fill from +coordinate 0,0 with the background color. Used xpaint by hand to +clean up a few pieces where background color "leaked" into the inside +or didn't flow all the way around the outside, then a sed script to +fix up color names and bitmap names in the xpaint output. If any more +sizes are added later, they should be straightforward to convert with +reference to the existing scripts. With this conversion, not only do +the white pieces now have dark borders, but (unlike with WinBoard) the +light details on the black pieces are opaque. + +* If the XPM library is found when building xboard, the new xpm pieces +are compiled in as the default. External bitmap (or xpm) pieces can +still be used by giving the -bitmapDirectory (or -xpmDirectory) +option. If the XPM library is not found, the old bitmap pieces are +the default. In this case external bitmap (or xim) pieces can be used +by giving the -bitmapDirectory (or -xpmDirectory) option. There is no +way to compile in xim pieces. + +Winboard Plus 4.0.8 -- Sat Aug 5 15:51 PDT 2000 +Mark Williams + +* Bugfix release. + +* Main menu now visible in Win NT. Thanks to Microsoft for creating a +compiler which auto-mutilates the WinBoard.rc file so that the menu is +displayed under Win 98 but not Win NT. I fixed the problem by hand editing the +.rc file. Sigh. + +* "Reset game" now works properly when invoked from Analysis mode when two +engines are present. Correction of bug introduced in Winboard Plus. Thanks to +Mogens Larsen for reporting the bug. + +* Pasting a FEN position with Black to move now works in all modes. +Thanks to Mogens Larsen for reporting the bug. + +* Added gnuchess.dat to the distribution and a couple of text files that were +missing in 4.0.7. + +*** Merged in the following changes from Tim Mann: + +* Bugfix: Highlights would sometimes not be taken down, at least in +xboard. The problem is that SetHighlight works in chess coordinates, +not view coordinates, so if flipView has been toggled since the +highlight was put up, it gets taken down from the wrong square. Fixed +by being careful to call ClearHighlights before toggling flipView, not +after. Ugh. + +* Bugfix: HighlightLastMove would sometimes highlight square a1 after +a FICS "tomove black" command. + +* Bugfix: a move list with initial position that has black to play was +not being handled correctly. + +* Removed "decline abort" and "decline adjourn" commands from Zippy. +The syntax is changing on FICS, and Zippy really doesn't have to +explicitly decline the requests anyway; it's sufficient to not accept +them. + +* ICC wild 26 is now recognized as VariantSuicide (the FICS name; ICC +calls it "giveaway"). + +* Bugfix: PGN games with black to move in the initial position weren't +being legality checked correctly. I think this was introduced in +4.0.6 when I fixed a different PGN bug. Thanks to Mark Williams for +spotting the bug and suggesting a fix. + +* Bugfix: the initial "name(" of a kibitz wasn't being colorized. + +Winboard Plus 4.0.7 -- Thu May 12 17:57 PDT 2000 +Mark Williams + +* New white pieces with black borders. + +* Major overhaul to Options menu. New dialogs for setting General Options, + Board Options, ICS Options, Sounds, Fonts, Colors. + +* Clipboard support for PGN game scores and FEN positions. + +* Optional ICS Premove with user-specified first moves for White and Black. + +* New sound events: ICS Win, ICS Loss, ICS Draw, ICS Unfinished, ICS Alarm. + +* New auto-flip option when playing against a chess program. + +* Added PGN Training mode. + +* Certain menu options now disabled while program is thinking. + +* ">>" button now always goes to the end of the game. + +* In ICS mode, the board is automatically activated at the start of a +new game. + +4.0.7 -- Sun Mar 5 17:17:49 PST 2000 Tim Mann + +* Fixed a nasty bug in parsing ICS game histories that was introduced +in 4.0.6. + +4.0.6 -- Fri Mar 3 16:20:11 PST 2000 Tim Mann + +* Fixed bugs in Zippy's code for responding to messages sent with the +ICS "message" command. + +* Fixed bugs where xboard could still create dialogs partially off the +top of the screen. Fixed unwanted interactions between initial sizes +and positions of various unrelated xboard dialogs. Deleted +borderXoffset and borderYoffset resources. + +* Fixed restoring the xterm name on exit to work in more cases. + +* Small fix to the WinBoard self-extracting installer: when it starts +up, it now always deletes any old wb-setup directory left over from a +previous installation. Formerly this worked only on Windows 95/98, so +on NT the self-extractor would sometimes stop and ask the user whether +it was OK to overwrite the old wb-setup files. + +* Modified WinBoard to be compilable with the free Cygwin tools +available from http://sourceware.cygnus.com/cygwin/. Based on work by +Mark Schoenberg. (His mods were enough to get WinBoard through the +compiler, but a few things were broken along the way, so I reworked them.) + +* Merged changes from Don Fong to make WinBoard compilable with +Borland C++ 4.5. I do not have Borland C++ and am unable to test with +it, but I did make sure the changes don't stop it working with MSVC++ +5.0 and Cygwin. + +* Forbade entering TwoMachines mode from MachineWhite or MachineBlack +mode when machine is on move. This used to confuse the engine and +cause problems, because when we try to get the engine to stop, it +might make a move first, and it might not do that immediately. + +* Variant classification now deals with new ICC wild 25, classifying +it as "3check". Also, we are now conservative about new wild numbers +we don't know about, classifying them as "unknown" instead of +"normal". + +* Replaced bad GNU Chess 5.00 book in WinBoard distribution with a +correct one. 1.e4 now no longer takes GNU Chess 5.00 out of book! +Thanks to Pete Galati. + +* Made move parser accept and ignore nonstandard ep suffix on PGN moves, +e.g., "exf6ep" or "exf6e.p." + +* Fixed bugs in parsing PGN files starting with no move number, or +with a move number other than "1." (including "1..."). Thanks to +Michael Soulier and Stefan Zipproth for example PGN files +demonstrating the bugs. + +* Changed InitComboStringsFromString to not modify the input string; +this caused an exception when WinBoard was compiled with MSVC++ 6. +Thanks to Bert Tuyt for the report. + +* In WinBoard, dragging a piece off the edge of the board without +releasing the mouse button no longer instantly aborts the move. You +still must release the mouse button inside a square to complete a +move, but you can now drag off the edge and come back inside. + +* WinBoard bugfix: If you went into EditGame or EditPosition mode +while observing or playing an ICS game, and a new move came in +(snapping you back to ICSClient mode) while you were dragging a piece +around, the drag state would not be reset, causing the piece you were +dragging to remain on the board wherever you dropped it. Thanks to +David Brinegar for the bug report. + +* WinBoard bugfix: If you moved or resized the board while your +opponent was moving, and you had AnimateMoving on, his move would not +be displayed until after your next move. Thanks to DAV for reporting +the bug repeatedly until I finally understood it. + +* Added a Zippy "farewell" feature; see zippy.README. + +* Fixed a bug (xboard only) in processing -zippyReplayTimeout on the +command line. Thanks to Steve Beer for the report and patch. + +* Send "computer" command to both sides in TwoMachines matches. + +* Fixed a Y2K bug in Evan's cmail code! Thanks to Brian Mays for the +report and patch. + +* Bugfix: Initialize variant field of GameInfo struct in gameinfo.c. +This could cause crashes in LoadGame. Thanks to Andrzej Nagorko. + +* Fixed several pattern matching problems: Finger notes and formula +vars no longer get replied to by zippyTalk or colorized. Channel +tells by players with many titles are now colorized fully, and +zippyTalk handles channel tells by such players correctly. The shout +"--> foo(99): bar" no longer gets colorized as a channel tell. Code +is cleaned up a bit, and autocomment capture now uses the same +criteria as colorization. + +* xboard fix: Enter key now closes error popups as in WinBoard. +Especially nice for the "Exiting: Connection closed by ICS" popup. + +4.0.5 -- Tue Dec 7 10:30:40 PST 1999 Tim Mann + +* Added missing documentation of SIGTERM usage into engine-intf.html. + +* Bugfix: New -zippyReplayTimeout option was misspelled in WinBoard as +-zippyReplyTimeout. Thanks to Francesco Di Tolla. + +* xboard -ics now restores the xterm's original title upon exit, at +least if $WINDOWID is set. + +* Bugfix: -matchGames mode wasn't terminating properly. Final score +popup would come up twice and engines would not be killed off. Thanks +to Frank Quisinsky for the bug report. Bug was introduced in 4.0.4. + +* Bugfix: "tell 50 foo shouts: bar" no longer gets colored as a shout; +similarly for "...s-shouts:" and "...c-shouts:". Thanks to David Lee +for the bug report. + +4.0.4 -- Fri Dec 3 17:51:27 PST 1999 Tim Mann + +* Bug fix: formerly if you invoked SaveGame from EditPosition mode +with black to play, the position was not saved properly. As a quick +fix, SaveGame now takes you out of EditPosition mode before saving. + +* Changed -matchGames to keep track of the score (won-lost-drawn) and +display it in the banner. The final score is displayed in a modal +popup before the program exits. + +* Changed "Connection closed by ICS" to display in a model popup +before the program exits. + +* Added -popupExitMessage option, default on. Setting this to false +suppresses the modal popups that you sometimes get just before +xboard/winboard exits -- both the two new ones listed above and the +existing Fatal Error popup. This is useful when running Zippy +unattended from a shell script (or .bat file) that loops and starts a +new copy after a time delay when there is an error. + +* In xboard, added missing support for WM_DELETE_WINDOW to all +windows. This makes xboard a better citizen, and is much needed with +the newer X window managers that put an [X] button on every window and +bind it to "kill application" if the applicationd does not support +"delete window". We can't allow xboard to be thoughtlessly killed, +since that leaves the chess engine running in the background. + +* We now avoid positioning tops of xboard dialog boxes offscreen. + +* zippy.lines can now use the caret ('^') character as an inter-saying +separator. You no longer need to dig up a text editor that can put NUL +('\000') characters in text files. + +* Bugfix: In traditional chess clock mode, White now gets time added +to its clock as soon as it makes time control. Previously both White +and Black got their time added only when Black made time control, +which would cause some engines to make their 41st move as White too +quickly, thinking they were low on time. + +* The zippyAcceptOnly feature no longer sends a decline command or +a tell. Thus you can use it to put Zippy into a manual accept mode. + +* Bugfix: "tell 50 foo tells you: bar" no longer gets colored as a +personal tell; similarly for "...whispers:" and "...kibitzes:". + +* WinBoard no longer blanks the message line when you start a new +move, unless there was an error message there from the previous move. + +* WinBoard now never puts the white piece drop menu on the middle +mouse button. Both colors are always on the right button. Windows +users often don't think to look for a middle button menu, or don't +really have a working middle button despite what Windows says. + +* Guest login handles on ICC are now parsed again; an ICC wording +change had broken this feature. + +* Autodetect when the engine does not support the "draw" command and +don't relay the command to it in that case. Needed because sending an +unsupported command to GNU Chess makes it move immediately, so people +could make Zippy move without thinking by continually offering a draw. +Thanks to Frank Walker for the problem report. + +* Small changes based on code from Robert Jurjevic: The WinBoard +analysis window can be minimized (though not to the taskbar). The +WinBoard ICS Interaction window will autoscroll if you drag the mouse +above or below the window while selecting, and password entry mode +leaves the entry line as the background color instead of using 75% +gray. Seeks are now colorized with a new color of their own. + +* Added -zippyMaxGames feature. + +* -zippyNoplayCrafty command line option was missing in xboard; fixed. +Thanks to John Perry. + +* Fixed bug in detecting when Zippy loses his bughouse partner. +Thanks to Ben Dean-Kawamura. + +* allobs fix in 4.0.3 didn't work; corrected it. + +* WinBoard will now update the board immediately if a move is made +while the window is being moved or resized. + +4.0.3 -- Sun Aug 15 18:44:39 PDT 1999 Tim Mann + +* Bugfix: moved winboard wizard functions that send a command directly +to the chess engine from Ctrl+Alt+1 and Ctrl+Alt+2 to Alt+1 and Alt+2. +Ctrl+Alt is equivalent to the European AltGr key, so the old assignments +conflicted with typing an @-sign on some keyboards. + +* Bugfix: prevent "If this message stays up, your chess program does +not support analysis" from appearing if AnalysisMode is selected when +already in Analysis or AnalyzeFile mode. Also, deleting analysis window +in WinBoard now switches you to EditGame mode, to avoid the anomaly of +being in an analysis mode with no analysis window present. + +* Change all Zippy environment variables to work as command line +options. For now they still work as environment variables too, but +the environment variables are deprecated. + +* Use unsigned long to hold node counts from engines. + +* Print error instead of crashing on attempts to use xpm or xim pieces +in monochrome mode. Thanks to Jim Torrance for the bug report. + +* Tightened pattern recognition for ICS messages sent to Zippy; should +no longer match ICC allobs output. Fixed recognition of when Zippy is +sent a message; small change to FICS output had broken it. + +* Zippy now exits if the engine dies unexpectedly. + +* Added Zippy "spoofedby" feature; see zippy.README. + +* Narrowed the margins on some older WinBoard dialogs to make their +style uniform with the newer ones. + +* Bugfix: Changing Ponder Next Move from the Options menu did not take +effect until the next game. This bug was in WinBoard only. Thanks to +Stefan Zipproth for the bug report. + +* Got rid of "Internal error: bad move type" message when the engine +makes a move that we can parse but think is illegal. Now the move is +just passed on (which also may be the wrong thing to do). + +4.0.2 -- Thu Feb 25 19:55:32 PST 1999 Tim Mann + +* Added one more built-in sound choice to WinBoard: move.wav from Pete +Galati. + +* Added new larger piece sizes: big, huge, giant, colossal, titanic. + +* Modified the xboard font searcher to be able to use scalable fonts. +The new -fontSizeTolerance flag controls how closely a nonscalable +font must match to be used in preference to a scalable font. + +* Zippy environment variables ZIPPYABORT and ZIPPYADJOURN now control +whether Zippy will accept abort and adjourn requests. + +* We now determine the variant type being played on ICS, send it as a +command "variant VARTYPE" to the chess engine (if in Zippy mode), and +put it in the PGN tags. See engine-intf.txt for variant names. See +ZIPPYVARIANTS in zippy.README to control what variants Zippy will +accept. Note that this now applies to bughouse, too. + +* Zippy now won't do -zippyTalk in a channel unless his handle is +mentioned there. + +* Zippy now ignores bughouse holdings if not actually playing, instead +of stupidly trying to abort the game. Let me know if other strange +things happen when Zippy is observing a game. + +* Set ICS Interaction title bar to "user@server". User name is +determined by parsing message during the login sequence. Zippy now +uses this method to get its name too, so ZIPPYNAME is eliminated. +Problem: with xboard, the title bar gets set to "xterm" upon exit, +since we didn't know what it was to start with. + +* Fixed xboard-only bug in -colorChannel1 command line option. Thanks +to Fredrik Sandstrom for the bug report and fix. + +* Check for overflow of MAX_MOVES. Still not sure this is checked for +everywhere it needs to be. + +* Added .epd to suffixes recognized by WinBoard as position files. +This is a bit of a kludge, as the .fen reading code was not written +with .epd files in mind, but reading them with it is said to work. + +* Added ZIPPYGAMESTART feature, suggested by Jason Hoblit. See +zippy.README. + +* Restored the feature of soaking up the moves from a user-typed "moves", +"oldmoves", or "smoves" ICS command when xboard/WinBoard is idle, but +changed it so that the move list is also echoed to the screen. Some folks +still liked the old feature since it is faster than examine mode, and +printing the moves to the screen should eliminate the confusion it caused +for other people. + +* Bugfix: in WinBoard, starting a click-click move and then clicking on +a black line would cause the source square to be forgotten without taking +the highlight down. Now the errant click is ignored. + +* Corrected shortcut key labels for LoadNext/PrevPosition in WinBoard's +File menu. Thanks to Andreas Stabel for the bug report. + +* Bugfix: if you had a completely full ICS context menu in WinBoard +(90 items), the last one would do nothing if selected. + +* The "computer" engine command added in 4.0.1 was not working; I had +left out part of the code patch. Oops. + +4.0.1 -- Fri Feb 12 21:24:15 PST 1999 Tim Mann + +This is a minor bugfix release. The first item listed below is the +only interesting new feature. + +* You can now type in moves from the keyboard in WinBoard. Either +select TypeInMove from Step menu, or (if you are not in ICS mode), +just start typing. In ICS mode you can type moves into the ICS +interaction window anyway, so I've retained the feature that typing +switches you there. Not implemented in xboard. + +* Removed the "noise 1000" command that used to be sent to the chess +engine when entering analysis modes. + +* Deleted the feature where we soak up the output of a user-typed ICS +"moves" or "oldmoves" command. This ancient feature is not really +useful anymore, now that "examine" exists, and it caused a lot of +complaints. + +* Increased maximum size of ICS text menu to 90 entries and added +overflow checking. + +* The command sent to ICS by Zippy at the end of each game can now be +customized with the ZIPPYGAMEEND environment variable. + +* We treat xboard.info as a pseudo-source since most people don't have +the tools to rebuild it. But "make install" erroneously had a +dependency on it, even though "make all" did not. Fixed. + +* Miscellaneous minor updates and clarifications to engine-intf.txt. +In particular, documented the st and sd commands (support for command +line options -searchTime and -searchDepth), warts and all. + +* Added a small code patch from Bob Hyatt to detect when Zippy's ICS +opponent is a computer and send the command "computer" to the engine. +Added this command to engine-intf.txt. Thanks, Bob. + +* Bugfix: configure was looking for usleep(), but config.h.in didn't +have an entry for it, so HAVE_USLEEP was never defined. Also, in the +non-HAVE_USLEEP case, there was a possible race condition between the +signal handler and the pause() call. Thanks to Ben Dean-Kawamura for +the bug reports. + +* Bugfix: a "1..." preceding Black's first move (usually present if +there is a comment on White's first move) would cause the parser +to think a new game started there and report "End of game" on the +current game. Thanks to Dell Garner for the bug report. + +* Changed the abbreviation for -searchDepth from -sd to -depth to fix +a clash with -secondDirectory. + +* Changed -searchDepth to be orthogonal to the various timing options. +Previously it would search for an unlimited time to the given depth; +now the engine is allowed to choose its search time in the normal way, +but is told to cut off the search early if it reaches the given depth. + +* Bugfix: SaveSettings in WinBoard was saving both the long form +option highlightSquareColor and its abbreviation (hsc). + +* Fixed a redisplay bug in DisplayBothClocks that could cause White's +clock to be highlighted in EditPosition mode when Black's should have been. + +* Fixed Zippy's feature of passing on draw offers from the ICS opponent. +The colorization code was eating the offer before Zippy saw it, so I disabled +colorization of offers while in -zp or -zt mode. (Other types of +colorization are already disabled in Zippy mode for similar reasons.) + +* Added some more commands to the default ICS context menu in WinBoard, +and put "(name)" on the ones that insert a playername (or game number). + +* Added missing documentation to WinBoard help file: PonderNextMove, the +-ponder/-xponder argument, and the up/down arrow history feature in the +ICS Interaction window. + +* Fixed ZIPPYNOPLAYCRAFTY feature to fire only if the opponent is Crafty, +not if some other Crafty is observing the game and kibitzes. + +* Fixed bugs in generating "partner" commands when Zippy is playing +bughouse. + +4.0.0 -- Sat Jun 20 16:59:47 PDT 1998 Tim Mann + +* Fixed WinBoard resizing so that the edges you do not drag remain in +place, even when the final size is different from what you dragged to. +(This doesn't work on NT 3.51 or earlier, if anyone cares.) + +* Fixed problems with resizing WinBoard on Windows NT: you no longer get +whitespace around the board, a clipped board, or a lot of flashing during +the drag. + +* Added customization for highlight-square color. + +* Bugfix: backend.c wrote to stderr in a few obscure places, which doesn't +work in WinBoard. + +* Added Index Number field back to LoadGame/LoadPosition dialog boxes in +WinBoard. This required some extra code to work with both the +Explorer-style dialog boxes and the old-style NT 3.51 dialog boxes. Ugh. + +* WinBoard startup dialog now understands -zp mode. The first chess +engine selector is enabled and the value is used. + +* Bugfix: ResetGame would send "exit" to engine twice if it was in an +analysis mode. + +* Bugfix: The response "Illegal move: bk" to the "bk" command, indicating +that it is not implemented, would confuse xboard. + +* Bugfix: Ignore empty hints ("Hint:\n") instead of printing a message +saying that some bogus string (often "Hint:") is illegal. + +* Bugfix: LoadNextGame/LoadPreviousGame/ReloadSameGame were broken. + +3.6.12 -- Sat Jun 13 14:57:10 PDT 1998 Tim Mann + +Beta test release of xboard and WinBoard. + +* Spruced up xboard man page a bit. + +* Added Highlight Last Move to xboard too. + +* The revamped xboard mouse click code had several more bugs than the +previous version, so I revamped it again. All fixed now, I hope. + +* xboard bugfix: crash in CreatePieceMenu. + +* Oops. winboard-3_6_11beta.exe installed 3.6.10beta, not the new version. + +3.6.11 -- Fri Jun 12 20:00:48 PDT 1998 Tim Mann + +Beta test release of xboard and WinBoard. + +* Major reorganization to engine-intf.txt. Some new features added, +many existing features clarified and hints for engine programmers added. +Support for new features added to program. + +* Changed defaults for -scp (etc.) back to being independent of -fcp, as +in 3.6.2. That is, the default is no longer to copy the value from -fcp if +-scp is not specified. This will sometimes make command lines longer but +will remove some confusing situations. + +* Split -reuseChessPrograms into two options: -reuseFirst and +-reuseSecond. Fixed obscure bugs when reuse is off. + +* Detect ICC and change some command usage slightly there: only ICC has +set-quietly; only FICS has iset and bsetup clear. With this feature, we +can now safely use bsetup clear when appropriate instead of deleting each +piece one by one. + +* Added indent to lines that are wrapped by WinBoard ICS Interaction +window. This seems to tickle a Microsoft bug in the RichEdit control: +occasionally the start of the next line after the wrapped line is indented +too. I think the wrapped indent feature is useful enough that it's worth +having in spite of the bug. + +* WinBoard bugfix: bounding box for the board was computed incorrectly by +mouse code. It would think you moved off the bottom of the board before +you really did, so it was hard to drag pieces along the bottom rank on +smaller board sizes. + +* Fixed obscure parser.l bug: ambiguity between capture using : instead of +x and email header line. Also removed or simplified a lot of complex +patterns for English (as opposed to PGN) end-of-game indications while I +was in there. + +* Added PonderNextMove option. + +* xboard EditPosition piece menus now let you set the side to play by +selecting the "White" or "Black" label at the top of the menu, like +WinBoard. (Both xboard and WinBoard still let you set the side to play by +clicking on the clock.) + +* Merged documentation of Crafty and GNU Chess thinking output in +engine-intf.txt. Corrected code in backend.c to match documentation; it +used to require the PV to start in column 27 (!). + +* Fixed bug that caused crashes in "-reuseChessProgram false" mode. + +* Draw by agreement in Two Machines mode now works as it is supposed to. +Other minor bugs in handling game end messages from machines are also +fixed, and engine-intf.txt is revised in this area. + +* Revamped xboard code for handling mouse clicks on the board. In +particular, it had a bug if a click-click promotion move was made. + +* Fixed and reinstated optimization for << in analysis modes: send +initString and re-send the board if needed. Sending repeated undos +is bad because Crafty prints some analysis after every one. + +* Don't go into a spin loop while pausing between xboard animation frames. +This caused problems, especially when compiling with -O2 on HP-UX. + +* WinBoard Options/Colors/RevertToDefaults now also turns off Monochrome +if it was on, and similarly for Options/ICSInteractionColors/RevertToDefaults. +This seemed to confuse people before. + +* Bugfix: ICS Interaction context menu items with neither of the two +optional flags set did not work. + +* Bugfix: PGN move numbers are optional, but we were insisting on "1" +right after the tags. + +* Bugfix: only the first game of an -mg match was loading -lpf or -lgf. + +* Other minor fixes and code cleanup. + +3.6.10 -- Mon Jun 1 01:32:31 PDT 1998 Tim Mann + +* Added ZIPPYNOPLAYCRAFTY feature; see zippy.README. + +* Added timestamps for chess engine interaction to -debug output. + +* Now allow 10 seconds (was 5) between games in match mode for engines to +respond to "force" command that ended previous game. + +* When a game is picked from the game list and the names of White and +Black are known, display them in the window banner instead of the filename +and game number. + +* Changed default for -scp and -sd to be the values of -fcp and -fd. + +* Added boxes for both engines to WinBoard startup dialog. Changed to +dropdown boxes whose content can be set from winboard.ini, similar to +the box for ICS name. + +* Accept "offer draw" (or "*offer*draw*") from engine to offer a draw. + +* Accept "move mmmm" from engine as well as silly "1. ... mmmm" syntax. + +* Added support for bughouse engines (Zippy mode only). + +* Move bombproofing for engines sending illegal or out of turn moves. + +* Always send "xboard\n" to engine as first command. Eliminates need +to run crafty as "crafty xboard". + +* Rewrote xboard code for input from engines to fix longstanding bugs. +Previously an engine that sent one line in two separate writes with +some time lapse in between (or perhaps that sent several lines in one +write) could make xboard hang. WinBoard did not have this bug. + +* Fixed minor bugs in dealing with illegal moves. + +* Added "iset startpos 1" for FICS. + +* Removed special support to put "GNU Chess" or "Crafty" in the window +banner instead of the engine's base filename. This gives a more level +playing field for other engines. Also fixed bugs in the code that finds the +engine's base filename. + +* Bugfix: Abort or Resign at the very start of a game in chess engine mode +would fail to send "force" to the engine. + +* Fixed some minor bugs in new "result" messages, and changed format to +include a trailing PGN comment giving the reason the game ended. + +* Changed syntax of /font options in WinBoard; old syntax was assuming +that a font name can't contain a digit, which is wrong. Old font names in +WinBoard.ini files are still accepted. + +* Serious further work on getting WinBoard to read/write files in the +"right" directories and documenting exactly what it does. + +* Added LoadPreviousPosition, LoadNextPosition, ReloadSamePosition. + +* Misc. tiny fixes and cleanup. + +3.6.9 -- Sun May 24 20:53:08 PDT 1998 Tim Mann + +xboard and WinBoard beta release. + +* Tightened up illegal move handling. Illegal or meaningless moves from a +file or chess engine should no longer get translated into a1a1 and blindly +applied. Explicit moves to the same square (like a1a1) no longer make the +piece on that square capture itself and vanish. + +* Added AlwaysOnTop feature to winboard. + +* Fixed bug in winboard "@" command line indirection operator. + +* Removed buggy "optimization" code for ToStart in analysis modes. + +* Fixed typo bug in zippy.c that would often cause winboard to crash +right after starting a game in -zp mode. + +3.6.8 -- Sat May 23 22:23:19 PDT 1998 Tim Mann + +xboard and WinBoard beta release. + +* Added -firstDirectory and -secondDirectory so that chess engines can +be started in a different directory from xboard/WinBoard itself. + +* Added -matchGames to allow more than one game in -matchMode. The games +are played with colors alternating between the two chess engines. Had to +add a time delay at the end of each game to catch up with game ending +messages from both chess engines -- yuck. + +* Changed TwoMachines mode to have firstChessProgram play White by +default. Added -firstPlaysBlack to restore old behavior. + +* Major rework of code in backend.c for dealing with first and second +chess engines. Generalized the code and created a struct type with one +instance for each engine. Several small bugs fixed along the way. + +* Fixed bugs in Abort in local chess engine mode. + +* Tightened pattern matching to recognize moves from machine. Should cure +bogus "Illegal move" errors while Crafty is pondering with Show Thinking +on, among other things. + +* WinBoard keeps focus in board window after popping up a comment due to +Forward/Backward/ToStart/ToEnd commands. + +* Finally got rid of warnings on compiling moves.c under Windows. + +* Fixed so WinBoard will compile on machines where WM_MOUSELEAVE is not +defined. + +* Removed various bits of unused code. + +* Parse (and ignore) NAGs in PGN files. + +* Updated engine-intf.txt. + +* Send "result R" to the chess program at the end of each game, where +R is the PGN result 1-0, 0-1, 1/2-1/2, or *. + +* Bugfix: suppress animation when loading a game with timeDelay=0. + +* Bug fix: pondering output from Crafty that contained "..." could be +mistaken for a move, causing bogus error messages and general chaos. + +* xboard "make clean" bug fix: moved things created by configure to be +removed only by "make distclean". + +* Fixed a remaining case where move was being animated before being +relayed to opponent. + +* Backend was reversing time/otim commands to the chess program (new bug), +and was often not sending them on the first move of a game or the first +move after a mode change (old bug). Fixing the latter required a kludge +to work with both GNU Chess and Crafty, because Crafty swaps white and +black clock times when it swaps sides, while GNU Chess does not. The +kludge is that we always make sure the chess engine thinks its opponent is +on move before we set the clock. This will sometimes result in sequences +like "white\ntime xxx\notim yyy\nblack\ngo", or the same with white and +black interchanged. + +* Removed last trace of old -whiteString and -blackString arguments. + +* Fixed so that you can type "bd" into the Direct Command dialog when +debugging gnuchess, without having xboard parse the clock display +(starting with "White") as "White wins" and end the game. + +* Changed moves.c to make a distinction between IllegalMove (where we +could tell what move was intended, but it violates the chess rules) and +MeaninglessMove (where we could not tell). This is a step towards getting +rid of cases where we translate meaningless moves into "a1a1", but some +work is probably needed to track them all down. + +* Fixed bug in WinBoard monoMode dragging. + +* Changed WinBoard to new style file dialogs. In the process, disabled +the feature that let you enter the index number of a game or position within +the file in the dialog. This is no loss in LoadGame, as you can pick your +game from the game list dialog that follows, but it does remove some +functionality from LoadPosition. + +3.6.7 -- Mon May 18 21:25:00 PDT 1998 Tim Mann + +xboard and WinBoard beta test release. I've been unable to reproduce some +reported drawing bugs, so they may still not be fixed. + +* Changed PopUpErrors option to PopupMoveErrors, which is more useful, and +changed default to off. Errors other than move errors should always be in +popups; they are often too big for the message area and too important to +put where they can be easily missed. But it seems good to get rid of the +popups for move errors by default. + +* xboard analysis window no longer forces itself to top whenever there is +new output. Also, now uses built-in Xaw word wrapping instead of trying +to do its own; works better. + +* Bugfix: Reset did not take Crafty out of analyze mode. + +* A chess engine no longer has to claim to be Crafty to be able to use +AnalysisMode and AnalyzeFile; it just has to implement the analyze +command as Crafty does. Put in heuristics to generate more informative +error messages if the engine does not support analyze, and checked that +they work at least with GNU Chess. + +* Added click-click moving, HighlightLastMove, and HighlightDragging to +WinBoard. The highlight features are unlikely to go into xboard unless +the xboard drawing code is cleaned up to do *all* drawing on the board +from DrawPosition, as WinBoard does. This is low priority for me. + +* Eliminated bogus "Error gathering move list: no header" popup. You +could get this by observing two fast games at once without turning off +GetMoveList. + +* Disable WinBoard Sounds menu entirely in -ncp mode, since not even +MoveSound is used in that mode. + +* WinBoard bugfix: Several problems were caused if the user changed +WinBoard's current directory in a Load, Save, or Browse dialog. In +particular, WinBoard.ini would get saved in the wrong directory, and +sound .wav file names would not get saved with a full pathname. I think +all such problems are now fixed. + +* WinBoard bugfix: iconizing the board after an aborted mouse resize would +(partially) resize it to Tiny. + +* WinBoard bugfix: board was not being drawn in color on 256-color +displays. This bug was introduced in 3.6.6. + +3.6.6 -- Tue May 12 17:43:43 PDT 1998 Tim Mann + +xboard and WinBoard beta release. Note: not all reported bugs are fixed. + +* Move animation in WinBoard, programmed by Henrik Gram. Great stuff! + +* Animate backward moves too. + +* xboard bugfix: -font (and friends) can now specify a font alias (such +as "fixed"), not just a full X Consortium name pattern. Previously this +would give a resource conversion error message. + +* Some coding style cleanup in xboard.c. + +* Earlier error check for moving wrong color piece in EditGame mode. + +* Completed fix to pattern matching; see 3.6.5. + +* Fixed some software rot bugs in Zippy. + +* Split AnimateDragging as separate option from AnimateMoves. + +* Added FlashMoves to options menu and -flash/-xflash to command line +options (xboard only). + +* Some preliminary work on visible bughouse holding support. Most of the +code is not present in this release because I have not gotten it working +properly yet; my first approach went down a blind alley and I had to +remove most of the partially working code in preparation for a rewrite. + +3.6.5 -- Fri May 8 14:22:09 PDT 1998 Tim Mann + +Not generally released. + +* Pack bughouse holdings display in banner more tightly when board is one +of the smaller sizes (when smallLayout or tinyLayout is true, that is). +An interim measure, but should help. + +* Completed fix to make move list parsing recognize the end condition and +final comment. + +* Fixed pattern matching for chatter (tells, etc.) to be more reliable. +This should reduce the incidence of colors starting in the wrong place and +of incorrectly matching things that look like other patterns inside +chatter, such as "shout <12>". (These errors were already rare.) + +* WinBoard now lets you customize the list of ICS's in the startup dialog. +For now, at least, requires editing WinBoard.ini with a text editor. + +* Bug fix: WinBoard window sizing and position setting save/restore did +not work right when the taskbar was at the top (or left side) of the +screen and not in autohide mode. + +* Merged xboard click/click mode and drag mode, and deleted +ClickClickMoving option on menu. Now if you click on a piece, it +highlights and a further click on another square will move it. (A second +click on the same square takes down the highlight.) Or if you press down +on a piece and start to drag, you can drag it to a new square. + +* When making click/click style moves, if your second click is on a piece +of the same color, instead of saying "Illegal move", we now cancel the first +starting square, replace it with the second, and wait for another click to +finish the move. + +* Separate -secondInitString. Default: same as -initString. Suggested by +Remi Coulom. + +* Patch from Frank McIngvale to make animation work with XIMs. Yay! + +* Changed move animation to happen after move is passed on to ICS or the +chess engine, where applicable. Fixed problems with updating moveList +that this uncovered. + +* Changed game list to show PGN result token for each game. + +* The usual minor bug fixes. + +3.6.4 -- Thu Apr 30 23:14:43 PDT 1998 Tim Mann + +xboard and WinBoard beta test release. + +* xboard documentation updated, both man page and info file. An attempt +to generate both from the same source with LinuxDocSGML was abandoned, at +least for now. WinBoard doc updated too. + +* Merged updates to animation code from Hugh. Fixed a couple of remaining +bugs, mostly to do with handling Pause mode correctly. + +* Added SaveSettingsOnExit to WinBoard. + +* WinBoard now saves the last screen position of the Comment, Edit Tags, +Game List, and Analysis windows (in addition to the board and ICS +Interaction windows) in WinBoard.ini. + +* WinBoard now provides a way to customize the right-button context menu +in the output area of the ICS Interaction window. For now, requires +editing WinBoard.ini with a text editor. + +* Various minor fixes to ICS message recognition, most affecting only Zippy. + +* Colorize the notification when someone sends you a message while you are +logged in, not the output of the "messages" command. + +* Fixed colorization to turn off at the right place more reliably. + +* Added a new color and WinBoard sound for "requests": abort, adjourn, +draw, pause, and takeback. The same color and sound are used for all of +these. + +* Added GUI to change sounds in WinBoard. + +* Suppressed WinBoard error popup when a sound can't be played. They were +popping up when two separate WinBoards tried to play a sound at the same +time (such as during a bughouse match). + +* Fixed WinBoard crash when a sound file didn't exist. + +* WinBoard ports of timestamp and timeseal now produce decent error +messages if they fail to connect, and WinBoard captures the messages and +puts them into a popup. Previously WinBoard would exit with no message on +such errors. + +* WinBoard resizing with mouse improved; now accurately picks the largest +size that fits in the new area. + +* Added option to turn off error message popups. + +* Added sizes slim, dinky, and teeny. + +* Fixed some minor problems with error message wording. + +3.6.3 -- Mon Feb 23 19:08:57 PST 1998 Tim Mann + +xboard beta test release only. Man page is updated for the changes, but info +file is not. + +* Bug fix: LoadGame could not load a PGN game whose first move was +castling (which is possible from setup positions). + +* Bug fix: we were ignoring illegal move messages from chess engines in +modes where the engine is refereeing but not participating (EditGame, +LoadGame, AnalyzeFile). The problem was in a workaround for a Crafty bug, +where Crafty generates a bogus illegal move message if a "." (used by +the PeriodicUpdates feature) is sent in analysis mode when the current +analysis reveals a forced mate. Installed a different workaround (that +works in most but not all cases) and reported the Crafty bug. Bob Hyatt +replied with a fix, so the Crafty bug should be gone in Crafty 14.12 or so. + +* WinBoard only: enabled resizing board with the mouse. It snaps to the +nearest (but not too much larger) predefined size. + +* The xboard default font is now sized according to piece size, just as +clockFont and coordFont have always been. + +* Added more sizes: bulky, moderate, average, middling, mediocre, petite. + +* xboard only: Added Animate Moves and Click-Click Moving to Options menu. + +* xboard only: Added code to animate piece movement, from Hugh Fisher. + +* New feature: autoflag is implemented in MachineWhite, MachineBlack, and +TwoMachines modes. If it is on and either a chess program or the user +oversteps his time, xboard will automatically call the flag and end the +game. This feature was requested by someone who runs matches between +programs and wants to penalize GNU Chess for its habit of running slightly +over at the end of a time control. I personally think it's pointless. + +* Fixed a bug in Zippy's pattern matching; he can now reply to ICC +messages again. + +* Generate prettier notation for illegal moves. If a move is illegal only +because it leaves the player in check, generate notation as if that were +not illegal. For instance, if two knights are a knight's move away from +f3, one on g1 and one on e5 that is pinned, the notation would be Nf3 to +move the g1 knight, Nef3 to move the e5 knight. (Suggested by Philippe +Schnoebelen.) In addition, if a move is illegal because the type of piece +moved cannot go that way, would be jumping over another piece, etc., we +give fully disambiguated coordinate notation; for example, Ng1g3, Ke1xe8, +d2xd8=Q, etc. An alternative would be to still write Ng3 if there is only +one knight on the board, or Ngg3 if the other knight is not on the g file, +but life is too short to code up all this stuff, and perhaps the way I did +it is better as it emphasizes that this move was really made despite being +illegal. I wonder if the new PGN standard revision will speak to notation +of illegal moves? + +* Fixed gross bug from 3.6.2: if a chess program said "checkmate" and +White was left on move, the PGN outcome was "1-0 {Black mates}" instead +of "0-1 {Black mates}"! The bug occurred only for that specific string. + +3.6.2 -- Wed Jul 23 16:47:29 PDT 1997 Tim Mann + +* There was a bug in backing up from the end of a game against a chess +engine, introduced when -reuse mode was added. Fixed. + +* Recognize "{" as terminating an ICS move list. Previously we needed to +see a prompt (containing %), but occasionally ICC can send more stuff +right after a move list with no prompt in between. + +* In WinBoard, -mm now implies -cp, so you don't get the startup dialog. + +* WinBoard startup dialog no longer sets -scp. People used to get +confused because they would give the -fcp and -scp arguments, but omit +-cp. This would bring up the startup dialog, which would set both -fcp +and -scp to the value in the engine name box. Now you can change -scp +only with the command-line argument. That will confuse some people too, +but hopefully fewer. I think overall it's better than putting spaces for +both -fcp and -scp in the dialog, which would puzzle newbies. + +* Bug fix: Analyze File mode now works in WinBoard. + +* Bug fix: WinBoard window no longer cuts off part of the bottom row if +the menu bar wraps to a second line. + +* Accept game end messages of the form "PGN-result {comment}" from the +chess engine, where PGN-result is 0-1, 1-0, or 1/2-1/2. Accept "resign" +or "computer resigns" from the chess engine as a synonym for "0-1 {White +resigns}" or "1-0 {Black resigns}". Accept any message from the chess +engine containing "game is a draw" as a synonym for "1/2-1/2 {Draw}". +Accept "White resigns" or "Black resigns". + +* Enable "Action / Draw" menu item in chess engine mode. It sends the +command "draw" to the engine. Accept any message from the chess engine +containing "offers a draw" as a draw offer. WARNING: Draw offers from the +user and the engine (or from two engines) are not yet matched up by xboard +in chess engine mode. Two engines could get into a loop offering each +other draws. + +* Bug fix: Game end messages from the chess engine are always ignored in +Zippy mode. Previously they could sometimes be processed, which was +sometimes making Zippy hang at the start of a new game that followed +quickly after an old one. + +* Zippy can now respond to titled players in channels. Zippy will avoid +talking to himself in a channel if he knows his own name. + +* Bug fix: in colorization arguments, the bold setting was being ignored +if the background color was defaulted. (xboard only.) + +* Extended ParseFEN to accept Crafty 12.2's interpretation of FEN. +If fewer than 8 squares are given in a row, or fewer than 8 rows are +given, the uncovered squares are empty. Also, there can be a / after the +8th row. + +3.6.1 -- Sat May 17 01:02:33 PDT 1997 Tim Mann + +* Bug fix: Hitting escape while entering a password on WinBoard no longer +sets the font color back to black (which made further typing visible). + +* Bug fix: On Windows NT 4.0, WinBoard /ics /icshelper=timestamp would +often hang if you tried to exit with the Exit menu item, the [X] button, +etc. The same fix may also have corrected the problem where running a +chess program with /xreuse would sometimes crash Windows 95 (but not NT) +when the chess program was killed and quickly restarted. + +* Bug fix: Periodic Updates would not work if turned on after having been +off. Also, the default was needlessly "off" in WinBoard. + +* Zippy bug fix: Continuing an adjourned game was totally broken. The +wrong moves, or no moves at all, were being fed to the chess program. + +* WinBoard change: Giving -ics without -icshost now pops up the startup +dialog with "Use an Internet Chess Server" pre-selected, so that you get a +menu of chess servers instead of going directly to ICC. + +* Bug fix: WinBoard's SaveSettings was saving -icshost, -icsport, and +-icshelper in winboard.ini. This causes a problem if you use a different +icshost later that needs the default values for icsport (5000) and +icshelper ("", meaning none). + +* Disabled complaints about unexpected "[Ii]llegal move" messages from +the chess program; we still get them at times. + +* Greatly simplified the code for Move Now and SIGINT (ATTENTION). Fixes +the bug where Move Now did not work with GNU Chess in WinBoard, and +several more obscure bugs as well. Reintroduces a minor bug: GNU Chess might +not think on your time after a Move Now command. Trying to fix this +causes too many other problems. Documented change in engine-intf.txt. + +* Cleaned up code for obtaining ratings from ICS. It was kludgey and may +have had bugs on systems with no "Creating:" message. It should fail +gracefully there, just not finding the ratings. + +3.6.0 -- Thu May 8 19:55:58 PDT 1997 Tim Mann + +* WinBoard now has right-button context menus in the ICS Interaction +window. Some of the items do immediate commands on the player name you +have selected or pointed to. (Suggested by Paolo Casaschi.) Also, the +middle button or shift+right does a immediate Copy and Paste. + +* Fixed a bug in Zippy's wild rejection. The bug was causing Zippy to +reject all forms of wild. Now it rejects only 1, 9, 16, 17, and 24, as +was intended. These variants have different rules, while the other +variants defined so far only have different starting positions. +(Actually, wild 2, 3, and 4 never allow castling, but may sometimes by +chance have king and rook start on squares where castling appears legal. +This could cause a problem later.) + +* Zippy now resumes adjourned games by feeding the chess program +the move list instead of the position. Setting -getMoveList to False +restores the old behavior. Feeding in the move list is better because +it enables the chess program to correctly handle en passant legality, +castling legality, draw by repetition, and draw by the 50 move rule. + +* Added a WinBoard startup dialog for people who run WinBoard.exe without +using the Start menu or reading the help file. Instead of being dumped +directly into GNU Chess mode, you now get a menu of choices. You now have +to give the new WinBoard -cp option to go directly into chess engine mode. +I did not add this feature to xboard. + +* Handling of "illegal move" from Crafty is now back on. (It was turned +off in 3.4.6; see below.) Crafty 12.0 doesn't seem to send bogus ones +anymore. I did have to suppress sending time and otim in analyze mode to +make this work, but there is no harm in that. + +* Zippy now sends "gameend" to ICS at the end of each game. You can alias +this to "seek" or whatever you like. + +* Added Crafty support for Move Now, using the "?" command. We test +whether this command exists by trying it once at the start of the first +game, before it really makes sense. If we don't get a message like +"Illegal move ... ?", we assume it's OK. (We're careful about this +because sending a "?" to GNU Chess on Move Now keeps it from pondering the +next move as it should.) + +* Added support for a tellusererror command from the chess engine. See +engine-intf.txt. + +* Attempted to make engine-intf.txt complete. + +* Minor fixes/cleanup to GameEnds code, to be sure we always interrupt +when needed, and always undo an extra move generated by stopping the chess +program while it is thinking. + +3.5.7 -- Sat May 03 22:37:44 PDT 1997 Tim Mann + +Beta release of both xboard and WinBoard. + +* Updated xboard documentation. I really wish the man page was built from +the info file instead of being separate! It's a pain to update them both. + +* Updated documentation of the interface between XBoard/WinBoard and chess +programs, and renamed it to engine-intf.txt. + +* Added support for tellics, telluser, and askuser commands from the chess +engine. See engine-intf.txt. + +* Various bug fixes. On WinBoard, 256 color displays are finally handled +right; no more color flashing when you switch windows unless the colors +really need to be updated. Also, I think the problem of the console font +failing to change or changing back by itself is finally fixed. + +3.5.6 -- Tue Apr 29 03:08:00 PDT 1997 + +Beta release, WinBoard only. ChangeLog was out of date in release, +updated here. + +* Added ICC timestamp and FICS timeseal to WinBoard distribution. These +are my own ports to Win32, based on and used by permission of the owners +of the proprietary source code (Daniel Sleator for timestamp, Henrik Gram +for timeseal). The owners permit these programs to be distributed only in +binary form (to help prevent cheating), so to avoid running afoul of the +GPL, I have kept them as separate programs, not linked into the WinBoard +address space. Updated Start menu icons to use them. + +* Miscellaneous smaller changes. + +3.5.5 -- Fri Apr 25 03:06:00 PDT 1997 + +Beta release, WinBoard only. ChangeLog was out of date in release; +updated here. + +* Added simple sound support to WinBoard. + +* Updated WinBoard documentation. + +* Internal implementation of the telnet protocol is now more complete. +You can now hop through a VMS host on the way to ICS. For example, do +"xboard -ics -icshost vms.host.edu -icsport 23", then log in. Do not use +the -telnet flag; that says to use an *external* telnet program. To avoid +double echoes, you need to force character mode in VMS telnet after +connecting from VMS to ICS. Do "^]^Mset mode char^M^M". + +* Display opponent names in the title bar for MachineWhite, MachineBlack, +and TwoMachines modes. + +* WinBoard now has an installer, built with InstallShield. The installer +works with a binary-only distribution. Sources are still freely +available, but now separately. + +* Added SaveSettings to WinBoard, which saves current option settings to +winboard.ini. Made sure all options can be saved and loaded, including +fonts and com port settings. + +* If the game ends while you are dragging a piece, we now don't let you +finish the move. Formerly the move was accepted and your opponent's clock +would start running again. + +3.5.4 -- Fri Apr 18 01:15:24 PDT 1997 Tim Mann + +Beta test release of WinBoard and xboard. The documentation remains +out of date. + +* Many fixes and improvements to new WinBoard user interface code. + +* In Zippy mode, avoid sending another copy of the same move to the chess +program if ICS sends us another copy of the board image. Hard to believe +it took me until now to diagnose and fix this problem! + +3.5.3 -- Sat Apr 12 19:49:33 PDT 1997 Tim Mann + +Beta test release of WinBoard and xboard. + +* Fixed fatal bug in WinBoard input handling. + +* Made code to stop chess program for reuse a bit smarter. Removed kludge +of "white" in initString; it didn't work well, and is unneeded +with Crafty 11.21 and later. + +3.5.2 -- Sat Apr 12 15:40:01 PDT 1997 Tim Mann + +Beta test release of WinBoard. + +* Ignore check and permit promotion to King during suicide games; no need +to turn off TestLegality. + +* Renamed CheckLegality to TestLegality to avoid confusion with the chess +term "check". + +* Added Rematch to Action menu. + +* WinBoard now has a custom ICS interaction window with scrollback, a +separate line for input, and colorization. Accelerators that conflict +with normal editing keys were changed (by requiring Alt+) so they can work +in both the console and the main window. + +* WinBoard error popups are now non-modal and disappear when you make a +new move, as in xboard. + +* Configure now defaults to --disable-ptys on all systems. If anyone has +an ancient SysV system where pipes don't work with select, they can still +do "configure --enable-ptys" explicitly. I would appreciate getting a bug +report if this happens to anyone, with complete output from configure and +"uname -a". + +* "make install" now makes the installation directories too. + +* Fixed a bug that would cause an "Illegal move" message for Black from +GNU Chess to be incorrectly considered bogus. + +* Handle name changes during an ICS game (FICS bname and wname commands). + +* You can force both chess programs to be killed at the end of each game +by turning off the reuseChessPrograms option. There are still some +problems with reusing Crafty even in version 11.20. + +* Now the second chess program stays around by default too, if it ever +gets started. + +3.5.1 -- Sat Apr 5 16:47:48 PST 1997 Tim Mann + +Beta test release. + +* Don't kill off and restart the chess program for each game; keep the +same one running, using the "new" command to start a new game. This +change works around the problem in Windows 95 that makes WinBoard crash it +at times, and is generally desirable to make new games start faster. The +second chess program (for TwoMachines) is still killed at the end of the +game, and unfortunately this can still crash Windows 95. Temporarily +added "white" to the initString to make this work with Crafty 11.20, which +has a minor bug in "new". Older versions of Crafty have worse bugs in +"new"; they should not be used with this version of xboard. + +* Support for FICS suicide chess: Parse illegal moves (that leave King in +check) in game history. If CheckLegality is off, allow promotion to King +and illegal moves in game files. We still generate e2e4 style notation +for illegal moves. + +* Handle FICS "has timeseal; checking" message. + +* Changed the coords from white back to black; this was a bug. + +* Fixed problems compiling with K&R compilers. + +* Fixed an old bug in RegisterMove that was crashing cmail on some systems +(notably linux). + +3.5.0 -- Thu Jan 2 16:59:49 PST 1997 Tim Mann + +Thanks to Frank McIngvale for much of the work on versions 3.4.4 and above! + +* Fix Crafty resumed game time bug (frankm) + +* Word wrap text in Analysis window (frankm) + +* More debug info for XPM loading (frankm) + +* Replaced config.sub, config.guess, etc., with up-to-date versions from +autoconf 2.12. Hopefully this will fix problems on Pentium Pro machines. + +* Removed some Makefile gunk that was causing looping for one person. + +3.4.7 -- Thu Dec 19 14:22:41 PST 1996 Tim Mann + +All changes from Frank: + +* Retrieve ratings from ICC (and FICS, etc., when they add the Creating: +message), save them in the PGN tags, and pass them to Crafty in Zippy mode. + +* Add settable time delay between characters in ICS login script. + +* Colorize messages like personal tells. Fix false recognition of channel +tells. + +* Pass "tells" from Crafty through to ICS (in Zippy mode). + +* Implement ~/ filename convention from C shell for game and position file +names. + +* ZIPPYACCEPTONLY feature for testing. + +3.4, patchlevel 6 -- Sat Nov 23 16:58:50 PST 1996 Tim Mann + +* Put recognition of "illegal move" messages from Crafty for +illegal castling, etc., inside an #if that is currently turned off, +because of a bug in Crafty that generates bogus "illegal move" messages +after some moves that are actually legal and accepted by Crafty. + +* Added -checkLegality option; previously this could not be turned off. + +* Fixed an old bug in finding default board size parameters. + +* Differentiated among channel tell, kibitz/whisper, and personal tell/say. + +* Fixed a bug in detecting Xpm in the configure script. + +3.4, patchlevel 5 -- Mon Nov 18 16:22:53 PST 1996 Tim Mann + +* Added zic2xpm to the kit; it had been omitted by mistake. + +* Added some default colors for -colorize + +3.4, patchlevel 4 -- Sat Nov 16 18:10:17 PST 1996 Tim Mann + +This is meant to be a beta release in preparation for version 3.5. + +* Added InfoXBoard and ManXBoard to the Help menu. + +* Made Frank's ICS input box optional, defaulting to off. + +* Merged in Frank McIngvale's XbKit. Many new features, including +-clickClick mode, the Analysis modes, piece flashing, ZIICS import, +ICS text colorization, and the ICS input box. Many thanks to Frank for +supplying and documenting this code. + +3.4, patchlevel 3 -- Mon Nov 11 18:23:14 PST 1996 Tim Mann + +Small set of changes made while Frank McIngvale was working on XbKit in +parallel. Unreleased in this form. + +* Updated zippy.README. + +* Removed useless X event handler and removed strange code for copying +form translation table to board that worked around the bug it caused. +This makes changing bindings in .Xdefaults more straightforward. + +* Now pressing the Control key steps back one move, and releasing it steps +forward again. + +* Moved quit from "q" to "Q" for greater safety. + +* Use "unobserve" instead of "observe" to stop observing; needed on FICS. + +* Support for interface variable. + +* Strip titles from people who are talking to us, so (for example) Zippy +won't try things like "tell Darooha(*) hello". Needed on FICS. + +3.4, patchlevel 2 -- Tue Jul 9 19:06:42 PDT 1996 Tim Mann + +This patchlevel is not planned to be an announced release. It's in +preparation for integrating Frank McIngvale's XbKit. It mostly contains +minor fixes I've accumulated since 3.4.pl1. + +* WinBoard /telnet option now fires up an external program, as +with xboard, instead of trying to use a feature of NT 3.1 that does not +exist in later versions of NT or in Windows 95. ChangeLog for 3.4.pl1 +said this had been implemented there, but it really wasn't. + +* Indicating player to move by the icon color now works under Windows 95. + +* WinBoard now kills the chess program when you exit using the system menu +or the [X] button. Thanks to Michael Lowe. + +* Minor changes to Zippy, including: Now understands wild challenges on +FICS; these used to crash it. Removed limit on how fast a game will be +accepted. Use "set formula ..." on the chess server to limit this if you +are using GNU Chess. Now sends correct opponent name to Crafty. + +* Added some missing default values to documentation. Thanks to Stuart +Cracraft. + +* Bugfix: Trying to print "No fonts match pattern" error message would +crash. This can happen to Linux users who don't install Helvetica, for +example. + +* Bugfix: Defaulting feature in -size n,n,n,n,n,n would put us in an +infinite loop. + +* Added more directories to search for Athena widgets on HPUX. + +* New cmail (3.12) from Evan Welsh; includes small fix from Kayvan Sylvan. + +* Recognize "illegal move" messages from Crafty for illegal castling, etc. + +* Bugfix: "name" command added to zippy.c for Crafty was producing error +message if GNU Chess was in use. + +* In bughouse mode, suppress holding messages from console window; show +holdings only in banner. + +* Minor fixes/cleanup to Makefile.in and configure.in. + +3.4, patchlevel 1 -- Mon Dec 11 13:43:12 PST 1995 Tim Mann + +* This patchlevel updates WinBoard to match xboard, and includes a few +fixes and minor improvements. "-size tiny" and "-size n,n,n,n,n,n" +are still not implemented for WinBoard. + +* Installed support for Crafty based on code from Bob Hyatt. +Currently the only documentation for this is in the FAQ, and a few +things don't work with Crafty 8.23. Please do not report these +problems as bugs in either xboard or Crafty. Bob and I know about +them. The worst ones (if not all of them) should be fixed in Crafty +8.24. + +* Changed the kludge command we send when gnuchess wants to print +something that doesn't end with a newline, from "help" to "bogus". +This works because the error message gnuchess prints ends with a +newline. It also improves compatibility with Crafty, which doesn't +need the kludge, but for which sending "help" causes a problem. + +* Don't draw grid at all if lineGap is 0; previously we drew the grid +with X "0-width" lines (usually 1 pixel wide) and then overwrote it. + +* Makefile: Removed xboard.info from "all" target so we won't try to +rebuild it, because this fails on hosts that don't have makeinfo +installed. Other minor fixes to "clean" targets, etc. + +* Fixes and cleanup to Auto Comment code that handles continuation +lines and highlighting. + +* Auto Observe now tries to observe the game from the point of view of +the player who was on your gnotify list. Requested by rng. +Limitations: We can't tell which player it was unless you have ICS +highlighting turned on. Also, currently "observe foo" works as +required (observing from foo's point of view) only on ICC, but FICS +will probably implement this soon. + +* "-size tiny" now makes the default font smaller automatically. This +was implemented by introducing an extra Form widget in the hierarchy +for all xboard windows, named either normalLayout, smallLayout, or +tinyLayout. So you can have resource specifications that apply only +to certain layouts; in particular, XBoard*tinyLayout*font. + +* Bug fix: EditGame or EditPosition while playing or examining still was +not really being permitted. + +* WinBoard bug fix: On the EditPosition menu, King did not work. + +* Added text catalog of WinSock error messages to WinBoard, because +Microsoft still has not put them in the system message catalog. + +* Removed support for older ICS game-ending messages that do not have +a PGN result token (*, 0-1, 1-0, or 1/2-1/2) after the closing '}'. +The code for older messages was sometimes firing on the newer +messages, due to parsing ambiguity. If the current code sees an old +message, it will understand that the game is over, but will always +display * as a result token instead of trying to guess the result by +interpreting the text message. + +3.4, patchlevel 0 -- Tue Nov 21 01:02:50 PST 1995 Tim Mann + +* This patchlevel was released for xboard only. + +* Updated the info file. It should now be as up-to-date as the man page, +with good English except in the parts that pertain only to AmyBoard. + +* Added "-size tiny", requested by Bob Hyatt. Also cleaned up bitmap +support and added "-size n,n,n,n,n,n" to allow arbitrary-sized bitmaps, +if the actual bitmaps are supplied by the user. + +* Updated bughouse support. + +3.3, patchlevel 4 -- Sat Nov 18 02:27:21 PST 1995 Tim Mann + +* Unreleased beta that works with preliminary FICS bughouse code. Will +need changes before release to track FICS message changes. + +* Removed use of .EX macro from man page. It is not supported by some +nroff -man macro packages, notably the one on Slackware Linux. Switched +to boldface for references to xboard and other commands within the man +page, as this seems to be the modern way. + +* Bug fix: If ICS rejected a move, it was correctly undone on the board, +but the message widget still displayed the bad move. Reported by DAV. + +* Normally, xboard in ICS mode fetches the move list whenever the board +display switches to a new game. Doing this is now an option +(getMoveList) that can be turned off, which is useful if you are watching +multiple blitz games. Requested by rng. + +* Move list fetching code is now smarter: it ignores a move list if it is +not for the right game. + +* Added support for bughouse as implemented on FICS. Holdings are shown +in the window title in place of the strength numbers. A menu on mouse +buttons 2 and 3 (same on both) lets you drop pieces. There is no checking +as to whether you actually hold the piece you are trying to drop; we rely +on ICS to check that. Notation of the form P@f7 is generated and parsed. +The mate detector does not understand that non-contact mate is not really +mate in bughouse, but this does no real harm. It results in a "#" +suffix being displayed on the move notation, but xboard does not assume the +game is over. + +* Bug fix: Promotion to a knight was not working with ICC! Thanks to +Wendigo for the report. + +* Bug fix: Special pty code for host types *-*-aix3* and *-*-irix3* +(supplied from configure.in) had a bug that would cause childio.c to +fail to compile, due to a "continue" that was not within a loop. + +* Bug fix: In pgntags.c, memory was being freed while still in use. One +symptom this caused was that on some machines, cmail would fail with a +message that it could not find the BlackNA tag. The error was in some +submitted code that I included in version 3.2.pl3 without reading +carefully enough. Anders Forberg noticed the symptoms, and Evan Welsh +(who had nothing to do with causing the bug) found the bug and submitted a +fix; thanks to them both. + +* Removed restriction against using EditGame while playing, observing, +or examining on ICS. You still get a warning popup. + +3.3, patchlevel 3 -- Sat Sep 16 11:44:05 PDT 1995 Tim Mann + +* Bug fix: Going directly from MachineWhite to TwoMachines mode would kill +off the second chess program after Black's first move. + +* Added -timeIncrement feature. Thanks to Joel Rivat. + +* Deleted code that tries to keep you from observing more than one game, +or observing while playing or examining. There is actually no problem in +doing this, except that every time an update comes in from a different +game than is currently being displayed, xboard fetches the history of the +new game, which may be time-consuming if you are on a slow link. + +* Fixed configure so as not to crash when neither lex nor flex is found. +lex or flex is needed only if the user wants to rebuild parser.c. Thanks +to Phil Humpherys for reporting the crash. + +* Bug fix: config.h.in used #define instead of #undef for some macros used +in the pty code in childio.c. This causes the code to fail to compile on +some architectures, because the symbols are supposed to be undefined, not +defined to empty, when they are not set in configure. Bug originated in +3.3.pl0 when config.h was introduced. Thanks to Phil Humpherys for report. + +* Bug fix: ShowThinking would not show anything when current position had +no move to display in the move window. E.g., if position was created by +LoadPosition or EditPosition. + +3.3, patchlevel 2 -- Mon Aug 28 11:11:11 PDT 1995 Tim Mann + +* Zippy code was omitted from xboard-3.3.pl1 by mistake; now included. + +* For WinBoard, added hint to help file that you may need to turn off +LocalLineEditing while typing dialing commands to your modem. + +3.3, patchlevel 1 -- Sat Aug 19 15:13:30 PDT 1995 Tim Mann + +* Zippy distribution is no longer separate from regular xboard distribution. + +* Deal properly with Show Thinking output from GNU Chess when it is +thinking on its opponent's time. In TwoMachines mode this output is +suppressed to avoid interfering with the output from the machine that is +on move; in other modes it is displayed (including the move that GNU Chess +is predicting the user will make next). GNU Chess produces this output +only if it is built without -DQUIETBACKGROUND defined; this symbol is +defined by default in patchlevels before pl75, but undefined by default in +pl75. + +* Bug fix: Handling of initial board position in move list for wild games +was broken, so wild games could not be observed and adjourned wild games +could not be continued. Thanks to "Maximum Entropy" for the bug report. + +* Added feature: algebraic notation now shows "+" indicator for check +and "#" for checkmate, as called for in PGN standard. Thanks to Kevin +Maher for the suggestion. + +3.3, patchlevel 0 -- Thu Jul 27 22:21:07 PDT 1995 Tim Mann + +* Changed configuration to use a config.h file instead of passing zillions +of -D options on the cc command line. + +* Merged a small fix and some updates to the texinfo file from Jochen +Wiedmann. The texinfo file still needs work. + +3.2, patchlevel 5 -- Tue Jul 18 20:29:39 PDT 1995 Tim Mann + +* Beta test release of xboard only. + +* Updated WinBoard code to include new xboard features. + +* Added texinfo file from Jochen Wiedmann to the release, but not as the +primary documentation. It needs updating, and the English needs work. +I did make a few improvements, mostly to change incorrect uses of @var to +either @samp or @code as appropriate. + +* Merged in code changes to 3.2.pl4beta from Jochen Wiedmann. + +* Fixed EditComment; did not pop up window in previous beta. + +* Added AutoComment feature. + +* Added GameListDestroy to disable the outdated game list popup in cases +where we load a new game file without building a new popup. + +* Added yyskipmoves feature to parser.l to speed up building of gamelist. + +* gamelist.c wouldn't compile with a non-ANSI compiler. Fixed. + +* Change to yy_text handling in patchlevel 3 still had problems. Can't +use AC_DECL_YYTEXT in configure.in, because that defines YYTEXT_POINTER +according to whether the lexer on the current host makes yytext a pointer. +But most people will be using a parser.c that was generated on another +host and shipped with the package. + +3.2, patchlevel 4 -- Sun Jun 25 19:13:43 PDT 1995 Tim Mann + +* Beta test release of xboard only. + +* Added FIREWALLS section to man page. + +* Changed -icsport to be a string. Now with the -telnet option, +specifying -icsport "" suppresses the second argument to telnet. + +* Added EditTags feature. Removed AboutGame from menu, because EditTags +subsumes it. EditTags suggested by Jochen Wiedmann and first implemented by +him in AmyBoard. xboard implementation is my own. + +* Fixed some missing or incorrect prototypes. + +3.2, patchlevel 3 -- Sat Jun 3 18:57:38 1995 Tim Mann + +* Beta test release of xboard only. + +* New version of cmail from Evan Welsh, to fix compatibility problems with +perl 5.0. + +* Added game list feature on Load Game, based on code from Jochen +Wiedmann. Integrated it with cmail. + +* Several bug fixes from Jochen Wiedmann, including one to my yy_text +workaround for the difference in the type of yytext between lex and flex. + +* Handle clock pause on FICS. + +* Suppress clocks in untimed FICS games (time control 0 0). + +* Rebuilt configure script with autoconf 2.3. This fixes a bug in +configuring for X11R6, where -lSM -lICE would not be added when needed. + +* Fixed inconsistent type declarations on IntSigHandler and +CmailSigHandler. Bug report from Josh Daynard. + +* backend.c wouldn't compile with a non-ANSI compiler. Fixed. + +3.2, patchlevel 2 -- Tue Feb 7 14:50:30 1995 Tim Mann + +* Minor release of both xboard and WinBoard. + +* Added recognition of some FICS messages. On the other hand FICS is also +changing some of its messages to match what xboard already recognizes. + +* Temporarily went back to using "promote" command on ICS instead of +"a7a8=Q", because FICS doesn't implement the latter yet. + +* We now avoid using overlapped I/O on pipes in WinBoard, to make Windows +95 beta 2 happy. This lets WinBoard work with GNU Chess on Windows 95! + +* Installed patches from Jochen Wiedmann to coordinate with Amiga XBoard. + +* Installed patch to cmail bug in LoadGame from Evan Welsh. + +* Bugfix: checkmate and stalemate moves entered with EditGame in ICS mode +were not being handled correctly. Bug was in GameEnds(). + +* Implemented EchoOn and EchoOff for xboard, using system("stty echo\n"). +Now passwords won't be echoed when you connect directly to ICS. Also, +telnet negotiation characters aren't displayed (when possible). + +* Implemented more of the telnet protocol. Now connecting to a telnet +server with "-icsport 23" should work even without giving the -telnet +option. The telnet is in "old line-by-line mode". + +3.2, patchlevel 1 -- Sat Dec 10 13:50:46 1994 Tim Mann (mann@pa.dec.com) + +* This patchlevel released for WinBoard only. + +* winboard.c: Fixed ConsoleInputThread(). Needed to change CRLF to LF, +not to CR. This was stopping normal /ics mode from working. Thanks to +Asher Kobin for the bug report. + +* winboard.c: Fixed Raw(), EchoOn(), EchoOff(). Now they take effect +immediately, not on the next console read after the one in progress. + +* winboard.c: Attempted to make WinBoard work with gnuchessx running +directly on Windows (not remotely via rsh). It now works on NT, but only +if gnuchess is told not to think on its opponent's time ("easy\n" removed +from initString). The problem seems to be that GenerateConsoleCtrlEvent +is not doing anything. On Windows 95 beta 2, we get error messages on +both reading and writing to gnuchessx; I didn't investigate why. + +3.2, patchlevel 0 -- Wed Dec 7 13:23:36 1994 Tim Mann (mann@pa.dec.com) + +* Thanks to all the beta testers who gave me feedback: Josef Nelissen, +Steve Booth, Evan Welsh, Dima Dakhnovsky, Chris Petroff, Peter Jansen, +Derek Terveer, Michel van der List, Richard Lloyd, Shelly Mistry, and Mike +Lee. Sorry if I forgot anyone. Thanks to Virendra Kumar Mehta for +information about DYNIX/ptx. + +* Don't exit on keyboard EOF unless we get two in a row. + +* WinBoard only: added -localLineEdit switch to allow turning off local +line editing if you really want to. It is still a bad idea to let the +echoing be done remotely, however; see below. + +* Fixed some configure problems on HP-UX. [Steve Booth] + +* Fixed (I hope) configure problem on SunOS 5.3/Solaris 2.3. [Josef Nelissen] + +* cmail bugfix from Evan Welsh (cmail 3.4). + +3.1, patchlevel 9 -- Fri Dec 2 23:54:56 1994 Tim Mann (mann@pa.dec.com) + +* Beta distribution only + +* Always do local echo/edit of user typing in ICS mode. Doing the echo +downstream may seem nicer in some modes, and it can be hard to turn that +echo off, but the echoed characters can be interleaved with ICS output +and make it impossible to parse correctly. For xboard this involved only +a change to recommendations in the man page, as Raw() isn't implemented. +For WinBoard, removing Raw() made a real difference. Added code in +WinBoard to change /r/n back into /r on keyboard input, as we get the +former when Raw() is not called. + +* Do not issue ICS "refresh" command after we start to observe a game +unless we get to the next prompt without seeing a board image. Newest +version of ICS doesn't require this refresh, but old versions around still +do. + +* cmail bugfix and small code cleanup in LoadGame, from Evan Welsh. + +* Added keyboard accelerators N/P for LoadNextGame/LoadPreviousGame. Evan +Welsh request. + +* Using "-" on the command line as a filename for loading (saving) games +or positions specifies the standard input (standard output). Alain Picard +suggestion. + +* On WinBoard only, a command line option without a leading '-' or '/' is +now taken as the value of -lgf. + +* Changed to not use stdin, stdout, stderr as initializers in backend.c; +needed for GNU libc compatibility. You also must build parser.c with flex +(not lex) if you are using GNU libc, to avoid having the same problem +there. + +* Changed WinBoard to avoid using "overlapped" input on the console. It +now seems to fully work on Windows 95 beta 2. + +* Improved comment popups on WinBoard. Now newlines are handled properly, +and the plain Comment popup window doesn't disappear and reappear when we +step to a new move with a new comment. + +* Fixed bugs in detecting the absence of the time and otim commands. + +* Added built-in implementation of rcmd protocol to WinBoard. Windows NT +does not implement passing signals through rsh, and Windows 95 does not +have rsh at all. + +* Added -remoteUser option. + +3.1, patchlevel 8 -- Mon Nov 28 15:26:07 1994 Tim Mann (mann@pa.dec.com) + +* Beta distribution only + +* Rearranged ChangeLog file into reverse chronological order to be closer +to GNU standards. + +* Integrated new cmail code from Evan Welsh (including cmail RCS rev 3.2). +Includes a bug fix to TruncateGame. + +* Updated ICS address to be chess.lm.com. + +* Bug fixes to handling the aftermath of FatalError. Thanks to Chris +Petroff for the bug report. + +* Test for remsh before rsh, other fixes for HP-UX. Thanks to Richard +Lloyd. I wasn't able to do all the things he suggested, so there may +still be some rough edges in building on HP-UX. See the FAQ file for hints. + +* Bug fix; added missing check for HAVE_SYS_SYSTEMINFO. Thanks to Josef +Nelissen for testing on Solaris 2.x. + +* Updated WinBoard to match xboard. (WinBoard still has a few option +dialogs that don't exist in xboard.) + +* Changed Hint output to a popup. + +* ShowThinking output and move output no longer overwrite each other. +ShowThinking output won't appear if the displayed position is not current. +ShowThinking output in TwoMachines mode made clearer and documented. + +* Implemented --enable-ptys and --disable-ptys arguments to configure. + +* Fixed Book and Hint code to work over a pty with echo enabled and tabs +expanded to spaces. Thanks to Dima Dahknovsky for the bug report. + +* Moved Attention calls from all over xboard to one place, inside +SendToProgram. + +* Added bulletproofing to ShowThinkingEvent. + +* Added code to handle "refresh N" boards that come in from ICS properly, +assuming ICS is changed to mark them with a new relation code (-3). + +3.1, patchlevel 7 -- Sun Nov 13 22:16:01 PST 1994 -- mann@pa.dec.com + +* Beta distribution only + +* Changed ShowThinking to just show the current best line in the +DisplayMessage area, instead of dumping everything to stdout. + +* Installed new cmail (RCS rev 3.1) and cmail.man (RCS rev 1.10), and +changes to cmail code in backend.c, from Evan Welsh. + +* Miscellaneous minor fixes. + +3.1, patchlevel 6 -- Fri Nov 4 12:53:53 PST 1994 -- mann@pa.dec.com + +* This patchlevel was not actually released to anyone. + +* Updated the pty code to be based on GNU Emacs 19.24, and moved it to a +separate file. It was hard to split out just the pty configuration from +all the stuff emacs does with its custom configure script and .h files, +but I did my best. + +* Converted from imake to GNU autoconf. This was a serious upheaval. + +* Put in code to help trap "error gathering move list" problem reported by +Michel van der List if it recurs. I couldn't reproduce it. + +3.1, patchlevel 5 -- Mon Oct 31 21:12:00 PST 1994 -- mann@pa.dec.com + +* Beta distribution only. + +* We now test for checkmate or stalemate in EditGame mode after every user +move, and in LoadGame mode whenever we hit the end of a game without +seeing a PGN end marker. cmail needs an update to deal with this +correctly; Evan promises one. + +* Bugfixes in new move generator. Thanks to Mike Lee for reporting one of +the bugs. + +* Imakefile was omitted from patchlevel 4. + +3.1, patchlevel 4 -- Mon Sep 19 18:19:46 PDT 1994 -- mann@src.dec.com + +* Beta distribution only. + +* The move generator includes a mate tester. Initially this is used only +by cmail, and even that usage needs further work. + +* Wrote a true move generator and used it to replace all the move +disambiguation and legality checking code in parser.l. The move generator +is capable of dealing correctly with en passant and castling availability, +but the rest of the program still does not keep track of this information. + +* Bug fix: xboard did not handle "foo has made you an examiner of game 23" +message. Thus you could not use examine features until the next board +came in, showing your new relation to the game. Thanks to POOKIEWOOKIE on ICS +for the bug report. + +* Added AutoObserve feature. Thanks to Chris Petroff for the idea. + +* Added Book feature to use new gnuchess "bk" command. Mike McGann request. + +* Redid code to handle missing "time" command in gnuchess, because latest +gnuchess no longer sends a response to this command. + +* Eliminated need for -DFLEX. Thanks to Michael Shields (Vladimir?) for +the idea. + +* Added missing code to implement MoveNow in TwoMachines mode. + +* Added ShowThinking feature. Thanks to Richard Lloyd for the idea. + +* Applied patches from Evan Welsh; some fixes and improvements to the +cmail code. + +* Fixed bug in moving from EndOfGame mode to MachineWhite or MachineBlack, +introduced in previous patchlevel. Also fixed related bug in ending a +game in ICS mode; was entering EndOfGame mode instead of IcsIdle. + +* Added patch to implement internetChessServerLogonScript flag, from Kevin +O'Connor. Thanks! + +3.1, patchlevel 3 -- Wed Sep 7 13:22:07 PDT 1994 -- mann@src.dec.com + +* Beta distribution only. + +* Merged in new cmail code from Evan Welsh. He added the ability to have +more than one game per message, needed for official IECG matches. I added +the ability to resign or offer/accept/decline a draw in a cmail game. + +* Bugfix: invalid -tc option caused segmentation fault; DisplayFatalError +was called too early in initialization. Georges Honore reported this bug. + +* Decided to keep EndOfGame mode as an element of the user interface---it +means that a gnuchess game or loaded game has ended, and the user must +explicitly select EditGame to edit it, rather than just being able to +enter more moves freely. But internally there is no longer an invariant +tying this mode to whether the chess program is running. + +* Zippy bugfix: Was saving only the final position in the -sgf file when +the game ended by something other than resignation or flag. Also fixed +the longstanding bug that Zippy would think the final board of such a game +was a new game and restart the chess program. + +* Now does a better job of faking castling availability in FEN. We still +don't really keep track of it, but now at least we don't say that castling +is still available when the king or rook is not on its home square. + +* Bugfix: Initial board of game history for wild games was going through +too much processing, causing us to forget the game length, which is now +needed by ParseGameHistory. This was causing problems with resuming +adjourned wild games. + +* Updated ICS host to ics.onenet.net. + +* Zippy now accepts challenges where the opponent specified his color. + +* Added ZIPPYPASSWORD2 to let operator give commands directly to gnuchess. + +* Bitmap directory can include alternative icons now, too. + +* Handle "Game * (*) has no examiners" message from ICS. + +* Revamped window title and icon name selection. + +3.1, patchlevel 2 -- Sun Jun 12 17:16:28 PDT 1994 -- mann@src.dec.com + +* "Beta" distribution for Zippy users only. + +* Bugfix: common.h was assuming that X11 type Boolean is char, which is +not always true. This might have caused all sorts of obscure bugs! + +* Installed new bitmaps from Elmar Bartel as the default. Many thanks! +The old bitmaps can be used by changing the "bitmaps" symbolic link before +compiling xboard, or by using the -bitmapDirectory option at runtime. + +* Loading a game that ends with the PGN unfinished symbol ("*") now always +leaves you in EditGame mode. + +* Added documentation of -icscomm to man page. Thanks to Maarten Remkes +for the linux script. + +* ^C now kills gnuchess as well as xboard. Thanks to Dima Dakhnovsky for +reminding me how to do this. + +* Bitmap icon color now indicates player to move. Stuart Cracraft +suggestion. + +* Changed piece bitmap flags to have just one flag, which points to a +directory full of bitmaps, instead of a flag for each bitmap. Also +changed bitmap naming convention. + +* "Connection closed by ICS" is no longer a FatalError popup. This was +too annoying in the normal case where the user typed "quit". + +* Changed default font to 14 pixels instead of 10 points. This seems to +make it close to the size I want it to be on more displays. + +* Major mode (GNU Chess, etc.) appears in title bar. Stuart Cracraft +request. + +* Bug fix: EditGameEvent, MachineBlackEvent, MachineWhiteEvent, and +TwoMachinesEvent were calling PauseEvent to get out of pause mode, which +now has undesired side effects, such as advancing the display to the +forwardMostMove. It works fine to just set pausing = FALSE instead. + +* IcsExamining mode now lets you access ICS edit position commands using +the same popup menus as xboard's EditPosition mode. Thanks to DAV on ICS +for inspiring the idea. + +* Corrected test for gcc on HP in Imakefile; thanks to Richard Lloyd. + +3.1, patchlevel 1 -- Wed Jun 1 16:25:11 PDT 1994 -- mann@src.dec.com + +* Added parser.c.lex and parser.c.flex to the distribution. + +* Added HP gcc options to Imakefile, from Mats Nylen. + +* EndOfGame mode no longer highlights EditGame mode indicator, because the +modes really do differ. I would like to get rid of EndOfGame mode in the +future, at least as far as users can see. + +* Larger %a in parser.l, needed for RS/6000 users. + +* Minor improvements to Mail Move error messages. + +* When -debug flag is given to xboard, -v is passed to cmail. + +* Old Save Style uses "1. ..." instead of "1..." when black moves after a +comment; more like xboard 3.0's actual style. + +* New version of cmail from Evan Welsh. Looks for UCB Mail in a more +portable way and has some minor bug fixes. + +* Bug fix: Saving a FEN position while in EditPosition mode with black to +play was showing white to play in the saved position. + +3.1, patchlevel 0 -- Fri May 20 16:36:15 PDT 1994 -- mann@src.dec.com + +* This is the first general release since 3.0, patchlevel 9. Releases +since then have been limited-distribution or beta releases. + +* Thanks to my version 3.1 beta testers: Dmitry Dakhnovsky, Ed Hanway, +Richard Lloyd, Mike McGann, Shelly Mistry, Josef Nelissen, Chris Petroff, +Jack Robertson, Michel van der List, Ky Macpherson, Derek Terveer, and +Evan Welsh. Sorry if I've forgotten anyone who gave me feedback. + +* Updated man page. + +* Minor cleanup on menu sensitivity code. + +* Integrated another even better version of cmail from Evan Welsh, +including some code he supplied in xboard itself. + +* A few more fixes to cmail support. + +* Automatically update clocks after an ICS "moretime" command. + +* Handle ICS automatic examine mode (set examine 1) after a game. + +3.0, patchlevel 14 -- Tue May 17 13:41:44 PDT 1994 -- mann@src.dec.com + +* Beta test release only. + +* Don't suppress prompt on first board of game being examined; otherwise +it looks like nothing happened at all (i.e., like you're lagged). + +* Added StopExamining and StopObserving (Chris Petroff suggestion). + +* Made Reset do a refresh on ICS. John Chanak's original ICS code for +xboard tried to do this; I finally decided it was a good idea after all. + +* Fixed bugs in handling updates that come in while you are pausing in +examine mode. This is pretty tricky to do right. + +* Made un-Pausing immediately pop you to the current position. This is +always necessary in examine mode, since the game may have changed under +you; your remembered moves might no longer be right. So I made it do the +same in all modes. + +* Took Detach Examine mode back out...used Pause mode for this instead! + +* Put in a trap for the GNU Chess bug of printing an Illegal Move message +when its own hint move is illegal. + +* Attempted to fix a Zippy bug; bogus "exited unexpectedly" messages after +it checkmates its opponent. This involved adding an argument to GameEnds +to say who says it ended (ICS, GNU, etc.) and taking different actions in +different cases. Unfortunately, this just restored an older Zippy bug, where +Zippy restarts gnuchess when it gets the board with the final position, +because GameEnds still puts xboard in EndOfGame mode. Sigh. + +* We now capture elapsed time on last move when getting game history. +(Josef Nelissen bug report) + +* Rewrote code to redisplay last file title so it really works. + +* Fixed bug in oldSaveStyle. + +* Larger %a and %o were needed for lex. + +3.0, patchlevel 13 -- Mon May 16 16:26:22 PDT 1994 -- mann@src.dec.com + +* Beta test release only. + +* FatalError popups stay on the screen now. If the error is really fatal, +all functions are disabled, and the program exits when you press OK. + +* Redisplay last file title when using Load (Next/Previous/Same) Game. + +* Zippy understands new match challenge message format on ICS. + +* Added Revert command. + +* When examining a game on ICS, < > buttons do ICS backward/forward +commands, unless you set the Detach Examine option. Thanks to Dima +Dakhnovsky for the idea. + +* Fixed various minor problems in cmail mode. + +* cmail generates the tags now. New version of cmail from Evan Welsh. + +* cmail mode won't let you do MailMove unless the currently displayed +position is exactly one move past the end of the game you loaded. + +* Fixed building of man pages in Imakefile + +* Updates to INSTALL file + +3.0, patchlevel 12 -- Sat May 7 21:10:03 PDT 1994 -- mann@src.dec.com + +* Beta test release only. + +* Brought man page up to date. + +* Added Shift+R to resign from keyboard. + +* Some items on Action menu available in GNU Chess mode now. + +* Revamped Action menu. + +* Reordered functions in backend.c as a small step toward reorganizing +this whole mess. + +* Generate TimeControl PGN tag. + +* Get type of ICS game (e.g., rated blitz) and save in PGN tags. + +* Bug fix: Clocks were not redisplayed when entering EditGame mode. + +* Bug fix: Clocks were not being redisplayed after loading a game file +with -td 0, so they could show the wrong color active. + +* Bug fix: Chess programs would be killed and match mode would exit +prematurely when loading a PGN game fragment ending with "*". + +* ICS command "sposition" no longer confuses xboard. + +* Integrated new version of cmail (with support code in xboard) from Evan +Welsh. + +* Added TruncateGame, MoveNow, RetractMove, and QuietPlay. + +* Bug fix: switching between MachineWhite and MachineBlack was not calling +Attention(). Reported by Dino Dini. + +* More improvements to INSTALL and Imakefile. + +* Pack moves into 79 character lines in PGN output. We don't generate +check indications, and we always break the line before the result, +so this is not quite PGN export format. + +* Use FEN tag in PGN. + +* Improved finding and counting of game starts in save files. + +* Negative position or game numbers in -lpi/-lgi mean to seek to that byte +offset. Hook for possible future features, not in man page. + +* Detect and handle absence of either "time" or "otim" commands in +gnuchess. + +* Don't use "promote" command to ICS anymore. + +* Handle switching sides and taking back moves on FICS. + +* Handle flip state flag in style 12 board. + +* Handle examine mode on ICS. + +* Improved error popups for various kinds of illegal moves. + +* Suppress unasked-for hints from gnuchess (which it generates in post +mode). + +* Load/save position functions use FEN. Old style also supported. + +* Added detailed error messages if loading a bitmap file fails. + +* Small board has 2-pixel lines between squares instead of 3-pixel. + +* Added OldSaveStyle and AboutGame. + +* Renamed ForceMoves to EditGame. + +3.0, patchlevel 11 -- Tue Sep 21 15:25:36 PDT 1993 -- mann@src.dec.com + +* The following changes were present in xboard 3.0, patchlevel 11, but the +first group did not make it into WinBoard 3.0 until later. xboard +3.0.pl11 was a limited-distribution release only, mostly to Zippy users. + +* Man page minor fixes. + +* Added a missing file close. + +* Removed automatic error popdown on Reset, which was destroying some +error messages before they could be read. + +* Fixed char vs. unsigned char warnings on bitmaps. + +* Use ICS board style 12. Some improvements to ICS parsing. + +* Comment window is now labelled with the move the comment is on, and +comments don't pop down when you step to the next move. + +* Save files now in PGN format. + +* Support for loading PGN files. PGN tags pop up when a PGN game file +is loaded. + +* More info in INSTALL and Imakefile about building for Suns (and +other systems). + +* WinBoard 3.0 patchlevel 11 split off from an early version of xboard +3.0 patchlevel 11, so it does not have all the features of that +patchlevel. The following changes made it into both xboard and +WinBoard: + +* Made Comment dialog non-modal in WinBoard. + +* EndOfGame mode is now more transparent. It looks like ForceMoves +mode except that there is no chess program running. + +* Small bug fixes in clock management. Most noticeably, pausing when +it is gnuchess's move now works as documented (again). + +* Add minimal support for -icscomm option. Not documented yet because +I haven't sorted out the issues with setting the tty modes on the comm +port device, or with locking it properly. But it's usable by wizards. + +* Don't restart the chess program upon Backward event from EndOfGame mode. + +* Suppress extra prompt after ICS sends us a board. + +3.0, patchlevel 10 -- Sat Sep 11 18:44:03 PDT 1993 -- mann@src.dec.com + +* Beta test release only. + +* Zippy now plays chess. zippy.c and zippy.h are still not included +in the standard distribution, but are available on request. + +* Switched to using style 12 on ICS. + +* Updated man page, and documented use of XBoard*form.translations to +add more shortcut keys. + +* Added shortcut keys "d" to claim/offer/accept a draw, and "t" to +call flag. Suggested by venu on ICS. + +* More explicit instructions in INSTALL file. + +3.0, patchlevel 9 -- Tue Sep 7 14:02:00 PDT 1993 -- mann@src.dec.com + +* General release, minor update to 3.0.pl8. + +* Loosened checking on whether it's okay to start a move, to satisfy +ICS ultra-blitz players. Now we don't check whether it's your turn +until you let go of the piece. + +* Parser now recognizes "+-+" as meaning the game ended in a draw. + +* Got rid of S_NONE symbol, which seems to conflict with some symbol +Sun defines. + +* Tweaked the man page. Clarified that there is currently no way for +two people running copies of xboard to play each other without going +through the Internet Chess Server. + +* Fixed a bug in color name conversion. Asking for two different +colors whose names were the same in the first four characters would +get you two copies of the first one. Thanks to Volker Zink for the +bug report. + +* Improved confusing Usage() message. + +* Added a bunch of Sun information to the Imakefile and INSTALL file. +Thanks to Ed Hanway, Arik Klingensmith, and others who responded. + +* Test for defined(WIN32) instead of !defined(unix). + +* Avoid using (void *) type with non-ANSI C compilers. Thanks to +James Altucher for the bug report. + +3.0, patchlevel 8 -- Thu Sep 2 12:23:01 PDT 1993 -- mann@src.dec.com + +* Note: Patchlevel 8 was the first non-beta release of xboard 3.0 + +* Added cmail to distribution. Contributed (and still maintained) by +Evan Welsh, welsh@epcc.ed.ac.uk. + +* Bug fix: -queen option wasn't initializing menu check. Reported by +Pat Surry. + +3.0, patchlevel 7 -- Thu Aug 26 13:23:24 PDT 1993 -- mann@src.dec.com + +* Sent WinBoard 3.0.pl7 to doli@troi.cc.rochester.edu (Torre on ICS) + +* Added parser.h to hold the interface to parser.l + +* Upgraded COPYING file and copyright notices to GNU GPL version 2. + +3.0, patchlevel 6 -- Tue Aug 24 15:16:13 PDT 1993 -- mann@src.dec.com + +* We no longer display intermediate positions or intermediate comments +while loading a game file with -timeDelay 0 or loading an opening to +start up a -matchMode game. + +* Loading an empty game from an xboard save file now gives a status +message "No moves in game" instead of an error popup saying "Game not +found in file." + +* Added comment.awk to distribution. + +3.0, patchlevel 5 -- Tue Aug 17 16:45:54 PDT 1993 -- mann@src.dec.com + +* Bug fix: xboard would crash if it couldn't get all its colors; now +it switches to monoMode instead. Also, xboard was trying to convert +color resources even when using a b/w display. Reported by Larry +Rogers. + +* Bug fix: Declared fields of TimeMark as signed so that we get signed +instead of unsigned arithmetic. SubtractTimeMarks was breaking on +Alpha AXP (which has 64-bit longs) with old declarations. Reported by +Michel van der List. + +* Bug fixes: Keyboard accelerators now work after EditComment window is +popped down. Iconize keyboard accelerator now works even if xboard +was started with -iconic flag and later deiconized. + +* Bug fix: The routine that tests whether a move is illegal because it +would leave you in check was not handling e.p. captures properly. +Reported by Patrick Surry. + +* Bug (?) fix: Was adding time to clocks at time control even when +loading a game file. Actually it's not entirely clear how time +controls should be dealt with when some moves are loaded from a file +or clicked in with ForceMoves. For now ForceMoves mode does add the +time (because it can be used to change moves during a live game), but +LoadGame mode does not. + +* Updated usage message. + +* Previous attempted fix to matchMode had broken TwoMachines mode and +generally needed more work. Also simplified command line interface to +matchMode. + +3.0, patchlevel 4 -- Thu Aug 5 14:17:18 PDT 1993 -- mann@src.dec.com + +* Thanks again to the beta testers listed for 3.0 patchlevel 3, and also +Desnogues, Steve Cariglia, Niklas Engsner, Mark Silver, and Roger Rowe. + +* Reorganized man page, splitting OPTIONS into subsections. + +* matchMode was very broken; fixed. + +* Changed convention for turning off command line options from --opt +to -xopt, to be less inconsistent with GNU standards. Also changed +the long command line options to take True/False arguments like +resources; seems to make more sense this way. + +* Added AlwaysQueen option -- suppresses promotion dialog and always +promotes to a queen if you move a pawn to the last rank. Has no +effect on gnuchess (or your ICS opponents!) -- they can still +underpromote. + +* Subtracted an extra fudge term when determining how wide message and +title widgets should be. This fixes a problem some beta testers had. +Wish I knew why it's needed. + +* Bugfix in parser; symptom was that you couldn't do LoadGame after +observing a game on ICS. + +* Bugfix in Forward; didn't work after game ended while Pause was turned on. + +* Removed bogus execute bits on .h files. + +* Use REMOTE_SHELL and TELNET_PROGRAM definitions. + +* MachineWhite and MachineBlack now work from TwoMachines mode. + +* Popping down an error message with the [ok] button was not turning off +the errorUp flag, so the next move would cause xboard to try to pop it +down again, resulting in a wild memory reference and sometimes a crash. + +3.0, patchlevel 3 -- Tue Aug 3 17:40:27 1993 -- mann@src.dec.com + +* Thanks to my beta testers: Patrick Surry, Takuya Kojima, Robert J. Luoma, +Chris L. Petroff, Richard K. Lloyd, Michel van der List, Craig Metz, +Antoon Frehe, Simon Clift, Shelly, Eric Peterson, Christopher Mitchell, +Martin Koch, Ed Hanway, Steve Booth, Udo, Ken Hobday, and Joseph Duhamel. + +* Improved error messages for trying to move the wrong color pieces or +to move when it's not your turn. + +* Special code for monoMode on 1-bit displays now understands displays +where 1=white and 0=black. + +* Declare getenv() if not included; avoids a compiler warning. + +* Documented borderXoffset and borderYoffset. + +* Added -titleInWindow option for use with X window managers that +don't let us set the title in the window banner. + +* Fixed error message printing in WinBoard; system error messages no +longer appear as numeric codes. + +* The error message popup is now non-modal; you don't have to press the +[ok] button before you can do something else. In addition, the popup is +positioned so that it doesn't cover up the board (too much), and making a +move or otherwise clicking on the board pops it down. (Not implemented in +WinBoard.) + +* You can now call your opponent's flag in ICS mode by clicking on his +clock. + +* Fixed minor bugs in -flipView option and documented exactly how xboard +decides which way to flip the view. + +3.0, patchlevel 2 -- Fri Jul 30 22:20:23 PDT 1993 -- mann@src.dec.com + +* Added Autosave to Options menu. Would be better to have Save +Options dialog as in WinBoard, but this was quick to do and gives the +most-needed functionality. + +* Changed "Reload Game" on menu to "Reload Same Game". + +3.0, patchlevel 1 -- Thu Jul 8 21:22:59 PDT 1993 -- mann@src.dec.com + +* Sent a copy of patchlevel 1 to Patrick Surry to beta-test. + +* Added -cmail option that sets appData.cmailMode. Currently a no-op. +In the future this may set special modes for use by the cmail script +for playing chess by email. + +* Added LoadNextGame, LoadPreviousGame, and ReloadGame to File menu. +ReloadGame suggested by Patrick Surry. + +* Added -flipView command-line option. Suggested by Patrick Surry. + +* Fixed bugs in parser.l: (1) Pattern for "# xboard game file ..." +needed to match to end of line. (2) Start of a new file was not matching +the ^ start-of-line character. The fix for this is a kludge. + +* Made game counting code in LoadGame more robust, and made LoadGame +able to detect the end of a saved partial game (by noticing the start +of the next game) in game files created by XBoard itself. We don't +try to find the start of the next game that way in other kinds of game +files, because the only way I can think of to do that is to look for +another move #1, and that technique gets too many false hits. + +* Fixed recently introduced bug in LoadGame when game starts with a +position diagram. + +3.0, patchlevel 0 -- Fri Jun 25 14:17:17 PDT 1993 -- mann@src.dec.com + +* Changes in this patchlevel were too numerous to list. Larger ones are +listed below. + +* Added a popup dialog to enter and edit comments. Inspired by some +code from Patrick Surry. Changed the normal read-only comment popup +to the same style. + +* Added ICS init script feature from Karl Schwamb. + +* Added some ESIX fixes and OMIT_SOCKETS ifdef option, from Kayvan Sylvan. + +* Revamped code to allow use of flex instead of lex on parser.l. +Using flex requires adding -DFLEX to defines in Imakefile. + +* Source code is split into front end (xboard.c), which knows about X +and Unix, and back end (backend.c), which knows about chess, gnuchess, +and the ICS. There is also a front end for Windows NT. + +* Boolean command line options now use "-foo" to turn on and "--foo" +to turn off instead of "-foo true" and "-foo false". [Later -xfoo; +see above.] + +* Added menu commands to control autoflag, bell, and coords options. + +* User interface has a new look: (1) Menu bar instead of array of +buttons. A few very commonly used features have small buttons in +addition to being on the menus. (2) Large font for clock. (3) Pop-up +dialogs for errors. + diff --git a/ChangeLog.2 b/ChangeLog.2 new file mode 100644 index 0000000..2594bd8 --- /dev/null +++ b/ChangeLog.2 @@ -0,0 +1,1012 @@ +2.1, patchlevel 11 -- Sat Jun 5 00:01:01 PDT 1993 -- mann@src.dec.com + +* Added code to deal with "wild" games on ICS. This includes allowing +castling with the king on d1 or d8, which is allowed in wild(1) games +if the king started there. Notation is o-o to castle "short"---to +whichever side the king is closer to---and o-o-o to castle "long." +Right now wild castling is always allowed by xboard; we rely on ICS or +gnuchess to reject it when we aren't really in wild mode. + +* memcpy call had arguments in wrong order. + +* Removed April Fool code + +2.1, patchlevel 10 -- Mon Feb 15 10:19:31 PST 1993 -- mann@src.dec.com + +* Avoid trying to select on a pipe when using System V. Needed to +copy some code from InitChessProgram() up into establish(). + +* Bug fix in disambiguating pawn moves like "ed". + +* Fix to error handling in ReceiveFromProgram. + +* Bug fix: entering EditPosition mode with black to play highlighted +White's clock instead of Black's. + +* Added telnetProgram resource in case "telnet" is not the name of the +telnet program. + +2.1, patchlevel 9 -- Fri Jan 22 19:08:27 PST 1993 -- mann@src.dec.com + +* Entering Force Moves mode clears "flag has fallen" messages from display. + +* ICS host name can now be in numeric format; for example 128.2.232.4. + +* Bug fix: LegalityTest was failing to test whether a pawn move was +illegal because the move would discover a check. + +* Handle ICS message "mann asserts a win over manntest, who disconnected." + +* Bug fix: A recent change to PromotionCallBack had broken +underpromotion to a knight. + +* Bug fix: In EditPosition mode, dragging a piece onto a square border +would make it vanish. xboard wasn't distinguishing this case from +dragging the piece off the board. Thanks to Matthew Kidd. + +* Removed "static" declaration from yywrap for compatibility with IRIX +version of lex. Thanks to stiller@blaze.cs.jhu.edu. + +* Added substitutes for bzero, bcopy, and gethostname for Solaris +SVR4. Thanks to Michael Grant. + +* Bug fixes to queen move disambiguation. Bugs showed up only when +promotion resulted in more than one queen on the board. + +2.1, patchlevel 8 -- Fri Dec 11 17:54:18 PST 1992 -- mann@src.dec.com + +* parser bug fix: It now really works to leave off the piece a pawn is +promoting to and let it default to queen. + +* When starting to observe or play an ICS game, don't draw board in +initial position and then immediately redraw it in the current +position. + +* Handle ICS messages when an "abuser" forfeits a game by +disconnecting and when a game is aborted ("removed") by an +administrator. + +* Bug fix: A user move when in LoadGame+Pause mode was resuming the +game load instead of putting us in force mode. + +* It seems that crashes inside sscanf when xboard is compiled with gcc +(as on IBM PS/2 AIX, mentioned below, and also on VAX Ultrix 3.1) are +caused by an incompatibility between gcc and the sscanf implementation +on these platforms. A workaround is to specify -fwritable-strings to +gcc (see the gcc documentation). Added info on how to do this to the +Imakefile. Thanks to Tom McConnell for this information. + +* Clocks are allowed to go negative. This is mostly for ICS +compatibility, but it affects gnuchess mode too. Also, we give the +time bonus when a player hits the time control boundary even if his +flag is already down. This choice is a bit debatable, but it makes +things look better when you are in TwoMachines mode and gnuchess's +time management screws up causing it to exceed its time limit. + +* Implemented move legality checking code. Moves made with the mouse +or parsed from a file are checked for legality before being made. +This is mostly in preparation for future extensions, such as +human-human play. For now it makes -noChessProgram mode more useful. + +* If the user takes back moves, we restore the clocks to the earlier +settings. + +* We now handle the output of the ICS oldmoves command, including +parsing the game end condition. + +* Added autoCallFlag mode. + +* Fixed glitches in the medium size outline king and rook bitmaps, and +touched up the medium size solid king and outline queen. + +* bug fix: DisplayMove would not display backwardMostMove - 1. + +* Added CallFlag button and removed AcceptMatch. CallFlag is more +important with new ICS, and accepting the current match offer is easy +with the new ICS command "accept" (can be abbreviated "ac"). + +* LoadGame and LoadPosition display tail of file name (plus index +number, if any) as title. + +* MachineWhite, MachineBlack, and TwoMachines now work properly from +LoadGame and LoadGame+Pause mode. + +* Use o-o and o-o-o to castle on ICS, not 00 and 000. + +* Stripped out code for old ICS messages; new ICS is now installed. + +* Bug fix: don't offer autosave when paused during LoadGame. + +2.1, patchlevel 7 - Fri Dec 11 17:40:56 PST 1992 - mann@src.dec.com + +* Track change to "Illegal move" message in new ICS. + +2.1, patchlevel 6 -- Tue Dec 8 10:48:44 PST 1992 -- mann@src.dec.com + +* Kludged around bug in keeping comment popup where you put it by +adding borderXoffset and borderYoffset resources that give the width +of the borders added by the window manager. Yucch. + +* Changed searchDepth kludge back to using "help" instead of "bd"; the +latter didn't work because the output contains a line starting with +"White", so we think gnuchess is telling us that White won. Oops. + +* Removed some code that uses an X11R5 feature, XrmGetDatabase. +Without this, the auto font sizing code is harder to make work, so to +keep my sanity I had to change it to affect only the fonts that appear +in the main window and the comment popup, not the other popups. Maybe +this is better anyway. + +* AcceptMatch button now works after a counterchallenge, too. + +* Added code for more variants of messages about games being adjourned +or aborted. These messages need to be unified in new version of ICS. + +* Added workaround for minor bug in ICS; game number on first board +can be wrong. + +* Removed code to say "refresh n" instead of "refresh"; was broken and +wasn't needed anyway. + +* Added missing casts for compilers that distinguish enums from ints +and missing cast in connect call. + +* Added code to recognize "both sides are out of time" draw message +proposed for next version of ICS. + +* Thanks to Danny Sleator and Joe Peterson for bug reports. + +2.1, patchlevel 5 -- Sun Dec 6 19:52:40 PST 1992 -- mann@src.dec.com + +* Removed gcc and CDEBUGFLAGS from Imakefile. + +* Corrected setting of mode to ForceMoves when game file ends or +contains an AmbiguousMove or BadMove. Previous bug was harmless. + +* Added AcceptMatch button and mention of 50-move rule for Draw button +to man page. + +2.1, patchlevel 4 -- Sun Dec 6 02:55:42 PST 1992 -- mann@src.dec.com + +* Now handles revised messages from new version of ICS. New ICS is +not released yet, so this code might change further. Next patchlevel +will remove support for old ICS; both are there now. + +* Initial processing for a new game being watched or played now +happens when we see the first board image. Removes the need to parse +some messages and unifies some code. + +2.1, patchlevel 3 -- Tue Dec 1 19:40:40 PST 1992 -- mann@src.dec.com + +* Handles ICS messages "Draw : neither player has mating +material" and "Draw : White has no material, Black has no time." + +* Added AcceptMatch button for ICS mode. + +* Fixed bug in previous fix to yylexstr(). + +* Fixed bugs in code for loading old position files that don't start +with "#" and for handling case where user asked for nth position in +file but there aren't that many. + +* Handles ICS message "* has restored your old game" + +* ResetProc always clears title line now. + +* Don't issue just "refresh" when watching a game; use game number. +Upcoming new version of ICS may need this. + +* Added code to try to prevent user from watching and/or playing more +than one game at a time. There is a race condition inherent here; if +we get more than one board from the game before our command to stop +watching it takes effect, we'll think the user started it again. Not +clear how to fix this. + +* Redid ParseBoard8 to use sscanf. Code is a good deal cleaner now. +Also, we now parse out the game number too, though we don't make much +use of it yet. + +* (Tried to put in a feature that recognizes the current game in a +game file must have ended when we see the start of a new one, but had +to disable it because we have too many false hits with the current +parser, especially in gnuchess listing files.) + +* Moves read from game files or received from ICS are now translated +into canonical algebraic form just like all other moves. Minor nit: +If you use Reset while playing or observing a game in ICS mode, the +game history (including the current board position) is lost, so the +next move of the current game can't be translated. + +* Default fonts now vary with board size, and are chosen by pixel size +instead of point size (since piece bitmaps have a fixed pixel size). + +* Bug fix: An extra Forward was required to skip over time indications +in game files. + +2.1 patchlevel 2 -- Fri Nov 27 23:30:00 PST 1992 -- mann@src.dec.com + +* If you move the comment popup, the next time it pops up it will come +back where you put it. + +* Fixed yylexstr() so calls to it can be interspersed with calls to +yylex(). + +* Fixed bugs in Forward/Backward while in LoadGame mode. + +* Changed Save{Game,Position} functions to append instead of +overwriting if file exists. Changed Load{Game,Position} functions to +deal with multiple games/positions per file. + +* Changed load{Game,Position}File resources to trigger automatic load +on program startup. Changed save{Game,Position}File resources to +trigger automatic save after every completed game and on program exit. + +* Added autoSaveGames mode. + +* Fixed bug with PromoPiece in call to MakeAlg from MakeMove. + +* Many changes to get rid of picky compiler warnings and generally +clean up the code. + +2.1 patchlevel 1 -- Fri Nov 27 02:45:00 PST 1992 -- mann@src.dec.com + +* A last minute change before patchlevel 0 went out broke +ParseGameHistory(). Immediately fixed in patchlevel 1. + +Version 2.1, patchlevel 0 -- Fri Nov 27 02:00:00 PST 1992 -- mann@src.dec.com + +* Uses "time" command of gnuchess 4.0 and following to keep clocks in +sync. Still works with older versions without this command; we test +whether the command is present the first time each chess program is +started. + +* File name dialog pops up under the mouse cursor, so that it's got the +keyboard focus if the window manager is using pointer focus. + +* Attempts to move the wrong color piece or an empty square are filtered +out in xboard instead of being passed on to GNU Chess or the ICS. + +* The reason a game ended is now remembered even if you move backward +and forward after it ends. It is forgotten only if you make a move +(which is as it should be---this is now a different game, which hasn't +ended yet). The message saying why the game ended no longer wipes out +the last move. + +* Pause, Backward, Forward, ForceMoves, and EditPosition now work from +TwoMachines mode. + +* Forward and Backward now change only the board display unless you +are in ForceMoves mode. Pause mode keeps new moves that are received +from being displayed on your screen until you unpause (or use +Forward). + +* Added option to ring the bell after opponents' moves. + +* Saved games that start from other than the standard initial position +now begin with a postion diagram as in saved position files. The +loader is modified to understand such save files. + +* Improved error checking when trying to read from gnuchess. + +* Parser understands things that look like time indications, e.g., (0:12), +instead of popping them up as comments. + +* Send "quit" to gnuchess before trying to kill it. I needed this +locally because sending a SIGTERM to rsh was not killing the remote +program on some internal field test systems we have. + +* Merged in code from John Chanak to make xboard a front end to the +Internet Chess Server, and added several improvements of my own. +(These include parsing end of game messages, loading the current state +and previous history of a game that's joined in progress via "watch" +or "load", automatic switch from board style 1 to 8 when needed, +removing irrelevant buttons and adding some new ones, adding the +useTelnet and gateway resources, and miscellaneous code cleanup, bug +fixes, and documentation.) Many thanks to John for writing and +contributing the initial version of this code. + +Fri Oct 30 20:16:40 PST 1992 (patchlevel 25) mann@src.dec.com + +* gnuchess now castles by sending us "o-o" or "o-o-o" (starting with a +preliminary version of 4.0.pl60 that I have). Added code to handle +this. The old format ("e1g1", etc.) still works too. + +* Added code to format moves in normal abbreviated algebraic notation +(for example, e4, exd4, f8Q, Nf6, 0-0) instead of coordinate algebraic +(for example, e2e4, e3d4, f7f8q, g1f6, e1g1). Moves entered with the +mouse or received from gnuchess are translated into this canonical +format for display on the message line or in saved game files. Moves +read from game files are not translated, however; they are shown and +saved just as they appear in the file. + +Mon Sep 14 13:19:01 PDT 1992 (patchlevel 24) mann@src.dec.com + +* It's not really correct to write an ep capture of a pawn on e5 as +fxe5; this should be written as fxe6 because e6 is where the capturing +pawn ends up. Nevertheless, the parser now interprets fxe5 as the ep +capture f5xe6 unless there is a pawn on f4, in which case it +interprets fxe5 as f4xe5. By design, the parser does not flag fxe5 as +ambiguous if there are pawns on both f4 and f5; instead it prefers the +more legitimate f4xe5 interpretation. + +* A move like fxe6 or fe6 is now interpreted as an e.p. capture of the +pawn on e5 if there is one there and e6 is empty. + +* A move like fxe5 can no longer be interpreted as an e.p. capture if +there isn't a pawn on e5 to be captured. Previously this could happen +erroneously if there were pawns on both f4 and f5, and the f4 pawn was +capturing a piece on e5. + +* The parser no longer munges the move it is parsing; in the past, for +instance, it would remove the "x" from a move like dxc5 before echoing +it to the screen. + +* The parser now detects when a move is ambiguous and returns an +error, instead of arbitrarily choosing one possibility as it used to. + +Mon Aug 10 18:40:47 PDT 1992 (patchlevel 23) mann@src.dec.com + +* Added code so parser can handle fully qualified algebraic, e.g., +Ng1-f3, N/g1-f3, Ng1f3, or even Pe2-e4. The "P" and "/" work only for +fully qualified moves, not generally. + +* Fixed parser bugs in handling moves with rank or file disambiguator, +e.g. N1f3 or Ngf3. + +Mon Jul 6 17:55:32 PDT 1992 (patchlevel 22) mann@src.dec.com + +* AIXV3 patch from Tom McConnell; thanks! + +* After hitting the Backward button we see the last move made instead of +the word "Pausing" displayed. + +* Fixed a couple of problems compiling on IRIX; thanks to Michel Arsenault +and Alan Walsh for bug reports and help with fixes. + +* Added optional display of algebraic notation coordinates along left and +bottom edges of board. This was inspired by some code from Jean-Christophe +Engel; thanks! + +* Swapped EditPosition and Pause buttons to reduce danger of losing the +game in progress by hitting EditPosition when you wanted Backward. Thanks +to Ove Lundberg for complaining (though it bugged me too). + +* Despite one complaint, I kept the feature of changing both clocks when black +makes time control, rather than changing each individually when the player +involved makes it. This is to avoid having it look like White is way ahead on +time while Black is thinking about the last move of the time control period +(i.e., when White has made time control but Black hasn't yet). + +* Corrected clocks to work as in real tournaments. Time is *added* when you +reach time control; previously the clocks were simply set to the length of the +new time period. Also, when a player's flag falls, he still does not receive a +new time allotment at the next time control, but his opponent does still +receive more time if *his* flag has not fallen; previously, time controls were +ignored for both players if either flag fell. I forget who reported this bug. + +* Added a small ESIX patch from Kayvan Sylvan. + +Mon Jun 22 13:24:38 PDT 1992 (patchlevel 21) + +* Added some SVR4 support code from Ronald Cole. It's Greek to me. + +* Note: Stephen Meatheringham reports a bug causing xboard to crash with an +error from the X server when run on a Sun Sparcstation IPX with Solaris 1.0.1 +and OpenWindows 3.0. This bug has not been tracked down yet. + +* Fixed a problem with ATTENTION code. On some operating systems, you have to +be even more cautious about when you send a SIGINT to gnuchess, because the +signal handler gets deinstalled each time it is used, and gnuchess does not +reinstall it immediately. In particular, if you send a SIGINT and make an +illegal move or ask for a hint, gnuchess does not reinstall the handler until +*after* you make your next move, so you had better not send a SIGINT before +it. I put a workaround for this case into xboard; I hope there are no more. + +* The ATTENTION code is needed when compiling for the ESIX operating system, +because ESIX has a bug in the FIONREAD ioctl, so the code in gnuchess that +lets you interrupt its thinking on your time just by typing in your move does +not work. Perhaps gnuchess will have a workaround for this eventually. + +* Fixed yet another bug in using XtGetValues; code to inhibit shell resizing +was leaving a null pointer as the place to store the current sizes. + +* Man page fixes: corrected -sl to -sd, updated LIMITATIONS. + +* Added include of conditional on HAS_GETTIMEOFDAY. I hope this +works for all systems; on mine, and are the same file, +but with an #ifndef that makes it harmless to include both. + +* Thanks for reports from Mike Pearlman, Stephen Meatheringham, Kayvan Sylvan, +d87-mal@nada.kth.se, Urban Koistinen, and Ronald Cole. + +Mon Jun 8 11:39:18 PDT 1992 (patchlevel 20) + +* Documented default value of initString and explained what it means. This +paragraph also serves to inform the user that xboard by default will tell +gnuchess to think on his time, something one user apparently didn't understand. + +* Redid -searchDepth (formerly -searchLevel) and -searchTime code. They both +work correctly with gnuchess 3.1 now. The -searchDepth option also works +correctly with gnuchess 4.0. The -searchTime option does not work with +gnuchess 4.0.pl50 or earlier because those gnuchess versions do not have a +working searchTime feature. Instead of having xboard do a half-baked emulation +of this feature by using a 1-move time control, I will be submitting a patch to +the gnuchess folks to restore the feature as in 3.1. + +* Improved clock code. It now keeps accurate track of fractional seconds of +clock running time, if your system has gettimeofday(); if not, it is generous +about them---if a clock has been going for n.m seconds when it is stopped, only +n seconds are charged. Previously, xboard would charge one second immediately +when a clock was started, so if n.m had elapsed when it was stopped, n+1 would +be charged. This should stop xboard from thinking gnuchess has let its flag +fall on the last move of a time control, as it often did before. I also +improved the comments and condensed the code a little. I hope there are no +systems that have X11 and don't have gettimeofday(), but if there are, I'd like +to know what to replace it with. + +* "Flag dropped" messages now show up on the top line, beside the clocks, so +that they don't obscure more interesting messages on the second line. + +* Fixed confusion of NULL and '\000'. + +* Include time.h to get ctime() declaration. + +* Fix to "parser bug" messages in parser.l. + +* Changed code to work with old-fashioned tolower() macro that requires its +argument to be an uppercase letter. + +* Minor fix to some usage error messages; was reversing program name and +erroneous argument value. + +* Thanks to Mitch Wright, Ranier Orth, and Henrik Schmiediche for bug reports. + +Fri Jun 5 13:06:08 PDT 1992 (patchlevel 19) + +* Note: xboard does not seem to work when compiled with gcc 1.40 on a +PS/2 running AIX. It crashes at the sscanf in line 768 of xboard.c. +You can work around the problem by specifying the -timeControl option +on the command line instead of defaulting it. This does not seem to +be a bug in xboard itself; it runs okay on PS/2 AIX when compiled with +MetaWare High C. [But see 2.1.pl8 above.] + +* Removed bogus files from distribution. + +* Changed variable name that conflicted with SVR4 ttyname function. + +* Thanks to Christoph Strozyk for another bug report, and to several +of the folks mentioned under patchlevel 18 for testing it. + +Wed Jun 3 17:50:37 PDT 1992 (patchlevel 18) mann@src.dec.com + +* Added an include of sys/fcntl.h to pick up the definition of O_RDWR for +System V users. + +* Fixed a bug in CatchPipeSignal; was testing the wrong variable to determine +which chess program got the signal. + +* Removed the declaration of strrchr, which was causing problems for some +people, and added an include of or instead. + +* Fixed a bunch of type errors uncovered by compilers that check more carefully +than the one I was using. I just patched many of them with casts---typically +cases where a function didn't take the same number and type of arguments as the +X header file prototype said it should---because I didn't see any other way to +fix them. The versions of the X header files that I have don't actually have +full prototypes for these function types; they declare only the return type and +just give the argument types as comments. + +* InitChessProgram returns immediately if chess program died while we were +waiting for it to say "Chess". I think this fixes a bug that could make xboard +crash or go into an infinite loop printing "Warning: Select failed; error code +9" if gnuchess crashed there. + +* Removed code that tries to put the file descriptor used to read messages from +gnuchess into nonblocking mode. I don't see how this kludge could ever have +fixed the problem it was intended to (see below), and it seemed to be causing +a race condition when we were waiting for the initial message from gnuchess +after it started up. + +* Thanks to Richard K. Lloyd, Konstantinos Konstantinides, Mark +Seiden, Erik Schoenfelder, Andreas Stolcke, Rainer Orth, Henry Thomas, +and Kris Van Hees for bug reports and help with fixes. + +Sun May 31 08:00:00 PDT 1992 (patchlevel 17) Bart Massey bart@cs.uoregon.edu + +* 'xboard' suffered from a couple of serious bugs. An initial + size needed to be given to the message label to avoid a race + condition (!) so I gave it some text (otherwise occasionally + xboard would fail because the message widget was 0 width under + MIT X11R4). The sizes needed to be Dimension, not int, because + they were written in by Xt -- on my big-endian box Dimension + is short, causing chaos. Also, I hacked a declaration in for + strrchr() to shut the compiler up -- this is arguably a kludge, + but I couldn't think of anything better; maybe you can. + +Fri May 22 13:40:50 PDT 1992 (patchlevel 16) + +* First real (non-beta) release of version 2.0. + +* Added GNU copyleft notices covering version 2.0 enhancements. + +Thu May 21 12:30:09 PDT 1992 (patchlevel 15) + +* Removed -g from Imakefile. + +* Added casts in parser.l to prevent warning messages from some C compilers. + +* Bugfix: code to exit if chess program couldn't be started had bug in error +message printing. + +Tue May 19 11:58:06 PDT 1992 (patchlevel 14) + +* Fixes one small bug: If LoadGame does not find a game in the file, it resets +xboard to BeginningOfGame mode (as if the Reset button was pressed), instead of +leaving it in LoadGame mode. + +Mon Apr 13 18:32:27 PDT 1992 (patchlevel 13) + +* Improved error handling when gnuchessx crashes. Now displays a message and +enters EndOfGame state without exiting. This should help with diagnosing +gnuchessx problems, since the position and move history are not lost. + +* Debugged man page. + +Version 2.0 -- Thu Apr 2 16:04:54 PST 1992 (patchlevel 12) + +* Added small 40x40 pixel pieces; board size now specified as small, medium, or +large. + +* Improved man page. + +* Saved position files now say "white to play" if it's white's move. + +* SavePosition while in EditPosition mode now gets side to play right. + +* Made "Pawn" the default on edit position menus. + +* Removed "To play" from edit position menus, since it's redundant. Left +support code in so it can be restored if someone wants it. + +* Tightened parser's definition of a move number to help further with skipping +over stuff before the first move. + +* Put back feature of skipping over stuff in game files before a start of game +marker. This helps when loading electronic mail messages that have things +like "00" in the header (looks like castling), or that talk about moves in +running text before the actual game score. Tradeoff is that we can't load +games that don't either have move numbers or say "gnuchess game" just before +the moves. + +* Changed version number to 2.0 because others have used "1.3" for patched +versions of 1.2. Display version number and patchlevel at startup. + +Thu Apr 2 15:30:22 PST 1992 (patchlevel 11) + +* Bugfix: Match started with TwoMachines button now handles the case where +user loaded/edited a position *and* forced some moves. + +* added error message feedback to many cases where the user's button press is +rejected because it isn't allowed in the current mode. + +* added -noChessProgram option to allow use as a passive chessboard without +gnuchess, replacing old buggy scheme that tried to do this automatically when +gnuchess was not found on the search path. + +* parser accepts "=" in front of promotion piece + +* parser accepts ":" notation for captures + +* Removed SwitchSides button to make room for EditPosition. Left code in +place, ifdef'ed out. + +* Added EditPosition mode. + +* Reformatted xboard.c to eliminate long lines. + +* Promotion popup now appears near rank to which pawn is moving. + +* UI improvement: Button representing current program mode is kept highlighted. + +* Bug fix: Hint button is now disabled when machine is on move. + +Sat Mar 21 14:57:37 PST 1992 (patchlevel 10) + +* TwoMachines now works from MachineWhite or MachineBlack mode. + +* ForceMoves and Backward/Forward now work at the end of a game started by +the TwoMachines button. + +* Sends o-o or o-o-o to gnuchess instead of O-O or O-O-O. + +* Bug fix: SwitchSides button is now disabled when machine is on move. + +* Added -searchLevel option and corrected handling of -searchTime to reflect +the way gnuchess really handles command line options instead of what the +documentation used to say. Allowed optional ":seconds" on times. + +Tue Mar 17 21:00:35 PST 1992 (patchlevel 9) + +* Removed non-working code that tried to recover when a remote chess program +could not be started; now exits with a message instead. + +* Now waits for chess program to print its first message (normally "Chess") +before sending it any commands. + +* Matches between two machines can now start from a black-to-play position or +black-to-play opening. + +* Bug fix: The program would sometimes lose track of the board position after +the end of the game, drawing a board full of white pawns next time it got an X +redraw request. Now fixed. + +* Cleaned up handling of illegal moves in game files. Now we just stop reading +and go into ForceMoves mode. + +* Saved games against gnuchess indicate who won (restored and debugged 1.2 +feature). + +* Setting -searchTime turns off -clockMode. + +* My trick for setting up a black-to-play position broke in the transition from +gnuchess 3.1+ to 4.0. Installed a different trick that works with both. + +* Bug fix: Was clobbering memory by mallocing one byte too few for the file +name in SetupPositionFromFileProc. This usually resulted in a crash on the +second attempt to load a position from a file. + +Mon Mar 16 16:49:00 PST 1992 (patchlevel 8) + +* Game and position files are saved in CHESSDIR as well as loaded from there. +We actually chdir there, so gnuchess listing files also wind up there. + +* Underpromotion moves from gnuchess really work now. + +Sat Mar 14 14:55:24 PST 1992 (patchlevel 7) + +* Cleaned up lots of bugs and kruft in parser.l. It's a wonder the old version +worked at all. Improved rejection of random text interspersed with the moves. + +* Relabeled buttons to reduce confusion (Play From File --> Load Game; +Setup From File --> Load Position). + +* Bug fix: Doesn't exit at the end of a game that was started by pressing +the Two Machines button. + +* Bug fix: Doesn't get confused if you hit Machine Black (White) while +the machine is already playing black (white) and is on move. + +* Prints "White to play" or "Black to play" after loading a position file. + +* Bug fix: No longer hangs if no start-of-game is found in a game file. + +* More permissive about game file format. The first line is not assumed +to be a header comment unless it starts with "#". We don't insist on +seeing a "1." before the first move. + +* Added pop-up dialog to allow underpromotion. Moving a pawn to the last rank +pops up a dialog to let you select what piece to promote to. Also added code +to handle underpromotion moves from gnuchess or from a game file correctly. + +* Added code to send SIGINT to gnuchess before trying to move, if gnuchess +might be busy thinking on our time. The code is ifdef'ed out because it's +not necessary; only beta-test versions of gnuchess 4.0 at patchlevel 19 or +below require it. + +Mon Feb 24 20:10:22 PST 1992 + +* Merged fixes received from Stuart Cracraft and Mike McGann, to iconic mode +and to ShutdownChessPrograms. (They both sent the same fixes.) I did not +install the change that removed "easy" from the initialization string, so +xboard will still try to run gnuchessx in "hard" mode (thinking on opponent's +time) by sending this command. + +Version 1.3 -- Thu Dec 19 18:19:00 PST 1991 mann@src.dec.com (Tim Mann) + +* I've fixed a slew of bugs in this version of xboard: + +* You can now back up from the end of a game, even if gnuchess was playing +against you. Since gnuchess exits upon mate or draw (when it's not in force +mode), this feature works by starting up a new copy of gnuchess and feeding it +the saved starting position and moves. Drawback: the new gnuchess starts with +clocks at the beginning of a fresh time control. + +* Note: the "force" command to gnuchess is a toggle. I fixed a couple of +places in xboard where "force" was being issued when gnuchess was already in +force mode, which resulted in chaos. I don't know if they were in 1.2 or if I +added them myself in the course of putting in new features. + +* ForceMoves button is now legal in PlayFromFile mode. It closes the game file +and lets you force moves (or go Backward) from whatever position you've +reached. + +* The parser now recognizes "white resigns" and "black resigns" (in any +combination of upper and lower case, with or without the closing "s"). These +used to be misinterpreted as meaning "white wins" or "black wins" respectively! +Added "1 - 0" and "0 - 1" as equivalents for "1-0" and "0-1". + +* I removed the parser feature of considering "!" as a comment delimiter. +"!" is so common as an annotation in game scores that this feature seems like a +very bad idea. + +* Added a wait() after each successful call to kill() to avoid leaving zombie +processes around. + +* Removed the feature of putting an indication of how the game ended into the +internal move list when playing from a file. The only benefit of this was that +it would get written back out if you saved the game at that point. This +feature doesn't seem too useful, since you are unlikely to save a game you've +read in without making any changes, and it caused a lot of problems in the code +and user interface. The end condition is still displayed as a message when +it's first read in from the file. End conditions when playing against gnuchess +are still saved, too. + +* programName is now the last file name component of argv[0], not all of it. + +* xboard.c got three compiler warnings due to arguments that didn't match the +prototypes on X toolkit functions. I got rid of them by adding some casts, and +adding extra unused arguments to the ReceiveFromProgram function. + +* As I received it, the distribution had an extra period glued on the front +of every line that started with a period. This broke the manpage in an +obvious way. It also broke parser.l in a nonobvious way that stopped +PlayFromFile from working. + +* Fixed one or two bugs where the clock was started when it shouldn't have +been. I think one example was if you tried an illegal move in ForceMoves mode. + +* Now starts the machine's clock if you hit MachineWhite when white is on move +or MachineBlack when black is on move. + +* Now updates the to-move indicator (highlight on clock display) when you use +Forward/Backward or ForceMoves. + +* gnuchess 3.1+ has a bug that makes it try to think on its opponent's time +even when in force mode; this causes problems with xboard's SetupFromFile +command because gnuchess's saved hint move is garbage after the new position is +loaded, so gnuchess prints out an error message when it tries to think about +what it would do if the user made this move. Here is a patch for gnuchess +3.1+: + +*** nondsp.c~ Mon Dec 2 12:37:18 1991 +*-- nondsp.c Thu Dec 19 15:36:06 1991 +*************** +*** 1223,1229 **** + ok = flag.quit = false; + player = opponent; + ft = 0; +! if (hint > 0 && !flag.easy && Book == NULL) + { + fflush (stdout); + time0 = time ((long *) 0); +*-- 1223,1229 ---- + ok = flag.quit = false; + player = opponent; + ft = 0; +! if (hint > 0 && !flag.easy && Book == NULL && !flag.force) + { + fflush (stdout); + time0 = time ((long *) 0); + +* SavePosition/SetupFromFile now handle black-to-play positions. If it's +black's move in a saved position, the line "black to play" is printed +immediately after the board display. Upon loading a position, xboard +looks for "black" at the beginning of this line to determine whether it's +black's move. + +* SetupFromFile now leaves you (effectively) in ForceMoves mode. This +eliminates some cases where the program would get into an inconsistent state, +and hopefully is more intuitive for the user, too. + +* PlayFromFile now leaves xboard in ForceMoves mode after playing through all +the moves in the file. You can use Backward/Forward, make moves, get gnuchess +to join the game with MachineWhite or MachineBlack, etc. The game file can end +with either white or black to play. + +* Backward/Forward now seem to work in all cases. Previously using these +buttons during a game against the machine would get xboard out of sync with +gnuchess's idea of what was going on, resulting in chaos. Now using these +buttons puts xboard in ForceMoves mode; you can bring gnuchess back into the +game using the MachineWhite or MachineBlack buttons. + +Thu Jun 27 15:06:25 PDT 1991 + + * Remove comment popups during a reset. + + * Bug in my forward move fix. Didn't work for playgamefile mode. + +Thu Jun 20 15:04:06 PDT 1991 + + * Can't do a backward move when it isn't your turn because gnuchess + gets confused. Similar bug for forward move. Do a bunch of moves, + back up move and go forward. These get filtered out now. + + * Put easy back into the initString. This DISABLES easy mode which by + default is ON. + + * New-line wasn't always being added to forward move strings sent to gnuchess. + + * Parsed comments as [ ..............text follows ] into d7d5 + + * Long game file comments cause core dumps on HP systems. + + * Multiple uses of the get positition file button got confused + on the second click. + + Minor fixes to the 1.2 release + +Version 1.2 -- Tue Jun 11 17:14:12 PDT 1991 + + * For version 1.2, Jeff Kenton, Richard LLoyd, David Jensen, Martin D., + Bill Schmidt, Scott Hemphill, Paul Vaughan and Bill Shauck all found + a lot of bugs that we put into xboard just to see if they were paying + attention. They were. + + * Changed the protocol that xboard uses to work with the new version of + gnuchessr. + + * There was an off by one error with the clock resetting code. Also, + the clock display highliting was wrong. Thanks to Bill Shauck for + pointing these out. + + * enumerations are not really integers on some C compilers. I added casting. + The new version of gnuchess expects the "go" command for two machine + and machine plays white cases. The whiteString resource is for + compatibility with previous gnuchess versions which get confused by go. + Thanks to Martin D. for catching these. + + * Fixed a bug where the checkmate message wasn't being parsed and xboard + kept playing. Also, the message was added to game file if saved. + Thanks to Scott Hemhill for pointing this out. + + * Fixed a bug where saving a long game, resetting and saving a short game + resulted in appending the end of the long game to the short one. + If a game is just being played out and there is no reason for gnuchessr + to be used, ignore pipe signals. This allows people to use xboard + as a chess board without need for gnuchess. Also, trivially bad moves + such as e2e2 are not passed on to gnuchessr but instead ignored out of + hand. This allows people using xboard as a chessboard with gnuchessr + to pick a piece up, think and put it back down without making a move. + Thanks to Jeff Kenton for pointing these out. + + * Added the CHESSDIR environment variable. Game and position files are + found in this directory. If this variable is not declared, then the + current directory is used. File names starting with / are treated + specially. + + * The bitmap file names were changed so that none exceeded 14 characters. + This is necessary for R5. + + fcntl(from_prog[0], F_SETFL, O_NDELAY); + + The xboard fix was to set non-blocking i/o on the read pipe for gnuchessr + + printz ("Illegal move (no matching move generated)"); + + * fixed a problem with the new version of gnuchessr where xboard wasn't + getting gnuchessr error messages for illegal moves. The problem seems + to be fixed *without* any gnuchess changes but this is likely to be + highly system dependant. There should be a new line on line 246 of nondsp.c + + * -iconic doesn't work at all now. The Iconify() does work. This was + a tradeoff and it is really an Xt bug. + + * Fixed a compiler warning for gcc and an error for the IBM RT compilers. + This is the VOID_PROC macro in xboard.h. Thanks to David Jensen for this. + + * If the DisplayWidth or DisplayHeight is less than 800, use small size mode. + Also the size of the name widget was reduced from 500 pixels to 400 pixels + because in small size mode there was a gap on the right. + Changed the default font from fixed to helvetica_oblique14 to: + **-helvetica-bold-r-normal--14-*-*-*-*-*-*-* + helvetica_oblique14 is a font alias not on all R4 systems. + Curiously enough, the 17 point is not available on 75dpi systems + and the 18 point font is not available on 100dpi systems. + Thanks to Richard K. Lloyd for pointing these out. + + * Minor hacks to work with R5 alpha. Had to add an event handler to the + boardWidget to get translations to work. This may go away with the real R5. + Added WM_PROTOCOLS: QuitProc() for R5 ICCCM compatibility. + + * If the first character of the file is not `1' then the first line + of a game or position file is displayed as the name in a label widget. + + * Added a PopUp dialog for getting file names. + + * Modified the code to use the R4 routines rather than R3 compatibility. + + * Changed the forwards/backwards/readgamefile code to allow a play to step + back and forth in a game. If he steps all the way to the beginning + he has to restart the game. If he gets into a mated position, same problem. + + * Moved the man page from xboard.1 to xboard.man. This makes imake man page + installs work correctly. Thanks to Richard K. Lloyd for pointing this out. + + * Corrected the queening code. XBoard was sending the wrong syntax. + It was sending for example h8(Q) when it should have been sending h8q. + Thanks to Paul Vaughan and Mike McGann for pointing this out. + + * Added a lex parser for algebraic games. It should be easy to use the parser + for other interfaces such as the Microsoft Windows version. + It parses comments of the form [anything] and ! to the end of a line. + +Version 1.1 -- Mon Jan 7 14:46:03 PST 1991 + + * Roger Dubar, Konstantinos Konstantinides, Wolfgang S. Rupprecht, + Paul Scowen, Mvh Smidt and Kayvan Sylvan all helped immensely during + beta-testing. + + * older non-ANSI versions of Sun compilers complain vociferously. + + * the remoteShell resource was added for HP-UX systems + and other systems where the remoteShell isn't rsh. + + * -iconic doesn't work properly. If XBoard is opened iconic then + iconifying it later with a keystroke doesn't work. I think + this is an Xt bug. + + * For systems with smaller screens, XBoard can use smaller pieces, + and a smaller board. -bigSizeMode False uses a smaller set of pieces. + These are scaled versions of the large pieces. They look ok but could + be improved. + + * getlogin() does not work in all cases. + It was replaced by getpwuid(getuid())->pw_name). + + * Warning messages get displayed in the message box. + + * Any button restarts a paused game. + + * Kayvan Sylvan contributed a patch for ESIX. + It seems that select() on pipes is broken on his system. We declined + to incorporate his patch though, because it was a work-around for + something that was broken on one system, and selfishly, that system + was not my own. Nevertheless, it is likely that other System V users + on PC's may need to use this patch and it is is included as the file + ESIX.patch. To use it, type + + patch xboard.c ESIX.patch + + * Fixed a bug where hint didn't work. The local version of gnuchessr + had been hacked. The fix was to clone stderr and stdout for gnuchessr. + + * Fixed a bug where a player could play after a game had been finished. + + * The bitmaps have been pushed into the bitmaps directory. + + * Substantially rewrote and simplified the Two Machine code. + + * Added StrStr() because many systems don't have this ANSI function. + + * Added keyboard equivalents. Added an iconify keystroke, C or c. + + * Works with gcc now. gcc complained about casting float constants + as XtPointers. + + * Detect if the visual doesn't support color. If so, run in monoMode. + An alternative would be to detect grayscale visual and use a collection + of gray user interface colors. + + XBoard.clockMode: False + + * For people who don't like or use chess clocks a clockMode switch + has been added. It is on by default. It can be turned off in the + .Xdefaults file with + + * Added a declaration, xtVersion, which will quickly break on R3 Intrinsics. + + * Hal Peterson contributed a new Imakefile. + + * Rewrote DisplayClocks(). + + * Rewrote TwoMachinesPlay mode. + + * Konstantinos Konstantinides added the -searchTime option. + + * Substantially rewrote and simplified the clock code. If a game was paused + and then resumed, the clocks were out of sync. + + * Fixed a bug in HandleUserMove() where the user could make a move while the + machine was thinking. The fix detects and ignores these moves. onMove + was not being used and was removed. + diff --git a/FAQ.html b/FAQ.html new file mode 100644 index 0000000..700327f --- /dev/null +++ b/FAQ.html @@ -0,0 +1,1601 @@ + +XBoard and WinBoard: Frequently Asked Questions + +

XBoard and WinBoard: Frequently Asked Questions

+ +This document answers some frequently asked questions about the +graphical chess interfaces XBoard and WinBoard. +A hyperlinked version of this FAQ is available on +the Web through the page +http://www.tim-mann.org/chess.html. + +
+

Outline

+ + + +
+

Detailed contents

+ + + +
+

[A] Introduction and hot topics

+
+

[A.1] What are XBoard and WinBoard?

+ +XBoard and WinBoard are graphical user interfaces for chess. +XBoard runs with the X Window System on Unix systems (including +GNU/Linux); see topic +[B.1]. +WinBoard runs on true 32-bit Microsoft Windows operating +systems, such as Windows 95, 98, NT, +2000, ME, XP, and should continue to work +on future 32-bit Windows systems. It does +not work on Windows CE (also known as Pocket PC), nor does it work on +16-bit Windows systems such as Windows 3.1. See topic +[B.2]. + +
+

[A.2] Where can I get chess information and chess +software?

+ +As a shortcut to most things mentioned in this FAQ, try my Chess Web page, +http://www.tim-mann.org/chess.html. +My Web page is the best place to get the latest versions of XBoard and WinBoard +and the most up-to-date version of this FAQ. + +

If you have other questions about XBoard/WinBoard that aren't answered +in this FAQ, you can try Aaron Tay's WinBoard and Chess Engines FAQ, at +http://www.chesskit.com/aarontay/Winboard/Winboard.html. + +

For general news and information about chess, try the newsgroup hierarchy +rec.games.chess.*, especially the groups rec.games.chess.misc and +rec.games.chess.computer. Both of the latter groups have very informative +FAQs maintained by Steve Pribut; look for them on the newsgroups or at +http://www.clark.net/pub/pribut/chess.html. + +

Like other GNU software, you can get XBoard, and +WinBoard by anonymous FTP from +ftp://ftp.gnu.org/pub/gnu/ +and its many mirror sites. Look in the subdirectories xboard, and winboard. +The .tar.gz suffix on the files there indicates they were packed with tar +and compressed with gzip. The .exe or .zip suffixes indicate files that +were packed and compressed with zip. + +

For other chess software, try the Internet Chess Library. Use anonymous FTP +to connect to ftp.freechess.org, or go to the Web page +http://www.freechess.org/. +You can get chess software, game +collections, the FAQ file for rec.games.chess, and other chess-related +material there, in the directory pub/chess. The FTP server can +automatically decompress files for you as you download them, useful if you +don't have gzip. + +

Here is a sample anonymous ftp session. Some of the ftp server's responses +are abbreviated, but all the commands you must type are included. + +

+    % ftp ftp.gnu.org
+    Connected to ftp.gnu.org
+    Name: anonymous
+    Password: your-email-address@your-site
+    ftp> binary
+    200 Type set to I.
+    ftp> cd /pub/gnu/xboard
+    ftp> dir
+    -rw-r--r-- 1 14910 wheel  393119 May 20 00:25 xboard-4.2.6.tar.gz
+    ftp> get xboard-4.2.6.tar.gz
+    150 BINARY connection for xboard-4.2.6.tar.gz (393119 bytes).
+    226 Transfer complete.
+    ftp> quit
+
+ +
+

[A.3] What are the current version numbers for +XBoard and WinBoard?

+ +At this writing, the current version numbers are: + +
    +
  • XBoard 4.2.6
  • +
  • WinBoard 4.2.6
  • +
+ +
+

[A.4] Who is working on this project?

+ +Tim Mann maintains this FAQ and is the lead developer on XBoard and +WinBoard, but he has little time to work on the project. Many others +occasionally contribute suggestions and snippets of code, for which we +are grateful. + +
+

[A.5] How do I report bugs, offer help, etc.?

+ +

At present, bug reports, suggestions, and offers to help on XBoard +or WinBoard should be sent directly to tim@tim-mann.org (Tim Mann). +Beginner questions and discussion about the program may get faster +answers on the WinBoard Forum at http://f11.parsimony.net/forum16635/. If you are developing a +chess engine that works with XBoard or WinBoard (or an alternative +GUI that works with such engines), see the Chess Engines mailing +list, hosted at +http://groups.yahoo.com/group/chess-engines. + +

Any time you want to report a possible bug in XBoard or WinBoard, +we need to know exactly what you did, and exactly what error (or +other) messages you got. + +

If you are using Unix, run the "script" program, run XBoard with +the -debug flag (if you get as far as running it), do whatever is +necessary to reproduce the problem, type "exit" to the shell, and mail +us the resulting typescript file. We also need to know what +hardware/operating system combination you are using. The command +"uname -a" will usually tell you this; include its output in your +typescript. + +

If you are using MS Windows, run WinBoard with the -debug flag, and +send us a copy of the WinBoard.debug file. If you aren't sure how to +add command-line flags to WinBoard, you can hit Ctrl+Alt+F12 to create +a WinBoard.debug file after WinBoard starts, but that is not as good, +because a few messages that would have been printed at the start are +lost. + +

Either way, please send us the exact text of the commands you typed +and the output you got, not just your recollection of approximately +what they were. The messages may seem meaningless to you, but they +are very meaningful to us and essential for diagnosing problems. + +


+

[B] XBoard and WinBoard

+
+

[B.1] What is XBoard?

+ +XBoard is a graphical user interface for chess. It displays a +chessboard on the screen, accepts moves made with the mouse, and loads +and saves games in Portable Game Notation (PGN). XBoard is free software. +It serves as a front-end for many different chess services, including: + +

Chess engines that will run on your machine and +play a game against you or help you analyze, such as GNU Chess and +Crafty (topic [D.3] below). + +

Chess servers on the Internet, where you can +connect to play chess with people from all over the world, watch other +users play, or just hang out and chat. + +

Correspondence chess played by electronic +mail. The cmail program (topic [B.6] below) +automates the tasks of parsing email from your opponent, playing his +moves out on your board, and mailing your reply move after you've +chosen it. + +

The Web and your own saved games. You can use +XBoard as a helper application to view PGN games in your +Web browser, or to load and save your own PGN files. + +

XBoard runs under Unix or Unix-compatible systems. It requires the +X Window System, version X11R4 or later. There are also ports of +XBoard to 32-bit Microsoft Windows and to +the Amiga. See topics [B.2] and [B.3] respectively. + +


+

[B.2] Is there an XBoard for Microsoft Windows? What is WinBoard? How do I install WinBoard?

+ +WinBoard is a port of XBoard to 32-bit Microsoft Windows systems, such +as Windows 95, 98, NT, 2000, ME, and XP. It uses the same back end +chess code as XBoard, but the front end graphics code is a complete +rewrite. WinBoard is free software. + +

The WinBoard distribution includes a port of GNU Chess to Win32. +The GNU Chess port is distributed in executable form, with instructions for +rebuilding it from the standard GNU Chess sources (available separately). You +should have at least 16 to 24 MB of memory to run GNU Chess with WinBoard. + +

The WinBoard distribution also includes the ICC timestamp and FICS +timeseal programs (topic [B.12]). + +

cmail (topic [B.6]) has not been ported to +Windows. All the other XBoard functions are included in WinBoard. +The International Email Chess Group web site at http://www.iecg.org/ recommends +ECTool (http://www.ectool.nu/) +for playing correspondence chess under Windows. + +

You install WinBoard as follows. Download the WinBoard package to +your PC (see topic [A.2]). It will be a file +with a name like winboard-4_0_0.exe. Double-click on this file +in the Explorer or File Manager to run it. Follow the on-screen +prompts. + +


+

[B.3] Is there an XBoard for the Amiga? What is AmyBoard?

+ +AmyBoard is a port of XBoard to the Amiga, by Jochen Wiedmann. +The distribution includes a port of GNU Chess. +AmyBoard is free software. + +

The current version of AmyBoard is 330.5 (based on XBoard 3.3.0). +No one is currently maintaining it. + +

System requirements: + +

    +
  • An Amiga (obviously :-), running OS 2.04 or later, 2Mb RAM or more.
  • +
  • MUI 2.0 or later.
  • +
  • Workbench or another screen with no less than 640x400 pixels (adjustable + with the MUI-Prefs); this restriction is just because we don't have + bitmaps with less than 40x40 pixels per square. If someone contributes + bitmaps with 20x20 or 20x25, they will work with any Hires mode.
  • +
+

+If you would like to use an ICS, you need an Internet connection via either + +

    +
  • a telnet-like program, or
  • +
  • a terminal program reading from stdin and writing to stdout.
  • +
+

+AmyBoard is available in the Internet Chess Library (topic [A.2]). + +


+

[B.4] Is there an XBoard for the Macintosh?

+ +Because MacOS X has a Unix base, XBoard will compile and run on it. +You do need an X11 (X Window System) server and client libraries. +These do not come with Mac OS, but both free and commercial versions +are available. Once you install the X11 package, XBoard is reported +to compile and run without changes. + +There is no version of XBoard or WinBoard that runs with the native +(non-X11) Mac graphical interface, and none that runs on MacOS 9 or +earlier. + +
+

[B.5] Does XBoard run on VMS?

+ +No. This port would probably be a lot easier than the Win32 and Amiga +ports were, because VMS has the X Window system (under the name +DECwindows) and is now POSIX compliant. However, I don't know enough +about VMS to do the port myself, and I don't have time. If you do, +give it a try! Send mail to me, tim@tim-mann.org (Tim Mann), if you're +working on this. + +
+

[B.6] What is cmail?

+ +cmail is a program that helps you play and keep track of electronic mail +correspondence chess games using XBoard. It is distributed with XBoard and +has its own manual page. cmail is free software. It was written by +Even Welsh. cmail has not been ported to Windows; sorry. + +
+

[B.7] How do I build XBoard? Do I need gcc?

+ +The first step to building XBoard is to get the distribution file. See topic +[A.2] for places you can ftp the software from. + +

Next, decide what directory tree you are going to install XBoard +in. The default is /usr/local, but you probably don't have write +access to that directory unless you are a system administrator. If +you do, type the following to install it there: + +

+    gzip -cd xboard-*.tar.gz | tar -xvf -
+    cd xboard-*/
+    configure
+    make
+    su
+    make install
+
+ +If you want to install xboard in your personal home directory ($HOME/bin), +type this: + +

+    gzip -cd xboard-*.tar.gz | tar -xvf -
+    cd xboard-*/
+    configure --prefix=$HOME
+    make
+    make install
+
+ +

If the first step above fails because you don't have gzip, see +topic [A.2], and ask a local Unix expert if you +need more help. If you have any problems with the last two steps, +read the READ_ME and INSTALL files in the xboard-*/ directory. You +will also find this FAQ there. + +

You don't need to have gcc to build XBoard. Almost any Unix C +compiler should do. + +


+

[B.8] Can I use XBoard or WinBoard to play a game + of chess with another human?

+ +The only way for two humans on different machines to play chess in +real time using XBoard/WinBoard is to use an Internet Chess Server +as an intermediary. That is, each player runs his own copy of XBoard +or WinBoard, both of them log into an ICS, and they play a game there. +Two copies of XBoard/WinBoard cannot communicate with each other +directly. + +

Instructions on how to get started with Internet chess are included +with the XBoard and WinBoard distributions. The network addresses +included in the distribution may not always be current. The oldest +and largest ICS is the Internet Chess Club at chessclub.com, which now +has a fee for registered use, but still allows free unregistered use. +There are also many newer sites with no fees, using the Free Internet +Chess Server implementation (FICS). The most active FICS site is +freechess.org. On these and most other chess servers, +the port number to use is 5000. + +

If you don't have network connectivity to any ICS site, you +can run your own server using a version of the FICS code, but this +is not easy. See http://www.tim-mann.org/ics.html#ownics for advice and pointers. + +

The cmail program included with XBoard lets you play email postal games with +another human; see topic [B.6]. + +

Two humans can play chess on the same machine using one copy of +XBoard/WinBoard in +Edit Game mode, but the clocks don't run in this mode, so it's of limited +usefulness. + +

See also topic [D.2], Winsock Chess. + +


+

[B.9] Will WinBoard run on Windows 3.1? + How about Windows CE (also known as Pocket PC)? +

+ +WinBoard does not run on Windows 3.1, Windows for Workgroups 3.11, etc., +not even with the Win32s compatibility package. The main problem is +that Win32s does not have threads or real concurrent processes. A +port of WinBoard to Windows 3.1 is possible in theory, but it would be +difficult and messy, and no one is going to do it. + +

WinBoard does not run on Windows CE (also +known as Pocket PC). I don't know what would be required to port it. + +

WinBoard does run well on full 32-bit versions of Windows, such as +Windows 95, 98, NT, 2000, ME, and XP, and should continue to work +on future 32-bit Windows systems. + +


+

[B.10] How do I use XBoard or WinBoard as an external viewer for PGN files + with my Web browser?

+ +1) On Unix systems: +

+- Add the following line to the file .mime.types in your home directory. +(Create the file if it doesn't exist already.) +

+    application/x-chess-pgn    pgn
+
+

+- Add the following line to the file .mailcap in your home directory. +(Create the file if it doesn't exist already.) +

+    application/x-chess-pgn; xboard -ncp -lgf %s
+
+

+- Exit from your Web browser and restart it. + +

2) On MS Windows systems: + +

The exact procedure depends on which Web browser you are using. +The current version of WinBoard automatically configures itself as +your PGN viewer for local files, Netscape 4.x and later, and Internet +Explorer. This automatic setup probably works for all other current Web +browsers, too. + +


+

[B.11] How do I use WinBoard as an external viewer + for PGN files with the MS Windows File Manager or Explorer?

+ +WinBoard sets this up automatically when you install it, except on old +versions of Windows NT (prior to 4.0). On Windows NT 3.51 or earlier, +go to the File Manager, click on the File menu, select Associate, +enter "pgn" as the extension, and use the Browse button to find your +copy of WinBoard and set up the association. + +
+

[B.12] How do I use ICC timestamp or FICS timeseal +with XBoard?

+ +First, get the appropriate version of timestamp or timeseal for your +machine from ftp.chessclub.com or ftp.freechess.org. +Second, be sure that you can connect using XBoard without +timestamp/timeseal. Third, be sure that you can connect using +timestamp/timeseal without XBoard. See the help files on ICC and FICS +or ask people online if you have problems. + +

If you are in a completely ordinary situation, where your machine +is directly on the Internet and you can connect to ICC or FICS +without timestamp/timeseal using +just the command "xboard -ics" or "xboard -ics -icshost freechess.org", +change that command to one of the following: + +

+    xboard -ics -icshost 204.178.125.65 -icshelper timestamp
+
+    xboard -ics -icshost 164.58.253.13 -icshelper timeseal
+
+ +

If you have a firewall between your machine and the ICS, see topic +[B.19]. + +

If you normally have to use the "/icscomm" command line option on +xboard to log into a second machine, and then telnet to ICC or FICS +from there, you are going to have to run the Unix version of timestamp +or timeseal on the second machine. (If the second machine is not +running Unix, you are out of luck.) Get the appropriate version of +timestamp or timeseal onto the shell machine via FTP; see the help +files on ICC and FICS for instructions. Then simply run it when you +would normally run telnet. In this configuration you are not +protected against lag between your PC and the shell machine, or for +lag caused by heavy load on the shell machine itself from other users. + +

For further information on timestamp and timeseal, see the help +files on ICC and FICS. + +


+

[B.13] How do I use ICC timestamp or FICS timeseal +with WinBoard?

+ +

If you select an ICS from either the WinBoard Startup dialog or the +Windows Start submenu that WinBoard installs, WinBoard automatically +runs timestamp or timeseal if the ICS you chose is known to support it. + +

If you are constructing a WinBoard command line by hand, add the +option "/icshelper timestamp" or "/icshelper timeseal" to the WinBoard +command line to use timestamp or timeseal. Both timestamp.exe and +timeseal.exe are included in the WinBoard distribution. They both +function identically to the Unix versions, as documented in "help +timestamp" on ICC and "help timeseal" on FICS. + +

If you have a firewall between your machine and the ICS, see topic +[B.19]. + +

If you normally have to use the "/icscomm" command line option on +WinBoard to log into a shell account, and then telnet to ICC or FICS +from there, you are going to have to run the Unix version of timestamp +or timeseal on the shell machine. (If the shell account is not on a +Unix machine, you are out of luck.) Get the appropriate version of +timestamp or timeseal onto the shell machine via FTP; see the help +files on ICC and FICS for instructions. Then simply run it when you +would normally run telnet. In this configuration you are not protected +against lag between your PC and the shell machine, or for lag caused by +heavy load on the shell machine itself from other users. + +

For further information on timestamp and timeseal, see the help +files on ICC and FICS. + +


+

[B.14] How do I play bughouse with XBoard or WinBoard? +

+ +XBoard and WinBoard have simple but effective bughouse support. +Offboard piece holdings are shown in the board window's banner, and +you drop offboard pieces using the right mouse button. Press it over +the destination square to pop up a menu of pieces. + +

XBoard and WinBoard can display only one board at a time, but you +can observe your partner's game by running a second copy of the +program and logging in as a guest. (Unfortunately, this is not +possible if you are using the /icscomm option.) To observe your +partner's games automatically, use the "follow" or "pfollow" ICS +command; see the ICS online help for details. + +


+

[B.16] What is Zippy? How can I interface a +chess program to the Internet Chess Servers?

+ +Zippy is an interface that lets a compatible chess engine (such as GNU +Chess or Crafty) act as a computer +player on an Internet Chess Server. Zippy is included in both the +XBoard and WinBoard distributions. It is implemented as a small +amount of additional code within XBoard or WinBoard. +For documentation, see the file +zippy.README, included in both distributions or available +from my chess Web page, +http://www.tim-mann/chess.html. +The version of zippy.README on my Web page is often more up-to-date +than those in the XBoard/WinBoard distributions. +You'll also find a "biography" of Zippy and pointers to the original +Zippy the Pinhead comic strips on my Web page. +Please read zippy.README carefully before you ask me any questions about Zippy. + +

Using a computer to choose your moves on a chess server is +considered cheating unless your account is on the computer (C) list. +Read "help computer" on your favorite server for details on their +policy. Most of the servers have plenty of computers running now, so they +will not be excited about having you run a new one unless you have +written your own chess engine. They don't really need yet another +Crafty or GNU Chess clone. + +


+

[B.17] How can I interface my own chess program +to XBoard or WinBoard?

+ +This is a non-trivial task. XBoard and WinBoard were not designed +with a clean interface for talking to chess programs; they were +written to work with an existing version of GNU Chess that expects to +be talking to a person. Your program has to emulate GNU Chess's +rather idiosyncratic command structure to work with XBoard and +WinBoard. We are gradually cleaning up, improving, and documenting +the interface as newer versions of XBoard and WinBoard come out, +however. + +

For documentation, see the file engine-intf.html, included in both +distributions or available from my chess Web page, http://www.tim-mann.org/chess.html. +The version of engine-intf.html on my Web page is often more up-to-date +than those in the XBoard/WinBoard distributions. + +


+

[B.18] How can I recompile WinBoard from source?

+ +The source code for WinBoard is available from the author's Web page, +http://www.tim-mann.org/chess.html. + +

WinBoard is currently developed using Microsoft Visual C++ 5.0. +You can build the program from the MSVC++ GUI by opening the project +file (winboard.dsp) and telling MSVC++ to build the project. You can +also build it from the the command line by using the nmake program +supplied with MSVC++. + +

To build WinBoard with the free Cygwin tools, available from http://www.cygwin.com/), use the +command "make -f cygwin.mak". WinBoard 4.2.5 was successfully +compiled with the net release of Cygwin as downloaded on 20-March-2001 +(cygwin1.dll 1.1.8, gcc 2.95.2-6, binutils 20001221-1, flex 2.5.4-1), +but exhibits a command-line parsing bug; see item 511 in the ToDo file +that comes with WinBoard. WinBoard 4.1.0 does not compile with +Cygwin. WinBoard 4.0.7 is known to compile with Cygwin BL20.1. + +

To build WinBoard with Borland C++ 4.5, use "borland.mak", supplied +with the WinBoard sources, as the Makefile. Support for Borland C++ +was contributed by Don Fong and has not been tested by the author of WinBoard. + +

WinBoard is a Win32 application, so you definitely need a compiler +and tool set that supports Win32. In particular, older versions of +DJGPP can build only 32-bit MSDOS programs; that is, programs that use +a DOS extender to get a 32-bit address space and do not make any +Windows calls. The latest versions of DJGPP are said to be able to +build Win32 programs when used with the proper extension package(s), +but this is not known to work with WinBoard. Use Cygwin instead. + +

See also topic [C.16]. + +


+

[B.19] +How can I use XBoard or WinBoard to talk +to an Internet Chess Server through a firewall or proxy? +

+ +

There is no single answer to this question, because there are many +different kinds of firewalls in use. They work in various different +ways and have various different security policies. This answer can +only provide hints. + +

Note that you can't access Internet Chess Servers through a Web proxy, +because they are not a Web service. You talk to them through a raw +TCP connection, not an HTTP connection. If you can only access the +Web through a proxy, there may be a firewall that stops you from +making direct TCP connections, but there may also be a way through it. +Read on for hints, and contact your local system administrator if you +need more information about your local configuration. + +

A helpful user mailed me the following explanation of how to use +WinBoard with WinGate: +

+"I have managed to setup WinBoard though my WinGate proxy. I have the +Office version. What I needed to do was to setup the TCP/IP +connection to add the User/Host name and my provider service name for +the DNS, but I had to leave the HOST IP address blank. I have not +played with all the variations, so it may be just that I have the DNS +lookup enabled." +
+I hope this helps, though I don't find it very clear. I don't have +a copy of WinGate myself and can't help if you have questions about it. + +

If you are using some other non-SOCKS firewall, read the FIREWALLS section +in your XBoard or WinBoard documentation (man page, info document, or +Help file). If you can telnet to a chess server in some way, then you +can almost certainly connect to it with xboard/WinBoard, though in +some cases you may not be able to run timestamp or timeseal. The +timestamp and timeseal protocols require a clean, 8-bit wide TCP +connection from your machine to the ICS, which some firewalls do not +provide. + +

If you have a SOCKS firewall and are using XBoard, +you should be able to SOCKSify xboard and use it. See http://www.socks.nec.com/ for +information about SOCKS and socksification. However, if you do this, +you can't use timestamp or timeseal; what you really need is a +socksified version of timestamp or timeseal. This is hard because the +source code for timestamp and timeseal is proprietary; the folks +running the chess servers don't give it out because that would make it +too easy to cheat. On some versions of Unix, you may be able to +socksify a program that you don't have the source code to by running +it with an appropriate dynamic library; see http://www.socks.nec.com/. For +others, you might be able to get a pre-built socksified version from +the chess server administrators. For timeseal versions, see ftp://ftp.freechess.org/pub/chess/timeseal/. For timestamp +versions, the directory would be ftp://ftp.chessclub.com/pub/icc/timestamp/, but at this writing +there don't seem to be any socksified timestamps there. Once you have +a socksified timestamp or timeseal, simply run it with a normal, +non-socksified xboard in place of the standard timestamp or timeseal. + +

If you have a SOCKS firewall and you are using +WinBoard, we now know how to make this configuration +work, complete with timestamp or timeseal! + +

Start by getting SocksCap32. This software is freely available +from http://www.socks.nec.com/. +Install it on your machine, read the documentation, and learn to use +it. You may find it useful with many other programs besides WinBoard. + +

Next, don't socksify WinBoard. Socksifying +WinBoard itself doesn't let you use it with timestamp or timeseal. +For some reason I don't understand -- something strange that +SocksCap32 does -- the socksified WinBoard runs but does nothing, and +timestamp/timeseal runs all by itself in its own window. + +

Instead, use the following workaround. Follow the instructions +exactly; don't try to skip steps or simplify things. + +

First, make SocksCap32 application profiles for timestamp and +timeseal. Use the following command lines in the SocksCap32 +profiles. Name the first profile "timestamp" and the second +"timeseal". + +

+    "c:\program files\winboard\timestamp.exe" chessclub.com 5000 -p 5000
+    "c:\program files\winboard\timeseal.exe" freechess.org 5000 -p 5000
+
+ +

Second, run timestamp or timeseal by itself, socksified, using its +profile. This will open an unneeded, black window that will not +respond to typing. Minimize it to the task bar and ignore it. It will +go away when you exit from WinBoard. + +

Next, run WinBoard using the following command line. Make a shortcut +or type this command into an MS-DOS Prompt box. Don't run WinBoard +itself socksified, just run it directly. + +

+    "c:\program files\winboard.exe" /ics /icshost=localhost /icsport=5000
+
+ +

After you get this working, you can try getting the timestamp window to +auto-minimize by starting it from a shortcut instead of from the +SocksCap32 control window. As it says in the SocksCap32 help file, put +the following in the Target field of a shortcut's Properties page: + +

+    "c:\program files\sockscap32\sc32.exe" timestamp
+
+ +Then select "Run: Minimized" on the same page. Do the same for timeseal. + +

Another method that can work is to use a .bat file to start both +timestamp and WinBoard. It would look something like this: + +

+    REM --
+    REM -- icc.bat
+    REM -- Start timestamp under SocksCap32 and use WinBoard to connect to it.
+    REM -- The string "timestamp" refers to a SocksCap32 profile for timestamp.
+    REM --  Do not change it to the filename of the timestamp program!
+    REM --
+    start /minimized "c:\program files\sockscap32\sc32.exe" timestamp
+    cd "c:\program files\winboard"
+    winboard /ics /icshost=localhost /icsport=5000
+
+ +

This workaround has a problem if you want to run two copies of +WinBoard at once, talking to the same chess server twice (for +bughouse) or to two different chess servers. If you need to do that, +you will need to run a separate copy of timestamp with a different +port number for each connection. You'll need to make a second set of +profile entries with a different value after the -p flag (say, 5001) +and you'll need to change the WinBoard command line /icsport=5000 for +the second WinBoard to match. + +


+

[B.20] +How can I use XBoard or WinBoard on chess.net with accuclock? +

+ +

I believe chess.net provides a Win32 command-line version of +accuclock that will work with WinBoard. Please see the documentation +on the chess.net server itself; don't ask the author of WinBoard. + +

I don't know whether chess.net provides versions of accuclock for +Unix at this time. Ask them. + +


+

[B.21] + Can I get Zippy to do one or more ICS commands automatically at the + start or end of each game?

+ +

By default, Zippy automatically sends the command "gameend" to ICS +at the end of each game. You can alias this command (using the ICS +"alias" feature) to anything you want. On ICC, you can use the +"multi" feature to alias gameend to several commands, but other +servers don't have that feature. Zippy doesn't send anything at the +start of the game by default. + +

You can get Zippy to send one or more commands of your choosing, at +the start and/or end of each game, by using the -zippyGameStart and +-zippyGameEnd command line options, newly added in version 4.0.3. +Both xboard and WinBoard have (somewhat obscure) ways of getting +newlines into this option to send several commands. Here is an +example of one way to do it for each. + +

+    xboard -ics -zp -xrm '*zippyGameStart: say hi\nsay prepare to die\n'
+
+    WinBoard /ics /zp /zippyGameEnd='say thanks\nseek 5 0\nseek 2 12\n'
+
+ +
+

[B.22] + How do I print from WinBoard? +

+ +WinBoard does not have built-in printing functionality. +If you want to print a picture of the board, press Alt+PrintScrn, run the +standard Windows application Paintbrush, select Paste, and print from there. +If you want to print a list of moves, save your game as a PGN file, +then open the PGN file with Notepad or any other plain text editor and +print it from there. + +
+

[B.23] + Can I get Zippy to automatically reconnect to ICS when its connection + breaks?

+ +

There isn't a perfect solution to this problem yet, but a pretty +good one is to write a shell script (for xboard) or .bat script (for +WinBoard) that automatically restarts the program whenever it exits. +Use the -xexit flag so that you don't get a popup dialog that must be +dismissed with the OK button before the program will exit. The gap in +this solution is that your connection to ICS can sometimes get into a +state where the program does not notice that the connection is broken +until the next time it tries to send a command. Perhaps some future +version of xboard/WinBoard will have an option to send a harmless +command every five minutes or so. + +

Anyway, here is a sample Windows .bat file that restarts WinBoard each +time it exits. Thanks to Jason Williamson. It assumes that you have put +your computer account's name and password in a file named logon.ini. + +

+REM --
+REM -- wbrecon.bat
+REM -- Start WinBoard in Zippy mode, and restart it each time it exits.
+REM -- Add or change parameters as needed for your application.
+REM --
+:loop
+start /w winboard /zp /ics /icslogon logon.ini /xexit /xautoraise
+REM -- The next line is to have a short delay setup for 139 seconds.
+REM -- Leave it out if it doesn't work on the version of Windows you use.
+TYPE NUL | CHOICE.COM /N /CY /TY,99 >NUL
+goto loop
+
+ +

Here is a Unix shell script to do the same thing for xboard. +It's a bit more elaborate. It is based on the script I use for the +original Zippy. It logs all ICS output to a file named zippy.out, +and it lets you type commands to Zippy by running "cat > zippy.fifo". + +

+#! /bin/sh
+host="204.178.125.65 -icsport 5000 -telnet -telnetProgram timestamp"
+#host="164.58.253.13 -icsport 5000 -telnet -telnetProgram timeseal"
+out=zippy.out
+fifo=zippy.fifo
+ZIPPYPASSWORD='something'
+export ZIPPYPASSWORD
+ZIPPYPASSWORD2='orother'
+export ZIPPYPASSWORD2
+ZIPPYLINES=`pwd`/all.lines
+export ZIPPYLINES
+ZIPPYGAMEEND='say Yow, that was FUN!
+gameend'
+export ZIPPYGAMEEND
+zippylogon=`pwd`/logon.ini
+DISPLAY=`hostname`:0.0
+export DISPLAY
+mv -f $out ${out}.old
+rm -f $fifo
+mkfifo $fifo
+pid=$$
+( while [ true ] ; do cat -u $fifo ; done ) | \
+      ( while [ true ] ; do
+          xboard -iconic -ics -icshost $host \
+                 -zt -zp -xbell -xanimate \
+                 -xautosave -xquiet -fcp "gnuchessx -h" \
+                 -icslogon $zippylogon -xexit -autoflag -xautoraise $*
+          sleep 600
+        done ) > $out 2>&1 &
+
+ +
+

[B.24] + The chess engines are too strong and always beat me. How can I adjust + the difficulty level to make them weaker?

+ +

The simplest way to get that effect is to make sure the +XBoard/WinBoard Auto Flag option is off, set a very fast time control +so that the chess engine can't think for long, but take as much time +over your own moves as you want. Also feel free to use Retract Move if +you make a blunder. + +

Many chess coaches will let you switch sides after +they get a stronger position so that you can get experience playing +positions where you are winning. You can try this with XBoard/WinBoard +by using the Machine White or Machine Black menu command to make the +machine take over your position. + +

The -depth command-line option to XBoard/WinBoard can also be used to +weaken the engine (see the man page or Help file). It's a bit of a +nuisance to set command line options in Windows, but see topic [C.7] for instructions. + +

Other ways of weakening engines are engine-specific. Many of them +let you adjust various parameters, and if you choose bad settings, the +engine will play more poorly. Consult whatever documentation came with +the engine you are using. + +


[C] XBoard and WinBoard, bugs and problems

+ +

[C.1] I can't build XBoard +because the X11/Xaw/... include files are not found.

+ +These are the header files for the Athena Widgets library, which XBoard uses +heavily. Some versions of Unix don't supply these files, but they are part of +the standard X distribution, freely available from MIT. + +

For general information on getting missing X sources, see the FAQ on +comp.windows.x. Note that you may be missing only the header files, or you +may be missing the libraries themselves too. + +

HP-UX users are missing only the header files. You can get them by +anonymous FTP as follows. (But first check with your system +administrator to see if someone else at your site has already done +this.) Get the archive file /hpux9/X11R5/Core/Xaw-5.00.tar.gz (Xaw +header files) via anonymous FTP from the site hpux.csc.liv.ac.uk +(138.253.42.172), or one of the other official sites---Germany: +hpux.ask.uni-karlsruhe.de (129.13.200.57), US: hpux.cae.wisc.edu +(144.92.4.15), France: hpux.cict.fr (192.70.79.53) or Netherlands: +hpux.ced.tudelft.nl (130.161.140.100). Unpack the archive using gzip +and follow the instructions in its README and/or HPUX.Install files. +Thanks to Richard Lloyd for this information. + +

If you have the Xaw header files installed in a different place +than the other X11 headers, you may need to configure XBoard with an +extra flag to help it find them. For example, if yours are in +/foo/bar/X11/Xaw, try this: + +

+    rm config.cache
+    (setenv CFLAGS -I/foo/bar ; configure)
+
+

+Also see topic [C.2]. + +


+

[C.2] Configuring or building XBoard fails due to +missing header files, missing libraries, or undefined symbols. +

+ +Perhaps you have the X server and client programs installed on your +machine, but not the X header files and link-time libraries. If so, +you can run existing X programs, but you cannot compile a new X +program from source code. In this case the XBoard configure script +will fail and will tell you to look at this question in the FAQ. Many +GNU/Linux distributions put the headers and libraries in a separate +package, which you might not have installed. If you are using RedHat, +install the XFree86-devel package. If you are using some other +kind of Unix, ask your system administrator where to find the X header +files and link-time libraries. If this is not your problem, read on. + +

The configure script for XBoard looks for X libraries and header +files in some common places. Sometimes it fails: If yours are +installed in an odd place, it may not find them at all. If you have +more than one version of X installed on your system, it may find the +"wrong" one, or occasionally it may find libraries from one version +and incompatible header files from another. You can work around these +problems by telling the configure script where the files are. For +example: + +

+    configure --x-includes=/odd/place/include \
+              --x-libraries=/odd/place/lib
+
+ +

The directory named in the argument to --x-includes must have a +subdirectory "X11" that contains the actual .h files. That is, if +your X.h file has full pathname /odd/place/X11R6/include/X11/X.h, then +you must give the argument --x-includes=/odd/place/X11R6/include. + +

Some linkers have bugs that cause bogus error messages when you try +to link X programs. The configure script includes a workaround for a +bug of this kind that exists in some SunOS 4.x.x installations. See +the FAQ on comp.windows.x for more information about problems of this +kind. + +

If all else fails, check whether anyone else at your site has been able to +compile any X programs on your system. Your X installation might be buggy. +If so, the system administrator at your site might know how to fix or work +around the problem. + +

Also see topic [C.1]. + +


[C.3] I have problems using WinBoard on ICS +with a modem. I'm not running SLIP or PPP, but just dialing in to an +ordinary login account ("shell account").

+ +Here are solutions to some common problems in this area. + +

Some people want to connect to ICS through HyperTerminal or some other +terminal program first, then run WinBoard. This is not how it works. +WinBoard wants to talk directly with your modem, acting as a terminal program +itself. Start out with the modem "on hook" (not making a call). + +

Run WinBoard with a command line like this (adding more options if desired): + +

+    WinBoard /ics /icscom com1
+
+ +Use com2, com3, or com4 in place of com1 if your modem is connected to one of +those ports. + +

After you start WinBoard, you may need to change some of the options in the +Communications dialog (on the Options menu). The dialog has the usual options +for talking to modems: bits per second, bits per byte, parity, number of stop +bits. You will probably want to use Save Settings Now when you're done. + +

Next, type dialing commands to your modem in the text window that WinBoard +creates. You may need to turn off Local Line Editing on the Options menu +while you are typing commands to your modem. Turn it back on when you're +done. See the WinBoard Help file for instructions if you see your typing +echoed an extra time after you hit Enter. + +


+

[C.4] +I have problems using WinBoard on ICS with Windows 95 and SLIP +or PPP. When trying to start up, it gets the error "Address family +not supported by protocol family" (or some equally strange message). +

+ +WinBoard is a 32-bit application, but some Winsock (TCP/IP) implementations +support only 16-bit applications. You get a strange looking error message +if you try to use a 32-bit application because +there is no standard Winsock error code number +for "32-bit application not supported." + +

Microsoft TCP/IP works with both 16-bit and +32-bit applications, supports SLIP, PPP, Ethernet, etc., and is included +with Windows 95 and later Windows systems. +If possible, I recommend that you uninstall +whatever Winsock you are using and install Microsoft TCP/IP instead. +For more information, see +http://walden.mo.net/~rymabry/95winfaq.html (the Win95-L FAQ). + +

Trumpet Winsock 2.1 (and earlier) supports only 16-bit +applications, and hence does not work with WinBoard. But there is a +beta-test release available that does support 32-bit applications. +I have not tried it with WinBoard, but it +should work. See Trumpet's Web page +http://www.trumpet.com.au/wsk/winsock.htm +for more information. + +

The 16-bit versions of America On-Line's software do not support +32-bit Winsock applications. Get the 32-bit version. At one time the +32-bit version was called "AOL for Windows 95," but I imagine that has +changed. Hopefully the current versions are all 32-bit. + +

A few versions of Winsock may have bugs that prevent +Windows timestamp/timeseal from working with them. I'm not sure if +such bugs exist in any versions that actually have 32-bit support, +so this point might be moot. Again, Microsoft TCP/IP is known to work. + +


[C.5] When I try to run WinBoard, I get the +message "Failed to start chess program gnuchess on localhost: NO +LANGFILE (file gnuchess.lan not found)".

+ +

This message means that WinBoard is trying to run GNU Chess, but +GNU Chess cannot find a file that it needs, named gnuchess.lan. +If you see it, you've probably customized WinBoard's /fcp, /fd, /scp, +and/or /sd options and made a mistake in the process. Review what +you did, and see the WinBoard help file. + +


+

[C.6] I want to use XBoard or WinBoard as an Internet +Chess Server interface, but the ICS Client option is grayed out on the +menu.

+ +XBoard and WinBoard have three major modes that can't be changed from the +menus: local chess engine mode, +ICS mode, and standalone mode. + +

With XBoard, you have to set the mode using command-line options. +Local chess engine mode is the default, -ics selects ICS mode, and +-ncp ("no chess program") selects standalone mode. + +

With WinBoard, if you don't set the mode using command-line +options, you get a dialog box asking which mode you want. To bypass +the dialog box, use -cp ("chess program") for local chess engine mode, +or -ics or -ncp as with XBoard. Also see topic [C.7]. + +


+

[C.7] How do I give command-line options to +a Windows program like WinBoard?

+ +

There are many ways; pick your favorite: + +

    +
  • Type the command line into an MS-DOS Prompt box. Example: +"WinBoard -ics". + +
  • Make a Windows shortcut for WinBoard. You can do this by +right-dragging WinBoard.exe to the desktop and selecting "Create +Shortcut(s) Here" from the menu that appears. Right-click on the +shortcut, select Properties, and click the Shortcut tab. The +command-line text box is labelled "Target" instead of "Command line" +just to confuse you. Edit the text in this box, adding the command +line options to the end.
  • + +
  • Choose Run from the Start menu, or File / Run from the Program +Manager or File Manager, and type the command line into the dialog you +get. You may have to give WinBoard's full drivespec and filename if +it is not in a directory on your search path.
  • + +
  • Make a Program Manager icon for WinBoard. You can do this by +dragging WinBoard.exe from the File Manager into the Program Manager, +or by using File / New in the Program Manager. Select the icon and +choose File / Properties. Edit the Command Line text box to add the +command-line options to the end.
  • +
+ +
+

[C.9] +When I exit from WinBoard after using it to play against a chess +program on my machine, the chess program keeps running in the background. +

+ +

If you are using Crafty, be certain to get the version compiled for +Win32 (wcrafty.exe), not the version compiled for MS-DOS (crafty.exe). +Also, be sure you have the current version of WinBoard. WinBoard +3.4.1 and earlier had a bug that caused this problem to occur with all +chess engines. + +

This problem is reported to still happen occasionally, for unknown +reasons. You can generally stop the rogue Crafty by pressing +Ctrl+Alt+Del, selecting the Crafty process from the menu, and pressing +the End Task button. + +


+

[C.12] +Why do my ICS +opponents often get extra time after they make their moves? +Why do I sometimes lose time off my clock after I make my move? +

+ +If you are playing with the ICS incremental clock, both you and your +opponent get a set amount of extra time after each move. + +

If your or your opponent has netlag, your opponent might appear to +get extra time, especially if your opponent is using timestamp or +timeseal. The ICS charges each player who is using timestamp or +timeseal only for the time between when the player received his +opponent's move and the time he sent his own move. Thus delays in +network transmission do not count against either player. But WinBoard +counts down the display of your opponent's clock on your screen under +the assumption that there is no netlag. When his move comes in, if +there was netlag, the ICS may not have really charged him for that +much time, and WinBoard corrects the clock to what the ICS says it +should read. + +

If you are not using timestamp or timeseal, you may appear to lose +time off your clock at some point after you make your move. In this +case, the ICS charges you for the time between when it sent you your +opponent's move and the time it received your move. Thus delays in +network transmission count against you. WinBoard stops counting down +the display of your clock on your screen (and starts your opponent's) +when you make your move. When the ICS echoes your move back to you, it +may have charged you for more time than that, and WinBoard corrects +the clocks to what the ICS says they should read. + +

See "help lag" and "help timestamp" or "help timeseal" on your ICS for +more detailed information. + +


+

[C.13] +I can't run WinBoard unless I delete the WinBoard.ini file each time! +

+ +

Most people don't have this problem, but two or three people using +Windows NT 4.0 with Service Pack 3 or 4 have reported it. I have no +idea what causes this problem. Contrary to what was reported in a +previous version of this FAQ, reinstalling the service pack after +installing WinBoard does not seem to solve the problem. + +


+

[C.15] +I get errors compiling XBoard's parser.c. +

+ +

The file parser.c is automatically generated from parser.l. The +copy included with XBoard 4.0.2 was generated by lex on Tru64 Unix and +has problems compiling and linking on current GNU/Linux versions. The +copy included with XBoard 4.0.3 was generated by flex on a GNU/Linux +machine, but it too won't necessarily work on other versions of Unix. +If you have this problem, you can fix it by deleting parser.c and +letting the Makefile re-create it from parser.l. This will work if +you have either lex or flex on your system. Flex is available in all +GNU/Linux distributions and can be obtained at no charge from the Free +Software Foundation, www.fsf.org. + +


+

[C.16] +I get an error building WinBoard from source because "flex" is not found. +

+ +

The file parser.c is automatically generated from parser.l. The +Makefile included with the WinBoard source kit has a rule for +generating parser.c using the program "flex", which will fail if you +don't have flex. However, the source kit also includes a ready-made +copy of parser.c, so you don't really need flex unless you have made +changes to parser.l. Check that you still have a copy of parser.c; if +you don't, unpack the WinBoard source zip file again to get one. +Either set the last-modified time of parser.c to be later than that of +parser.l, delete parser.l, or comment out the Makefile rule for +building parser.c from parser.l, and then try building WinBoard again. + +

If you do want to change parser.l and rebuild parser.c, you can get +flex as part of the free Cygwin kit from +http://sourceware.cygnus.com/cygwin/. You can +probably also get flex for Windows by itself from various other places +around the Internet. It is free software distributed by the Free +Software Foundation, www.fsf.org. + +


+

[C.17] + XBoard hangs shortly after connecting to an ICS when used with dxterm, + cmdtool, dtterm, kterm, konsole, or other substitutes for xterm. +

+ +

After connecting to a chess server, XBoard 4.0.2 and later sends an +escape sequence to its terminal that is meant to display your handle +and the ICS host name (for example, "user@chessclub.com") in the +terminal's banner and icon. It seems that several of the alternative +X terminal programs have a bug that makes them hang when sent this +escape sequence. + +

You can work +around the problem by using xterm, nxterm, rxvt, aterm, xiterm, or +gnome-terminal, all of which seem to work fine. In fact, current +versions of kterm and konsole seem to work fine too, so if you are +having problems with one of them, be sure you are not running an +outdated version. + +

Alternatively, you can disable this feature by commenting out the +body of DisplayIcsInteractionTitle in xboard.c and recompling xboard. + +


+

[C.18] + The WinBoard pieces show up in the wrong colors, appear distorted, + or are not visible at all. +

+ +

This can happen if you have a bug in your Windows display driver. +Check with the manufacturer of your display card, the manufacturer of +your computer, or Microsoft to see if there is an updated driver +available. You can usually download updated drivers from the Web. + +

If you can't find an updated driver, you can try running Windows +using a different number of colors and/or disabling some of the +hardware acceleration features on your display card. To change the +number of colors, go to Windows Start / Settings / Control Panel / +Display / Settings / Color Palette. To disable hardware acceleration +features, go to Windows Start / Settings / Control Panel / Display / +Settings / Advanced Properties / Performance / Hardware Acceleration. + +

It's also possible that Windows has the right driver for your +hardware already but you are not using it. It may help to reinstall +your driver. Go to Windows Start / Settings / Control Panel / System +and delete your display card (maybe even your monitor too), then +reboot. Windows should automatically re-detect your card and monitor +and re-install the drivers; if it doesn't, run Start / Settings / +Control Panel / Add New Hardware to force it to. + +

If all else fails, try Monochrome mode. On WinBoard's menus, go +to Options / Color and check Monochrome. WinBoard will display in black +and white. + +


+

[C.19] XBoard or WinBoard tells me "Error: first chess + program (...) exited unexpectedly".

+ +

This message means that your chess engine crashed, probably due to +a bug in the engine, or because you have it configured incorrectly. +You can try running XBoard or WinBoard again with the "-debug" flag on +the command line. This will print out all the messages received from +the chess engine. (With WinBoard, the messages go into a file called +WinBoard.debug; with XBoard, they go to the xterm that you started +XBoard from.) + +

If you are using GNU Chess and you see this problem as soon as it +starts up, most likely GNU Chess is exiting with an error message. If +you see the message "NO LANGFILE", it means that you did not install +GNU Chess correctly, and it is unable to find the file gnuchess.lang. +Make sure that you defined LIBDIR in the gnuchess Makefile, and that +gnuchess.lang is in that directory. If gnuchess.lang is not there, +you probably didn't type "make install" in the gnuchess src directory; +you must do this to install gnuchess.lang (and the gnuchess book). If +you defined LIBDIR to something that is not an absolute pathname (that +is, to something that does not start with a "/"), GNU Chess will work +only if you run it from the GNU Chess "src" directory where you built +it. + +


[C.20] + XBoard tells me "Warning: Cannot allocate colormap entry". +

+ +

You are running your X server with 8-bit color depth, and you are running +some program that has used up all 256 of your colors. Netscape tends +to do this, or maybe you have a background image that uses up all of +your colors. + +

If you have a modern machine, you probably have enough display +memory to run your X server with 16-, 24-, or 32-bit color depth. If +you're using "startx" to start the X server, try giving the command as +"startx -- -bpp 24" (or 16, or 32). Further details on +configuring your X server are beyond the scope of this FAQ. + +

If you must run in 8-bit mode, try the following: +Avoid background images that use up all your colors. If you +run Netscape, try starting it up with the -install command-line +option; this gives Netscape its own private colormap that X will +switch to when Netscape has the keyboard focus. If all else fails, +another option is to run xboard in monochrome (black and white) mode +by giving it the -mono command-line option. + +


[C.21] + When I log in to freechess.org, the Enter key doesn't work, and I + have to use Ctrl+J instead. But when I use WinBoard, Ctrl+J doesn't + work either, so I'm stuck. +

+ +

This is a pretty rare problem. It should only arise if you have to +reach freechess.org by telnetting (or connecting with WinBoard +/icsport=23) from a Windows PC to a Unix box, and then telnetting from +there to freechess.org. The Enter key should always work when +connecting directly from your PC to freechess.org. + +

The best way to get around the problem is to run timeseal on the +intermediate Unix box instead of telnet. Get the appropriate version +of timeseal for your box from ftp.freechess.org and follow the +directions in the help files on FICS. + +

If you can't run timeseal for some reason, there are some things +you can do to make telnet stay in line mode instead of going to +character mode. Then the Enter key will work. First, try "telnet +freechess.org 5000" instead of "telnet freechess.org." +If that still doesn't work, then when the Enter key stops working, +type the following. Here < and > surround the +names of keys. + +

+    <Ctrl+S><Ctrl+]>mode line<Enter>
+
+ +

[C.22] + XBoard says, "Failed to start first chess program gnuchessx + on localhost: gnuchessx: No such file or directory." +

+ +

XBoard is looking for GNU Chess 4.0. If you didn't want to use +XBoard with GNU Chess, please see topic [C.6]. +If you did want to use GNU Chess 4.0, be sure you have it installed and +that it is on your $PATH. If you wanted to use GNU Chess 5 instead, +see topic [D.6]. + +


+

[D] Crafty and other topics

+
+

[D.1] What is XChess?

+ +XChess is an older chessboard program that is no longer supported. XChess was +written for X version 10, and you may or may not be able to build and run it +on an X11 system. + +

XChess has only one significant feature that is not present in XBoard: Two +humans can play chess using XChess on different machines, without using the +Internet Chess Server as an intermediary. This feature is of interest only if +you don't have network connectivity to the Internet Chess Server. + +

Note: There actually have been several different programs called "XChess" in +circulation at various times. The above describes one that was associated +with GNU Chess. + +


+

[D.2] What is Winsock Chess?

+ +Winsock Chess is a program that lets two people play chess across a +network. It runs only under Microsoft Windows. Some of the code in +Winsock Chess is derived from GNU Chess, but it is not maintained by +the GNU Chess team. You can get a copy from the Internet Chess +Library; see topic [A.2]. For more information, +contact its author, Donald Munro, ccahdm@beluga.upe.ac.za. + +
+

[D.3] What is Crafty?

+ +Crafty is a freely-available chess program written by Bob Hyatt. +Bob is the main author of the well-known chess program Cray +Blitz. Crafty is a very strong program, its code is available, commented +and fairly readable, and its author is actively working on improvements. + +

You can download Crafty from ftp://ftp.cis.uab.edu/pub/hyatt/. Start by getting the read.me file and +reading it. Among other things, this file contains instructions on +how to install Crafty as a command-line application on your machine. + +

There is a Crafty mailing list. +To subscribe, send email to majordomo@cis.uab.edu, with +"subscribe crafty-list" in the body. + +


+

[D.4] How do I use Crafty with XBoard?

+ +

First, you need to get Crafty and install it as a command-line +application on your machine. See topic [D.3]. + +

To use Crafty with XBoard, give the -fcp +parameter like this: + +

+    xboard -fcp "./crafty" -fd crafty_directory
+
+ +Here crafty_directory is the directory where you installed Crafty. +You can add more xboard options at the end of the command line. + +

Crafty 15.14 or later is required to work properly with XBoard +4.0.0 or later. We generally recommend using the latest versions of +both XBoard and Crafty. + +


+

[D.5] How do I use Crafty with WinBoard?

+ +

First, you need to get Crafty and install it as a command-line +application on your machine. See topic [D.3]. +You must use the version of Crafty compiled for Win32 (wcrafty*.exe), +not the version compiled for MS-DOS (crafty*.exe), and it is best to +use the latest version of Crafty with the latest version of WinBoard to +make sure all features are compatible and function correctly. You can +install Crafty in any directory you like. + +

You also need to get WinBoard and install it in the normal way +using its built-in installer. You can do that either before or after +you install Crafty. + +

After both Crafty and WinBoard are installed separately, follow the +directions in the WinBoard Help file (included with WinBoard) for +connecting new chess engines to WinBoard. + +

If you want to have Crafty act as an automated computer player on a +chess server, see topic [B.16]. Before you try +to get that working, be sure you can play against Crafty locally, +first without WinBoard, then with it. Also be sure you can use +WinBoard to play on the chess server yourself, without having Crafty +connected to it. You have to crawl before you can walk! + +


+

[D.6] How do I use GNU Chess 5 with XBoard?

+ +

By default, XBoard still tries to use GNU Chess 4 by running the +command "gnuchessx". That's why if you don't have GNU Chess 4, you +get the error message "Failed to start first chess program gnuchessx +on localhost: gnuchessx: No such file or directory." + +

If you have GNU Chess 5, the command should be "gnuchess xboard" +instead. To make XBoard use this command, give the -fcp parameter +like this: + +

+    xboard -fd gnuchess_directory -fcp "./gnuchess xboard" 
+
+ +Here gnuchess_directory is the directory where you installed +GNU Chess 5 and its book. You can add more xboard options at the +end of the command line. + +


+$Id$
+** End of XBoard/WinBoard FAQ ** + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..50dbe43 --- /dev/null +++ b/INSTALL @@ -0,0 +1,183 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. + diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..acd3797 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,256 @@ +# +# Run ./configure to generate a Makefile from Makefile.in +# See INSTALL for more information +# $Id$ +# + +PRODUCT = @PRODUCT@ +VERSION = @VERSION@ +PATCHLEVEL = @PATCHLEVEL@ + +SHELL = /bin/sh +srcdir = @srcdir@ +VPATH = @srcdir@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +mandir = @mandir@ +man6dir = $(mandir)/man6 +man6ext = .6 +# Yuck; the autoconf generated configure script sets an infodir variable +# and provides a command-line flag to change it, but the default is +# /usr/info instead of /usr/share/info. +infodir = $(prefix)/share/info + +CC = @CC@ +CFLAGS = @CFLAGS@ @CPPFLAGS@ -DINFODIR=\"$(infodir)\" +ALL_CFLAGS = -I. -I$(srcdir) @X_CFLAGS@ @CONF_CFLAGS@ $(CFLAGS) +DEFINES = @DEFS@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +LDFLAGS = @LDFLAGS@ +ALL_LDFLAGS = @CONF_LDFLAGS@ $(LDFLAGS) +LEX = @LEX@ +LEXFLAGS = +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ +LIBS = @X_LIBS@ @XAW_LIBS@ @PRE_XMULIB@ -lXmu @POST_XMULIB@ -lXt -lXext \ + @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@ @LIBS@ -lm +NROFF = @NROFF@ +NROFFFLAGS = @NROFFFLAGS@ + +DISTSOURCE = COPYING COPYRIGHT ChangeLog ChangeLog.2 FAQ FAQ.html \ + INSTALL Makefile.in READ_ME ToDo backend.c backend.h \ + backendz.h bitmaps bitmaps.xchess childio.c childio.h cmail.in \ + cmail.man comment.in common.h config.guess config.sub \ + configure configure.in engine-intf.html frontend.h gamelist.c \ + ics-parsing.txt install-sh kk13.pgn lists.c \ + lists.h mkinstalldirs moves.c moves.h parser.h parser.l pgntags.c \ + pxboard xboard.c xboard.h xboard.man xedittags.c xedittags.h \ + xgamelist.c xgamelist.h xhistory.c xhistory.h acconfig.h config.h.in \ + xboard.texinfo.in xboard.texi gpl.texinfo zic2xpm.c zic2xpm.man \ + pixmaps sounds xboard.ps + +ZIPPYSOURCE = zippy.README zippy.c zippy.h zippy.lines + +DISTDIR = @PRODUCT@-@VERSION@.@PATCHLEVEL@ + +XBOARDOBJ = parser.o xboard.o backend.o moves.o childio.o gamelist.o \ + lists.o pgntags.o xgamelist.o xedittags.o xhistory.o @ZIPPY_O@ + +### Targets required by GNU standards ####################################### + +all: xboard zic2xpm xboard.doc cmail.doc zic2xpm.doc + +more: all pseudo-source info FAQ html dvi ps + +install: installdirs xboard zic2xpm cmail pxboard xboard.man cmail.man \ + zic2xpm.man + $(INSTALL_PROGRAM) -s xboard $(bindir)/xboard + $(INSTALL_PROGRAM) -s zic2xpm $(bindir)/zic2xpm + $(INSTALL_PROGRAM) cmail $(bindir)/cmail + $(INSTALL_PROGRAM) $(srcdir)/pxboard $(bindir)/pxboard + $(INSTALL_DATA) $(srcdir)/xboard.man $(man6dir)/xboard$(man6ext) + $(INSTALL_DATA) $(srcdir)/cmail.man $(man6dir)/cmail$(man6ext) + $(INSTALL_DATA) $(srcdir)/zic2xpm.man $(man6dir)/zic2xpm$(man6ext) + $(INSTALL_DATA) xboard.info $(infodir)/xboard.info + -PATH=$$PATH:/sbin:/usr/sbin install-info \ + $(infodir)/xboard.info $(infodir)/dir + +installdirs: mkinstalldirs + $(srcdir)/mkinstalldirs $(bindir) $(mandir) $(man6dir) $(infodir) + +uninstall: + rm -f $(bindir)/xboard $(bindir)/cmail $(bindir)/pxboard + rm -f $(bindir)/zic2xpm + rm -f $(man6dir)/xboard$(man6ext) $(man6dir)/cmail$(man6ext) + rm -f $(man6dir)/zic2xpm$(man6ext) + rm -f $(infodir)/xboard.info + -PATH=$$PATH:/sbin:/usr/sbin install-info --delete \ + $(infodir)/xboard.info $(infodir)/dir + +clean: + rm -f xboard zic2xpm *.o *.doc $(LEX_OUTPUT_ROOT).c + rm -f xboard_*.html xboard.aux* xboard.cp* xboard.dvi xboard.fn* + rm -f xboard.ky* xboard.log xboard.pg* xboard.toc xboard.tp* + rm -f xboard.vr* xboard.ps + +distclean: clean tidy + rm -f config.cache config.log config.status Makefile + rm -f config.h stamp-h xboard.texinfo cmail comment.awk + +mostlyclean: clean + +maintainer-clean: distclean + @echo "This command is intended for maintainers to use;" + @echo "it deletes files that may require special tools to rebuild." + rm -f parser.c xboard.info FAQ + +TAGS: + etags *.c *.h + +info: xboard.info + +xboard.info: xboard.texinfo xboard.texi gpl.texinfo configure.in + makeinfo --no-split -I $(srcdir) xboard.texinfo + +ps: xboard.ps + +xboard.ps: xboard.dvi + dvips -o xboard.ps xboard.dvi + +dvi: xboard.dvi + +xboard.dvi: xboard.texinfo xboard.texi gpl.texinfo configure.in + TEXINPUTS=.:$(srcdir): texi2dvi xboard.texinfo + +html: xboard_toc.html + +xboard_toc.html: xboard.texinfo xboard.texi gpl.texinfo configure.in + texi2html -split_chapter -I $(srcdir) xboard.texinfo + +FAQ: FAQ.html + lynx -dump -nolist $(srcdir)/FAQ.html > FAQ + +nothinglocked: + @echo -n Testing that no RCS files are locked... + @test `rlog -L -R RCS/*,v | tee .locked | wc -l` = 0 || \ + ( echo 'ERROR - the following are locked: ' 2>&1 ;\ + cat .locked 2>&1 ;\ + false ) + @echo OK + +pseudo-source: parser.c xboard.info FAQ + +dist: nothinglocked + mkdir $(DISTDIR) + rlog -h RCS/*,v | egrep '^RCS file:|head:' > RCS/$(DISTDIR).rcs + cp -r $(DISTSOURCE) $(ZIPPYSOURCE) $(DISTDIR)/ + if echo $(DISTDIR) | grep -i beta ; then \ + cp -r READ_ME_FIRST $(DISTDIR)/ ; \ + fi + cp parser.c xboard.info FAQ $(DISTDIR)/ + tar cvf - $(DISTDIR) | gzip > $(DISTDIR).tar.gz + +check: all + +### End targets required by GNU standards ################################### + +.SUFFIXES: +.SUFFIXES: .c .o .man .doc + +.c.o: + $(CC) $(DEFINES) $(ALL_CFLAGS) -c $< + +.man.doc: + $(NROFF) $(NROFFFLAGS) $< > $*.doc + +xboard: $(XBOARDOBJ) + $(CC) -o xboard $(ALL_LDFLAGS) $(XBOARDOBJ) $(LIBS) + +zic2xpm: zic2xpm.o + $(CC) -o zic2xpm zic2xpm.o + +parser.c: parser.l + $(LEX) $(LEXFLAGS) $(srcdir)/parser.l + mv $(LEX_OUTPUT_ROOT).c parser.c + +parser.o: parser.c + + +tidy: + rm -f ,* .,* .emacs_[0-9]* core a.out *~ *.BAK *.CKP .nfs* + +backend.o: backendz.h +backend.o: config.h +backend.o: common.h +backend.o: frontend.h +backend.o: backend.h lists.h +backend.o: parser.h +backend.o: moves.h +backend.o: @ZIPPY_H@ +childio.o: config.h +childio.o: common.h +childio.o: frontend.h +gamelist.o: config.h +gamelist.o: common.h +gamelist.o: frontend.h +gamelist.o: backend.h lists.h +gamelist.o: parser.h +lists.o: config.h +lists.o: common.h +lists.o: lists.h +moves.o: config.h +moves.o: common.h +moves.o: backend.h lists.h +moves.o: moves.h +moves.o: parser.h +parser.o: config.h +parser.o: common.h +parser.o: backend.h +parser.o: frontend.h +parser.o: parser.h +parser.o: moves.h +pgntags.o: config.h +pgntags.o: common.h +pgntags.o: frontend.h +pgntags.o: backend.h lists.h +pgntags.o: parser.h +xboard.o: config.h +xboard.o: common.h +xboard.o: frontend.h +xboard.o: backend.h lists.h +xboard.o: moves.h +xboard.o: xboard.h +xboard.o: childio.h +xboard.o: $(srcdir)/bitmaps/bitmaps.h +xboard.o: xgamelist.h +xboard.o: xedittags.h +xboard.o: xhistory.h +xedittags.o: config.h +xedittags.o: common.h +xedittags.o: frontend.h +xedittags.o: backend.h lists.h +xedittags.o: xboard.h +xedittags.o: xedittags.h +xgamelist.o: config.h +xgamelist.o: common.h +xgamelist.o: frontend.h +xgamelist.o: backend.h lists.h +xgamelist.o: xboard.h +xgamelist.o: xgamelist.h +xhistory.o: config.h +xhistory.o: common.h +xhistory.o: frontend.h +xhistory.o: backend.h +xhistory.o: xboard.h +xhistory.o: xhistory.h +xhistory.o: lists.h +zippy.o: backend.h +zippy.o: backendz.h +zippy.o: config.h +zippy.o: common.h +zippy.o: zippy.h +zippy.o: frontend.h + diff --git a/READ_ME b/READ_ME new file mode 100644 index 0000000..17d4cbd --- /dev/null +++ b/READ_ME @@ -0,0 +1,63 @@ + +What is XBoard? +=============== +XBoard is a graphical chessboard that can serve as a user interface +for GNU Chess, for the Internet Chess Server, or for electronic mail +correspondence chess. XBoard can also be used by itself. See the +manual page xboard.man for further details; use the command "nroff +-man xboard.man | more" to read it. + +Building XBoard +=============== +Quick start: You can build xboard on most systems with the commands + + configure + make + +See the file INSTALL for more detailed instructions. + +See the file FAQ for answers to frequently asked questions. + +Reporting problems +================== + +Report bugs and problems with XBoard to . Please +use the "script" program to start a typescript, run XBoard with the +-debug option, and include the typescript output in your message. +Also tell us what kind of machine and what operating system version +you are using. The command "uname -a" will often tell you this. + +Here is a sample of approximately what you should type: + + script + uname -a + ./configure + make + ./xboard -debug + exit + mail tim@tim-mann.org + Subject: Your short description of the problem + Your detailed description of the problem + ~r typescript + . + +If you improve XBoard, please send a message about your changes, and +we will get in touch with you about merging them in to the main line +of development. + +Caveats +======= +XBoard depends on the Xt Intrinsics and Athena Widget Set of X11R4 or +later. In particular, X11R3 just won't do. + +XBoard works best with version 4.0 or 5.0 of GNU Chess. Older +versions may also work, but they are unsupported. The GNU Chess +project requests that you get a current copy of GNU Chess rather than +using older, bug-ridden versions. GNU Chess 4.0 must be compiled with +the -DXBOARD flag for use with XBoard. Use the "make gnuchessx" +target in GNU Chess 4.0 to do this. + +The Free Software Foundation would prefer to be able to distribute an +X chessboard program covered only by the GNU General Public License +and unencumbered by any other copyright. If you can help with this, +please contact the FSF. diff --git a/ToDo b/ToDo new file mode 100644 index 0000000..da3ad3b --- /dev/null +++ b/ToDo @@ -0,0 +1,1097 @@ +Possible improvements **=somewhat higher priority +--------------------------------------------------- + +20. Some way to back up, explore variations, then return to the main +line and restore moves we backed out. Should also support exploring +side branches while loading a game file. Push/pop buttons? Button to +fork another xboard in same state as current one? + +20a. Allow side branches to be remembered in game files (and +understood on LoadGame). Use PGN variation notation. + +**62a. Support series of time controls as in later gnuchess 4.0.x +versions (and real tournaments!). Needs a protocol extension to +"level"; this is now planned for protover 3. + +62b. Perhaps we could also support the kind of clock where you get K +seconds per move, plus a reserve of J seconds per game that is used +when a move takes more than K seconds. The degenerate form of this +with J=0 is desirable in itself. Needs a protocol extension. + +68. WinBoard has some features not in xboard. Among others: +68a. LoadGameOptions dialog (good to add) +68b. SaveGameOptions dialog (good to add) +68c. TimeControl dialog (good to add) +68g. Font dialog. (leave out) +68h. Colors dialog. (leave out) +68i. Board size on Options menu (good to add) +68j. Resize with mouse +68k. Highlight dragging +68m. Move typein from keyboard. (good to add) + +69. xboard has some features not in WinBoard. Among others: +69c. Font size selection by pattern fill-in. (leave out) +69d. Alternate bitmaps specified at runtime. (good to add, often requested) +69e. Flashing. + +71. Allow restart after ICS logout instead of exiting? Many requests +for this. + +71a. Would be useful to drop into NCP mode after ICS logout and allow +for reconnect later. For instance, this would let you save your last +partial game if you didn't have autosave on. + +72. Allow switching among ICS, NCP, GNU modes?? + +74. Observe/play multiple games, each with its own window. Hard. + +80. Clone command. Saves current game to a file foo, then starts up +another copy of xboard with -lgf foo. Should probably note current +state of some options and give command line flags to set them the same +way in child. What about -ncp mode, though? Might want that to be +different. Would be nice to have a -moveNumber flag to position the +child to the same move number in the current game. + +91. Would be nice to have an option to overwrite save file instead of +appending. + +95. "Have the clock indicate how long the computer/player has been +thinking for when the -st option is used. This should be how long for +the current move only." (Dino Dini) + +97. "Have the ability to change the level of the gnuchess during a +game. For analysis purposes, sometimes it is useful to have the +computer think really hard about certain positions." (Dino Dini) + +98. Reorganize the source and split it into more files. + +107. Changing time control during a game could be made to work. +Current (WinBoard only) way of changing at start is suboptimal. + +108. Could add search depth and time per move to (WinBoard) +TimeControl dialog. + +140. LoadPosition needs better checking for invalid data. + +142. xboard needs a real file chooser dialog. Jeff Woolsey submitted +code to merge in the one from Ghostview, but said it works only on +X11R5 or later. I have not yet tried his code or looked to see if it +could be made to work on X11R4. + +147. Improve display of held pieces in bughouse mode, putting them +closer to the player's side of the board, and perhaps using icons (and +allowing dragging from the icons to drop a piece). Actually, moving +the clocks would be beneficial too, so that it's easier to visually +associate the right clock with the right player when looking at two +boards during a bughouse match (with two copies of xboard running). +Maybe multiple window layouts should be user-selectable. + +150. Keep track of castling availability, en-passant availability, and +FEN half-move clock (for 50-move rule), pass the availability +information to the move generator through the existing interface, and +load/save it in the FEN code. + +150a. Note that not keeping track of ep creates a bug in mate +detection. In certain positions, moving a pawn from the 3rd to 4th +rank gives mate, but it is not detected because if the pawn had moved +to the same position from the 2nd rank, ep capture would have been +legal and there would be no mate. + +150b. Note that although we try to put in e.p. availability when +writing FEN, this works only if we have the move that got us to this +position in the moveList. If we load a position from FEN, the +e.p. availability field of the FEN is lost. + +152. Generate the info file, man page, perhaps html, and perhaps even +the WinBoard help file from the same sources. Right now, +substantially the same text is duplicated in three places. This is +a huge pain in the neck. + +157. Idea: if Zippy flags some number of times in a row and keeps +getting told the opponent is not out of time (presumably due to +timestamp/timeseal), he should issue an adjourn or abort. + +160. The xboard CTRL key flashback feature is bad in Analysis mode. +Flashing back throws away the analysis. + +161. SIGINT doesn't work for local programs on Win32. There is an +equivalent, GenerateConsoleCtrlEvent(CTRL_C_EVENT), but I haven't +gotten it to work thus far. It seems that WinBoard and the chess +engine don't "have the same console"; indeed, neither has a console. + +162. Supply a non-X Zippy for Unix. Perhaps use the code from Klaus +Knopper. + +167. Alternative bitmaps loaded at runtime for WinBoard. + +169. Upload Game on file menu? This would upload the current game +moves into a scratch examined game on ICS. Could do Upload Position +too. Some code to do Upload Game was contributed, but it didn't +handle setup positions, variants, checking for proper gameMode, etc., +so I couldn't use it. + +170. Auto step every k seconds should be a general feature you can +turn on at any time, not just in LoadGame. What should GUI be? + +171. Displaying thinking in a separate window should be an option +available at all times when Show Thinking makes sense, not just in +analysis mode. It should perhaps be orthogonal to analysis mode. + +172. Should analysis window scroll instead of showing only the last +line? There could be an extra checkbox to show all chess engine +output in it. + +178. Need reliable kill for chess engine on Win32. See also 161. + +181. Some people want -sgf to save only played games, not observed and +examined games. Others like it to save them all. Make this an option? + +183. Search feature in Game List dialog [Igor Eged]. + +187. "Log session" feature for ICS window. + +193. Some users have reported xboard redraw bugs, but I have not +been able to reproduce them on the Digital Unix, Linux, or eXcursion X +servers (xboard). + +c. From Hawk: +Dragging in xboard does not work 100%. +* The dragged piece may disappear (try some fast e2-d3 movements - + this is easy to reproduce). +* The dragged piece may be placed on an illegal position (this + happens less frequently, but it _can_ be reproduced by doing the same + as above). +* In both of the above cases, the board is correct after forcing a + redraw (ie. minimizing/restoring the window) +I'm using eXodus - a win32 X server, perhaps it's buggy. [Seems that way, +or just possibly, these could be bugs that are fixed in 3.6.11beta or +3.6.12beta.] + +d. One user reports: "If you are 'holding' a piece over the square you +want to go to and that move becomes illegal but you make it anyway, +the display sometimes corrupts and a partial piece appears..sometimes +a whole piece." This was under RedHat 6.0. + +194. A few users have reported drawing problems with WinBoard. There +may be some color map problem on certain displays. I might possibly +have fixed this already; I cannot reproduce it. The common thing +seems to be black pieces changing to white. This may depend on having +customized the board colors. I suspect many of these problems are +buggy Windows drivers for particular display cards. (May be worked +around in 4.2.0 with reprocessed .bmp files.) + +a. From mulesmurf: if i log in and then move the board, it will happen +that the black [pieces] change to white. + +c. People have sent pictures where the grid didn't get redrawn. This +produces random bits in the grid area from uninitialized memory. +Could this be a resource leak? + +d. From James Van Buskirk: I did notice one problem tonight playing +against Comet under FX!32 1.2 (Comet, not winboard ran under FX!32): +for a couple of moves winboard didn't turn off the highlighting of the +square I dropped the piece on until Comet had moved. Later, the +problem fixed itself. Have other users noticed this? [No.] + +e. One user reports: Lastly, there is some sort of slight bug in the +piece dragging code, but it comes up only very occasionally (once in +500 moves?)...basically, I'm dragging, change my mind, throw the piece +of the side of the board, and instead it gets stuck not inside a +square. It's really disconcerting, this piece just sitting across +square boundaries. When you make another move, it gets cleared up and +goes back where it's supposed to. [Might be fixed in 4.0.6, but I +couldn't reproduce this, so I can't be sure.] + +f. DAV says: "When I resized the board on win 95 and made it smaller +some of the pieces turned into junk (I'm not able to give a screen +shot)." Later: "Seems to happen on the three sizes below small. +Win98 and NT seem to be ok, trying to get more win95 users to test +it." Works fine for me on Win 95... [Might have been fixed by the +cleanup of the Windows .bmp's that happened sometime before version +4.2.3] + +195. Flash Moves works at the end of every change to the board, using +some rather gross code in DrawPosition. This code should perhaps be +ripped out and the flashing done from inside AnimateMove instead. + +197. More color distinctions. Maybe allow several user-selected channels +to have their own colors. + +198. More sounds. Some possiblities: distinguish White vs. Black move +or your move vs. opponents, distinguish different kinds of +win/loss/draw/unfinished (checkmate, resignation, stalemate, other +draws, opponent disconnected, etc.), game ends when you aren't playing +and/or aren't in ICS mode, differentiate amongst requests (draw offer, +etc.), **check, got new offboard piece (by piece type?), opponent got +new offboard piece (ditto), arrival notification, "* who has an +adjourned game with you," draw declined, moretime received. + +199. Maybe put user names instead of White and Black on clocks, or +user names above or below clocks in a smaller font. + +200. I don't like these ideas, but some people do: +a. Highlight all of the squares that the piece you are moving can go to. +b. Clicking on the piece moves it immediately if it has only one legal move. +c. Allow clicking on the destination, then the source. +d. I guess highlight the pieces that can go to that destination. +e. Clicking on a destination that only one piece can go to moves it there. + +201. mulesmurf: piece counter so we know exactly the score + +202. mulesmurf: ziics pieces, board along with color intensity + +204. Hawk at Fri May 15, 12:58 CDT 1998: a minor thing with xboard: +the coords disappear while dragging from a square with coords on it. +[They come back when the drag is finished.] + +208. WinBoard sometimes comes up with one of the menu bar items grayed +out (one that should not be). I've seen this on different entries at +different times. + +213. Maybe add Silence to sound menu -- parallel to Monochrome on +color menus. + +214. Maybe easier startup dialog customize: +a. Buttons to add/delete/move(?) current string to/from/within current list. +b. Or maybe auto-add newly typed/edited strings up to some limit. +c. Also a drop-down for Additional Options. + +216. Maybe shorten menu names in WinBoard to one char if and only if +the menu bar would wrap with longer names. + +**217. Easier way to add engines to the WinBoard startup dialog. +Ideally, an engine author should be able to supply a simple +configuration file or script that installs his engine. "*.wbe" idea. + +218. Some folks would like Highlight Last Move to apply only to +opponent's moves. + +219. From Jorge Monasterio: Support automatic game starts when in +tournament. In other words, do that "match bigolfish mann 5 0 black" +automatically based on the info sent from mamer. [I would need to +play in some tournaments before I could evaluate this idea or fill in +the details.] + +222. Could support time handicaps. + +223. Bug: very long comments cause buffer overflow. Need to revamp +the way comments are parsed and returned from parser.l to fix this. + +224. Larry Parrish requests: In an automated multi-games match I would +like to load the n-th game from the file for the n-th game of the +match. [That is, when -mg and -lgf or -lpf are used together without +-lgi or -lpi.] + +225. From pulp: another bug (maybe with the Microsoft RichEdit +control) I've observed is when you flood the edit control it loses the +bottom. Eg. "games" will scroll along then start slipping until by +the end of the list you are really looking at the middle of the list +and have to manually scroll back to the bottom. [May be fixed?] + +225a. Resizing the WinBoard ICS interaction window can cause the cursor +to be off the screen, which stops scrolling. + +226. From pulp: Clipboard persistence. If I copy text, then the text +disappears when Winboard is closed. Eg.: Log in, highlight and copy a +web page address, close, go to browser, paste *nothing*. [How does +one do this in Windows?] + +**227. Illegal moves from buggy engine should stop the game. + +227a. In engine-engine matches, the buggy engine should lose. An +engine that crashes should lose and perhaps get restarted for the next +game. + +227b. Maybe when an engine playing in Zippy mode exhibits a bug, we +should do a little more too. Perhaps "say Sorry, the engine seems to +have a bug", resign or abort, and maybe force an engine restart for the +next game. + +**227c. We should also detect and stop the game on false mate or draw +claims, rejecting a legal move, or (maybe) missed claims of mate or +draw. Note that draw claims require checking for repetition, 50 move +rule, and insufficient material as well as stalemate, so this is +nontrivial. + +228. RichEdit bug: sometimes a line gets indented as if it were +wrapped when it should be flush left. + +**229. Support for sending moves from the partner's game to a bughouse +engine. Ben Dean-Kanemura submitted support that works without adding +general multi-game support, by relaying the moves without processing +them. Should also send holding updates and clock times; not sure if +Ben's code does that. Needs to be a new "feature" command option, and +to be documented in engine-intf.html, removing the note that this may +be done in the future. + +231. See Ed Collins's WinBoard bug list on his pages: + +231b. If you save an ICS examined game to disk as a PGN file, it +doesn't report the end-of-game result in both the header and at the +end of the notation. [It doesn't get this info from the server, but +maybe there is a way it could.] + +232. From Ed Collins's WinBoard wish list on his pages: + +232b. Multiple winboard.ini files for different moods, loadable from +inside the program. + +232c. Fix bug where fics% prompt is not suppressed when using +timeseal. This has something to do with a timeseal deficiency whose +details I've forgotten, but there must be some way to fix it. + +232e. When using the server's "examine" mode to examine a previously +played game, have the game clocks display the time that each player +currently had after each move was made. + +232f. [Not from Ed] Deal with ICC game relays where an "examined" game +is supposed to have running clocks. Not sure if this is still an issue. + +232g. Customizable on-screen buttons [i.e., toolbar or toolbox]. + +232h. Customizable function keys. Currently xboard can bind a key to +any built-in xboard function. Should extend this to WinBoard, and +also (in both programs) support sending an arbitrary ICS command when +button is pressed. + +233. See if anything from LightningRulez should be added. Premove is +now included (from Winboard Plus), but maybe there are other useful +things too. + +241. There might still be bugs in xboard and/or winboard when moves +come in from ICS during drag animation, though I can't reproduce them. +DAV saw the opponent's piece fail to be erased from the source square, if +I understood his message right. [DAV says this still exists in 4.2.5. +I think bug 426 is a duplicate. The description is clearer there.] + +242. User-defined "looking_at" patterns and actions. This is hard to +bombproof. + +**243. "Rematch" shortcut in /cp mode. + +246. Maybe auto-close comment window when user goes to the next move. +Whether this is desirable really depends on the content of the +comment, but maybe it is rare to have a long comment that discusses +the plan several moves ahead and should be left up. + +248. Would be nice to support retract move after checkmate or draw (etc.). + +254. Different tray icons for interaction window vs. board (suggestion +from FICS). + +256. One user asked for "delete" option in game lists. This requires +rewriting the file to close up the hole, so it's pretty heavyweight. +Next people will be asking for move, sort, search, and other game +database functionality; ugh. + +**257. Would be nice to find a way to safely implement "retract move" +when the engine is still on move. (using ping/pong) + +**260. General mechanism where engine can declare engine properties that +the user can frob and xboard/winboard will put up a simple dialog to +allow user to view and set them. See email message "special engine +commands" from Steffen Jakob. + +261. Check that "quit" is sent to engine properly if ICS connection +fails to open due to error from timestamp/timeseal. "wzrdking" had a +case where it didn't. Timetamp had failed with "Host name not found +by name server" (because in fact there was no internet connection, arrgh). + +273. Displaying the names of the players from a PGN file in the header +of the window does not work if there is only one game in the file. +The filename is shown instead. (This was intentional, but maybe a +poor idea.) + +274. Command to go to move number N, with entry box for N. + +276. Make grid optional in winboard? Note that the highlight options +don't work without it. + +276a. Make color of grid an option, instead of always black. + +277. Flooding xboard -zt + timestamp with tells hangs timestamp after +a while. xboard is blocked writing to the timestamp pipe. timestamp +is in an unknown state, not reading from the pipe nor responding to +pings. (Confirmed with the software running on milwaukee, Red Hat +5.2) + +278. Flooding winboard -zt + timestamp with tells hangs winboard after +a while. timestamp still responds to pings. This reported by +nudnick; I haven't tried to reproduce it yet. He also says that +windows explorer then crashed when he tried to close winboard. + +279. Idea from an anonymous ICSer: piece drop menu could have images, +not words. [Or maybe both?] Also might be easier to select +accurately from it if horizontally arranged, or in a 3x2 grid. + +280. Need a way to log raw ICS i/o in WinBoard.debug file, as xboard's +debug mode does. Would help in finding bugs at times. + +284. dxterm hangs when it receives the escape sequence that sets the +title bar on xterm. I think some other xterm substitutes do too. + +**287. WinBoard can look funny if you are using themes because it +unconditionally uses white for certain colors instead of the default +background. + +289. Merge WinBoard support for the Henter-Joyce JAWS screen reader. +Source code (zip file containing modified WinBoard 4.0.2 source) is at +ftp://ftp.henter-joyce.com/users/hj/winboard/WinboardSource.exe. It +would be interesting to make this work with festival (free Unix speech +synth) or other speech synthesizers too. + +290. Could have limited voice output without a speech synthesizer by playing +wav files for piece names and square numbers. Idea suggested by Hannu +Wegner. + +291. Would be great to support DGT, Novag Universal chessboard, etc. +I'm not likely to fork out the cash to buy either for testing, however. +Note users have done various things along these lines. + +292. When an engine is analyzing, it would be cool to have a way to +automatically play out its current PV (or even older ones) on a board. +These PVs could be saved as variations when we have variation support. + +297. Windows users expect all programs to have a Print function, even +though there are other ways to print. Useful items to make printable: +PGN game scores (which are plain text, of course), maybe FEN position +diagrams, maybe graphical position diagrams (i.e., same as pressing +the "Print Screen" function key and printing the clipboard). + +298. One user suggests that automatic move stepping should not start +until you press OK in the tags window. This could be a good idea, but +I think I'd rather have automatic stepping never start until you press +a "play" button on the main window, and have that button always +available, not just when loading a game from a file. + +299. One user suggested being able to jump to a specific move by +typing its number (followed by ... if it's to be black's move). + +300. Can I put a hyperlink (that will invoke a browser) directly onto +the WinBoard Help menu or in the Help file? Useful to take users to +my chess page. + +302. On NT, check if the board is redrawn properly when exiting from +the screen saver. + +308. There is some tricky way to maximize the WinBoard board window, +although there isn't supposed to be. Maybe prevent this, or else +legalize it and make sure something reasonable looking happens. +Note: the trick is to select one of the "tile" options on the Windows +task bar. Not clear what should happen in this case. + +309. Avoid endlessly flagging every second when opponent is lagged out +and autoflag is on. Automatically courtesy-adjourn (or abort if +unrated) instead, at least if in zippy mode. + +310. Weird bug: the last character of a FICS output can appear on the +next line, *after* the fics% prompt, according to one user. I might +have seen something like this myself once too. + +314. One person wanted his engine to see tells when running in Zippy +mode. I doubt this is generally useful, so I haven't added the code I +wrote for him. (I can query for "tellfrom" in my mail file to find +it.) + +314a. Another person wants his computer account to relay tells to his +personal account. + +319. One user would like to be able to reload a PGN file and resume a +game against an engine as if after an adjournment, with the clocks +(and moves to next time control) restored as they were when the game +was saved. + +320. Display ratings of ICS players in the title bar (if there is room, +presumably), or somewhere, anyway. + +321. Maybe refresh the EditTags window if the gameInfo changes and the +window is up. (WinBoard now does this when entering MachineWhite, +MachineBlack, or TwoMachines mode -- not very general. From Winboard Plus.) + +322. One user requested that Zippy games use the engine name instead +of the ICS handle in the PGN tags, as he uses multiple engines on his +account. (My response was "I'd say it should give both"; not sure just +how to do that, though.) + +324. I'm told that Blitzin supports animated dragging without holding +down the mouse button and that this is "much better" and I should try +it too. As yet I haven't. + +326. Full support for variants and variant-capable engines in all +modes, not just ICS mode. Here are some items still needed. Some if +not all should probably wait for a rewrite, not be added to the +current code base. + +326a. Menu to let you see and change the current variant type, not +just a command-line argument as at present. + +326b. crazyhouse: Keep track of holdings and display them, keep track +of what onboard pieces are promoted so they will revert if captured, +understand offboard interposition to stop mate. + +326bb. One user asked for a Czech variant of crazyhouse where pawns are +given to the opponent when they reach the 8th rank (after capturing, if +it's a capture) instead of promoting. + +326c. bughouse: Features in 326a would be helpful for editing one board +of a bughouse game, and getting mate indication right even in ICS mode. +In the longer term, could understand BPGN, support editing two-board games. + +326d. wildcastle: Allow wildcastle castling only when playing this variant! +Maybe support automatic shuffling for local play. + +326e. nocastle: Maybe support automatic shuffling for local play. +Note that several types of ICS shuffle chess fall under this variant. +Note that this isn't really a variant, since if we kept proper track +of castling rights and used "setboard FEN" or the ChessBase extension +of "edit" to set them, it could be treated as normal chess with a +different starting position. + +326f. fischerandom: Maybe support automatic shuffling for local play. +Support castling. Currently, you can probably play Fischer Random +successfully on ICS by typing castling moves into the ICS Interaction +window, but they will not be animated correctly, and saved games will +not be loaded correctly if castling occurs. FR castling is +problematic because the move cannot be specified by the starting and +ending coordinates of the king; in some starting positions there is a +legal non-castling move that moves the king the same way. This +violates a deeply ingrained assumption in the implementation. It also +breaks the GUI -- you need more than just dragging the king two +squares to indicate castling. (Note: In FR notation, O-O is h-side +castling, O-O-O is a-side. See "help fr_rules" and "help fr" on FICS +for rules.) + +326g. kriegspiel: Could give some thought to how to support a +kriegspiel engine. I doubt anyone will ever write one, though. + +326h. losers: Know that captures are mandatory. Understand the win +condition. + +326i. suicide: Know that captures are mandatory. Understand the win/draw +condition. + +326j. giveaway: Know that captures are mandatory. Understand the win +condition. + +326k. atomic: Understand the win condition. + +326l. 3check: Understand the win condition -- ugh, have to keep a +check counter! + +327. Option to set the coord font color (or something) to make sure +there is always enough contrast with the square colors. + +329. Bernhard Maerz would like a command line option to choose the PGN +player name for an engine, overriding the default of generating the +name from the engine filename. This is for his ChessCall program. + +331. Maybe the local autoflag menu option should *also* turn +server-side autoflag on/off by sending an appropriate set command. + +**332. Bug: Autoflag for local engine/engine or engine/human matches +does not recognize that having your flag fall when your opponent has +insufficient mating material is a draw. It counts the flag fall as a +loss. + +336. Of course lots of people ask for a graphical seek window. + +339. There are probably some incompatibilities with chess.net, as they +have made a few gratuitous changes to message formats from the FICS +code base they started with, and perhaps they've added features since +without duplicating the syntax closely enough. In particular it's +been reported that Zippy does not correctly send "partner" and +"variant" commands to bughouse engines on chess.net. Also, I doubt +colorization works. As a matter of personal choice I do not spend any +of my time supporting chess.net, but if others want to donate patches +that allow chess.net to be supported without breaking the support for +ICC and FICS, I am willing to install them. + +342. Analysis mode automatically turns on the Show Thinking option; +the user must then turn it off manually after leaving analysis mode if +he doesn't want it. + +343. Would be nice to change xboard keyboard shortcuts to not be plain +letters, make the new shortcuts work also in the ICS input box, and +make typing plain letters to the board redirect to the ICS input box +or the xterm. Might want to change/remove the Ctrl binding at that time. + +344. One user suggested having a way to save a position as a character +string that would produce a board diagram when rendered in MS Word in +a chess font. Perhaps there is already a nice standalone tool for +this, though? + +346. Could use a better way to pick default size. Now we choose the +largest that fits on the screen, which is typically too big. Not too +bad for WinBoard, but painful for xboard since it can't be resized +after starting. + +349. Check that "quit" definitely makes it to the engine before exit, +if you exit via the File menu while a match is running. Uli Tuerke +reported that maybe it sometimes doesn't (in WinBoard 4.0.5). + +352. Perhaps recognize the ANSI escape sequence that FICS sends out +for the cls command and clear the ICS interaction window. + +**353. WinBoard can crash when the engine outputs very long PV lines +(or debug output that looks like a PV). In particular, lines that +start with 4 or more blanks following a "thinking" output line are +treated as continuation lines, and get concatenated into a 512-byte +buffer with no checking for overflow. Generally we need a lot more +care to avoid buffer overflows inside both xboard and WinBoard. +[Note: changed the buffers to be 5120 bytes as a band-aid.] + +**354. We currently let the user go directly from TwoMachines mode to +various other modes like MachineWhite or MachineBlack. This may +confuse the engine that was on move, since we don't have a way to +force it to stop before it makes the move it was thinking about. +(use ping/pong to know when the engine has stopped) + +355. Idea from LiveAndLetDie: have Zippy specially log games where it +loses to a substantially lower-rated player. Such a game could +indicate an xboard bug, engine bug, or perhaps a computer-using +cheater. + +356. Colorization for FICS tourney tells? They look like this (ugh): +:DChessmaster [tourney #4]: +:hi + +357. A few reports of WinBoard pieces being drawn incorrectly at +certain sizes. I haven't reproduced this. [Maybe worked around +in 4.2.0] + +358. One report of WinBoard colorization not working, even after +restart, until the computer was rebooted. Weird. + +362. Running a very long automated match (/mg option) seems to crash +WinBoard eventually, usually after 300 to 500 games, sometimes later. +Reported by Josh Haglund. Gets a "WINBOARD caused an invalid page +fault in module KERNEL32.DLL" dialog box from Windows. See messages +from Josh for examples of the registers and stack dump. + +362a. A few people have reported WinBoard crashing upon exit. + +363. Maybe xboard should not set the window geometry for new popups, +or at least not the position. The default positions aren't very good, +and setting them programmatically keeps knowledgeable X users from +customizing the positions with X resources. + +366. Feature to let an engine observe an ICS game and run analysis +mode on the moves, perhaps whispering or channel-telling the results. +It's a little too easy to cheat with this feature or I might have +added it long ago. + +369. Optionally send a periodic keepalive command to ICS. Can be +used to defeat autologout, so should probably not be on by default. +Also should be useful to help Zippy notice more reliably when its +connection has hung, so that it can exit and a shell script (batch +file) can restart it. + +370. One user requested a local noplay list for his computer player +because the FICS limit of 50 is too small. He wants several hundred so +that he can noplay everyone who disconnects in a lost position. + +374. Would be good to have a way to change engines without restarting +the interface. + +376. WinBoard is said to crash or "lock up" when loading enormous PGN +files, like a 98 MB file that comes with (??) Crafty. Win32 (at least +in the Win95 lineage) has a limit of 32,767 items in a list box +widget. That might explain this problem. + +376a. xboard exceeds limits in X and/or Xaw if a PGN file has too many +games. (The virtual window that the list box can scroll through +becomes too many pixels high.) This has odd effects; the window +height of the game list seems to get reduced mod 2^16 or something. +Maybe detect this and do something nicer about it, like stop loading +when the window is full and pop up a warning. + +378. One Solaris user didn't have the "strip" program, so the +install-sh script used by xboard "make install" failed. Check for +this? Yuck. + +381. "Illegal move: post" is apparently not handled. Should it be? + +382. The UI for entering Training mode is a bit obscure: you must +first select Load Game, then Training becomes enabled in the upper (!) +part of the Mode menu and you can select it. You can then select it +again to toggle it off. This mode is something like Analyze File +(which has a problematic UI too, but somewhat less so); both should +probably use a similar UI style. I consider disabling the +step-forward button to be overkill, and I think you need to manually +turn off auto-step when loading a game (?). One user expected it to +work with .epd files that give a position and a recommended move. +That seems reasonable, but doing it would require quite different code +from the current pgn-game training mode. + +383. Premove piece drop for bughouse/crazyhouse. + +384. Pre-first-move for xboard. I don't much like the fill-in field +method used in winboard. Maybe allow a move to be made for white +before the game starts (in both xboard and winboard). If you get +black, it's cancelled. Black can already premove after the game +starts, during white's first move think time, so I don't see that a +black pre-first-move is needed. + +**387. Have winboard draw opaque details on black pieces too. +Hmm, this should probably be optional, and the detail colors should +be selectable instead of hardwired to the opposite piece color. + +**387a. Add "no piece border" option to WinBoard. See code from +Robert Jurjevic sent 4/9/2001. + +391. I have a bug report from Stefan Zipproth about engines sometimes +failing to make their first move in an engine-engine match. So far I +can't reproduce it. This might be fixed by the Sleep(500) voodoo in 4.2.4. + +394. See about tightening matching for the "request" event. Right now +it matches on help files a bit too often. (e.g. FICS "help sr_info") +**Also clarify documentation on what the request event is. + +396. xboard's -size defaulting code for bitmaps unfortunately always +picks a size from the built-in list, even if you gave the +-bitmapDirectory option. It would be more user-friendly to have some +extra code that lists the directory and considers only sizes that +are found there, as the pixmap code does. + +397. It would be nice to be able to configure xboard with bitmap +pieces as the default without having to disable xpm support entirely. +This should be a pretty simple mod to configure.in (and xboard.c). + +397a. It would be very nice to be able to compile in both the bitmap +and pixmap pieces. This would allow us to automatically switch to bitmap +pieces in -mono mode, including when -mono mode was automatically selected +because too few colors were available. + +398. It would be nice to have the new .xpm pieces in .xim format too, +since I restrained myself from ripping out the .xim support. + +399. It would be nice to have a configure option to change the +directory where the default piece set is taken from. Slightly nicer +than having to rename the desired directory to "bitmaps" or "pixmaps" +as at present. + +400. TypeinMove should be grayed in ICS mode, or should raise the +console window, or something. + +402. Internationalization. It probably isn't practical to retrofit +this into the current code base. + +****406. "telluser" needs to be made nonmodal in winboard. + +409. One user requested a way to put a time delay in the middle of +sending zippyGameEnd commands. This would (for example) let the +computer do a seek only if its opponent doesn't accept a rematch +within 10 seconds. Nontrivial because Zippy has to continue to listen +to input during the delay; it can't simply call sleep(). Maybe +ScheduleDelayedEvent is OK, but I think it may already be in use in +this situation, and it only supports one event at a time. + +411. Add zippyKibitzThinking and zippyWhisperThinking features? + +412. Maybe optimize setting the move list in the case where only the +current move number changes; avoid slow XawListChange. + +**413. Add movelist window to WinBoard too. Wilkin Ng submitted a +patch that I believe includes this; need to integrate and test it. + +**415. It was suggested that a few common options that many chess +engines need be promoted to xboard/WinBoard options so that the user +can set them from the GUI in a uniform way. In particular: hash size, +directory name for endgame tables. + +**416. Can we avoid dying when xboard is in 8-bit mode, pixmap pieces +are chosen (by default), and we can't get enough colors? Ugh. + +**419. It was suggested that stat01 be generated/accepted during normal +play with "post" on, not just during analysis mode. This would need +to be a "feature" command option. + +422. Track FICS change to details of how timeseal works; is this +implemented at FICS yet? + +423. When locally stepping through an ICS game that is over, it would +be nice to display the historical clock times at each move. + +424. DAV at Thu Nov 9, 01:20 CST 2000: any chance on winboard/xboard +of a key press and a move executing draw ? that way you at least +have a chance of claiming a draw in 1 0. + +**426. DAV says, in xboard: If you are not on clock and you hover a +piece over a square where your opponent then moves to and then move +the piece away the piece the opp moved or part of it has not been +drawn. [Duplicate of bug 241?] + +429a. Check whether more support is needed for WinBoard to work with +scroll wheel mice in the absence of special mouse drivers that generate +scroll bar events directly. + +431. People find Analyze File confusing; they think it should do +Crafty's relatively new Annotate function. Also, it's somewhat +superfluous now that you can enter Analysis mode and then load the +file, or vice versa. + +**436. WinBoard is said to crash if started while WinBoard.debug is +being tail -f'ed. + +**441. Can I prevent an undo after new in the odd case where it can +happen now? See mail from Bob Hyatt. + +**448. add notes on non-xboard GUIs from Dieter Buerssner to document? + +450. Suggested: an option to let an engine keep pondering while an ICC +game is adjourned. This seems a bit difficult. + +451. Suggested: support SuperMamer messages on FICS. See +http://www.freechess.org/SuperMamer/parsing.html + +452. Suggested: a way to say "prompt for the password" in a login.ini file. +See 510 instead. + +**454. Add a way to claim a draw together with making a move, as can +be needed for draw by repetition (creating the 3rd repetition with the +move) and by the 50 move rule (the move is the 50th). Add to +protocol, and implement using the individual methods on FICS and ICC. +Need to be sure it's really a FICS that has the feature (somehow). + +455. Suggested: Add the epdkit commands such as epdpfga to the +protocol, since Crafty and "many" (which?) other engines include the +epdkit. + +**456. Bob Hyatt suggests: "feature match=1" which says "send match +requests to the engine and let it decide on who to play next". +I.e., maybe send an abbreviated but fixed format message like this: +match time inc R/U. The engine would use "tellics +accept " to accept. Add as feature to protover 3. + +**457. Standardize on the meaning of scores (e.g. in stat01 responses). +Is positive good for white or good for the engine? Do certain scores +mean forced (tablebase) draw, or forced mate in N? This should align +with the EPD spec. Maybe a feature command should indicate that the +engine matches this part of the spec, but then again, it's not clear +what we can do about it if the engine doesn't give that command, so +maybe there is no point. See discussion on chess-engines list. + +458. Bug: xboard will try to use an engine to play normal chess even +if the engine has given the feature variant command and did not +include "normal" on the list. Crafty 18.1 inadvertently relies on +this bug, so it probably can't be fixed right away. + +**466. Check whether engine sometimes gets extra "quit" and restart +when reuse is off. See Bob Hyatt message of 3/13/2001 and 3/15/2001, +also mentioned again 6/12/20001. + +**468. Need to look at Wilkin Ng's contributions! + +**469. Look at Zippy's behavior if the operator observes, follows, +examines, etc. Some bugs in this area have been fixed, but it's +received very little testing, as Zippy was never meant to be used that +way. Noted later: Examining in -zp mode definitely has problems. If +you go forward one move at a time, moves are sent to the engine +correctly. If you go backward one move, "undo" is not sent to engine +as it needs to be. Going forward or back by more than one move at a +time needs to be looked at too. + +**471. Look at 3/17/2001 message from Laszlo Vecsey about crashes when +exiting on Win ME while data is coming in from the server. + +**473. Visual low-time indicator. See patch in Brian Mays message of +3/27/2001. + +**474. Crash reported when sending certain 8-bit characters through +WinBoard (180, 167, others). I'm almost certain this is a FICS +timeseal issue and nothing to do with WinBoard itself. + +**475. Look at Laszlo Vecsey's mousewheel patch of 4/10/2001. + +476. For some reason (I guess some GUI supports them), most WinBoard +engines now have a graphical logo, 100x50 pixels in Windows .bmp +format. It's been requested that WinBoard have a place to show the +logo. + +477. Implement the "book engine" idea I proposed in the protover 3 +discussions. Some folks have offered to write them (e.g., Bruce +Morland). + +478. Recognize URLs in the WinBoard ics interaction window and make +them work as hyperlinks (firing up your browser). + +**479. Possibly use Scott Gasch's 7 May 2001 patch to delay accepting +challenges when ping > pong instead of declining them. Bug: if you +get more than one challenge, Scott's patch forgets about all but the +last one. If that guy then withdraws his challenge, the others are +left in limbo, neither accepted nor declined. I suppose we could +decline challenges when there is one waiting. However, if we make the +change to optionally pass match requests through to the engine, Bruce +Moreland would like us to queue up challenges and pass them all on. + +481. 8 May 2001, Bob Hyatt "matchscore" feature suggestion could go in +protover 3: "matchscore A B C D E says we are in a match, this is game +A of B games. The current match score is I have won C, drawn D, and +lost E games in this match. This would give the engine a chance to +adjust the draw score as needed to try to win the match rather than +just trying to win a single game." + +**482. Suggestion from Bruce Moreland: if the user goes into ICS +examine mode while -zp is active, and the engine supports analyze, +then put it into analyze mode and let it work on the examined game. I +guess this could work for observed games too. Should it be optional +or always done? + +483. It would be nice if the KingShine 3D board could be integrated +as an alternative xboard GUI rendering. + +**484. Add -feature1 and -feature2 options to pretend the engine sent +us those feature commands. Useful kludge for certain buggy engines. + +485. Add "reset" to protover 3. (Clear the hash tables and other such +info; used to put the engine into a known state before running a +test/benchmark position.) + +486. Other protover 3 features listed in my 6/21/2001 message to +chess-engines list. Write a full protover 3 draft for comment. + +487. Adjudicate non-ICS games as a draw when there is insufficient +mating material on both sides, especially engine/engine games. Well, +maybe. I argued against this in a 6/26/2001 message to chess-engines. + +487a. Probably also adjudicate when we detect checkmate or stalemate, +before bothering to notice whether the engine detected this. + +487b. Note: Do not adjudicate 50 move rule or 3x repetition since those +must be claimed by a player -- at least not by default. It would be +OK to have a flag to do this someday when we are smart enough to +notice it. Would definitely be good to be smart enough to notice an +incorrect draw claim by an engine. + +487c. Another request: allow the operator to adjudicate engine/engine games. + +488. Option to suppress tags popup on game load? This has been +requested a few times, and I received one partial implementation (not +enough to be useful). Needs to be on the options menu, etc. Note +conflict with 298 above. + +489. Maybe have Zippy use xtell for tells to avoid redefining "." if +the operator is also doing tells. Do all ICSes support xtell, though? + +490. Bruce Moreland request: a way to turn Zippy auto-accept on and +off dynamically. + +491. Bruce Moreland request: a defined way to turn on/off PV (etc.) +kibitzing from the engine dynamically. I had thought it would be +better to make the GUI able to relay thinking output as kibitzing on +its own (and be able to turn this on/off dynamically), but Bruce +points out that what engine authors want to send as kibitzing output +usually includes more than the PV thinking output. + +492. One user reports that GNU Chess 5 crashes if you start a game, +play far enough to get GNU Chess out of book, select Reset, and play +e3 in the new game. This is probably a GNU Chess 5.00 bug, unrelated +to WinBoard. Can't reproduce on Linux; didn't try yet on Windows. +Need to see if 5.02 fixes it. + +493. DAV suggests stripping off first arguments that are obviously +not the name of the engine when trying to parse out the engine name +from its command line -- things like nice, nohup, sh, csh, bash, etc. +Ugh, but I suppose it would be helpful sometimes. + +494. Internationalization. A couple of people have done (or told me +they were doing) partial conversions of WinBoard to German or Spanish +by manually translating the messages. I think it would be much better +(but a big job) to use GNU gettext. I haven't looked into the details +of that at all. + +495. JamesBaud points out that FEN is not sufficient to correctly +represent a crazyhouse position (or bughouse, for that matter), +because it does not distinguish promoted pawns that will revert when +captured from real pieces. ICS style 12 also does not give us this +information. I really don't know what I could do about this -- take +the lead in proposing an extension to FEN and to style 12 with new +piece letters, I suppose. I don't really have time or motivation for +that. If you always use PGN, not FEN, to save Crazyhouse, that works +around the problem. + +**496. DAV sent some code to save a screen shot in xboard. Look at +merging this in. + +**497. Igor Eged reports: I make a move on opponents time using +premove. Right in the time I am holding another piece in case of +unexpected check that I can have other possibility. But then the piece +hangs in the void and its invalid move, what means often loss in 1 0 +lightning. + +498. It would be nice for Zippy to be able to play ICC wild 20 and 21 +(the types where loadgame is allowed). Presumably there would have to +be an option to either send the loadgame command with a specified +position, or to deal with an opponent sending it. I'm not sure how +this should work exactly, or how to prevent opponents from cheating in +various ways. + +499. It would be nice for Zippy to be able to switch amongst several +different engines depending on which variant type is being played. + +500. It would be nice if Zippy could have an option to accept +takebacks. Hmmm, also, the operator might want to manually offer a +takeback; it would be good if that worked. + +501. People would like to be able to add more bot functionality to +Zippy without C programming. I don't have any ideas on how to do that. + +502. One user requests the ability to have a game list file open for +more than one PGN file at a time. + +503. We don't do protover 2 feature negotiation properly when +restarting an engine due to -xreuse mode. The timeout and done=0/1 +features don't work on the restart; instead we basically assume that +all the features will be the same as last time and that the engine +will be ready to accept commands immediately. This probably doesn't +cause a lot of problems, but if you try to replace the engine with one +that sets different features, the changes might not be noticed before +the first move, and the defaults will be the values from the old +engine, not the documented defaults. Also, if the engine takes time +to initialize and wants us to wait to send commands until it says +done=1, we fail to wait. However, we do send commands in the right +order and use ping, so most engines should work fine. + +505. On Windows we use rand() for random numbers, which ranges only up +to 0x7fff. That means that on Windows, only zippy.lines sayings that +start in the first 32767 bytes of the file can ever be used. It looks +like the only fix is to have our own 32-bit implementation of +random(). Sigh. + +506. One user wants a board size even smaller than Tiny. + +507. Suggested: have the cursor change to a gripping hand while moving +pieces. Currently in WinBoard it's always an arrow, while in xboard +it's always a hand with pointing finger while over the board and an +arrow elsewhere. + +508. It would be nice to make -xclock work with -ics, just for +orthogonality, though it's not terribly useful. + +509. It would be nice to make -clock work with -st. Perhaps each +player's clock should start with the specified time on each move and +count down until he moves. + +**510. A FICS service rep tells me that many users expect an autologin +feature in winboard (other than the non-user-friendly login.ini file). +Seems easy enough to add such a thing. + +511. It's been reported that WinBoard has a problem with command line +parsing when built with Cygwin: If a Cygwin-compiled WinBoard is in +C:\Program Files\WinBoard\WinBoard.exe, it prints an error message on +startup about Files\WinBoard\WinBoard.exe being an invalid parameter. +This sounds like a Cygwin bug (passing an incorrect parameter to +WinMain), though maybe there is some workaround. + +Before each release: +- make sure changes made in winboard are propagated to xboard +- make sure changes made in xboard are propagated to winboard +- run zippy with new version as a shakedown +- be sure gnu5 binary is up to date in winboard, and gnu5 patch (if needed) + is included in both xboard and winboard kits +- recheck cygwin compiling winboard +- make sure ChangeLog is complete +- test changes + +*** up to date with mail received through 1 Feb 2001, except +for "protover 3" discussion *** diff --git a/acconfig.h b/acconfig.h new file mode 100644 index 0000000..ceb3f58 --- /dev/null +++ b/acconfig.h @@ -0,0 +1,54 @@ +/* This file is just here to make autoheader happy, so it will generate + config.h for me. */ + +#define FIRST_PTY_LETTER 'p' + +#define HAVE_FCNTL_H 0 + +#define HAVE_GETHOSTNAME 0 + +#define HAVE_GETTIMEOFDAY 0 + +#define HAVE_RANDOM 0 + +#define HAVE_SYS_SOCKET_H 0 + +#undef IBMRTAIX + +#define LAST_PTY_LETTER 'q' + +#define PATCHLEVEL "0" + +#define PRODUCT "xboard" + +#undef PTY_ITERATION + +#undef PTY_NAME_SPRINTF + +#undef PTY_OPEN + +#undef PTY_TTY_NAME_SPRINTF + +#define REMOTE_SHELL "rsh" + +#undef RTU + +#undef UNIPLUS + +#define USE_PTYS 0 + +#define VERSION "x.y" + +#undef X_WCHAR + +#undef ZIPPY + +#undef ATTENTION + +#undef DEFINED_SYS_ERRLIST + +#undef HAVE_LIBXPM + +#define HAVE_USLEEP 0 + +#undef USE_XAW3D diff --git a/backend.c b/backend.c new file mode 100644 index 0000000..caff1c1 --- /dev/null +++ b/backend.c @@ -0,0 +1,9891 @@ +/* + * backend.c -- Common back end for X and Windows NT versions of + * XBoard $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-2001 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_SYS_FCNTL_H +# include +#else /* not HAVE_SYS_FCNTL_H */ +# if HAVE_FCNTL_H +# include +# endif /* HAVE_FCNTL_H */ +#endif /* not HAVE_SYS_FCNTL_H */ + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#if defined(_amigados) && !defined(__GNUC__) +struct timezone { + int tz_minuteswest; + int tz_dsttime; +}; +extern int gettimeofday(struct timeval *, struct timezone *); +#endif + +#if HAVE_UNISTD_H +# include +#endif + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "parser.h" +#include "moves.h" +#if ZIPPY +# include "zippy.h" +#endif +#include "backendz.h" + +/* A point in time */ +typedef struct { + long sec; /* Assuming this is >= 32 bits */ + int ms; /* Assuming this is >= 16 bits */ +} TimeMark; + +/* Search stats from chessprogram */ +typedef struct { + char movelist[MSG_SIZ]; /* Last PV we were sent */ + int depth; /* Current search depth */ + int nr_moves; /* Total nr of root moves */ + int moves_left; /* Moves remaining to be searched */ + char move_name[MOVE_LEN]; /* Current move being searched, if provided */ + unsigned long nodes; /* # of nodes searched */ + int time; /* Search time (centiseconds) */ + int score; /* Score (centipawns) */ + int got_only_move; /* If last msg was "(only move)" */ + int got_fail; /* 0 - nothing, 1 - got "--", 2 - got "++" */ + int ok_to_send; /* handshaking between send & recv */ + int line_is_book; /* 1 if movelist is book moves */ + int seen_stat; /* 1 if we've seen the stat01: line */ +} ChessProgramStats; + +int establish P((void)); +void read_from_player P((InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error)); +void read_from_ics P((InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error)); +void SendToICS P((char *s)); +void SendToICSDelayed P((char *s, long msdelay)); +void SendMoveToICS P((ChessMove moveType, int fromX, int fromY, + int toX, int toY)); +void InitPosition P((int redraw)); +void HandleMachineMove P((char *message, ChessProgramState *cps)); +int AutoPlayOneMove P((void)); +int LoadGameOneMove P((ChessMove readAhead)); +int LoadGameFromFile P((char *filename, int n, char *title, int useList)); +int LoadPositionFromFile P((char *filename, int n, char *title)); +int SavePositionToFile P((char *filename)); +void ApplyMove P((int fromX, int fromY, int toX, int toY, int promoChar, + Board board)); +void MakeMove P((int fromX, int fromY, int toX, int toY, int promoChar)); +void ShowMove P((int fromX, int fromY, int toX, int toY)); +void FinishMove P((ChessMove moveType, int fromX, int fromY, int toX, int toY, + /*char*/int promoChar)); +void BackwardInner P((int target)); +void ForwardInner P((int target)); +void GameEnds P((ChessMove result, char *resultDetails, int whosays)); +void EditPositionDone P((void)); +void PrintOpponents P((FILE *fp)); +void PrintPosition P((FILE *fp, int move)); +void StartChessProgram P((ChessProgramState *cps)); +void SendToProgram P((char *message, ChessProgramState *cps)); +void SendMoveToProgram P((int moveNum, ChessProgramState *cps)); +void ReceiveFromProgram P((InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error)); +void SendTimeControl P((ChessProgramState *cps, + int mps, long tc, int inc, int sd, int st)); +char *TimeControlTagValue P((void)); +void Attention P((ChessProgramState *cps)); +void FeedMovesToProgram P((ChessProgramState *cps, int upto)); +void ResurrectChessProgram P((void)); +void DisplayComment P((int moveNumber, char *text)); +void DisplayMove P((int moveNumber)); +void DisplayAnalysis P((void)); + +void ParseGameHistory P((char *game)); +void ParseBoard12 P((char *string)); +void StartClocks P((void)); +void SwitchClocks P((void)); +void StopClocks P((void)); +void ResetClocks P((void)); +char *PGNDate P((void)); +void SetGameInfo P((void)); +Boolean ParseFEN P((Board board, int *blackPlaysFirst, char *fen)); +int RegisterMove P((void)); +void MakeRegisteredMove P((void)); +void TruncateGame P((void)); +int looking_at P((char *, int *, char *)); +void CopyPlayerNameIntoFileName P((char **, char *)); +char *SavePart P((char *)); +int SaveGameOldStyle P((FILE *)); +int SaveGamePGN P((FILE *)); +void GetTimeMark P((TimeMark *)); +long SubtractTimeMarks P((TimeMark *, TimeMark *)); +int CheckFlags P((void)); +long NextTickLength P((long)); +void CheckTimeControl P((void)); +void show_bytes P((FILE *, char *, int)); +int string_to_rating P((char *str)); +void ParseFeatures P((char* args, ChessProgramState *cps)); +void InitBackEnd3 P((void)); +void FeatureDone P((ChessProgramState* cps, int val)); +void InitChessProgram P((ChessProgramState *cps)); + +extern int tinyLayout, smallLayout; +static ChessProgramStats programStats; + +/* States for ics_getting_history */ +#define H_FALSE 0 +#define H_REQUESTED 1 +#define H_GOT_REQ_HEADER 2 +#define H_GOT_UNREQ_HEADER 3 +#define H_GETTING_MOVES 4 +#define H_GOT_UNWANTED_HEADER 5 + +/* whosays values for GameEnds */ +#define GE_ICS 0 +#define GE_ENGINE 1 +#define GE_PLAYER 2 +#define GE_FILE 3 +#define GE_XBOARD 4 + +/* Maximum number of games in a cmail message */ +#define CMAIL_MAX_GAMES 20 + +/* Different types of move when calling RegisterMove */ +#define CMAIL_MOVE 0 +#define CMAIL_RESIGN 1 +#define CMAIL_DRAW 2 +#define CMAIL_ACCEPT 3 + +/* Different types of result to remember for each game */ +#define CMAIL_NOT_RESULT 0 +#define CMAIL_OLD_RESULT 1 +#define CMAIL_NEW_RESULT 2 + +/* Telnet protocol constants */ +#define TN_WILL 0373 +#define TN_WONT 0374 +#define TN_DO 0375 +#define TN_DONT 0376 +#define TN_IAC 0377 +#define TN_ECHO 0001 +#define TN_SGA 0003 +#define TN_PORT 23 + +/* Fake up flags for now, as we aren't keeping track of castling + availability yet */ +int +PosFlags(index) +{ + int flags = F_ALL_CASTLE_OK; + if ((index % 2) == 0) flags |= F_WHITE_ON_MOVE; + switch (gameInfo.variant) { + case VariantSuicide: + case VariantGiveaway: + flags |= F_IGNORE_CHECK; + flags &= ~F_ALL_CASTLE_OK; + break; + case VariantAtomic: + flags |= F_IGNORE_CHECK | F_ATOMIC_CAPTURE; + break; + case VariantKriegspiel: + flags |= F_KRIEGSPIEL_CAPTURE; + break; + case VariantNoCastle: + flags &= ~F_ALL_CASTLE_OK; + break; + default: + break; + } + return flags; +} + +FILE *gameFileFP, *debugFP; + +char cmailMove[CMAIL_MAX_GAMES][MOVE_LEN], cmailMsg[MSG_SIZ]; +char bookOutput[MSG_SIZ*10], thinkOutput[MSG_SIZ*10], lastHint[MSG_SIZ]; +char thinkOutput1[MSG_SIZ*10]; + +ChessProgramState first, second; + +/* premove variables */ +int premoveToX = 0; +int premoveToY = 0; +int premoveFromX = 0; +int premoveFromY = 0; +int premovePromoChar = 0; +int gotPremove = 0; +Boolean alarmSounded; +/* end premove variables */ + +#define ICS_GENERIC 0 +#define ICS_ICC 1 +#define ICS_FICS 2 +#define ICS_CHESSNET 3 /* not really supported */ +int ics_type = ICS_GENERIC; +char *ics_prefix = "$"; + +int currentMove = 0, forwardMostMove = 0, backwardMostMove = 0; +int pauseExamForwardMostMove = 0; +int nCmailGames = 0, nCmailResults = 0, nCmailMovesRegistered = 0; +int cmailMoveRegistered[CMAIL_MAX_GAMES], cmailResult[CMAIL_MAX_GAMES]; +int cmailMsgLoaded = FALSE, cmailMailedMove = FALSE; +int cmailOldMove = -1, firstMove = TRUE, flipView = FALSE; +int blackPlaysFirst = FALSE, startedFromSetupPosition = FALSE; +int searchTime = 0, pausing = FALSE, pauseExamInvalid = FALSE; +int whiteFlag = FALSE, blackFlag = FALSE; +int userOfferedDraw = FALSE; +int ics_user_moved = 0, ics_gamenum = -1, ics_getting_history = H_FALSE; +int matchMode = FALSE, hintRequested = FALSE, bookRequested = FALSE; +int cmailMoveType[CMAIL_MAX_GAMES]; +long ics_clock_paused = 0; +ProcRef icsPR = NoProc, cmailPR = NoProc; +InputSourceRef telnetISR = NULL, fromUserISR = NULL, cmailISR = NULL; +GameMode gameMode = BeginningOfGame; +char moveList[MAX_MOVES][MOVE_LEN], parseList[MAX_MOVES][MOVE_LEN * 2]; +char *commentList[MAX_MOVES], *cmailCommentList[CMAIL_MAX_GAMES]; +char white_holding[64], black_holding[64]; +TimeMark lastNodeCountTime; +long lastNodeCount=0; +int have_sent_ICS_logon = 0; +int movesPerSession; +long whiteTimeRemaining, blackTimeRemaining, timeControl, timeIncrement; +long timeRemaining[2][MAX_MOVES]; +int matchGame = 0; +TimeMark programStartTime; +char ics_handle[MSG_SIZ]; +int have_set_title = 0; + +/* animateTraining preserves the state of appData.animate + * when Training mode is activated. This allows the + * response to be animated when appData.animate == TRUE and + * appData.animateDragging == TRUE. + */ +Boolean animateTraining; + +GameInfo gameInfo; + +AppData appData; + +Board boards[MAX_MOVES]; +Board initialPosition = { + { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen, + WhiteKing, WhiteBishop, WhiteKnight, WhiteRook }, + { WhitePawn, WhitePawn, WhitePawn, WhitePawn, + WhitePawn, WhitePawn, WhitePawn, WhitePawn }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { BlackPawn, BlackPawn, BlackPawn, BlackPawn, + BlackPawn, BlackPawn, BlackPawn, BlackPawn }, + { BlackRook, BlackKnight, BlackBishop, BlackQueen, + BlackKing, BlackBishop, BlackKnight, BlackRook } +}; +Board twoKingsPosition = { + { WhiteRook, WhiteKnight, WhiteBishop, WhiteQueen, + WhiteKing, WhiteKing, WhiteKnight, WhiteRook }, + { WhitePawn, WhitePawn, WhitePawn, WhitePawn, + WhitePawn, WhitePawn, WhitePawn, WhitePawn }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { EmptySquare, EmptySquare, EmptySquare, EmptySquare, + EmptySquare, EmptySquare, EmptySquare, EmptySquare }, + { BlackPawn, BlackPawn, BlackPawn, BlackPawn, + BlackPawn, BlackPawn, BlackPawn, BlackPawn }, + { BlackRook, BlackKnight, BlackBishop, BlackQueen, + BlackKing, BlackKing, BlackKnight, BlackRook } +}; + + +/* Convert str to a rating. Checks for special cases of "----", + "++++", etc. Also strips ()'s */ +int +string_to_rating(str) + char *str; +{ + while(*str && !isdigit(*str)) ++str; + if (!*str) + return 0; /* One of the special "no rating" cases */ + else + return atoi(str); +} + +void +ClearProgramStats() +{ + /* Init programStats */ + programStats.movelist[0] = 0; + programStats.depth = 0; + programStats.nr_moves = 0; + programStats.moves_left = 0; + programStats.nodes = 0; + programStats.time = 100; + programStats.score = 0; + programStats.got_only_move = 0; + programStats.got_fail = 0; + programStats.line_is_book = 0; +} + +void +InitBackEnd1() +{ + int matched, min, sec; + + GetTimeMark(&programStartTime); + + ClearProgramStats(); + programStats.ok_to_send = 1; + programStats.seen_stat = 0; + + /* + * Initialize game list + */ + ListNew(&gameList); + + + /* + * Internet chess server status + */ + if (appData.icsActive) { + appData.matchMode = FALSE; + appData.matchGames = 0; +#if ZIPPY + appData.noChessProgram = !appData.zippyPlay; +#else + appData.zippyPlay = FALSE; + appData.zippyTalk = FALSE; + appData.noChessProgram = TRUE; +#endif + if (*appData.icsHelper != NULLCHAR) { + appData.useTelnet = TRUE; + appData.telnetProgram = appData.icsHelper; + } + } else { + appData.zippyTalk = appData.zippyPlay = FALSE; + } + + /* + * Parse timeControl resource + */ + if (!ParseTimeControl(appData.timeControl, appData.timeIncrement, + appData.movesPerSession)) { + char buf[MSG_SIZ]; + sprintf(buf, "bad timeControl option %s", appData.timeControl); + DisplayFatalError(buf, 0, 2); + } + + /* + * Parse searchTime resource + */ + if (*appData.searchTime != NULLCHAR) { + matched = sscanf(appData.searchTime, "%d:%d", &min, &sec); + if (matched == 1) { + searchTime = min * 60; + } else if (matched == 2) { + searchTime = min * 60 + sec; + } else { + char buf[MSG_SIZ]; + sprintf(buf, "bad searchTime option %s", appData.searchTime); + DisplayFatalError(buf, 0, 2); + } + } + + first.which = "first"; + second.which = "second"; + first.maybeThinking = second.maybeThinking = FALSE; + first.pr = second.pr = NoProc; + first.isr = second.isr = NULL; + first.sendTime = second.sendTime = 2; + first.sendDrawOffers = 1; + if (appData.firstPlaysBlack) { + first.twoMachinesColor = "black\n"; + second.twoMachinesColor = "white\n"; + } else { + first.twoMachinesColor = "white\n"; + second.twoMachinesColor = "black\n"; + } + first.program = appData.firstChessProgram; + second.program = appData.secondChessProgram; + first.host = appData.firstHost; + second.host = appData.secondHost; + first.dir = appData.firstDirectory; + second.dir = appData.secondDirectory; + first.other = &second; + second.other = &first; + first.initString = appData.initString; + second.initString = appData.secondInitString; + first.computerString = appData.firstComputerString; + second.computerString = appData.secondComputerString; + first.useSigint = second.useSigint = TRUE; + first.useSigterm = second.useSigterm = TRUE; + first.reuse = appData.reuseFirst; + second.reuse = appData.reuseSecond; + first.useSetboard = second.useSetboard = FALSE; + first.useSAN = second.useSAN = FALSE; + first.usePing = second.usePing = FALSE; + first.lastPing = second.lastPing = 0; + first.lastPong = second.lastPong = 0; + first.usePlayother = second.usePlayother = FALSE; + first.useColors = second.useColors = TRUE; + first.useUsermove = second.useUsermove = FALSE; + first.sendICS = second.sendICS = FALSE; + first.sendName = second.sendName = appData.icsActive; + first.sdKludge = second.sdKludge = FALSE; + first.stKludge = second.stKludge = FALSE; + TidyProgramName(first.program, first.host, first.tidy); + TidyProgramName(second.program, second.host, second.tidy); + first.matchWins = second.matchWins = 0; + strcpy(first.variants, appData.variant); + strcpy(second.variants, appData.variant); + first.analysisSupport = second.analysisSupport = 2; /* detect */ + first.analyzing = second.analyzing = FALSE; + first.initDone = second.initDone = FALSE; + + if (appData.firstProtocolVersion > PROTOVER || + appData.firstProtocolVersion < 1) { + char buf[MSG_SIZ]; + sprintf(buf, "protocol version %d not supported", + appData.firstProtocolVersion); + DisplayFatalError(buf, 0, 2); + } else { + first.protocolVersion = appData.firstProtocolVersion; + } + + if (appData.secondProtocolVersion > PROTOVER || + appData.secondProtocolVersion < 1) { + char buf[MSG_SIZ]; + sprintf(buf, "protocol version %d not supported", + appData.secondProtocolVersion); + DisplayFatalError(buf, 0, 2); + } else { + second.protocolVersion = appData.secondProtocolVersion; + } + + if (appData.icsActive) { + appData.clockMode = TRUE; /* changes dynamically in ICS mode */ + } else if (*appData.searchTime != NULLCHAR || appData.noChessProgram) { + appData.clockMode = FALSE; + first.sendTime = second.sendTime = 0; + } + +#if ZIPPY + /* Override some settings from environment variables, for backward + compatibility. Unfortunately it's not feasible to have the env + vars just set defaults, at least in xboard. Ugh. + */ + if (appData.icsActive && (appData.zippyPlay || appData.zippyTalk)) { + ZippyInit(); + } +#endif + + if (appData.noChessProgram) { + programVersion = (char*) malloc(5 + strlen(PRODUCT) + strlen(VERSION) + + strlen(PATCHLEVEL)); + sprintf(programVersion, "%s %s.%s", PRODUCT, VERSION, PATCHLEVEL); + } else { + char *p, *q; + q = first.program; + while (*q != ' ' && *q != NULLCHAR) q++; + p = q; + while (p > first.program && *(p-1) != '/') p--; + programVersion = (char*) malloc(8 + strlen(PRODUCT) + strlen(VERSION) + + strlen(PATCHLEVEL) + (q - p)); + sprintf(programVersion, "%s %s.%s + ", PRODUCT, VERSION, PATCHLEVEL); + strncat(programVersion, p, q - p); + } + + if (!appData.icsActive) { + char buf[MSG_SIZ]; + /* Check for variants that are supported only in ICS mode, + or not at all. Some that are accepted here nevertheless + have bugs; see comments below. + */ + VariantClass variant = StringToVariant(appData.variant); + switch (variant) { + case VariantBughouse: /* need four players and two boards */ + case VariantKriegspiel: /* need to hide pieces and move details */ + case VariantFischeRandom: /* castling doesn't work, shuffle not done */ + sprintf(buf, "Variant %s supported only in ICS mode", appData.variant); + DisplayFatalError(buf, 0, 2); + return; + + case VariantUnknown: + case VariantLoadable: + case Variant29: + case Variant30: + case Variant31: + case Variant32: + case Variant33: + case Variant34: + case Variant35: + case Variant36: + default: + sprintf(buf, "Unknown variant name %s", appData.variant); + DisplayFatalError(buf, 0, 2); + return; + + case VariantNormal: /* definitely works! */ + case VariantWildCastle: /* pieces not automatically shuffled */ + case VariantNoCastle: /* pieces not automatically shuffled */ + case VariantCrazyhouse: /* holdings not shown, + offboard interposition not understood */ + case VariantLosers: /* should work except for win condition, + and doesn't know captures are mandatory */ + case VariantSuicide: /* should work except for win condition, + and doesn't know captures are mandatory */ + case VariantGiveaway: /* should work except for win condition, + and doesn't know captures are mandatory */ + case VariantTwoKings: /* should work */ + case VariantAtomic: /* should work except for win condition */ + case Variant3Check: /* should work except for win condition */ + case VariantShatranj: /* might work if TestLegality is off */ + break; + } + } +} + +int +ParseTimeControl(tc, ti, mps) + char *tc; + int ti; + int mps; +{ + int matched, min, sec; + + matched = sscanf(tc, "%d:%d", &min, &sec); + if (matched == 1) { + timeControl = min * 60 * 1000; + } else if (matched == 2) { + timeControl = (min * 60 + sec) * 1000; + } else { + return FALSE; + } + + if (ti >= 0) { + timeIncrement = ti * 1000; /* convert to ms */ + movesPerSession = 0; + } else { + timeIncrement = 0; + movesPerSession = mps; + } + return TRUE; +} + +void +InitBackEnd2() +{ + if (appData.debugMode) { + fprintf(debugFP, "%s\n", programVersion); + } + + if (appData.matchGames > 0) { + appData.matchMode = TRUE; + } else if (appData.matchMode) { + appData.matchGames = 1; + } + Reset(TRUE, FALSE); + if (appData.noChessProgram || first.protocolVersion == 1) { + InitBackEnd3(); + } else { + /* kludge: allow timeout for initial "feature" commands */ + FreezeUI(); + DisplayMessage("", "Starting chess program"); + ScheduleDelayedEvent(InitBackEnd3, FEATURE_TIMEOUT); + } +} + +void +InitBackEnd3 P((void)) +{ + GameMode initialMode; + char buf[MSG_SIZ]; + int err; + + InitChessProgram(&first); + + if (appData.icsActive) { + err = establish(); + if (err != 0) { + if (*appData.icsCommPort != NULLCHAR) { + sprintf(buf, "Could not open comm port %s", + appData.icsCommPort); + } else { + sprintf(buf, "Could not connect to host %s, port %s", + appData.icsHost, appData.icsPort); + } + DisplayFatalError(buf, err, 1); + return; + } + SetICSMode(); + telnetISR = + AddInputSource(icsPR, FALSE, read_from_ics, &telnetISR); + fromUserISR = + AddInputSource(NoProc, FALSE, read_from_player, &fromUserISR); + } else if (appData.noChessProgram) { + SetNCPMode(); + } else { + SetGNUMode(); + } + + if (*appData.cmailGameName != NULLCHAR) { + SetCmailMode(); + OpenLoopback(&cmailPR); + cmailISR = + AddInputSource(cmailPR, FALSE, CmailSigHandlerCallBack, &cmailISR); + } + + ThawUI(); + DisplayMessage("", ""); + if (StrCaseCmp(appData.initialMode, "") == 0) { + initialMode = BeginningOfGame; + } else if (StrCaseCmp(appData.initialMode, "TwoMachines") == 0) { + initialMode = TwoMachinesPlay; + } else if (StrCaseCmp(appData.initialMode, "AnalyzeFile") == 0) { + initialMode = AnalyzeFile; + } else if (StrCaseCmp(appData.initialMode, "Analysis") == 0) { + initialMode = AnalyzeMode; + } else if (StrCaseCmp(appData.initialMode, "MachineWhite") == 0) { + initialMode = MachinePlaysWhite; + } else if (StrCaseCmp(appData.initialMode, "MachineBlack") == 0) { + initialMode = MachinePlaysBlack; + } else if (StrCaseCmp(appData.initialMode, "EditGame") == 0) { + initialMode = EditGame; + } else if (StrCaseCmp(appData.initialMode, "EditPosition") == 0) { + initialMode = EditPosition; + } else if (StrCaseCmp(appData.initialMode, "Training") == 0) { + initialMode = Training; + } else { + sprintf(buf, "Unknown initialMode %s", appData.initialMode); + DisplayFatalError(buf, 0, 2); + return; + } + + if (appData.matchMode) { + /* Set up machine vs. machine match */ + if (appData.noChessProgram) { + DisplayFatalError("Can't have a match with no chess programs", + 0, 2); + return; + } + matchMode = TRUE; + matchGame = 1; + if (*appData.loadGameFile != NULLCHAR) { + if (!LoadGameFromFile(appData.loadGameFile, + appData.loadGameIndex, + appData.loadGameFile, FALSE)) { + DisplayFatalError("Bad game file", 0, 1); + return; + } + } else if (*appData.loadPositionFile != NULLCHAR) { + if (!LoadPositionFromFile(appData.loadPositionFile, + appData.loadPositionIndex, + appData.loadPositionFile)) { + DisplayFatalError("Bad position file", 0, 1); + return; + } + } + TwoMachinesEvent(); + } else if (*appData.cmailGameName != NULLCHAR) { + /* Set up cmail mode */ + ReloadCmailMsgEvent(TRUE); + } else { + /* Set up other modes */ + if (initialMode == AnalyzeFile) { + if (*appData.loadGameFile == NULLCHAR) { + DisplayFatalError("AnalyzeFile mode requires a game file", 0, 1); + return; + } + } + if (*appData.loadGameFile != NULLCHAR) { + (void) LoadGameFromFile(appData.loadGameFile, + appData.loadGameIndex, + appData.loadGameFile, TRUE); + } else if (*appData.loadPositionFile != NULLCHAR) { + (void) LoadPositionFromFile(appData.loadPositionFile, + appData.loadPositionIndex, + appData.loadPositionFile); + } + if (initialMode == AnalyzeMode) { + if (appData.noChessProgram) { + DisplayFatalError("Analysis mode requires a chess engine", 0, 2); + return; + } + if (appData.icsActive) { + DisplayFatalError("Analysis mode does not work with ICS mode",0,2); + return; + } + AnalyzeModeEvent(); + } else if (initialMode == AnalyzeFile) { + ShowThinkingEvent(TRUE); + AnalyzeFileEvent(); + AnalysisPeriodicEvent(1); + } else if (initialMode == MachinePlaysWhite) { + if (appData.noChessProgram) { + DisplayFatalError("MachineWhite mode requires a chess engine", + 0, 2); + return; + } + if (appData.icsActive) { + DisplayFatalError("MachineWhite mode does not work with ICS mode", + 0, 2); + return; + } + MachineWhiteEvent(); + } else if (initialMode == MachinePlaysBlack) { + if (appData.noChessProgram) { + DisplayFatalError("MachineBlack mode requires a chess engine", + 0, 2); + return; + } + if (appData.icsActive) { + DisplayFatalError("MachineBlack mode does not work with ICS mode", + 0, 2); + return; + } + MachineBlackEvent(); + } else if (initialMode == TwoMachinesPlay) { + if (appData.noChessProgram) { + DisplayFatalError("TwoMachines mode requires a chess engine", + 0, 2); + return; + } + if (appData.icsActive) { + DisplayFatalError("TwoMachines mode does not work with ICS mode", + 0, 2); + return; + } + TwoMachinesEvent(); + } else if (initialMode == EditGame) { + EditGameEvent(); + } else if (initialMode == EditPosition) { + EditPositionEvent(); + } else if (initialMode == Training) { + if (*appData.loadGameFile == NULLCHAR) { + DisplayFatalError("Training mode requires a game file", 0, 2); + return; + } + TrainingEvent(); + } + } +} + +/* + * Establish will establish a contact to a remote host.port. + * Sets icsPR to a ProcRef for a process (or pseudo-process) + * used to talk to the host. + * Returns 0 if okay, error code if not. + */ +int +establish() +{ + char buf[MSG_SIZ]; + + if (*appData.icsCommPort != NULLCHAR) { + /* Talk to the host through a serial comm port */ + return OpenCommPort(appData.icsCommPort, &icsPR); + + } else if (*appData.gateway != NULLCHAR) { + if (*appData.remoteShell == NULLCHAR) { + /* Use the rcmd protocol to run telnet program on a gateway host */ + sprintf(buf, "%s %s %s", + appData.telnetProgram, appData.icsHost, appData.icsPort); + return OpenRcmd(appData.gateway, appData.remoteUser, buf, &icsPR); + + } else { + /* Use the rsh program to run telnet program on a gateway host */ + if (*appData.remoteUser == NULLCHAR) { + sprintf(buf, "%s %s %s %s %s", appData.remoteShell, + appData.gateway, appData.telnetProgram, + appData.icsHost, appData.icsPort); + } else { + sprintf(buf, "%s %s -l %s %s %s %s", + appData.remoteShell, appData.gateway, + appData.remoteUser, appData.telnetProgram, + appData.icsHost, appData.icsPort); + } + return StartChildProcess(buf, "", &icsPR); + + } + } else if (appData.useTelnet) { + return OpenTelnet(appData.icsHost, appData.icsPort, &icsPR); + + } else { + /* TCP socket interface differs somewhat between + Unix and NT; handle details in the front end. + */ + return OpenTCP(appData.icsHost, appData.icsPort, &icsPR); + } +} + +void +show_bytes(fp, buf, count) + FILE *fp; + char *buf; + int count; +{ + while (count--) { + if (*buf < 040 || *(unsigned char *) buf > 0177) { + fprintf(fp, "\\%03o", *buf & 0xff); + } else { + putc(*buf, fp); + } + buf++; + } + fflush(fp); +} + +/* Returns an errno value */ +int +OutputMaybeTelnet(pr, message, count, outError) + ProcRef pr; + char *message; + int count; + int *outError; +{ + char buf[8192], *p, *q, *buflim; + int left, newcount, outcount; + + if (*appData.icsCommPort != NULLCHAR || appData.useTelnet || + *appData.gateway != NULLCHAR) { + if (appData.debugMode) { + fprintf(debugFP, ">ICS: "); + show_bytes(debugFP, message, count); + fprintf(debugFP, "\n"); + } + return OutputToProcess(pr, message, count, outError); + } + + buflim = &buf[sizeof(buf)-1]; /* allow 1 byte for expanding last char */ + p = message; + q = buf; + left = count; + newcount = 0; + while (left) { + if (q >= buflim) { + if (appData.debugMode) { + fprintf(debugFP, ">ICS: "); + show_bytes(debugFP, buf, newcount); + fprintf(debugFP, "\n"); + } + outcount = OutputToProcess(pr, buf, newcount, outError); + if (outcount < newcount) return -1; /* to be sure */ + q = buf; + newcount = 0; + } + if (*p == '\n') { + *q++ = '\r'; + newcount++; + } else if (((unsigned char) *p) == TN_IAC) { + *q++ = (char) TN_IAC; + newcount ++; + } + *q++ = *p++; + newcount++; + left--; + } + if (appData.debugMode) { + fprintf(debugFP, ">ICS: "); + show_bytes(debugFP, buf, newcount); + fprintf(debugFP, "\n"); + } + outcount = OutputToProcess(pr, buf, newcount, outError); + if (outcount < newcount) return -1; /* to be sure */ + return count; +} + +void +read_from_player(isr, closure, message, count, error) + InputSourceRef isr; + VOIDSTAR closure; + char *message; + int count; + int error; +{ + int outError, outCount; + static int gotEof = 0; + + /* Pass data read from player on to ICS */ + if (count > 0) { + gotEof = 0; + outCount = OutputMaybeTelnet(icsPR, message, count, &outError); + if (outCount < count) { + DisplayFatalError("Error writing to ICS", outError, 1); + } + } else if (count < 0) { + RemoveInputSource(isr); + DisplayFatalError("Error reading from keyboard", error, 1); + } else if (gotEof++ > 0) { + RemoveInputSource(isr); + DisplayFatalError("Got end of file from keyboard", 0, 0); + } +} + +void +SendToICS(s) + char *s; +{ + int count, outCount, outError; + + if (icsPR == NULL) return; + + count = strlen(s); + outCount = OutputMaybeTelnet(icsPR, s, count, &outError); + if (outCount < count) { + DisplayFatalError("Error writing to ICS", outError, 1); + } +} + +/* This is used for sending logon scripts to the ICS. Sending + without a delay causes problems when using timestamp on ICC + (at least on my machine). */ +void +SendToICSDelayed(s,msdelay) + char *s; + long msdelay; +{ + int count, outCount, outError; + + if (icsPR == NULL) return; + + count = strlen(s); + if (appData.debugMode) { + fprintf(debugFP, ">ICS: "); + show_bytes(debugFP, s, count); + fprintf(debugFP, "\n"); + } + outCount = OutputToProcessDelayed(icsPR, s, count, &outError, + msdelay); + if (outCount < count) { + DisplayFatalError("Error writing to ICS", outError, 1); + } +} + + +/* Remove all highlighting escape sequences in s + Also deletes any suffix starting with '(' + */ +char * +StripHighlightAndTitle(s) + char *s; +{ + static char retbuf[MSG_SIZ]; + char *p = retbuf; + + while (*s != NULLCHAR) { + while (*s == '\033') { + while (*s != NULLCHAR && !isalpha(*s)) s++; + if (*s != NULLCHAR) s++; + } + while (*s != NULLCHAR && *s != '\033') { + if (*s == '(' || *s == '[') { + *p = NULLCHAR; + return retbuf; + } + *p++ = *s++; + } + } + *p = NULLCHAR; + return retbuf; +} + +/* Remove all highlighting escape sequences in s */ +char * +StripHighlight(s) + char *s; +{ + static char retbuf[MSG_SIZ]; + char *p = retbuf; + + while (*s != NULLCHAR) { + while (*s == '\033') { + while (*s != NULLCHAR && !isalpha(*s)) s++; + if (*s != NULLCHAR) s++; + } + while (*s != NULLCHAR && *s != '\033') { + *p++ = *s++; + } + } + *p = NULLCHAR; + return retbuf; +} + +char *variantNames[] = VARIANT_NAMES; +char * +VariantName(v) + VariantClass v; +{ + return variantNames[v]; +} + + +/* Identify a variant from the strings the chess servers use or the + PGN Variant tag names we use. */ +VariantClass +StringToVariant(e) + char *e; +{ + char *p; + int wnum = -1; + VariantClass v = VariantNormal; + int i, found = FALSE; + char buf[MSG_SIZ]; + + if (!e) return v; + + for (i=0; i%s %s ", ddwwStr, optionStr); + } + msg[0] = TN_IAC; + msg[1] = ddww; + msg[2] = option; + outCount = OutputToProcess(icsPR, (char *)msg, 3, &outError); + if (outCount < 3) { + DisplayFatalError("Error writing to ICS", outError, 1); + } +} + +void +DoEcho() +{ + if (!appData.icsActive) return; + TelnetRequest(TN_DO, TN_ECHO); +} + +void +DontEcho() +{ + if (!appData.icsActive) return; + TelnetRequest(TN_DONT, TN_ECHO); +} + +static int loggedOn = FALSE; + +/*-- Game start info cache: --*/ +int gs_gamenum; +char gs_kind[MSG_SIZ]; +static char player1Name[128] = ""; +static char player2Name[128] = ""; +static int player1Rating = -1; +static int player2Rating = -1; +/*----------------------------*/ + +void +read_from_ics(isr, closure, data, count, error) + InputSourceRef isr; + VOIDSTAR closure; + char *data; + int count; + int error; +{ +#define BUF_SIZE 8192 +#define STARTED_NONE 0 +#define STARTED_MOVES 1 +#define STARTED_BOARD 2 +#define STARTED_OBSERVE 3 +#define STARTED_HOLDINGS 4 +#define STARTED_CHATTER 5 +#define STARTED_COMMENT 6 +#define STARTED_MOVES_NOHIDE 7 + + static int started = STARTED_NONE; + static char parse[20000]; + static int parse_pos = 0; + static char buf[BUF_SIZE + 1]; + static int firstTime = TRUE, intfSet = FALSE; + static ColorClass curColor = ColorNormal; + static ColorClass prevColor = ColorNormal; + static int savingComment = FALSE; + char str[500]; + int i, oldi; + int buf_len; + int next_out; + int tkind; + char *p; + + if (count > 0) { + /* If last read ended with a partial line that we couldn't parse, + prepend it to the new read and try again. */ + if (leftover_len > 0) { + for (i=0; i= 3 && (unsigned char) buf[i] == TN_IAC) { + static int remoteEchoOption = FALSE; /* telnet ECHO option */ + unsigned char option; + oldi = i; + switch ((unsigned char) buf[++i]) { + case TN_WILL: + if (appData.debugMode) + fprintf(debugFP, "\n next_out) + SendToPlayer(&buf[next_out], oldi - next_out); + if (++i > next_out) + next_out = i; + continue; + } + + /* OK, this at least will *usually* work */ + if (!loggedOn && looking_at(buf, &i, "ics%")) { + loggedOn = TRUE; + } + + if (loggedOn && !intfSet) { + if (ics_type == ICS_ICC) { + sprintf(str, + "/set-quietly interface %s\n/set-quietly style 12\n", + programVersion); + + } else if (ics_type == ICS_CHESSNET) { + sprintf(str, "/style 12\n"); + } else { + strcpy(str, "alias $ @\n$set interface "); + strcat(str, programVersion); + strcat(str, "\n$iset startpos 1\n$iset ms 1\n"); +#ifdef WIN32 + strcat(str, "$iset nohighlight 1\n"); +#endif + strcat(str, "$iset lock 1\n$style 12\n"); + } + SendToICS(str); + intfSet = TRUE; + } + + if (started == STARTED_COMMENT) { + /* Accumulate characters in comment */ + parse[parse_pos++] = buf[i]; + if (buf[i] == '\n') { + parse[parse_pos] = NULLCHAR; + AppendComment(forwardMostMove, StripHighlight(parse)); + started = STARTED_NONE; + } else { + /* Don't match patterns against characters in chatter */ + i++; + continue; + } + } + if (started == STARTED_CHATTER) { + if (buf[i] != '\n') { + /* Don't match patterns against characters in chatter */ + i++; + continue; + } + started = STARTED_NONE; + } + + /* Kludge to deal with rcmd protocol */ + if (firstTime && looking_at(buf, &i, "\001*")) { + DisplayFatalError(&buf[1], 0, 1); + continue; + } else { + firstTime = FALSE; + } + + if (!loggedOn && looking_at(buf, &i, "chessclub.com")) { + ics_type = ICS_ICC; + ics_prefix = "/"; + if (appData.debugMode) + fprintf(debugFP, "ics_type %d\n", ics_type); + continue; + } + if (!loggedOn && looking_at(buf, &i, "freechess.org")) { + ics_type = ICS_FICS; + ics_prefix = "$"; + if (appData.debugMode) + fprintf(debugFP, "ics_type %d\n", ics_type); + continue; + } + if (!loggedOn && looking_at(buf, &i, "chess.net")) { + ics_type = ICS_CHESSNET; + ics_prefix = "/"; + if (appData.debugMode) + fprintf(debugFP, "ics_type %d\n", ics_type); + continue; + } + + if (!loggedOn && + (looking_at(buf, &i, "\"*\" is *a registered name") || + looking_at(buf, &i, "Logging you in as \"*\"") || + looking_at(buf, &i, "will be \"*\""))) { + strcpy(ics_handle, star_match[0]); + continue; + } + + if (loggedOn && !have_set_title && ics_handle[0] != NULLCHAR) { + char buf[MSG_SIZ]; + sprintf(buf, "%s@%s", ics_handle, appData.icsHost); + DisplayIcsInteractionTitle(buf); + have_set_title = TRUE; + } + + /* skip finger notes */ + if (started == STARTED_NONE && + ((buf[i] == ' ' && isdigit(buf[i+1])) || + (buf[i] == '1' && buf[i+1] == '0')) && + buf[i+2] == ':' && buf[i+3] == ' ') { + started = STARTED_CHATTER; + i += 3; + continue; + } + + /* skip formula vars */ + if (started == STARTED_NONE && + buf[i] == 'f' && isdigit(buf[i+1]) && buf[i+2] == ':') { + started = STARTED_CHATTER; + i += 3; + continue; + } + + oldi = i; + if (appData.zippyTalk || appData.zippyPlay) { +#if ZIPPY + if (ZippyControl(buf, &i) || + ZippyConverse(buf, &i) || + (appData.zippyPlay && ZippyMatch(buf, &i))) { + loggedOn = TRUE; + continue; + } +#endif + } else { + if (/* Don't color "message" or "messages" output */ + (tkind = 5, looking_at(buf, &i, "*. * (*:*): ")) || + looking_at(buf, &i, "*. * at *:*: ") || + looking_at(buf, &i, "--* (*:*): ") || + /* Regular tells and says */ + (tkind = 1, looking_at(buf, &i, "* tells you: ")) || + looking_at(buf, &i, "* (your partner) tells you: ") || + looking_at(buf, &i, "* says: ") || + /* Message notifications (same color as tells) */ + looking_at(buf, &i, "* has left a message ") || + looking_at(buf, &i, "* just sent you a message:\n") || + /* Whispers and kibitzes */ + (tkind = 2, looking_at(buf, &i, "* whispers: ")) || + looking_at(buf, &i, "* kibitzes: ") || + /* Channel tells */ + (tkind = 3, looking_at(buf, &i, "*(*: "))) { + + if (tkind == 1 && strchr(star_match[0], ':')) { + /* Avoid "tells you:" spoofs in channels */ + tkind = 3; + } + if (star_match[0][0] == NULLCHAR || + strchr(star_match[0], ' ') || + (tkind == 3 && strchr(star_match[1], ' '))) { + /* Reject bogus matches */ + i = oldi; + } else { + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + switch (tkind) { + case 1: + Colorize(ColorTell, FALSE); + curColor = ColorTell; + break; + case 2: + Colorize(ColorKibitz, FALSE); + curColor = ColorKibitz; + break; + case 3: + p = strrchr(star_match[1], '('); + if (p == NULL) { + p = star_match[1]; + } else { + p++; + } + if (atoi(p) == 1) { + Colorize(ColorChannel1, FALSE); + curColor = ColorChannel1; + } else { + Colorize(ColorChannel, FALSE); + curColor = ColorChannel; + } + break; + case 5: + curColor = ColorNormal; + break; + } + } + if (started == STARTED_NONE && appData.autoComment && + (gameMode == IcsObserving || + gameMode == IcsPlayingWhite || + gameMode == IcsPlayingBlack)) { + parse_pos = i - oldi; + memcpy(parse, &buf[oldi], parse_pos); + parse[parse_pos] = NULLCHAR; + started = STARTED_COMMENT; + savingComment = TRUE; + } else { + started = STARTED_CHATTER; + savingComment = FALSE; + } + loggedOn = TRUE; + continue; + } + } + + if (looking_at(buf, &i, "* s-shouts: ") || + looking_at(buf, &i, "* c-shouts: ")) { + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorSShout, FALSE); + curColor = ColorSShout; + } + loggedOn = TRUE; + started = STARTED_CHATTER; + continue; + } + + if (looking_at(buf, &i, "--->")) { + loggedOn = TRUE; + continue; + } + + if (looking_at(buf, &i, "* shouts: ") || + looking_at(buf, &i, "--> ")) { + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorShout, FALSE); + curColor = ColorShout; + } + loggedOn = TRUE; + started = STARTED_CHATTER; + continue; + } + + if (looking_at( buf, &i, "Challenge:")) { + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorChallenge, FALSE); + curColor = ColorChallenge; + } + loggedOn = TRUE; + continue; + } + + if (looking_at(buf, &i, "* offers you") || + looking_at(buf, &i, "* offers to be") || + looking_at(buf, &i, "* would like to") || + looking_at(buf, &i, "* requests to") || + looking_at(buf, &i, "Your opponent offers") || + looking_at(buf, &i, "Your opponent requests")) { + + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorRequest, FALSE); + curColor = ColorRequest; + } + continue; + } + + if (looking_at(buf, &i, "* (*) seeking")) { + if (appData.colorize) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorSeek, FALSE); + curColor = ColorSeek; + } + continue; + } + } + + if (looking_at(buf, &i, "\\ ")) { + if (prevColor != ColorNormal) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(prevColor, TRUE); + curColor = prevColor; + } + if (savingComment) { + parse_pos = i - oldi; + memcpy(parse, &buf[oldi], parse_pos); + parse[parse_pos] = NULLCHAR; + started = STARTED_COMMENT; + } else { + started = STARTED_CHATTER; + } + continue; + } + + if (looking_at(buf, &i, "Black Strength :") || + looking_at(buf, &i, "<<< style 10 board >>>") || + looking_at(buf, &i, "<10>") || + looking_at(buf, &i, "#@#")) { + /* Wrong board style */ + loggedOn = TRUE; + SendToICS(ics_prefix); + SendToICS("set style 12\n"); + SendToICS(ics_prefix); + SendToICS("refresh\n"); + continue; + } + + if (!have_sent_ICS_logon && looking_at(buf, &i, "login:")) { + ICSInitScript(); + have_sent_ICS_logon = 1; + continue; + } + + if (ics_getting_history != H_GETTING_MOVES /*smpos kludge*/ && + (looking_at(buf, &i, "\n<12> ") || + looking_at(buf, &i, "<12> "))) { + loggedOn = TRUE; + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + } + next_out = i; + started = STARTED_BOARD; + parse_pos = 0; + continue; + } + + if ((started == STARTED_NONE && looking_at(buf, &i, "\n ")) || + looking_at(buf, &i, " ")) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + } + next_out = i; + started = STARTED_HOLDINGS; + parse_pos = 0; + continue; + } + + if (looking_at(buf, &i, "* *vs. * *--- *")) { + loggedOn = TRUE; + /* Header for a move list -- first line */ + + switch (ics_getting_history) { + case H_FALSE: + switch (gameMode) { + case IcsIdle: + case BeginningOfGame: + /* User typed "moves" or "oldmoves" while we + were idle. Pretend we asked for these + moves and soak them up so user can step + through them and/or save them. + */ + Reset(FALSE, TRUE); + gameMode = IcsObserving; + ModeHighlight(); + ics_gamenum = -1; + ics_getting_history = H_GOT_UNREQ_HEADER; + break; + case EditGame: /*?*/ + case EditPosition: /*?*/ + /* Should above feature work in these modes too? */ + /* For now it doesn't */ + ics_getting_history = H_GOT_UNWANTED_HEADER; + break; + default: + ics_getting_history = H_GOT_UNWANTED_HEADER; + break; + } + break; + case H_REQUESTED: + /* Is this the right one? */ + if (gameInfo.white && gameInfo.black && + strcmp(gameInfo.white, star_match[0]) == 0 && + strcmp(gameInfo.black, star_match[2]) == 0) { + /* All is well */ + ics_getting_history = H_GOT_REQ_HEADER; + } + break; + case H_GOT_REQ_HEADER: + case H_GOT_UNREQ_HEADER: + case H_GOT_UNWANTED_HEADER: + case H_GETTING_MOVES: + /* Should not happen */ + DisplayError("Error gathering move list: two headers", 0); + ics_getting_history = H_FALSE; + break; + } + + /* Save player ratings into gameInfo if needed */ + if ((ics_getting_history == H_GOT_REQ_HEADER || + ics_getting_history == H_GOT_UNREQ_HEADER) && + (gameInfo.whiteRating == -1 || + gameInfo.blackRating == -1)) { + + gameInfo.whiteRating = string_to_rating(star_match[1]); + gameInfo.blackRating = string_to_rating(star_match[3]); + if (appData.debugMode) + fprintf(debugFP, "Ratings from header: W %d, B %d\n", + gameInfo.whiteRating, gameInfo.blackRating); + } + continue; + } + + if (looking_at(buf, &i, + "* * match, initial time: * minute*, increment: * second")) { + /* Header for a move list -- second line */ + /* Initial board will follow if this is a wild game */ + + if (gameInfo.event != NULL) free(gameInfo.event); + sprintf(str, "ICS %s %s match", star_match[0], star_match[1]); + gameInfo.event = StrSave(str); + gameInfo.variant = StringToVariant(gameInfo.event); + continue; + } + + if (looking_at(buf, &i, "Move ")) { + /* Beginning of a move list */ + switch (ics_getting_history) { + case H_FALSE: + /* Normally should not happen */ + /* Maybe user hit reset while we were parsing */ + break; + case H_REQUESTED: + /* Happens if we are ignoring a move list that is not + * the one we just requested. Common if the user + * tries to observe two games without turning off + * getMoveList */ + break; + case H_GETTING_MOVES: + /* Should not happen */ + DisplayError("Error gathering move list: nested", 0); + ics_getting_history = H_FALSE; + break; + case H_GOT_REQ_HEADER: + ics_getting_history = H_GETTING_MOVES; + started = STARTED_MOVES; + parse_pos = 0; + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + } + break; + case H_GOT_UNREQ_HEADER: + ics_getting_history = H_GETTING_MOVES; + started = STARTED_MOVES_NOHIDE; + parse_pos = 0; + break; + case H_GOT_UNWANTED_HEADER: + ics_getting_history = H_FALSE; + break; + } + continue; + } + + if (looking_at(buf, &i, "% ") || + ((started == STARTED_MOVES || started == STARTED_MOVES_NOHIDE) + && looking_at(buf, &i, "}*"))) { + savingComment = FALSE; + switch (started) { + case STARTED_MOVES: + case STARTED_MOVES_NOHIDE: + memcpy(&parse[parse_pos], &buf[oldi], i - oldi); + parse[parse_pos + i - oldi] = NULLCHAR; + ParseGameHistory(parse); +#if ZIPPY + if (appData.zippyPlay && first.initDone) { + FeedMovesToProgram(&first, forwardMostMove); + if (gameMode == IcsPlayingWhite) { + if (WhiteOnMove(forwardMostMove)) { + if (first.sendTime) { + if (first.useColors) { + SendToProgram("black\n", &first); + } + SendTimeRemaining(&first, TRUE); + } + if (first.useColors) { + SendToProgram("white\ngo\n", &first); + } else { + SendToProgram("go\n", &first); + } + first.maybeThinking = TRUE; + } else { + if (first.usePlayother) { + if (first.sendTime) { + SendTimeRemaining(&first, TRUE); + } + SendToProgram("playother\n", &first); + firstMove = FALSE; + } else { + firstMove = TRUE; + } + } + } else if (gameMode == IcsPlayingBlack) { + if (!WhiteOnMove(forwardMostMove)) { + if (first.sendTime) { + if (first.useColors) { + SendToProgram("white\n", &first); + } + SendTimeRemaining(&first, FALSE); + } + if (first.useColors) { + SendToProgram("black\ngo\n", &first); + } else { + SendToProgram("go\n", &first); + } + first.maybeThinking = TRUE; + } else { + if (first.usePlayother) { + if (first.sendTime) { + SendTimeRemaining(&first, FALSE); + } + SendToProgram("playother\n", &first); + firstMove = FALSE; + } else { + firstMove = TRUE; + } + } + } + } +#endif + if (gameMode == IcsObserving && ics_gamenum == -1) { + /* Moves came from oldmoves or moves command + while we weren't doing anything else. + */ + currentMove = forwardMostMove; + ClearHighlights();/*!!could figure this out*/ + flipView = appData.flipView; + DrawPosition(FALSE, boards[currentMove]); + DisplayBothClocks(); + sprintf(str, "%s vs. %s", + gameInfo.white, gameInfo.black); + DisplayTitle(str); + gameMode = IcsIdle; + } else { + /* Moves were history of an active game */ + if (gameInfo.resultDetails != NULL) { + free(gameInfo.resultDetails); + gameInfo.resultDetails = NULL; + } + } + HistorySet(parseList, backwardMostMove, + forwardMostMove, currentMove-1); + DisplayMove(currentMove - 1); + if (started == STARTED_MOVES) next_out = i; + started = STARTED_NONE; + ics_getting_history = H_FALSE; + break; + + case STARTED_OBSERVE: + started = STARTED_NONE; + SendToICS(ics_prefix); + SendToICS("refresh\n"); + break; + + default: + break; + } + continue; + } + + if ((started == STARTED_MOVES || started == STARTED_BOARD || + started == STARTED_HOLDINGS || + started == STARTED_MOVES_NOHIDE) && i >= leftover_len) { + /* Accumulate characters in move list or board */ + parse[parse_pos++] = buf[i]; + } + + /* Start of game messages. Mostly we detect start of game + when the first board image arrives. On some versions + of the ICS, though, we need to do a "refresh" after starting + to observe in order to get the current board right away. */ + if (looking_at(buf, &i, "Adding game * to observation list")) { + started = STARTED_OBSERVE; + continue; + } + + /* Handle auto-observe */ + if (appData.autoObserve && + (gameMode == IcsIdle || gameMode == BeginningOfGame) && + looking_at(buf, &i, "Game notification: * (*) vs. * (*)")) { + char *player; + /* Choose the player that was highlighted, if any. */ + if (star_match[0][0] == '\033' || + star_match[1][0] != '\033') { + player = star_match[0]; + } else { + player = star_match[2]; + } + sprintf(str, "%sobserve %s\n", + ics_prefix, StripHighlightAndTitle(player)); + SendToICS(str); + + /* Save ratings from notify string */ + strcpy(player1Name, star_match[0]); + player1Rating = string_to_rating(star_match[1]); + strcpy(player2Name, star_match[2]); + player2Rating = string_to_rating(star_match[3]); + + if (appData.debugMode) + fprintf(debugFP, + "Ratings from 'Game notification:' %s %d, %s %d\n", + player1Name, player1Rating, + player2Name, player2Rating); + + continue; + } + + /* Deal with automatic examine mode after a game, + and with IcsObserving -> IcsExamining transition */ + if (looking_at(buf, &i, "Entering examine mode for game *") || + looking_at(buf, &i, "has made you an examiner of game *")) { + + int gamenum = atoi(star_match[0]); + if ((gameMode == IcsIdle || gameMode == IcsObserving) && + gamenum == ics_gamenum) { + /* We were already playing or observing this game; + no need to refetch history */ + gameMode = IcsExamining; + if (pausing) { + pauseExamForwardMostMove = forwardMostMove; + } else if (currentMove < forwardMostMove) { + ForwardInner(forwardMostMove); + } + } else { + /* I don't think this case really can happen */ + SendToICS(ics_prefix); + SendToICS("refresh\n"); + } + continue; + } + + /* Error messages */ + if (ics_user_moved) { + if (looking_at(buf, &i, "Illegal move") || + looking_at(buf, &i, "Not a legal move") || + looking_at(buf, &i, "Your king is in check") || + looking_at(buf, &i, "It isn't your turn") || + looking_at(buf, &i, "It is not your move")) { + /* Illegal move */ + ics_user_moved = 0; + if (forwardMostMove > backwardMostMove) { + currentMove = --forwardMostMove; + DisplayMove(currentMove - 1); /* before DMError */ + DisplayMoveError("Illegal move (rejected by ICS)"); + DrawPosition(FALSE, boards[currentMove]); + SwitchClocks(); + DisplayBothClocks(); + } + continue; + } + } + + if (looking_at(buf, &i, "still have time") || + looking_at(buf, &i, "not out of time") || + looking_at(buf, &i, "either player is out of time") || + looking_at(buf, &i, "has timeseal; checking")) { + /* We must have called his flag a little too soon */ + whiteFlag = blackFlag = FALSE; + continue; + } + + if (looking_at(buf, &i, "added * seconds to") || + looking_at(buf, &i, "seconds were added to")) { + /* Update the clocks */ + SendToICS(ics_prefix); + SendToICS("refresh\n"); + continue; + } + + if (!ics_clock_paused && looking_at(buf, &i, "clock paused")) { + ics_clock_paused = TRUE; + StopClocks(); + continue; + } + + if (ics_clock_paused && looking_at(buf, &i, "clock resumed")) { + ics_clock_paused = FALSE; + StartClocks(); + continue; + } + + /* Grab player ratings from the Creating: message. + Note we have to check for the special case when + the ICS inserts things like [white] or [black]. */ + if (looking_at(buf, &i, "Creating: * (*)* * (*)") || + looking_at(buf, &i, "Creating: * (*) [*] * (*)")) { + /* star_matches: + 0 player 1 name (not necessarily white) + 1 player 1 rating + 2 empty, white, or black (IGNORED) + 3 player 2 name (not necessarily black) + 4 player 2 rating + + The names/ratings are sorted out when the game + actually starts (below). + */ + strcpy(player1Name, StripHighlightAndTitle(star_match[0])); + player1Rating = string_to_rating(star_match[1]); + strcpy(player2Name, StripHighlightAndTitle(star_match[3])); + player2Rating = string_to_rating(star_match[4]); + + if (appData.debugMode) + fprintf(debugFP, + "Ratings from 'Creating:' %s %d, %s %d\n", + player1Name, player1Rating, + player2Name, player2Rating); + + continue; + } + + /* Improved generic start/end-of-game messages */ + if (looking_at(buf, &i, "{Game * (* vs. *) *}*")) { + /* star_match[0] is the game number */ + /* [1] is the white player's name */ + /* [2] is the black player's name */ + /* For end-of-game: */ + /* [3] is the reason for the game end */ + /* [4] is a PGN end game-token, preceded by " " */ + /* For start-of-game: */ + /* [3] begins with "Creating" or "Continuing" */ + /* [4] is " *" or empty (don't care). */ + int gamenum = atoi(star_match[0]); + char *why = star_match[3]; + char *endtoken = star_match[4]; + ChessMove endtype = (ChessMove) 0; + + /* Game start messages */ + if (strncmp(why, "Creating ", 9) == 0 || + strncmp(why, "Continuing ", 11) == 0) { + gs_gamenum = gamenum; + strcpy(gs_kind, strchr(why, ' ') + 1); +#if ZIPPY + if (appData.zippyPlay) { + ZippyGameStart(star_match[1], star_match[2]); + } +#endif /*ZIPPY*/ + continue; + } + + /* Game end messages */ + if (gameMode == IcsIdle || gameMode == BeginningOfGame || + ics_gamenum != gamenum) { + continue; + } + while (endtoken[0] == ' ') endtoken++; + switch (endtoken[0]) { + case '*': + default: + endtype = GameUnfinished; + break; + case '0': + endtype = BlackWins; + break; + case '1': + if (endtoken[1] == '/') + endtype = GameIsDrawn; + else + endtype = WhiteWins; + break; + } + GameEnds(endtype, why, GE_ICS); +#if ZIPPY + if (appData.zippyPlay && first.initDone) { + ZippyGameEnd(endtype, why); + if (first.pr == NULL) { + /* Start the next process early so that we'll + be ready for the next challenge */ + StartChessProgram(&first); + } + /* Send "new" early, in case this command takes + a long time to finish, so that we'll be ready + for the next challenge. */ + Reset(TRUE, TRUE); + } +#endif /*ZIPPY*/ + continue; + } + + if (looking_at(buf, &i, "Removing game * from observation") || + looking_at(buf, &i, "no longer observing game *") || + looking_at(buf, &i, "Game * (*) has no examiners")) { + if (gameMode == IcsObserving && + atoi(star_match[0]) == ics_gamenum) + { + StopClocks(); + gameMode = IcsIdle; + ics_gamenum = -1; + ics_user_moved = FALSE; + } + continue; + } + + if (looking_at(buf, &i, "no longer examining game *")) { + if (gameMode == IcsExamining && + atoi(star_match[0]) == ics_gamenum) + { + gameMode = IcsIdle; + ics_gamenum = -1; + ics_user_moved = FALSE; + } + continue; + } + + /* Advance leftover_start past any newlines we find, + so only partial lines can get reparsed */ + if (looking_at(buf, &i, "\n")) { + prevColor = curColor; + if (curColor != ColorNormal) { + if (oldi > next_out) { + SendToPlayer(&buf[next_out], oldi - next_out); + next_out = oldi; + } + Colorize(ColorNormal, FALSE); + curColor = ColorNormal; + } + if (started == STARTED_BOARD) { + started = STARTED_NONE; + parse[parse_pos] = NULLCHAR; + ParseBoard12(parse); + ics_user_moved = 0; + + /* Send premove here */ + if (appData.premove) { + char str[MSG_SIZ]; + if (currentMove == 0 && + gameMode == IcsPlayingWhite && + appData.premoveWhite) { + sprintf(str, "%s%s\n", ics_prefix, + appData.premoveWhiteText); + if (appData.debugMode) + fprintf(debugFP, "Sending premove:\n"); + SendToICS(str); + } else if (currentMove == 1 && + gameMode == IcsPlayingBlack && + appData.premoveBlack) { + sprintf(str, "%s%s\n", ics_prefix, + appData.premoveBlackText); + if (appData.debugMode) + fprintf(debugFP, "Sending premove:\n"); + SendToICS(str); + } else if (gotPremove) { + gotPremove = 0; + ClearPremoveHighlights(); + if (appData.debugMode) + fprintf(debugFP, "Sending premove:\n"); + UserMoveEvent(premoveFromX, premoveFromY, + premoveToX, premoveToY, + premovePromoChar); + } + } + + /* Usually suppress following prompt */ + if (!(forwardMostMove == 0 && gameMode == IcsExamining)) { + if (looking_at(buf, &i, "*% ")) { + savingComment = FALSE; + } + } + next_out = i; + } else if (started == STARTED_HOLDINGS) { + int gamenum; + char new_piece[MSG_SIZ]; + started = STARTED_NONE; + parse[parse_pos] = NULLCHAR; + if (appData.debugMode) + fprintf(debugFP, "Parsing holdings: %s\n", parse); + if (sscanf(parse, " game %d", &gamenum) == 1 && + gamenum == ics_gamenum) { + if (gameInfo.variant == VariantNormal) { + gameInfo.variant = VariantCrazyhouse; /*temp guess*/ + /* Get a move list just to see the header, which + will tell us whether this is really bug or zh */ + if (ics_getting_history == H_FALSE) { + ics_getting_history = H_REQUESTED; + sprintf(str, "%smoves %d\n", ics_prefix, gamenum); + SendToICS(str); + } + } + new_piece[0] = NULLCHAR; + sscanf(parse, "game %d white [%s black [%s <- %s", + &gamenum, white_holding, black_holding, + new_piece); + white_holding[strlen(white_holding)-1] = NULLCHAR; + black_holding[strlen(black_holding)-1] = NULLCHAR; +#if ZIPPY + if (appData.zippyPlay && first.initDone) { + ZippyHoldings(white_holding, black_holding, + new_piece); + } +#endif /*ZIPPY*/ + if (tinyLayout || smallLayout) { + char wh[16], bh[16]; + PackHolding(wh, white_holding); + PackHolding(bh, black_holding); + sprintf(str, "[%s-%s] %s-%s", wh, bh, + gameInfo.white, gameInfo.black); + } else { + sprintf(str, "%s [%s] vs. %s [%s]", + gameInfo.white, white_holding, + gameInfo.black, black_holding); + } + DrawPosition(FALSE, NULL); + DisplayTitle(str); + } + /* Suppress following prompt */ + if (looking_at(buf, &i, "*% ")) { + savingComment = FALSE; + } + next_out = i; + } + continue; + } + + i++; /* skip unparsed character and loop back */ + } + + if (started != STARTED_MOVES && started != STARTED_BOARD && + started != STARTED_HOLDINGS && i > next_out) { + SendToPlayer(&buf[next_out], i - next_out); + next_out = i; + } + + leftover_len = buf_len - leftover_start; + /* if buffer ends with something we couldn't parse, + reparse it after appending the next read */ + + } else if (count == 0) { + RemoveInputSource(isr); + DisplayFatalError("Connection closed by ICS", 0, 0); + } else { + DisplayFatalError("Error reading from ICS", error, 1); + } +} + + +/* Board style 12 looks like this: + + <12> r-b---k- pp----pp ---bP--- ---p---- q------- ------P- P--Q--BP -----R-K W -1 0 0 0 0 0 0 paf MaxII 0 2 12 21 25 234 174 24 Q/d7-a4 (0:06) Qxa4 0 0 + + * The "<12> " is stripped before it gets to this routine. The two + * trailing 0's (flip state and clock ticking) are later addition, and + * some chess servers may not have them, or may have only the first. + * Additional trailing fields may be added in the future. + */ + +#define PATTERN "%72c%c%d%d%d%d%d%d%d%s%s%d%d%d%d%d%d%d%d%s%s%s%d%d" + +#define RELATION_OBSERVING_PLAYED 0 +#define RELATION_OBSERVING_STATIC -2 /* examined, oldmoves, or smoves */ +#define RELATION_PLAYING_MYMOVE 1 +#define RELATION_PLAYING_NOTMYMOVE -1 +#define RELATION_EXAMINING 2 +#define RELATION_ISOLATED_BOARD -3 +#define RELATION_STARTING_POSITION -4 /* FICS only */ + +void +ParseBoard12(string) + char *string; +{ + GameMode newGameMode; + int gamenum, newGame, newMove, relation, basetime, increment, ics_flip = 0; + int j, k, n, moveNum, white_stren, black_stren, white_time, black_time; + int double_push, castle_ws, castle_wl, castle_bs, castle_bl, irrev_count; + char to_play, board_chars[72]; + char move_str[500], str[500], elapsed_time[500]; + char black[32], white[32]; + Board board; + int prevMove = currentMove; + int ticking = 2; + ChessMove moveType; + int fromX, fromY, toX, toY; + char promoChar; + + fromX = fromY = toX = toY = -1; + + newGame = FALSE; + + if (appData.debugMode) + fprintf(debugFP, "Parsing board: %s\n", string); + + move_str[0] = NULLCHAR; + elapsed_time[0] = NULLCHAR; + n = sscanf(string, PATTERN, board_chars, &to_play, &double_push, + &castle_ws, &castle_wl, &castle_bs, &castle_bl, &irrev_count, + &gamenum, white, black, &relation, &basetime, &increment, + &white_stren, &black_stren, &white_time, &black_time, + &moveNum, str, elapsed_time, move_str, &ics_flip, + &ticking); + + if (n < 22) { + sprintf(str, "Failed to parse board string:\n\"%s\"", string); + DisplayError(str, 0); + return; + } + + /* Convert the move number to internal form */ + moveNum = (moveNum - 1) * 2; + if (to_play == 'B') moveNum++; + if (moveNum >= MAX_MOVES) { + DisplayFatalError("Game too long; increase MAX_MOVES and recompile", + 0, 1); + return; + } + + switch (relation) { + case RELATION_OBSERVING_PLAYED: + case RELATION_OBSERVING_STATIC: + if (gamenum == -1) { + /* Old ICC buglet */ + relation = RELATION_OBSERVING_STATIC; + } + newGameMode = IcsObserving; + break; + case RELATION_PLAYING_MYMOVE: + case RELATION_PLAYING_NOTMYMOVE: + newGameMode = + ((relation == RELATION_PLAYING_MYMOVE) == (to_play == 'W')) ? + IcsPlayingWhite : IcsPlayingBlack; + break; + case RELATION_EXAMINING: + newGameMode = IcsExamining; + break; + case RELATION_ISOLATED_BOARD: + default: + /* Just display this board. If user was doing something else, + we will forget about it until the next board comes. */ + newGameMode = IcsIdle; + break; + case RELATION_STARTING_POSITION: + newGameMode = gameMode; + break; + } + + /* Modify behavior for initial board display on move listing + of wild games. + */ + switch (ics_getting_history) { + case H_FALSE: + case H_REQUESTED: + break; + case H_GOT_REQ_HEADER: + case H_GOT_UNREQ_HEADER: + /* This is the initial position of the current game */ + gamenum = ics_gamenum; + moveNum = 0; /* old ICS bug workaround */ + if (to_play == 'B') { + startedFromSetupPosition = TRUE; + blackPlaysFirst = TRUE; + moveNum = 1; + if (forwardMostMove == 0) forwardMostMove = 1; + if (backwardMostMove == 0) backwardMostMove = 1; + if (currentMove == 0) currentMove = 1; + } + newGameMode = gameMode; + relation = RELATION_STARTING_POSITION; /* ICC needs this */ + break; + case H_GOT_UNWANTED_HEADER: + /* This is an initial board that we don't want */ + return; + case H_GETTING_MOVES: + /* Should not happen */ + DisplayError("Error gathering move list: extra board", 0); + ics_getting_history = H_FALSE; + return; + } + + /* Take action if this is the first board of a new game, or of a + different game than is currently being displayed. */ + if (gamenum != ics_gamenum || newGameMode != gameMode || + relation == RELATION_ISOLATED_BOARD) { + + /* Forget the old game and get the history (if any) of the new one */ + if (gameMode != BeginningOfGame) { + Reset(FALSE, TRUE); + } + newGame = TRUE; + if (appData.autoRaiseBoard) BoardToTop(); + prevMove = -3; + if (gamenum == -1) { + newGameMode = IcsIdle; + } else if (moveNum > 0 && newGameMode != IcsIdle && + appData.getMoveList) { + /* Need to get game history */ + ics_getting_history = H_REQUESTED; + sprintf(str, "%smoves %d\n", ics_prefix, gamenum); + SendToICS(str); + } + + /* Initially flip the board to have black on the bottom if playing + black or if the ICS flip flag is set, but let the user change + it with the Flip View button. */ + flipView = appData.autoFlipView ? + (newGameMode == IcsPlayingBlack) || ics_flip : + appData.flipView; + + /* Done with values from previous mode; copy in new ones */ + gameMode = newGameMode; + ModeHighlight(); + ics_gamenum = gamenum; + if (gamenum == gs_gamenum) { + int klen = strlen(gs_kind); + if (gs_kind[klen - 1] == '.') gs_kind[klen - 1] = NULLCHAR; + sprintf(str, "ICS %s", gs_kind); + gameInfo.event = StrSave(str); + } else { + gameInfo.event = StrSave("ICS game"); + } + gameInfo.site = StrSave(appData.icsHost); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave(white); + gameInfo.black = StrSave(black); + timeControl = basetime * 60 * 1000; + timeIncrement = increment * 1000; + movesPerSession = 0; + gameInfo.timeControl = TimeControlTagValue(); + gameInfo.variant = StringToVariant(gameInfo.event); + + /* Do we have the ratings? */ + if (strcmp(player1Name, white) == 0 && + strcmp(player2Name, black) == 0) { + if (appData.debugMode) + fprintf(debugFP, "Remembered ratings: W %d, B %d\n", + player1Rating, player2Rating); + gameInfo.whiteRating = player1Rating; + gameInfo.blackRating = player2Rating; + } else if (strcmp(player2Name, white) == 0 && + strcmp(player1Name, black) == 0) { + if (appData.debugMode) + fprintf(debugFP, "Remembered ratings: W %d, B %d\n", + player2Rating, player1Rating); + gameInfo.whiteRating = player2Rating; + gameInfo.blackRating = player1Rating; + } + player1Name[0] = player2Name[0] = NULLCHAR; + + /* Silence shouts if requested */ + if (appData.quietPlay && + (gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack)) { + SendToICS(ics_prefix); + SendToICS("set shout 0\n"); + } + } + + /* Deal with midgame name changes */ + if (!newGame) { + if (!gameInfo.white || strcmp(gameInfo.white, white) != 0) { + if (gameInfo.white) free(gameInfo.white); + gameInfo.white = StrSave(white); + } + if (!gameInfo.black || strcmp(gameInfo.black, black) != 0) { + if (gameInfo.black) free(gameInfo.black); + gameInfo.black = StrSave(black); + } + } + + /* Throw away game result if anything actually changes in examine mode */ + if (gameMode == IcsExamining && !newGame) { + gameInfo.result = GameUnfinished; + if (gameInfo.resultDetails != NULL) { + free(gameInfo.resultDetails); + gameInfo.resultDetails = NULL; + } + } + + /* In pausing && IcsExamining mode, we ignore boards coming + in if they are in a different variation than we are. */ + if (pauseExamInvalid) return; + if (pausing && gameMode == IcsExamining) { + if (moveNum <= pauseExamForwardMostMove) { + pauseExamInvalid = TRUE; + forwardMostMove = pauseExamForwardMostMove; + return; + } + } + + /* Parse the board */ + for (k = 0; k < 8; k++) + for (j = 0; j < 8; j++) + board[k][j] = CharToPiece(board_chars[(7-k)*9 + j]); + CopyBoard(boards[moveNum], board); + if (moveNum == 0) { + startedFromSetupPosition = + !CompareBoards(board, initialPosition); + } + + if (ics_getting_history == H_GOT_REQ_HEADER || + ics_getting_history == H_GOT_UNREQ_HEADER) { + /* This was an initial position from a move list, not + the current position */ + return; + } + + /* Update currentMove and known move number limits */ + newMove = newGame || moveNum > forwardMostMove; + if (newGame) { + forwardMostMove = backwardMostMove = currentMove = moveNum; + if (gameMode == IcsExamining && moveNum == 0) { + /* Workaround for ICS limitation: we are not told the wild + type when starting to examine a game. But if we ask for + the move list, the move list header will tell us */ + ics_getting_history = H_REQUESTED; + sprintf(str, "%smoves %d\n", ics_prefix, gamenum); + SendToICS(str); + } + } else if (moveNum == forwardMostMove + 1 || moveNum == forwardMostMove + || (moveNum < forwardMostMove && moveNum >= backwardMostMove)) { + forwardMostMove = moveNum; + if (!pausing || currentMove > forwardMostMove) + currentMove = forwardMostMove; + } else { + /* New part of history that is not contiguous with old part */ + if (pausing && gameMode == IcsExamining) { + pauseExamInvalid = TRUE; + forwardMostMove = pauseExamForwardMostMove; + return; + } + forwardMostMove = backwardMostMove = currentMove = moveNum; + if (gameMode == IcsExamining && moveNum > 0 && appData.getMoveList) { + ics_getting_history = H_REQUESTED; + sprintf(str, "%smoves %d\n", ics_prefix, gamenum); + SendToICS(str); + } + } + + /* Update the clocks */ + if (strchr(elapsed_time, '.')) { + /* Time is in ms */ + timeRemaining[0][moveNum] = whiteTimeRemaining = white_time; + timeRemaining[1][moveNum] = blackTimeRemaining = black_time; + } else { + /* Time is in seconds */ + timeRemaining[0][moveNum] = whiteTimeRemaining = white_time * 1000; + timeRemaining[1][moveNum] = blackTimeRemaining = black_time * 1000; + } + + +#if ZIPPY + if (appData.zippyPlay && newGame && + gameMode != IcsObserving && gameMode != IcsIdle && + gameMode != IcsExamining) + ZippyFirstBoard(moveNum, basetime, increment); +#endif + + /* Put the move on the move list, first converting + to canonical algebraic form. */ + if (moveNum > 0) { + if (moveNum <= backwardMostMove) { + /* We don't know what the board looked like before + this move. Punt. */ + strcpy(parseList[moveNum - 1], move_str); + strcat(parseList[moveNum - 1], " "); + strcat(parseList[moveNum - 1], elapsed_time); + moveList[moveNum - 1][0] = NULLCHAR; + } else if (ParseOneMove(move_str, moveNum - 1, &moveType, + &fromX, &fromY, &toX, &toY, &promoChar)) { + (void) CoordsToAlgebraic(boards[moveNum - 1], + PosFlags(moveNum - 1), EP_UNKNOWN, + fromY, fromX, toY, toX, promoChar, + parseList[moveNum-1]); + switch (MateTest(boards[moveNum], PosFlags(moveNum), EP_UNKNOWN)){ + case MT_NONE: + case MT_STALEMATE: + default: + break; + case MT_CHECK: + strcat(parseList[moveNum - 1], "+"); + break; + case MT_CHECKMATE: + strcat(parseList[moveNum - 1], "#"); + break; + } + strcat(parseList[moveNum - 1], " "); + strcat(parseList[moveNum - 1], elapsed_time); + /* currentMoveString is set as a side-effect of ParseOneMove */ + strcpy(moveList[moveNum - 1], currentMoveString); + strcat(moveList[moveNum - 1], "\n"); + } else if (strcmp(move_str, "none") == 0) { + /* Again, we don't know what the board looked like; + this is really the start of the game. */ + parseList[moveNum - 1][0] = NULLCHAR; + moveList[moveNum - 1][0] = NULLCHAR; + backwardMostMove = moveNum; + startedFromSetupPosition = TRUE; + fromX = fromY = toX = toY = -1; + } else { + /* Move from ICS was illegal!? Punt. */ +#if 0 + if (appData.testLegality && appData.debugMode) { + sprintf(str, "Illegal move \"%s\" from ICS", move_str); + DisplayError(str, 0); + } +#endif + strcpy(parseList[moveNum - 1], move_str); + strcat(parseList[moveNum - 1], " "); + strcat(parseList[moveNum - 1], elapsed_time); + moveList[moveNum - 1][0] = NULLCHAR; + fromX = fromY = toX = toY = -1; + } + +#if ZIPPY + /* Send move to chess program (BEFORE animating it). */ + if (appData.zippyPlay && !newGame && newMove && + (!appData.getMoveList || backwardMostMove == 0) && first.initDone) { + + if ((gameMode == IcsPlayingWhite && WhiteOnMove(moveNum)) || + (gameMode == IcsPlayingBlack && !WhiteOnMove(moveNum))) { + if (moveList[moveNum - 1][0] == NULLCHAR) { + sprintf(str, "Couldn't parse move \"%s\" from ICS", + move_str); + DisplayError(str, 0); + } else { + if (first.sendTime) { + SendTimeRemaining(&first, gameMode == IcsPlayingWhite); + } + SendMoveToProgram(moveNum - 1, &first); + if (firstMove) { + firstMove = FALSE; + if (first.useColors) { + SendToProgram(gameMode == IcsPlayingWhite ? + "white\ngo\n" : + "black\ngo\n", &first); + } else { + SendToProgram("go\n", &first); + } + first.maybeThinking = TRUE; + } + } + } else if (gameMode == IcsObserving || gameMode == IcsExamining) { + if (moveList[moveNum - 1][0] == NULLCHAR) { + sprintf(str, "Couldn't parse move \"%s\" from ICS", move_str); + DisplayError(str, 0); + } else { + SendMoveToProgram(moveNum - 1, &first); + } + } + } +#endif + } + + if (moveNum > 0 && !gotPremove) { + /* If move comes from a remote source, animate it. If it + isn't remote, it will have already been animated. */ + if (!pausing && !ics_user_moved && prevMove == moveNum - 1) { + AnimateMove(boards[moveNum - 1], fromX, fromY, toX, toY); + } + if (!pausing && appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } + } + + /* Start the clocks */ + whiteFlag = blackFlag = FALSE; + appData.clockMode = !(basetime == 0 && increment == 0); + if (ticking == 0) { + ics_clock_paused = TRUE; + StopClocks(); + } else if (ticking == 1) { + ics_clock_paused = FALSE; + } + if (gameMode == IcsIdle || + relation == RELATION_OBSERVING_STATIC || + relation == RELATION_EXAMINING || + ics_clock_paused) + DisplayBothClocks(); + else + StartClocks(); + + /* Display opponents and material strengths */ + if (gameInfo.variant != VariantBughouse && + gameInfo.variant != VariantCrazyhouse) { + if (tinyLayout || smallLayout) { + sprintf(str, "%s(%d) %s(%d) {%d %d}", + gameInfo.white, white_stren, gameInfo.black, black_stren, + basetime, increment); + } else { + sprintf(str, "%s (%d) vs. %s (%d) {%d %d}", + gameInfo.white, white_stren, gameInfo.black, black_stren, + basetime, increment); + } + DisplayTitle(str); + } + + + /* Display the board */ + if (!pausing) { + + if (appData.premove) + if (!gotPremove || + ((gameMode == IcsPlayingWhite) && (WhiteOnMove(currentMove))) || + ((gameMode == IcsPlayingBlack) && (!WhiteOnMove(currentMove)))) + ClearPremoveHighlights(); + + DrawPosition(FALSE, boards[currentMove]); + DisplayMove(moveNum - 1); + if (appData.ringBellAfterMoves && !ics_user_moved) + RingBell(); + } + + HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1); +} + +void +GetMoveListEvent() +{ + char buf[MSG_SIZ]; + if (appData.icsActive && gameMode != IcsIdle && ics_gamenum > 0) { + ics_getting_history = H_REQUESTED; + sprintf(buf, "%smoves %d\n", ics_prefix, ics_gamenum); + SendToICS(buf); + } +} + +void +AnalysisPeriodicEvent(force) + int force; +{ + if (((programStats.ok_to_send == 0 || programStats.line_is_book) + && !force) || !appData.periodicUpdates) + return; + + /* Send . command to Crafty to collect stats */ + SendToProgram(".\n", &first); + + /* Don't send another until we get a response (this makes + us stop sending to old Crafty's which don't understand + the "." command (sending illegal cmds resets node count & time, + which looks bad)) */ + programStats.ok_to_send = 0; +} + +void +SendMoveToProgram(moveNum, cps) + int moveNum; + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + if (cps->useUsermove) { + SendToProgram("usermove ", cps); + } + if (cps->useSAN) { + char *space; + if ((space = strchr(parseList[moveNum], ' ')) != NULL) { + int len = space - parseList[moveNum]; + memcpy(buf, parseList[moveNum], len); + buf[len++] = '\n'; + buf[len] = NULLCHAR; + } else { + sprintf(buf, "%s\n", parseList[moveNum]); + } + SendToProgram(buf, cps); + } else { + SendToProgram(moveList[moveNum], cps); + } +} + +void +SendMoveToICS(moveType, fromX, fromY, toX, toY) + ChessMove moveType; + int fromX, fromY, toX, toY; +{ + char user_move[MSG_SIZ]; + + switch (moveType) { + default: + sprintf(user_move, "say Internal error; bad moveType %d (%d,%d-%d,%d)", + (int)moveType, fromX, fromY, toX, toY); + DisplayError(user_move + strlen("say "), 0); + break; + case WhiteKingSideCastle: + case BlackKingSideCastle: + case WhiteQueenSideCastleWild: + case BlackQueenSideCastleWild: + sprintf(user_move, "o-o\n"); + break; + case WhiteQueenSideCastle: + case BlackQueenSideCastle: + case WhiteKingSideCastleWild: + case BlackKingSideCastleWild: + sprintf(user_move, "o-o-o\n"); + break; + case WhitePromotionQueen: + case BlackPromotionQueen: + case WhitePromotionRook: + case BlackPromotionRook: + case WhitePromotionBishop: + case BlackPromotionBishop: + case WhitePromotionKnight: + case BlackPromotionKnight: + case WhitePromotionKing: + case BlackPromotionKing: + sprintf(user_move, "%c%c%c%c=%c\n", + 'a' + fromX, '1' + fromY, 'a' + toX, '1' + toY, + PieceToChar(PromoPiece(moveType))); + break; + case WhiteDrop: + case BlackDrop: + sprintf(user_move, "%c@%c%c\n", + ToUpper(PieceToChar((ChessSquare) fromX)), + 'a' + toX, '1' + toY); + break; + case NormalMove: + case WhiteCapturesEnPassant: + case BlackCapturesEnPassant: + case IllegalMove: /* could be a variant we don't quite understand */ + sprintf(user_move, "%c%c%c%c\n", + 'a' + fromX, '1' + fromY, 'a' + toX, '1' + toY); + break; + } + SendToICS(user_move); +} + +void +CoordsToComputerAlgebraic(rf, ff, rt, ft, promoChar, move) + int rf, ff, rt, ft; + char promoChar; + char move[7]; +{ + if (rf == DROP_RANK) { + sprintf(move, "%c@%c%c\n", + ToUpper(PieceToChar((ChessSquare) ff)), 'a' + ft, '1' + rt); + } else { + if (promoChar == 'x' || promoChar == NULLCHAR) { + sprintf(move, "%c%c%c%c\n", + 'a' + ff, '1' + rf, 'a' + ft, '1' + rt); + } else { + sprintf(move, "%c%c%c%c%c\n", + 'a' + ff, '1' + rf, 'a' + ft, '1' + rt, promoChar); + } + } +} + +void +ProcessICSInitScript(f) + FILE *f; +{ + char buf[MSG_SIZ]; + + while (fgets(buf, MSG_SIZ, f)) { + SendToICSDelayed(buf,(long)appData.msLoginDelay); + } + + fclose(f); +} + + +/* Parser for moves from gnuchess, ICS, or user typein box */ +Boolean +ParseOneMove(move, moveNum, moveType, fromX, fromY, toX, toY, promoChar) + char *move; + int moveNum; + ChessMove *moveType; + int *fromX, *fromY, *toX, *toY; + char *promoChar; +{ + *moveType = yylexstr(moveNum, move); + switch (*moveType) { + case WhitePromotionQueen: + case BlackPromotionQueen: + case WhitePromotionRook: + case BlackPromotionRook: + case WhitePromotionBishop: + case BlackPromotionBishop: + case WhitePromotionKnight: + case BlackPromotionKnight: + case WhitePromotionKing: + case BlackPromotionKing: + case NormalMove: + case WhiteCapturesEnPassant: + case BlackCapturesEnPassant: + case WhiteKingSideCastle: + case WhiteQueenSideCastle: + case BlackKingSideCastle: + case BlackQueenSideCastle: + case WhiteKingSideCastleWild: + case WhiteQueenSideCastleWild: + case BlackKingSideCastleWild: + case BlackQueenSideCastleWild: + case IllegalMove: /* bug or odd chess variant */ + *fromX = currentMoveString[0] - 'a'; + *fromY = currentMoveString[1] - '1'; + *toX = currentMoveString[2] - 'a'; + *toY = currentMoveString[3] - '1'; + *promoChar = currentMoveString[4]; + if (*fromX < 0 || *fromX > 7 || *fromY < 0 || *fromY > 7 || + *toX < 0 || *toX > 7 || *toY < 0 || *toY > 7) { + *fromX = *fromY = *toX = *toY = 0; + return FALSE; + } + if (appData.testLegality) { + return (*moveType != IllegalMove); + } else { + return !(fromX == fromY && toX == toY); + } + + case WhiteDrop: + case BlackDrop: + *fromX = *moveType == WhiteDrop ? + (int) CharToPiece(ToUpper(currentMoveString[0])) : + (int) CharToPiece(ToLower(currentMoveString[0])); + *fromY = DROP_RANK; + *toX = currentMoveString[2] - 'a'; + *toY = currentMoveString[3] - '1'; + *promoChar = NULLCHAR; + return TRUE; + + case AmbiguousMove: + case ImpossibleMove: + case (ChessMove) 0: /* end of file */ + case ElapsedTime: + case Comment: + case PGNTag: + case NAG: + case WhiteWins: + case BlackWins: + case GameIsDrawn: + default: + /* bug? */ + *fromX = *fromY = *toX = *toY = 0; + *promoChar = NULLCHAR; + return FALSE; + } +} + + +void +InitPosition(redraw) + int redraw; +{ + currentMove = forwardMostMove = backwardMostMove = 0; + switch (gameInfo.variant) { + default: + CopyBoard(boards[0], initialPosition); + break; + case VariantTwoKings: + CopyBoard(boards[0], twoKingsPosition); + startedFromSetupPosition = TRUE; + break; + case VariantWildCastle: + CopyBoard(boards[0], initialPosition); + /* !!?shuffle with kings guaranteed to be on d or e file */ + break; + case VariantNoCastle: + CopyBoard(boards[0], initialPosition); + /* !!?unconstrained back-rank shuffle */ + break; + case VariantFischeRandom: + CopyBoard(boards[0], initialPosition); + /* !!shuffle according to FR rules */ + break; + } + if (redraw) + DrawPosition(FALSE, boards[currentMove]); +} + +void +SendBoard(cps, moveNum) + ChessProgramState *cps; + int moveNum; +{ + char message[MSG_SIZ]; + + if (cps->useSetboard) { + char* fen = PositionToFEN(moveNum); + sprintf(message, "setboard %s\n", fen); + SendToProgram(message, cps); + free(fen); + + } else { + ChessSquare *bp; + int i, j; + /* Kludge to set black to move, avoiding the troublesome and now + * deprecated "black" command. + */ + if (!WhiteOnMove(moveNum)) SendToProgram("a2a3\n", cps); + + SendToProgram("edit\n", cps); + SendToProgram("#\n", cps); + for (i = BOARD_SIZE - 1; i >= 0; i--) { + bp = &boards[moveNum][i][0]; + for (j = 0; j < BOARD_SIZE; j++, bp++) { + if ((int) *bp < (int) BlackPawn) { + sprintf(message, "%c%c%c\n", PieceToChar(*bp), + 'a' + j, '1' + i); + SendToProgram(message, cps); + } + } + } + + SendToProgram("c\n", cps); + for (i = BOARD_SIZE - 1; i >= 0; i--) { + bp = &boards[moveNum][i][0]; + for (j = 0; j < BOARD_SIZE; j++, bp++) { + if (((int) *bp != (int) EmptySquare) + && ((int) *bp >= (int) BlackPawn)) { + sprintf(message, "%c%c%c\n", ToUpper(PieceToChar(*bp)), + 'a' + j, '1' + i); + SendToProgram(message, cps); + } + } + } + + SendToProgram(".\n", cps); + } +} + +int +IsPromotion(fromX, fromY, toX, toY) + int fromX, fromY, toX, toY; +{ + return gameMode != EditPosition && + fromX >=0 && fromY >= 0 && toX >= 0 && toY >= 0 && + ((boards[currentMove][fromY][fromX] == WhitePawn && toY == 7) || + (boards[currentMove][fromY][fromX] == BlackPawn && toY == 0)); +} + + +int +PieceForSquare (x, y) + int x; + int y; +{ + if (x < 0 || x >= BOARD_SIZE || y < 0 || y >= BOARD_SIZE) + return -1; + else + return boards[currentMove][y][x]; +} + +int +OKToStartUserMove(x, y) + int x, y; +{ + ChessSquare from_piece; + int white_piece; + + if (matchMode) return FALSE; + if (gameMode == EditPosition) return TRUE; + + if (x >= 0 && y >= 0) + from_piece = boards[currentMove][y][x]; + else + from_piece = EmptySquare; + + if (from_piece == EmptySquare) return FALSE; + + white_piece = (int)from_piece >= (int)WhitePawn && + (int)from_piece <= (int)WhiteKing; + + switch (gameMode) { + case PlayFromGameFile: + case AnalyzeFile: + case TwoMachinesPlay: + case EndOfGame: + return FALSE; + + case IcsObserving: + case IcsIdle: + return FALSE; + + case MachinePlaysWhite: + case IcsPlayingBlack: + if (appData.zippyPlay) return FALSE; + if (white_piece) { + DisplayMoveError("You are playing Black"); + return FALSE; + } + break; + + case MachinePlaysBlack: + case IcsPlayingWhite: + if (appData.zippyPlay) return FALSE; + if (!white_piece) { + DisplayMoveError("You are playing White"); + return FALSE; + } + break; + + case EditGame: + if (!white_piece && WhiteOnMove(currentMove)) { + DisplayMoveError("It is White's turn"); + return FALSE; + } + if (white_piece && !WhiteOnMove(currentMove)) { + DisplayMoveError("It is Black's turn"); + return FALSE; + } + if (cmailMsgLoaded && (currentMove < cmailOldMove)) { + /* Editing correspondence game history */ + /* Could disallow this or prompt for confirmation */ + cmailOldMove = -1; + } + if (currentMove < forwardMostMove) { + /* Discarding moves */ + /* Could prompt for confirmation here, + but I don't think that's such a good idea */ + forwardMostMove = currentMove; + } + break; + + case BeginningOfGame: + if (appData.icsActive) return FALSE; + if (!appData.noChessProgram) { + if (!white_piece) { + DisplayMoveError("You are playing White"); + return FALSE; + } + } + break; + + case Training: + if (!white_piece && WhiteOnMove(currentMove)) { + DisplayMoveError("It is White's turn"); + return FALSE; + } + if (white_piece && !WhiteOnMove(currentMove)) { + DisplayMoveError("It is Black's turn"); + return FALSE; + } + break; + + default: + case IcsExamining: + break; + } + if (currentMove != forwardMostMove && gameMode != AnalyzeMode + && gameMode != AnalyzeFile && gameMode != Training) { + DisplayMoveError("Displayed position is not current"); + return FALSE; + } + return TRUE; +} + +FILE *lastLoadGameFP = NULL, *lastLoadPositionFP = NULL; +int lastLoadGameNumber = 0, lastLoadPositionNumber = 0; +int lastLoadGameUseList = FALSE; +char lastLoadGameTitle[MSG_SIZ], lastLoadPositionTitle[MSG_SIZ]; +ChessMove lastLoadGameStart = (ChessMove) 0; + + +void +UserMoveEvent(fromX, fromY, toX, toY, promoChar) + int fromX, fromY, toX, toY; + int promoChar; +{ + ChessMove moveType; + + if (fromX < 0 || fromY < 0) return; + if ((fromX == toX) && (fromY == toY)) { + return; + } + + /* Check if the user is playing in turn. This is complicated because we + let the user "pick up" a piece before it is his turn. So the piece he + tried to pick up may have been captured by the time he puts it down! + Therefore we use the color the user is supposed to be playing in this + test, not the color of the piece that is currently on the starting + square---except in EditGame mode, where the user is playing both + sides; fortunately there the capture race can't happen. (It can + now happen in IcsExamining mode, but that's just too bad. The user + will get a somewhat confusing message in that case.) + */ + + switch (gameMode) { + case PlayFromGameFile: + case AnalyzeFile: + case TwoMachinesPlay: + case EndOfGame: + case IcsObserving: + case IcsIdle: + /* We switched into a game mode where moves are not accepted, + perhaps while the mouse button was down. */ + return; + + case MachinePlaysWhite: + /* User is moving for Black */ + if (WhiteOnMove(currentMove)) { + DisplayMoveError("It is White's turn"); + return; + } + break; + + case MachinePlaysBlack: + /* User is moving for White */ + if (!WhiteOnMove(currentMove)) { + DisplayMoveError("It is Black's turn"); + return; + } + break; + + case EditGame: + case IcsExamining: + case BeginningOfGame: + case AnalyzeMode: + case Training: + if ((int) boards[currentMove][fromY][fromX] >= (int) BlackPawn && + (int) boards[currentMove][fromY][fromX] <= (int) BlackKing) { + /* User is moving for Black */ + if (WhiteOnMove(currentMove)) { + DisplayMoveError("It is White's turn"); + return; + } + } else { + /* User is moving for White */ + if (!WhiteOnMove(currentMove)) { + DisplayMoveError("It is Black's turn"); + return; + } + } + break; + + case IcsPlayingBlack: + /* User is moving for Black */ + if (WhiteOnMove(currentMove)) { + if (!appData.premove) { + DisplayMoveError("It is White's turn"); + } else if (toX >= 0 && toY >= 0) { + premoveToX = toX; + premoveToY = toY; + premoveFromX = fromX; + premoveFromY = fromY; + premovePromoChar = promoChar; + gotPremove = 1; + if (appData.debugMode) + fprintf(debugFP, "Got premove: fromX %d," + "fromY %d, toX %d, toY %d\n", + fromX, fromY, toX, toY); + } + return; + } + break; + + case IcsPlayingWhite: + /* User is moving for White */ + if (!WhiteOnMove(currentMove)) { + if (!appData.premove) { + DisplayMoveError("It is Black's turn"); + } else if (toX >= 0 && toY >= 0) { + premoveToX = toX; + premoveToY = toY; + premoveFromX = fromX; + premoveFromY = fromY; + premovePromoChar = promoChar; + gotPremove = 1; + if (appData.debugMode) + fprintf(debugFP, "Got premove: fromX %d," + "fromY %d, toX %d, toY %d\n", + fromX, fromY, toX, toY); + } + return; + } + break; + + default: + break; + + case EditPosition: + if (toX == -2 || toY == -2) { + boards[0][fromY][fromX] = EmptySquare; + DrawPosition(FALSE, boards[currentMove]); + } else if (toX >= 0 && toY >= 0) { + boards[0][toY][toX] = boards[0][fromY][fromX]; + boards[0][fromY][fromX] = EmptySquare; + DrawPosition(FALSE, boards[currentMove]); + } + return; + } + + if (toX < 0 || toY < 0) return; + userOfferedDraw = FALSE; + + if (appData.testLegality) { + moveType = LegalityTest(boards[currentMove], PosFlags(currentMove), + EP_UNKNOWN, fromY, fromX, toY, toX, promoChar); + if (moveType == IllegalMove || moveType == ImpossibleMove) { + DisplayMoveError("Illegal move"); + return; + } + } else { + moveType = PromoCharToMoveType(WhiteOnMove(currentMove), promoChar); + } + + if (gameMode == Training) { + /* compare the move played on the board to the next move in the + * game. If they match, display the move and the opponent's response. + * If they don't match, display an error message. + */ + int saveAnimate; + Board testBoard; + CopyBoard(testBoard, boards[currentMove]); + ApplyMove(fromX, fromY, toX, toY, promoChar, testBoard); + + if (CompareBoards(testBoard, boards[currentMove+1])) { + ForwardInner(currentMove+1); + + /* Autoplay the opponent's response. + * if appData.animate was TRUE when Training mode was entered, + * the response will be animated. + */ + saveAnimate = appData.animate; + appData.animate = animateTraining; + ForwardInner(currentMove+1); + appData.animate = saveAnimate; + + /* check for the end of the game */ + if (currentMove >= forwardMostMove) { + gameMode = PlayFromGameFile; + ModeHighlight(); + SetTrainingModeOff(); + DisplayInformation("End of game"); + } + } else { + DisplayError("Incorrect move", 0); + } + return; + } + + FinishMove(moveType, fromX, fromY, toX, toY, promoChar); +} + +/* Common tail of UserMoveEvent and DropMenuEvent */ +void +FinishMove(moveType, fromX, fromY, toX, toY, promoChar) + ChessMove moveType; + int fromX, fromY, toX, toY; + /*char*/int promoChar; +{ + /* Ok, now we know that the move is good, so we can kill + the previous line in Analysis Mode */ + if (gameMode == AnalyzeMode && currentMove < forwardMostMove) { + forwardMostMove = currentMove; + } + + /* If we need the chess program but it's dead, restart it */ + ResurrectChessProgram(); + + /* A user move restarts a paused game*/ + if (pausing) + PauseEvent(); + + thinkOutput[0] = NULLCHAR; + + MakeMove(fromX, fromY, toX, toY, promoChar); /*updates forwardMostMove*/ + + if (gameMode == BeginningOfGame) { + if (appData.noChessProgram) { + gameMode = EditGame; + SetGameInfo(); + } else { + char buf[MSG_SIZ]; + gameMode = MachinePlaysBlack; + SetGameInfo(); + sprintf(buf, "%s vs. %s", gameInfo.white, gameInfo.black); + DisplayTitle(buf); + if (first.sendName) { + sprintf(buf, "name %s\n", gameInfo.white); + SendToProgram(buf, &first); + } + } + ModeHighlight(); + } + + /* Relay move to ICS or chess engine */ + if (appData.icsActive) { + if (gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack || + gameMode == IcsExamining) { + SendMoveToICS(moveType, fromX, fromY, toX, toY); + ics_user_moved = 1; + } + } else { + if (first.sendTime && (gameMode == BeginningOfGame || + gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack)) { + SendTimeRemaining(&first, gameMode != MachinePlaysBlack); + } + SendMoveToProgram(forwardMostMove-1, &first); + if (gameMode != EditGame && gameMode != PlayFromGameFile) { + first.maybeThinking = TRUE; + } + if (currentMove == cmailOldMove + 1) { + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE; + } + } + + ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/ + + switch (gameMode) { + case EditGame: + switch (MateTest(boards[currentMove], PosFlags(currentMove), + EP_UNKNOWN)) { + case MT_NONE: + case MT_CHECK: + break; + case MT_CHECKMATE: + if (WhiteOnMove(currentMove)) { + GameEnds(BlackWins, "Black mates", GE_PLAYER); + } else { + GameEnds(WhiteWins, "White mates", GE_PLAYER); + } + break; + case MT_STALEMATE: + GameEnds(GameIsDrawn, "Stalemate", GE_PLAYER); + break; + } + break; + + case MachinePlaysBlack: + case MachinePlaysWhite: + /* disable certain menu options while machine is thinking */ + SetMachineThinkingEnables(); + break; + + default: + break; + } +} + +void +HandleMachineMove(message, cps) + char *message; + ChessProgramState *cps; +{ + char machineMove[MSG_SIZ], buf1[MSG_SIZ*10], buf2[MSG_SIZ]; + char realname[MSG_SIZ]; + int fromX, fromY, toX, toY; + ChessMove moveType; + char promoChar; + char *p; + int machineWhite; + + /* + * Kludge to ignore BEL characters + */ + while (*message == '\007') message++; + + /* + * Look for book output + */ + if (cps == &first && bookRequested) { + if (message[0] == '\t' || message[0] == ' ') { + /* Part of the book output is here; append it */ + strcat(bookOutput, message); + strcat(bookOutput, " \n"); + return; + } else if (bookOutput[0] != NULLCHAR) { + /* All of book output has arrived; display it */ + char *p = bookOutput; + while (*p != NULLCHAR) { + if (*p == '\t') *p = ' '; + p++; + } + DisplayInformation(bookOutput); + bookRequested = FALSE; + /* Fall through to parse the current output */ + } + } + + /* + * Look for machine move. + */ + if ((sscanf(message, "%s %s %s", buf1, buf2, machineMove) == 3 && + strcmp(buf2, "...") == 0) || + (sscanf(message, "%s %s", buf1, machineMove) == 2 && + strcmp(buf1, "move") == 0)) { + + /* This method is only useful on engines that support ping */ + if (cps->lastPing != cps->lastPong) { + if (gameMode == BeginningOfGame) { + /* Extra move from before last new; ignore */ + if (appData.debugMode) { + fprintf(debugFP, "Ignoring extra move from %s\n", cps->which); + } + } else { + if (appData.debugMode) { + fprintf(debugFP, "Undoing extra move from %s, gameMode %d\n", + cps->which, gameMode); + } + SendToProgram("undo\n", cps); + } + return; + } + + switch (gameMode) { + case BeginningOfGame: + /* Extra move from before last reset; ignore */ + if (appData.debugMode) { + fprintf(debugFP, "Ignoring extra move from %s\n", cps->which); + } + return; + + case EndOfGame: + case IcsIdle: + default: + /* Extra move after we tried to stop. The mode test is + not a reliable way of detecting this problem, but it's + the best we can do on engines that don't support ping. + */ + if (appData.debugMode) { + fprintf(debugFP, "Undoing extra move from %s, gameMode %d\n", + cps->which, gameMode); + } + SendToProgram("undo\n", cps); + return; + + case MachinePlaysWhite: + case IcsPlayingWhite: + machineWhite = TRUE; + break; + + case MachinePlaysBlack: + case IcsPlayingBlack: + machineWhite = FALSE; + break; + + case TwoMachinesPlay: + machineWhite = (cps->twoMachinesColor[0] == 'w'); + break; + } + if (WhiteOnMove(forwardMostMove) != machineWhite) { + if (appData.debugMode) { + fprintf(debugFP, + "Ignoring move out of turn by %s, gameMode %d" + ", forwardMost %d\n", + cps->which, gameMode, forwardMostMove); + } + return; + } + + if (!ParseOneMove(machineMove, forwardMostMove, &moveType, + &fromX, &fromY, &toX, &toY, &promoChar)) { + /* Machine move could not be parsed; ignore it. */ + sprintf(buf1, "Illegal move \"%s\" from %s machine", + machineMove, cps->which); + /*!!if (appData.debugMode)*/ DisplayError(buf1, 0); + return; + } + + hintRequested = FALSE; + lastHint[0] = NULLCHAR; + bookRequested = FALSE; + /* Program may be pondering now */ + cps->maybeThinking = TRUE; + if (cps->sendTime == 2) cps->sendTime = 1; + if (cps->offeredDraw) cps->offeredDraw--; + +#if ZIPPY + if ((gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack) && + first.initDone) { + SendMoveToICS(moveType, fromX, fromY, toX, toY); + ics_user_moved = 1; + } +#endif + /* currentMoveString is set as a side-effect of ParseOneMove */ + strcpy(machineMove, currentMoveString); + strcat(machineMove, "\n"); + strcpy(moveList[forwardMostMove], machineMove); + + MakeMove(fromX, fromY, toX, toY, promoChar);/*updates forwardMostMove*/ + + if (gameMode == TwoMachinesPlay) { + if (cps->other->sendTime) { + SendTimeRemaining(cps->other, + cps->other->twoMachinesColor[0] == 'w'); + } + SendMoveToProgram(forwardMostMove-1, cps->other); + if (firstMove) { + firstMove = FALSE; + if (cps->other->useColors) { + SendToProgram(cps->other->twoMachinesColor, cps->other); + } + SendToProgram("go\n", cps->other); + } + cps->other->maybeThinking = TRUE; + } + + ShowMove(fromX, fromY, toX, toY); /*updates currentMove*/ + if (!pausing && appData.ringBellAfterMoves) { + RingBell(); + } + /* + * Reenable menu items that were disabled while + * machine was thinking + */ + if (gameMode != TwoMachinesPlay) + SetUserThinkingEnables(); + return; + } + + /* Set special modes for chess engines. Later something general + * could be added here; for now there is just one kludge feature, + * needed because Crafty 15.10 and earlier don't ignore SIGINT + * when "xboard" is given as an interactive command. + */ + if (strncmp(message, "kibitz Hello from Crafty", 24) == 0) { + cps->useSigint = FALSE; + cps->useSigterm = FALSE; + } + + /* + * Look for communication commands + */ + if (!strncmp(message, "telluser ", 9)) { + DisplayInformation(message + 9); + return; + } + if (!strncmp(message, "tellusererror ", 14)) { + DisplayError(message + 14, 0); + return; + } + if (!strncmp(message, "tellopponent ", 13)) { + if (appData.icsActive) { + if (loggedOn) { + sprintf(buf1, "%ssay %s\n", ics_prefix, message + 13); + SendToICS(buf1); + } + } else { + DisplayInformation(message + 13); + } + return; + } + if (!strncmp(message, "tellothers ", 11)) { + if (appData.icsActive) { + if (loggedOn) { + sprintf(buf1, "%swhisper %s\n", ics_prefix, message + 11); + SendToICS(buf1); + } + } + return; + } + if (!strncmp(message, "tellall ", 8)) { + if (appData.icsActive) { + if (loggedOn) { + sprintf(buf1, "%skibitz %s\n", ics_prefix, message + 8); + SendToICS(buf1); + } + } else { + DisplayInformation(message + 8); + } + return; + } + if (strncmp(message, "warning", 7) == 0) { + /* Undocumented feature, use tellusererror in new code */ + DisplayError(message, 0); + return; + } + if (sscanf(message, "askuser %s %[^\n]", buf1, buf2) == 2) { + strcpy(realname, cps->tidy); + strcat(realname, " query"); + AskQuestion(realname, buf2, buf1, cps->pr); + return; + } + /* Commands from the engine directly to ICS. We don't allow these to be + * sent until we are logged on. Crafty kibitzes have been known to + * interfere with the login process. + */ + if (loggedOn) { + if (!strncmp(message, "tellics ", 8)) { + SendToICS(message + 8); + SendToICS("\n"); + return; + } + if (!strncmp(message, "tellicsnoalias ", 15)) { + SendToICS(ics_prefix); + SendToICS(message + 15); + SendToICS("\n"); + return; + } + /* The following are for backward compatibility only */ + if (!strncmp(message,"whisper",7) || !strncmp(message,"kibitz",6) || + !strncmp(message,"draw",4) || !strncmp(message,"tell",3)) { + SendToICS(ics_prefix); + SendToICS(message); + SendToICS("\n"); + return; + } + } + if (strncmp(message, "feature ", 8) == 0) { + ParseFeatures(message+8, cps); + } + if (sscanf(message, "pong %d", &cps->lastPong) == 1) { + return; + } + /* + * If the move is illegal, cancel it and redraw the board. + * Also deal with other error cases. Matching is rather loose + * here to accommodate engines written before the spec. + */ + if (strncmp(message + 1, "llegal move", 11) == 0 || + strncmp(message, "Error", 5) == 0) { + if (StrStr(message, "name") || + StrStr(message, "rating") || StrStr(message, "?") || + StrStr(message, "result") || StrStr(message, "board") || + StrStr(message, "bk") || StrStr(message, "computer") || + StrStr(message, "variant") || StrStr(message, "hint") || + StrStr(message, "random") || StrStr(message, "depth") || + StrStr(message, "accepted")) { + return; + } + if (StrStr(message, "protover")) { + /* Program is responding to input, so it's apparently done + initializing, and this error message indicates it is + protocol version 1. So we don't need to wait any longer + for it to initialize and send feature commands. */ + FeatureDone(cps, 1); + cps->protocolVersion = 1; + return; + } + cps->maybeThinking = FALSE; + + if (StrStr(message, "draw")) { + /* Program doesn't have "draw" command */ + cps->sendDrawOffers = 0; + return; + } + if (cps->sendTime != 1 && + (StrStr(message, "time") || StrStr(message, "otim"))) { + /* Program apparently doesn't have "time" or "otim" command */ + cps->sendTime = 0; + return; + } + if (StrStr(message, "analyze")) { + cps->analysisSupport = FALSE; + cps->analyzing = FALSE; + Reset(FALSE, TRUE); + sprintf(buf2, "%s does not support analysis", cps->tidy); + DisplayError(buf2, 0); + return; + } + if (StrStr(message, "st")) { + cps->stKludge = TRUE; + SendTimeControl(cps, movesPerSession, timeControl, + timeIncrement, appData.searchDepth, + searchTime); + return; + } + if (StrStr(message, "sd")) { + cps->sdKludge = TRUE; + SendTimeControl(cps, movesPerSession, timeControl, + timeIncrement, appData.searchDepth, + searchTime); + return; + } + if (!StrStr(message, "llegal")) return; + if (gameMode == BeginningOfGame || gameMode == EndOfGame || + gameMode == IcsIdle) return; + if (forwardMostMove <= backwardMostMove) return; + if (cps == &first && programStats.ok_to_send == 0) { + /* Bogus message from Crafty responding to "." This filtering + can miss some of the bad messages, but fortunately the bug + is fixed in current Crafty versions, so it doesn't matter. */ + return; + } + if (pausing) PauseEvent(); + if (gameMode == PlayFromGameFile) { + /* Stop reading this game file */ + gameMode = EditGame; + ModeHighlight(); + } + currentMove = --forwardMostMove; + DisplayMove(currentMove-1); /* before DisplayMoveError */ + SwitchClocks(); + DisplayBothClocks(); + sprintf(buf1, "Illegal move \"%s\" (rejected by %s chess program)", + parseList[currentMove], cps->which); + DisplayMoveError(buf1); + DrawPosition(FALSE, boards[currentMove]); + return; + } + if (strncmp(message, "time", 4) == 0 && StrStr(message, "Illegal")) { + /* Program has a broken "time" command that + outputs a string not ending in newline. + Don't use it. */ + cps->sendTime = 0; + } + + /* + * If chess program startup fails, exit with an error message. + * Attempts to recover here are futile. + */ + if ((StrStr(message, "unknown host") != NULL) + || (StrStr(message, "No remote directory") != NULL) + || (StrStr(message, "not found") != NULL) + || (StrStr(message, "No such file") != NULL) + || (StrStr(message, "can't alloc") != NULL) + || (StrStr(message, "Permission denied") != NULL)) { + + cps->maybeThinking = FALSE; + sprintf(buf1, "Failed to start %s chess program %s on %s: %s\n", + cps->which, cps->program, cps->host, message); + RemoveInputSource(cps->isr); + DisplayFatalError(buf1, 0, 1); + return; + } + + /* + * Look for hint output + */ + if (sscanf(message, "Hint: %s", buf1) == 1) { + if (cps == &first && hintRequested) { + hintRequested = FALSE; + if (ParseOneMove(buf1, forwardMostMove, &moveType, + &fromX, &fromY, &toX, &toY, &promoChar)) { + (void) CoordsToAlgebraic(boards[forwardMostMove], + PosFlags(forwardMostMove), EP_UNKNOWN, + fromY, fromX, toY, toX, promoChar, buf1); + sprintf(buf2, "Hint: %s", buf1); + DisplayInformation(buf2); + } else { + /* Hint move could not be parsed!? */ + sprintf(buf2, + "Illegal hint move \"%s\"\nfrom %s chess program", + buf1, cps->which); + DisplayError(buf2, 0); + } + } else { + strcpy(lastHint, buf1); + } + return; + } + + /* + * Ignore other messages if game is not in progress + */ + if (gameMode == BeginningOfGame || gameMode == EndOfGame || + gameMode == IcsIdle || cps->lastPing != cps->lastPong) return; + + /* + * look for win, lose, draw, or draw offer + */ + if (strncmp(message, "1-0", 3) == 0) { + char *p, *q, *r = ""; + p = strchr(message, '{'); + if (p) { + q = strchr(p, '}'); + if (q) { + *q = NULLCHAR; + r = p + 1; + } + } + GameEnds(WhiteWins, r, GE_ENGINE); + return; + } else if (strncmp(message, "0-1", 3) == 0) { + char *p, *q, *r = ""; + p = strchr(message, '{'); + if (p) { + q = strchr(p, '}'); + if (q) { + *q = NULLCHAR; + r = p + 1; + } + } + /* Kludge for Arasan 4.1 bug */ + if (strcmp(r, "Black resigns") == 0) { + GameEnds(WhiteWins, r, GE_ENGINE); + return; + } + GameEnds(BlackWins, r, GE_ENGINE); + return; + } else if (strncmp(message, "1/2", 3) == 0) { + char *p, *q, *r = ""; + p = strchr(message, '{'); + if (p) { + q = strchr(p, '}'); + if (q) { + *q = NULLCHAR; + r = p + 1; + } + } + GameEnds(GameIsDrawn, r, GE_ENGINE); + return; + + } else if (strncmp(message, "White resign", 12) == 0) { + GameEnds(BlackWins, "White resigns", GE_ENGINE); + return; + } else if (strncmp(message, "Black resign", 12) == 0) { + GameEnds(WhiteWins, "Black resigns", GE_ENGINE); + return; + } else if (strncmp(message, "White", 5) == 0 && + message[5] != '(' && + StrStr(message, "Black") == NULL) { + GameEnds(WhiteWins, "White mates", GE_ENGINE); + return; + } else if (strncmp(message, "Black", 5) == 0 && + message[5] != '(') { + GameEnds(BlackWins, "Black mates", GE_ENGINE); + return; + } else if (strcmp(message, "resign") == 0 || + strcmp(message, "computer resigns") == 0) { + switch (gameMode) { + case MachinePlaysBlack: + case IcsPlayingBlack: + GameEnds(WhiteWins, "Black resigns", GE_ENGINE); + break; + case MachinePlaysWhite: + case IcsPlayingWhite: + GameEnds(BlackWins, "White resigns", GE_ENGINE); + break; + case TwoMachinesPlay: + if (cps->twoMachinesColor[0] == 'w') + GameEnds(BlackWins, "White resigns", GE_ENGINE); + else + GameEnds(WhiteWins, "Black resigns", GE_ENGINE); + break; + default: + /* can't happen */ + break; + } + return; + } else if (strncmp(message, "opponent mates", 14) == 0) { + switch (gameMode) { + case MachinePlaysBlack: + case IcsPlayingBlack: + GameEnds(WhiteWins, "White mates", GE_ENGINE); + break; + case MachinePlaysWhite: + case IcsPlayingWhite: + GameEnds(BlackWins, "Black mates", GE_ENGINE); + break; + case TwoMachinesPlay: + if (cps->twoMachinesColor[0] == 'w') + GameEnds(BlackWins, "Black mates", GE_ENGINE); + else + GameEnds(WhiteWins, "White mates", GE_ENGINE); + break; + default: + /* can't happen */ + break; + } + return; + } else if (strncmp(message, "computer mates", 14) == 0) { + switch (gameMode) { + case MachinePlaysBlack: + case IcsPlayingBlack: + GameEnds(BlackWins, "Black mates", GE_ENGINE); + break; + case MachinePlaysWhite: + case IcsPlayingWhite: + GameEnds(WhiteWins, "White mates", GE_ENGINE); + break; + case TwoMachinesPlay: + if (cps->twoMachinesColor[0] == 'w') + GameEnds(WhiteWins, "White mates", GE_ENGINE); + else + GameEnds(BlackWins, "Black mates", GE_ENGINE); + break; + default: + /* can't happen */ + break; + } + return; + } else if (strncmp(message, "checkmate", 9) == 0) { + if (WhiteOnMove(forwardMostMove)) { + GameEnds(BlackWins, "Black mates", GE_ENGINE); + } else { + GameEnds(WhiteWins, "White mates", GE_ENGINE); + } + return; + } else if (strstr(message, "Draw") != NULL || + strstr(message, "game is a draw") != NULL) { + GameEnds(GameIsDrawn, "Draw", GE_ENGINE); + return; + } else if (strstr(message, "offer") != NULL && + strstr(message, "draw") != NULL) { +#if ZIPPY + if (appData.zippyPlay && first.initDone) { + /* Relay offer to ICS */ + SendToICS(ics_prefix); + SendToICS("draw\n"); + } +#endif + cps->offeredDraw = 2; /* valid until this engine moves twice */ + if (gameMode == TwoMachinesPlay) { + if (cps->other->offeredDraw) { + GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD); + } else { + if (cps->other->sendDrawOffers) { + SendToProgram("draw\n", cps->other); + } + } + } else if (gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack) { + if (userOfferedDraw) { + DisplayInformation("Machine accepts your draw offer"); + GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD); + } else { + DisplayInformation("Machine offers a draw\nSelect Action / Draw to agree"); + } + } + } + + + /* + * Look for thinking output + */ + if (appData.showThinking) { + int plylev, mvleft, mvtot, curscore, time; + char mvname[MOVE_LEN]; + unsigned long nodes; + char plyext; + int ignore = FALSE; + int prefixHint = FALSE; + mvname[0] = NULLCHAR; + + switch (gameMode) { + case MachinePlaysBlack: + case IcsPlayingBlack: + if (WhiteOnMove(forwardMostMove)) prefixHint = TRUE; + break; + case MachinePlaysWhite: + case IcsPlayingWhite: + if (!WhiteOnMove(forwardMostMove)) prefixHint = TRUE; + break; + case AnalyzeMode: + case AnalyzeFile: + break; + case TwoMachinesPlay: + if ((cps->twoMachinesColor[0] == 'w') != + WhiteOnMove(forwardMostMove)) { + ignore = TRUE; + } + break; + default: + ignore = TRUE; + break; + } + + if (!ignore) { + buf1[0] = NULLCHAR; + if (sscanf(message, "%d%c %d %d %lu %[^\n]\n", + &plylev, &plyext, &curscore, &time, &nodes, buf1) >= 5) { + + if (plyext != ' ' && plyext != '\t') { + time *= 100; + } + programStats.depth = plylev; + programStats.nodes = nodes; + programStats.time = time; + programStats.score = curscore; + strcpy(programStats.movelist, buf1); + programStats.got_only_move = 0; + + if (programStats.seen_stat) { + programStats.ok_to_send = 1; + } + + if (strchr(programStats.movelist, '(') != NULL) { + programStats.line_is_book = 1; + programStats.nr_moves = 0; + programStats.moves_left = 0; + } else { + programStats.line_is_book = 0; + } + + sprintf(thinkOutput, "[%d]%c%+.2f %s%s%s", + plylev, + (gameMode == TwoMachinesPlay ? + ToUpper(cps->twoMachinesColor[0]) : ' '), + ((double) curscore) / 100.0, + prefixHint ? lastHint : "", + prefixHint ? " " : "", buf1); + + if (currentMove == forwardMostMove || + gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + DisplayMove(currentMove - 1); + DisplayAnalysis(); + } + return; + + } else if ((p=StrStr(message, "(only move)")) != NULL) { + /* crafty (9.25+) says "(only move) " + * if there is only 1 legal move + */ + sscanf(p, "(only move) %s", buf1); + sprintf(thinkOutput, "%s (only move)", buf1); + sprintf(programStats.movelist, "%s (only move)", buf1); + programStats.depth = 1; + programStats.nr_moves = 1; + programStats.moves_left = 1; + programStats.nodes = 1; + programStats.time = 1; + programStats.got_only_move = 1; + + /* Not really, but we also use this member to + mean "line isn't going to change" (Crafty + isn't searching, so stats won't change) */ + programStats.line_is_book = 1; + + if (currentMove == forwardMostMove || gameMode==AnalyzeMode || + gameMode == AnalyzeFile) { + DisplayMove(currentMove - 1); + DisplayAnalysis(); + } + return; + } else if (sscanf(message,"stat01: %d %lu %d %d %d %s", + &time, &nodes, &plylev, &mvleft, + &mvtot, mvname) >= 5) { + /* The stat01: line is from Crafty (9.29+) in response + to the "." command */ + programStats.seen_stat = 1; + cps->maybeThinking = TRUE; + + if (programStats.got_only_move || !appData.periodicUpdates) + return; + + programStats.depth = plylev; + programStats.time = time; + programStats.nodes = nodes; + programStats.moves_left = mvleft; + programStats.nr_moves = mvtot; + strcpy(programStats.move_name, mvname); + programStats.ok_to_send = 1; + DisplayAnalysis(); + return; + + } else if (strncmp(message,"++",2) == 0) { + /* Crafty 9.29+ outputs this */ + programStats.got_fail = 2; + return; + + } else if (strncmp(message,"--",2) == 0) { + /* Crafty 9.29+ outputs this */ + programStats.got_fail = 1; + return; + + } else if (thinkOutput[0] != NULLCHAR && + strncmp(message, " ", 4) == 0) { + p = message; + while (*p && *p == ' ') p++; + strcat(thinkOutput, " "); + strcat(thinkOutput, p); + strcat(programStats.movelist, " "); + strcat(programStats.movelist, p); + if (currentMove == forwardMostMove || gameMode==AnalyzeMode || + gameMode == AnalyzeFile) { + DisplayMove(currentMove - 1); + DisplayAnalysis(); + } + return; + } + } + } +} + + +/* Parse a game score from the character string "game", and + record it as the history of the current game. The game + score is NOT assumed to start from the standard position. + The display is not updated in any way. + */ +void +ParseGameHistory(game) + char *game; +{ + ChessMove moveType; + int fromX, fromY, toX, toY, boardIndex; + char promoChar; + char *p, *q; + char buf[MSG_SIZ]; + + if (appData.debugMode) + fprintf(debugFP, "Parsing game history: %s\n", game); + + if (gameInfo.event == NULL) gameInfo.event = StrSave("ICS game"); + gameInfo.site = StrSave(appData.icsHost); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + + /* Parse out names of players */ + while (*game == ' ') game++; + p = buf; + while (*game != ' ') *p++ = *game++; + *p = NULLCHAR; + gameInfo.white = StrSave(buf); + while (*game == ' ') game++; + p = buf; + while (*game != ' ' && *game != '\n') *p++ = *game++; + *p = NULLCHAR; + gameInfo.black = StrSave(buf); + + /* Parse moves */ + boardIndex = blackPlaysFirst ? 1 : 0; + yynewstr(game); + for (;;) { + yyboardindex = boardIndex; + moveType = (ChessMove) yylex(); + switch (moveType) { + case WhitePromotionQueen: + case BlackPromotionQueen: + case WhitePromotionRook: + case BlackPromotionRook: + case WhitePromotionBishop: + case BlackPromotionBishop: + case WhitePromotionKnight: + case BlackPromotionKnight: + case WhitePromotionKing: + case BlackPromotionKing: + case NormalMove: + case WhiteCapturesEnPassant: + case BlackCapturesEnPassant: + case WhiteKingSideCastle: + case WhiteQueenSideCastle: + case BlackKingSideCastle: + case BlackQueenSideCastle: + case WhiteKingSideCastleWild: + case WhiteQueenSideCastleWild: + case BlackKingSideCastleWild: + case BlackQueenSideCastleWild: + case IllegalMove: /* maybe suicide chess, etc. */ + fromX = currentMoveString[0] - 'a'; + fromY = currentMoveString[1] - '1'; + toX = currentMoveString[2] - 'a'; + toY = currentMoveString[3] - '1'; + promoChar = currentMoveString[4]; + break; + case WhiteDrop: + case BlackDrop: + fromX = moveType == WhiteDrop ? + (int) CharToPiece(ToUpper(currentMoveString[0])) : + (int) CharToPiece(ToLower(currentMoveString[0])); + fromY = DROP_RANK; + toX = currentMoveString[2] - 'a'; + toY = currentMoveString[3] - '1'; + promoChar = NULLCHAR; + break; + case AmbiguousMove: + /* bug? */ + sprintf(buf, "Ambiguous move in ICS output: \"%s\"", yy_text); + DisplayError(buf, 0); + return; + case ImpossibleMove: + /* bug? */ + sprintf(buf, "Illegal move in ICS output: \"%s\"", yy_text); + DisplayError(buf, 0); + return; + case (ChessMove) 0: /* end of file */ + if (boardIndex < backwardMostMove) { + /* Oops, gap. How did that happen? */ + DisplayError("Gap in move list", 0); + return; + } + backwardMostMove = blackPlaysFirst ? 1 : 0; + if (boardIndex > forwardMostMove) { + forwardMostMove = boardIndex; + } + return; + case ElapsedTime: + if (boardIndex > 0) { + strcat(parseList[boardIndex-1], " "); + strcat(parseList[boardIndex-1], yy_text); + } + continue; + case Comment: + case PGNTag: + case NAG: + default: + /* ignore */ + continue; + case WhiteWins: + case BlackWins: + case GameIsDrawn: + case GameUnfinished: + if (gameMode == IcsExamining) { + if (boardIndex < backwardMostMove) { + /* Oops, gap. How did that happen? */ + return; + } + backwardMostMove = blackPlaysFirst ? 1 : 0; + return; + } + gameInfo.result = moveType; + p = strchr(yy_text, '{'); + if (p == NULL) p = strchr(yy_text, '('); + if (p == NULL) { + p = yy_text; + if (p[0] == '0' || p[0] == '1' || p[0] == '*') p = ""; + } else { + q = strchr(p, *p == '{' ? '}' : ')'); + if (q != NULL) *q = NULLCHAR; + p++; + } + gameInfo.resultDetails = StrSave(p); + continue; + } + if (boardIndex >= forwardMostMove && + !(gameMode == IcsObserving && ics_gamenum == -1)) { + backwardMostMove = blackPlaysFirst ? 1 : 0; + return; + } + (void) CoordsToAlgebraic(boards[boardIndex], PosFlags(boardIndex), + EP_UNKNOWN, fromY, fromX, toY, toX, promoChar, + parseList[boardIndex]); + CopyBoard(boards[boardIndex + 1], boards[boardIndex]); + /* currentMoveString is set as a side-effect of yylex */ + strcpy(moveList[boardIndex], currentMoveString); + strcat(moveList[boardIndex], "\n"); + boardIndex++; + ApplyMove(fromX, fromY, toX, toY, promoChar, boards[boardIndex]); + switch (MateTest(boards[boardIndex], + PosFlags(boardIndex), EP_UNKNOWN)) { + case MT_NONE: + case MT_STALEMATE: + default: + break; + case MT_CHECK: + strcat(parseList[boardIndex - 1], "+"); + break; + case MT_CHECKMATE: + strcat(parseList[boardIndex - 1], "#"); + break; + } + } +} + + +/* Apply a move to the given board */ +void +ApplyMove(fromX, fromY, toX, toY, promoChar, board) + int fromX, fromY, toX, toY; + int promoChar; + Board board; +{ + ChessSquare captured = board[toY][toX]; + if (fromY == DROP_RANK) { + /* must be first */ + board[toY][toX] = (ChessSquare) fromX; + } else if (fromX == toX && fromY == toY) { + return; + } else if (fromY == 0 && fromX == 4 + && board[fromY][fromX] == WhiteKing + && toY == 0 && toX == 6) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = WhiteKing; + board[fromY][7] = EmptySquare; + board[toY][5] = WhiteRook; + } else if (fromY == 0 && fromX == 4 + && board[fromY][fromX] == WhiteKing + && toY == 0 && toX == 2) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = WhiteKing; + board[fromY][0] = EmptySquare; + board[toY][3] = WhiteRook; + } else if (fromY == 0 && fromX == 3 + && board[fromY][fromX] == WhiteKing + && toY == 0 && toX == 5) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = WhiteKing; + board[fromY][7] = EmptySquare; + board[toY][4] = WhiteRook; + } else if (fromY == 0 && fromX == 3 + && board[fromY][fromX] == WhiteKing + && toY == 0 && toX == 1) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = WhiteKing; + board[fromY][0] = EmptySquare; + board[toY][2] = WhiteRook; + } else if (board[fromY][fromX] == WhitePawn + && toY == 7) { + /* white pawn promotion */ + board[7][toX] = CharToPiece(ToUpper(promoChar)); + if (board[7][toX] == EmptySquare) { + board[7][toX] = WhiteQueen; + } + board[fromY][fromX] = EmptySquare; + } else if ((fromY == 4) + && (toX != fromX) + && (board[fromY][fromX] == WhitePawn) + && (board[toY][toX] == EmptySquare)) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = WhitePawn; + captured = board[toY - 1][toX]; + board[toY - 1][toX] = EmptySquare; + } else if (fromY == 7 && fromX == 4 + && board[fromY][fromX] == BlackKing + && toY == 7 && toX == 6) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = BlackKing; + board[fromY][7] = EmptySquare; + board[toY][5] = BlackRook; + } else if (fromY == 7 && fromX == 4 + && board[fromY][fromX] == BlackKing + && toY == 7 && toX == 2) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = BlackKing; + board[fromY][0] = EmptySquare; + board[toY][3] = BlackRook; + } else if (fromY == 7 && fromX == 3 + && board[fromY][fromX] == BlackKing + && toY == 7 && toX == 5) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = BlackKing; + board[fromY][7] = EmptySquare; + board[toY][4] = BlackRook; + } else if (fromY == 7 && fromX == 3 + && board[fromY][fromX] == BlackKing + && toY == 7 && toX == 1) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = BlackKing; + board[fromY][0] = EmptySquare; + board[toY][2] = BlackRook; + } else if (board[fromY][fromX] == BlackPawn + && toY == 0) { + /* black pawn promotion */ + board[0][toX] = CharToPiece(ToLower(promoChar)); + if (board[0][toX] == EmptySquare) { + board[0][toX] = BlackQueen; + } + board[fromY][fromX] = EmptySquare; + } else if ((fromY == 3) + && (toX != fromX) + && (board[fromY][fromX] == BlackPawn) + && (board[toY][toX] == EmptySquare)) { + board[fromY][fromX] = EmptySquare; + board[toY][toX] = BlackPawn; + captured = board[toY + 1][toX]; + board[toY + 1][toX] = EmptySquare; + } else { + board[toY][toX] = board[fromY][fromX]; + board[fromY][fromX] = EmptySquare; + } + if (gameInfo.variant == VariantCrazyhouse) { +#if 0 + /* !!A lot more code needs to be written to support holdings */ + if (fromY == DROP_RANK) { + /* Delete from holdings */ + if (holdings[(int) fromX] > 0) holdings[(int) fromX]--; + } + if (captured != EmptySquare) { + /* Add to holdings */ + if (captured < BlackPawn) { + holdings[(int)captured - (int)BlackPawn + (int)WhitePawn]++; + } else { + holdings[(int)captured - (int)WhitePawn + (int)BlackPawn]++; + } + } +#endif + } else if (gameInfo.variant == VariantAtomic) { + if (captured != EmptySquare) { + int y, x; + for (y = toY-1; y <= toY+1; y++) { + for (x = toX-1; x <= toX+1; x++) { + if (y >= 0 && y <= 7 && x >= 0 && x <= 7 && + board[y][x] != WhitePawn && board[y][x] != BlackPawn) { + board[y][x] = EmptySquare; + } + } + } + board[toY][toX] = EmptySquare; + } + } +} + +/* Updates forwardMostMove */ +void +MakeMove(fromX, fromY, toX, toY, promoChar) + int fromX, fromY, toX, toY; + int promoChar; +{ + forwardMostMove++; + if (forwardMostMove >= MAX_MOVES) { + DisplayFatalError("Game too long; increase MAX_MOVES and recompile", + 0, 1); + return; + } + SwitchClocks(); + timeRemaining[0][forwardMostMove] = whiteTimeRemaining; + timeRemaining[1][forwardMostMove] = blackTimeRemaining; + if (commentList[forwardMostMove] != NULL) { + free(commentList[forwardMostMove]); + commentList[forwardMostMove] = NULL; + } + CopyBoard(boards[forwardMostMove], boards[forwardMostMove - 1]); + ApplyMove(fromX, fromY, toX, toY, promoChar, boards[forwardMostMove]); + gameInfo.result = GameUnfinished; + if (gameInfo.resultDetails != NULL) { + free(gameInfo.resultDetails); + gameInfo.resultDetails = NULL; + } + CoordsToComputerAlgebraic(fromY, fromX, toY, toX, promoChar, + moveList[forwardMostMove - 1]); + (void) CoordsToAlgebraic(boards[forwardMostMove - 1], + PosFlags(forwardMostMove - 1), EP_UNKNOWN, + fromY, fromX, toY, toX, promoChar, + parseList[forwardMostMove - 1]); + switch (MateTest(boards[forwardMostMove], + PosFlags(forwardMostMove), EP_UNKNOWN)){ + case MT_NONE: + case MT_STALEMATE: + default: + break; + case MT_CHECK: + strcat(parseList[forwardMostMove - 1], "+"); + break; + case MT_CHECKMATE: + strcat(parseList[forwardMostMove - 1], "#"); + break; + } +} + +/* Updates currentMove if not pausing */ +void +ShowMove(fromX, fromY, toX, toY) +{ + int instant = (gameMode == PlayFromGameFile) ? + (matchMode || (appData.timeDelay == 0 && !pausing)) : pausing; + if (!pausing || gameMode == PlayFromGameFile || gameMode == AnalyzeFile) { + if (!instant) { + if (forwardMostMove == currentMove + 1) { + AnimateMove(boards[forwardMostMove - 1], + fromX, fromY, toX, toY); + } + if (appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } + } + currentMove = forwardMostMove; + } + + if (instant) return; + DisplayMove(currentMove - 1); + DrawPosition(FALSE, boards[currentMove]); + DisplayBothClocks(); + HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1); +} + + +void +InitChessProgram(cps) + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + if (appData.noChessProgram) return; + hintRequested = FALSE; + bookRequested = FALSE; + SendToProgram(cps->initString, cps); + if (gameInfo.variant != VariantNormal && + gameInfo.variant != VariantLoadable) { + char *v = VariantName(gameInfo.variant); + if (StrStr(cps->variants, v) == NULL) { + sprintf(buf, "Variant %s not supported by %s", v, cps->tidy); + DisplayFatalError(buf, 0, 1); + return; + } + sprintf(buf, "variant %s\n", VariantName(gameInfo.variant)); + SendToProgram(buf, cps); + } + if (cps->sendICS) { + sprintf(buf, "ics %s\n", appData.icsActive ? appData.icsHost : "-"); + SendToProgram(buf, cps); + } + cps->maybeThinking = FALSE; + cps->offeredDraw = 0; + if (!appData.icsActive) { + SendTimeControl(cps, movesPerSession, timeControl, + timeIncrement, appData.searchDepth, + searchTime); + } + if (appData.showThinking) { + SendToProgram("post\n", cps); + } + SendToProgram("hard\n", cps); + if (!appData.ponderNextMove) { + /* Warning: "easy" is a toggle in GNU Chess, so don't send + it without being sure what state we are in first. "hard" + is not a toggle, so that one is OK. + */ + SendToProgram("easy\n", cps); + } + if (cps->usePing) { + sprintf(buf, "ping %d\n", ++cps->lastPing); + SendToProgram(buf, cps); + } + cps->initDone = TRUE; +} + + +void +StartChessProgram(cps) + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + int err; + + if (appData.noChessProgram) return; + cps->initDone = FALSE; + + if (strcmp(cps->host, "localhost") == 0) { + err = StartChildProcess(cps->program, cps->dir, &cps->pr); + } else if (*appData.remoteShell == NULLCHAR) { + err = OpenRcmd(cps->host, appData.remoteUser, cps->program, &cps->pr); + } else { + if (*appData.remoteUser == NULLCHAR) { + sprintf(buf, "%s %s %s", appData.remoteShell, cps->host, + cps->program); + } else { + sprintf(buf, "%s %s -l %s %s", appData.remoteShell, + cps->host, appData.remoteUser, cps->program); + } + err = StartChildProcess(buf, "", &cps->pr); + } + + if (err != 0) { + sprintf(buf, "Startup failure on '%s'", cps->program); + DisplayFatalError(buf, err, 1); + cps->pr = NoProc; + cps->isr = NULL; + return; + } + + cps->isr = AddInputSource(cps->pr, TRUE, ReceiveFromProgram, cps); + if (cps->protocolVersion > 1) { + sprintf(buf, "xboard\nprotover %d\n", cps->protocolVersion); + SendToProgram(buf, cps); + } else { + SendToProgram("xboard\n", cps); + } +} + + +void +TwoMachinesEventIfReady P((void)) +{ + if (first.lastPing != first.lastPong) { + DisplayMessage("", "Waiting for first chess program"); + ScheduleDelayedEvent(TwoMachinesEventIfReady, 1000); + return; + } + if (second.lastPing != second.lastPong) { + DisplayMessage("", "Waiting for second chess program"); + ScheduleDelayedEvent(TwoMachinesEventIfReady, 1000); + return; + } + ThawUI(); + TwoMachinesEvent(); +} + +void +NextMatchGame P((void)) +{ + Reset(FALSE, TRUE); + if (*appData.loadGameFile != NULLCHAR) { + LoadGameFromFile(appData.loadGameFile, + appData.loadGameIndex, + appData.loadGameFile, FALSE); + } else if (*appData.loadPositionFile != NULLCHAR) { + LoadPositionFromFile(appData.loadPositionFile, + appData.loadPositionIndex, + appData.loadPositionFile); + } + TwoMachinesEventIfReady(); +} + +void +GameEnds(result, resultDetails, whosays) + ChessMove result; + char *resultDetails; + int whosays; +{ + GameMode nextGameMode; + int isIcsGame; + + if (appData.debugMode) { + fprintf(debugFP, "GameEnds(%d, %s, %d)\n", + result, resultDetails ? resultDetails : "(null)", whosays); + } + + if (appData.icsActive && whosays == GE_ENGINE) { + /* If we are playing on ICS, the server decides when the + game is over, but the engine can offer to draw, claim + a draw, or resign. + */ +#if ZIPPY + if (appData.zippyPlay && first.initDone) { + if (result == GameIsDrawn) { + /* In case draw still needs to be claimed */ + SendToICS(ics_prefix); + SendToICS("draw\n"); + } else if (StrCaseStr(resultDetails, "resign")) { + SendToICS(ics_prefix); + SendToICS("resign\n"); + } + } +#endif + return; + } + + /* If we're loading the game from a file, stop */ + if (whosays == GE_FILE) { + (void) StopLoadGameTimer(); + gameFileFP = NULL; + } + + /* Cancel draw offers */ + first.offeredDraw = second.offeredDraw = 0; + + /* If this is an ICS game, only ICS can really say it's done; + if not, anyone can. */ + isIcsGame = (gameMode == IcsPlayingWhite || + gameMode == IcsPlayingBlack || + gameMode == IcsObserving || + gameMode == IcsExamining); + + if (!isIcsGame || whosays == GE_ICS) { + /* OK -- not an ICS game, or ICS said it was done */ + StopClocks(); + if (!isIcsGame && !appData.noChessProgram) + SetUserThinkingEnables(); + + if (resultDetails != NULL) { + gameInfo.result = result; + gameInfo.resultDetails = StrSave(resultDetails); + + /* Tell program how game ended in case it is learning */ + if (gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack || + gameMode == TwoMachinesPlay || + gameMode == IcsPlayingWhite || + gameMode == IcsPlayingBlack || + gameMode == BeginningOfGame) { + char buf[MSG_SIZ]; + sprintf(buf, "result %s {%s}\n", PGNResult(result), + resultDetails); + if (first.pr != NoProc) { + SendToProgram(buf, &first); + } + if (second.pr != NoProc && + gameMode == TwoMachinesPlay) { + SendToProgram(buf, &second); + } + } + + /* display last move only if game was not loaded from file */ + if ((whosays != GE_FILE) && (currentMove == forwardMostMove)) + DisplayMove(currentMove - 1); + + if (forwardMostMove != 0) { + if (gameMode != PlayFromGameFile && gameMode != EditGame) { + if (*appData.saveGameFile != NULLCHAR) { + SaveGameToFile(appData.saveGameFile, TRUE); + } else if (appData.autoSaveGames) { + AutoSaveGame(); + } + if (*appData.savePositionFile != NULLCHAR) { + SavePositionToFile(appData.savePositionFile); + } + } + } + } + + if (appData.icsActive) { + if (appData.quietPlay && + (gameMode == IcsPlayingWhite || + gameMode == IcsPlayingBlack)) { + SendToICS(ics_prefix); + SendToICS("set shout 1\n"); + } + nextGameMode = IcsIdle; + ics_user_moved = FALSE; + /* clean up premove. It's ugly when the game has ended and the + * premove highlights are still on the board. + */ + if (gotPremove) { + gotPremove = FALSE; + ClearPremoveHighlights(); + DrawPosition(FALSE, boards[currentMove]); + } + if (whosays == GE_ICS) { + switch (result) { + case WhiteWins: + if (gameMode == IcsPlayingWhite) + PlayIcsWinSound(); + else if(gameMode == IcsPlayingBlack) + PlayIcsLossSound(); + break; + case BlackWins: + if (gameMode == IcsPlayingBlack) + PlayIcsWinSound(); + else if(gameMode == IcsPlayingWhite) + PlayIcsLossSound(); + break; + case GameIsDrawn: + PlayIcsDrawSound(); + break; + default: + PlayIcsUnfinishedSound(); + } + } + } else if (gameMode == EditGame || + gameMode == PlayFromGameFile || + gameMode == AnalyzeMode || + gameMode == AnalyzeFile) { + nextGameMode = gameMode; + } else { + nextGameMode = EndOfGame; + } + pausing = FALSE; + ModeHighlight(); + } else { + nextGameMode = gameMode; + } + + if (appData.noChessProgram) { + gameMode = nextGameMode; + ModeHighlight(); + return; + } + + if (first.reuse) { + /* Put first chess program into idle state */ + if (first.pr != NoProc && + (gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack || + gameMode == TwoMachinesPlay || + gameMode == IcsPlayingWhite || + gameMode == IcsPlayingBlack || + gameMode == BeginningOfGame)) { + SendToProgram("force\n", &first); + if (first.usePing) { + char buf[MSG_SIZ]; + sprintf(buf, "ping %d\n", ++first.lastPing); + SendToProgram(buf, &first); + } + } + } else if (result != GameUnfinished || nextGameMode == IcsIdle) { + /* Kill off first chess program */ + if (first.isr != NULL) + RemoveInputSource(first.isr); + first.isr = NULL; + + if (first.pr != NoProc) { + ExitAnalyzeMode(); + SendToProgram("quit\n", &first); + DestroyChildProcess(first.pr, first.useSigterm); + } + first.pr = NoProc; + } + if (second.reuse) { + /* Put second chess program into idle state */ + if (second.pr != NoProc && + gameMode == TwoMachinesPlay) { + SendToProgram("force\n", &second); + if (second.usePing) { + char buf[MSG_SIZ]; + sprintf(buf, "ping %d\n", ++second.lastPing); + SendToProgram(buf, &second); + } + } + } else if (result != GameUnfinished || nextGameMode == IcsIdle) { + /* Kill off second chess program */ + if (second.isr != NULL) + RemoveInputSource(second.isr); + second.isr = NULL; + + if (second.pr != NoProc) { + SendToProgram("quit\n", &second); + DestroyChildProcess(second.pr, second.useSigterm); + } + second.pr = NoProc; + } + + if (matchMode && gameMode == TwoMachinesPlay) { + switch (result) { + case WhiteWins: + if (first.twoMachinesColor[0] == 'w') { + first.matchWins++; + } else { + second.matchWins++; + } + break; + case BlackWins: + if (first.twoMachinesColor[0] == 'b') { + first.matchWins++; + } else { + second.matchWins++; + } + break; + default: + break; + } + if (matchGame < appData.matchGames) { + char *tmp; + tmp = first.twoMachinesColor; + first.twoMachinesColor = second.twoMachinesColor; + second.twoMachinesColor = tmp; + gameMode = nextGameMode; + matchGame++; + ScheduleDelayedEvent(NextMatchGame, 10000); + return; + } else { + char buf[MSG_SIZ]; + gameMode = nextGameMode; + sprintf(buf, "Match %s vs. %s: final score %d-%d-%d", + first.tidy, second.tidy, + first.matchWins, second.matchWins, + appData.matchGames - (first.matchWins + second.matchWins)); + DisplayFatalError(buf, 0, 0); + } + } + if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) && + !(nextGameMode == AnalyzeMode || nextGameMode == AnalyzeFile)) + ExitAnalyzeMode(); + gameMode = nextGameMode; + ModeHighlight(); +} + +/* Assumes program was just initialized (initString sent). + Leaves program in force mode. */ +void +FeedMovesToProgram(cps, upto) + ChessProgramState *cps; + int upto; +{ + int i; + + if (appData.debugMode) + fprintf(debugFP, "Feeding %smoves %d through %d to %s chess program\n", + startedFromSetupPosition ? "position and " : "", + backwardMostMove, upto, cps->which); + SendToProgram("force\n", cps); + if (startedFromSetupPosition) { + SendBoard(cps, backwardMostMove); + } + for (i = backwardMostMove; i < upto; i++) { + SendMoveToProgram(i, cps); + } +} + + +void +ResurrectChessProgram() +{ + /* The chess program may have exited. + If so, restart it and feed it all the moves made so far. */ + + if (appData.noChessProgram || first.pr != NoProc) return; + + StartChessProgram(&first); + InitChessProgram(&first); + FeedMovesToProgram(&first, currentMove); + + if (!first.sendTime) { + /* can't tell gnuchess what its clock should read, + so we bow to its notion. */ + ResetClocks(); + timeRemaining[0][currentMove] = whiteTimeRemaining; + timeRemaining[1][currentMove] = blackTimeRemaining; + } + + if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) && + first.analysisSupport) { + SendToProgram("analyze\n", &first); + first.analyzing = TRUE; + } +} + +/* + * Button procedures + */ +void +Reset(redraw, init) + int redraw, init; +{ + int i; + + if (appData.debugMode) { + fprintf(debugFP, "Reset(%d, %d) from gameMode %d\n", + redraw, init, gameMode); + } + + pausing = pauseExamInvalid = FALSE; + startedFromSetupPosition = blackPlaysFirst = FALSE; + firstMove = TRUE; + whiteFlag = blackFlag = FALSE; + userOfferedDraw = FALSE; + hintRequested = bookRequested = FALSE; + first.maybeThinking = FALSE; + second.maybeThinking = FALSE; + thinkOutput[0] = NULLCHAR; + lastHint[0] = NULLCHAR; + ClearGameInfo(&gameInfo); + gameInfo.variant = StringToVariant(appData.variant); + ics_user_moved = ics_clock_paused = FALSE; + ics_getting_history = H_FALSE; + ics_gamenum = -1; + white_holding[0] = black_holding[0] = NULLCHAR; + ClearProgramStats(); + + ResetFrontEnd(); + ClearHighlights(); + flipView = appData.flipView; + ClearPremoveHighlights(); + gotPremove = FALSE; + alarmSounded = FALSE; + + GameEnds((ChessMove) 0, NULL, GE_PLAYER); + ExitAnalyzeMode(); + gameMode = BeginningOfGame; + ModeHighlight(); + InitPosition(redraw); + for (i = 0; i < MAX_MOVES; i++) { + if (commentList[i] != NULL) { + free(commentList[i]); + commentList[i] = NULL; + } + } + ResetClocks(); + timeRemaining[0][0] = whiteTimeRemaining; + timeRemaining[1][0] = blackTimeRemaining; + if (first.pr == NULL) { + StartChessProgram(&first); + } + if (init) InitChessProgram(&first); + DisplayTitle(""); + DisplayMessage("", ""); + HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1); +} + +void +AutoPlayGameLoop() +{ + for (;;) { + if (!AutoPlayOneMove()) + return; + if (matchMode || appData.timeDelay == 0) + continue; + if (appData.timeDelay < 0 || gameMode == AnalyzeFile) + return; + StartLoadGameTimer((long)(1000.0 * appData.timeDelay)); + break; + } +} + + +int +AutoPlayOneMove() +{ + int fromX, fromY, toX, toY; + + if (appData.debugMode) { + fprintf(debugFP, "AutoPlayOneMove(): current %d\n", currentMove); + } + + if (gameMode != PlayFromGameFile) + return FALSE; + + if (currentMove >= forwardMostMove) { + gameMode = EditGame; + ModeHighlight(); + return FALSE; + } + + toX = moveList[currentMove][2] - 'a'; + toY = moveList[currentMove][3] - '1'; + + if (moveList[currentMove][1] == '@') { + if (appData.highlightLastMove) { + SetHighlights(-1, -1, toX, toY); + } + } else { + fromX = moveList[currentMove][0] - 'a'; + fromY = moveList[currentMove][1] - '1'; + AnimateMove(boards[currentMove], fromX, fromY, toX, toY); + + if (appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } + } + DisplayMove(currentMove); + SendMoveToProgram(currentMove++, &first); + DisplayBothClocks(); + DrawPosition(FALSE, boards[currentMove]); + if (commentList[currentMove] != NULL) { + DisplayComment(currentMove - 1, commentList[currentMove]); + } + return TRUE; +} + + +int +LoadGameOneMove(readAhead) + ChessMove readAhead; +{ + int fromX = 0, fromY = 0, toX = 0, toY = 0, done; + char promoChar = NULLCHAR; + ChessMove moveType; + char move[MSG_SIZ]; + char *p, *q; + + if (gameMode != PlayFromGameFile && gameMode != AnalyzeFile && + gameMode != AnalyzeMode && gameMode != Training) { + gameFileFP = NULL; + return FALSE; + } + + yyboardindex = forwardMostMove; + if (readAhead != (ChessMove)0) { + moveType = readAhead; + } else { + if (gameFileFP == NULL) + return FALSE; + moveType = (ChessMove) yylex(); + } + + done = FALSE; + switch (moveType) { + case Comment: + if (appData.debugMode) + fprintf(debugFP, "Parsed Comment: %s\n", yy_text); + p = yy_text; + if (*p == '{' || *p == '[' || *p == '(') { + p[strlen(p) - 1] = NULLCHAR; + p++; + } + + /* append the comment but don't display it */ + while (*p == '\n') p++; + AppendComment(currentMove, p); + return TRUE; + + case WhiteCapturesEnPassant: + case BlackCapturesEnPassant: + case WhitePromotionQueen: + case BlackPromotionQueen: + case WhitePromotionRook: + case BlackPromotionRook: + case WhitePromotionBishop: + case BlackPromotionBishop: + case WhitePromotionKnight: + case BlackPromotionKnight: + case WhitePromotionKing: + case BlackPromotionKing: + case NormalMove: + case WhiteKingSideCastle: + case WhiteQueenSideCastle: + case BlackKingSideCastle: + case BlackQueenSideCastle: + case WhiteKingSideCastleWild: + case WhiteQueenSideCastleWild: + case BlackKingSideCastleWild: + case BlackQueenSideCastleWild: + if (appData.debugMode) + fprintf(debugFP, "Parsed %s into %s\n", yy_text, currentMoveString); + fromX = currentMoveString[0] - 'a'; + fromY = currentMoveString[1] - '1'; + toX = currentMoveString[2] - 'a'; + toY = currentMoveString[3] - '1'; + promoChar = currentMoveString[4]; + break; + + case WhiteDrop: + case BlackDrop: + if (appData.debugMode) + fprintf(debugFP, "Parsed %s into %s\n", yy_text, currentMoveString); + fromX = moveType == WhiteDrop ? + (int) CharToPiece(ToUpper(currentMoveString[0])) : + (int) CharToPiece(ToLower(currentMoveString[0])); + fromY = DROP_RANK; + toX = currentMoveString[2] - 'a'; + toY = currentMoveString[3] - '1'; + break; + + case WhiteWins: + case BlackWins: + case GameIsDrawn: + case GameUnfinished: + if (appData.debugMode) + fprintf(debugFP, "Parsed game end: %s\n", yy_text); + p = strchr(yy_text, '{'); + if (p == NULL) p = strchr(yy_text, '('); + if (p == NULL) { + p = yy_text; + if (p[0] == '0' || p[0] == '1' || p[0] == '*') p = ""; + } else { + q = strchr(p, *p == '{' ? '}' : ')'); + if (q != NULL) *q = NULLCHAR; + p++; + } + GameEnds(moveType, p, GE_FILE); + done = TRUE; + if (cmailMsgLoaded) { + ClearHighlights(); + flipView = WhiteOnMove(currentMove); + if (moveType == GameUnfinished) flipView = !flipView; + if (appData.debugMode) + fprintf(debugFP, "Setting flipView to %d\n", flipView) ; + } + break; + + case (ChessMove) 0: /* end of file */ + if (appData.debugMode) + fprintf(debugFP, "Parser hit end of file\n"); + switch (MateTest(boards[currentMove], PosFlags(currentMove), + EP_UNKNOWN)) { + case MT_NONE: + case MT_CHECK: + break; + case MT_CHECKMATE: + if (WhiteOnMove(currentMove)) { + GameEnds(BlackWins, "Black mates", GE_FILE); + } else { + GameEnds(WhiteWins, "White mates", GE_FILE); + } + break; + case MT_STALEMATE: + GameEnds(GameIsDrawn, "Stalemate", GE_FILE); + break; + } + done = TRUE; + break; + + case MoveNumberOne: + if (lastLoadGameStart == GNUChessGame) { + /* GNUChessGames have numbers, but they aren't move numbers */ + if (appData.debugMode) + fprintf(debugFP, "Parser ignoring: '%s' (%d)\n", + yy_text, (int) moveType); + return LoadGameOneMove((ChessMove)0); /* tail recursion */ + } + /* else fall thru */ + + case XBoardGame: + case GNUChessGame: + case PGNTag: + /* Reached start of next game in file */ + if (appData.debugMode) + fprintf(debugFP, "Parsed start of next game: %s\n", yy_text); + switch (MateTest(boards[currentMove], PosFlags(currentMove), + EP_UNKNOWN)) { + case MT_NONE: + case MT_CHECK: + break; + case MT_CHECKMATE: + if (WhiteOnMove(currentMove)) { + GameEnds(BlackWins, "Black mates", GE_FILE); + } else { + GameEnds(WhiteWins, "White mates", GE_FILE); + } + break; + case MT_STALEMATE: + GameEnds(GameIsDrawn, "Stalemate", GE_FILE); + break; + } + done = TRUE; + break; + + case PositionDiagram: /* should not happen; ignore */ + case ElapsedTime: /* ignore */ + case NAG: /* ignore */ + if (appData.debugMode) + fprintf(debugFP, "Parser ignoring: '%s' (%d)\n", + yy_text, (int) moveType); + return LoadGameOneMove((ChessMove)0); /* tail recursion */ + + case IllegalMove: + if (appData.testLegality) { + if (appData.debugMode) + fprintf(debugFP, "Parsed IllegalMove: %s\n", yy_text); + sprintf(move, "Illegal move: %d.%s%s", + (forwardMostMove / 2) + 1, + WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text); + DisplayError(move, 0); + done = TRUE; + } else { + if (appData.debugMode) + fprintf(debugFP, "Parsed %s into IllegalMove %s\n", + yy_text, currentMoveString); + fromX = currentMoveString[0] - 'a'; + fromY = currentMoveString[1] - '1'; + toX = currentMoveString[2] - 'a'; + toY = currentMoveString[3] - '1'; + promoChar = currentMoveString[4]; + } + break; + + case AmbiguousMove: + if (appData.debugMode) + fprintf(debugFP, "Parsed AmbiguousMove: %s\n", yy_text); + sprintf(move, "Ambiguous move: %d.%s%s", + (forwardMostMove / 2) + 1, + WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text); + DisplayError(move, 0); + done = TRUE; + break; + + default: + case ImpossibleMove: + if (appData.debugMode) + fprintf(debugFP, "Parsed ImpossibleMove: %s\n", yy_text); + sprintf(move, "Illegal move: %d.%s%s", + (forwardMostMove / 2) + 1, + WhiteOnMove(forwardMostMove) ? " " : ".. ", yy_text); + DisplayError(move, 0); + done = TRUE; + break; + } + + if (done) { + if (appData.matchMode || (appData.timeDelay == 0 && !pausing)) { + DrawPosition(FALSE, boards[currentMove]); + DisplayBothClocks(); + if (!appData.matchMode && commentList[currentMove] != NULL) + DisplayComment(currentMove - 1, commentList[currentMove]); + } + (void) StopLoadGameTimer(); + gameFileFP = NULL; + cmailOldMove = forwardMostMove; + return FALSE; + } else { + /* currentMoveString is set as a side-effect of yylex */ + strcat(currentMoveString, "\n"); + strcpy(moveList[forwardMostMove], currentMoveString); + + thinkOutput[0] = NULLCHAR; + MakeMove(fromX, fromY, toX, toY, promoChar); + currentMove = forwardMostMove; + return TRUE; + } +} + +/* Load the nth game from the given file */ +int +LoadGameFromFile(filename, n, title, useList) + char *filename; + int n; + char *title; + /*Boolean*/ int useList; +{ + FILE *f; + char buf[MSG_SIZ]; + + if (strcmp(filename, "-") == 0) { + f = stdin; + title = "stdin"; + } else { + f = fopen(filename, "rb"); + if (f == NULL) { + sprintf(buf, "Can't open \"%s\"", filename); + DisplayError(buf, errno); + return FALSE; + } + } + if (fseek(f, 0, 0) == -1) { + /* f is not seekable; probably a pipe */ + useList = FALSE; + } + if (useList && n == 0) { + int error = GameListBuild(f); + if (error) { + DisplayError("Cannot build game list", error); + } else if (!ListEmpty(&gameList) && + ((ListGame *) gameList.tailPred)->number > 1) { + GameListPopUp(f, title); + return TRUE; + } + GameListDestroy(); + n = 1; + } + if (n == 0) n = 1; + return LoadGame(f, n, title, FALSE); +} + + +void +MakeRegisteredMove() +{ + int fromX, fromY, toX, toY; + char promoChar; + if (cmailMoveRegistered[lastLoadGameNumber - 1]) { + switch (cmailMoveType[lastLoadGameNumber - 1]) { + case CMAIL_MOVE: + case CMAIL_DRAW: + if (appData.debugMode) + fprintf(debugFP, "Restoring %s for game %d\n", + cmailMove[lastLoadGameNumber - 1], lastLoadGameNumber); + + thinkOutput[0] = NULLCHAR; + strcpy(moveList[currentMove], cmailMove[lastLoadGameNumber - 1]); + fromX = cmailMove[lastLoadGameNumber - 1][0] - 'a'; + fromY = cmailMove[lastLoadGameNumber - 1][1] - '1'; + toX = cmailMove[lastLoadGameNumber - 1][2] - 'a'; + toY = cmailMove[lastLoadGameNumber - 1][3] - '1'; + promoChar = cmailMove[lastLoadGameNumber - 1][4]; + MakeMove(fromX, fromY, toX, toY, promoChar); + ShowMove(fromX, fromY, toX, toY); + + switch (MateTest(boards[currentMove], PosFlags(currentMove), + EP_UNKNOWN)) { + case MT_NONE: + case MT_CHECK: + break; + + case MT_CHECKMATE: + if (WhiteOnMove(currentMove)) { + GameEnds(BlackWins, "Black mates", GE_PLAYER); + } else { + GameEnds(WhiteWins, "White mates", GE_PLAYER); + } + break; + + case MT_STALEMATE: + GameEnds(GameIsDrawn, "Stalemate", GE_PLAYER); + break; + } + + break; + + case CMAIL_RESIGN: + if (WhiteOnMove(currentMove)) { + GameEnds(BlackWins, "White resigns", GE_PLAYER); + } else { + GameEnds(WhiteWins, "Black resigns", GE_PLAYER); + } + break; + + case CMAIL_ACCEPT: + GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER); + break; + + default: + break; + } + } + + return; +} + +/* Wrapper around LoadGame for use when a Cmail message is loaded */ +int +CmailLoadGame(f, gameNumber, title, useList) + FILE *f; + int gameNumber; + char *title; + int useList; +{ + int retVal; + + if (gameNumber > nCmailGames) { + DisplayError("No more games in this message", 0); + return FALSE; + } + if (f == lastLoadGameFP) { + int offset = gameNumber - lastLoadGameNumber; + if (offset == 0) { + cmailMsg[0] = NULLCHAR; + if (cmailMoveRegistered[lastLoadGameNumber - 1]) { + cmailMoveRegistered[lastLoadGameNumber - 1] = FALSE; + nCmailMovesRegistered--; + } + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE; + if (cmailResult[lastLoadGameNumber - 1] == CMAIL_NEW_RESULT) { + cmailResult[lastLoadGameNumber - 1] = CMAIL_NOT_RESULT; + } + } else { + if (! RegisterMove()) return FALSE; + } + } + + retVal = LoadGame(f, gameNumber, title, useList); + + /* Make move registered during previous look at this game, if any */ + MakeRegisteredMove(); + + if (cmailCommentList[lastLoadGameNumber - 1] != NULL) { + commentList[currentMove] + = StrSave(cmailCommentList[lastLoadGameNumber - 1]); + DisplayComment(currentMove - 1, commentList[currentMove]); + } + + return retVal; +} + +/* Support for LoadNextGame, LoadPreviousGame, ReloadSameGame */ +int +ReloadGame(offset) + int offset; +{ + int gameNumber = lastLoadGameNumber + offset; + if (lastLoadGameFP == NULL) { + DisplayError("No game has been loaded yet", 0); + return FALSE; + } + if (gameNumber <= 0) { + DisplayError("Can't back up any further", 0); + return FALSE; + } + if (cmailMsgLoaded) { + return CmailLoadGame(lastLoadGameFP, gameNumber, + lastLoadGameTitle, lastLoadGameUseList); + } else { + return LoadGame(lastLoadGameFP, gameNumber, + lastLoadGameTitle, lastLoadGameUseList); + } +} + + + +/* Load the nth game from open file f */ +int +LoadGame(f, gameNumber, title, useList) + FILE *f; + int gameNumber; + char *title; + int useList; +{ + ChessMove cm; + char buf[MSG_SIZ]; + int gn = gameNumber; + ListGame *lg = NULL; + int numPGNTags = 0; + int err; + GameMode oldGameMode; + + if (appData.debugMode) + fprintf(debugFP, "LoadGame(): on entry, gameMode %d\n", gameMode); + + if (gameMode == Training ) + SetTrainingModeOff(); + + oldGameMode = gameMode; + if (gameMode != BeginningOfGame) { + Reset(FALSE, TRUE); + } + + gameFileFP = f; + if (lastLoadGameFP != NULL && lastLoadGameFP != f) { + fclose(lastLoadGameFP); + } + + if (useList) { + lg = (ListGame *) ListElem(&gameList, gameNumber-1); + + if (lg) { + fseek(f, lg->offset, 0); + GameListHighlight(gameNumber); + gn = 1; + } + else { + DisplayError("Game number out of range", 0); + return FALSE; + } + } else { + GameListDestroy(); + if (fseek(f, 0, 0) == -1) { + if (f == lastLoadGameFP ? + gameNumber == lastLoadGameNumber + 1 : + gameNumber == 1) { + gn = 1; + } else { + DisplayError("Can't seek on game file", 0); + return FALSE; + } + } + } + lastLoadGameFP = f; + lastLoadGameNumber = gameNumber; + strcpy(lastLoadGameTitle, title); + lastLoadGameUseList = useList; + + yynewfile(f); + + + if (lg && lg->gameInfo.white && lg->gameInfo.black) { + sprintf(buf, "%s vs. %s", lg->gameInfo.white, + lg->gameInfo.black); + DisplayTitle(buf); + } else if (*title != NULLCHAR) { + if (gameNumber > 1) { + sprintf(buf, "%s %d", title, gameNumber); + DisplayTitle(buf); + } else { + DisplayTitle(title); + } + } + + if (gameMode != AnalyzeFile && gameMode != AnalyzeMode) { + gameMode = PlayFromGameFile; + ModeHighlight(); + } + + currentMove = forwardMostMove = backwardMostMove = 0; + CopyBoard(boards[0], initialPosition); + StopClocks(); + + /* + * Skip the first gn-1 games in the file. + * Also skip over anything that precedes an identifiable + * start of game marker, to avoid being confused by + * garbage at the start of the file. Currently + * recognized start of game markers are the move number "1", + * the pattern "gnuchess .* game", the pattern + * "^[#;%] [^ ]* game file", and a PGN tag block. + * A game that starts with one of the latter two patterns + * will also have a move number 1, possibly + * following a position diagram. + */ + cm = lastLoadGameStart = (ChessMove) 0; + yyskipmoves = TRUE; + while (gn > 0) { + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + yyskipmoves = FALSE; + switch (cm) { + case (ChessMove) 0: + if (cmailMsgLoaded) { + nCmailGames = CMAIL_MAX_GAMES - gn; + } else { + Reset(TRUE, TRUE); + DisplayError("Game not found in file", 0); + } + yyskipmoves = FALSE; + return FALSE; + + case GNUChessGame: + case XBoardGame: + gn--; + lastLoadGameStart = cm; + break; + + case MoveNumberOne: + switch (lastLoadGameStart) { + case GNUChessGame: + case XBoardGame: + case PGNTag: + break; + case MoveNumberOne: + case (ChessMove) 0: + gn--; /* count this game */ + lastLoadGameStart = cm; + break; + default: + /* impossible */ + break; + } + break; + + case PGNTag: + switch (lastLoadGameStart) { + case GNUChessGame: + case PGNTag: + case MoveNumberOne: + case (ChessMove) 0: + gn--; /* count this game */ + lastLoadGameStart = cm; + break; + case XBoardGame: + lastLoadGameStart = cm; /* game counted already */ + break; + default: + /* impossible */ + break; + } + if (gn > 0) { + do { + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + } while (cm == PGNTag || cm == Comment); + } + break; + + case WhiteWins: + case BlackWins: + case GameIsDrawn: + if (cmailMsgLoaded && (CMAIL_MAX_GAMES == lastLoadGameNumber)) { + if ( cmailResult[CMAIL_MAX_GAMES - gn - 1] + != CMAIL_OLD_RESULT) { + nCmailResults ++ ; + cmailResult[ CMAIL_MAX_GAMES + - gn - 1] = CMAIL_OLD_RESULT; + } + } + break; + + default: + break; + } + } + yyskipmoves = FALSE; + + if (appData.debugMode) + fprintf(debugFP, "Parsed game start '%s' (%d)\n", yy_text, (int) cm); + + if (cm == XBoardGame) { + /* Skip any header junk before position diagram and/or move 1 */ + for (;;) { + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + + if (cm == (ChessMove) 0 || + cm == GNUChessGame || cm == XBoardGame) { + /* Empty game; pretend end-of-file and handle later */ + cm = (ChessMove) 0; + break; + } + + if (cm == MoveNumberOne || cm == PositionDiagram || + cm == PGNTag || cm == Comment) + break; + } + } else if (cm == GNUChessGame) { + if (gameInfo.event != NULL) { + free(gameInfo.event); + } + gameInfo.event = StrSave(yy_text); + } + + startedFromSetupPosition = FALSE; + while (cm == PGNTag) { + if (appData.debugMode) + fprintf(debugFP, "Parsed PGNTag: %s\n", yy_text); + err = ParsePGNTag(yy_text, &gameInfo); + if (!err) numPGNTags++; + + if (gameInfo.fen != NULL) { + Board initial_position; + startedFromSetupPosition = TRUE; + if (!ParseFEN(initial_position, &blackPlaysFirst, gameInfo.fen)) { + Reset(TRUE, TRUE); + DisplayError("Bad FEN position in file", 0); + return FALSE; + } + CopyBoard(boards[0], initial_position); + if (blackPlaysFirst) { + currentMove = forwardMostMove = backwardMostMove = 1; + CopyBoard(boards[1], initial_position); + strcpy(moveList[0], ""); + strcpy(parseList[0], ""); + timeRemaining[0][1] = whiteTimeRemaining; + timeRemaining[1][1] = blackTimeRemaining; + if (commentList[0] != NULL) { + commentList[1] = commentList[0]; + commentList[0] = NULL; + } + } else { + currentMove = forwardMostMove = backwardMostMove = 0; + } + yyboardindex = forwardMostMove; + free(gameInfo.fen); + gameInfo.fen = NULL; + } + + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + + /* Handle comments interspersed among the tags */ + while (cm == Comment) { + char *p; + if (appData.debugMode) + fprintf(debugFP, "Parsed Comment: %s\n", yy_text); + p = yy_text; + if (*p == '{' || *p == '[' || *p == '(') { + p[strlen(p) - 1] = NULLCHAR; + p++; + } + while (*p == '\n') p++; + AppendComment(currentMove, p); + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + } + } + + /* don't rely on existence of Event tag since if game was + * pasted from clipboard the Event tag may not exist + */ + if (numPGNTags > 0){ + char *tags; + if (gameInfo.variant == VariantNormal) { + gameInfo.variant = StringToVariant(gameInfo.event); + } + if (!matchMode) { + tags = PGNTags(&gameInfo); + TagsPopUp(tags, CmailMsg()); + free(tags); + } + } else { + /* Make something up, but don't display it now */ + SetGameInfo(); + TagsPopDown(); + } + + if (cm == PositionDiagram) { + int i, j; + char *p; + Board initial_position; + + if (appData.debugMode) + fprintf(debugFP, "Parsed PositionDiagram: %s\n", yy_text); + + if (!startedFromSetupPosition) { + p = yy_text; + for (i = BOARD_SIZE - 1; i >= 0; i--) + for (j = 0; j < BOARD_SIZE; p++) + switch (*p) { + case '[': + case '-': + case ' ': + case '\t': + case '\n': + case '\r': + break; + default: + initial_position[i][j++] = CharToPiece(*p); + break; + } + while (*p == ' ' || *p == '\t' || + *p == '\n' || *p == '\r') p++; + + if (strncmp(p, "black", strlen("black"))==0) + blackPlaysFirst = TRUE; + else + blackPlaysFirst = FALSE; + startedFromSetupPosition = TRUE; + + CopyBoard(boards[0], initial_position); + if (blackPlaysFirst) { + currentMove = forwardMostMove = backwardMostMove = 1; + CopyBoard(boards[1], initial_position); + strcpy(moveList[0], ""); + strcpy(parseList[0], ""); + timeRemaining[0][1] = whiteTimeRemaining; + timeRemaining[1][1] = blackTimeRemaining; + if (commentList[0] != NULL) { + commentList[1] = commentList[0]; + commentList[0] = NULL; + } + } else { + currentMove = forwardMostMove = backwardMostMove = 0; + } + } + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + } + + if (first.pr == NoProc) { + StartChessProgram(&first); + } + InitChessProgram(&first); + SendToProgram("force\n", &first); + if (startedFromSetupPosition) { + SendBoard(&first, forwardMostMove); + DisplayBothClocks(); + } + + while (cm == Comment) { + char *p; + if (appData.debugMode) + fprintf(debugFP, "Parsed Comment: %s\n", yy_text); + p = yy_text; + if (*p == '{' || *p == '[' || *p == '(') { + p[strlen(p) - 1] = NULLCHAR; + p++; + } + while (*p == '\n') p++; + AppendComment(currentMove, p); + yyboardindex = forwardMostMove; + cm = (ChessMove) yylex(); + } + + if (cm == (ChessMove) 0 || cm == WhiteWins || cm == BlackWins || + cm == GameIsDrawn || cm == GameUnfinished) { + DisplayMessage("", "No moves in game"); + if (cmailMsgLoaded) { + if (appData.debugMode) + fprintf(debugFP, "Setting flipView to %d.\n", FALSE); + ClearHighlights(); + flipView = FALSE; + } + DrawPosition(FALSE, boards[currentMove]); + DisplayBothClocks(); + gameMode = EditGame; + ModeHighlight(); + gameFileFP = NULL; + cmailOldMove = 0; + return TRUE; + } + + if (commentList[currentMove] != NULL) { + if (!matchMode && (pausing || appData.timeDelay != 0)) { + DisplayComment(currentMove - 1, commentList[currentMove]); + } + } + if (!matchMode && appData.timeDelay != 0) + DrawPosition(FALSE, boards[currentMove]); + + if (gameMode == AnalyzeFile || gameMode == AnalyzeMode) { + programStats.ok_to_send = 1; + } + + /* if the first token after the PGN tags is a move + * and not move number 1, retrieve it from the parser + */ + if (cm != MoveNumberOne) + LoadGameOneMove(cm); + + /* load the remaining moves from the file */ + while (LoadGameOneMove((ChessMove)0)) { + timeRemaining[0][forwardMostMove] = whiteTimeRemaining; + timeRemaining[1][forwardMostMove] = blackTimeRemaining; + } + + /* rewind to the start of the game */ + currentMove = backwardMostMove; + + HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1); + + if (oldGameMode == AnalyzeFile || + oldGameMode == AnalyzeMode) { + AnalyzeFileEvent(); + } + + if (matchMode || appData.timeDelay == 0) { + ToEndEvent(); + gameMode = EditGame; + ModeHighlight(); + } else if (appData.timeDelay > 0) { + AutoPlayGameLoop(); + } + + if (appData.debugMode) + fprintf(debugFP, "LoadGame(): on exit, gameMode %d\n", gameMode); + return TRUE; +} + +/* Support for LoadNextPosition, LoadPreviousPosition, ReloadSamePosition */ +int +ReloadPosition(offset) + int offset; +{ + int positionNumber = lastLoadPositionNumber + offset; + if (lastLoadPositionFP == NULL) { + DisplayError("No position has been loaded yet", 0); + return FALSE; + } + if (positionNumber <= 0) { + DisplayError("Can't back up any further", 0); + return FALSE; + } + return LoadPosition(lastLoadPositionFP, positionNumber, + lastLoadPositionTitle); +} + +/* Load the nth position from the given file */ +int +LoadPositionFromFile(filename, n, title) + char *filename; + int n; + char *title; +{ + FILE *f; + char buf[MSG_SIZ]; + + if (strcmp(filename, "-") == 0) { + return LoadPosition(stdin, n, "stdin"); + } else { + f = fopen(filename, "rb"); + if (f == NULL) { + sprintf(buf, "Can't open \"%s\"", filename); + DisplayError(buf, errno); + return FALSE; + } else { + return LoadPosition(f, n, title); + } + } +} + +/* Load the nth position from the given open file, and close it */ +int +LoadPosition(f, positionNumber, title) + FILE *f; + int positionNumber; + char *title; +{ + char *p, line[MSG_SIZ]; + Board initial_position; + int i, j, fenMode, pn; + + if (gameMode == Training ) + SetTrainingModeOff(); + + if (gameMode != BeginningOfGame) { + Reset(FALSE, TRUE); + } + if (lastLoadPositionFP != NULL && lastLoadPositionFP != f) { + fclose(lastLoadPositionFP); + } + if (positionNumber == 0) positionNumber = 1; + lastLoadPositionFP = f; + lastLoadPositionNumber = positionNumber; + strcpy(lastLoadPositionTitle, title); + if (first.pr == NoProc) { + StartChessProgram(&first); + InitChessProgram(&first); + } + pn = positionNumber; + if (positionNumber < 0) { + /* Negative position number means to seek to that byte offset */ + if (fseek(f, -positionNumber, 0) == -1) { + DisplayError("Can't seek on position file", 0); + return FALSE; + }; + pn = 1; + } else { + if (fseek(f, 0, 0) == -1) { + if (f == lastLoadPositionFP ? + positionNumber == lastLoadPositionNumber + 1 : + positionNumber == 1) { + pn = 1; + } else { + DisplayError("Can't seek on position file", 0); + return FALSE; + } + } + } + /* See if this file is FEN or old-style xboard */ + if (fgets(line, MSG_SIZ, f) == NULL) { + DisplayError("Position not found in file", 0); + return FALSE; + } + switch (line[0]) { + case '#': case 'x': + default: + fenMode = FALSE; + break; + case 'p': case 'n': case 'b': case 'r': case 'q': case 'k': + case 'P': case 'N': case 'B': case 'R': case 'Q': case 'K': + case '1': case '2': case '3': case '4': case '5': case '6': + case '7': case '8': + fenMode = TRUE; + break; + } + + if (pn >= 2) { + if (fenMode || line[0] == '#') pn--; + while (pn > 0) { + /* skip postions before number pn */ + if (fgets(line, MSG_SIZ, f) == NULL) { + DisplayError("Position not found in file", 0); + return FALSE; + } + if (fenMode || line[0] == '#') pn--; + } + } + + if (fenMode) { + if (!ParseFEN(initial_position, &blackPlaysFirst, line)) { + DisplayError("Bad FEN position in file", 0); + return FALSE; + } + } else { + (void) fgets(line, MSG_SIZ, f); + (void) fgets(line, MSG_SIZ, f); + + for (i = BOARD_SIZE - 1; i >= 0; i--) { + (void) fgets(line, MSG_SIZ, f); + for (p = line, j = 0; j < BOARD_SIZE; p++) { + if (*p == ' ') + continue; + initial_position[i][j++] = CharToPiece(*p); + } + } + + blackPlaysFirst = FALSE; + if (!feof(f)) { + (void) fgets(line, MSG_SIZ, f); + if (strncmp(line, "black", strlen("black"))==0) + blackPlaysFirst = TRUE; + } + } + startedFromSetupPosition = TRUE; + + SendToProgram("force\n", &first); + CopyBoard(boards[0], initial_position); + if (blackPlaysFirst) { + currentMove = forwardMostMove = backwardMostMove = 1; + strcpy(moveList[0], ""); + strcpy(parseList[0], ""); + CopyBoard(boards[1], initial_position); + DisplayMessage("", "Black to play"); + } else { + currentMove = forwardMostMove = backwardMostMove = 0; + DisplayMessage("", "White to play"); + } + SendBoard(&first, forwardMostMove); + + if (positionNumber > 1) { + sprintf(line, "%s %d", title, positionNumber); + DisplayTitle(line); + } else { + DisplayTitle(title); + } + gameMode = EditGame; + ModeHighlight(); + ResetClocks(); + timeRemaining[0][1] = whiteTimeRemaining; + timeRemaining[1][1] = blackTimeRemaining; + DrawPosition(FALSE, boards[currentMove]); + + return TRUE; +} + + +void +CopyPlayerNameIntoFileName(dest, src) + char **dest, *src; +{ + while (*src != NULLCHAR && *src != ',') { + if (*src == ' ') { + *(*dest)++ = '_'; + src++; + } else { + *(*dest)++ = *src++; + } + } +} + +char *DefaultFileName(ext) + char *ext; +{ + static char def[MSG_SIZ]; + char *p; + + if (gameInfo.white != NULL && gameInfo.white[0] != '-') { + p = def; + CopyPlayerNameIntoFileName(&p, gameInfo.white); + *p++ = '-'; + CopyPlayerNameIntoFileName(&p, gameInfo.black); + *p++ = '.'; + strcpy(p, ext); + } else { + def[0] = NULLCHAR; + } + return def; +} + +/* Save the current game to the given file */ +int +SaveGameToFile(filename, append) + char *filename; + int append; +{ + FILE *f; + char buf[MSG_SIZ]; + + if (strcmp(filename, "-") == 0) { + return SaveGame(stdout, 0, NULL); + } else { + f = fopen(filename, append ? "a" : "w"); + if (f == NULL) { + sprintf(buf, "Can't open \"%s\"", filename); + DisplayError(buf, errno); + return FALSE; + } else { + return SaveGame(f, 0, NULL); + } + } +} + +char * +SavePart(str) + char *str; +{ + static char buf[MSG_SIZ]; + char *p; + + p = strchr(str, ' '); + if (p == NULL) return str; + strncpy(buf, str, p - str); + buf[p - str] = NULLCHAR; + return buf; +} + +#define PGN_MAX_LINE 75 + +/* Save game in PGN style and close the file */ +int +SaveGamePGN(f) + FILE *f; +{ + int i, offset, linelen, newblock; + time_t tm; + char *movetext; + char numtext[32]; + int movelen, numlen, blank; + + tm = time((time_t *) NULL); + + PrintPGNTags(f, &gameInfo); + + if (backwardMostMove > 0 || startedFromSetupPosition) { + char *fen = PositionToFEN(backwardMostMove); + fprintf(f, "[FEN \"%s\"]\n[SetUp \"1\"]\n", fen); + fprintf(f, "\n{--------------\n"); + PrintPosition(f, backwardMostMove); + fprintf(f, "--------------}\n"); + free(fen); + } else { + fprintf(f, "\n"); + } + + i = backwardMostMove; + offset = backwardMostMove & (~1L); /* output move numbers start at 1 */ + linelen = 0; + newblock = TRUE; + + while (i < forwardMostMove) { + /* Print comments preceding this move */ + if (commentList[i] != NULL) { + if (linelen > 0) fprintf(f, "\n"); + fprintf(f, "{\n%s}\n", commentList[i]); + linelen = 0; + newblock = TRUE; + } + + /* Format move number */ + if ((i % 2) == 0) { + sprintf(numtext, "%d.", (i - offset)/2 + 1); + } else { + if (newblock) { + sprintf(numtext, "%d...", (i - offset)/2 + 1); + } else { + numtext[0] = NULLCHAR; + } + } + numlen = strlen(numtext); + newblock = FALSE; + + /* Print move number */ + blank = linelen > 0 && numlen > 0; + if (linelen + (blank ? 1 : 0) + numlen > PGN_MAX_LINE) { + fprintf(f, "\n"); + linelen = 0; + blank = 0; + } + if (blank) { + fprintf(f, " "); + linelen++; + } + fprintf(f, numtext); + linelen += numlen; + + /* Get move */ + movetext = SavePart(parseList[i]); + movelen = strlen(movetext); + + /* Print move */ + blank = linelen > 0 && movelen > 0; + if (linelen + (blank ? 1 : 0) + movelen > PGN_MAX_LINE) { + fprintf(f, "\n"); + linelen = 0; + blank = 0; + } + if (blank) { + fprintf(f, " "); + linelen++; + } + fprintf(f, movetext); + linelen += movelen; + + i++; + } + + /* Start a new line */ + if (linelen > 0) fprintf(f, "\n"); + + /* Print comments after last move */ + if (commentList[i] != NULL) { + fprintf(f, "{\n%s}\n", commentList[i]); + } + + /* Print result */ + if (gameInfo.resultDetails != NULL && + gameInfo.resultDetails[0] != NULLCHAR) { + fprintf(f, "{%s} %s\n\n", gameInfo.resultDetails, + PGNResult(gameInfo.result)); + } else { + fprintf(f, "%s\n\n", PGNResult(gameInfo.result)); + } + + fclose(f); + return TRUE; +} + +/* Save game in old style and close the file */ +int +SaveGameOldStyle(f) + FILE *f; +{ + int i, offset; + time_t tm; + + tm = time((time_t *) NULL); + + fprintf(f, "# %s game file -- %s", programName, ctime(&tm)); + PrintOpponents(f); + + if (backwardMostMove > 0 || startedFromSetupPosition) { + fprintf(f, "\n[--------------\n"); + PrintPosition(f, backwardMostMove); + fprintf(f, "--------------]\n"); + } else { + fprintf(f, "\n"); + } + + i = backwardMostMove; + offset = backwardMostMove & (~1L); /* output move numbers start at 1 */ + + while (i < forwardMostMove) { + if (commentList[i] != NULL) { + fprintf(f, "[%s]\n", commentList[i]); + } + + if ((i % 2) == 1) { + fprintf(f, "%d. ... %s\n", (i - offset)/2 + 1, parseList[i]); + i++; + } else { + fprintf(f, "%d. %s ", (i - offset)/2 + 1, parseList[i]); + i++; + if (commentList[i] != NULL) { + fprintf(f, "\n"); + continue; + } + if (i >= forwardMostMove) { + fprintf(f, "\n"); + break; + } + fprintf(f, "%s\n", parseList[i]); + i++; + } + } + + if (commentList[i] != NULL) { + fprintf(f, "[%s]\n", commentList[i]); + } + + /* This isn't really the old style, but it's close enough */ + if (gameInfo.resultDetails != NULL && + gameInfo.resultDetails[0] != NULLCHAR) { + fprintf(f, "%s (%s)\n\n", PGNResult(gameInfo.result), + gameInfo.resultDetails); + } else { + fprintf(f, "%s\n\n", PGNResult(gameInfo.result)); + } + + fclose(f); + return TRUE; +} + +/* Save the current game to open file f and close the file */ +int +SaveGame(f, dummy, dummy2) + FILE *f; + int dummy; + char *dummy2; +{ + if (gameMode == EditPosition) EditPositionDone(); + if (appData.oldSaveStyle) + return SaveGameOldStyle(f); + else + return SaveGamePGN(f); +} + +/* Save the current position to the given file */ +int +SavePositionToFile(filename) + char *filename; +{ + FILE *f; + char buf[MSG_SIZ]; + + if (strcmp(filename, "-") == 0) { + return SavePosition(stdout, 0, NULL); + } else { + f = fopen(filename, "a"); + if (f == NULL) { + sprintf(buf, "Can't open \"%s\"", filename); + DisplayError(buf, errno); + return FALSE; + } else { + SavePosition(f, 0, NULL); + return TRUE; + } + } +} + +/* Save the current position to the given open file and close the file */ +int +SavePosition(f, dummy, dummy2) + FILE *f; + int dummy; + char *dummy2; +{ + time_t tm; + char *fen; + + if (appData.oldSaveStyle) { + tm = time((time_t *) NULL); + + fprintf(f, "# %s position file -- %s", programName, ctime(&tm)); + PrintOpponents(f); + fprintf(f, "[--------------\n"); + PrintPosition(f, currentMove); + fprintf(f, "--------------]\n"); + } else { + fen = PositionToFEN(currentMove); + fprintf(f, "%s\n", fen); + free(fen); + } + fclose(f); + return TRUE; +} + +void +ReloadCmailMsgEvent(unregister) + int unregister; +{ + static char *inFilename = NULL; + static char *outFilename; + int i; + struct stat inbuf, outbuf; + int status; + + /* Any registered moves are unregistered if unregister is set, */ + /* i.e. invoked by the signal handler */ + if (unregister) { + for (i = 0; i < CMAIL_MAX_GAMES; i ++) { + cmailMoveRegistered[i] = FALSE; + if (cmailCommentList[i] != NULL) { + free(cmailCommentList[i]); + cmailCommentList[i] = NULL; + } + } + nCmailMovesRegistered = 0; + } + + for (i = 0; i < CMAIL_MAX_GAMES; i ++) { + cmailResult[i] = CMAIL_NOT_RESULT; + } + nCmailResults = 0; + + if (inFilename == NULL) { + /* Because the filenames are static they only get malloced once */ + /* and they never get freed */ + inFilename = (char *) malloc(strlen(appData.cmailGameName) + 9); + sprintf(inFilename, "%s.game.in", appData.cmailGameName); + + outFilename = (char *) malloc(strlen(appData.cmailGameName) + 5); + sprintf(outFilename, "%s.out", appData.cmailGameName); + } + + status = stat(outFilename, &outbuf); + if (status < 0) { + cmailMailedMove = FALSE; + } else { + status = stat(inFilename, &inbuf); + cmailMailedMove = (inbuf.st_mtime < outbuf.st_mtime); + } + + /* LoadGameFromFile(CMAIL_MAX_GAMES) with cmailMsgLoaded == TRUE + counts the games, notes how each one terminated, etc. + + It would be nice to remove this kludge and instead gather all + the information while building the game list. (And to keep it + in the game list nodes instead of having a bunch of fixed-size + parallel arrays.) Note this will require getting each game's + termination from the PGN tags, as the game list builder does + not process the game moves. --mann + */ + cmailMsgLoaded = TRUE; + LoadGameFromFile(inFilename, CMAIL_MAX_GAMES, "", FALSE); + + /* Load first game in the file or popup game menu */ + LoadGameFromFile(inFilename, 0, appData.cmailGameName, TRUE); + + return; +} + +int +RegisterMove() +{ + FILE *f; + char string[MSG_SIZ]; + + if ( cmailMailedMove + || (cmailResult[lastLoadGameNumber - 1] == CMAIL_OLD_RESULT)) { + return TRUE; /* Allow free viewing */ + } + + /* Unregister move to ensure that we don't leave RegisterMove */ + /* with the move registered when the conditions for registering no */ + /* longer hold */ + if (cmailMoveRegistered[lastLoadGameNumber - 1]) { + cmailMoveRegistered[lastLoadGameNumber - 1] = FALSE; + nCmailMovesRegistered --; + + if (cmailCommentList[lastLoadGameNumber - 1] != NULL) + { + free(cmailCommentList[lastLoadGameNumber - 1]); + cmailCommentList[lastLoadGameNumber - 1] = NULL; + } + } + + if (cmailOldMove == -1) { + DisplayError("You have edited the game history.\nUse Reload Same Game and make your move again.", 0); + return FALSE; + } + + if (currentMove > cmailOldMove + 1) { + DisplayError("You have entered too many moves.\nBack up to the correct position and try again.", 0); + return FALSE; + } + + if (currentMove < cmailOldMove) { + DisplayError("Displayed position is not current.\nStep forward to the correct position and try again.", 0); + return FALSE; + } + + if (forwardMostMove > currentMove) { + /* Silently truncate extra moves */ + TruncateGame(); + } + + if ( (currentMove == cmailOldMove + 1) + || ( (currentMove == cmailOldMove) + && ( (cmailMoveType[lastLoadGameNumber - 1] == CMAIL_ACCEPT) + || (cmailMoveType[lastLoadGameNumber - 1] == CMAIL_RESIGN)))) { + if (gameInfo.result != GameUnfinished) { + cmailResult[lastLoadGameNumber - 1] = CMAIL_NEW_RESULT; + } + + if (commentList[currentMove] != NULL) { + cmailCommentList[lastLoadGameNumber - 1] + = StrSave(commentList[currentMove]); + } + strcpy(cmailMove[lastLoadGameNumber - 1], moveList[currentMove - 1]); + + if (appData.debugMode) + fprintf(debugFP, "Saving %s for game %d\n", + cmailMove[lastLoadGameNumber - 1], lastLoadGameNumber); + + sprintf(string, + "%s.game.out.%d", appData.cmailGameName, lastLoadGameNumber); + + f = fopen(string, "w"); + if (appData.oldSaveStyle) { + SaveGameOldStyle(f); /* also closes the file */ + + sprintf(string, "%s.pos.out", appData.cmailGameName); + f = fopen(string, "w"); + SavePosition(f, 0, NULL); /* also closes the file */ + } else { + fprintf(f, "{--------------\n"); + PrintPosition(f, currentMove); + fprintf(f, "--------------}\n\n"); + + SaveGame(f, 0, NULL); /* also closes the file*/ + } + + cmailMoveRegistered[lastLoadGameNumber - 1] = TRUE; + nCmailMovesRegistered ++; + } else if (nCmailGames == 1) { + DisplayError("You have not made a move yet", 0); + return FALSE; + } + + return TRUE; +} + +void +MailMoveEvent() +{ + static char *partCommandString = "cmail -xv%s -remail -game %s 2>&1"; + FILE *commandOutput; + char buffer[MSG_SIZ], msg[MSG_SIZ], string[MSG_SIZ]; + int nBytes = 0; /* Suppress warnings on uninitialized variables */ + int nBuffers; + int i; + int archived; + char *arcDir; + + if (! cmailMsgLoaded) { + DisplayError("The cmail message is not loaded.\nUse Reload CMail Message and make your move again.", 0); + return; + } + + if (nCmailGames == nCmailResults) { + DisplayError("No unfinished games", 0); + return; + } + +#if CMAIL_PROHIBIT_REMAIL + if (cmailMailedMove) { + sprintf(msg, "You have already mailed a move.\nWait until a move arrives from your opponent.\nTo resend the same move, type\n\"cmail -remail -game %s\"\non the command line.", appData.cmailGameName); + DisplayError(msg, 0); + return; + } +#endif + + if (! (cmailMailedMove || RegisterMove())) return; + + if ( cmailMailedMove + || (nCmailMovesRegistered + nCmailResults == nCmailGames)) { + sprintf(string, partCommandString, + appData.debugMode ? " -v" : "", appData.cmailGameName); + commandOutput = popen(string, "r"); + + if (commandOutput == NULL) { + DisplayError("Failed to invoke cmail", 0); + } else { + for (nBuffers = 0; (! feof(commandOutput)); nBuffers ++) { + nBytes = fread(buffer, 1, MSG_SIZ - 1, commandOutput); + } + if (nBuffers > 1) { + (void) memcpy(msg, buffer + nBytes, MSG_SIZ - nBytes - 1); + (void) memcpy(msg + MSG_SIZ - nBytes - 1, buffer, nBytes); + nBytes = MSG_SIZ - 1; + } else { + (void) memcpy(msg, buffer, nBytes); + } + *(msg + nBytes) = '\0'; /* \0 for end-of-string*/ + + if(StrStr(msg, "Mailed cmail message to ") != NULL) { + cmailMailedMove = TRUE; /* Prevent >1 moves */ + + archived = TRUE; + for (i = 0; i < nCmailGames; i ++) { + if (cmailResult[i] == CMAIL_NOT_RESULT) { + archived = FALSE; + } + } + if ( archived + && ( (arcDir = (char *) getenv("CMAIL_ARCDIR")) + != NULL)) { + sprintf(buffer, "%s/%s.%s.archive", + arcDir, + appData.cmailGameName, + gameInfo.date); + LoadGameFromFile(buffer, 1, buffer, FALSE); + cmailMsgLoaded = FALSE; + } + } + + DisplayInformation(msg); + pclose(commandOutput); + } + } else { + if ((*cmailMsg) != '\0') { + DisplayInformation(cmailMsg); + } + } + + return; +} + +char * +CmailMsg() +{ + int prependComma = 0; + char number[5]; + char string[MSG_SIZ]; /* Space for game-list */ + int i; + + if (!cmailMsgLoaded) return ""; + + if (cmailMailedMove) { + sprintf(cmailMsg, "Waiting for reply from opponent\n"); + } else { + /* Create a list of games left */ + sprintf(string, "["); + for (i = 0; i < nCmailGames; i ++) { + if (! ( cmailMoveRegistered[i] + || (cmailResult[i] == CMAIL_OLD_RESULT))) { + if (prependComma) { + sprintf(number, ",%d", i + 1); + } else { + sprintf(number, "%d", i + 1); + prependComma = 1; + } + + strcat(string, number); + } + } + strcat(string, "]"); + + if (nCmailMovesRegistered + nCmailResults == 0) { + switch (nCmailGames) { + case 1: + sprintf(cmailMsg, + "Still need to make move for game\n"); + break; + + case 2: + sprintf(cmailMsg, + "Still need to make moves for both games\n"); + break; + + default: + sprintf(cmailMsg, + "Still need to make moves for all %d games\n", + nCmailGames); + break; + } + } else { + switch (nCmailGames - nCmailMovesRegistered - nCmailResults) { + case 1: + sprintf(cmailMsg, + "Still need to make a move for game %s\n", + string); + break; + + case 0: + if (nCmailResults == nCmailGames) { + sprintf(cmailMsg, "No unfinished games\n"); + } else { + sprintf(cmailMsg, "Ready to send mail\n"); + } + break; + + default: + sprintf(cmailMsg, + "Still need to make moves for games %s\n", + string); + } + } + } + + return cmailMsg; +} + +void +ResetGameEvent() +{ + if (gameMode == Training) + SetTrainingModeOff(); + + Reset(TRUE, TRUE); + cmailMsgLoaded = FALSE; + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("refresh\n"); + } +} + +static int exiting = 0; + +void +ExitEvent(status) + int status; +{ + exiting++; + if (exiting > 2) { + /* Give up on clean exit */ + exit(status); + } + if (exiting > 1) { + /* Keep trying for clean exit */ + return; + } + + if (appData.icsActive && appData.colorize) Colorize(ColorNone, FALSE); + + if (telnetISR != NULL) { + RemoveInputSource(telnetISR); + } + if (icsPR != NoProc) { + DestroyChildProcess(icsPR, TRUE); + } + /* Save game if resource set and not already saved by GameEnds() */ + if (gameInfo.resultDetails == NULL && forwardMostMove > 0) { + if (*appData.saveGameFile != NULLCHAR) { + SaveGameToFile(appData.saveGameFile, TRUE); + } else if (appData.autoSaveGames) { + AutoSaveGame(); + } + if (*appData.savePositionFile != NULLCHAR) { + SavePositionToFile(appData.savePositionFile); + } + } + GameEnds((ChessMove) 0, NULL, GE_PLAYER); + + /* Kill off chess programs */ + if (first.pr != NoProc) { + ExitAnalyzeMode(); + SendToProgram("quit\n", &first); + DestroyChildProcess(first.pr, first.useSigterm); + } + if (second.pr != NoProc) { + SendToProgram("quit\n", &second); + DestroyChildProcess(second.pr, second.useSigterm); + } + if (first.isr != NULL) { + RemoveInputSource(first.isr); + } + if (second.isr != NULL) { + RemoveInputSource(second.isr); + } + + ShutDownFrontEnd(); + exit(status); +} + +void +PauseEvent() +{ + if (appData.debugMode) + fprintf(debugFP, "PauseEvent(): pausing %d\n", pausing); + if (pausing) { + pausing = FALSE; + ModeHighlight(); + if (gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack) { + StartClocks(); + } else { + DisplayBothClocks(); + } + if (gameMode == PlayFromGameFile) { + if (appData.timeDelay >= 0) + AutoPlayGameLoop(); + } else if (gameMode == IcsExamining && pauseExamInvalid) { + Reset(FALSE, TRUE); + SendToICS(ics_prefix); + SendToICS("refresh\n"); + } else if (currentMove < forwardMostMove) { + ForwardInner(forwardMostMove); + } + pauseExamInvalid = FALSE; + } else { + switch (gameMode) { + default: + return; + case IcsExamining: + pauseExamForwardMostMove = forwardMostMove; + pauseExamInvalid = FALSE; + /* fall through */ + case IcsObserving: + case IcsPlayingWhite: + case IcsPlayingBlack: + pausing = TRUE; + ModeHighlight(); + return; + case PlayFromGameFile: + (void) StopLoadGameTimer(); + pausing = TRUE; + ModeHighlight(); + break; + case BeginningOfGame: + if (appData.icsActive) return; + /* else fall through */ + case MachinePlaysWhite: + case MachinePlaysBlack: + case TwoMachinesPlay: + if (forwardMostMove == 0) + return; /* don't pause if no one has moved */ + if ((gameMode == MachinePlaysWhite && + !WhiteOnMove(forwardMostMove)) || + (gameMode == MachinePlaysBlack && + WhiteOnMove(forwardMostMove))) { + StopClocks(); + } + pausing = TRUE; + ModeHighlight(); + break; + } + } +} + +void +EditCommentEvent() +{ + char title[MSG_SIZ]; + + if (currentMove < 1 || parseList[currentMove - 1][0] == NULLCHAR) { + strcpy(title, "Edit comment"); + } else { + sprintf(title, "Edit comment on %d.%s%s", (currentMove - 1) / 2 + 1, + WhiteOnMove(currentMove - 1) ? " " : ".. ", + parseList[currentMove - 1]); + } + + EditCommentPopUp(currentMove, title, commentList[currentMove]); +} + + +void +EditTagsEvent() +{ + char *tags = PGNTags(&gameInfo); + EditTagsPopUp(tags); + free(tags); +} + +void +AnalyzeModeEvent() +{ + if (appData.noChessProgram || gameMode == AnalyzeMode) + return; + + if (gameMode != AnalyzeFile) { + EditGameEvent(); + if (gameMode != EditGame) return; + ResurrectChessProgram(); + SendToProgram("analyze\n", &first); + first.analyzing = TRUE; + /*first.maybeThinking = TRUE;*/ + first.maybeThinking = FALSE; /* avoid killing GNU Chess */ + AnalysisPopUp("Analysis", + "Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."); + } + gameMode = AnalyzeMode; + pausing = FALSE; + ModeHighlight(); + SetGameInfo(); + + StartAnalysisClock(); + GetTimeMark(&lastNodeCountTime); + lastNodeCount = 0; +} + +void +AnalyzeFileEvent() +{ + if (appData.noChessProgram || gameMode == AnalyzeFile) + return; + + if (gameMode != AnalyzeMode) { + EditGameEvent(); + if (gameMode != EditGame) return; + ResurrectChessProgram(); + SendToProgram("analyze\n", &first); + first.analyzing = TRUE; + /*first.maybeThinking = TRUE;*/ + first.maybeThinking = FALSE; /* avoid killing GNU Chess */ + AnalysisPopUp("Analysis", + "Starting analysis mode...\nIf this message stays up, your chess program does not support analysis."); + } + gameMode = AnalyzeFile; + pausing = FALSE; + ModeHighlight(); + SetGameInfo(); + + StartAnalysisClock(); + GetTimeMark(&lastNodeCountTime); + lastNodeCount = 0; +} + +void +MachineWhiteEvent() +{ + char buf[MSG_SIZ]; + + if (appData.noChessProgram || (gameMode == MachinePlaysWhite)) + return; + + + if (gameMode == PlayFromGameFile || + gameMode == TwoMachinesPlay || + gameMode == Training || + gameMode == AnalyzeMode || + gameMode == EndOfGame) + EditGameEvent(); + + if (gameMode == EditPosition) + EditPositionDone(); + + if (!WhiteOnMove(currentMove)) { + DisplayError("It is not White's turn", 0); + return; + } + + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) + ExitAnalyzeMode(); + + if (gameMode == EditGame || gameMode == AnalyzeMode || + gameMode == AnalyzeFile) + TruncateGame(); + + ResurrectChessProgram(); /* in case it isn't running */ + gameMode = MachinePlaysWhite; + pausing = FALSE; + ModeHighlight(); + SetGameInfo(); + sprintf(buf, "%s vs. %s", gameInfo.white, gameInfo.black); + DisplayTitle(buf); + if (first.sendName) { + sprintf(buf, "name %s\n", gameInfo.black); + SendToProgram(buf, &first); + } + if (first.sendTime) { + if (first.useColors) { + SendToProgram("black\n", &first); /*gnu kludge*/ + } + SendTimeRemaining(&first, TRUE); + } + if (first.useColors) { + SendToProgram("white\ngo\n", &first); + } else { + SendToProgram("go\n", &first); + } + SetMachineThinkingEnables(); + first.maybeThinking = TRUE; + StartClocks(); + + if (appData.autoFlipView && !flipView) { + flipView = !flipView; + DrawPosition(FALSE, NULL); + } +} + +void +MachineBlackEvent() +{ + char buf[MSG_SIZ]; + + if (appData.noChessProgram || (gameMode == MachinePlaysBlack)) + return; + + + if (gameMode == PlayFromGameFile || + gameMode == TwoMachinesPlay || + gameMode == Training || + gameMode == AnalyzeMode || + gameMode == EndOfGame) + EditGameEvent(); + + if (gameMode == EditPosition) + EditPositionDone(); + + if (WhiteOnMove(currentMove)) { + DisplayError("It is not Black's turn", 0); + return; + } + + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) + ExitAnalyzeMode(); + + if (gameMode == EditGame || gameMode == AnalyzeMode || + gameMode == AnalyzeFile) + TruncateGame(); + + ResurrectChessProgram(); /* in case it isn't running */ + gameMode = MachinePlaysBlack; + pausing = FALSE; + ModeHighlight(); + SetGameInfo(); + sprintf(buf, "%s vs. %s", gameInfo.white, gameInfo.black); + DisplayTitle(buf); + if (first.sendName) { + sprintf(buf, "name %s\n", gameInfo.white); + SendToProgram(buf, &first); + } + if (first.sendTime) { + if (first.useColors) { + SendToProgram("white\n", &first); /*gnu kludge*/ + } + SendTimeRemaining(&first, FALSE); + } + if (first.useColors) { + SendToProgram("black\ngo\n", &first); + } else { + SendToProgram("go\n", &first); + } + SetMachineThinkingEnables(); + first.maybeThinking = TRUE; + StartClocks(); + + if (appData.autoFlipView && flipView) { + flipView = !flipView; + DrawPosition(FALSE, NULL); + } +} + + +void +DisplayTwoMachinesTitle() +{ + char buf[MSG_SIZ]; + if (appData.matchGames > 0) { + if (first.twoMachinesColor[0] == 'w') { + sprintf(buf, "%s vs. %s (%d-%d-%d)", + gameInfo.white, gameInfo.black, + first.matchWins, second.matchWins, + matchGame - 1 - (first.matchWins + second.matchWins)); + } else { + sprintf(buf, "%s vs. %s (%d-%d-%d)", + gameInfo.white, gameInfo.black, + second.matchWins, first.matchWins, + matchGame - 1 - (first.matchWins + second.matchWins)); + } + } else { + sprintf(buf, "%s vs. %s", gameInfo.white, gameInfo.black); + } + DisplayTitle(buf); +} + +void +TwoMachinesEvent P((void)) +{ + int i; + char buf[MSG_SIZ]; + ChessProgramState *onmove; + + if (appData.noChessProgram) return; + + switch (gameMode) { + case TwoMachinesPlay: + return; + case MachinePlaysWhite: + case MachinePlaysBlack: + if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) { + DisplayError("Wait until your turn,\nor select Move Now", 0); + return; + } + /* fall through */ + case BeginningOfGame: + case PlayFromGameFile: + case EndOfGame: + EditGameEvent(); + if (gameMode != EditGame) return; + break; + case EditPosition: + EditPositionDone(); + break; + case AnalyzeMode: + case AnalyzeFile: + ExitAnalyzeMode(); + break; + case EditGame: + default: + break; + } + + forwardMostMove = currentMove; + ResurrectChessProgram(); /* in case first program isn't running */ + + if (second.pr == NULL) { + StartChessProgram(&second); + if (second.protocolVersion == 1) { + TwoMachinesEventIfReady(); + } else { + /* kludge: allow timeout for initial "feature" command */ + FreezeUI(); + DisplayMessage("", "Starting second chess program"); + ScheduleDelayedEvent(TwoMachinesEventIfReady, FEATURE_TIMEOUT); + } + return; + } + DisplayMessage("", ""); + InitChessProgram(&second); + SendToProgram("force\n", &second); + if (startedFromSetupPosition) { + SendBoard(&second, backwardMostMove); + } + for (i = backwardMostMove; i < forwardMostMove; i++) { + SendMoveToProgram(i, &second); + } + + gameMode = TwoMachinesPlay; + pausing = FALSE; + ModeHighlight(); + SetGameInfo(); + DisplayTwoMachinesTitle(); + firstMove = TRUE; + if ((first.twoMachinesColor[0] == 'w') == WhiteOnMove(forwardMostMove)) { + onmove = &first; + } else { + onmove = &second; + } + + SendToProgram(first.computerString, &first); + if (first.sendName) { + sprintf(buf, "name %s\n", second.tidy); + SendToProgram(buf, &first); + } + SendToProgram(second.computerString, &second); + if (second.sendName) { + sprintf(buf, "name %s\n", first.tidy); + SendToProgram(buf, &second); + } + + if (!first.sendTime || !second.sendTime) { + ResetClocks(); + timeRemaining[0][forwardMostMove] = whiteTimeRemaining; + timeRemaining[1][forwardMostMove] = blackTimeRemaining; + } + if (onmove->sendTime) { + if (onmove->useColors) { + SendToProgram(onmove->other->twoMachinesColor, onmove); /*gnu kludge*/ + } + SendTimeRemaining(onmove, WhiteOnMove(forwardMostMove)); + } + if (onmove->useColors) { + SendToProgram(onmove->twoMachinesColor, onmove); + } + SendToProgram("go\n", onmove); + onmove->maybeThinking = TRUE; + SetMachineThinkingEnables(); + + StartClocks(); +} + +void +TrainingEvent() +{ + if (gameMode == Training) { + SetTrainingModeOff(); + gameMode = PlayFromGameFile; + DisplayMessage("", "Training mode off"); + } else { + gameMode = Training; + animateTraining = appData.animate; + + /* make sure we are not already at the end of the game */ + if (currentMove < forwardMostMove) { + SetTrainingModeOn(); + DisplayMessage("", "Training mode on"); + } else { + gameMode = PlayFromGameFile; + DisplayError("Already at end of game", 0); + } + } + ModeHighlight(); +} + +void +IcsClientEvent() +{ + if (!appData.icsActive) return; + switch (gameMode) { + case IcsPlayingWhite: + case IcsPlayingBlack: + case IcsObserving: + case IcsIdle: + case BeginningOfGame: + case IcsExamining: + return; + + case EditGame: + break; + + case EditPosition: + EditPositionDone(); + break; + + case AnalyzeMode: + case AnalyzeFile: + ExitAnalyzeMode(); + break; + + default: + EditGameEvent(); + break; + } + + gameMode = IcsIdle; + ModeHighlight(); + return; +} + + +void +EditGameEvent() +{ + int i; + + switch (gameMode) { + case Training: + SetTrainingModeOff(); + break; + case MachinePlaysWhite: + case MachinePlaysBlack: + case BeginningOfGame: + SendToProgram("force\n", &first); + SetUserThinkingEnables(); + break; + case PlayFromGameFile: + (void) StopLoadGameTimer(); + if (gameFileFP != NULL) { + gameFileFP = NULL; + } + break; + case EditPosition: + EditPositionDone(); + break; + case AnalyzeMode: + case AnalyzeFile: + ExitAnalyzeMode(); + SendToProgram("force\n", &first); + break; + case TwoMachinesPlay: + GameEnds((ChessMove) 0, NULL, GE_PLAYER); + ResurrectChessProgram(); + SetUserThinkingEnables(); + break; + case EndOfGame: + ResurrectChessProgram(); + break; + case IcsPlayingBlack: + case IcsPlayingWhite: + DisplayError("Warning: You are still playing a game", 0); + break; + case IcsObserving: + DisplayError("Warning: You are still observing a game", 0); + break; + case IcsExamining: + DisplayError("Warning: You are still examining a game", 0); + break; + case IcsIdle: + break; + case EditGame: + default: + return; + } + + pausing = FALSE; + StopClocks(); + first.offeredDraw = second.offeredDraw = 0; + + if (gameMode == PlayFromGameFile) { + whiteTimeRemaining = timeRemaining[0][currentMove]; + blackTimeRemaining = timeRemaining[1][currentMove]; + DisplayTitle(""); + } + + if (gameMode == MachinePlaysWhite || + gameMode == MachinePlaysBlack || + gameMode == TwoMachinesPlay || + gameMode == EndOfGame) { + i = forwardMostMove; + while (i > currentMove) { + SendToProgram("undo\n", &first); + i--; + } + whiteTimeRemaining = timeRemaining[0][currentMove]; + blackTimeRemaining = timeRemaining[1][currentMove]; + DisplayBothClocks(); + if (whiteFlag || blackFlag) { + whiteFlag = blackFlag = 0; + } + DisplayTitle(""); + } + + gameMode = EditGame; + ModeHighlight(); + SetGameInfo(); +} + + +void +EditPositionEvent() +{ + if (gameMode == EditPosition) { + EditGameEvent(); + return; + } + + EditGameEvent(); + if (gameMode != EditGame) return; + + gameMode = EditPosition; + ModeHighlight(); + SetGameInfo(); + if (currentMove > 0) + CopyBoard(boards[0], boards[currentMove]); + + blackPlaysFirst = !WhiteOnMove(currentMove); + ResetClocks(); + currentMove = forwardMostMove = backwardMostMove = 0; + HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1); + DisplayMove(-1); +} + +void +ExitAnalyzeMode() +{ + if (first.analysisSupport && first.analyzing) { + SendToProgram("exit\n", &first); + first.analyzing = FALSE; + } + AnalysisPopDown(); + thinkOutput[0] = NULLCHAR; +} + +void +EditPositionDone() +{ + startedFromSetupPosition = TRUE; + InitChessProgram(&first); + SendToProgram("force\n", &first); + if (blackPlaysFirst) { + strcpy(moveList[0], ""); + strcpy(parseList[0], ""); + currentMove = forwardMostMove = backwardMostMove = 1; + CopyBoard(boards[1], boards[0]); + } else { + currentMove = forwardMostMove = backwardMostMove = 0; + } + SendBoard(&first, forwardMostMove); + DisplayTitle(""); + timeRemaining[0][forwardMostMove] = whiteTimeRemaining; + timeRemaining[1][forwardMostMove] = blackTimeRemaining; + gameMode = EditGame; + ModeHighlight(); + HistorySet(parseList, backwardMostMove, forwardMostMove, currentMove-1); +} + +/* Pause for `ms' milliseconds */ +/* !! Ugh, this is a kludge. Fix it sometime. --tpm */ +void +TimeDelay(ms) + long ms; +{ + TimeMark m1, m2; + + GetTimeMark(&m1); + do { + GetTimeMark(&m2); + } while (SubtractTimeMarks(&m2, &m1) < ms); +} + +/* !! Ugh, this is a kludge. Fix it sometime. --tpm */ +void +SendMultiLineToICS(buf) + char *buf; +{ + char temp[MSG_SIZ+1], *p; + int len; + + len = strlen(buf); + if (len > MSG_SIZ) + len = MSG_SIZ; + + strncpy(temp, buf, len); + temp[len] = 0; + + p = temp; + while (*p) { + if (*p == '\n' || *p == '\r') + *p = ' '; + ++p; + } + + strcat(temp, "\n"); + SendToICS(temp); + SendToPlayer(temp, strlen(temp)); +} + +void +SetWhiteToPlayEvent() +{ + if (gameMode == EditPosition) { + blackPlaysFirst = FALSE; + DisplayBothClocks(); /* works because currentMove is 0 */ + } else if (gameMode == IcsExamining) { + SendToICS(ics_prefix); + SendToICS("tomove white\n"); + } +} + +void +SetBlackToPlayEvent() +{ + if (gameMode == EditPosition) { + blackPlaysFirst = TRUE; + currentMove = 1; /* kludge */ + DisplayBothClocks(); + currentMove = 0; + } else if (gameMode == IcsExamining) { + SendToICS(ics_prefix); + SendToICS("tomove black\n"); + } +} + +void +EditPositionMenuEvent(selection, x, y) + ChessSquare selection; + int x, y; +{ + char buf[MSG_SIZ]; + + if (gameMode != EditPosition && gameMode != IcsExamining) return; + + switch (selection) { + case ClearBoard: + if (gameMode == IcsExamining && ics_type == ICS_FICS) { + SendToICS(ics_prefix); + SendToICS("bsetup clear\n"); + } else if (gameMode == IcsExamining && ics_type == ICS_ICC) { + SendToICS(ics_prefix); + SendToICS("clearboard\n"); + } else { + for (x = 0; x < BOARD_SIZE; x++) { + for (y = 0; y < BOARD_SIZE; y++) { + if (gameMode == IcsExamining) { + if (boards[currentMove][y][x] != EmptySquare) { + sprintf(buf, "%sx@%c%c\n", ics_prefix, + 'a' + x, '1' + y); + SendToICS(buf); + } + } else { + boards[0][y][x] = EmptySquare; + } + } + } + } + if (gameMode == EditPosition) { + DrawPosition(FALSE, boards[0]); + } + break; + + case WhitePlay: + SetWhiteToPlayEvent(); + break; + + case BlackPlay: + SetBlackToPlayEvent(); + break; + + case EmptySquare: + if (gameMode == IcsExamining) { + sprintf(buf, "%sx@%c%c\n", ics_prefix, 'a' + x, '1' + y); + SendToICS(buf); + } else { + boards[0][y][x] = EmptySquare; + DrawPosition(FALSE, boards[0]); + } + break; + + default: + if (gameMode == IcsExamining) { + sprintf(buf, "%s%c@%c%c\n", ics_prefix, + PieceToChar(selection), 'a' + x, '1' + y); + SendToICS(buf); + } else { + boards[0][y][x] = selection; + DrawPosition(FALSE, boards[0]); + } + break; + } +} + + +void +DropMenuEvent(selection, x, y) + ChessSquare selection; + int x, y; +{ + ChessMove moveType; + + switch (gameMode) { + case IcsPlayingWhite: + case MachinePlaysBlack: + if (!WhiteOnMove(currentMove)) { + DisplayMoveError("It is Black's turn"); + return; + } + moveType = WhiteDrop; + break; + case IcsPlayingBlack: + case MachinePlaysWhite: + if (WhiteOnMove(currentMove)) { + DisplayMoveError("It is White's turn"); + return; + } + moveType = BlackDrop; + break; + case EditGame: + moveType = WhiteOnMove(currentMove) ? WhiteDrop : BlackDrop; + break; + default: + return; + } + + if (moveType == BlackDrop && selection < BlackPawn) { + selection = (ChessSquare) ((int) selection + + (int) BlackPawn - (int) WhitePawn); + } + if (boards[currentMove][y][x] != EmptySquare) { + DisplayMoveError("That square is occupied"); + return; + } + + FinishMove(moveType, (int) selection, DROP_RANK, x, y, NULLCHAR); +} + +void +AcceptEvent() +{ + /* Accept a pending offer of any kind from opponent */ + + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("accept\n"); + } else if (cmailMsgLoaded) { + if (currentMove == cmailOldMove && + commentList[cmailOldMove] != NULL && + StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ? + "Black offers a draw" : "White offers a draw")) { + TruncateGame(); + GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER); + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_ACCEPT; + } else { + DisplayError("There is no pending offer on this move", 0); + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE; + } + } else { + /* Not used for offers from chess program */ + } +} + +void +DeclineEvent() +{ + /* Decline a pending offer of any kind from opponent */ + + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("decline\n"); + } else if (cmailMsgLoaded) { + if (currentMove == cmailOldMove && + commentList[cmailOldMove] != NULL && + StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ? + "Black offers a draw" : "White offers a draw")) { +#ifdef NOTDEF + AppendComment(cmailOldMove, "Draw declined"); + DisplayComment(cmailOldMove - 1, "Draw declined"); +#endif /*NOTDEF*/ + } else { + DisplayError("There is no pending offer on this move", 0); + } + } else { + /* Not used for offers from chess program */ + } +} + +void +RematchEvent() +{ + /* Issue ICS rematch command */ + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("rematch\n"); + } +} + +void +CallFlagEvent() +{ + /* Call your opponent's flag (claim a win on time) */ + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("flag\n"); + } else { + switch (gameMode) { + default: + return; + case MachinePlaysWhite: + if (whiteFlag) { + if (blackFlag) + GameEnds(GameIsDrawn, "Both players ran out of time", + GE_PLAYER); + else + GameEnds(BlackWins, "Black wins on time", GE_PLAYER); + } else { + DisplayError("Your opponent is not out of time", 0); + } + break; + case MachinePlaysBlack: + if (blackFlag) { + if (whiteFlag) + GameEnds(GameIsDrawn, "Both players ran out of time", + GE_PLAYER); + else + GameEnds(WhiteWins, "White wins on time", GE_PLAYER); + } else { + DisplayError("Your opponent is not out of time", 0); + } + break; + } + } +} + +void +DrawEvent() +{ + /* Offer draw or accept pending draw offer from opponent */ + + if (appData.icsActive) { + /* Note: tournament rules require draw offers to be + made after you make your move but before you punch + your clock. Currently ICS doesn't let you do that; + instead, you immediately punch your clock after making + a move, but you can offer a draw at any time. */ + + SendToICS(ics_prefix); + SendToICS("draw\n"); + } else if (cmailMsgLoaded) { + if (currentMove == cmailOldMove && + commentList[cmailOldMove] != NULL && + StrStr(commentList[cmailOldMove], WhiteOnMove(cmailOldMove) ? + "Black offers a draw" : "White offers a draw")) { + GameEnds(GameIsDrawn, "Draw agreed", GE_PLAYER); + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_ACCEPT; + } else if (currentMove == cmailOldMove + 1) { + char *offer = WhiteOnMove(cmailOldMove) ? + "White offers a draw" : "Black offers a draw"; + AppendComment(currentMove, offer); + DisplayComment(currentMove - 1, offer); + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_DRAW; + } else { + DisplayError("You must make your move before offering a draw", 0); + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_MOVE; + } + } else if (first.offeredDraw) { + GameEnds(GameIsDrawn, "Draw agreed", GE_XBOARD); + } else { + if (first.sendDrawOffers) { + SendToProgram("draw\n", &first); + userOfferedDraw = TRUE; + } + } +} + +void +AdjournEvent() +{ + /* Offer Adjourn or accept pending Adjourn offer from opponent */ + + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("adjourn\n"); + } else { + /* Currently GNU Chess doesn't offer or accept Adjourns */ + } +} + + +void +AbortEvent() +{ + /* Offer Abort or accept pending Abort offer from opponent */ + + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("abort\n"); + } else { + GameEnds(GameUnfinished, "Game aborted", GE_PLAYER); + } +} + +void +ResignEvent() +{ + /* Resign. You can do this even if it's not your turn. */ + + if (appData.icsActive) { + SendToICS(ics_prefix); + SendToICS("resign\n"); + } else { + switch (gameMode) { + case MachinePlaysWhite: + GameEnds(WhiteWins, "Black resigns", GE_PLAYER); + break; + case MachinePlaysBlack: + GameEnds(BlackWins, "White resigns", GE_PLAYER); + break; + case EditGame: + if (cmailMsgLoaded) { + TruncateGame(); + if (WhiteOnMove(cmailOldMove)) { + GameEnds(BlackWins, "White resigns", GE_PLAYER); + } else { + GameEnds(WhiteWins, "Black resigns", GE_PLAYER); + } + cmailMoveType[lastLoadGameNumber - 1] = CMAIL_RESIGN; + } + break; + default: + break; + } + } +} + + +void +StopObservingEvent() +{ + /* Stop observing current games */ + SendToICS(ics_prefix); + SendToICS("unobserve\n"); +} + +void +StopExaminingEvent() +{ + /* Stop observing current game */ + SendToICS(ics_prefix); + SendToICS("unexamine\n"); +} + +void +ForwardInner(target) + int target; +{ + int limit; + + if (appData.debugMode) + fprintf(debugFP, "ForwardInner(%d), current %d, forward %d\n", + target, currentMove, forwardMostMove); + + if (gameMode == EditPosition) + return; + + if (gameMode == PlayFromGameFile && !pausing) + PauseEvent(); + + if (gameMode == IcsExamining && pausing) + limit = pauseExamForwardMostMove; + else + limit = forwardMostMove; + + if (target > limit) target = limit; + + if (target > 0 && moveList[target - 1][0]) { + int fromX, fromY, toX, toY; + toX = moveList[target - 1][2] - 'a'; + toY = moveList[target - 1][3] - '1'; + if (moveList[target - 1][1] == '@') { + if (appData.highlightLastMove) { + SetHighlights(-1, -1, toX, toY); + } + } else { + fromX = moveList[target - 1][0] - 'a'; + fromY = moveList[target - 1][1] - '1'; + if (target == currentMove + 1) { + AnimateMove(boards[currentMove], fromX, fromY, toX, toY); + } + if (appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } + } + } + if (gameMode == EditGame || gameMode == AnalyzeMode || + gameMode == Training || gameMode == PlayFromGameFile || + gameMode == AnalyzeFile) { + while (currentMove < target) { + SendMoveToProgram(currentMove++, &first); + } + } else { + currentMove = target; + } + + if (gameMode == EditGame || gameMode == EndOfGame) { + whiteTimeRemaining = timeRemaining[0][currentMove]; + blackTimeRemaining = timeRemaining[1][currentMove]; + } + DisplayBothClocks(); + DisplayMove(currentMove - 1); + DrawPosition(FALSE, boards[currentMove]); + HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1); + if (commentList[currentMove] && !matchMode && gameMode != Training) { + DisplayComment(currentMove - 1, commentList[currentMove]); + } +} + + +void +ForwardEvent() +{ + if (gameMode == IcsExamining && !pausing) { + SendToICS(ics_prefix); + SendToICS("forward\n"); + } else { + ForwardInner(currentMove + 1); + } +} + +void +ToEndEvent() +{ + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + /* to optimze, we temporarily turn off analysis mode while we feed + * the remaining moves to the engine. Otherwise we get analysis output + * after each move. + */ + if (first.analysisSupport) { + SendToProgram("exit\nforce\n", &first); + first.analyzing = FALSE; + } + } + + if (gameMode == IcsExamining && !pausing) { + SendToICS(ics_prefix); + SendToICS("forward 999999\n"); + } else { + ForwardInner(forwardMostMove); + } + + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + /* we have fed all the moves, so reactivate analysis mode */ + SendToProgram("analyze\n", &first); + first.analyzing = TRUE; + /*first.maybeThinking = TRUE;*/ + first.maybeThinking = FALSE; /* avoid killing GNU Chess */ + } +} + +void +BackwardInner(target) + int target; +{ + if (appData.debugMode) + fprintf(debugFP, "BackwardInner(%d), current %d, forward %d\n", + target, currentMove, forwardMostMove); + + if (gameMode == EditPosition) return; + if (currentMove <= backwardMostMove) { + ClearHighlights(); + DrawPosition(FALSE, boards[currentMove]); + return; + } + if (gameMode == PlayFromGameFile && !pausing) + PauseEvent(); + + if (moveList[target][0]) { + int fromX, fromY, toX, toY; + toX = moveList[target][2] - 'a'; + toY = moveList[target][3] - '1'; + if (moveList[target][1] == '@') { + if (appData.highlightLastMove) { + SetHighlights(-1, -1, toX, toY); + } + } else { + fromX = moveList[target][0] - 'a'; + fromY = moveList[target][1] - '1'; + if (target == currentMove - 1) { + AnimateMove(boards[currentMove], toX, toY, fromX, fromY); + } + if (appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } + } + } + if (gameMode == EditGame || gameMode==AnalyzeMode || + gameMode == PlayFromGameFile || gameMode == AnalyzeFile) { + while (currentMove > target) { + SendToProgram("undo\n", &first); + currentMove--; + } + } else { + currentMove = target; + } + + if (gameMode == EditGame || gameMode == EndOfGame) { + whiteTimeRemaining = timeRemaining[0][currentMove]; + blackTimeRemaining = timeRemaining[1][currentMove]; + } + DisplayBothClocks(); + DisplayMove(currentMove - 1); + DrawPosition(FALSE, boards[currentMove]); + HistorySet(parseList,backwardMostMove,forwardMostMove,currentMove-1); + if (commentList[currentMove] != NULL) { + DisplayComment(currentMove - 1, commentList[currentMove]); + } +} + +void +BackwardEvent() +{ + if (gameMode == IcsExamining && !pausing) { + SendToICS(ics_prefix); + SendToICS("backward\n"); + } else { + BackwardInner(currentMove - 1); + } +} + +void +ToStartEvent() +{ + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + /* to optimze, we temporarily turn off analysis mode while we undo + * all the moves. Otherwise we get analysis output after each undo. + */ + if (first.analysisSupport) { + SendToProgram("exit\nforce\n", &first); + first.analyzing = FALSE; + } + } + + if (gameMode == IcsExamining && !pausing) { + SendToICS(ics_prefix); + SendToICS("backward 999999\n"); + } else { + BackwardInner(backwardMostMove); + } + + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + /* we have fed all the moves, so reactivate analysis mode */ + SendToProgram("analyze\n", &first); + first.analyzing = TRUE; + /*first.maybeThinking = TRUE;*/ + first.maybeThinking = FALSE; /* avoid killing GNU Chess */ + } +} + +void +ToNrEvent(int to) +{ + if (gameMode == PlayFromGameFile && !pausing) PauseEvent(); + if (to >= forwardMostMove) to = forwardMostMove; + if (to <= backwardMostMove) to = backwardMostMove; + if (to < currentMove) { + BackwardInner(to); + } else { + ForwardInner(to); + } +} + +void +RevertEvent() +{ + if (gameMode != IcsExamining) { + DisplayError("You are not examining a game", 0); + return; + } + if (pausing) { + DisplayError("You can't revert while pausing", 0); + return; + } + SendToICS(ics_prefix); + SendToICS("revert\n"); +} + +void +RetractMoveEvent() +{ + switch (gameMode) { + case MachinePlaysWhite: + case MachinePlaysBlack: + if (WhiteOnMove(forwardMostMove) == (gameMode == MachinePlaysWhite)) { + DisplayError("Wait until your turn,\nor select Move Now", 0); + return; + } + if (forwardMostMove < 2) return; + currentMove = forwardMostMove = forwardMostMove - 2; + whiteTimeRemaining = timeRemaining[0][currentMove]; + blackTimeRemaining = timeRemaining[1][currentMove]; + DisplayBothClocks(); + DisplayMove(currentMove - 1); + ClearHighlights();/*!! could figure this out*/ + DrawPosition(FALSE, boards[currentMove]); + SendToProgram("remove\n", &first); + /*first.maybeThinking = TRUE;*/ /* GNU Chess does not ponder here */ + break; + + case BeginningOfGame: + default: + break; + + case IcsPlayingWhite: + case IcsPlayingBlack: + if (WhiteOnMove(forwardMostMove) == (gameMode == IcsPlayingWhite)) { + SendToICS(ics_prefix); + SendToICS("takeback 2\n"); + } else { + SendToICS(ics_prefix); + SendToICS("takeback 1\n"); + } + break; + } +} + +void +MoveNowEvent() +{ + ChessProgramState *cps; + + switch (gameMode) { + case MachinePlaysWhite: + if (!WhiteOnMove(forwardMostMove)) { + DisplayError("It is your turn", 0); + return; + } + cps = &first; + break; + case MachinePlaysBlack: + if (WhiteOnMove(forwardMostMove)) { + DisplayError("It is your turn", 0); + return; + } + cps = &first; + break; + case TwoMachinesPlay: + if (WhiteOnMove(forwardMostMove) == + (first.twoMachinesColor[0] == 'w')) { + cps = &first; + } else { + cps = &second; + } + break; + case BeginningOfGame: + default: + return; + } + SendToProgram("?\n", cps); +} + +void +TruncateGameEvent() +{ + EditGameEvent(); + if (gameMode != EditGame) return; + TruncateGame(); +} + +void +TruncateGame() +{ + if (forwardMostMove > currentMove) { + if (gameInfo.resultDetails != NULL) { + free(gameInfo.resultDetails); + gameInfo.resultDetails = NULL; + gameInfo.result = GameUnfinished; + } + forwardMostMove = currentMove; + HistorySet(parseList, backwardMostMove, forwardMostMove, + currentMove-1); + } +} + +void +HintEvent() +{ + if (appData.noChessProgram) return; + switch (gameMode) { + case MachinePlaysWhite: + if (WhiteOnMove(forwardMostMove)) { + DisplayError("Wait until your turn", 0); + return; + } + break; + case BeginningOfGame: + case MachinePlaysBlack: + if (!WhiteOnMove(forwardMostMove)) { + DisplayError("Wait until your turn", 0); + return; + } + break; + default: + DisplayError("No hint available", 0); + return; + } + SendToProgram("hint\n", &first); + hintRequested = TRUE; +} + +void +BookEvent() +{ + if (appData.noChessProgram) return; + switch (gameMode) { + case MachinePlaysWhite: + if (WhiteOnMove(forwardMostMove)) { + DisplayError("Wait until your turn", 0); + return; + } + break; + case BeginningOfGame: + case MachinePlaysBlack: + if (!WhiteOnMove(forwardMostMove)) { + DisplayError("Wait until your turn", 0); + return; + } + break; + case EditPosition: + EditPositionDone(); + break; + case TwoMachinesPlay: + return; + default: + break; + } + SendToProgram("bk\n", &first); + bookOutput[0] = NULLCHAR; + bookRequested = TRUE; +} + +void +AboutGameEvent() +{ + char *tags = PGNTags(&gameInfo); + TagsPopUp(tags, CmailMsg()); + free(tags); +} + +/* end button procedures */ + +void +PrintPosition(fp, move) + FILE *fp; + int move; +{ + int i, j; + + for (i = BOARD_SIZE - 1; i >= 0; i--) { + for (j = 0; j < BOARD_SIZE; j++) { + char c = PieceToChar(boards[move][i][j]); + fputc(c == 'x' ? '.' : c, fp); + fputc(j == BOARD_SIZE - 1 ? '\n' : ' ', fp); + } + } + if ((gameMode == EditPosition) ? !blackPlaysFirst : (move % 2 == 0)) + fprintf(fp, "white to play\n"); + else + fprintf(fp, "black to play\n"); +} + +void +PrintOpponents(fp) + FILE *fp; +{ + if (gameInfo.white != NULL) { + fprintf(fp, "\t%s vs. %s\n", gameInfo.white, gameInfo.black); + } else { + fprintf(fp, "\n"); + } +} + +/* Find last component of program's own name, using some heuristics */ +void +TidyProgramName(prog, host, buf) + char *prog, *host, buf[MSG_SIZ]; +{ + char *p, *q; + int local = (strcmp(host, "localhost") == 0); + while (!local && (p = strchr(prog, ';')) != NULL) { + p++; + while (*p == ' ') p++; + prog = p; + } + if (*prog == '"' || *prog == '\'') { + q = strchr(prog + 1, *prog); + } else { + q = strchr(prog, ' '); + } + if (q == NULL) q = prog + strlen(prog); + p = q; + while (p >= prog && *p != '/' && *p != '\\') p--; + p++; + if (q - p >= 4 && StrCaseCmp(q - 4, ".exe") == 0) q -= 4; + memcpy(buf, p, q - p); + buf[q - p] = NULLCHAR; + if (!local) { + strcat(buf, "@"); + strcat(buf, host); + } +} + +char * +TimeControlTagValue() +{ + char buf[MSG_SIZ]; + if (!appData.clockMode) { + strcpy(buf, "-"); + } else if (movesPerSession > 0) { + sprintf(buf, "%d/%ld", movesPerSession, timeControl/1000); + } else if (timeIncrement == 0) { + sprintf(buf, "%ld", timeControl/1000); + } else { + sprintf(buf, "%ld+%ld", timeControl/1000, timeIncrement/1000); + } + return StrSave(buf); +} + +void +SetGameInfo() +{ + /* This routine is used only for certain modes */ + VariantClass v = gameInfo.variant; + ClearGameInfo(&gameInfo); + gameInfo.variant = v; + + switch (gameMode) { + case MachinePlaysWhite: + gameInfo.event = StrSave("Computer chess game"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave(first.tidy); + gameInfo.black = StrSave(UserName()); + gameInfo.timeControl = TimeControlTagValue(); + break; + + case MachinePlaysBlack: + gameInfo.event = StrSave("Computer chess game"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave(UserName()); + gameInfo.black = StrSave(first.tidy); + gameInfo.timeControl = TimeControlTagValue(); + break; + + case TwoMachinesPlay: + gameInfo.event = StrSave("Computer chess game"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + if (matchGame > 0) { + char buf[MSG_SIZ]; + sprintf(buf, "%d", matchGame); + gameInfo.round = StrSave(buf); + } else { + gameInfo.round = StrSave("-"); + } + if (first.twoMachinesColor[0] == 'w') { + gameInfo.white = StrSave(first.tidy); + gameInfo.black = StrSave(second.tidy); + } else { + gameInfo.white = StrSave(second.tidy); + gameInfo.black = StrSave(first.tidy); + } + gameInfo.timeControl = TimeControlTagValue(); + break; + + case EditGame: + gameInfo.event = StrSave("Edited game"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave("-"); + gameInfo.black = StrSave("-"); + break; + + case EditPosition: + gameInfo.event = StrSave("Edited position"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave("-"); + gameInfo.black = StrSave("-"); + break; + + case IcsPlayingWhite: + case IcsPlayingBlack: + case IcsObserving: + case IcsExamining: + break; + + case PlayFromGameFile: + gameInfo.event = StrSave("Game from non-PGN file"); + gameInfo.site = StrSave(HostName()); + gameInfo.date = PGNDate(); + gameInfo.round = StrSave("-"); + gameInfo.white = StrSave("?"); + gameInfo.black = StrSave("?"); + break; + + default: + break; + } +} + +void +ReplaceComment(index, text) + int index; + char *text; +{ + int len; + + while (*text == '\n') text++; + len = strlen(text); + while (len > 0 && text[len - 1] == '\n') len--; + + if (commentList[index] != NULL) + free(commentList[index]); + + if (len == 0) { + commentList[index] = NULL; + return; + } + commentList[index] = (char *) malloc(len + 2); + strncpy(commentList[index], text, len); + commentList[index][len] = '\n'; + commentList[index][len + 1] = NULLCHAR; +} + +void +AppendComment(index, text) + int index; + char *text; +{ + int oldlen, len; + char *old; + + while (*text == '\n') text++; + len = strlen(text); + while (len > 0 && text[len - 1] == '\n') len--; + + if (len == 0) return; + + if (commentList[index] != NULL) { + old = commentList[index]; + oldlen = strlen(old); + commentList[index] = (char *) malloc(oldlen + len + 2); + strcpy(commentList[index], old); + free(old); + strncpy(&commentList[index][oldlen], text, len); + commentList[index][oldlen + len] = '\n'; + commentList[index][oldlen + len + 1] = NULLCHAR; + } else { + commentList[index] = (char *) malloc(len + 2); + strncpy(commentList[index], text, len); + commentList[index][len] = '\n'; + commentList[index][len + 1] = NULLCHAR; + } +} + +void +SendToProgram(message, cps) + char *message; + ChessProgramState *cps; +{ + int count, outCount, error; + char buf[MSG_SIZ]; + + if (cps->pr == NULL) return; + Attention(cps); + + if (appData.debugMode) { + TimeMark now; + GetTimeMark(&now); + fprintf(debugFP, "%ld >%-6s: %s", + SubtractTimeMarks(&now, &programStartTime), + cps->which, message); + } + + count = strlen(message); + outCount = OutputToProcess(cps->pr, message, count, &error); + if (outCount < count && !exiting) { + sprintf(buf, "Error writing to %s chess program", cps->which); + DisplayFatalError(buf, error, 1); + } +} + +void +ReceiveFromProgram(isr, closure, message, count, error) + InputSourceRef isr; + VOIDSTAR closure; + char *message; + int count; + int error; +{ + char *end_str; + char buf[MSG_SIZ]; + ChessProgramState *cps = (ChessProgramState *)closure; + + if (isr != cps->isr) return; /* Killed intentionally */ + if (count <= 0) { + if (count == 0) { + sprintf(buf, + "Error: %s chess program (%s) exited unexpectedly", + cps->which, cps->program); + RemoveInputSource(cps->isr); + DisplayFatalError(buf, 0, 1); + } else { + sprintf(buf, + "Error reading from %s chess program (%s)", + cps->which, cps->program); + RemoveInputSource(cps->isr); + DisplayFatalError(buf, error, 1); + } + GameEnds((ChessMove) 0, NULL, GE_PLAYER); + return; + } + + if ((end_str = strchr(message, '\r')) != NULL) + *end_str = NULLCHAR; + if ((end_str = strchr(message, '\n')) != NULL) + *end_str = NULLCHAR; + + if (appData.debugMode) { + TimeMark now; + GetTimeMark(&now); + fprintf(debugFP, "%ld <%-6s: %s\n", + SubtractTimeMarks(&now, &programStartTime), + cps->which, message); + } + HandleMachineMove(message, cps); +} + + +void +SendTimeControl(cps, mps, tc, inc, sd, st) + ChessProgramState *cps; + int mps, inc, sd, st; + long tc; +{ + char buf[MSG_SIZ]; + int seconds = (tc / 1000) % 60; + + if (st > 0) { + /* Set exact time per move, normally using st command */ + if (cps->stKludge) { + /* GNU Chess 4 has no st command; uses level in a nonstandard way */ + seconds = st % 60; + if (seconds == 0) { + sprintf(buf, "level 1 %d\n", st/60); + } else { + sprintf(buf, "level 1 %d:%02d\n", st/60, seconds); + } + } else { + sprintf(buf, "st %d\n", st); + } + } else { + /* Set conventional or incremental time control, using level command */ + if (seconds == 0) { + /* Note old gnuchess bug -- minutes:seconds used to not work. + Fixed in later versions, but still avoid :seconds + when seconds is 0. */ + sprintf(buf, "level %d %ld %d\n", mps, tc/60000, inc/1000); + } else { + sprintf(buf, "level %d %ld:%02d %d\n", mps, tc/60000, + seconds, inc/1000); + } + } + SendToProgram(buf, cps); + + /* Orthoganally (except for GNU Chess 4), limit time to st seconds */ + /* Orthogonally, limit search to given depth */ + if (sd > 0) { + if (cps->sdKludge) { + sprintf(buf, "depth\n%d\n", sd); + } else { + sprintf(buf, "sd %d\n", sd); + } + SendToProgram(buf, cps); + } +} + +void +SendTimeRemaining(cps, machineWhite) + ChessProgramState *cps; + int /*boolean*/ machineWhite; +{ + char message[MSG_SIZ]; + long time, otime; + + /* Note: this routine must be called when the clocks are stopped + or when they have *just* been set or switched; otherwise + it will be off by the time since the current tick started. + */ + if (machineWhite) { + time = whiteTimeRemaining / 10; + otime = blackTimeRemaining / 10; + } else { + time = blackTimeRemaining / 10; + otime = whiteTimeRemaining / 10; + } + if (time <= 0) time = 1; + if (otime <= 0) otime = 1; + + sprintf(message, "time %ld\notim %ld\n", time, otime); + SendToProgram(message, cps); +} + +int +BoolFeature(p, name, loc, cps) + char **p; + char *name; + int *loc; + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + int len = strlen(name); + int val; + if (strncmp((*p), name, len) == 0 && (*p)[len] == '=') { + (*p) += len + 1; + sscanf(*p, "%d", &val); + *loc = (val != 0); + while (**p && **p != ' ') (*p)++; + sprintf(buf, "accepted %s\n", name); + SendToProgram(buf, cps); + return TRUE; + } + return FALSE; +} + +int +IntFeature(p, name, loc, cps) + char **p; + char *name; + int *loc; + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + int len = strlen(name); + if (strncmp((*p), name, len) == 0 && (*p)[len] == '=') { + (*p) += len + 1; + sscanf(*p, "%d", loc); + while (**p && **p != ' ') (*p)++; + sprintf(buf, "accepted %s\n", name); + SendToProgram(buf, cps); + return TRUE; + } + return FALSE; +} + +int +StringFeature(p, name, loc, cps) + char **p; + char *name; + char loc[]; + ChessProgramState *cps; +{ + char buf[MSG_SIZ]; + int len = strlen(name); + if (strncmp((*p), name, len) == 0 + && (*p)[len] == '=' && (*p)[len+1] == '\"') { + (*p) += len + 2; + sscanf(*p, "%[^\"]", loc); + while (**p && **p != '\"') (*p)++; + if (**p == '\"') (*p)++; + sprintf(buf, "accepted %s\n", name); + SendToProgram(buf, cps); + return TRUE; + } + return FALSE; +} + +void +FeatureDone(cps, val) + ChessProgramState* cps; + int val; +{ + DelayedEventCallback cb = GetDelayedEvent(); + if ((cb == InitBackEnd3 && cps == &first) || + (cb == TwoMachinesEventIfReady && cps == &second)) { + CancelDelayedEvent(); + ScheduleDelayedEvent(cb, val ? 1 : 3600000); + } + cps->initDone = val; +} + +/* Parse feature command from engine */ +void +ParseFeatures(args, cps) + char* args; + ChessProgramState *cps; +{ + char *p = args; + char *q; + int val; + char buf[MSG_SIZ]; + + for (;;) { + while (*p == ' ') p++; + if (*p == NULLCHAR) return; + + if (BoolFeature(&p, "setboard", &cps->useSetboard, cps)) continue; + if (BoolFeature(&p, "time", &cps->sendTime, cps)) continue; + if (BoolFeature(&p, "draw", &cps->sendDrawOffers, cps)) continue; + if (BoolFeature(&p, "sigint", &cps->useSigint, cps)) continue; + if (BoolFeature(&p, "sigterm", &cps->useSigterm, cps)) continue; + if (BoolFeature(&p, "reuse", &val, cps)) { + /* Engine can disable reuse, but can't enable it if user said no */ + if (!val) cps->reuse = FALSE; + continue; + } + if (BoolFeature(&p, "analyze", &cps->analysisSupport, cps)) continue; + if (StringFeature(&p, "myname", &cps->tidy, cps)) { + if (gameMode == TwoMachinesPlay) { + DisplayTwoMachinesTitle(); + } else { + DisplayTitle(""); + } + continue; + } + if (StringFeature(&p, "variants", &cps->variants, cps)) continue; + if (BoolFeature(&p, "san", &cps->useSAN, cps)) continue; + if (BoolFeature(&p, "ping", &cps->usePing, cps)) continue; + if (BoolFeature(&p, "playother", &cps->usePlayother, cps)) continue; + if (BoolFeature(&p, "colors", &cps->useColors, cps)) continue; + if (BoolFeature(&p, "usermove", &cps->useUsermove, cps)) continue; + if (BoolFeature(&p, "ics", &cps->sendICS, cps)) continue; + if (BoolFeature(&p, "name", &cps->sendName, cps)) continue; + if (BoolFeature(&p, "pause", &val, cps)) continue; /* unused at present */ + if (IntFeature(&p, "done", &val, cps)) { + FeatureDone(cps, val); + continue; + } + + /* unknown feature: complain and skip */ + q = p; + while (*q && *q != '=') q++; + sprintf(buf, "rejected %.*s\n", q-p, p); + SendToProgram(buf, cps); + p = q; + if (*p == '=') { + p++; + if (*p == '\"') { + p++; + while (*p && *p != '\"') p++; + if (*p == '\"') p++; + } else { + while (*p && *p != ' ') p++; + } + } + } + +} + +void +PeriodicUpdatesEvent(newState) + int newState; +{ + if (newState == appData.periodicUpdates) + return; + + appData.periodicUpdates=newState; + + /* Display type changes, so update it now */ + DisplayAnalysis(); + + /* Get the ball rolling again... */ + if (newState) { + AnalysisPeriodicEvent(1); + StartAnalysisClock(); + } +} + +void +PonderNextMoveEvent(newState) + int newState; +{ + if (newState == appData.ponderNextMove) return; + if (gameMode == EditPosition) EditPositionDone(); + if (newState) { + SendToProgram("hard\n", &first); + if (gameMode == TwoMachinesPlay) { + SendToProgram("hard\n", &second); + } + } else { + SendToProgram("easy\n", &first); + thinkOutput[0] = NULLCHAR; + if (gameMode == TwoMachinesPlay) { + SendToProgram("easy\n", &second); + } + } + appData.ponderNextMove = newState; +} + +void +ShowThinkingEvent(newState) + int newState; +{ + if (newState == appData.showThinking) return; + if (gameMode == EditPosition) EditPositionDone(); + if (newState) { + SendToProgram("post\n", &first); + if (gameMode == TwoMachinesPlay) { + SendToProgram("post\n", &second); + } + } else { + SendToProgram("nopost\n", &first); + thinkOutput[0] = NULLCHAR; + if (gameMode == TwoMachinesPlay) { + SendToProgram("nopost\n", &second); + } + } + appData.showThinking = newState; +} + +void +AskQuestionEvent(title, question, replyPrefix, which) + char *title; char *question; char *replyPrefix; char *which; +{ + ProcRef pr = (which[0] == '1') ? first.pr : second.pr; + if (pr == NoProc) return; + AskQuestion(title, question, replyPrefix, pr); +} + +void +DisplayMove(moveNumber) + int moveNumber; +{ + char message[MSG_SIZ]; + char res[MSG_SIZ]; + char cpThinkOutput[MSG_SIZ]; + + if (moveNumber == forwardMostMove - 1 || + gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + + strcpy(cpThinkOutput, thinkOutput); + if (strchr(cpThinkOutput, '\n')) + *strchr(cpThinkOutput, '\n') = NULLCHAR; + } else { + *cpThinkOutput = NULLCHAR; + } + + if (moveNumber == forwardMostMove - 1 && + gameInfo.resultDetails != NULL) { + if (gameInfo.resultDetails[0] == NULLCHAR) { + sprintf(res, " %s", PGNResult(gameInfo.result)); + } else { + sprintf(res, " {%s} %s", + gameInfo.resultDetails, PGNResult(gameInfo.result)); + } + } else { + res[0] = NULLCHAR; + } + + if (moveNumber < 0 || parseList[moveNumber][0] == NULLCHAR) { + DisplayMessage(res, cpThinkOutput); + } else { + sprintf(message, "%d.%s%s%s", moveNumber / 2 + 1, + WhiteOnMove(moveNumber) ? " " : ".. ", + parseList[moveNumber], res); + DisplayMessage(message, cpThinkOutput); + } +} + +void +DisplayAnalysisText(text) + char *text; +{ + char buf[MSG_SIZ]; + + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + sprintf(buf, "Analysis (%s)", first.tidy); + AnalysisPopUp(buf, text); + } +} + +static int +only_one_move(str) + char *str; +{ + while (*str && isspace(*str)) ++str; + while (*str && !isspace(*str)) ++str; + if (!*str) return 1; + while (*str && isspace(*str)) ++str; + if (!*str) return 1; + return 0; +} + +void +DisplayAnalysis() +{ + char buf[MSG_SIZ]; + double nps; + static char *xtra[] = { "", " (--)", " (++)" }; + int h, m, s, cs; + + if (programStats.time == 0) { + programStats.time = 1; + } + + if (programStats.got_only_move) { + strcpy(buf, programStats.movelist); + } else { + nps = (((double)programStats.nodes) / + (((double)programStats.time)/100.0)); + + cs = programStats.time % 100; + s = programStats.time / 100; + h = (s / (60*60)); + s = s - h*60*60; + m = (s/60); + s = s - m*60; + + if (programStats.moves_left > 0 && appData.periodicUpdates) { + if (programStats.move_name[0] != NULLCHAR) { + sprintf(buf, "depth=%d %d/%d(%s) %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d", + programStats.depth, + programStats.nr_moves-programStats.moves_left, + programStats.nr_moves, programStats.move_name, + ((float)programStats.score)/100.0, programStats.movelist, + only_one_move(programStats.movelist)? + xtra[programStats.got_fail] : "", + programStats.nodes, (int)nps, h, m, s, cs); + } else { + sprintf(buf, "depth=%d %d/%d %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d", + programStats.depth, + programStats.nr_moves-programStats.moves_left, + programStats.nr_moves, ((float)programStats.score)/100.0, + programStats.movelist, + only_one_move(programStats.movelist)? + xtra[programStats.got_fail] : "", + programStats.nodes, (int)nps, h, m, s, cs); + } + } else { + sprintf(buf, "depth=%d %+.2f %s%s\nNodes: %lu NPS: %d\nTime: %02d:%02d:%02d.%02d", + programStats.depth, + ((float)programStats.score)/100.0, + programStats.movelist, + only_one_move(programStats.movelist)? + xtra[programStats.got_fail] : "", + programStats.nodes, (int)nps, h, m, s, cs); + } + } + DisplayAnalysisText(buf); +} + +void +DisplayComment(moveNumber, text) + int moveNumber; + char *text; +{ + char title[MSG_SIZ]; + + if (moveNumber < 0 || parseList[moveNumber][0] == NULLCHAR) { + strcpy(title, "Comment"); + } else { + sprintf(title, "Comment on %d.%s%s", moveNumber / 2 + 1, + WhiteOnMove(moveNumber) ? " " : ".. ", + parseList[moveNumber]); + } + + CommentPopUp(title, text); +} + +/* This routine sends a ^C interrupt to gnuchess, to awaken it if it + * might be busy thinking or pondering. It can be omitted if your + * gnuchess is configured to stop thinking immediately on any user + * input. However, that gnuchess feature depends on the FIONREAD + * ioctl, which does not work properly on some flavors of Unix. + */ +void +Attention(cps) + ChessProgramState *cps; +{ +#if ATTENTION + if (!cps->useSigint) return; + if (appData.noChessProgram || (cps->pr == NoProc)) return; + switch (gameMode) { + case MachinePlaysWhite: + case MachinePlaysBlack: + case TwoMachinesPlay: + case IcsPlayingWhite: + case IcsPlayingBlack: + case AnalyzeMode: + case AnalyzeFile: + /* Skip if we know it isn't thinking */ + if (!cps->maybeThinking) return; + if (appData.debugMode) + fprintf(debugFP, "Interrupting %s\n", cps->which); + InterruptChildProcess(cps->pr); + cps->maybeThinking = FALSE; + break; + default: + break; + } +#endif /*ATTENTION*/ +} + +int +CheckFlags() +{ + if (whiteTimeRemaining <= 0) { + if (!whiteFlag) { + whiteFlag = TRUE; + if (appData.icsActive) { + if (appData.autoCallFlag && + gameMode == IcsPlayingBlack && !blackFlag) { + SendToICS(ics_prefix); + SendToICS("flag\n"); + } + } else { + if (blackFlag) { + DisplayTitle("Both flags fell"); + } else { + DisplayTitle("White's flag fell"); + if (appData.autoCallFlag) { + GameEnds(BlackWins, "Black wins on time", GE_XBOARD); + return TRUE; + } + } + } + } + } + if (blackTimeRemaining <= 0) { + if (!blackFlag) { + blackFlag = TRUE; + if (appData.icsActive) { + if (appData.autoCallFlag && + gameMode == IcsPlayingWhite && !whiteFlag) { + SendToICS(ics_prefix); + SendToICS("flag\n"); + } + } else { + if (whiteFlag) { + DisplayTitle("Both flags fell"); + } else { + DisplayTitle("Black's flag fell"); + if (appData.autoCallFlag) { + GameEnds(WhiteWins, "White wins on time", GE_XBOARD); + return TRUE; + } + } + } + } + } + return FALSE; +} + +void +CheckTimeControl() +{ + if (!appData.clockMode || appData.icsActive || + gameMode == PlayFromGameFile || forwardMostMove == 0) return; + + if (timeIncrement >= 0) { + if (WhiteOnMove(forwardMostMove)) { + blackTimeRemaining += timeIncrement; + } else { + whiteTimeRemaining += timeIncrement; + } + } + /* + * add time to clocks when time control is achieved + */ + if (movesPerSession) { + switch ((forwardMostMove + 1) % (movesPerSession * 2)) { + case 0: + /* White made time control */ + whiteTimeRemaining += timeControl; + break; + case 1: + /* Black made time control */ + blackTimeRemaining += timeControl; + break; + default: + break; + } + } +} + +void +DisplayBothClocks() +{ + int wom = gameMode == EditPosition ? + !blackPlaysFirst : WhiteOnMove(currentMove); + DisplayWhiteClock(whiteTimeRemaining, wom); + DisplayBlackClock(blackTimeRemaining, !wom); +} + + +/* Timekeeping seems to be a portability nightmare. I think everyone + has ftime(), but I'm really not sure, so I'm including some ifdefs + to use other calls if you don't. Clocks will be less accurate if + you have neither ftime nor gettimeofday. +*/ + +/* Get the current time as a TimeMark */ +void +GetTimeMark(tm) + TimeMark *tm; +{ +#if HAVE_GETTIMEOFDAY + + struct timeval timeVal; + struct timezone timeZone; + + gettimeofday(&timeVal, &timeZone); + tm->sec = (long) timeVal.tv_sec; + tm->ms = (int) (timeVal.tv_usec / 1000L); + +#else /*!HAVE_GETTIMEOFDAY*/ +#if HAVE_FTIME + +#include + struct timeb timeB; + + ftime(&timeB); + tm->sec = (long) timeB.time; + tm->ms = (int) timeB.millitm; + +#else /*!HAVE_FTIME && !HAVE_GETTIMEOFDAY*/ + tm->sec = (long) time(NULL); + tm->ms = 0; +#endif +#endif +} + +/* Return the difference in milliseconds between two + time marks. We assume the difference will fit in a long! +*/ +long +SubtractTimeMarks(tm2, tm1) + TimeMark *tm2, *tm1; +{ + return 1000L*(tm2->sec - tm1->sec) + + (long) (tm2->ms - tm1->ms); +} + + +/* + * Code to manage the game clocks. + * + * In tournament play, black starts the clock and then white makes a move. + * We give the human user a slight advantage if he is playing white---the + * clocks don't run until he makes his first move, so it takes zero time. + * Also, we don't account for network lag, so we could get out of sync + * with GNU Chess's clock -- but then, referees are always right. + */ + +static TimeMark tickStartTM; +static long intendedTickLength; + +long +NextTickLength(timeRemaining) + long timeRemaining; +{ + long nominalTickLength, nextTickLength; + + if (timeRemaining > 0L && timeRemaining <= 10000L) + nominalTickLength = 100L; + else + nominalTickLength = 1000L; + nextTickLength = timeRemaining % nominalTickLength; + if (nextTickLength <= 0) nextTickLength += nominalTickLength; + + return nextTickLength; +} + +/* Stop clocks and reset to a fresh time control */ +void +ResetClocks() +{ + (void) StopClockTimer(); + if (appData.icsActive) { + whiteTimeRemaining = blackTimeRemaining = 0; + } else { + whiteTimeRemaining = blackTimeRemaining = timeControl; + } + if (whiteFlag || blackFlag) { + DisplayTitle(""); + whiteFlag = blackFlag = FALSE; + } + DisplayBothClocks(); +} + +#define FUDGE 25 /* 25ms = 1/40 sec; should be plenty even for 50 Hz clocks */ + +/* Decrement running clock by amount of time that has passed */ +void +DecrementClocks() +{ + long timeRemaining; + long lastTickLength, fudge; + TimeMark now; + + if (!appData.clockMode) return; + if (gameMode==AnalyzeMode || gameMode == AnalyzeFile) return; + + GetTimeMark(&now); + + lastTickLength = SubtractTimeMarks(&now, &tickStartTM); + + /* Fudge if we woke up a little too soon */ + fudge = intendedTickLength - lastTickLength; + if (fudge < 0 || fudge > FUDGE) fudge = 0; + + if (WhiteOnMove(forwardMostMove)) { + timeRemaining = whiteTimeRemaining -= lastTickLength; + DisplayWhiteClock(whiteTimeRemaining - fudge, + WhiteOnMove(currentMove)); + } else { + timeRemaining = blackTimeRemaining -= lastTickLength; + DisplayBlackClock(blackTimeRemaining - fudge, + !WhiteOnMove(currentMove)); + } + + if (CheckFlags()) return; + + tickStartTM = now; + intendedTickLength = NextTickLength(timeRemaining - fudge) + fudge; + StartClockTimer(intendedTickLength); + + /* if the time remaining has fallen below the alarm threshold, sound the + * alarm. if the alarm has sounded and (due to a takeback or time control + * with increment) the time remaining has increased to a level above the + * threshold, reset the alarm so it can sound again. + */ + + if (appData.icsActive && appData.icsAlarm) { + + /* make sure we are dealing with the user's clock */ + if (!( ((gameMode == IcsPlayingWhite) && WhiteOnMove(currentMove)) || + ((gameMode == IcsPlayingBlack) && !WhiteOnMove(currentMove)) + )) return; + + if (alarmSounded && (timeRemaining > appData.icsAlarmTime)) { + alarmSounded = FALSE; + } else if (!alarmSounded && (timeRemaining <= appData.icsAlarmTime)) { + PlayAlarmSound(); + alarmSounded = TRUE; + } + } +} + + +/* A player has just moved, so stop the previously running + clock and (if in clock mode) start the other one. + We redisplay both clocks in case we're in ICS mode, because + ICS gives us an update to both clocks after every move. + Note that this routine is called *after* forwardMostMove + is updated, so the last fractional tick must be subtracted + from the color that is *not* on move now. +*/ +void +SwitchClocks() +{ + long lastTickLength; + TimeMark now; + int flagged = FALSE; + + GetTimeMark(&now); + + if (StopClockTimer() && appData.clockMode) { + lastTickLength = SubtractTimeMarks(&now, &tickStartTM); + if (WhiteOnMove(forwardMostMove)) { + blackTimeRemaining -= lastTickLength; + } else { + whiteTimeRemaining -= lastTickLength; + } + flagged = CheckFlags(); + } + CheckTimeControl(); + + if (flagged || !appData.clockMode) return; + + switch (gameMode) { + case MachinePlaysBlack: + case MachinePlaysWhite: + case BeginningOfGame: + if (pausing) return; + break; + + case EditGame: + case PlayFromGameFile: + case IcsExamining: + return; + + default: + break; + } + + tickStartTM = now; + intendedTickLength = NextTickLength(WhiteOnMove(forwardMostMove) ? + whiteTimeRemaining : blackTimeRemaining); + StartClockTimer(intendedTickLength); +} + + +/* Stop both clocks */ +void +StopClocks() +{ + long lastTickLength; + TimeMark now; + + if (!StopClockTimer()) return; + if (!appData.clockMode) return; + + GetTimeMark(&now); + + lastTickLength = SubtractTimeMarks(&now, &tickStartTM); + if (WhiteOnMove(forwardMostMove)) { + whiteTimeRemaining -= lastTickLength; + DisplayWhiteClock(whiteTimeRemaining, WhiteOnMove(currentMove)); + } else { + blackTimeRemaining -= lastTickLength; + DisplayBlackClock(blackTimeRemaining, !WhiteOnMove(currentMove)); + } + CheckFlags(); +} + +/* Start clock of player on move. Time may have been reset, so + if clock is already running, stop and restart it. */ +void +StartClocks() +{ + (void) StopClockTimer(); /* in case it was running already */ + DisplayBothClocks(); + if (CheckFlags()) return; + + if (!appData.clockMode) return; + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) return; + + GetTimeMark(&tickStartTM); + intendedTickLength = NextTickLength(WhiteOnMove(forwardMostMove) ? + whiteTimeRemaining : blackTimeRemaining); + StartClockTimer(intendedTickLength); +} + +char * +TimeString(ms) + long ms; +{ + long second, minute, hour, day; + char *sign = ""; + static char buf[32]; + + if (ms > 0 && ms <= 9900) { + /* convert milliseconds to tenths, rounding up */ + double tenths = floor( ((double)(ms + 99L)) / 100.00 ); + + sprintf(buf, " %03.1f ", tenths/10.0); + return buf; + } + + /* convert milliseconds to seconds, rounding up */ + /* use floating point to avoid strangeness of integer division + with negative dividends on many machines */ + second = (long) floor(((double) (ms + 999L)) / 1000.0); + + if (second < 0) { + sign = "-"; + second = -second; + } + + day = second / (60 * 60 * 24); + second = second % (60 * 60 * 24); + hour = second / (60 * 60); + second = second % (60 * 60); + minute = second / 60; + second = second % 60; + + if (day > 0) + sprintf(buf, " %s%ld:%02ld:%02ld:%02ld ", + sign, day, hour, minute, second); + else if (hour > 0) + sprintf(buf, " %s%ld:%02ld:%02ld ", sign, hour, minute, second); + else + sprintf(buf, " %s%2ld:%02ld ", sign, minute, second); + + return buf; +} + + +/* + * This is necessary because some C libraries aren't ANSI C compliant yet. + */ +char * +StrStr(string, match) + char *string, *match; +{ + int i, length; + + length = strlen(match); + + for (i = strlen(string) - length; i >= 0; i--, string++) + if (!strncmp(match, string, length)) + return string; + + return NULL; +} + +char * +StrCaseStr(string, match) + char *string, *match; +{ + int i, j, length; + + length = strlen(match); + + for (i = strlen(string) - length; i >= 0; i--, string++) { + for (j = 0; j < length; j++) { + if (ToLower(match[j]) != ToLower(string[j])) + break; + } + if (j == length) return string; + } + + return NULL; +} + +#ifndef _amigados +int +StrCaseCmp(s1, s2) + char *s1, *s2; +{ + char c1, c2; + + for (;;) { + c1 = ToLower(*s1++); + c2 = ToLower(*s2++); + if (c1 > c2) return 1; + if (c1 < c2) return -1; + if (c1 == NULLCHAR) return 0; + } +} + + +int +ToLower(c) + int c; +{ + return isupper(c) ? tolower(c) : c; +} + + +int +ToUpper(c) + int c; +{ + return islower(c) ? toupper(c) : c; +} +#endif /* !_amigados */ + +char * +StrSave(s) + char *s; +{ + char *ret; + + if ((ret = (char *) malloc(strlen(s) + 1))) { + strcpy(ret, s); + } + return ret; +} + +char * +StrSavePtr(s, savePtr) + char *s, **savePtr; +{ + if (*savePtr) { + free(*savePtr); + } + if ((*savePtr = (char *) malloc(strlen(s) + 1))) { + strcpy(*savePtr, s); + } + return(*savePtr); +} + +char * +PGNDate() +{ + time_t clock; + struct tm *tm; + char buf[MSG_SIZ]; + + clock = time((time_t *)NULL); + tm = localtime(&clock); + sprintf(buf, "%04d.%02d.%02d", + tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday); + return StrSave(buf); +} + + +char * +PositionToFEN(move) + int move; +{ + int i, j, fromX, fromY, toX, toY; + int whiteToPlay; + char buf[128]; + char *p, *q; + int emptycount; + + whiteToPlay = (gameMode == EditPosition) ? + !blackPlaysFirst : (move % 2 == 0); + p = buf; + + /* Piece placement data */ + for (i = BOARD_SIZE - 1; i >= 0; i--) { + emptycount = 0; + for (j = 0; j < BOARD_SIZE; j++) { + if (boards[move][i][j] == EmptySquare) { + emptycount++; + } else { + if (emptycount > 0) { + *p++ = '0' + emptycount; + emptycount = 0; + } + *p++ = PieceToChar(boards[move][i][j]); + } + } + if (emptycount > 0) { + *p++ = '0' + emptycount; + emptycount = 0; + } + *p++ = '/'; + } + *(p - 1) = ' '; + + /* Active color */ + *p++ = whiteToPlay ? 'w' : 'b'; + *p++ = ' '; + + /* !!We don't keep track of castling availability, so fake it */ + q = p; + if (boards[move][0][4] == WhiteKing) { + if (boards[move][0][7] == WhiteRook) *p++ = 'K'; + if (boards[move][0][0] == WhiteRook) *p++ = 'Q'; + } + if (boards[move][7][4] == BlackKing) { + if (boards[move][7][7] == BlackRook) *p++ = 'k'; + if (boards[move][7][0] == BlackRook) *p++ = 'q'; + } + if (q == p) *p++ = '-'; + *p++ = ' '; + + /* En passant target square */ + if (move > backwardMostMove) { + fromX = moveList[move - 1][0] - 'a'; + fromY = moveList[move - 1][1] - '1'; + toX = moveList[move - 1][2] - 'a'; + toY = moveList[move - 1][3] - '1'; + if (fromY == (whiteToPlay ? 6 : 1) && + toY == (whiteToPlay ? 4 : 3) && + boards[move][toY][toX] == (whiteToPlay ? BlackPawn : WhitePawn) && + fromX == toX) { + /* 2-square pawn move just happened */ + *p++ = toX + 'a'; + *p++ = whiteToPlay ? '6' : '3'; + } else { + *p++ = '-'; + } + } else { + *p++ = '-'; + } + + /* !!We don't keep track of halfmove clock for 50-move rule */ + strcpy(p, " 0 "); + p += 3; + + /* Fullmove number */ + sprintf(p, "%d", (move / 2) + 1); + + return StrSave(buf); +} + +Boolean +ParseFEN(board, blackPlaysFirst, fen) + Board board; + int *blackPlaysFirst; + char *fen; +{ + int i, j; + char *p; + int emptycount; + + p = fen; + + /* Piece placement data */ + for (i = BOARD_SIZE - 1; i >= 0; i--) { + j = 0; + for (;;) { + if (*p == '/' || *p == ' ') { + if (*p == '/') p++; + emptycount = BOARD_SIZE - j; + while (emptycount--) board[i][j++] = EmptySquare; + break; + } else if (isdigit(*p)) { + emptycount = *p++ - '0'; + if (j + emptycount > BOARD_SIZE) return FALSE; + while (emptycount--) board[i][j++] = EmptySquare; + } else if (isalpha(*p)) { + if (j >= BOARD_SIZE) return FALSE; + board[i][j++] = CharToPiece(*p++); + } else { + return FALSE; + } + } + } + while (*p == '/' || *p == ' ') p++; + + /* Active color */ + switch (*p) { + case 'w': + *blackPlaysFirst = FALSE; + break; + case 'b': + *blackPlaysFirst = TRUE; + break; + default: + return FALSE; + } + /* !!We ignore the rest of the FEN notation */ + return TRUE; +} + +void +EditPositionPasteFEN(char *fen) +{ + if (fen != NULL) { + Board initial_position; + + if (!ParseFEN(initial_position, &blackPlaysFirst, fen)) { + DisplayError("Bad FEN position in clipboard", 0); + return ; + } else { + int savedBlackPlaysFirst = blackPlaysFirst; + EditPositionEvent(); + blackPlaysFirst = savedBlackPlaysFirst; + CopyBoard(boards[0], initial_position); + EditPositionDone(); + DisplayBothClocks(); + DrawPosition(FALSE, boards[currentMove]); + } + } +} diff --git a/backend.h b/backend.h new file mode 100644 index 0000000..9e1fbb0 --- /dev/null +++ b/backend.h @@ -0,0 +1,243 @@ +/* + * backend.h -- Interface exported by XBoard back end + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ +#ifndef _BACKEND +#define _BACKEND + +#include "lists.h" +#include "frontend.h" + +extern int gotPremove; +extern GameMode gameMode; +extern int pausing, cmailMsgLoaded, flipView; +extern char white_holding[], black_holding[]; +extern int currentMove, backwardMostMove, forwardMostMove; +extern int blackPlaysFirst; +extern FILE *debugFP; +extern char* programVersion; +extern ProcRef firstProgramPR, secondProgramPR; +extern Board boards[]; + +char *CmailMsg P((void)); +char *PositionToFEN P((int move)); +void EditPositionPasteFEN P((char *fen)); +void TimeDelay P((long ms)); +void SendMultiLineToICS P(( char *text )); +void AnalysisPeriodicEvent P((int force)); +void SetWhiteToPlayEvent P((void)); +void SetBlackToPlayEvent P((void)); +void InitBackEnd1 P((void)); +void InitBackEnd2 P((void)); +int IsPromotion P((int fromX, int fromY, int toX, int toY)); +int PieceForSquare P((int x, int y)); +int OKToStartUserMove P((int x, int y)); +void Reset P((int redraw, int init)); +void ResetGameEvent P((void)); +int LoadGame P((FILE *f, int n, char *title, int useList)); +int LoadGameFromFile P((char *filename, int n, char *title, int useList)); +int CmailLoadGame P((FILE *f, int n, char *title, int useList)); +int ReloadGame P((int offset)); +int SaveGame P((FILE *f, int dummy, char *dummy2)); +int SaveGameToFile P((char *filename, int append)); +int LoadPosition P((FILE *f, int n, char *title)); +int ReloadPosition P((int offset)); +int SavePosition P((FILE *f, int dummy, char *dummy2)); +void EditPositionEvent P((void)); +void FlipViewEvent P((void)); +void MachineWhiteEvent P((void)); +void MachineBlackEvent P((void)); +void TwoMachinesEvent P((void)); +void EditGameEvent P((void)); +void TrainingEvent P((void)); +void IcsClientEvent P((void)); +void ForwardEvent P((void)); +void BackwardEvent P((void)); +void ToEndEvent P((void)); +void ToStartEvent P((void)); +void ToNrEvent P((int to)); +void RevertEvent P((void)); +void RetractMoveEvent P((void)); +void MoveNowEvent P((void)); +void TruncateGameEvent P((void)); +void PauseEvent P((void)); +void CallFlagEvent P((void)); +void AcceptEvent P((void)); +void DeclineEvent P((void)); +void RematchEvent P((void)); +void DrawEvent P((void)); +void AbortEvent P((void)); +void AdjournEvent P((void)); +void ResignEvent P((void)); +void StopObservingEvent P((void)); +void StopExaminingEvent P((void)); +void PonderNextMoveEvent P((int newState)); +void ShowThinkingEvent P((int newState)); +void PeriodicUpdatesEvent P((int newState)); +void HintEvent P((void)); +void BookEvent P((void)); +void AboutGameEvent P((void)); +void ExitEvent P((int status)); +char *DefaultFileName P((char *)); +void UserMoveEvent P((int fromX, int fromY, int toX, int toY, int promoChar)); +void DecrementClocks P((void)); +char *TimeString P((long millisec)); +void AutoPlayGameLoop P((void)); +void DisplayBothClocks P((void)); +void EditPositionMenuEvent P((ChessSquare selection, int x, int y)); +void DropMenuEvent P((ChessSquare selection, int x, int y)); +int ParseTimeControl P((char *tc, int ti, int mps)); +void ProcessICSInitScript P((FILE * f)); +void EditCommentEvent P((void)); +void ReplaceComment P((int index, char *text)); +int ReplaceTags P((char *tags, GameInfo *gi));/* returns nonzero on error */ +void AppendComment P((int index, char *text)); +void ReloadCmailMsgEvent P((int unregister)); +void MailMoveEvent P((void)); +void EditTagsEvent P((void)); +void GetMoveListEvent P((void)); +void ExitAnalyzeMode P((void)); +void AnalyzeModeEvent P((void)); +void AnalyzeFileEvent P((void)); +void DoEcho P((void)); +void DontEcho P((void)); +void TidyProgramName P((char *prog, char *host, char *buf)); +void AskQuestionEvent P((char *title, char *question, + char *replyPrefix, char *which)); +Boolean ParseOneMove P((char *move, int moveNum, + ChessMove *moveType, int *fromX, int *fromY, + int *toX, int *toY, char *promoChar)); +char *VariantName P((VariantClass v)); +VariantClass StringToVariant P((char *e)); + +char *StrStr P((char *string, char *match)); +char *StrCaseStr P((char *string, char *match)); +char *StrSave P((char *s)); +char *StrSavePtr P((char *s, char **savePtr)); + +#ifndef _amigados +int StrCaseCmp P((char *s1, char *s2)); +int ToLower P((int c)); +int ToUpper P((int c)); +#else +#define StrCaseCmp Stricmp /* Use utility.library functions */ +#include +#endif + +extern GameInfo gameInfo; + + +/* pgntags.c prototypes + */ +char *PGNTags P((GameInfo *)); +void PrintPGNTags P((FILE *f, GameInfo *)); +int ParsePGNTag P((char *, GameInfo *)); +char *PGNResult P((ChessMove result)); + + +/* gamelist.c prototypes + */ +/* A game node in the double linked list of games. + */ +typedef struct _ListGame { + ListNode node; + int number; + unsigned long offset; /* Byte offset of game within file. */ + GameInfo gameInfo; /* Note that some entries may be NULL. */ +} ListGame; + +extern List gameList; +void ClearGameInfo P((GameInfo *)); +int GameListBuild P((FILE *)); +void GameListInitGameInfo P((GameInfo *)); +char *GameListLine P((int, GameInfo *)); + +extern char* StripHighlight P((char *)); /* returns static data */ +extern char* StripHighlightAndTitle P((char *)); /* returns static data */ + + +typedef struct _CPS { + char *which; + int maybeThinking; + ProcRef pr; + InputSourceRef isr; + char *twoMachinesColor; /* "white\n" or "black\n" */ + char *program; + char *host; + char *dir; + struct _CPS *other; + char *initString; + char *computerString; + int sendTime; /* 0=don't, 1=do, 2=test */ + int sendDrawOffers; + int useSigint; + int useSigterm; + int offeredDraw; /* countdown */ + int reuse; + int useSetboard; /* 0=use "edit"; 1=use "setboard" */ + int useSAN; /* 0=use coordinate notation; 1=use SAN */ + int usePing; /* 0=not OK to use ping; 1=OK */ + int lastPing; + int lastPong; + int usePlayother;/* 0=not OK to use playother; 1=OK */ + int useColors; /* 0=avoid obsolete white/black commands; 1=use them */ + int useUsermove; /* 0=just send move; 1=send "usermove move" */ + int sendICS; /* 0=don't use "ics" command; 1=do */ + int sendName; /* 0=don't use "name" command; 1=do */ + int sdKludge; /* 0=use "sd DEPTH" command; 1=use "depth\nDEPTH" */ + int stKludge; /* 0=use "st TIME" command; 1=use "level 1 TIME" */ + char tidy[MSG_SIZ]; + int matchWins; + char variants[MSG_SIZ]; + int analysisSupport; + int analyzing; + int protocolVersion; + int initDone; +} ChessProgramState; + +extern ChessProgramState first, second; + +#endif /* _BACKEND */ diff --git a/backendz.h b/backendz.h new file mode 100644 index 0000000..3bab93f --- /dev/null +++ b/backendz.h @@ -0,0 +1,72 @@ +/* + * backendz.h -- Internal interface exported by XBoard backend.c to zippy.c + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#ifndef _BACKENDZ +#define _BACKENDZ + +#include "common.h" +#include "frontend.h" + +extern long whiteTimeRemaining, blackTimeRemaining; +extern int forwardMostMove; +extern char star_match[STAR_MATCH_N][MSG_SIZ]; +extern ProcRef firstProgramPR; +extern int startedFromSetupPosition; +extern int firstMove; +extern GameInfo gameInfo; +extern void SendToICS P((char *s)); +extern int looking_at P((char *, int *, char *)); +extern void SendToProgram P((char *message, ChessProgramState *cps)); +extern void SendBoard P((ChessProgramState *cps, int moveNum)); +void SendTimeRemaining P((ChessProgramState *cps, + int/*boolean*/ machineWhite)); + +extern char ics_handle[]; +extern char *ics_prefix; + +#endif diff --git a/bitmaps/README.bitmaps b/bitmaps/README.bitmaps new file mode 100644 index 0000000..b868cfd --- /dev/null +++ b/bitmaps/README.bitmaps @@ -0,0 +1,94 @@ +This directory provides bitmaps with the same size and naming +conventions as those distributed till xboard-3.** +These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE +coming with xboard. + +The bitmaps contained herein were converted from my MetaFont +version of chess font. These are designed very well to deliver +good rastered images on low resolution devices. The general +shape of these fonts are designed after very old typefaces +used in printing chess books. They are not as fancy as the +currently used bitmaps of xboard, but I like them in their +'san serif'-ness - may be others too. + The MetaFont source of this font may be obtained from me +under the GNU GENERAL PUBLIC LICENSE. + To convert the pk-Files to bitmaps I used the conversion tool +mftobdf to generate X11-bdf - fonts, and then used a small C +program, to write the xbm-files. + +5.Feb.1994 Elmar Bartel +bartel@informatik.tu-muenchen.de + +[Elmar supplied only 80, 64, and 40 pixel bitmaps] + +* * * + +The 21-pixel bitmaps are also based on Elmar's font, but I hand-tuned +them quite a bit. I converted them from the Metafont gf file by +running gftype and applying a C program of my own to the +human-readable output. + +icon_white and icon_black were produced in the same way. + +21 Nov 1995 Tim Mann + +* * * + +The 33, 45, 49, 54, and 58 pixel bitmaps are also based on Elmar's font. +They were converted using dopkbm.sh, followed by a manual pass with the +X bitmap editor to adjust the size (adding blank borders as needed) and +to hand-tune the pixels in a few cases where that was badly needed. +Here is some data that may be useful in later conversions: + +Character numbers in fselch fonts: + +Piece Open Solid Open/bg Solid/bg +P 0 014 022 036 +N 1 015 023 037 +B 2 016 024 040 +R 3 017 025 041 +Q 4 020 026 042 +K 5 021 027 043 + +Sizes (WxH): + +fselch*.mf blank sq queen used for +---------- -------- ----- -------- +8 33x33 31x29 33x33 +9 37x37 33x32 none +10 42x42 41x37 none +11 46x46 43x41 45x45 +12 50x50 47x43 49x49 +13 54x54 50x47 54x54 +14 58x58 56x50 58x58 +20 83x83 71x76 none +21 87x87 76x81 87x87 +22 91x91 79x83 none +23 95x95 82x89 95x95 +25 104x104 91x99 none +26 108x108 94x103 108x108 +28 116x116 99x107 116x116 +30 125x125 110x118 none +31 129x129 113x122 129x129 +32 133x133 116x124 none + + +In each case, fselch*.mf was formatted for 300 dpi. On Linux with the +Red Hat tetex-0.4pl8-9 package, this required mag=0.5. Example: + + mf + \mode=localfont; mag=0.5; input fselch8.mf + gftopk fselch8.300gf + +On Red Hat with tetex-0.9-6, mag=1.0 was needed instead. + + mf + \mode=localfont; mag=1.0; input fselch26.mf + gftopk fselch26.300gf + + +15 Feb 1998 Tim Mann +25 Feb 1999 Tim Mann + +* * * + diff --git a/bitmaps/b108o.bm b/bitmaps/b108o.bm new file mode 100644 index 0000000..a10d231 --- /dev/null +++ b/bitmaps/b108o.bm @@ -0,0 +1,129 @@ +#define b108o_width 108 +#define b108o_height 108 +static unsigned char b108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x8f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xdf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x8f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x03, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0xc0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x20, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x70, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xf0, 0xff, 0x7f, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xf0, + 0xff, 0x7f, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x70, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x70, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x20, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf8, + 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0xf0, 0xff, 0x7f, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xff, 0xff, 0xff, 0xbf, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, + 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x80, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdf, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x01, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x7f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xdf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0xc0, 0x8f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x0e, 0xf8, 0xff, 0x00, 0xf8, 0x03, 0xfe, 0x00, 0xf8, 0xff, 0x80, + 0x03, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xc7, 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0x07, 0x00, 0xff, 0x07, + 0x00, 0x00, 0xff, 0x07, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b108s.bm b/bitmaps/b108s.bm new file mode 100644 index 0000000..c6d4c3f --- /dev/null +++ b/bitmaps/b108s.bm @@ -0,0 +1,129 @@ +#define b108s_width 108 +#define b108s_height 108 +static unsigned char b108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x8f, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0x8f, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x8f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x80, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x80, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, + 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x8f, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x8f, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x8f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, + 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc0, 0xff, 0x1f, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xc0, + 0xff, 0x1f, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xdf, 0xff, 0xff, 0xff, 0xdf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0x07, 0x00, 0xff, 0x07, 0x00, 0x00, + 0xff, 0x07, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b116o.bm b/bitmaps/b116o.bm new file mode 100644 index 0000000..ae28492 --- /dev/null +++ b/bitmaps/b116o.bm @@ -0,0 +1,148 @@ +#define b116o_width 116 +#define b116o_height 116 +static unsigned char b116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x02, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x07, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x07, 0x00, + 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0xff, 0xff, 0x07, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xff, 0xff, 0x07, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x07, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x80, 0xff, 0xff, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x80, 0xff, 0xff, 0x0f, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xff, + 0xff, 0xff, 0xff, 0x77, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0x00, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x80, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x03, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x03, 0xe0, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xfd, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0xe0, 0x1f, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x38, 0xc0, 0xff, 0xff, 0xff, + 0x0f, 0x80, 0xff, 0xff, 0xff, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x78, 0xfc, + 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xf1, 0x00, 0x00, + 0x00, 0x70, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x77, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b116s.bm b/bitmaps/b116s.bm new file mode 100644 index 0000000..25c32ff --- /dev/null +++ b/bitmaps/b116s.bm @@ -0,0 +1,148 @@ +#define b116s_width 116 +#define b116s_height 116 +static unsigned char b116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xf8, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xf8, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0xf0, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xf8, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x07, 0xfe, 0xff, 0x03, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, + 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xfe, 0xff, 0x03, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x3f, 0xf8, 0xff, 0xff, 0xff, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0xe0, + 0xff, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b129o.bm b/bitmaps/b129o.bm new file mode 100644 index 0000000..5aee87c --- /dev/null +++ b/bitmaps/b129o.bm @@ -0,0 +1,186 @@ +#define b129o_width 129 +#define b129o_height 129 +static unsigned char b129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x07, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xf0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x07, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xc0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x80, 0x01, 0x00, 0xc0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0xc0, 0x03, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xe0, 0xff, 0xff, + 0x07, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0xe0, 0xff, 0xff, 0x07, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xfc, 0xff, 0xff, 0x3f, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x07, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, + 0xff, 0xff, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xfc, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1f, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0x3f, 0x00, 0xfc, 0x07, 0xe0, 0x3f, 0x00, 0xfc, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0xe0, + 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0xfc, 0x3f, 0x00, 0x00, + 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xf8, 0xc0, 0xff, 0x3f, 0x00, + 0xf8, 0x3f, 0xfc, 0x1f, 0x00, 0xfc, 0xff, 0x03, 0x1f, 0x00, 0x00, 0x00, + 0xf0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xf0, + 0xff, 0x07, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b129s.bm b/bitmaps/b129s.bm new file mode 100644 index 0000000..df05f20 --- /dev/null +++ b/bitmaps/b129s.bm @@ -0,0 +1,186 @@ +#define b129s_width 129 +#define b129s_height 129 +static unsigned char b129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x7f, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0xfc, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0x3f, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0xfc, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0x0f, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, + 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0x3f, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0xfc, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf1, 0xff, 0xff, 0x8f, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, + 0x80, 0xff, 0xff, 0x01, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x1f, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0xf8, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0xe0, + 0xff, 0x07, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b21o.bm b/bitmaps/b21o.bm new file mode 100644 index 0000000..43cc7cb --- /dev/null +++ b/bitmaps/b21o.bm @@ -0,0 +1,9 @@ +#define b21o_width 21 +#define b21o_height 21 +static unsigned char b21o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x1b, 0x00, + 0x80, 0x31, 0x00, 0xc0, 0x60, 0x00, 0x60, 0xc4, 0x00, 0x20, 0x84, 0x00, + 0x20, 0x9f, 0x00, 0x20, 0x84, 0x00, 0x60, 0xc4, 0x00, 0xc0, 0x60, 0x00, + 0x80, 0x3f, 0x00, 0xc0, 0x60, 0x00, 0xc0, 0x7f, 0x00, 0x40, 0x40, 0x00, + 0x9c, 0x3f, 0x07, 0xe6, 0xf1, 0x0c, 0x06, 0x0e, 0x0c, 0xfc, 0xfb, 0x07, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/b21s.bm b/bitmaps/b21s.bm new file mode 100644 index 0000000..526eac0 --- /dev/null +++ b/bitmaps/b21s.bm @@ -0,0 +1,9 @@ +#define b21s_width 21 +#define b21s_height 21 +static unsigned char b21s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x1f, 0x00, + 0x80, 0x3f, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xfb, 0x00, 0xe0, 0xfb, 0x00, + 0xe0, 0xe0, 0x00, 0xe0, 0xfb, 0x00, 0xe0, 0xfb, 0x00, 0xc0, 0x7f, 0x00, + 0x80, 0x20, 0x00, 0xc0, 0x7f, 0x00, 0x40, 0x40, 0x00, 0xc0, 0x7f, 0x00, + 0x1c, 0x1f, 0x07, 0xbe, 0xbf, 0x0f, 0xfe, 0xfb, 0x0f, 0xfc, 0xf1, 0x07, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/b25o.bm b/bitmaps/b25o.bm new file mode 100644 index 0000000..a7ee545 --- /dev/null +++ b/bitmaps/b25o.bm @@ -0,0 +1,12 @@ +#define b25o_width 25 +#define b25o_height 25 +static unsigned char b25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, + 0x00, 0x28, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, + 0x00, 0x83, 0x01, 0x00, 0x80, 0x00, 0x02, 0x00, 0x40, 0x10, 0x04, 0x00, + 0x40, 0x10, 0x04, 0x00, 0x40, 0x7c, 0x04, 0x00, 0x40, 0x10, 0x04, 0x00, + 0x40, 0x10, 0x04, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0xff, 0x01, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x80, 0x00, 0x02, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0x28, 0x00, 0x00, 0xfc, 0xc7, 0x7f, 0x00, + 0x04, 0x10, 0x40, 0x00, 0xf8, 0x6c, 0x3e, 0x00, 0x08, 0x83, 0x21, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b25s.bm b/bitmaps/b25s.bm new file mode 100644 index 0000000..a8bfc52 --- /dev/null +++ b/bitmaps/b25s.bm @@ -0,0 +1,12 @@ +#define b25s_width 25 +#define b25s_height 25 +static unsigned char b25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x80, 0xff, 0x03, 0x00, 0xc0, 0xef, 0x07, 0x00, + 0xc0, 0xef, 0x07, 0x00, 0xc0, 0x83, 0x07, 0x00, 0xc0, 0xef, 0x07, 0x00, + 0xc0, 0xef, 0x07, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x83, 0x01, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0x38, 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x00, + 0xfc, 0xff, 0x7f, 0x00, 0xf8, 0xef, 0x3f, 0x00, 0x08, 0x83, 0x21, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b29o.bm b/bitmaps/b29o.bm new file mode 100644 index 0000000..8686213 --- /dev/null +++ b/bitmaps/b29o.bm @@ -0,0 +1,13 @@ +#define b29o_width 29 +#define b29o_height 29 +static unsigned char b29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xa0, 0x00, 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x10, 0x01, 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x41, 0x10, 0x00, 0x80, 0x40, 0x20, 0x00, 0x80, 0xf0, 0x21, 0x00, + 0x80, 0x40, 0x20, 0x00, 0x80, 0x40, 0x20, 0x00, 0x00, 0x01, 0x10, 0x00, + 0x00, 0x01, 0x10, 0x00, 0x00, 0xfa, 0x0b, 0x00, 0x00, 0x04, 0x04, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x03, 0x18, 0x00, + 0x00, 0xfc, 0x07, 0x00, 0x00, 0xb0, 0x01, 0x00, 0xf8, 0x0f, 0xfe, 0x03, + 0x04, 0x40, 0x00, 0x04, 0x48, 0xb0, 0x41, 0x02, 0xb8, 0x0f, 0xbe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b29s.bm b/bitmaps/b29s.bm new file mode 100644 index 0000000..f7712fd --- /dev/null +++ b/bitmaps/b29s.bm @@ -0,0 +1,13 @@ +#define b29s_width 29 +#define b29s_height 29 +static unsigned char b29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xfe, 0x0f, 0x00, + 0x00, 0xbf, 0x1f, 0x00, 0x80, 0xbf, 0x3f, 0x00, 0x80, 0x0f, 0x3e, 0x00, + 0x80, 0xbf, 0x3f, 0x00, 0x80, 0xbf, 0x3f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0x06, 0x0c, 0x00, 0x00, 0xf4, 0x05, 0x00, + 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0xfc, 0x07, 0x00, 0x00, 0xf0, 0x01, 0x00, 0xf8, 0xff, 0xff, 0x03, + 0xfc, 0xff, 0xff, 0x07, 0xf8, 0xbf, 0xff, 0x03, 0xb8, 0x0f, 0xbe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b33o.bm b/bitmaps/b33o.bm new file mode 100644 index 0000000..5df6da6 --- /dev/null +++ b/bitmaps/b33o.bm @@ -0,0 +1,39 @@ + +#define b33o_width 33 +#define b33o_height 33 +#define b33o_xoff 3 +#define b33o_yoff 2 +static unsigned char b33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x40, 0x04, 0x00, 0x00, + 0x00, 0x40, 0x04, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x02, 0x00, 0x00, + 0x00, 0x60, 0x0c, 0x00, 0x00, + 0x00, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x08, 0x20, 0x00, 0x00, + 0x00, 0x04, 0x41, 0x00, 0x00, + 0x00, 0x04, 0x41, 0x00, 0x00, + 0x00, 0x02, 0x81, 0x00, 0x00, + 0x00, 0xc2, 0x87, 0x00, 0x00, + 0x00, 0x02, 0x81, 0x00, 0x00, + 0x00, 0x02, 0x81, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x04, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x40, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, + 0x00, 0x08, 0x20, 0x00, 0x00, + 0x00, 0xf4, 0x5f, 0x00, 0x00, + 0x00, 0x0c, 0x60, 0x00, 0x00, + 0x00, 0x04, 0x40, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0x06, 0x00, 0x00, + 0xf0, 0x3f, 0xf8, 0x1f, 0x00, + 0x08, 0x00, 0x01, 0x20, 0x00, + 0x08, 0xc0, 0x06, 0x20, 0x00, + 0xf0, 0x3f, 0xf8, 0x1f, 0x00, + 0x10, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b33s.bm b/bitmaps/b33s.bm new file mode 100644 index 0000000..5549c81 --- /dev/null +++ b/bitmaps/b33s.bm @@ -0,0 +1,39 @@ + +#define b33s_width 33 +#define b33s_height 33 +#define b33s_xoff 3 +#define b33s_yoff 2 +static unsigned char b33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0xe0, 0x0f, 0x00, 0x00, + 0x00, 0xf0, 0x1f, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, + 0x00, 0xfc, 0x7e, 0x00, 0x00, + 0x00, 0xfc, 0x7e, 0x00, 0x00, + 0x00, 0xfe, 0xfe, 0x00, 0x00, + 0x00, 0x1e, 0xf0, 0x00, 0x00, + 0x00, 0xfe, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfc, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0x7f, 0x00, 0x00, + 0x00, 0x08, 0x20, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, + 0x00, 0x3c, 0x78, 0x00, 0x00, + 0x00, 0x84, 0x43, 0x00, 0x00, + 0x00, 0xfc, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0x1f, 0x00, + 0xf8, 0xff, 0xff, 0x3f, 0x00, + 0xf8, 0xff, 0xfe, 0x3f, 0x00, + 0xf0, 0x3f, 0xf8, 0x1f, 0x00, + 0x10, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b37o.bm b/bitmaps/b37o.bm new file mode 100644 index 0000000..b25c5d5 --- /dev/null +++ b/bitmaps/b37o.bm @@ -0,0 +1,19 @@ +#define b37o_width 37 +#define b37o_height 37 +static unsigned char b37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x00, 0x00, 0xc0, 0x60, + 0x00, 0x00, 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, + 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x08, 0x04, 0x02, 0x00, 0x00, 0x04, + 0x04, 0x04, 0x00, 0x00, 0x84, 0x3f, 0x04, 0x00, 0x00, 0x04, 0x04, 0x04, + 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, 0x00, 0x04, 0x04, 0x04, 0x00, 0x00, + 0x08, 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x10, 0x00, + 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x18, + 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0x03, 0x00, 0x00, 0xe0, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x0b, 0x00, 0x00, 0x00, 0xc3, 0x60, 0x18, 0x00, 0xf0, + 0x3c, 0x84, 0xe7, 0x01, 0x08, 0x00, 0x1b, 0x00, 0x02, 0xd0, 0xff, 0xe0, + 0x7f, 0x01, 0x30, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b37s.bm b/bitmaps/b37s.bm new file mode 100644 index 0000000..9baa133 --- /dev/null +++ b/bitmaps/b37s.bm @@ -0,0 +1,19 @@ +#define b37s_width 37 +#define b37s_height 37 +static unsigned char b37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x7f, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, + 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0xf8, 0xfb, 0x03, 0x00, 0x00, 0xfc, + 0xfb, 0x07, 0x00, 0x00, 0x7c, 0xc0, 0x07, 0x00, 0x00, 0xfc, 0xfb, 0x07, + 0x00, 0x00, 0xfc, 0xfb, 0x07, 0x00, 0x00, 0xfc, 0xfb, 0x07, 0x00, 0x00, + 0xf8, 0xff, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, + 0x01, 0x00, 0x00, 0x30, 0x80, 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0xf8, + 0xff, 0x03, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xc3, 0x7f, 0x18, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x01, 0xf8, 0xff, 0xfb, 0xff, 0x03, 0xf0, 0xff, 0xe0, + 0xff, 0x01, 0x30, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b40o.bm b/bitmaps/b40o.bm new file mode 100644 index 0000000..a9b2c84 --- /dev/null +++ b/bitmaps/b40o.bm @@ -0,0 +1,20 @@ +#define b40o_width 40 +#define b40o_height 40 +static unsigned char b40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x44, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x44, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0x80, 0x00, + 0x02, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, + 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x10, 0x10, 0x10, 0x00, 0x00, 0x08, + 0x10, 0x20, 0x00, 0x00, 0x08, 0xfe, 0x20, 0x00, 0x00, 0x08, 0x10, 0x20, + 0x00, 0x00, 0x08, 0x10, 0x20, 0x00, 0x00, 0x08, 0x10, 0x20, 0x00, 0x00, + 0x10, 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x20, 0x00, + 0x08, 0x00, 0x00, 0x20, 0xff, 0x09, 0x00, 0x00, 0xc0, 0x00, 0x06, 0x00, + 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0x00, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0x70, 0x00, 0x1c, + 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, + 0x00, 0xc6, 0x00, 0x00, 0xc0, 0xff, 0x01, 0xff, 0x07, 0x30, 0x00, 0x10, + 0x00, 0x18, 0x08, 0x00, 0x6c, 0x00, 0x20, 0xd0, 0xff, 0x83, 0xff, 0x17, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b40s.bm b/bitmaps/b40s.bm new file mode 100644 index 0000000..9fe76d7 --- /dev/null +++ b/bitmaps/b40s.bm @@ -0,0 +1,20 @@ +#define b40s_width 40 +#define b40s_height 40 +static unsigned char b40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, + 0x03, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x00, 0xf0, 0xef, 0x1f, 0x00, 0x00, 0xf0, 0xef, 0x1f, 0x00, 0x00, 0xf8, + 0xef, 0x3f, 0x00, 0x00, 0xf8, 0x01, 0x3f, 0x00, 0x00, 0xf8, 0xef, 0x3f, + 0x00, 0x00, 0xf8, 0xef, 0x3f, 0x00, 0x00, 0xf8, 0xef, 0x3f, 0x00, 0x00, + 0xf0, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, + 0x0f, 0x00, 0x00, 0xe0, 0x01, 0x0f, 0x00, 0x00, 0x40, 0x38, 0x04, 0x00, + 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x20, + 0x00, 0x08, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0x1f, + 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, + 0xff, 0x1f, 0xf8, 0xff, 0xef, 0xff, 0x3f, 0xf0, 0xff, 0x83, 0xff, 0x1f, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b45o.bm b/bitmaps/b45o.bm new file mode 100644 index 0000000..bb40183 --- /dev/null +++ b/bitmaps/b45o.bm @@ -0,0 +1,51 @@ + +#define b45o_width 45 +#define b45o_height 45 +#define b45o_xoff 3 +#define b45o_yoff 2 +static unsigned char b45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xa0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x10, 0x40, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x40, 0x00, 0x01, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x02, 0x00, + 0x00, 0x08, 0xfc, 0x07, 0x02, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x40, 0x00, 0x02, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0xff, 0x5f, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, + 0x80, 0xff, 0x43, 0xf8, 0x3f, 0x00, + 0x70, 0x00, 0xb0, 0x01, 0xc0, 0x01, + 0x08, 0x00, 0x08, 0x02, 0x00, 0x02, + 0xc8, 0xff, 0x07, 0xfc, 0x7f, 0x02, + 0x30, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b45s.bm b/bitmaps/b45s.bm new file mode 100644 index 0000000..6a17e1a --- /dev/null +++ b/bitmaps/b45s.bm @@ -0,0 +1,51 @@ + +#define b45s_width 45 +#define b45s_height 45 +#define b45s_xoff 3 +#define b45s_yoff 2 +static unsigned char b45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xf0, 0xbf, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xbf, 0xff, 0x01, 0x00, + 0x00, 0xf8, 0xbf, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0x03, 0xf8, 0x03, 0x00, + 0x00, 0xf8, 0xbf, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0xbf, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0xbf, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0xbf, 0xff, 0x03, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x70, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0xff, 0x5f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0xf0, 0xff, 0xbf, 0xff, 0xff, 0x01, + 0xf8, 0xff, 0x0f, 0xfe, 0xff, 0x03, + 0xf8, 0xff, 0x07, 0xfc, 0xff, 0x03, + 0x30, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b49o.bm b/bitmaps/b49o.bm new file mode 100644 index 0000000..6b693f9 --- /dev/null +++ b/bitmaps/b49o.bm @@ -0,0 +1,55 @@ + +#define b49o_width 49 +#define b49o_height 49 +#define b49o_xoff 4 +#define b49o_yoff 3 +static unsigned char b49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x01, 0x04, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x01, 0x04, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x20, 0xf0, 0x1f, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x00, 0xf9, 0x3f, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x18, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x0f, 0xe1, 0xff, 0x01, 0x00, + 0xe0, 0x00, 0xc0, 0x06, 0x00, 0x0e, 0x00, + 0x10, 0x00, 0x30, 0x18, 0x00, 0x10, 0x00, + 0x10, 0xff, 0x0f, 0xe0, 0xff, 0x11, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b49s.bm b/bitmaps/b49s.bm new file mode 100644 index 0000000..89cccf4 --- /dev/null +++ b/bitmaps/b49s.bm @@ -0,0 +1,55 @@ + +#define b49s_width 49 +#define b49s_height 49 +#define b49s_xoff 4 +#define b49s_yoff 3 +static unsigned char b49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xfe, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xfe, 0x0f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0xe0, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x07, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfb, 0xbf, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0xe0, 0xff, 0xff, 0xfe, 0xff, 0x0f, 0x00, + 0xf0, 0xff, 0x3f, 0xf8, 0xff, 0x1f, 0x00, + 0xf0, 0xff, 0x0f, 0xe0, 0xff, 0x1f, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/b54o.bm b/bitmaps/b54o.bm new file mode 100644 index 0000000..54208e9 --- /dev/null +++ b/bitmaps/b54o.bm @@ -0,0 +1,35 @@ +#define b54o_width 54 +#define b54o_height 54 +static unsigned char b54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf3, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x0c, 0x70, 0x00, 0x00, 0x00, 0x80, 0x01, 0x0c, 0x60, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x0c, 0xe0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, + 0xc0, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xff, 0xc0, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0xff, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x0c, 0xc0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x0c, 0xc0, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x0c, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xff, 0x39, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xff, 0x1b, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x00, 0x80, 0x0f, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf3, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xc0, 0xff, 0x7f, 0x00, 0xe0, 0xff, 0x3f, 0x00, + 0xff, 0xff, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x30, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x03, 0x70, 0x00, 0x80, 0x7f, 0x00, 0x80, 0x03, + 0xe0, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x01, 0xc0, 0xff, 0x7f, 0x80, 0xff, + 0xff, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b54s.bm b/bitmaps/b54s.bm new file mode 100644 index 0000000..910346f --- /dev/null +++ b/bitmaps/b54s.bm @@ -0,0 +1,35 @@ +#define b54s_width 54 +#define b54s_height 54 +static unsigned char b54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xf3, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xf3, 0x7f, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xf3, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf3, + 0xff, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0xff, 0x00, 0x00, 0x00, 0xc0, + 0x3f, 0x00, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf3, 0xff, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xf3, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf3, 0xff, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf3, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x3f, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xf7, 0xff, 0xfb, 0x7f, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0xe0, 0xff, 0xff, 0xf3, 0xff, 0xff, 0x01, + 0xc0, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x00, 0x80, 0x01, 0x7f, 0x80, 0x3f, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b58o.bm b/bitmaps/b58o.bm new file mode 100644 index 0000000..3112b2d --- /dev/null +++ b/bitmaps/b58o.bm @@ -0,0 +1,42 @@ +#define b58o_width 58 +#define b58o_height 58 +static unsigned char b58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x30, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x80, 0x03, 0x30, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x01, 0x30, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0xff, + 0x03, 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0xff, 0x03, 0x06, 0x00, 0x00, + 0x00, 0x80, 0x01, 0x30, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0x30, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0x30, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x30, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x30, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcf, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, + 0xff, 0xff, 0x03, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xfc, 0xff, 0x0f, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x70, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x38, 0x00, 0x60, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x18, 0x00, + 0xe0, 0xfe, 0x01, 0xcf, 0x03, 0xfe, 0x1d, 0x00, 0xc0, 0xff, 0xff, 0x03, + 0xff, 0xff, 0x0f, 0x00, 0x80, 0x01, 0xfe, 0x00, 0xfc, 0x01, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b58s.bm b/bitmaps/b58s.bm new file mode 100644 index 0000000..4fc42f7 --- /dev/null +++ b/bitmaps/b58s.bm @@ -0,0 +1,42 @@ +#define b58s_width 58 +#define b58s_height 58 +static unsigned char b58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xcf, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xcf, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xcf, 0xff, 0x03, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xcf, 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x80, 0xff, 0x07, 0xfc, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0xc0, 0xff, 0xff, 0xcf, 0xff, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0xff, 0x03, + 0xff, 0xff, 0x0f, 0x00, 0x80, 0x03, 0xfe, 0x00, 0xfc, 0x01, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b64o.bm b/bitmaps/b64o.bm new file mode 100644 index 0000000..8aff5f4 --- /dev/null +++ b/bitmaps/b64o.bm @@ -0,0 +1,46 @@ +#define b64o_width 64 +#define b64o_height 64 +static unsigned char b64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x18, 0x80, 0x01, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x80, 0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x80, + 0x01, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0x01, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x80, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfc, + 0x3f, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfc, 0x3f, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x80, 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x80, + 0x01, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x80, 0x01, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x80, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xfe, 0x7f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xb0, 0xff, 0xff, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, + 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x0f, 0xf0, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0x03, + 0xc0, 0xff, 0xff, 0x01, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x70, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x0e, 0xe0, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x07, 0xc0, 0xf8, 0x07, 0x78, 0x1e, 0xe0, 0x1f, 0x03, + 0xc0, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x03, 0x80, 0x07, 0xf8, 0x07, + 0xe0, 0x1f, 0xe0, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b64s.bm b/bitmaps/b64s.bm new file mode 100644 index 0000000..2589498 --- /dev/null +++ b/bitmaps/b64s.bm @@ -0,0 +1,46 @@ +#define b64s_width 64 +#define b64s_height 64 +static unsigned char b64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, + 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xc0, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, + 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, + 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0xbf, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x07, 0xfe, 0x7f, 0xe0, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x7f, + 0xfe, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff, 0x01, + 0x80, 0x07, 0xf8, 0x07, 0xe0, 0x1f, 0xe0, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b72o.bm b/bitmaps/b72o.bm new file mode 100644 index 0000000..0198f1e --- /dev/null +++ b/bitmaps/b72o.bm @@ -0,0 +1,57 @@ +#define b72o_width 72 +#define b72o_height 72 +static unsigned char b72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x81, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x18, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x18, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0xe0, 0xff, 0x07, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xe0, 0xff, 0x07, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x18, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x18, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf1, 0xff, 0x8f, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xf8, 0xff, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0xe0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x81, 0x07, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x7f, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x80, 0xff, 0xff, + 0x1f, 0x00, 0xf8, 0xff, 0xff, 0x01, 0xe0, 0x07, 0x00, 0x00, 0x18, 0x00, + 0x00, 0xe0, 0x07, 0x70, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x0e, + 0x30, 0x00, 0x00, 0xc0, 0xe7, 0x03, 0x00, 0x00, 0x0c, 0x70, 0xf0, 0xff, + 0xff, 0x81, 0xff, 0xff, 0x0f, 0x0e, 0xe0, 0xfe, 0xff, 0x3f, 0x00, 0xfc, + 0xff, 0x7f, 0x07, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, + 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b72s.bm b/bitmaps/b72s.bm new file mode 100644 index 0000000..bb2d7a9 --- /dev/null +++ b/bitmaps/b72s.bm @@ -0,0 +1,57 @@ +#define b72s_width 72 +#define b72s_height 72 +static unsigned char b72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xe7, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xe7, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xe7, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xe7, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x1f, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0xf8, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xe7, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xf8, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc3, 0xff, 0xc3, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0x1f, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x3f, 0xf8, 0xff, 0x1f, 0xf8, 0x07, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0x0f, + 0xe0, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0x07, 0xe0, 0xff, 0xff, + 0xff, 0x00, 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0xf8, + 0xff, 0xff, 0x03, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b80o.bm b/bitmaps/b80o.bm new file mode 100644 index 0000000..ba8d178 --- /dev/null +++ b/bitmaps/b80o.bm @@ -0,0 +1,70 @@ +#define b80o_width 80 +#define b80o_height 80 +static unsigned char b80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x80, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x80, 0x01, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x80, 0x01, 0x00, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x01, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x00, 0xfe, 0x7f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0xfe, 0x7f, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x80, 0x01, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x80, 0x01, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x80, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x80, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xfe, 0x7f, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x80, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, 0xff, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, + 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x80, 0x03, + 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, + 0x7c, 0x3e, 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0xff, 0x81, 0x1f, 0xf8, + 0x81, 0xff, 0x80, 0x01, 0x80, 0xf3, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, + 0xcf, 0x01, 0x00, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0xff, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b80s.bm b/bitmaps/b80s.bm new file mode 100644 index 0000000..a06577e --- /dev/null +++ b/bitmaps/b80s.bm @@ -0,0 +1,70 @@ +#define b80s_width 80 +#define b80s_height 80 +static unsigned char b80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x7f, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x7f, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0xfe, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0xfe, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0x01, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0x01, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0x7f, 0xfe, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x7f, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x80, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xfc, 0x3f, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0xfe, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff, + 0x7f, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0x1f, 0xf8, + 0xff, 0xff, 0xff, 0x01, 0x80, 0xff, 0xff, 0xff, 0x03, 0xc0, 0xff, 0xff, + 0xff, 0x01, 0x00, 0xff, 0x00, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0xff, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b87o.bm b/bitmaps/b87o.bm new file mode 100644 index 0000000..1f1d758 --- /dev/null +++ b/bitmaps/b87o.bm @@ -0,0 +1,83 @@ +#define b87o_width 87 +#define b87o_height 87 +static unsigned char b87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xf7, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xc1, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x80, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x08, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x1c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x1c, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x1c, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x1c, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x1c, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xf0, 0xff, 0x07, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0xf0, 0xff, 0x07, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0xf0, 0xff, 0x07, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x1c, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xfc, 0xff, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0xff, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x07, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf7, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc1, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x00, 0xf0, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0xe0, 0x01, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x03, 0x00, + 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x87, 0xff, 0x01, + 0xf0, 0xf7, 0x07, 0xc0, 0xff, 0x70, 0x00, 0x00, 0xef, 0xff, 0xff, 0xff, + 0xc1, 0xff, 0xff, 0xff, 0x7b, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x7c, 0x00, 0xfe, 0x0f, 0x00, 0xf8, + 0x3f, 0x00, 0x1f, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b87s.bm b/bitmaps/b87s.bm new file mode 100644 index 0000000..bba2c75 --- /dev/null +++ b/bitmaps/b87s.bm @@ -0,0 +1,83 @@ +#define b87s_width 87 +#define b87s_height 87 +static unsigned char b87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xf7, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xe3, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe3, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xe3, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x0f, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xe3, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xe3, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xe3, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xe3, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xe3, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfb, + 0xff, 0xef, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0xe0, 0xff, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0xff, 0x1f, 0xc0, 0xff, 0x03, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xf7, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xc1, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x78, 0x00, 0xfe, 0x0f, 0x00, 0xf8, 0x3f, + 0x00, 0x0f, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b95o.bm b/bitmaps/b95o.bm new file mode 100644 index 0000000..9ecb89d --- /dev/null +++ b/bitmaps/b95o.bm @@ -0,0 +1,98 @@ +#define b95o_width 95 +#define b95o_height 95 +static unsigned char b95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0xc0, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0xc0, 0x01, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0xc0, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0xc0, 0x01, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x80, 0xff, 0xff, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x80, 0xff, 0xff, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x80, 0xff, 0xff, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x80, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xfb, 0xff, 0xff, 0xef, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xff, 0xff, 0xc3, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x0f, 0xc0, 0x0f, 0xf8, 0x01, 0xf8, 0xff, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x00, 0x80, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x7f, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x7f, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x7e, 0x3f, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x0e, 0xfe, 0x0f, 0xc0, 0x1f, 0xfc, 0x01, 0xf8, 0x3f, 0x38, 0x00, + 0x00, 0xdc, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, 0xff, 0xff, 0x1d, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xf8, 0x01, 0xf0, 0x3f, 0x00, 0x00, 0xfe, 0x07, 0xc0, 0x0f, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/b95s.bm b/bitmaps/b95s.bm new file mode 100644 index 0000000..289ac3a --- /dev/null +++ b/bitmaps/b95s.bm @@ -0,0 +1,98 @@ +#define b95s_width 95 +#define b95s_height 95 +static unsigned char b95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xfe, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xf8, 0x01, 0xf0, 0x7f, 0x00, 0x00, 0xff, 0x07, 0xc0, 0x0f, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/bitmaps.h b/bitmaps/bitmaps.h new file mode 100644 index 0000000..e3128bd --- /dev/null +++ b/bitmaps/bitmaps.h @@ -0,0 +1,367 @@ +/* + * bitmaps.h - Include bitmap files for pieces and icons + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "p129s.bm" +#include "n129s.bm" +#include "b129s.bm" +#include "r129s.bm" +#include "q129s.bm" +#include "k129s.bm" + +#include "p129o.bm" +#include "n129o.bm" +#include "b129o.bm" +#include "r129o.bm" +#include "q129o.bm" +#include "k129o.bm" + +#include "p116s.bm" +#include "n116s.bm" +#include "b116s.bm" +#include "r116s.bm" +#include "q116s.bm" +#include "k116s.bm" + +#include "p116o.bm" +#include "n116o.bm" +#include "b116o.bm" +#include "r116o.bm" +#include "q116o.bm" +#include "k116o.bm" + +#include "p108s.bm" +#include "n108s.bm" +#include "b108s.bm" +#include "r108s.bm" +#include "q108s.bm" +#include "k108s.bm" + +#include "p108o.bm" +#include "n108o.bm" +#include "b108o.bm" +#include "r108o.bm" +#include "q108o.bm" +#include "k108o.bm" + +#include "p95s.bm" +#include "n95s.bm" +#include "b95s.bm" +#include "r95s.bm" +#include "q95s.bm" +#include "k95s.bm" + +#include "p95o.bm" +#include "n95o.bm" +#include "b95o.bm" +#include "r95o.bm" +#include "q95o.bm" +#include "k95o.bm" + +#include "p87s.bm" +#include "n87s.bm" +#include "b87s.bm" +#include "r87s.bm" +#include "q87s.bm" +#include "k87s.bm" + +#include "p87o.bm" +#include "n87o.bm" +#include "b87o.bm" +#include "r87o.bm" +#include "q87o.bm" +#include "k87o.bm" + +#include "p80s.bm" +#include "n80s.bm" +#include "b80s.bm" +#include "r80s.bm" +#include "q80s.bm" +#include "k80s.bm" + +#include "p80o.bm" +#include "n80o.bm" +#include "b80o.bm" +#include "r80o.bm" +#include "q80o.bm" +#include "k80o.bm" + +#include "p72s.bm" +#include "n72s.bm" +#include "b72s.bm" +#include "r72s.bm" +#include "q72s.bm" +#include "k72s.bm" + +#include "p72o.bm" +#include "n72o.bm" +#include "b72o.bm" +#include "r72o.bm" +#include "q72o.bm" +#include "k72o.bm" + +#include "p64s.bm" +#include "n64s.bm" +#include "b64s.bm" +#include "r64s.bm" +#include "q64s.bm" +#include "k64s.bm" + +#include "p64o.bm" +#include "n64o.bm" +#include "b64o.bm" +#include "r64o.bm" +#include "q64o.bm" +#include "k64o.bm" + +#include "p58s.bm" +#include "n58s.bm" +#include "b58s.bm" +#include "r58s.bm" +#include "q58s.bm" +#include "k58s.bm" + +#include "p58o.bm" +#include "n58o.bm" +#include "b58o.bm" +#include "r58o.bm" +#include "q58o.bm" +#include "k58o.bm" + +#include "p54s.bm" +#include "n54s.bm" +#include "b54s.bm" +#include "r54s.bm" +#include "q54s.bm" +#include "k54s.bm" + +#include "p54o.bm" +#include "n54o.bm" +#include "b54o.bm" +#include "r54o.bm" +#include "q54o.bm" +#include "k54o.bm" + +#include "p49s.bm" +#include "n49s.bm" +#include "b49s.bm" +#include "r49s.bm" +#include "q49s.bm" +#include "k49s.bm" + +#include "p49o.bm" +#include "n49o.bm" +#include "b49o.bm" +#include "r49o.bm" +#include "q49o.bm" +#include "k49o.bm" + +#include "p45s.bm" +#include "n45s.bm" +#include "b45s.bm" +#include "r45s.bm" +#include "q45s.bm" +#include "k45s.bm" + +#include "p45o.bm" +#include "n45o.bm" +#include "b45o.bm" +#include "r45o.bm" +#include "q45o.bm" +#include "k45o.bm" + +#include "p40s.bm" +#include "n40s.bm" +#include "b40s.bm" +#include "r40s.bm" +#include "q40s.bm" +#include "k40s.bm" + +#include "p40o.bm" +#include "n40o.bm" +#include "b40o.bm" +#include "r40o.bm" +#include "q40o.bm" +#include "k40o.bm" + +#include "p37s.bm" +#include "n37s.bm" +#include "b37s.bm" +#include "r37s.bm" +#include "q37s.bm" +#include "k37s.bm" + +#include "p37o.bm" +#include "n37o.bm" +#include "b37o.bm" +#include "r37o.bm" +#include "q37o.bm" +#include "k37o.bm" + +#include "p33s.bm" +#include "n33s.bm" +#include "b33s.bm" +#include "r33s.bm" +#include "q33s.bm" +#include "k33s.bm" + +#include "p33o.bm" +#include "n33o.bm" +#include "b33o.bm" +#include "r33o.bm" +#include "q33o.bm" +#include "k33o.bm" + +#include "p29s.bm" +#include "n29s.bm" +#include "b29s.bm" +#include "r29s.bm" +#include "q29s.bm" +#include "k29s.bm" + +#include "p29o.bm" +#include "n29o.bm" +#include "b29o.bm" +#include "r29o.bm" +#include "q29o.bm" +#include "k29o.bm" + +#include "p25s.bm" +#include "n25s.bm" +#include "b25s.bm" +#include "r25s.bm" +#include "q25s.bm" +#include "k25s.bm" + +#include "p25o.bm" +#include "n25o.bm" +#include "b25o.bm" +#include "r25o.bm" +#include "q25o.bm" +#include "k25o.bm" + +#include "p21s.bm" +#include "n21s.bm" +#include "b21s.bm" +#include "r21s.bm" +#include "q21s.bm" +#include "k21s.bm" + +#include "p21o.bm" +#include "n21o.bm" +#include "b21o.bm" +#include "r21o.bm" +#include "q21o.bm" +#include "k21o.bm" + +typedef struct { + int squareSize; + unsigned char *bits[2][6]; +} BuiltInBits; + +BuiltInBits builtInBits[] = {\ +{ 129,\ + { { p129s_bits, n129s_bits, b129s_bits, r129s_bits, q129s_bits, k129s_bits },\ + { p129o_bits, n129o_bits, b129o_bits, r129o_bits, q129o_bits, k129o_bits } } },\ +{ 116,\ + { { p116s_bits, n116s_bits, b116s_bits, r116s_bits, q116s_bits, k116s_bits },\ + { p116o_bits, n116o_bits, b116o_bits, r116o_bits, q116o_bits, k116o_bits } } },\ +{ 108,\ + { { p108s_bits, n108s_bits, b108s_bits, r108s_bits, q108s_bits, k108s_bits },\ + { p108o_bits, n108o_bits, b108o_bits, r108o_bits, q108o_bits, k108o_bits } } },\ +{ 95,\ + { { p95s_bits, n95s_bits, b95s_bits, r95s_bits, q95s_bits, k95s_bits },\ + { p95o_bits, n95o_bits, b95o_bits, r95o_bits, q95o_bits, k95o_bits } } },\ +{ 87,\ + { { p87s_bits, n87s_bits, b87s_bits, r87s_bits, q87s_bits, k87s_bits },\ + { p87o_bits, n87o_bits, b87o_bits, r87o_bits, q87o_bits, k87o_bits } } },\ +{ 80,\ + { { p80s_bits, n80s_bits, b80s_bits, r80s_bits, q80s_bits, k80s_bits },\ + { p80o_bits, n80o_bits, b80o_bits, r80o_bits, q80o_bits, k80o_bits } } },\ +{ 72,\ + { { p72s_bits, n72s_bits, b72s_bits, r72s_bits, q72s_bits, k72s_bits },\ + { p72o_bits, n72o_bits, b72o_bits, r72o_bits, q72o_bits, k72o_bits } } },\ +{ 64,\ + { { p64s_bits, n64s_bits, b64s_bits, r64s_bits, q64s_bits, k64s_bits },\ + { p64o_bits, n64o_bits, b64o_bits, r64o_bits, q64o_bits, k64o_bits } } },\ +{ 58,\ + { { p58s_bits, n58s_bits, b58s_bits, r58s_bits, q58s_bits, k58s_bits },\ + { p58o_bits, n58o_bits, b58o_bits, r58o_bits, q58o_bits, k58o_bits } } },\ +{ 54,\ + { { p54s_bits, n54s_bits, b54s_bits, r54s_bits, q54s_bits, k54s_bits },\ + { p54o_bits, n54o_bits, b54o_bits, r54o_bits, q54o_bits, k54o_bits } } },\ +{ 49,\ + { { p49s_bits, n49s_bits, b49s_bits, r49s_bits, q49s_bits, k49s_bits },\ + { p49o_bits, n49o_bits, b49o_bits, r49o_bits, q49o_bits, k49o_bits } } },\ +{ 45,\ + { { p45s_bits, n45s_bits, b45s_bits, r45s_bits, q45s_bits, k45s_bits },\ + { p45o_bits, n45o_bits, b45o_bits, r45o_bits, q45o_bits, k45o_bits } } },\ +{ 40,\ + { { p40s_bits, n40s_bits, b40s_bits, r40s_bits, q40s_bits, k40s_bits },\ + { p40o_bits, n40o_bits, b40o_bits, r40o_bits, q40o_bits, k40o_bits } } },\ +{ 37,\ + { { p37s_bits, n37s_bits, b37s_bits, r37s_bits, q37s_bits, k37s_bits },\ + { p37o_bits, n37o_bits, b37o_bits, r37o_bits, q37o_bits, k37o_bits } } },\ +{ 33,\ + { { p33s_bits, n33s_bits, b33s_bits, r33s_bits, q33s_bits, k33s_bits },\ + { p33o_bits, n33o_bits, b33o_bits, r33o_bits, q33o_bits, k33o_bits } } },\ +{ 29,\ + { { p29s_bits, n29s_bits, b29s_bits, r29s_bits, q29s_bits, k29s_bits },\ + { p29o_bits, n29o_bits, b29o_bits, r29o_bits, q29o_bits, k29o_bits } } },\ +{ 25,\ + { { p25s_bits, n25s_bits, b25s_bits, r25s_bits, q25s_bits, k25s_bits },\ + { p25o_bits, n25o_bits, b25o_bits, r25o_bits, q25o_bits, k25o_bits } } },\ +{ 21,\ + { { p21s_bits, n21s_bits, b21s_bits, r21s_bits, q21s_bits, k21s_bits },\ + { p21o_bits, n21o_bits, b21o_bits, r21o_bits, q21o_bits, k21o_bits } } },\ +{ 0,\ + { { NULL, NULL, NULL, NULL, NULL, NULL },\ + { NULL, NULL, NULL, NULL, NULL, NULL } } }\ +}; + diff --git a/bitmaps/checkmark.bm b/bitmaps/checkmark.bm new file mode 100644 index 0000000..869e77b --- /dev/null +++ b/bitmaps/checkmark.bm @@ -0,0 +1,6 @@ +#define checkmark_width 11 +#define checkmark_height 11 + +static unsigned char checkmark_bits[] = { + 0x0f, 0x04, 0x0f, 0x02, 0x1e, 0x01, 0x3c, 0x01, 0xb8, 0x00, 0x58, 0x00, + 0xe8, 0x00, 0xe4, 0x01, 0xc4, 0x03, 0xc2, 0x03, 0x81, 0x07 }; diff --git a/bitmaps/dopkbm.sh b/bitmaps/dopkbm.sh new file mode 100755 index 0000000..4e43c09 --- /dev/null +++ b/bitmaps/dopkbm.sh @@ -0,0 +1,16 @@ +#! /bin/sh +PATH=.:$PATH +size=$1 +from=$2 +dopkbm1.sh $size $from 0 p o +dopkbm1.sh $size $from 1 n o +dopkbm1.sh $size $from 2 b o +dopkbm1.sh $size $from 3 r o +dopkbm1.sh $size $from 4 q o +dopkbm1.sh $size $from 5 k o +dopkbm1.sh $size $from 014 p s +dopkbm1.sh $size $from 015 n s +dopkbm1.sh $size $from 016 b s +dopkbm1.sh $size $from 017 r s +dopkbm1.sh $size $from 020 q s +dopkbm1.sh $size $from 021 k s diff --git a/bitmaps/dopkbm1.sh b/bitmaps/dopkbm1.sh new file mode 100755 index 0000000..2aef1f4 --- /dev/null +++ b/bitmaps/dopkbm1.sh @@ -0,0 +1,27 @@ +size=$1 +from=$2 +char=$3 +piece=$4 +kind=$5 + +# pk2bm has a bug in the -W -H feature: sometimes it gives a +# garbled bitmap. +#pk2bm -W$size -H$size -o $char $from | tr -d '\000' | \ +# sed -f fixup.sed | sed -e s/NAME/${piece}${size}${kind}/ \ +# > ${piece}${size}${kind}.bm + +# It doesn't help to add the -b flag; the bug remains the same. +# This way also has the drawback of depending on a quickie homebrew +# program (pktype2bm) that isn't very robust. +#pk2bm -W$size -H$size -b -o $char $from | egrep '\.|\*' | +# pktype2bm ${piece}${size}${kind} $size $size \ +# > ${piece}${size}${kind}.bm + +# This way, you have to manually edit each bitmap (with the "bitmap" +# program, say) to add margins as needed. It has the advantage that +# you have control over placement, so you don't have to center exactly +# if that's the wrong thing to do. +pk2bm -o $char $from | tr -d '\000' | \ + sed -f fixup.sed | sed -e s/NAME/${piece}${size}${kind}/ \ + > ${piece}${size}${kind}.bm + diff --git a/bitmaps/fixup.sed b/bitmaps/fixup.sed new file mode 100644 index 0000000..771f078 --- /dev/null +++ b/bitmaps/fixup.sed @@ -0,0 +1,3 @@ +/_$/N +s/#define .*_\(.*\) \(.*\)/#define NAME_\1 \2/ +s/static char .*/static unsigned char NAME_bits[] = {/ diff --git a/bitmaps/icon_black.bm b/bitmaps/icon_black.bm new file mode 100644 index 0000000..a2085cc --- /dev/null +++ b/bitmaps/icon_black.bm @@ -0,0 +1,14 @@ +#define icon_black_width 32 +#define icon_black_height 32 +static unsigned char icon_black_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, + 0x00, 0x63, 0x00, 0x00, 0x00, 0xe7, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, + 0x00, 0xe7, 0x0c, 0x00, 0x80, 0xfb, 0x33, 0x00, 0x80, 0xff, 0x6f, 0x00, + 0xc0, 0xf9, 0xdf, 0x00, 0xc0, 0xfe, 0xbf, 0x01, 0xc0, 0xfe, 0x3f, 0x01, + 0xe0, 0xff, 0x7f, 0x03, 0xe0, 0xff, 0x7f, 0x02, 0xf0, 0xff, 0xfe, 0x06, + 0xf0, 0xff, 0xff, 0x04, 0xf8, 0xff, 0xff, 0x05, 0xf8, 0x3f, 0xff, 0x09, + 0xec, 0x0f, 0xff, 0x09, 0xec, 0x87, 0xff, 0x09, 0xbc, 0x83, 0xff, 0x09, + 0xfc, 0xc1, 0xff, 0x0b, 0xf8, 0xe0, 0xff, 0x13, 0x00, 0xf0, 0xff, 0x13, + 0x00, 0xf8, 0xff, 0x13, 0x00, 0xfc, 0xff, 0x13, 0x00, 0xfc, 0xff, 0x13, + 0x00, 0xfe, 0xff, 0x13, 0x00, 0xfe, 0xff, 0x17, 0x00, 0xfe, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/icon_outline.bm b/bitmaps/icon_outline.bm new file mode 100644 index 0000000..fe46e3e --- /dev/null +++ b/bitmaps/icon_outline.bm @@ -0,0 +1,14 @@ +#define icon_outline_width 32 +#define icon_outline_height 32 +static char icon_outline_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x82, 0x01, 0x00, + 0x00, 0x86, 0x01, 0x00, 0x00, 0x8a, 0x02, 0x00, 0x00, 0x54, 0x3c, 0x00, + 0x00, 0xa2, 0x44, 0x00, 0x00, 0x19, 0x80, 0x01, 0x00, 0x01, 0x00, 0x03, + 0x80, 0x0c, 0x00, 0x06, 0x80, 0x06, 0x00, 0x06, 0x40, 0x02, 0x02, 0x0c, + 0x40, 0x00, 0x02, 0x0c, 0x20, 0x00, 0x02, 0x18, 0x20, 0x00, 0x02, 0x18, + 0x10, 0x00, 0x02, 0x10, 0x08, 0x00, 0x01, 0x30, 0x04, 0x80, 0x01, 0x30, + 0x14, 0x60, 0x01, 0x30, 0x1a, 0x18, 0x01, 0x30, 0x0a, 0x86, 0x00, 0x30, + 0x42, 0x81, 0x00, 0x60, 0xa4, 0x40, 0x00, 0x60, 0x58, 0x20, 0x00, 0x60, + 0x20, 0x10, 0x00, 0x60, 0x00, 0x08, 0x00, 0x60, 0x00, 0x04, 0x00, 0x60, + 0x00, 0x04, 0x00, 0x60, 0x00, 0x02, 0x00, 0x60, 0x00, 0xfe, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/icon_white.bm b/bitmaps/icon_white.bm new file mode 100644 index 0000000..9a48e44 --- /dev/null +++ b/bitmaps/icon_white.bm @@ -0,0 +1,14 @@ +#define icon_white_width 32 +#define icon_white_height 32 +static unsigned char icon_white_bits[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbe, 0xff, 0xff, + 0xff, 0x9c, 0xff, 0xff, 0xff, 0x18, 0xff, 0xff, 0xff, 0x00, 0xfc, 0xff, + 0xff, 0x18, 0xf3, 0xff, 0x7f, 0x04, 0xcc, 0xff, 0x7f, 0x00, 0x90, 0xff, + 0x3f, 0x06, 0x20, 0xff, 0x3f, 0x01, 0x40, 0xfe, 0x3f, 0x01, 0xc0, 0xfe, + 0x1f, 0x00, 0x80, 0xfc, 0x1f, 0x00, 0x80, 0xfd, 0x0f, 0x00, 0x01, 0xf9, + 0x0f, 0x00, 0x00, 0xfb, 0x07, 0x00, 0x00, 0xfa, 0x07, 0xc0, 0x00, 0xf6, + 0x13, 0xf0, 0x00, 0xf6, 0x13, 0x78, 0x00, 0xf6, 0x43, 0x7c, 0x00, 0xf6, + 0x03, 0x3e, 0x00, 0xf4, 0x07, 0x1f, 0x00, 0xec, 0xff, 0x0f, 0x00, 0xec, + 0xff, 0x07, 0x00, 0xec, 0xff, 0x03, 0x00, 0xec, 0xff, 0x03, 0x00, 0xec, + 0xff, 0x01, 0x00, 0xec, 0xff, 0x01, 0x00, 0xe8, 0xff, 0x01, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; diff --git a/bitmaps/k108o.bm b/bitmaps/k108o.bm new file mode 100644 index 0000000..bb89b1a --- /dev/null +++ b/bitmaps/k108o.bm @@ -0,0 +1,129 @@ +#define k108o_width 108 +#define k108o_height 108 +static unsigned char k108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0x00, 0x70, 0x00, 0x70, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x07, 0x70, 0x00, 0x70, 0x00, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x70, 0x00, 0x70, 0xc0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x7f, 0x70, 0x00, 0x70, + 0xf0, 0x07, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0xf8, 0x71, + 0x00, 0x70, 0xfc, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0xe0, 0x77, 0x00, 0x70, 0x3f, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x80, 0x7f, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0xfe, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0xf8, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x7c, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x80, 0x07, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x8f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x8e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xde, 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf8, + 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0xff, 0x1f, 0x00, 0xc0, + 0xff, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf9, 0x3f, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x80, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, + 0xff, 0x1f, 0x00, 0xc0, 0xff, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xf3, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k108s.bm b/bitmaps/k108s.bm new file mode 100644 index 0000000..434faba --- /dev/null +++ b/bitmaps/k108s.bm @@ -0,0 +1,129 @@ +#define k108s_width 108 +#define k108s_height 108 +static unsigned char k108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x8f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x70, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xf8, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0xfc, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0x00, 0x70, 0xfc, 0x71, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x07, 0x70, 0xfc, 0x71, 0x00, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x70, 0xfc, 0x71, 0xc0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x7f, 0x70, 0xfc, 0x71, + 0xf0, 0x07, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0xf8, 0x71, + 0xfc, 0x71, 0xfc, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0xe0, 0x77, 0xfc, 0x71, 0x3f, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x7f, 0x80, 0x7f, 0xfc, 0xf1, 0x0f, 0xf0, 0x07, 0xf8, 0x00, 0x00, + 0x00, 0x7c, 0xf0, 0xff, 0x07, 0xfe, 0xf8, 0xf8, 0x03, 0xff, 0x7f, 0xf0, + 0x01, 0x00, 0x00, 0x3c, 0xfc, 0xff, 0x1f, 0xfc, 0xf8, 0xf8, 0xc1, 0xff, + 0xff, 0xe1, 0x01, 0x00, 0x00, 0x1e, 0xfe, 0xff, 0x3f, 0xf8, 0xf8, 0xf8, + 0xe0, 0xff, 0xff, 0xc3, 0x03, 0x00, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xf0, + 0x71, 0x7c, 0xf8, 0xff, 0xff, 0xc7, 0x03, 0x00, 0x00, 0x0f, 0xff, 0xff, + 0xff, 0xe1, 0x71, 0x3c, 0xfc, 0xff, 0xff, 0x87, 0x07, 0x00, 0x00, 0x8f, + 0xff, 0xff, 0xff, 0xc3, 0x23, 0x1e, 0xfe, 0xff, 0xff, 0x8f, 0x07, 0x00, + 0x00, 0x87, 0xff, 0xff, 0xff, 0x87, 0x23, 0x0e, 0xff, 0xff, 0xff, 0x0f, + 0x07, 0x00, 0x80, 0xc7, 0xff, 0xff, 0xff, 0x87, 0x07, 0x0f, 0xff, 0xff, + 0xff, 0x1f, 0x0f, 0x00, 0x80, 0xc7, 0xff, 0xff, 0xff, 0x0f, 0x07, 0x87, + 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x00, 0x80, 0xc7, 0xff, 0xff, 0xff, 0x1f, + 0x8f, 0xc7, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x00, 0x80, 0xc7, 0xff, 0xff, + 0xff, 0x1f, 0x8e, 0xc3, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x00, 0x80, 0xc7, + 0xff, 0xff, 0xff, 0x3f, 0x8e, 0xe3, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x00, + 0x80, 0xc7, 0xff, 0xff, 0xff, 0x3f, 0xdc, 0xe1, 0xff, 0xff, 0xff, 0x1f, + 0x0f, 0x00, 0x80, 0x87, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xf1, 0xff, 0xff, + 0xff, 0x0f, 0x0f, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xf1, + 0xff, 0xff, 0xff, 0x8f, 0x07, 0x00, 0x00, 0x8f, 0xff, 0xff, 0xff, 0x7f, + 0xf8, 0xf0, 0xff, 0xff, 0xff, 0x8f, 0x07, 0x00, 0x00, 0x1f, 0xff, 0xff, + 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xc7, 0x07, 0x00, 0x00, 0x1e, + 0xfe, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x00, + 0x00, 0x3e, 0xfe, 0xff, 0xff, 0xff, 0x70, 0xf8, 0xff, 0xff, 0xff, 0xe3, + 0x03, 0x00, 0x00, 0x3c, 0xfc, 0xff, 0xff, 0xff, 0x70, 0xf8, 0xff, 0xff, + 0xff, 0xe1, 0x01, 0x00, 0x00, 0x78, 0xf8, 0xff, 0xff, 0xff, 0x71, 0xfc, + 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xf8, 0xf0, 0xff, 0xff, 0xff, + 0x71, 0xfc, 0xff, 0xff, 0x7f, 0xf8, 0x00, 0x00, 0x00, 0xf0, 0xc1, 0xff, + 0xff, 0xff, 0x71, 0xfc, 0xff, 0xff, 0x1f, 0x7c, 0x00, 0x00, 0x00, 0xe0, + 0x83, 0xff, 0xff, 0xff, 0x71, 0xfc, 0xff, 0xff, 0x0f, 0x3e, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0xff, 0xff, 0xff, 0x71, 0xfc, 0xff, 0xff, 0x07, 0x1f, + 0x00, 0x00, 0x00, 0x80, 0x0f, 0xfe, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xff, + 0x83, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x07, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xe1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, + 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0x0f, 0x00, 0x80, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0xc0, 0xff, 0x1f, + 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x80, 0xff, + 0xff, 0xff, 0x0f, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x80, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, + 0x00, 0xc0, 0xff, 0x1f, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0xff, 0xff, 0xff, 0x07, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x07, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k116o.bm b/bitmaps/k116o.bm new file mode 100644 index 0000000..e88cfca --- /dev/null +++ b/bitmaps/k116o.bm @@ -0,0 +1,148 @@ +#define k116o_width 116 +#define k116o_height 116 +static unsigned char k116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x03, 0x80, 0x03, 0x00, 0x0e, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x80, 0x03, 0x00, 0x0e, 0xe0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x80, 0x03, 0x00, 0x0e, + 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xfc, 0x83, + 0x03, 0x00, 0x0e, 0xfe, 0x01, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0xc0, 0x8f, 0x03, 0x00, 0x8e, 0x1f, 0x00, 0xe0, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x9f, 0x03, 0x00, 0xce, 0x07, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x7c, 0x07, 0x00, 0xf7, + 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf8, + 0x07, 0x00, 0xff, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0x00, 0xe0, 0x07, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x80, 0x0f, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x80, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x78, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x1d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1d, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x80, 0xff, 0x7f, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf3, 0xff, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xfc, 0xff, + 0x00, 0x00, 0xf8, 0xff, 0x81, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8e, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfe, 0x8f, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0xfe, 0xff, 0x00, 0x00, 0xf8, 0xff, 0x83, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xce, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfe, 0x9f, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, + 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x01, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k116s.bm b/bitmaps/k116s.bm new file mode 100644 index 0000000..a3b5e02 --- /dev/null +++ b/bitmaps/k116s.bm @@ -0,0 +1,148 @@ +#define k116s_width 116 +#define k116s_height 116 +static unsigned char k116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x8f, 0x8f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc7, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x1f, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x3f, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xe3, 0x3f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x03, 0x80, 0xe3, 0x3f, 0x0e, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x80, 0xe3, 0x3f, 0x0e, 0xe0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x80, 0xe3, 0x3f, 0x0e, + 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0xf8, 0x83, + 0xe3, 0x3f, 0x0e, 0xfe, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0xc0, 0x8f, 0xe3, 0x3f, 0x8e, 0x1f, 0x00, 0xe0, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x9f, 0xe3, 0x3f, 0xce, 0x07, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xfc, 0x03, 0x7c, 0xc7, 0x1f, 0xf7, + 0x01, 0xfe, 0x01, 0x1e, 0x00, 0x00, 0x00, 0xe0, 0xc1, 0xff, 0x1f, 0xf0, + 0xc7, 0x1f, 0x7f, 0xc0, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0xf0, 0xe0, + 0xff, 0x7f, 0xe0, 0xc7, 0x1f, 0x3f, 0xf0, 0xff, 0x3f, 0x78, 0x00, 0x00, + 0x00, 0x70, 0xf8, 0xff, 0xff, 0xc1, 0x8f, 0x8f, 0x1f, 0xfc, 0xff, 0xff, + 0x70, 0x00, 0x00, 0x00, 0x38, 0xfc, 0xff, 0xff, 0x87, 0x8f, 0x8f, 0x0f, + 0xff, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0x38, 0xfe, 0xff, 0xff, 0x0f, + 0x1f, 0xc7, 0x87, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x00, 0x00, 0x1c, 0xfe, + 0xff, 0xff, 0x1f, 0x1e, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xc3, 0x01, 0x00, + 0x00, 0x1c, 0xff, 0xff, 0xff, 0x3f, 0x3c, 0xe2, 0xe1, 0xff, 0xff, 0xff, + 0xc7, 0x01, 0x00, 0x00, 0x0c, 0xff, 0xff, 0xff, 0x7f, 0x3c, 0xe2, 0xf1, + 0xff, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0x8e, 0xff, 0xff, 0xff, 0x7f, + 0x78, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, 0x00, 0x8e, 0xff, + 0xff, 0xff, 0xff, 0x70, 0x70, 0xf8, 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, + 0x00, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x78, 0xfc, 0xff, 0xff, 0xff, + 0x8f, 0x03, 0x00, 0x00, 0x8e, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x38, 0xfc, + 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, 0x00, 0x8e, 0xff, 0xff, 0xff, 0xff, + 0xe3, 0x38, 0xfe, 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, 0x00, 0x8e, 0xff, + 0xff, 0xff, 0xff, 0xc3, 0x1f, 0xfe, 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, + 0x00, 0x0e, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0x87, 0x03, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x1f, 0xff, + 0xff, 0xff, 0xff, 0xc7, 0x01, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, + 0x87, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x01, 0x00, 0x00, 0x38, 0xfe, + 0xff, 0xff, 0xff, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xe3, 0x00, 0x00, + 0x00, 0x38, 0xfc, 0xff, 0xff, 0xff, 0x8f, 0x8f, 0xff, 0xff, 0xff, 0xff, + 0xe1, 0x00, 0x00, 0x00, 0x70, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x87, 0xff, + 0xff, 0xff, 0xff, 0x71, 0x00, 0x00, 0x00, 0x70, 0xf8, 0xff, 0xff, 0xff, + 0x0f, 0x87, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0xe0, 0xf0, + 0xff, 0xff, 0xff, 0x1f, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x38, 0x00, 0x00, + 0x00, 0xc0, 0xe1, 0xff, 0xff, 0xff, 0x1f, 0xc7, 0xff, 0xff, 0xff, 0x3f, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x83, 0xff, 0xff, 0xff, 0x1f, 0xc7, 0xff, + 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x07, 0xff, 0xff, 0xff, + 0x1f, 0xc7, 0xff, 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xfe, 0xff, 0xff, 0x1f, 0xc7, 0xff, 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x7f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xcf, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x7f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0xfc, 0xff, 0x01, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k129o.bm b/bitmaps/k129o.bm new file mode 100644 index 0000000..34cfa3a --- /dev/null +++ b/bitmaps/k129o.bm @@ -0,0 +1,186 @@ +#define k129o_width 129 +#define k129o_height 129 +static unsigned char k129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xf8, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, + 0xf0, 0x00, 0x00, 0x0f, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x03, 0xf0, 0x00, 0x00, 0x0f, 0xc0, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x0f, 0xf0, 0x00, + 0x00, 0x0f, 0xf0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x3f, 0xf0, 0x00, 0x00, 0x0f, 0xfc, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0xe0, 0xff, 0xf0, 0x00, 0x00, 0x0f, + 0xff, 0x07, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0xfe, 0xf1, 0x00, 0x00, 0x8f, 0x7f, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7f, 0x00, 0x00, 0xf8, 0xf7, 0x00, 0x00, 0xef, 0x1f, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0xe0, 0xff, + 0x01, 0x80, 0xff, 0x07, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0xc0, + 0x07, 0x00, 0x00, 0x80, 0xff, 0x01, 0x80, 0xff, 0x01, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0xff, 0x01, 0x80, + 0xff, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x00, 0xfc, 0x01, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xc0, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x03, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x8f, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xf1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xff, 0x3f, + 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0xfe, + 0xff, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k129s.bm b/bitmaps/k129s.bm new file mode 100644 index 0000000..c34c17f --- /dev/null +++ b/bitmaps/k129s.bm @@ -0,0 +1,186 @@ +#define k129s_width 129 +#define k129s_height 129 +static unsigned char k129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xf8, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x0f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc1, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0x87, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xe1, 0x87, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe0, 0x07, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, + 0xf0, 0xf0, 0x0f, 0x0f, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x03, 0xf0, 0xf0, 0x0f, 0x0f, 0xc0, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x0f, 0xf0, 0xf0, + 0x0f, 0x0f, 0xf0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x3f, 0xf0, 0xf0, 0x0f, 0x0f, 0xfc, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x80, 0xff, 0xf0, 0xf0, 0x0f, 0x0f, + 0xff, 0x01, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0xfc, 0xf1, 0xf0, 0x0f, 0x8f, 0x3f, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x00, 0x00, 0xf0, 0xf7, 0xf0, 0x0f, 0xef, 0x0f, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0xc0, 0xff, + 0xe0, 0x07, 0xff, 0x03, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xc0, + 0x07, 0xc0, 0x0f, 0x80, 0xff, 0xe1, 0x87, 0xff, 0x01, 0xf0, 0x03, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0xe0, 0x03, 0xf8, 0xff, 0x00, 0xfe, 0xe1, 0x87, + 0x7f, 0x00, 0xff, 0x1f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x01, 0xff, + 0xff, 0x03, 0xfc, 0xc1, 0x83, 0x3f, 0xc0, 0xff, 0xff, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0xf0, 0xc0, 0xff, 0xff, 0x0f, 0xf8, 0xc3, 0xc3, 0x1f, 0xf0, + 0xff, 0xff, 0x03, 0x0f, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0xff, 0xff, 0x3f, + 0xf0, 0x83, 0xc1, 0x0f, 0xfc, 0xff, 0xff, 0x07, 0x1f, 0x00, 0x00, 0x00, + 0x78, 0xf0, 0xff, 0xff, 0x7f, 0xe0, 0x87, 0xe1, 0x07, 0xfe, 0xff, 0xff, + 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x3c, 0xf8, 0xff, 0xff, 0xff, 0xc0, 0x07, + 0xe0, 0x03, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0x3c, 0xf8, + 0xff, 0xff, 0xff, 0x81, 0x0f, 0xf0, 0x81, 0xff, 0xff, 0xff, 0x1f, 0x3c, + 0x00, 0x00, 0x00, 0x1c, 0xfc, 0xff, 0xff, 0xff, 0x83, 0x0f, 0xf0, 0xc1, + 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0x1e, 0xfc, 0xff, 0xff, + 0xff, 0x07, 0x1f, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, + 0x00, 0x1e, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x78, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x1e, 0xfe, 0xff, 0xff, 0xff, 0x0f, + 0x3e, 0x7c, 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x00, 0x00, 0x00, 0x1e, + 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x3c, 0xf8, 0xff, 0xff, 0xff, 0x7f, + 0x78, 0x00, 0x00, 0x00, 0x1e, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x7c, 0x3e, + 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x00, 0x00, 0x00, 0x1e, 0xfe, 0xff, + 0xff, 0xff, 0x3f, 0x78, 0x1e, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x00, + 0x00, 0x00, 0x1e, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x1e, 0xfc, 0xff, + 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x1e, 0xfc, 0xff, 0xff, 0xff, + 0x7f, 0xf0, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, + 0x1c, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x0f, 0xfe, 0xff, 0xff, 0xff, + 0x3f, 0x38, 0x00, 0x00, 0x00, 0x3c, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xf0, + 0x0f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0x3c, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, + 0x00, 0x00, 0x00, 0x78, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x78, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xe1, 0x87, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, + 0x00, 0xf0, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x83, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xc1, 0xff, 0xff, 0xff, 0xff, + 0xc1, 0x83, 0xff, 0xff, 0xff, 0xff, 0x83, 0x0f, 0x00, 0x00, 0x00, 0xe0, + 0x81, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x83, 0xff, 0xff, 0xff, 0xff, 0x81, + 0x07, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x83, + 0xff, 0xff, 0xff, 0xff, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xfe, + 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0x03, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xff, 0xff, + 0xff, 0x1f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xf0, 0xff, 0xff, + 0xff, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0xe0, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x07, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc0, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x03, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x81, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x81, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x7e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, + 0xfe, 0x7f, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x01, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0xfe, 0x7f, 0x00, + 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, + 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k21o.bm b/bitmaps/k21o.bm new file mode 100644 index 0000000..1d9020d --- /dev/null +++ b/bitmaps/k21o.bm @@ -0,0 +1,9 @@ +#define k21o_width 21 +#define k21o_height 21 +static unsigned char k21o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x1b, 0x00, 0xfc, 0xe0, 0x07, 0x86, 0x20, 0x0c, + 0x02, 0x11, 0x08, 0x02, 0x0a, 0x08, 0x02, 0x0e, 0x08, 0x06, 0x04, 0x0c, + 0x8c, 0x3f, 0x06, 0x78, 0xc0, 0x03, 0x10, 0x00, 0x01, 0x70, 0xc0, 0x01, + 0x90, 0x3f, 0x01, 0x70, 0xc0, 0x01, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/k21s.bm b/bitmaps/k21s.bm new file mode 100644 index 0000000..f8b64da --- /dev/null +++ b/bitmaps/k21s.bm @@ -0,0 +1,9 @@ +#define k21s_width 21 +#define k21s_height 21 +static unsigned char k21s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x0e, 0x00, 0x70, 0xca, 0x01, 0xdc, 0x6a, 0x07, 0x26, 0x9b, 0x0c, + 0xfa, 0xee, 0x0b, 0xfa, 0xf5, 0x0b, 0xfa, 0xfb, 0x0b, 0xf6, 0xff, 0x0d, + 0x6c, 0xc0, 0x06, 0x98, 0x3f, 0x03, 0xf0, 0xff, 0x01, 0xf0, 0xe0, 0x01, + 0xf0, 0xff, 0x01, 0x30, 0x80, 0x01, 0xe0, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/k25o.bm b/bitmaps/k25o.bm new file mode 100644 index 0000000..504221a --- /dev/null +++ b/bitmaps/k25o.bm @@ -0,0 +1,12 @@ +#define k25o_width 25 +#define k25o_height 25 +static unsigned char k25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0xf0, 0x45, 0x1f, 0x00, 0x08, 0xc6, 0x20, 0x00, + 0x04, 0x44, 0x40, 0x00, 0x04, 0x28, 0x40, 0x00, 0x04, 0x28, 0x40, 0x00, + 0x04, 0x10, 0x40, 0x00, 0x08, 0x10, 0x20, 0x00, 0x08, 0x10, 0x10, 0x00, + 0x90, 0xff, 0x0b, 0x00, 0x60, 0x00, 0x0c, 0x00, 0x20, 0xff, 0x09, 0x00, + 0xe0, 0x00, 0x0e, 0x00, 0x20, 0xff, 0x09, 0x00, 0xc0, 0x00, 0x06, 0x00, + 0xc0, 0x01, 0x03, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k25s.bm b/bitmaps/k25s.bm new file mode 100644 index 0000000..07cd1bc --- /dev/null +++ b/bitmaps/k25s.bm @@ -0,0 +1,12 @@ +#define k25s_width 25 +#define k25s_height 25 +static unsigned char k25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x6c, 0x00, 0x00, 0xf0, 0x55, 0x1f, 0x00, 0x18, 0xd6, 0x30, 0x00, + 0xec, 0x55, 0x6f, 0x00, 0xf4, 0xab, 0x5f, 0x00, 0xf4, 0xab, 0x5f, 0x00, + 0xf4, 0xd7, 0x5f, 0x00, 0xe8, 0xd7, 0x2f, 0x00, 0xd8, 0xd7, 0x17, 0x00, + 0x30, 0x00, 0x08, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0xe0, 0x00, 0x0e, 0x00, + 0x60, 0xfe, 0x0c, 0x00, 0xe0, 0x00, 0x0e, 0x00, 0x40, 0xff, 0x05, 0x00, + 0xc0, 0xff, 0x03, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k29o.bm b/bitmaps/k29o.bm new file mode 100644 index 0000000..9f8fbbb --- /dev/null +++ b/bitmaps/k29o.bm @@ -0,0 +1,13 @@ +#define k29o_width 29 +#define k29o_height 29 +static unsigned char k29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x10, 0x01, 0x00, + 0xe0, 0x13, 0xf9, 0x00, 0x10, 0x1c, 0x07, 0x01, 0x08, 0x10, 0x01, 0x02, + 0x04, 0xa0, 0x00, 0x04, 0x04, 0xa0, 0x00, 0x04, 0x04, 0x40, 0x00, 0x04, + 0x04, 0x40, 0x00, 0x04, 0x08, 0x40, 0x00, 0x02, 0x10, 0xfc, 0x07, 0x01, + 0xe0, 0x03, 0xf8, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0xfc, 0x47, 0x00, + 0xc0, 0x03, 0x78, 0x00, 0x40, 0xfc, 0x47, 0x00, 0xc0, 0x03, 0x78, 0x00, + 0x80, 0x03, 0x70, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k29s.bm b/bitmaps/k29s.bm new file mode 100644 index 0000000..141e4f7 --- /dev/null +++ b/bitmaps/k29s.bm @@ -0,0 +1,13 @@ +#define k29s_width 29 +#define k29s_height 29 +static unsigned char k29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0xb0, 0x01, 0x00, 0x00, 0x50, 0x01, 0x00, + 0xe0, 0x53, 0xf9, 0x00, 0x10, 0x5c, 0x07, 0x01, 0xe8, 0x59, 0xf3, 0x02, + 0xf4, 0xb7, 0xfd, 0x05, 0xf4, 0xaf, 0xfe, 0x05, 0xf4, 0xef, 0xfe, 0x05, + 0xec, 0x5f, 0xff, 0x06, 0xd8, 0x5f, 0x7f, 0x03, 0xb0, 0x01, 0xb0, 0x01, + 0x60, 0xfc, 0xc7, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0x01, 0x70, 0x00, + 0xc0, 0xfc, 0x67, 0x00, 0xc0, 0x03, 0x78, 0x00, 0xc0, 0xfc, 0x67, 0x00, + 0x80, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k33o.bm b/bitmaps/k33o.bm new file mode 100644 index 0000000..982de6a --- /dev/null +++ b/bitmaps/k33o.bm @@ -0,0 +1,17 @@ +#define k33o_width 33 +#define k33o_height 33 +static unsigned char k33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x40, 0x04, + 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0xc0, 0x27, 0xc8, 0x07, 0x00, + 0x20, 0x38, 0x38, 0x08, 0x00, 0x10, 0x20, 0x08, 0x10, 0x00, 0x08, 0x40, + 0x04, 0x20, 0x00, 0x08, 0xc0, 0x06, 0x20, 0x00, 0x08, 0x80, 0x02, 0x20, + 0x00, 0x08, 0x80, 0x03, 0x20, 0x00, 0x08, 0x00, 0x01, 0x20, 0x00, 0x10, + 0x00, 0x01, 0x10, 0x00, 0x20, 0xf0, 0x1f, 0x08, 0x00, 0x40, 0x0f, 0xe0, + 0x05, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, + 0x80, 0xf8, 0x3f, 0x02, 0x00, 0x80, 0x07, 0xc0, 0x03, 0x00, 0x80, 0xf0, + 0x1f, 0x02, 0x00, 0x80, 0x0e, 0xe0, 0x02, 0x00, 0x80, 0x01, 0x00, 0x03, + 0x00, 0x00, 0x07, 0xc0, 0x01, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k33s.bm b/bitmaps/k33s.bm new file mode 100644 index 0000000..04c35bd --- /dev/null +++ b/bitmaps/k33s.bm @@ -0,0 +1,17 @@ +#define k33s_width 33 +#define k33s_height 33 +static unsigned char k33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x40, 0x04, + 0x00, 0x00, 0x00, 0xa0, 0x0b, 0x00, 0x00, 0xc0, 0xa7, 0xcb, 0x07, 0x00, + 0x20, 0xb8, 0x3b, 0x08, 0x00, 0xd0, 0xa7, 0xcb, 0x17, 0x00, 0xe8, 0x5f, + 0xf5, 0x2f, 0x00, 0xe8, 0xbf, 0xfa, 0x2f, 0x00, 0xe8, 0xbf, 0xfa, 0x2f, + 0x00, 0xe8, 0x7f, 0xfd, 0x2f, 0x00, 0xd0, 0x7f, 0xfd, 0x37, 0x00, 0xb0, + 0x7f, 0xfd, 0x1b, 0x00, 0x60, 0x0f, 0xe0, 0x0d, 0x00, 0xc0, 0xf0, 0x1f, + 0x06, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x03, 0x80, 0x03, 0x00, 0x00, 0xf9, 0x3f, 0x03, 0x00, 0x00, 0x0f, + 0xe0, 0x03, 0x00, 0x00, 0xf1, 0x1f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x03, + 0x00, 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k37o.bm b/bitmaps/k37o.bm new file mode 100644 index 0000000..84045f1 --- /dev/null +++ b/bitmaps/k37o.bm @@ -0,0 +1,19 @@ +#define k37o_width 37 +#define k37o_height 37 +static unsigned char k37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, + 0x80, 0x8f, 0x20, 0x3e, 0x00, 0x60, 0xb0, 0xa0, 0xc1, 0x00, 0x10, 0xc0, + 0x60, 0x00, 0x01, 0x08, 0x80, 0x20, 0x00, 0x02, 0x08, 0x00, 0x11, 0x00, + 0x02, 0x08, 0x00, 0x11, 0x00, 0x02, 0x08, 0x00, 0x0a, 0x00, 0x02, 0x08, + 0x00, 0x0a, 0x00, 0x02, 0x10, 0x00, 0x04, 0x00, 0x01, 0x10, 0x00, 0x04, + 0x00, 0x01, 0x20, 0x00, 0x04, 0x80, 0x00, 0x40, 0xe0, 0xff, 0x40, 0x00, + 0x80, 0x1f, 0x00, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0xf1, 0xff, 0x11, 0x00, 0x00, 0x0f, 0x00, 0x1e, + 0x00, 0x00, 0xc1, 0x7f, 0x10, 0x00, 0x00, 0x3d, 0x80, 0x17, 0x00, 0x00, + 0x03, 0x00, 0x18, 0x00, 0x00, 0x1c, 0x80, 0x07, 0x00, 0x00, 0xe0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k37s.bm b/bitmaps/k37s.bm new file mode 100644 index 0000000..392f32b --- /dev/null +++ b/bitmaps/k37s.bm @@ -0,0 +1,19 @@ +#define k37s_width 37 +#define k37s_height 37 +static unsigned char k37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x2e, 0x00, 0x00, + 0x80, 0x8f, 0x2e, 0x3e, 0x00, 0x60, 0xb0, 0xae, 0xc1, 0x00, 0x30, 0xcf, + 0x6e, 0x9e, 0x01, 0xd8, 0xbf, 0xb5, 0x7f, 0x03, 0xe8, 0x7f, 0xd5, 0xff, + 0x02, 0xe8, 0xff, 0xea, 0xff, 0x02, 0xe8, 0xff, 0xea, 0xff, 0x02, 0xe8, + 0xff, 0xe4, 0xff, 0x02, 0xd0, 0xff, 0xf5, 0x7f, 0x01, 0xb0, 0xff, 0xf5, + 0xbf, 0x01, 0x60, 0xff, 0xf5, 0xdf, 0x00, 0xc0, 0x0e, 0x00, 0x6e, 0x00, + 0x80, 0xe1, 0xff, 0x30, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x07, 0x00, 0x1c, 0x00, 0x00, 0xf3, 0xff, 0x19, + 0x00, 0x00, 0x3f, 0x80, 0x1f, 0x00, 0x00, 0xc3, 0x7f, 0x18, 0x00, 0x00, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xe0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k40o.bm b/bitmaps/k40o.bm new file mode 100644 index 0000000..0271720 --- /dev/null +++ b/bitmaps/k40o.bm @@ -0,0 +1,20 @@ +#define k40o_width 40 +#define k40o_height 40 +static unsigned char k40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, + 0x00, 0x1f, 0x82, 0xf0, 0x01, 0xc0, 0x60, 0x82, 0x0c, 0x06, 0x20, 0x00, + 0x83, 0x01, 0x08, 0x10, 0x00, 0xc6, 0x00, 0x10, 0x10, 0x00, 0x44, 0x00, + 0x10, 0x08, 0x00, 0x6c, 0x00, 0x20, 0x08, 0x00, 0x28, 0x00, 0x20, 0x08, + 0x00, 0x28, 0x00, 0x20, 0x10, 0x00, 0x10, 0x00, 0x10, 0x10, 0x00, 0x10, + 0x00, 0x10, 0x20, 0x00, 0x10, 0x00, 0x08, 0x40, 0x80, 0xff, 0x03, 0x04, + 0x80, 0x78, 0x00, 0x3c, 0x02, 0x00, 0x07, 0x00, 0xc0, 0x01, 0x00, 0x02, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0xc2, 0xff, 0x87, + 0x00, 0x00, 0x3e, 0x00, 0xf8, 0x00, 0x00, 0x02, 0xff, 0x81, 0x00, 0x00, + 0xf2, 0x00, 0x9e, 0x00, 0x00, 0x0e, 0x00, 0xe0, 0x00, 0x00, 0x06, 0x00, + 0xc0, 0x00, 0x00, 0x78, 0x00, 0x3c, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k40s.bm b/bitmaps/k40s.bm new file mode 100644 index 0000000..8cdb6b4 --- /dev/null +++ b/bitmaps/k40s.bm @@ -0,0 +1,20 @@ +#define k40s_width 40 +#define k40s_height 40 +static unsigned char k40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, + 0x00, 0x1f, 0xba, 0xf0, 0x01, 0xc0, 0x60, 0xba, 0x0c, 0x06, 0x20, 0x9f, + 0xbb, 0xf3, 0x09, 0xd0, 0x7f, 0xd7, 0xfd, 0x17, 0xe0, 0xff, 0xd6, 0xfe, + 0x0f, 0xe8, 0xff, 0x6d, 0xff, 0x2f, 0xe8, 0xff, 0x29, 0xff, 0x2f, 0xe8, + 0xff, 0xbb, 0xff, 0x2f, 0xc0, 0xff, 0x93, 0xff, 0x07, 0xd0, 0xff, 0xd7, + 0xff, 0x17, 0xa0, 0xff, 0xd7, 0xff, 0x0b, 0x40, 0x7e, 0x00, 0xfc, 0x04, + 0x80, 0x05, 0xff, 0x41, 0x03, 0x00, 0xf3, 0xff, 0x9f, 0x01, 0x00, 0xfe, + 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x1e, 0x00, 0xf0, + 0x00, 0x00, 0xc6, 0xff, 0xc7, 0x00, 0x00, 0xfe, 0x00, 0xfe, 0x00, 0x00, + 0x0e, 0xff, 0xe1, 0x00, 0x00, 0xe6, 0xff, 0xcf, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k45o.bm b/bitmaps/k45o.bm new file mode 100644 index 0000000..f45e049 --- /dev/null +++ b/bitmaps/k45o.bm @@ -0,0 +1,51 @@ + +#define k45o_width 45 +#define k45o_height 45 +#define k45o_xoff 3 +#define k45o_yoff 3 +static unsigned char k45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x3f, 0x04, 0x84, 0x1f, 0x00, + 0xc0, 0xc0, 0x04, 0x64, 0x60, 0x00, + 0x20, 0x00, 0x07, 0x1c, 0x80, 0x00, + 0x10, 0x00, 0x0c, 0x06, 0x00, 0x01, + 0x10, 0x00, 0x08, 0x02, 0x00, 0x01, + 0x08, 0x00, 0x10, 0x01, 0x00, 0x02, + 0x08, 0x00, 0x10, 0x01, 0x00, 0x02, + 0x08, 0x00, 0xa0, 0x00, 0x00, 0x02, + 0x08, 0x00, 0xa0, 0x00, 0x00, 0x02, + 0x10, 0x00, 0x40, 0x00, 0x00, 0x02, + 0x10, 0x00, 0x40, 0x00, 0x00, 0x01, + 0x20, 0x00, 0x40, 0x00, 0x00, 0x01, + 0x40, 0x00, 0x40, 0x00, 0x80, 0x00, + 0x80, 0x00, 0xff, 0x1f, 0x40, 0x00, + 0x00, 0xf1, 0x00, 0xe0, 0x21, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0xff, 0x1f, 0x08, 0x00, + 0x00, 0xf4, 0x00, 0xe0, 0x05, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x04, 0xfe, 0x0f, 0x04, 0x00, + 0x00, 0xe4, 0x01, 0xf0, 0x04, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x06, 0x00, + 0x00, 0xe0, 0x01, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/k45s.bm b/bitmaps/k45s.bm new file mode 100644 index 0000000..5f451f0 --- /dev/null +++ b/bitmaps/k45s.bm @@ -0,0 +1,26 @@ +#define k45s_width 45 +#define k45s_height 45 +static unsigned char k45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x18, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xec, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x05, 0x00, 0x00, + 0x00, 0x00, 0xf4, 0x05, 0x00, 0x00, 0x00, 0x7f, 0xf4, 0xc5, 0x1f, 0x00, + 0xc0, 0x81, 0xf5, 0x35, 0x70, 0x00, 0x60, 0x7e, 0xf6, 0xcd, 0xcf, 0x00, + 0xb0, 0xff, 0xed, 0xf6, 0xbf, 0x01, 0xd0, 0xff, 0xeb, 0xfa, 0x7f, 0x01, + 0xe8, 0xff, 0x57, 0xfd, 0xff, 0x02, 0xe8, 0xff, 0xb7, 0xfd, 0xff, 0x02, + 0xe8, 0xff, 0xaf, 0xfe, 0xff, 0x02, 0xe8, 0xff, 0xef, 0xfe, 0xff, 0x02, + 0xd0, 0xff, 0x5f, 0xff, 0x7f, 0x03, 0xd0, 0xff, 0x5f, 0xff, 0x7f, 0x01, + 0xa0, 0xff, 0x5f, 0xff, 0xbf, 0x01, 0x40, 0xff, 0x5f, 0xff, 0xdf, 0x00, + 0x80, 0xfc, 0x00, 0xe0, 0x67, 0x00, 0x00, 0x09, 0xfe, 0x0f, 0x32, 0x00, + 0x00, 0xf6, 0xff, 0xff, 0x1d, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0x00, 0xe0, 0x0f, 0x00, + 0x00, 0x04, 0xff, 0x1f, 0x04, 0x00, 0x00, 0xf4, 0xff, 0xff, 0x05, 0x00, + 0x00, 0xfc, 0x01, 0xf0, 0x07, 0x00, 0x00, 0x1c, 0xfe, 0x0f, 0x07, 0x00, + 0x00, 0xe4, 0xff, 0xff, 0x04, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k49o.bm b/bitmaps/k49o.bm new file mode 100644 index 0000000..9e9b9d2 --- /dev/null +++ b/bitmaps/k49o.bm @@ -0,0 +1,55 @@ + +#define k49o_width 49 +#define k49o_height 49 +#define k49o_xoff 3 +#define k49o_yoff 3 +static unsigned char k49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x10, 0x10, 0xfe, 0x00, 0x00, + 0x80, 0x01, 0x13, 0x90, 0x01, 0x03, 0x00, + 0x40, 0x00, 0x1c, 0x70, 0x00, 0x04, 0x00, + 0x20, 0x00, 0x10, 0x10, 0x00, 0x08, 0x00, + 0x10, 0x00, 0x20, 0x08, 0x00, 0x10, 0x00, + 0x10, 0x00, 0x60, 0x0c, 0x00, 0x10, 0x00, + 0x08, 0x00, 0x40, 0x04, 0x00, 0x20, 0x00, + 0x08, 0x00, 0xc0, 0x06, 0x00, 0x20, 0x00, + 0x08, 0x00, 0x80, 0x02, 0x00, 0x20, 0x00, + 0x08, 0x00, 0x80, 0x02, 0x00, 0x20, 0x00, + 0x08, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, + 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x20, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, + 0x40, 0x00, 0xfc, 0x7f, 0x00, 0x04, 0x00, + 0x80, 0xc0, 0x03, 0x80, 0x07, 0x02, 0x00, + 0x00, 0x3b, 0x00, 0x00, 0x38, 0x01, 0x00, + 0x00, 0x04, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0xfc, 0x7f, 0x40, 0x00, 0x00, + 0x00, 0xe4, 0x03, 0x80, 0x4f, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x04, 0xf8, 0x3f, 0x40, 0x00, 0x00, + 0x00, 0x84, 0x07, 0xc0, 0x43, 0x00, 0x00, + 0x00, 0x74, 0x00, 0x00, 0x5c, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/k49s.bm b/bitmaps/k49s.bm new file mode 100644 index 0000000..b7819fb --- /dev/null +++ b/bitmaps/k49s.bm @@ -0,0 +1,55 @@ + +#define k49s_width 49 +#define k49s_height 49 +#define k49s_xoff 3 +#define k49s_yoff 3 +static unsigned char k49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xb0, 0x1b, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd0, 0x17, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xd0, 0x17, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xd0, 0x17, 0xfe, 0x00, 0x00, + 0x80, 0x81, 0xd3, 0x97, 0x03, 0x03, 0x00, + 0x40, 0x7e, 0xde, 0xf7, 0xfc, 0x04, 0x00, + 0xa0, 0xff, 0xb9, 0x3b, 0xff, 0x0b, 0x00, + 0xd0, 0xff, 0xb7, 0xdb, 0xff, 0x17, 0x00, + 0xc0, 0xff, 0x6f, 0xed, 0xff, 0x07, 0x00, + 0xe8, 0xff, 0x5f, 0xf5, 0xff, 0x2f, 0x00, + 0xe8, 0xff, 0xdf, 0xf6, 0xff, 0x2f, 0x00, + 0xe8, 0xff, 0xbf, 0xfa, 0xff, 0x2f, 0x00, + 0xe8, 0xff, 0xbf, 0xfb, 0xff, 0x2f, 0x00, + 0xd8, 0xff, 0x3f, 0xf9, 0xff, 0x37, 0x00, + 0xd0, 0xff, 0x7f, 0xfd, 0xff, 0x17, 0x00, + 0xb0, 0xff, 0x7f, 0xfd, 0xff, 0x1b, 0x00, + 0x60, 0xff, 0x7f, 0xfd, 0xff, 0x0d, 0x00, + 0xc0, 0xfc, 0x03, 0x80, 0x7f, 0x06, 0x00, + 0x80, 0x3b, 0xf8, 0x3d, 0xb8, 0x03, 0x00, + 0x00, 0xc7, 0xff, 0xff, 0xc7, 0x01, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x0c, 0xfc, 0x7f, 0x60, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0x07, 0xc0, 0x7f, 0x00, 0x00, + 0x00, 0x7c, 0xf8, 0x3f, 0x7c, 0x00, 0x00, + 0x00, 0x8c, 0xff, 0xff, 0x63, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/k54o.bm b/bitmaps/k54o.bm new file mode 100644 index 0000000..be47c4e --- /dev/null +++ b/bitmaps/k54o.bm @@ -0,0 +1,35 @@ +#define k54o_width 54 +#define k54o_height 54 +static unsigned char k54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xc1, 0xc0, 0xe0, 0x07, 0x00, 0x00, 0xfe, 0xcf, 0xc0, 0xfc, 0x1f, + 0x00, 0x80, 0x07, 0xfe, 0xc0, 0x1f, 0x78, 0x00, 0xc0, 0x01, 0xf0, 0xc0, + 0x03, 0xe0, 0x00, 0xe0, 0x00, 0xe0, 0xe1, 0x01, 0xc0, 0x01, 0x60, 0x00, + 0xc0, 0xe1, 0x00, 0x80, 0x01, 0x70, 0x00, 0x80, 0x73, 0x00, 0x80, 0x03, + 0x30, 0x00, 0x00, 0x33, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x03, 0x30, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x03, 0x30, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x03, 0x70, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x03, 0x60, + 0x00, 0x00, 0x0c, 0x00, 0x80, 0x01, 0xe0, 0x00, 0x00, 0x0c, 0x00, 0xc0, + 0x01, 0xc0, 0x01, 0x00, 0x0c, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x0c, + 0x00, 0x70, 0x00, 0x00, 0x07, 0xf0, 0xff, 0x03, 0x38, 0x00, 0x00, 0xce, + 0xff, 0xff, 0xff, 0x1c, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0xfc, 0x0f, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x18, 0xe0, 0xff, 0x01, 0x06, 0x00, 0x00, 0x18, 0xff, + 0xff, 0x3f, 0x06, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0xfe, 0x07, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x30, 0xe0, 0xff, 0x01, 0x03, + 0x00, 0x00, 0x30, 0xff, 0xff, 0x3f, 0x03, 0x00, 0x00, 0xf0, 0x1f, 0x00, + 0xfe, 0x03, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k54s.bm b/bitmaps/k54s.bm new file mode 100644 index 0000000..53f2273 --- /dev/null +++ b/bitmaps/k54s.bm @@ -0,0 +1,35 @@ +#define k54s_width 54 +#define k54s_height 54 +static unsigned char k54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcc, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xc1, 0xcc, 0xe0, 0x07, 0x00, 0x00, 0xfe, 0xcf, 0xcc, 0xfc, 0x1f, + 0x00, 0x80, 0x07, 0xfe, 0xcc, 0x1f, 0x78, 0x00, 0xc0, 0x01, 0xf8, 0xcc, + 0x07, 0xe0, 0x00, 0xe0, 0xf0, 0xe1, 0xc0, 0xe1, 0xc3, 0x01, 0x60, 0xfc, + 0xc7, 0xe1, 0xf8, 0x8f, 0x01, 0x30, 0xfe, 0x8f, 0x73, 0xfc, 0x1f, 0x03, + 0x30, 0xfe, 0x1f, 0x33, 0xfe, 0x1f, 0x03, 0x30, 0xff, 0x3f, 0x3f, 0xff, + 0x3f, 0x03, 0x30, 0xff, 0x3f, 0x1e, 0xff, 0x3f, 0x03, 0x30, 0xfe, 0x7f, + 0x9e, 0xff, 0x1f, 0x03, 0x30, 0xfe, 0x7f, 0x8c, 0xff, 0x1f, 0x03, 0x60, + 0xfc, 0x7f, 0x8c, 0xff, 0x8f, 0x01, 0xe0, 0xf8, 0xff, 0xcc, 0xff, 0xc7, + 0x01, 0xc0, 0xf1, 0xff, 0xcc, 0xff, 0xe3, 0x00, 0x80, 0xe3, 0xff, 0xcc, + 0xff, 0x71, 0x00, 0x00, 0xc7, 0x07, 0x00, 0xf8, 0x38, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x1c, 0xf0, 0xff, 0x03, 0x0e, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xfc, 0x03, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x70, 0xe0, 0xff, 0x81, 0x03, 0x00, 0x00, + 0x70, 0xff, 0xff, 0xbf, 0x03, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0xfc, 0x03, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x30, 0xe0, 0xff, + 0x01, 0x03, 0x00, 0x00, 0x70, 0xfe, 0xff, 0x9f, 0x03, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k58o.bm b/bitmaps/k58o.bm new file mode 100644 index 0000000..5643bcd --- /dev/null +++ b/bitmaps/k58o.bm @@ -0,0 +1,42 @@ +#define k58o_width 58 +#define k58o_height 58 +static unsigned char k58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x03, + 0x03, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x03, 0xc3, 0xff, 0x01, 0x00, + 0x80, 0x07, 0x3c, 0x03, 0xf3, 0x80, 0x07, 0x00, 0xc0, 0x01, 0xf0, 0x03, + 0x3f, 0x00, 0x0e, 0x00, 0xe0, 0x00, 0xc0, 0x03, 0x0f, 0x00, 0x1c, 0x00, + 0x60, 0x00, 0x80, 0x87, 0x07, 0x00, 0x18, 0x00, 0x70, 0x00, 0x00, 0x87, + 0x03, 0x00, 0x38, 0x00, 0x30, 0x00, 0x00, 0xce, 0x01, 0x00, 0x30, 0x00, + 0x30, 0x00, 0x00, 0xce, 0x01, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0xfc, + 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x30, 0x00, + 0x30, 0x00, 0x00, 0x78, 0x00, 0x00, 0x30, 0x00, 0x70, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x38, 0x00, 0x60, 0x00, 0x00, 0x30, 0x00, 0x00, 0x1c, 0x00, + 0xe0, 0x00, 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x01, 0x00, 0x30, + 0x00, 0x00, 0x0e, 0x00, 0x80, 0x03, 0x00, 0x30, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x07, 0xc0, 0xff, 0x0f, 0x80, 0x03, 0x00, 0x00, 0x0e, 0xfe, 0xff, + 0xff, 0xc1, 0x01, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0xf0, 0xff, 0x00, 0x00, + 0x00, 0xf8, 0x01, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0xc0, 0xff, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x30, 0xfe, 0xff, + 0xff, 0x31, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0xf0, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x30, 0x80, 0xff, + 0x07, 0x30, 0x00, 0x00, 0x00, 0x30, 0xfc, 0xff, 0xff, 0x30, 0x00, 0x00, + 0x00, 0xb0, 0x7f, 0x00, 0xf8, 0x37, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0x7f, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k58s.bm b/bitmaps/k58s.bm new file mode 100644 index 0000000..968ecbd --- /dev/null +++ b/bitmaps/k58s.bm @@ -0,0 +1,42 @@ +#define k58s_width 58 +#define k58s_height 58 +static unsigned char k58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x33, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x33, + 0x03, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x33, 0xc3, 0xff, 0x01, 0x00, + 0x80, 0x07, 0x3c, 0x33, 0xf3, 0x80, 0x07, 0x00, 0xc0, 0x01, 0xf0, 0x33, + 0x3f, 0x00, 0x0e, 0x00, 0xe0, 0xf0, 0xc1, 0x03, 0x0f, 0x3e, 0x1c, 0x00, + 0x60, 0xfc, 0x87, 0x87, 0x87, 0xff, 0x18, 0x00, 0x30, 0xfe, 0x1f, 0x87, + 0xe3, 0xff, 0x31, 0x00, 0x30, 0xfe, 0x3f, 0x86, 0xf1, 0xff, 0x31, 0x00, + 0x30, 0xff, 0x7f, 0xcc, 0xf8, 0xff, 0x33, 0x00, 0x30, 0xff, 0x7f, 0xcc, + 0xf8, 0xff, 0x33, 0x00, 0x30, 0xff, 0xff, 0x78, 0xfc, 0xff, 0x33, 0x00, + 0x30, 0xfe, 0xff, 0x78, 0xfc, 0xff, 0x31, 0x00, 0x70, 0xfe, 0xff, 0x79, + 0xfe, 0xff, 0x39, 0x00, 0x60, 0xfc, 0xff, 0x31, 0xfe, 0xff, 0x18, 0x00, + 0xe0, 0xf8, 0xff, 0x33, 0xff, 0x7f, 0x0c, 0x00, 0xc0, 0xf1, 0xff, 0x33, + 0xff, 0x3f, 0x0e, 0x00, 0x80, 0xe3, 0xff, 0x33, 0xff, 0x1f, 0x07, 0x00, + 0x00, 0x87, 0x1f, 0x00, 0xe0, 0x87, 0x03, 0x00, 0x00, 0x0e, 0x01, 0x00, + 0x00, 0xc2, 0x01, 0x00, 0x00, 0x1c, 0x80, 0xff, 0x07, 0xe0, 0x00, 0x00, + 0x00, 0x38, 0xfe, 0xff, 0xff, 0x71, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0x1f, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x70, 0x80, 0xff, 0x07, 0x38, 0x00, 0x00, + 0x00, 0xf0, 0xfe, 0xff, 0xff, 0x3d, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, + 0xf0, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x70, 0x80, 0xff, 0x07, 0x38, 0x00, 0x00, 0x00, 0x70, 0xfc, 0xff, + 0xff, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k64o.bm b/bitmaps/k64o.bm new file mode 100644 index 0000000..37ccc38 --- /dev/null +++ b/bitmaps/k64o.bm @@ -0,0 +1,46 @@ +#define k64o_width 64 +#define k64o_height 64 +static unsigned char k64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x0c, + 0x30, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x3f, 0x0c, 0x30, 0xfc, 0x1f, 0x00, + 0x00, 0x1e, 0xf0, 0x0c, 0x30, 0x0f, 0x78, 0x00, 0x00, 0x07, 0xc0, 0x0f, + 0xf0, 0x03, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x1f, 0xf8, 0x00, 0xc0, 0x01, + 0xc0, 0x01, 0x00, 0x1e, 0x78, 0x00, 0x80, 0x03, 0xc0, 0x00, 0x00, 0x1c, + 0x38, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x07, + 0x60, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x70, + 0x0e, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x06, + 0x60, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x06, 0xe0, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x03, + 0xc0, 0x01, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x80, 0x01, 0x80, 0x03, 0x00, 0x80, 0x01, 0x00, 0xc0, 0x01, + 0x00, 0x07, 0x00, 0x80, 0x01, 0x00, 0xe0, 0x00, 0x00, 0x0e, 0x00, 0x80, + 0x01, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, 0xff, 0xff, 0x00, 0x38, 0x00, + 0x00, 0x38, 0xfc, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0xf0, 0xff, 0x00, + 0x00, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0xfe, 0x7f, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0xf0, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xc0, 0xfe, 0x01, + 0x80, 0x7f, 0x03, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x00, 0xfe, + 0x7f, 0x00, 0x03, 0x00, 0x00, 0xc0, 0xf0, 0xff, 0xff, 0x0f, 0x03, 0x00, + 0x00, 0xc0, 0xfe, 0x01, 0x80, 0x7f, 0x03, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0xf0, 0x03, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0xfe, 0x01, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k64s.bm b/bitmaps/k64s.bm new file mode 100644 index 0000000..1088067 --- /dev/null +++ b/bitmaps/k64s.bm @@ -0,0 +1,46 @@ +#define k64s_width 64 +#define k64s_height 64 +static unsigned char k64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x31, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcc, 0x33, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xcc, + 0x33, 0xf0, 0x07, 0x00, 0x00, 0xf8, 0x3f, 0xcc, 0x33, 0xfc, 0x1f, 0x00, + 0x00, 0x1e, 0xf0, 0xcc, 0x33, 0x0f, 0x78, 0x00, 0x00, 0x07, 0xc0, 0xcf, + 0xf3, 0x03, 0xe0, 0x00, 0x80, 0xc3, 0x07, 0x8f, 0xf1, 0xe0, 0xc3, 0x01, + 0xc0, 0xf1, 0x1f, 0x9e, 0x79, 0xf8, 0x8f, 0x03, 0xc0, 0xf8, 0x7f, 0x1c, + 0x38, 0xfe, 0x1f, 0x03, 0x60, 0xfc, 0xff, 0x38, 0x1c, 0xff, 0x3f, 0x06, + 0x60, 0xfc, 0xff, 0x31, 0x8c, 0xff, 0x3f, 0x06, 0x60, 0xfe, 0xff, 0x63, + 0xc6, 0xff, 0x7f, 0x06, 0x60, 0xfe, 0xff, 0x63, 0xc6, 0xff, 0x7f, 0x06, + 0x60, 0xfe, 0xff, 0xc7, 0xe3, 0xff, 0x7f, 0x06, 0x60, 0xfc, 0xff, 0xc7, + 0xe3, 0xff, 0x3f, 0x06, 0xc0, 0xf8, 0xff, 0xcf, 0xf3, 0xff, 0x1f, 0x03, + 0xc0, 0xf8, 0xff, 0x8f, 0xf1, 0xff, 0x1f, 0x03, 0x80, 0xf1, 0xff, 0x8f, + 0xf1, 0xff, 0x8f, 0x01, 0x80, 0xe3, 0xff, 0x9f, 0xf9, 0xff, 0xc7, 0x01, + 0x00, 0xc7, 0xff, 0x9f, 0xf9, 0xff, 0xe3, 0x00, 0x00, 0x8e, 0xff, 0x9f, + 0xf9, 0xff, 0x71, 0x00, 0x00, 0x1c, 0x7f, 0x00, 0x00, 0xfe, 0x38, 0x00, + 0x00, 0x38, 0x02, 0x00, 0x00, 0x40, 0x1c, 0x00, 0x00, 0x70, 0x00, 0xfe, + 0x7f, 0x00, 0x0e, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0x1f, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x80, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xc0, 0x01, 0xfc, + 0x3f, 0x80, 0x03, 0x00, 0x00, 0xc0, 0xe1, 0xff, 0xff, 0x87, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0x00, + 0x00, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0xfc, 0x3f, 0x80, 0x03, 0x00, 0x00, 0xc0, 0xf1, 0xff, + 0xff, 0x8f, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k72o.bm b/bitmaps/k72o.bm new file mode 100644 index 0000000..95ddfb1 --- /dev/null +++ b/bitmaps/k72o.bm @@ -0,0 +1,57 @@ +#define k72o_width 72 +#define k72o_height 72 +static unsigned char k72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x60, 0x00, 0x06, 0xfc, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0x61, 0x00, 0x86, 0xff, 0x1f, 0x00, 0x00, 0x3e, 0xc0, + 0x67, 0x00, 0xe6, 0x03, 0x7c, 0x00, 0x00, 0x07, 0x00, 0x7e, 0x00, 0x7e, + 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x78, 0x00, 0x1e, 0x00, 0xc0, 0x01, + 0xc0, 0x01, 0x00, 0xf0, 0x00, 0x0f, 0x00, 0x80, 0x03, 0xc0, 0x00, 0x00, + 0xe0, 0x00, 0x07, 0x00, 0x00, 0x03, 0xe0, 0x00, 0x00, 0xc0, 0x81, 0x03, + 0x00, 0x00, 0x07, 0x60, 0x00, 0x00, 0x80, 0x81, 0x01, 0x00, 0x00, 0x06, + 0x70, 0x00, 0x00, 0x80, 0xc3, 0x01, 0x00, 0x00, 0x0e, 0x30, 0x00, 0x00, + 0x00, 0xc3, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0xe7, 0x00, + 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x66, 0x00, 0x00, 0x00, 0x0c, + 0x30, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x0c, 0x30, 0x00, 0x00, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x0c, 0x70, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x0e, 0x60, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x06, + 0xe0, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x07, 0xc0, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x80, 0x03, 0x80, 0x03, 0x00, 0x00, 0x18, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x0e, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0x70, 0x00, 0x00, 0x1c, 0xc0, 0xff, 0xff, 0xff, + 0x03, 0x38, 0x00, 0x00, 0x78, 0xfc, 0x0f, 0x00, 0xf0, 0x3f, 0x1e, 0x00, + 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x01, + 0xf0, 0xff, 0x0f, 0x80, 0x01, 0x00, 0x00, 0x80, 0xc1, 0xff, 0xff, 0xff, + 0x83, 0x01, 0x00, 0x00, 0x80, 0xfd, 0x0f, 0x00, 0xf0, 0xbf, 0x01, 0x00, + 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x01, 0xe0, 0xff, 0x07, + 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0xff, 0xff, 0xff, 0x80, 0x01, 0x00, + 0x00, 0x80, 0xf1, 0x1f, 0x00, 0xf8, 0x8f, 0x01, 0x00, 0x00, 0x80, 0xff, + 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x1f, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k72s.bm b/bitmaps/k72s.bm new file mode 100644 index 0000000..5382ee9 --- /dev/null +++ b/bitmaps/k72s.bm @@ -0,0 +1,57 @@ +#define k72s_width 72 +#define k72s_height 72 +static unsigned char k72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe7, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x81, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x18, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x3c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x3c, 0x06, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x60, 0x7e, 0x06, 0xfc, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0x61, 0x7e, 0x86, 0xff, 0x1f, 0x00, 0x00, 0x3e, 0xc0, + 0x67, 0x7e, 0xe6, 0x03, 0x7c, 0x00, 0x00, 0x0f, 0x00, 0x7e, 0x7e, 0x7e, + 0x00, 0xf0, 0x00, 0x80, 0x83, 0x1f, 0x7c, 0x3c, 0x3e, 0xf8, 0xc1, 0x01, + 0xc0, 0xf1, 0xff, 0xf0, 0x3c, 0x0f, 0xff, 0x8f, 0x03, 0xc0, 0xf8, 0xff, + 0xe3, 0x3c, 0xc7, 0xff, 0x1f, 0x03, 0x60, 0xfc, 0xff, 0xc7, 0x99, 0xe3, + 0xff, 0x3f, 0x06, 0x60, 0xfe, 0xff, 0x8f, 0x99, 0xf1, 0xff, 0x7f, 0x06, + 0x30, 0xfe, 0xff, 0x1f, 0xc3, 0xf8, 0xff, 0x7f, 0x0c, 0x30, 0xff, 0xff, + 0x1f, 0xc3, 0xf8, 0xff, 0xff, 0x0c, 0x30, 0xff, 0xff, 0x3f, 0x66, 0xfc, + 0xff, 0xff, 0x0c, 0x30, 0xff, 0xff, 0x3f, 0x66, 0xfc, 0xff, 0xff, 0x0c, + 0x30, 0xff, 0xff, 0x7f, 0x3c, 0xfe, 0xff, 0xff, 0x0c, 0x30, 0xfe, 0xff, + 0x7f, 0x3c, 0xfe, 0xff, 0x7f, 0x0c, 0x30, 0xfe, 0xff, 0xff, 0x3c, 0xff, + 0xff, 0x7f, 0x0c, 0x60, 0xfc, 0xff, 0xff, 0x18, 0xff, 0xff, 0x3f, 0x06, + 0x60, 0xfc, 0xff, 0xff, 0x18, 0xff, 0xff, 0x3f, 0x06, 0xc0, 0xf8, 0xff, + 0xff, 0x99, 0xff, 0xff, 0x1f, 0x03, 0xc0, 0xf1, 0xff, 0xff, 0x99, 0xff, + 0xff, 0x8f, 0x03, 0x80, 0xe3, 0xff, 0xff, 0x99, 0xff, 0xff, 0xc7, 0x01, + 0x00, 0x87, 0xff, 0xff, 0x99, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x0e, 0xff, + 0x07, 0x00, 0xe0, 0xff, 0x70, 0x00, 0x00, 0x1c, 0x3e, 0x00, 0x00, 0x00, + 0x7c, 0x38, 0x00, 0x00, 0x78, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x1e, 0x00, + 0x00, 0xe0, 0x80, 0xff, 0xff, 0xff, 0x01, 0x07, 0x00, 0x00, 0xc0, 0xf9, + 0xff, 0xff, 0xff, 0x9f, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x80, 0xff, + 0x07, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x80, 0x03, 0xe0, 0xff, 0x07, 0xc0, 0x01, 0x00, + 0x00, 0x80, 0xc3, 0xff, 0xff, 0xff, 0xc3, 0x01, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xf0, + 0xff, 0x01, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0x00, 0x80, 0x0f, 0xc0, 0xff, 0x03, 0xf0, 0x01, 0x00, 0x00, 0x80, 0x03, + 0xff, 0xff, 0xff, 0xc0, 0x01, 0x00, 0x00, 0x80, 0xe3, 0xff, 0xff, 0xff, + 0xc7, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k80o.bm b/bitmaps/k80o.bm new file mode 100644 index 0000000..bd1dd13 --- /dev/null +++ b/bitmaps/k80o.bm @@ -0,0 +1,70 @@ +#define k80o_width 80 +#define k80o_height 80 +static unsigned char k80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x01, 0x06, 0x60, 0x80, 0xff, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0x06, 0x60, 0xf0, 0xff, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x3e, + 0x06, 0x60, 0x7c, 0x00, 0x0f, 0x00, 0x00, 0x3c, 0x00, 0x70, 0x06, 0x60, + 0x0e, 0x00, 0x3c, 0x00, 0x00, 0x0e, 0x00, 0xe0, 0x07, 0xe0, 0x07, 0x00, + 0x70, 0x00, 0x00, 0x07, 0x00, 0x80, 0x0f, 0xf0, 0x01, 0x00, 0xe0, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0xc0, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x01, 0x00, 0x00, + 0x1c, 0x38, 0x00, 0x00, 0x80, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x18, 0x18, + 0x00, 0x00, 0x80, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, + 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x30, 0x0c, 0x00, 0x00, 0x00, 0x03, + 0xc0, 0x00, 0x00, 0x00, 0x70, 0x0e, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, + 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x01, 0x00, 0x00, 0xe0, 0x07, + 0x00, 0x00, 0x80, 0x03, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x80, 0x01, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x70, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0xe0, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x07, 0x00, 0x00, 0xc0, + 0xc1, 0xff, 0x00, 0x00, 0xff, 0x83, 0x03, 0x00, 0x00, 0x80, 0xfb, 0x03, + 0x00, 0x00, 0xc0, 0xdf, 0x01, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0xfe, 0x7f, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0xf8, + 0xff, 0xff, 0x1f, 0x60, 0x00, 0x00, 0x00, 0x00, 0x86, 0xff, 0x01, 0x80, + 0xff, 0x61, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x07, 0x00, 0x00, 0xe0, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0xfe, 0x7f, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xf8, + 0xff, 0xff, 0x1f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xff, 0x01, 0x80, + 0xff, 0x30, 0x00, 0x00, 0x00, 0x00, 0xec, 0x07, 0x00, 0x00, 0xe0, 0x37, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x07, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k80s.bm b/bitmaps/k80s.bm new file mode 100644 index 0000000..d69b4ff --- /dev/null +++ b/bitmaps/k80s.bm @@ -0,0 +1,70 @@ +#define k80s_width 80 +#define k80s_height 80 +static unsigned char k80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x73, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x63, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x01, 0xe6, 0x67, 0x80, 0xff, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0xe6, 0x67, 0xf0, 0xff, 0x07, 0x00, 0x00, 0xf0, 0x00, 0x3e, + 0xe6, 0x67, 0x7c, 0x00, 0x0f, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xe6, 0x67, + 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x0e, 0xfe, 0xe0, 0xe7, 0xe7, 0x07, 0x7f, + 0x70, 0x00, 0x00, 0xc7, 0xff, 0x87, 0xc7, 0xe3, 0xe1, 0xff, 0xe3, 0x00, + 0x00, 0xe3, 0xff, 0x0f, 0xcf, 0xf3, 0xf0, 0xff, 0xc7, 0x00, 0x80, 0xf1, + 0xff, 0x3f, 0x8e, 0x71, 0xfc, 0xff, 0x8f, 0x01, 0x80, 0xf1, 0xff, 0x7f, + 0x9c, 0x39, 0xfe, 0xff, 0x9f, 0x01, 0xc0, 0xf8, 0xff, 0xff, 0x18, 0x18, + 0xff, 0xff, 0x1f, 0x03, 0xc0, 0xf8, 0xff, 0xff, 0x31, 0x8c, 0xff, 0xff, + 0x1f, 0x03, 0xc0, 0xfc, 0xff, 0xff, 0x31, 0x8c, 0xff, 0xff, 0x3f, 0x03, + 0xc0, 0xfc, 0xff, 0xff, 0x63, 0xc6, 0xff, 0xff, 0x3f, 0x03, 0xc0, 0xfc, + 0xff, 0xff, 0x63, 0xc6, 0xff, 0xff, 0x3f, 0x03, 0xc0, 0xfc, 0xff, 0xff, + 0xe7, 0xe3, 0xff, 0xff, 0x3f, 0x03, 0xc0, 0xf8, 0xff, 0xff, 0xc7, 0xe3, + 0xff, 0xff, 0x1f, 0x03, 0x80, 0xf9, 0xff, 0xff, 0xc7, 0xe3, 0xff, 0xff, + 0x9f, 0x01, 0x80, 0xf1, 0xff, 0xff, 0xcf, 0xf3, 0xff, 0xff, 0x8f, 0x01, + 0x00, 0xf3, 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0x8f, 0x00, 0x00, 0xe3, + 0xff, 0xff, 0x8f, 0xf1, 0xff, 0xff, 0xc7, 0x00, 0x00, 0xc6, 0xff, 0xff, + 0x9f, 0xf9, 0xff, 0xff, 0x63, 0x00, 0x00, 0x8c, 0xff, 0xff, 0x9f, 0xf9, + 0xff, 0xff, 0x31, 0x00, 0x00, 0x18, 0xfe, 0xff, 0x9f, 0xf9, 0xff, 0x7f, + 0x18, 0x00, 0x00, 0x30, 0xfc, 0x7f, 0x00, 0x00, 0xfe, 0x3f, 0x0c, 0x00, + 0x00, 0xe0, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x1f, 0x07, 0x00, 0x00, 0xc0, + 0x31, 0x00, 0xfe, 0x7f, 0x00, 0x8c, 0x03, 0x00, 0x00, 0x80, 0x03, 0xf8, + 0xff, 0xff, 0x1f, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x87, 0xff, 0xff, 0xff, + 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, + 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0xfe, 0x7f, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf0, 0xff, 0xff, 0x0f, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0xff, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, + 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0xfe, 0x7f, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xf0, 0xff, 0xff, 0x0f, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x38, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k87o.bm b/bitmaps/k87o.bm new file mode 100644 index 0000000..b343442 --- /dev/null +++ b/bitmaps/k87o.bm @@ -0,0 +1,83 @@ +#define k87o_width 87 +#define k87o_height 87 +static unsigned char k87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, + 0x38, 0x00, 0x0e, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x38, + 0x00, 0x0e, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0x38, 0x00, + 0x0e, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf8, 0x03, 0xfc, 0x39, 0x00, 0xce, + 0x1f, 0xe0, 0x0f, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0x3f, 0x00, 0xfe, 0x03, + 0x00, 0x1f, 0x00, 0x00, 0x1e, 0x00, 0x80, 0x3f, 0x00, 0xfe, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x7e, 0x00, 0x3f, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x7c, 0x00, 0x1f, 0x00, 0x00, 0x70, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x00, 0x80, + 0x03, 0x00, 0x00, 0xf0, 0x80, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, + 0x00, 0x00, 0xe0, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0xc0, 0xc1, 0x01, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, + 0xc0, 0xe3, 0x01, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x80, + 0xe3, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x80, 0xf7, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x77, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x80, 0x03, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf8, + 0xff, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x01, 0xe0, 0xff, 0xff, + 0xff, 0x03, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0xc0, 0x03, 0x00, 0x00, 0x80, 0xe7, 0xff, 0x07, 0x00, 0xf0, 0xff, + 0xf3, 0x01, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0xe0, 0xff, 0xff, 0xff, 0x03, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xfe, + 0xff, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x07, + 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, + 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xf0, 0xff, 0x07, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x38, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0xff, 0x0f, 0x00, 0xf8, 0xff, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x3f, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x0f, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k87s.bm b/bitmaps/k87s.bm new file mode 100644 index 0000000..7a3e18e --- /dev/null +++ b/bitmaps/k87s.bm @@ -0,0 +1,83 @@ +#define k87s_width 87 +#define k87s_height 87 +static unsigned char k87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe3, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x1c, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x3e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, + 0x38, 0x3e, 0x0e, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x38, + 0x3e, 0x0e, 0xfc, 0xff, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x7f, 0x38, 0x3e, + 0x0e, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf8, 0x03, 0xf8, 0x39, 0x3e, 0xce, + 0x0f, 0xe0, 0x0f, 0x00, 0x00, 0xfc, 0x00, 0xe0, 0x3f, 0x3e, 0xfe, 0x03, + 0x80, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0x80, 0x3f, 0x3e, 0xfe, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x1f, 0xf8, 0x03, 0x7e, 0x1c, 0x3f, 0xe0, 0x0f, 0x7c, + 0x00, 0x00, 0x0f, 0xff, 0x1f, 0x7c, 0x1c, 0x1f, 0xfc, 0x7f, 0x78, 0x00, + 0x80, 0x87, 0xff, 0x3f, 0xf8, 0x88, 0x0f, 0xfe, 0xff, 0xf0, 0x00, 0x80, + 0xc7, 0xff, 0xff, 0xf0, 0x88, 0x87, 0xff, 0xff, 0xf1, 0x00, 0x80, 0xc3, + 0xff, 0xff, 0xe1, 0xc1, 0xc3, 0xff, 0xff, 0xe1, 0x00, 0xc0, 0xe3, 0xff, + 0xff, 0xc3, 0xc1, 0xe1, 0xff, 0xff, 0xe3, 0x01, 0xc0, 0xe3, 0xff, 0xff, + 0xc7, 0xe3, 0xf1, 0xff, 0xff, 0xe3, 0x01, 0xc0, 0xe3, 0xff, 0xff, 0x87, + 0xe3, 0xf0, 0xff, 0xff, 0xe3, 0x01, 0xc0, 0xe3, 0xff, 0xff, 0x8f, 0xf7, + 0xf8, 0xff, 0xff, 0xe3, 0x01, 0xc0, 0xe3, 0xff, 0xff, 0x0f, 0x77, 0xf8, + 0xff, 0xff, 0xe3, 0x01, 0xc0, 0xc3, 0xff, 0xff, 0x1f, 0x7f, 0xfc, 0xff, + 0xff, 0xe1, 0x01, 0x80, 0xc7, 0xff, 0xff, 0x1f, 0x3e, 0xfc, 0xff, 0xff, + 0xf1, 0x01, 0x80, 0x87, 0xff, 0xff, 0x3f, 0x3e, 0xfe, 0xff, 0xff, 0xf0, + 0x00, 0x00, 0x8f, 0xff, 0xff, 0x3f, 0x3e, 0xfe, 0xff, 0xff, 0xf8, 0x00, + 0x00, 0x0f, 0xff, 0xff, 0x3f, 0x1c, 0xfe, 0xff, 0x7f, 0x78, 0x00, 0x00, + 0x1e, 0xfe, 0xff, 0x7f, 0x1c, 0xff, 0xff, 0x3f, 0x7c, 0x00, 0x00, 0x3e, + 0xfc, 0xff, 0x7f, 0x1c, 0xff, 0xff, 0x1f, 0x3e, 0x00, 0x00, 0x7c, 0xf8, + 0xff, 0x7f, 0x1c, 0xff, 0xff, 0x0f, 0x3f, 0x00, 0x00, 0xf8, 0xf0, 0xff, + 0x7f, 0x1c, 0xff, 0xff, 0x87, 0x1f, 0x00, 0x00, 0xf0, 0xe1, 0xff, 0x03, + 0x00, 0xe0, 0xff, 0xc3, 0x0f, 0x00, 0x00, 0xe0, 0xc3, 0x0f, 0x00, 0x00, + 0x00, 0xf8, 0xe1, 0x07, 0x00, 0x00, 0xc0, 0x87, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xf0, 0x03, 0x00, 0x00, 0x80, 0x0f, 0x00, 0xf0, 0xff, 0x07, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0xff, 0xff, 0xff, 0x01, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x03, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x0f, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0xf0, + 0xff, 0x07, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0xff, 0xff, + 0xff, 0x03, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, 0x00, 0xf0, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x00, 0xe0, 0xff, 0x03, 0x80, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x80, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xf8, 0xff, 0xff, 0xff, 0x8f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k95o.bm b/bitmaps/k95o.bm new file mode 100644 index 0000000..1d0ed9e --- /dev/null +++ b/bitmaps/k95o.bm @@ -0,0 +1,98 @@ +#define k95o_width 95 +#define k95o_height 95 +static unsigned char k95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x80, 0x03, 0xe0, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x80, 0x03, 0xe0, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x83, 0x03, 0xe0, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xe0, 0x0f, 0xe0, 0x8f, 0x03, 0xe0, 0xf8, 0x03, 0xf8, 0x03, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x9f, 0x03, 0xe0, 0x7c, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x78, 0x00, 0x00, 0xfc, 0x03, 0xe0, 0x1f, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0xf8, 0x03, 0xe0, 0x0f, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0xe0, 0x07, 0xf0, 0x03, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x07, 0xf0, 0x01, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x80, 0x07, 0xf0, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x1e, 0x3c, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x38, 0x0e, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x38, 0x0e, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x70, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x80, 0x07, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x9e, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x80, 0xff, 0xff, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x83, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xfc, 0x7f, 0x00, 0x00, 0xff, 0x9f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x81, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xf8, 0xff, 0x00, 0x80, 0xff, 0x8f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/k95s.bm b/bitmaps/k95s.bm new file mode 100644 index 0000000..aa5f430 --- /dev/null +++ b/bitmaps/k95s.bm @@ -0,0 +1,98 @@ +#define k95s_width 95 +#define k95s_height 95 +static unsigned char k95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x80, 0xe3, 0xe3, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x80, 0xe3, 0xe3, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x83, 0xe3, 0xe3, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x8f, 0xe3, 0xe3, 0xf8, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xf0, 0x0f, 0xe0, 0x9f, 0xe3, 0xe3, 0xfc, 0x03, 0xf8, 0x07, 0x00, + 0x00, 0xf8, 0x01, 0x00, 0xff, 0xe3, 0xe3, 0x7f, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0xfc, 0xe3, 0xe3, 0x1f, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x3c, 0xe0, 0x0f, 0xf0, 0xc7, 0xf1, 0x07, 0xf8, 0x03, 0x1e, 0x00, + 0x00, 0x1e, 0xfc, 0x7f, 0xe0, 0xc7, 0xf1, 0x03, 0xff, 0x1f, 0x3c, 0x00, + 0x00, 0x0e, 0xff, 0xff, 0xc1, 0x8f, 0xf8, 0xc1, 0xff, 0x7f, 0x38, 0x00, + 0x00, 0x8f, 0xff, 0xff, 0x87, 0x8f, 0xf8, 0xf0, 0xff, 0xff, 0x78, 0x00, + 0x00, 0xc7, 0xff, 0xff, 0x0f, 0x1f, 0x7c, 0xf8, 0xff, 0xff, 0x71, 0x00, + 0x80, 0xc7, 0xff, 0xff, 0x1f, 0x1e, 0x3c, 0xfc, 0xff, 0xff, 0xf1, 0x00, + 0x80, 0xe3, 0xff, 0xff, 0x3f, 0x3c, 0x1e, 0xfe, 0xff, 0xff, 0xe3, 0x00, + 0x80, 0xe3, 0xff, 0xff, 0x7f, 0x3c, 0x1e, 0xff, 0xff, 0xff, 0xe3, 0x00, + 0x80, 0xe3, 0xff, 0xff, 0x7f, 0x38, 0x0e, 0xff, 0xff, 0xff, 0xe3, 0x00, + 0x80, 0xe3, 0xff, 0xff, 0xff, 0x78, 0x8f, 0xff, 0xff, 0xff, 0xe3, 0x00, + 0x80, 0xe3, 0xff, 0xff, 0xff, 0xf0, 0x87, 0xff, 0xff, 0xff, 0xe3, 0x00, + 0x80, 0xc3, 0xff, 0xff, 0xff, 0xf1, 0xc7, 0xff, 0xff, 0xff, 0xe1, 0x00, + 0x00, 0xc7, 0xff, 0xff, 0xff, 0xe1, 0xc7, 0xff, 0xff, 0xff, 0x71, 0x00, + 0x00, 0x87, 0xff, 0xff, 0xff, 0xe1, 0xc3, 0xff, 0xff, 0xff, 0x70, 0x00, + 0x00, 0x8e, 0xff, 0xff, 0xff, 0xe3, 0xe3, 0xff, 0xff, 0xff, 0x38, 0x00, + 0x00, 0x0e, 0xff, 0xff, 0xff, 0xc3, 0xe3, 0xff, 0xff, 0x7f, 0x38, 0x00, + 0x00, 0x1c, 0xfe, 0xff, 0xff, 0xc3, 0xe1, 0xff, 0xff, 0x3f, 0x1c, 0x00, + 0x00, 0x38, 0xfc, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0x1f, 0x0e, 0x00, + 0x00, 0x78, 0xf8, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0x0f, 0x0f, 0x00, + 0x00, 0xf0, 0xe0, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0x83, 0x07, 0x00, + 0x00, 0xe0, 0xc1, 0xff, 0xff, 0xc7, 0xf1, 0xff, 0xff, 0xc1, 0x03, 0x00, + 0x00, 0xc0, 0x83, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0xe0, 0x01, 0x00, + 0x00, 0x80, 0x07, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x02, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x87, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0xfe, 0x3f, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0xfc, 0xff, 0xff, 0x1f, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0xfe, 0x3f, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0xf8, 0xff, 0xff, 0x0f, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xef, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n108o.bm b/bitmaps/n108o.bm new file mode 100644 index 0000000..8aedc84 --- /dev/null +++ b/bitmaps/n108o.bm @@ -0,0 +1,129 @@ +#define n108o_width 108 +#define n108o_height 108 +static unsigned char n108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0xc0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0xc0, 0x1d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3e, 0xe0, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x7c, 0xe0, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf0, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x71, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x3d, 0xf0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x3f, 0xe0, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x3f, + 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc1, 0x3b, 0xe0, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xe1, 0x19, 0xe0, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xf9, 0x00, 0xe0, 0x00, 0xf8, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0x40, 0x00, 0xe0, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x1c, 0x00, 0x00, 0x00, + 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x38, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc1, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe1, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xe1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xb1, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x31, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x30, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xf8, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x07, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x07, + 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, + 0x1f, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0xe0, 0x07, 0x07, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x07, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x07, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0x00, 0x1c, 0x06, 0x00, 0x00, 0x3f, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x1c, 0x0f, 0x00, 0x80, 0x0f, 0x80, 0x03, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x8e, 0x0f, 0x00, 0xe0, 0x03, + 0x80, 0x03, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x8e, 0x0f, 0x00, + 0xf0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x8e, + 0x07, 0x00, 0x78, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0x0e, 0x03, 0x00, 0x3c, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x03, 0x1e, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x07, 0x0f, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x0e, 0x80, 0x83, 0x07, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x1c, 0x80, 0xc3, + 0x03, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x3c, + 0xc0, 0xe1, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0xf8, 0xe0, 0xf1, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x01, 0x00, 0x00, 0xf0, 0xff, 0x71, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x38, 0x00, 0x80, 0x07, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xff, 0x3c, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x1f, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0x0f, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n108s.bm b/bitmaps/n108s.bm new file mode 100644 index 0000000..f813132 --- /dev/null +++ b/bitmaps/n108s.bm @@ -0,0 +1,129 @@ +#define n108s_width 108 +#define n108s_height 108 +static unsigned char n108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0xc0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0xc0, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xe0, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x7f, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xf1, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xf9, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xfb, 0x7f, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x7f, 0xf0, 0x7f, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x0f, 0xe0, 0x7f, 0x00, 0xfe, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xfc, 0xff, 0x03, 0xf8, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x83, 0xff, 0xff, 0x1f, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf7, 0xff, + 0xff, 0xff, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0x83, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x3f, 0xf8, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xc0, 0xff, 0xff, 0xff, + 0x7f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x83, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x87, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x4f, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xcf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xcf, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xc1, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, + 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, + 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0xff, 0xff, 0x87, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0e, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x1e, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, + 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x1f, 0x3c, + 0x00, 0x00, 0x00, 0xfc, 0xf9, 0xff, 0xff, 0x3f, 0x80, 0xff, 0xff, 0xff, + 0x1f, 0x38, 0x00, 0x00, 0x00, 0xfc, 0xf0, 0xff, 0xff, 0x0f, 0x80, 0xff, + 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x7e, 0xf0, 0xff, 0xff, 0x03, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x7e, 0xf0, 0xff, + 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x7e, + 0xf8, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, + 0x00, 0xfe, 0xfc, 0xff, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x7f, 0x70, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x7f, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xfc, 0x0f, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xfc, 0x07, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0xfe, + 0x03, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0xfc, + 0x7f, 0xfe, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x7f, 0xe0, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xe0, + 0x00, 0x00, 0x00, 0xf0, 0xbf, 0x7f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe0, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x1f, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0xc0, 0x0f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n116o.bm b/bitmaps/n116o.bm new file mode 100644 index 0000000..4f3504a --- /dev/null +++ b/bitmaps/n116o.bm @@ -0,0 +1,148 @@ +#define n116o_width 116 +#define n116o_height 116 +static unsigned char n116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xdc, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0xde, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf3, 0x01, + 0x8e, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xe3, 0x03, 0x87, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x83, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x8f, 0x03, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xce, + 0x03, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0xfc, 0x03, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0x01, 0xfe, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfe, 0x01, 0xee, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x9f, + 0x01, 0x0e, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x8f, 0x07, 0x00, 0x0e, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xc7, 0x03, 0x00, 0x06, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe3, 0x01, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc1, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x87, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x87, 0x01, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xf8, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x80, 0x77, 0x00, 0x00, 0x00, 0xc0, + 0x07, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x73, 0x00, + 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0xf8, 0x71, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x70, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x70, 0x00, 0x00, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x70, 0x00, + 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x70, 0x18, 0x00, 0x00, 0xf8, + 0x01, 0x38, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x70, 0x3c, + 0x00, 0x00, 0x7c, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x70, 0x3e, 0x00, 0x00, 0x1f, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x38, 0x3e, 0x00, 0x80, 0x0f, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x38, 0x1e, 0x00, 0xc0, 0x03, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x38, 0x1e, + 0x00, 0xe0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x38, 0x0c, 0x00, 0xf0, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x18, 0x78, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x38, 0x00, 0x1c, 0x3c, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x1c, 0x1e, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x0e, 0x0e, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x0f, 0x07, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xe0, 0x83, 0x8f, 0x07, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xc7, 0x03, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xc7, 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xe7, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n116s.bm b/bitmaps/n116s.bm new file mode 100644 index 0000000..4585890 --- /dev/null +++ b/bitmaps/n116s.bm @@ -0,0 +1,148 @@ +#define n116s_width 116 +#define n116s_height 116 +static unsigned char n116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0xfe, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, + 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x03, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x8f, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x8f, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, + 0xff, 0x07, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0x00, 0xff, 0x07, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xff, 0x0f, 0x80, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0xf8, 0xff, 0xff, 0x01, + 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0xff, + 0xff, 0xff, 0x0f, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x83, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x3f, 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x87, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x83, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x81, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xf2, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x7f, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x7f, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, + 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xdf, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff, 0xc1, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, + 0xff, 0xff, 0xc1, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x83, 0x03, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xff, 0x83, + 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, + 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x07, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0xff, 0xff, 0xff, 0x07, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf0, 0xff, + 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xe7, 0xff, 0xff, 0xff, + 0x01, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x0e, 0x00, 0x00, 0x00, 0xf0, 0xc3, + 0xff, 0xff, 0x7f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x0e, 0x00, 0x00, + 0x00, 0xf0, 0xc1, 0xff, 0xff, 0x1f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, + 0x0e, 0x00, 0x00, 0x00, 0xf8, 0xc1, 0xff, 0xff, 0x0f, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0xf8, 0xe1, 0xff, 0xff, 0x03, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, 0x00, 0x00, 0xf8, 0xe1, + 0xff, 0xff, 0x01, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, 0x00, + 0x00, 0xf8, 0xf3, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, + 0x1c, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x1c, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xe7, 0x3f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xf3, 0x1f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xf3, 0x0f, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x38, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xf9, 0x07, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x38, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xfc, 0x07, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0x03, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n129o.bm b/bitmaps/n129o.bm new file mode 100644 index 0000000..0be0280 --- /dev/null +++ b/bitmaps/n129o.bm @@ -0,0 +1,186 @@ +#define n129o_width 129 +#define n129o_height 129 +static unsigned char n129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x01, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0xc0, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, + 0xe0, 0xfb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xde, 0x1f, 0xf0, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0xf0, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x7e, 0xf8, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xf8, 0x78, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0xf0, 0x7e, 0xe0, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf0, 0x7f, 0xe0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xe0, 0x3f, + 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0xe0, 0x3f, 0xc0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf0, 0x3f, 0xc0, 0xf3, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0xf8, 0x38, 0xc0, 0x03, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x7c, 0x10, 0xc0, 0x03, 0xf0, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3e, + 0x00, 0xc0, 0x01, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xc0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xf8, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3e, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xfc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x06, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfe, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, + 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x07, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x78, 0x18, 0x00, 0x00, 0xc0, 0x7f, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x78, + 0x3c, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0x03, 0x00, 0x00, 0x00, 0x78, 0x7e, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x7c, 0x7e, 0x00, + 0x00, 0xfc, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, + 0x00, 0x00, 0x3c, 0x7e, 0x00, 0x00, 0x7e, 0x00, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x3c, 0x3e, 0x00, 0x00, 0x3f, + 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, + 0x3c, 0x3e, 0x00, 0x80, 0x0f, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x1c, 0x20, 0xc0, 0x07, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x70, 0xe0, 0x03, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xf0, 0x01, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x78, 0xf8, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x7c, 0x7c, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x78, 0x00, 0x3c, 0x3c, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xf8, + 0x01, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x87, 0x1f, 0x1f, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x9f, + 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x8f, 0x07, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xcf, 0x07, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x03, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n129s.bm b/bitmaps/n129s.bm new file mode 100644 index 0000000..12fd727 --- /dev/null +++ b/bitmaps/n129s.bm @@ -0,0 +1,186 @@ +#define n129s_width 129 +#define n129s_height 129 +static unsigned char n129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x03, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x80, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, + 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x3f, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0xe0, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xf1, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xf9, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xe7, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x7f, 0xe0, 0xff, 0x01, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0xc0, 0xff, 0x03, 0xe0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0xe0, 0xff, 0x07, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x01, 0xf0, 0xff, 0x0f, 0x00, 0xfe, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0xff, 0xff, + 0xff, 0x01, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xc1, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xfc, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x3f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x03, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf3, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf3, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0x7f, 0xc0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x8f, 0xff, 0xff, 0xff, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xcf, 0xff, + 0xff, 0xff, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0x01, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, + 0x01, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xe7, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x03, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, + 0xff, 0xff, 0xff, 0x03, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0x07, + 0x78, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x78, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xfc, 0xff, + 0xff, 0xff, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xfc, 0xff, 0xff, 0xff, + 0x1f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xf0, + 0x87, 0xff, 0xff, 0xff, 0x1f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0x07, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0x1f, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xff, + 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0xf8, 0x03, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x83, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0xf8, 0x83, 0xff, 0xff, 0x1f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0xc0, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xc7, 0xff, 0xff, 0x0f, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xbf, 0xff, 0x07, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x9f, 0xff, 0x03, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x8f, 0xff, + 0x01, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x8f, 0xff, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x80, 0x07, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xc7, 0x7f, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0x07, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xc7, 0x7f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xe3, 0x3f, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x80, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xf7, + 0x1f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, 0x07, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x07, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x01, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n21o.bm b/bitmaps/n21o.bm new file mode 100644 index 0000000..149735a --- /dev/null +++ b/bitmaps/n21o.bm @@ -0,0 +1,9 @@ +#define n21o_width 21 +#define n21o_height 21 +static unsigned char n21o_bits[] = { + 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0xe0, 0x07, 0x00, 0x60, 0x3d, 0x00, + 0xa0, 0xe4, 0x00, 0xe0, 0xc0, 0x01, 0xb0, 0x80, 0x03, 0x30, 0x08, 0x03, + 0x18, 0x08, 0x06, 0x08, 0x0c, 0x06, 0x0c, 0x0a, 0x06, 0x84, 0x0d, 0x04, + 0xec, 0x04, 0x0c, 0x74, 0x06, 0x0c, 0x3c, 0x03, 0x0c, 0x80, 0x01, 0x0c, + 0xc0, 0x00, 0x0c, 0x40, 0x00, 0x0c, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/n21s.bm b/bitmaps/n21s.bm new file mode 100644 index 0000000..11475b2 --- /dev/null +++ b/bitmaps/n21s.bm @@ -0,0 +1,9 @@ +#define n21s_width 21 +#define n21s_height 21 +static unsigned char n21s_bits[] = { + 0x00, 0x00, 0x00, 0x60, 0x02, 0x00, 0xe0, 0x07, 0x00, 0xe0, 0x1f, 0x00, + 0x60, 0x76, 0x00, 0x20, 0xcf, 0x00, 0xd0, 0x9f, 0x01, 0xd0, 0x3f, 0x01, + 0xf8, 0x37, 0x02, 0xf8, 0x77, 0x02, 0xfc, 0x7f, 0x02, 0xf4, 0x7b, 0x06, + 0xf4, 0xfc, 0x04, 0x6c, 0xfe, 0x04, 0x3c, 0xff, 0x04, 0x80, 0xff, 0x04, + 0xc0, 0xff, 0x04, 0xc0, 0xff, 0x04, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/n25o.bm b/bitmaps/n25o.bm new file mode 100644 index 0000000..08671c9 --- /dev/null +++ b/bitmaps/n25o.bm @@ -0,0 +1,12 @@ +#define n25o_width 25 +#define n25o_height 25 +static unsigned char n25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x80, 0x15, 0x00, 0x00, 0x80, 0xf6, 0x00, 0x00, 0x40, 0x11, 0x03, 0x00, + 0xc0, 0x01, 0x06, 0x00, 0x60, 0x01, 0x0c, 0x00, 0xe0, 0x00, 0x08, 0x00, + 0x10, 0x20, 0x18, 0x00, 0x10, 0x20, 0x18, 0x00, 0x08, 0x20, 0x30, 0x00, + 0x08, 0x30, 0x30, 0x00, 0x1c, 0x2e, 0x30, 0x00, 0x0c, 0x21, 0x30, 0x00, + 0xa4, 0x10, 0x60, 0x00, 0x78, 0x08, 0x60, 0x00, 0x60, 0x04, 0x60, 0x00, + 0x00, 0x02, 0x60, 0x00, 0x00, 0x02, 0x60, 0x00, 0x00, 0x01, 0x60, 0x00, + 0x00, 0x01, 0x60, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n25s.bm b/bitmaps/n25s.bm new file mode 100644 index 0000000..0e1584f --- /dev/null +++ b/bitmaps/n25s.bm @@ -0,0 +1,12 @@ +#define n25s_width 25 +#define n25s_height 25 +static unsigned char n25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x08, 0x00, 0x00, + 0x80, 0x1d, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0xc0, 0x1c, 0x03, 0x00, + 0x40, 0xfe, 0x06, 0x00, 0xa0, 0xfe, 0x0d, 0x00, 0x20, 0xff, 0x09, 0x00, + 0xf0, 0xff, 0x1b, 0x00, 0xf0, 0xdf, 0x13, 0x00, 0xf8, 0xff, 0x33, 0x00, + 0xf8, 0xff, 0x37, 0x00, 0xe4, 0xe7, 0x27, 0x00, 0xf4, 0xe1, 0x27, 0x00, + 0xfc, 0xf0, 0x67, 0x00, 0x78, 0xf8, 0x6f, 0x00, 0x60, 0xf8, 0x4f, 0x00, + 0x00, 0xfc, 0x4f, 0x00, 0x00, 0xfe, 0x4f, 0x00, 0x00, 0xff, 0x4f, 0x00, + 0x00, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n29o.bm b/bitmaps/n29o.bm new file mode 100644 index 0000000..c1bf53e --- /dev/null +++ b/bitmaps/n29o.bm @@ -0,0 +1,13 @@ +#define n29o_width 29 +#define n29o_height 29 +static unsigned char n29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x00, 0x00, + 0x80, 0x31, 0x00, 0x00, 0x80, 0x2a, 0x00, 0x00, 0x80, 0xec, 0x03, 0x00, + 0x80, 0x03, 0x0c, 0x00, 0x40, 0x00, 0x18, 0x00, 0x40, 0x03, 0x30, 0x00, + 0xa0, 0x00, 0x20, 0x00, 0xa0, 0x40, 0x60, 0x00, 0x10, 0x40, 0xc0, 0x00, + 0x10, 0x40, 0xc0, 0x00, 0x08, 0x60, 0xc0, 0x00, 0x08, 0x58, 0x80, 0x01, + 0x04, 0x44, 0x80, 0x01, 0x1c, 0x42, 0x80, 0x01, 0x0c, 0x21, 0x80, 0x01, + 0xa4, 0x10, 0x00, 0x01, 0x78, 0x10, 0x00, 0x03, 0x00, 0x08, 0x00, 0x03, + 0x00, 0x04, 0x00, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, + 0x00, 0x01, 0x00, 0x03, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n29s.bm b/bitmaps/n29s.bm new file mode 100644 index 0000000..e6bc22f --- /dev/null +++ b/bitmaps/n29s.bm @@ -0,0 +1,13 @@ +#define n29s_width 29 +#define n29s_height 29 +static unsigned char n29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x00, 0x00, + 0x00, 0x73, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, + 0x00, 0x73, 0x0c, 0x00, 0x80, 0xff, 0x1b, 0x00, 0x80, 0xf9, 0x37, 0x00, + 0xc0, 0xfe, 0x6f, 0x00, 0xc0, 0xfe, 0x4f, 0x00, 0xe0, 0xff, 0xdf, 0x00, + 0xe0, 0x7f, 0x9f, 0x00, 0xf0, 0xff, 0xbf, 0x00, 0xf0, 0xff, 0x3f, 0x01, + 0xf8, 0x9f, 0x3f, 0x01, 0xc8, 0x87, 0x7f, 0x01, 0xe8, 0xc3, 0x7f, 0x00, + 0xb8, 0xe1, 0x7f, 0x02, 0xf0, 0xe0, 0x7f, 0x02, 0x00, 0xf0, 0x7f, 0x02, + 0x00, 0xf8, 0x7f, 0x02, 0x00, 0xfc, 0x7f, 0x02, 0x00, 0xfe, 0x7f, 0x02, + 0x00, 0xfe, 0xff, 0x02, 0x00, 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n33o.bm b/bitmaps/n33o.bm new file mode 100644 index 0000000..522ba3c --- /dev/null +++ b/bitmaps/n33o.bm @@ -0,0 +1,39 @@ + +#define n33o_width 33 +#define n33o_height 33 +#define n33o_xoff 3 +#define n33o_yoff 3 +static unsigned char n33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x00, 0x2a, 0x01, 0x00, 0x00, + 0x00, 0x32, 0x07, 0x00, 0x00, + 0x00, 0x3a, 0x19, 0x00, 0x00, + 0x00, 0x0a, 0x60, 0x00, 0x00, + 0x00, 0x01, 0xc0, 0x00, 0x00, + 0x00, 0x0d, 0x80, 0x01, 0x00, + 0x80, 0x02, 0x00, 0x03, 0x00, + 0x80, 0x02, 0x04, 0x03, 0x00, + 0x40, 0x00, 0x04, 0x06, 0x00, + 0x40, 0x00, 0x04, 0x06, 0x00, + 0x20, 0x00, 0x04, 0x0c, 0x00, + 0x20, 0x00, 0x02, 0x0c, 0x00, + 0x10, 0x80, 0x03, 0x0c, 0x00, + 0x10, 0x40, 0x02, 0x18, 0x00, + 0x28, 0x30, 0x02, 0x18, 0x00, + 0x28, 0x08, 0x01, 0x18, 0x00, + 0x88, 0x04, 0x01, 0x18, 0x00, + 0x88, 0x82, 0x00, 0x10, 0x00, + 0xf0, 0x41, 0x00, 0x30, 0x00, + 0x00, 0x20, 0x00, 0x30, 0x00, + 0x00, 0x10, 0x00, 0x30, 0x00, + 0x00, 0x08, 0x00, 0x30, 0x00, + 0x00, 0x08, 0x00, 0x30, 0x00, + 0x00, 0x04, 0x00, 0x30, 0x00, + 0x00, 0x04, 0x00, 0x30, 0x00, + 0x00, 0xfc, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n33s.bm b/bitmaps/n33s.bm new file mode 100644 index 0000000..a10183a --- /dev/null +++ b/bitmaps/n33s.bm @@ -0,0 +1,39 @@ + +#define n33s_width 33 +#define n33s_height 33 +#define n33s_xoff 3 +#define n33s_yoff 2 +static unsigned char n33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, + 0x00, 0xc6, 0x00, 0x00, 0x00, + 0x00, 0xce, 0x01, 0x00, 0x00, + 0x00, 0xfe, 0x07, 0x00, 0x00, + 0x00, 0xce, 0x19, 0x00, 0x00, + 0x00, 0xf6, 0x67, 0x00, 0x00, + 0x00, 0xff, 0xdf, 0x00, 0x00, + 0x00, 0xf3, 0xbf, 0x01, 0x00, + 0x80, 0xfd, 0x7f, 0x03, 0x00, + 0x80, 0xfd, 0x7f, 0x02, 0x00, + 0xc0, 0xff, 0xff, 0x06, 0x00, + 0xc0, 0xff, 0xff, 0x04, 0x00, + 0xe0, 0xff, 0xfd, 0x0d, 0x00, + 0xe0, 0xff, 0xff, 0x09, 0x00, + 0xf0, 0xff, 0xff, 0x09, 0x00, + 0xf0, 0x7f, 0xfe, 0x1b, 0x00, + 0xd8, 0x1f, 0xfe, 0x13, 0x00, + 0xd8, 0x0f, 0xff, 0x13, 0x00, + 0xf8, 0x07, 0xff, 0x13, 0x00, + 0xf8, 0x83, 0xff, 0x17, 0x00, + 0xf0, 0xc1, 0xff, 0x37, 0x00, + 0x00, 0xe0, 0xff, 0x27, 0x00, + 0x00, 0xf0, 0xff, 0x27, 0x00, + 0x00, 0xf8, 0xff, 0x27, 0x00, + 0x00, 0xf8, 0xff, 0x27, 0x00, + 0x00, 0xfc, 0xff, 0x27, 0x00, + 0x00, 0xfc, 0xff, 0x3f, 0x00, + 0x00, 0xfc, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n37o.bm b/bitmaps/n37o.bm new file mode 100644 index 0000000..fd336a5 --- /dev/null +++ b/bitmaps/n37o.bm @@ -0,0 +1,19 @@ +#define n37o_width 37 +#define n37o_height 37 +static unsigned char n37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x8e, 0x02, 0x00, 0x00, 0x00, 0x52, 0x02, 0x00, 0x00, 0x00, + 0x62, 0x1e, 0x00, 0x00, 0x00, 0x52, 0x62, 0x00, 0x00, 0x00, 0x09, 0x80, + 0x01, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, 0x80, 0x08, 0x00, 0x06, 0x00, + 0x80, 0x0c, 0x00, 0x0c, 0x00, 0x80, 0x06, 0x00, 0x08, 0x00, 0x40, 0x00, + 0x08, 0x18, 0x00, 0x40, 0x00, 0x08, 0x10, 0x00, 0x40, 0x00, 0x08, 0x30, + 0x00, 0x20, 0x00, 0x08, 0x20, 0x00, 0x20, 0x00, 0x04, 0x60, 0x00, 0x10, + 0x00, 0x06, 0x60, 0x00, 0x08, 0x80, 0x05, 0x40, 0x00, 0x38, 0x60, 0x04, + 0xc0, 0x00, 0x18, 0x10, 0x02, 0xc0, 0x00, 0x08, 0x08, 0x02, 0xc0, 0x00, + 0x88, 0x04, 0x01, 0xc0, 0x00, 0xf0, 0x82, 0x00, 0x80, 0x00, 0x00, 0x81, + 0x00, 0x80, 0x01, 0x00, 0x40, 0x00, 0x80, 0x01, 0x00, 0x20, 0x00, 0x80, + 0x01, 0x00, 0x10, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x80, 0x01, 0x00, + 0x08, 0x00, 0x80, 0x01, 0x00, 0x08, 0x00, 0x80, 0x01, 0x00, 0xf8, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n37s.bm b/bitmaps/n37s.bm new file mode 100644 index 0000000..7a07a69 --- /dev/null +++ b/bitmaps/n37s.bm @@ -0,0 +1,19 @@ +#define n37s_width 37 +#define n37s_height 37 +static unsigned char n37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x1c, 0x03, 0x00, 0x00, 0x00, 0xbc, 0x07, 0x00, 0x00, 0x00, + 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x9c, 0xc7, 0x00, 0x00, 0x00, 0xee, 0x3f, + 0x03, 0x00, 0x00, 0xfe, 0xff, 0x06, 0x00, 0x00, 0xef, 0xff, 0x0d, 0x00, + 0x00, 0xe7, 0xff, 0x1b, 0x00, 0x00, 0xf3, 0xff, 0x13, 0x00, 0x80, 0xff, + 0xff, 0x37, 0x00, 0x80, 0xff, 0xff, 0x27, 0x00, 0x80, 0xff, 0xff, 0x6f, + 0x00, 0xc0, 0xff, 0xf7, 0x4f, 0x00, 0xc0, 0xff, 0xff, 0x5f, 0x00, 0xe0, + 0xff, 0xfb, 0x1f, 0x00, 0xf0, 0xff, 0xf9, 0x9f, 0x00, 0x90, 0x7f, 0xf8, + 0x9f, 0x00, 0xd0, 0x1f, 0xfc, 0xbf, 0x00, 0xf0, 0x0f, 0xfc, 0x3f, 0x00, + 0xf0, 0x06, 0xfe, 0x3f, 0x00, 0xe0, 0x07, 0xff, 0x3f, 0x01, 0x00, 0x02, + 0xff, 0x3f, 0x01, 0x00, 0x80, 0xff, 0x3f, 0x01, 0x00, 0xc0, 0xff, 0x3f, + 0x01, 0x00, 0xe0, 0xff, 0x3f, 0x01, 0x00, 0xe0, 0xff, 0x3f, 0x01, 0x00, + 0xf0, 0xff, 0x3f, 0x01, 0x00, 0xf0, 0xff, 0x7f, 0x01, 0x00, 0xf0, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n40o.bm b/bitmaps/n40o.bm new file mode 100644 index 0000000..08894c3 --- /dev/null +++ b/bitmaps/n40o.bm @@ -0,0 +1,20 @@ +#define n40o_width 40 +#define n40o_height 40 +static unsigned char n40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x0c, 0x00, 0x00, 0x00, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x48, 0x12, 0x00, + 0x00, 0x00, 0x88, 0x13, 0x00, 0x00, 0x00, 0x90, 0xd2, 0x01, 0x00, 0x00, + 0x48, 0x00, 0x0c, 0x00, 0x00, 0x04, 0x00, 0x30, 0x00, 0x00, 0x04, 0x00, + 0x60, 0x00, 0x00, 0x62, 0x00, 0xc0, 0x00, 0x00, 0x32, 0x00, 0x80, 0x01, + 0x00, 0x1a, 0x00, 0x80, 0x01, 0x00, 0x0a, 0x40, 0x00, 0x03, 0x00, 0x01, + 0x40, 0x00, 0x03, 0x00, 0x01, 0x40, 0x00, 0x06, 0x80, 0x00, 0x40, 0x00, + 0x06, 0x40, 0x00, 0x20, 0x00, 0x0c, 0x40, 0x00, 0x20, 0x00, 0x0c, 0x20, + 0x00, 0x30, 0x00, 0x0c, 0x20, 0x00, 0x24, 0x00, 0x08, 0xd0, 0x00, 0x23, + 0x00, 0x18, 0xd0, 0xc0, 0x20, 0x00, 0x18, 0x50, 0x20, 0x10, 0x00, 0x18, + 0x10, 0x12, 0x10, 0x00, 0x18, 0x20, 0x0a, 0x08, 0x00, 0x18, 0xc0, 0x05, + 0x04, 0x00, 0x10, 0x00, 0x02, 0x02, 0x00, 0x30, 0x00, 0x00, 0x01, 0x00, + 0x30, 0x00, 0x80, 0x00, 0x00, 0x30, 0x00, 0x80, 0x00, 0x00, 0x30, 0x00, + 0x40, 0x00, 0x00, 0x30, 0x00, 0x40, 0x00, 0x00, 0x30, 0x00, 0x20, 0x00, + 0x00, 0x30, 0x00, 0x20, 0x00, 0x00, 0x30, 0x00, 0xe0, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n40s.bm b/bitmaps/n40s.bm new file mode 100644 index 0000000..797a4cb --- /dev/null +++ b/bitmaps/n40s.bm @@ -0,0 +1,20 @@ +#define n40s_width 40 +#define n40s_height 40 +static unsigned char n40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, + 0x0c, 0x00, 0x00, 0x00, 0x38, 0x0c, 0x00, 0x00, 0x00, 0x78, 0x1e, 0x00, + 0x00, 0x00, 0xf8, 0x1e, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, + 0x38, 0x3e, 0x0e, 0x00, 0x00, 0xfc, 0xff, 0x19, 0x00, 0x00, 0xfc, 0xff, + 0x37, 0x00, 0x00, 0x9e, 0xff, 0x6f, 0x00, 0x00, 0xce, 0xff, 0xdf, 0x00, + 0x00, 0xe6, 0xff, 0x9f, 0x00, 0x00, 0xf6, 0xff, 0x3f, 0x01, 0x00, 0xff, + 0xff, 0x3f, 0x01, 0x00, 0xff, 0xff, 0x7f, 0x02, 0x80, 0xff, 0xff, 0x7f, + 0x02, 0xc0, 0xff, 0xdf, 0xff, 0x06, 0xc0, 0xff, 0xff, 0xff, 0x04, 0xe0, + 0xff, 0xef, 0xff, 0x04, 0xe0, 0xff, 0xe7, 0xff, 0x05, 0x30, 0xff, 0xe1, + 0xff, 0x09, 0x30, 0x7f, 0xf0, 0xff, 0x09, 0xb0, 0x3f, 0xf0, 0xff, 0x09, + 0xf0, 0x1d, 0xf8, 0xff, 0x0b, 0xe0, 0x0f, 0xf8, 0xff, 0x0b, 0xc0, 0x07, + 0xfc, 0xff, 0x03, 0x00, 0x02, 0xfe, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, + 0x13, 0x00, 0x80, 0xff, 0xff, 0x13, 0x00, 0x80, 0xff, 0xff, 0x13, 0x00, + 0xc0, 0xff, 0xff, 0x13, 0x00, 0xc0, 0xff, 0xff, 0x13, 0x00, 0xe0, 0xff, + 0xff, 0x13, 0x00, 0xe0, 0xff, 0xff, 0x17, 0x00, 0xe0, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n45o.bm b/bitmaps/n45o.bm new file mode 100644 index 0000000..ec8b6c9 --- /dev/null +++ b/bitmaps/n45o.bm @@ -0,0 +1,51 @@ + +#define n45o_width 45 +#define n45o_height 45 +#define n45o_xoff 3 +#define n45o_yoff 3 +static unsigned char n45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x28, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x48, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x45, 0x0f, 0x00, 0x00, + 0x00, 0x90, 0x40, 0x30, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x80, 0x01, 0x00, + 0x00, 0xc4, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x22, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x42, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x32, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x12, 0x00, 0x01, 0x18, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x18, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x30, 0x00, + 0x80, 0x00, 0x00, 0x01, 0x30, 0x00, + 0x40, 0x00, 0x80, 0x00, 0x60, 0x00, + 0x40, 0x00, 0x80, 0x00, 0x60, 0x00, + 0x20, 0x00, 0xc0, 0x00, 0x40, 0x00, + 0x10, 0x00, 0x20, 0x01, 0xc0, 0x00, + 0x10, 0x00, 0x18, 0x01, 0xc0, 0x00, + 0xc8, 0x00, 0x86, 0x00, 0xc0, 0x00, + 0xc8, 0x00, 0x81, 0x00, 0x80, 0x00, + 0x48, 0x80, 0x40, 0x00, 0x80, 0x01, + 0x08, 0x44, 0x40, 0x00, 0x80, 0x01, + 0x08, 0x22, 0x20, 0x00, 0x80, 0x01, + 0x10, 0x12, 0x20, 0x00, 0x80, 0x01, + 0xe0, 0x0b, 0x10, 0x00, 0x80, 0x01, + 0x00, 0x0c, 0x08, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x03, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x03, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n45s.bm b/bitmaps/n45s.bm new file mode 100644 index 0000000..19a5de7 --- /dev/null +++ b/bitmaps/n45s.bm @@ -0,0 +1,51 @@ + +#define n45s_width 45 +#define n45s_height 45 +#define n45s_xoff 3 +#define n45s_yoff 3 +static unsigned char n45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x38, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xfd, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x70, 0xfc, 0x10, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x47, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x9f, 0x00, 0x00, + 0x00, 0x3c, 0xff, 0x7f, 0x01, 0x00, + 0x00, 0xde, 0xff, 0xff, 0x02, 0x00, + 0x00, 0xbe, 0xff, 0xff, 0x05, 0x00, + 0x00, 0xce, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xee, 0xff, 0xff, 0x0b, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x17, 0x00, + 0x80, 0xff, 0xff, 0xfe, 0x07, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x2f, 0x00, + 0xc0, 0xff, 0x7f, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0xf0, 0xff, 0x7f, 0xff, 0x5f, 0x00, + 0xf0, 0xff, 0x1f, 0xff, 0x1f, 0x00, + 0x38, 0xff, 0x0f, 0xff, 0x1f, 0x00, + 0x38, 0xff, 0x03, 0xff, 0x9f, 0x00, + 0xb8, 0xff, 0x80, 0xff, 0xbf, 0x00, + 0xf8, 0x7f, 0xc0, 0xff, 0xbf, 0x00, + 0xf8, 0x3f, 0xc0, 0xff, 0x3f, 0x00, + 0xf0, 0x1d, 0xe0, 0xff, 0x3f, 0x00, + 0xe0, 0x0f, 0xf0, 0xff, 0x3f, 0x00, + 0x00, 0x0c, 0xf8, 0xff, 0x3f, 0x01, + 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x01, + 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x3f, 0x01, + 0x00, 0x80, 0xff, 0xff, 0x3f, 0x01, + 0x00, 0x80, 0xff, 0xff, 0x7f, 0x01, + 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x01, + 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x01, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n49o.bm b/bitmaps/n49o.bm new file mode 100644 index 0000000..f0c771d --- /dev/null +++ b/bitmaps/n49o.bm @@ -0,0 +1,55 @@ + +#define n49o_width 49 +#define n49o_height 49 +#define n49o_xoff 3 +#define n49o_yoff 3 +static unsigned char n49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x20, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x89, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x10, 0x8e, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x8b, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x82, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x62, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x22, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x12, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0xc0, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0xc0, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x02, 0x80, 0x01, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x80, 0x01, 0x00, + 0x80, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x40, 0x00, 0x00, 0x01, 0x00, 0x03, 0x00, + 0x20, 0x00, 0x80, 0x02, 0x00, 0x03, 0x00, + 0x20, 0x00, 0x40, 0x02, 0x00, 0x02, 0x00, + 0x10, 0x00, 0x30, 0x02, 0x00, 0x06, 0x00, + 0x10, 0x00, 0x08, 0x02, 0x00, 0x06, 0x00, + 0xc8, 0x00, 0x06, 0x02, 0x00, 0x06, 0x00, + 0x48, 0x00, 0x01, 0x01, 0x00, 0x04, 0x00, + 0x08, 0x80, 0x00, 0x01, 0x00, 0x0c, 0x00, + 0x08, 0x44, 0x80, 0x00, 0x00, 0x0c, 0x00, + 0x08, 0x22, 0x40, 0x00, 0x00, 0x0c, 0x00, + 0x10, 0x12, 0x20, 0x00, 0x00, 0x0c, 0x00, + 0xe0, 0x0b, 0x10, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x0c, 0x08, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n49s.bm b/bitmaps/n49s.bm new file mode 100644 index 0000000..d2bda41 --- /dev/null +++ b/bitmaps/n49s.bm @@ -0,0 +1,55 @@ + +#define n49s_width 49 +#define n49s_height 49 +#define n49s_xoff 4 +#define n49s_yoff 3 +static unsigned char n49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xe1, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xf3, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xf3, 0x31, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xfc, 0x8f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0x3f, 0x02, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x04, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x0b, 0x00, 0x00, + 0x00, 0xfc, 0xfe, 0xff, 0x17, 0x00, 0x00, + 0x00, 0x3c, 0xff, 0xff, 0x2f, 0x00, 0x00, + 0x00, 0xbc, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xdc, 0xff, 0xff, 0x5f, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x9f, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xbf, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xfb, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xfb, 0x7f, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x7f, 0x02, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x02, 0x00, + 0xc0, 0xff, 0xff, 0xfd, 0xff, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xfc, 0xff, 0x04, 0x00, + 0xe0, 0xff, 0x3f, 0xfc, 0xff, 0x05, 0x00, + 0x70, 0xfe, 0x0f, 0xfc, 0xff, 0x05, 0x00, + 0x70, 0xff, 0x03, 0xfe, 0xff, 0x01, 0x00, + 0xf0, 0xff, 0x01, 0xfe, 0xff, 0x09, 0x00, + 0xf0, 0xff, 0x00, 0xff, 0xff, 0x09, 0x00, + 0xf0, 0x7b, 0x80, 0xff, 0xff, 0x09, 0x00, + 0xe0, 0x3f, 0x80, 0xff, 0xff, 0x0b, 0x00, + 0xc0, 0x1f, 0xc0, 0xff, 0xff, 0x0b, 0x00, + 0x00, 0x18, 0xe0, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x13, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/n54o.bm b/bitmaps/n54o.bm new file mode 100644 index 0000000..634707d --- /dev/null +++ b/bitmaps/n54o.bm @@ -0,0 +1,35 @@ +#define n54o_width 54 +#define n54o_height 54 +static unsigned char n54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x87, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xce, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfd, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x80, + 0xfd, 0xcc, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x0c, 0x3e, 0x00, 0x00, + 0x00, 0xe0, 0x06, 0x00, 0x78, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x38, 0x0f, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x98, 0x07, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x98, 0x07, 0x00, 0x80, 0x07, 0x00, 0x00, 0x98, 0x03, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x98, 0x00, 0x30, 0x00, 0x1f, 0x00, 0x00, 0x1c, 0x00, 0x30, + 0x00, 0x1e, 0x00, 0x00, 0x0c, 0x00, 0x30, 0x00, 0x3e, 0x00, 0x00, 0x0e, + 0x00, 0x30, 0x00, 0x3c, 0x00, 0x00, 0x07, 0x00, 0x38, 0x00, 0x3c, 0x00, + 0x00, 0x03, 0x00, 0x18, 0x00, 0x78, 0x00, 0x80, 0x03, 0x00, 0x3c, 0x00, + 0x78, 0x00, 0x80, 0x01, 0x00, 0x3e, 0x00, 0x78, 0x00, 0xc0, 0x01, 0x80, + 0x37, 0x00, 0xf0, 0x00, 0xc0, 0x00, 0xe0, 0x31, 0x00, 0xf0, 0x00, 0xe0, + 0x06, 0x78, 0x30, 0x00, 0xf0, 0x00, 0x60, 0x07, 0x1c, 0x38, 0x00, 0xf0, + 0x00, 0x60, 0x07, 0x0e, 0x18, 0x00, 0xf0, 0x01, 0x60, 0x33, 0x07, 0x1c, + 0x00, 0xe0, 0x01, 0x60, 0xb0, 0x03, 0x0e, 0x00, 0xe0, 0x01, 0xe0, 0xf8, + 0x01, 0x06, 0x00, 0xe0, 0x01, 0xc0, 0xdf, 0x00, 0x07, 0x00, 0xe0, 0x01, + 0x00, 0xff, 0x80, 0x03, 0x00, 0xe0, 0x01, 0x00, 0x70, 0xc0, 0x01, 0x00, + 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x70, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x38, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x18, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x06, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n54s.bm b/bitmaps/n54s.bm new file mode 100644 index 0000000..d24de82 --- /dev/null +++ b/bitmaps/n54s.bm @@ -0,0 +1,35 @@ +#define n54s_width 54 +#define n54s_height 54 +static unsigned char n54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc7, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xcf, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xef, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x87, 0x0f, 0x3f, 0x00, 0x00, + 0x00, 0xe0, 0xc1, 0x1f, 0x7c, 0x00, 0x00, 0x00, 0xf0, 0xfb, 0x7f, 0xf8, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xe1, 0x01, 0x00, 0x00, 0xf8, 0xf0, + 0xff, 0xc3, 0x03, 0x00, 0x00, 0x78, 0xf8, 0xff, 0x87, 0x03, 0x00, 0x00, + 0x78, 0xf8, 0xff, 0x0f, 0x07, 0x00, 0x00, 0x78, 0xfc, 0xff, 0x1f, 0x0f, + 0x00, 0x00, 0x78, 0xff, 0xff, 0x1f, 0x0e, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0x3f, 0x1c, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0xfe, + 0xff, 0xdf, 0x7f, 0x18, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x7f, 0x38, 0x00, + 0x00, 0xff, 0xff, 0xef, 0xff, 0x30, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0x30, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0xc0, 0xff, 0xff, + 0xf7, 0xff, 0x61, 0x00, 0xc0, 0xff, 0xff, 0xf1, 0xff, 0x61, 0x00, 0xe0, + 0xf9, 0x7f, 0xf0, 0xff, 0x61, 0x00, 0xe0, 0xf8, 0x3f, 0xf8, 0xff, 0xe1, + 0x00, 0xe0, 0xf8, 0x0f, 0xf8, 0xff, 0xc3, 0x00, 0xe0, 0xfc, 0x07, 0xfc, + 0xff, 0xc3, 0x00, 0xe0, 0xcf, 0x03, 0xfc, 0xff, 0xc3, 0x00, 0xe0, 0xe7, + 0x01, 0xfe, 0xff, 0xc3, 0x00, 0xc0, 0xf7, 0x00, 0xff, 0xff, 0xc3, 0x00, + 0x00, 0xff, 0x80, 0xff, 0xff, 0x83, 0x00, 0x00, 0x70, 0xc0, 0xff, 0xff, + 0x87, 0x01, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x87, 0x01, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x87, + 0x01, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x87, 0x01, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x9f, 0x01, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n58o.bm b/bitmaps/n58o.bm new file mode 100644 index 0000000..bca69f7 --- /dev/null +++ b/bitmaps/n58o.bm @@ -0,0 +1,42 @@ +#define n58o_width 58 +#define n58o_height 58 +static unsigned char n58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xdd, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf9, 0xf8, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf1, 0xf8, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xf9, 0x18, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1d, 0x10, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x04, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x80, 0x07, 0x00, 0x00, 0x00, 0x38, 0x0f, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x98, 0x07, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x98, 0x07, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0x00, 0x98, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x9c, 0x00, 0xc0, 0x00, 0x78, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xc0, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0xc0, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x06, 0x00, 0xc0, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x07, 0x00, 0xe0, 0x00, 0xe0, 0x01, 0x00, + 0x80, 0x03, 0x00, 0x70, 0x00, 0xe0, 0x01, 0x00, 0xc0, 0x01, 0x00, 0x70, + 0x00, 0xc0, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x78, 0x00, 0xc0, 0x03, 0x00, + 0xe0, 0x00, 0x00, 0x7e, 0x00, 0xc0, 0x03, 0x00, 0x60, 0x00, 0x80, 0x67, + 0x00, 0x80, 0x07, 0x00, 0x70, 0x03, 0xe0, 0x61, 0x00, 0x80, 0x07, 0x00, + 0xb0, 0x03, 0x78, 0x70, 0x00, 0x80, 0x07, 0x00, 0xb0, 0x03, 0x1c, 0x30, + 0x00, 0x80, 0x07, 0x00, 0xb0, 0x01, 0x0e, 0x38, 0x00, 0x80, 0x0f, 0x00, + 0x30, 0x30, 0x07, 0x18, 0x00, 0x00, 0x0f, 0x00, 0x30, 0xb8, 0x03, 0x1c, + 0x00, 0x00, 0x0f, 0x00, 0x70, 0xfc, 0x01, 0x0e, 0x00, 0x00, 0x0f, 0x00, + 0xe0, 0xdf, 0x00, 0x07, 0x00, 0x00, 0x0f, 0x00, 0x80, 0xff, 0x80, 0x03, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n58s.bm b/bitmaps/n58s.bm new file mode 100644 index 0000000..ee26159 --- /dev/null +++ b/bitmaps/n58s.bm @@ -0,0 +1,42 @@ +#define n58s_width 58 +#define n58s_height 58 +static unsigned char n58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x1f, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x3f, + 0xf8, 0x01, 0x00, 0x00, 0x00, 0xc0, 0xc7, 0xff, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xc3, 0x07, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0x0f, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0xe1, 0xff, 0x1f, 0x1e, 0x00, 0x00, + 0x00, 0xf0, 0xf0, 0xff, 0x3f, 0x3c, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xff, + 0x7f, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xff, 0xff, 0x78, 0x00, 0x00, + 0x00, 0xf8, 0xfe, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xe1, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xe1, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0x7f, 0xff, 0xc3, 0x01, 0x00, 0x00, 0xfc, 0xff, 0x7f, + 0xff, 0xc3, 0x01, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0xff, 0x87, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xbf, 0xff, 0x87, 0x03, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0x87, 0x03, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, + 0xc0, 0xff, 0xff, 0xdf, 0xff, 0x0f, 0x07, 0x00, 0xc0, 0xff, 0xff, 0xc7, + 0xff, 0x0f, 0x07, 0x00, 0xe0, 0xf9, 0xff, 0xc1, 0xff, 0x1f, 0x06, 0x00, + 0xe0, 0xf8, 0xff, 0xe0, 0xff, 0x1f, 0x06, 0x00, 0xe0, 0xf8, 0x3f, 0xe0, + 0xff, 0x1f, 0x0e, 0x00, 0xe0, 0xfc, 0x1f, 0xf0, 0xff, 0x1f, 0x0e, 0x00, + 0xe0, 0x9f, 0x0f, 0xf0, 0xff, 0x1f, 0x0c, 0x00, 0xe0, 0xdf, 0x07, 0xf8, + 0xff, 0x3f, 0x0c, 0x00, 0xe0, 0xcf, 0x03, 0xfc, 0xff, 0x3f, 0x0c, 0x00, + 0xc0, 0xff, 0x01, 0xfe, 0xff, 0x3f, 0x0c, 0x00, 0x00, 0xff, 0x01, 0xff, + 0xff, 0x3f, 0x0c, 0x00, 0x00, 0xe0, 0x80, 0xff, 0xff, 0x3f, 0x1c, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x1c, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x3f, 0x18, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x18, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x18, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x7f, 0x18, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x18, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n64o.bm b/bitmaps/n64o.bm new file mode 100644 index 0000000..3b41ae9 --- /dev/null +++ b/bitmaps/n64o.bm @@ -0,0 +1,46 @@ +#define n64o_width 64 +#define n64o_height 64 +static unsigned char n64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0xdc, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0x8d, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x8f, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x8f, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xcc, 0x8d, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x00, 0xee, 0x80, + 0x01, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x67, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0xc0, 0x61, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0xc0, 0x38, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x3c, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, 0xe0, 0x3e, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0x60, 0x1e, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x60, 0x02, 0x00, + 0x0c, 0x00, 0x1f, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0c, 0x00, 0x1e, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x3e, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x0c, 0x00, 0x3c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x0c, 0x00, 0x3c, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x0e, 0x00, 0x78, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x06, 0x00, 0x78, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x07, 0x00, 0x78, 0x00, + 0x00, 0x06, 0x00, 0x80, 0x07, 0x00, 0xf0, 0x00, 0x00, 0x07, 0x00, 0xc0, + 0x07, 0x00, 0xf0, 0x00, 0x80, 0x03, 0x00, 0xf0, 0x06, 0x00, 0xf0, 0x00, + 0x80, 0x03, 0x00, 0x3c, 0x06, 0x00, 0xf0, 0x01, 0x80, 0x0d, 0x00, 0x0f, + 0x06, 0x00, 0xe0, 0x01, 0xc0, 0x1f, 0xc0, 0x03, 0x07, 0x00, 0xe0, 0x01, + 0xc0, 0x1e, 0xe0, 0x00, 0x03, 0x00, 0xe0, 0x01, 0xc0, 0x0e, 0x70, 0x80, + 0x03, 0x00, 0xe0, 0x01, 0xc0, 0x8e, 0x38, 0x80, 0x01, 0x00, 0xc0, 0x03, + 0xc0, 0xc0, 0x1c, 0xc0, 0x01, 0x00, 0xc0, 0x03, 0xc0, 0xc1, 0x0e, 0xe0, + 0x00, 0x00, 0xc0, 0x03, 0x80, 0xe3, 0x06, 0x60, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x7f, 0x07, 0x70, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xfc, 0x03, 0x38, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0xc0, 0x01, 0x1c, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n64s.bm b/bitmaps/n64s.bm new file mode 100644 index 0000000..a02cfe9 --- /dev/null +++ b/bitmaps/n64s.bm @@ -0,0 +1,46 @@ +#define n64s_width 64 +#define n64s_height 64 +static unsigned char n64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfc, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xfd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xfc, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf8, + 0x81, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0x0f, 0x1e, 0x00, 0x00, + 0x00, 0x80, 0xdf, 0xff, 0x3f, 0x3c, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0x70, 0x00, 0x00, 0x00, 0xc0, 0x9f, 0xff, 0xff, 0xe1, 0x00, 0x00, + 0x00, 0xc0, 0xc7, 0xff, 0xff, 0xc3, 0x01, 0x00, 0x00, 0xc0, 0xc3, 0xff, + 0xff, 0x87, 0x01, 0x00, 0x00, 0xe0, 0xc1, 0xff, 0xff, 0x0f, 0x03, 0x00, + 0x00, 0xe0, 0xe1, 0xff, 0xff, 0x0f, 0x07, 0x00, 0x00, 0xe0, 0xfd, 0xff, + 0xff, 0x1f, 0x06, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x0c, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x0c, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x7f, 0x18, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xfb, 0x7f, 0x18, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xfb, 0xff, 0x30, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xf9, 0xff, 0x30, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xfd, 0xff, 0x30, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x61, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x61, 0x00, 0x80, 0xff, 0xff, 0xff, 0xfe, 0xff, 0x61, 0x00, + 0x80, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xc3, 0x00, 0x80, 0xf3, 0xff, 0x0f, + 0xfe, 0xff, 0xc3, 0x00, 0xc0, 0xe1, 0xff, 0x03, 0xff, 0xff, 0xc3, 0x00, + 0xc0, 0xe1, 0xff, 0x00, 0xff, 0xff, 0xc3, 0x00, 0xc0, 0xf1, 0x7f, 0x80, + 0xff, 0xff, 0xc3, 0x00, 0xc0, 0xf1, 0x3f, 0x80, 0xff, 0xff, 0x87, 0x01, + 0xc0, 0x7f, 0x1f, 0xc0, 0xff, 0xff, 0x87, 0x01, 0xc0, 0x3f, 0x0f, 0xe0, + 0xff, 0xff, 0x87, 0x01, 0x80, 0x9f, 0x07, 0xf0, 0xff, 0xff, 0x87, 0x01, + 0x00, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x87, 0x01, 0x00, 0xfc, 0x03, 0xf8, + 0xff, 0xff, 0x87, 0x01, 0x00, 0xc0, 0x01, 0xfc, 0xff, 0xff, 0x07, 0x01, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 0x03, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x03, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x03, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n72o.bm b/bitmaps/n72o.bm new file mode 100644 index 0000000..e21d5d6 --- /dev/null +++ b/bitmaps/n72o.bm @@ -0,0 +1,57 @@ +#define n72o_width 72 +#define n72o_height 72 +static unsigned char n72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xec, 0x60, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcc, + 0x71, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x33, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x3f, 0xfc, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x3e, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x37, 0x18, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x03, 0x18, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xce, 0x01, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x47, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0xe0, 0xc0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x60, 0x70, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x60, 0x78, 0x00, 0x00, 0x00, + 0xe0, 0x01, 0x00, 0x00, 0x60, 0x7c, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x60, 0x3c, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x70, 0x04, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x30, 0x00, 0x00, 0x60, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x60, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x3e, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x70, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x30, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x03, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x78, 0x00, 0x80, 0x03, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x78, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x00, 0x00, + 0x80, 0x37, 0x00, 0x00, 0xf0, 0x00, 0xe0, 0x00, 0x00, 0xe0, 0x31, 0x00, + 0x00, 0xf0, 0x00, 0x60, 0x00, 0x00, 0x78, 0x30, 0x00, 0x00, 0xf0, 0x00, + 0x60, 0x06, 0x00, 0x1e, 0x30, 0x00, 0x00, 0xf0, 0x01, 0x70, 0x0f, 0x80, + 0x07, 0x38, 0x00, 0x00, 0xe0, 0x01, 0x30, 0x0f, 0xc0, 0x01, 0x18, 0x00, + 0x00, 0xe0, 0x01, 0x30, 0x07, 0xe0, 0x00, 0x1c, 0x00, 0x00, 0xe0, 0x01, + 0x30, 0x07, 0x70, 0x00, 0x0c, 0x00, 0x00, 0xe0, 0x01, 0x30, 0xc0, 0x38, + 0x00, 0x0e, 0x00, 0x00, 0xe0, 0x03, 0x30, 0xc0, 0x1c, 0x00, 0x07, 0x00, + 0x00, 0xc0, 0x03, 0x70, 0xe0, 0x0c, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x03, + 0xe0, 0x70, 0x0e, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x7f, 0x07, + 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xef, 0x03, 0xe0, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0xc0, 0x01, 0x70, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n72s.bm b/bitmaps/n72s.bm new file mode 100644 index 0000000..d1ef6e3 --- /dev/null +++ b/bitmaps/n72s.bm @@ -0,0 +1,57 @@ +#define n72s_width 72 +#define n72s_height 72 +static unsigned char n72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xc1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xe3, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe7, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xc3, 0x1f, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xc0, 0x1f, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xfc, 0xff, 0xc1, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xff, 0xff, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x3f, 0x1e, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x7f, + 0x38, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, + 0x00, 0xc0, 0x7f, 0xfe, 0xff, 0xff, 0xe1, 0x00, 0x00, 0x00, 0xc0, 0x1f, + 0xff, 0xff, 0xff, 0xc3, 0x01, 0x00, 0x00, 0xc0, 0x0f, 0xff, 0xff, 0xff, + 0x87, 0x01, 0x00, 0x00, 0xc0, 0x07, 0xff, 0xff, 0xff, 0x8f, 0x03, 0x00, + 0x00, 0xc0, 0x87, 0xff, 0xff, 0xff, 0x0f, 0x07, 0x00, 0x00, 0xe0, 0xf7, + 0xff, 0xff, 0xff, 0x1f, 0x06, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x0e, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0c, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x18, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x7f, 0xff, + 0x7f, 0x18, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x30, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xbf, 0xff, 0xff, 0x30, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0x30, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x61, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x61, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x61, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xe7, 0xff, 0xff, 0xc3, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xe1, 0xff, + 0xff, 0xc3, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0xc3, 0x00, + 0xc0, 0xf3, 0xff, 0x1f, 0xe0, 0xff, 0xff, 0xc3, 0x01, 0xe0, 0xe1, 0xff, + 0x0f, 0xf0, 0xff, 0xff, 0x87, 0x01, 0xe0, 0xe1, 0xff, 0x03, 0xf0, 0xff, + 0xff, 0x87, 0x01, 0xe0, 0xf1, 0xff, 0x01, 0xf8, 0xff, 0xff, 0x87, 0x01, + 0xe0, 0xf1, 0xff, 0x00, 0xf8, 0xff, 0xff, 0x87, 0x01, 0xe0, 0xff, 0x7e, + 0x00, 0xfc, 0xff, 0xff, 0x87, 0x01, 0xe0, 0x7f, 0x3e, 0x00, 0xfe, 0xff, + 0xff, 0x0f, 0x03, 0xe0, 0x3f, 0x1f, 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x03, + 0xc0, 0xbf, 0x1f, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x80, 0xff, 0x0f, + 0x80, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0xde, 0x07, 0xc0, 0xff, 0xff, + 0xff, 0x0f, 0x03, 0x00, 0x80, 0x03, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x03, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0x0f, 0x07, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x06, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x06, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x06, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x06, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x06, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x06, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x06, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x06, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x06, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x06, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n80o.bm b/bitmaps/n80o.bm new file mode 100644 index 0000000..07a3795 --- /dev/null +++ b/bitmaps/n80o.bm @@ -0,0 +1,70 @@ +#define n80o_width 80 +#define n80o_height 80 +static unsigned char n80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xdc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1c, 0xcc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x38, 0x8e, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x70, 0x86, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe0, 0x87, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, + 0x83, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x71, 0x03, 0xc3, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x39, 0x00, 0x03, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x0c, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x1c, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x8e, 0x07, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, + 0x86, 0x07, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x03, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x18, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x18, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x18, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x1c, + 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x18, 0x00, 0x00, 0xc0, 0x0d, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0xf0, 0x0c, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x3c, 0x0c, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x0f, 0x0c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x66, + 0x00, 0xc0, 0x03, 0x0c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x77, 0x00, 0xe0, + 0x00, 0x0e, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x73, 0x00, 0x78, 0x00, 0x06, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x73, 0x00, 0x1c, 0x00, 0x07, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x33, 0x00, 0x0e, 0x00, 0x03, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x03, 0x0c, 0x07, 0x80, 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x03, + 0x8c, 0x03, 0xc0, 0x01, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x03, 0xce, 0x01, + 0xc0, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x07, 0xe6, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x0e, 0x77, 0x00, 0x70, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0xfc, 0x33, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0xf0, 0x3f, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n80s.bm b/bitmaps/n80s.bm new file mode 100644 index 0000000..657d1d5 --- /dev/null +++ b/bitmaps/n80s.bm @@ -0,0 +1,70 @@ +#define n80s_width 80 +#define n80s_height 80 +static unsigned char n80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xfc, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0xfe, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x7f, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xfc, 0xc0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xfc, 0x03, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc3, 0xff, 0x1f, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xe3, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xe3, 0xff, 0xff, 0x1f, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xf8, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0xf8, 0xff, 0xff, 0x7f, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0xf8, 0xff, 0xff, 0xff, 0x78, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xfc, + 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xff, 0xff, 0xff, + 0xff, 0xe1, 0x00, 0x00, 0x00, 0x00, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x01, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x01, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xf7, 0xff, 0x0f, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xf7, + 0xff, 0x0f, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x1f, + 0x06, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xfb, 0xff, 0x1f, 0x06, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xf9, 0xff, 0x1f, 0x0e, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x0c, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x0c, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xfd, + 0xff, 0x3f, 0x1c, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xfc, 0xff, 0x7f, + 0x18, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0xfc, 0xff, 0x7f, 0x18, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0xfc, 0xff, 0x7f, 0x18, 0x00, 0x00, 0x9e, + 0xff, 0xff, 0x03, 0xfe, 0xff, 0xff, 0x30, 0x00, 0x00, 0x8f, 0xff, 0xff, + 0x00, 0xfe, 0xff, 0xff, 0x30, 0x00, 0x00, 0x8f, 0xff, 0x7f, 0x00, 0xfe, + 0xff, 0xff, 0x30, 0x00, 0x00, 0x8f, 0xff, 0x1f, 0x00, 0xff, 0xff, 0xff, + 0x30, 0x00, 0x00, 0xcf, 0xff, 0x0f, 0x00, 0xff, 0xff, 0xff, 0x30, 0x00, + 0x00, 0xff, 0xf7, 0x07, 0x80, 0xff, 0xff, 0xff, 0x21, 0x00, 0x00, 0xff, + 0xf3, 0x03, 0xc0, 0xff, 0xff, 0xff, 0x61, 0x00, 0x00, 0xff, 0xfb, 0x01, + 0xe0, 0xff, 0xff, 0xff, 0x61, 0x00, 0x00, 0xff, 0xf9, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0x61, 0x00, 0x00, 0xfe, 0x7d, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0x61, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x61, 0x00, + 0x00, 0xf0, 0x3f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x61, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x43, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xc3, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xc3, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xc7, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xdf, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n87o.bm b/bitmaps/n87o.bm new file mode 100644 index 0000000..3349b60 --- /dev/null +++ b/bitmaps/n87o.bm @@ -0,0 +1,83 @@ +#define n87o_width 87 +#define n87o_height 87 +static unsigned char n87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x70, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x7d, 0x38, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xf1, 0x38, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe1, 0x1d, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xc3, 0x1f, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, + 0x1f, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc3, 0x1f, + 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf7, 0x0d, 0x1c, + 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfb, 0x00, 0x0c, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x39, 0x00, 0x00, 0xc0, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x10, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x3e, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x8e, + 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x1f, + 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xce, 0x0f, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xce, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xce, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x80, 0x7f, 0x00, + 0x00, 0xe0, 0x07, 0x00, 0x00, 0x1c, 0x00, 0x00, 0xe0, 0x77, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xf8, 0x71, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x7e, 0x70, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x07, 0x00, 0x80, 0x1f, 0x70, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x67, 0x00, 0xc0, 0x07, 0x70, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, + 0xf7, 0x00, 0xf0, 0x01, 0x38, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x80, 0xfb, + 0x00, 0xf8, 0x00, 0x38, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x80, 0xfb, 0x00, + 0x3c, 0x00, 0x1c, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x7b, 0x00, 0x1e, + 0x00, 0x1c, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x33, 0x18, 0x0f, 0x00, + 0x0e, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x03, 0x9c, 0x07, 0x00, 0x0e, + 0x00, 0x00, 0x80, 0x1f, 0x00, 0x80, 0x03, 0xdc, 0x03, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x07, 0xce, 0x01, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x1f, 0x00, 0x00, 0x0f, 0xef, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0xfe, 0xf7, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x3f, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0xf0, 0x3e, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n87s.bm b/bitmaps/n87s.bm new file mode 100644 index 0000000..ff2b78a --- /dev/null +++ b/bitmaps/n87s.bm @@ -0,0 +1,83 @@ +#define n87s_width 87 +#define n87s_height 87 +static unsigned char n87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x7f, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xf1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xfb, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xf0, 0x0f, + 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xe0, 0x1f, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0xf0, 0x3f, 0xc0, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xff, 0xff, 0x03, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xdf, 0xff, 0xff, 0x0f, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x8f, 0xff, 0xff, 0x7f, 0xf0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x83, 0xff, 0xff, 0xff, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xc1, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xc0, 0xff, 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xc0, + 0xff, 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xe0, 0xff, + 0xff, 0xff, 0x0f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xf2, 0xff, 0xff, + 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xfe, 0xff, 0xff, 0xff, + 0x1f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x78, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x78, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0x9f, 0xff, 0xff, 0xc1, 0x01, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x9f, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xdf, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x83, 0x03, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x83, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, + 0x83, 0x07, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0x07, + 0x07, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x07, 0x07, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0xe0, 0xff, 0xff, 0x07, 0x0f, 0x00, + 0x00, 0x3e, 0xff, 0xff, 0x1f, 0xe0, 0xff, 0xff, 0x0f, 0x0e, 0x00, 0x00, + 0x1e, 0xfe, 0xff, 0x07, 0xf0, 0xff, 0xff, 0x0f, 0x0e, 0x00, 0x00, 0x0f, + 0xfe, 0xff, 0x03, 0xf0, 0xff, 0xff, 0x0f, 0x0e, 0x00, 0x00, 0x0f, 0xfe, + 0xff, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, 0x0f, 0xff, 0x7f, + 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x1c, 0x00, 0x00, 0x9f, 0xff, 0x3f, 0x00, + 0xfc, 0xff, 0xff, 0x1f, 0x1c, 0x00, 0x00, 0xff, 0xcf, 0x1f, 0x00, 0xfc, + 0xff, 0xff, 0x1f, 0x1c, 0x00, 0x00, 0xff, 0xe7, 0x0f, 0x00, 0xfe, 0xff, + 0xff, 0x1f, 0x1c, 0x00, 0x00, 0xfe, 0xe7, 0x07, 0x00, 0xff, 0xff, 0xff, + 0x1f, 0x3c, 0x00, 0x00, 0xfe, 0xf3, 0x03, 0x80, 0xff, 0xff, 0xff, 0x1f, + 0x3c, 0x00, 0x00, 0xfc, 0xff, 0x01, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x38, + 0x00, 0x00, 0xf8, 0xff, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0xe0, 0x7d, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, 0x00, + 0x00, 0x38, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x78, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x70, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x70, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x70, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n95o.bm b/bitmaps/n95o.bm new file mode 100644 index 0000000..52d8146 --- /dev/null +++ b/bitmaps/n95o.bm @@ -0,0 +1,98 @@ +#define n95o_width 95 +#define n95o_height 95 +static unsigned char n95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x80, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xee, 0x81, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xce, 0xc3, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x8e, 0xc7, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0xff, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0xfe, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0xfe, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0xef, 0xc0, 0xe1, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x9e, 0x47, 0xc0, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xcf, 0x03, 0xc0, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xc7, 0x01, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xf0, 0x01, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xf8, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x7c, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x7e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x06, 0x00, 0x00, 0x0e, 0x00, 0x80, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x80, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xfc, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xf8, 0x01, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x7c, 0x07, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x3f, 0x07, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0xc0, 0x0f, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0xf0, 0x03, 0x07, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x8e, 0x01, 0x00, 0xfc, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xce, 0x03, 0x00, 0x3e, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xe7, 0x03, 0x80, 0x0f, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x07, 0x00, + 0x00, 0xe7, 0x03, 0xc0, 0x07, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0xe7, 0x01, 0xe0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0xc7, 0x00, 0xf0, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x07, 0x60, 0x78, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x07, 0x70, 0x3c, 0x00, 0xf0, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x07, 0x70, 0x1e, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x0e, 0x38, 0x0e, 0x00, 0x38, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x3e, 0x3c, 0x07, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0xfc, 0x9f, 0x07, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0xf0, 0xdf, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0xc0, 0xff, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0x70, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/n95s.bm b/bitmaps/n95s.bm new file mode 100644 index 0000000..68f1c39 --- /dev/null +++ b/bitmaps/n95s.bm @@ -0,0 +1,98 @@ +#define n95s_width 95 +#define n95s_height 95 +static unsigned char n95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x03, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x87, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x8f, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x8f, 0xff, 0xe1, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x03, 0xff, 0x01, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0xff, 0x03, 0xfc, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7f, 0xf0, 0xff, 0x1f, 0xf0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x7f, 0xfc, 0xff, 0xff, 0xc0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x83, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x7c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x7f, 0xfc, 0xff, 0xff, 0x3f, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x1f, 0xfc, 0xff, 0xff, 0x7f, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x07, 0xfe, 0xff, 0xff, 0xff, 0xc1, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0x83, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xc3, 0xff, 0xff, 0xff, 0xff, 0x07, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xf3, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0xff, 0x3f, 0x78, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xf7, 0xff, 0x7f, 0x78, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x7f, 0x70, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0x7f, 0xf0, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xe0, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff, 0xc1, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xfe, 0xff, 0xff, 0x83, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0xfe, 0xff, 0xff, 0x83, 0x03, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x07, 0xfe, 0xff, 0xff, 0x83, 0x07, 0x00, + 0x00, 0xfc, 0xfc, 0xff, 0xff, 0x01, 0xfe, 0xff, 0xff, 0x03, 0x07, 0x00, + 0x00, 0x7c, 0xf8, 0xff, 0x7f, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, + 0x00, 0x3e, 0xf8, 0xff, 0x1f, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, + 0x00, 0x3e, 0xf8, 0xff, 0x0f, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, + 0x00, 0x3e, 0xfc, 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0x07, 0x0f, 0x00, + 0x00, 0x7e, 0xfe, 0xff, 0x01, 0x80, 0xff, 0xff, 0xff, 0x07, 0x0e, 0x00, + 0x00, 0xfe, 0xbf, 0xff, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x0e, 0x00, + 0x00, 0xfe, 0x3f, 0x7f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x0e, 0x00, + 0x00, 0xfe, 0x9f, 0x3f, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0x0e, 0x00, + 0x00, 0xfc, 0x9f, 0x1f, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x0f, 0x0e, 0x00, + 0x00, 0xfc, 0xcf, 0x0f, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, + 0x00, 0xf8, 0xff, 0x0f, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, + 0x00, 0xe0, 0xff, 0x07, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, + 0x00, 0x80, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x1c, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x80, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x38, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p108o.bm b/bitmaps/p108o.bm new file mode 100644 index 0000000..7b49800 --- /dev/null +++ b/bitmaps/p108o.bm @@ -0,0 +1,129 @@ +#define p108o_width 108 +#define p108o_height 108 +static unsigned char p108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x03, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x03, 0xfc, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, + 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x07, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p108s.bm b/bitmaps/p108s.bm new file mode 100644 index 0000000..c814747 --- /dev/null +++ b/bitmaps/p108s.bm @@ -0,0 +1,129 @@ +#define p108s_width 108 +#define p108s_height 108 +static unsigned char p108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p116o.bm b/bitmaps/p116o.bm new file mode 100644 index 0000000..baa6706 --- /dev/null +++ b/bitmaps/p116o.bm @@ -0,0 +1,148 @@ +#define p116o_width 116 +#define p116o_height 116 +static unsigned char p116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x07, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0xc0, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x03, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x80, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x03, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0xfc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xf0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p116s.bm b/bitmaps/p116s.bm new file mode 100644 index 0000000..70985b9 --- /dev/null +++ b/bitmaps/p116s.bm @@ -0,0 +1,148 @@ +#define p116s_width 116 +#define p116s_height 116 +static unsigned char p116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p129o.bm b/bitmaps/p129o.bm new file mode 100644 index 0000000..99d8330 --- /dev/null +++ b/bitmaps/p129o.bm @@ -0,0 +1,186 @@ +#define p129o_width 129 +#define p129o_height 129 +static unsigned char p129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xf0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x03, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0xc0, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x07, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0xf0, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x0f, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0xe0, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x01, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, + 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, + 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0xf0, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x01, 0x00, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p129s.bm b/bitmaps/p129s.bm new file mode 100644 index 0000000..3cd5b14 --- /dev/null +++ b/bitmaps/p129s.bm @@ -0,0 +1,186 @@ +#define p129s_width 129 +#define p129s_height 129 +static unsigned char p129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p21o.bm b/bitmaps/p21o.bm new file mode 100644 index 0000000..0631f4d --- /dev/null +++ b/bitmaps/p21o.bm @@ -0,0 +1,9 @@ +#define p21o_width 21 +#define p21o_height 21 +static unsigned char p21o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x80, 0x20, 0x00, 0x80, 0x20, 0x00, 0x80, 0x31, 0x00, 0x00, 0x11, 0x00, + 0x80, 0x20, 0x00, 0x80, 0x20, 0x00, 0x00, 0x11, 0x00, 0x00, 0x11, 0x00, + 0xc0, 0x60, 0x00, 0x60, 0xc0, 0x00, 0x20, 0x80, 0x00, 0x30, 0x80, 0x01, + 0x10, 0x00, 0x01, 0x10, 0x00, 0x01, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/p21s.bm b/bitmaps/p21s.bm new file mode 100644 index 0000000..49598b3 --- /dev/null +++ b/bitmaps/p21s.bm @@ -0,0 +1,9 @@ +#define p21s_width 21 +#define p21s_height 21 +static unsigned char p21s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, + 0x80, 0x3f, 0x00, 0x80, 0x3f, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x1f, 0x00, + 0x80, 0x3f, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x1f, 0x00, + 0x80, 0x3f, 0x00, 0xc0, 0x7f, 0x00, 0xe0, 0xff, 0x00, 0xe0, 0xff, 0x00, + 0xf0, 0xff, 0x01, 0xf0, 0xff, 0x01, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/p25o.bm b/bitmaps/p25o.bm new file mode 100644 index 0000000..a75a694 --- /dev/null +++ b/bitmaps/p25o.bm @@ -0,0 +1,12 @@ +#define p25o_width 25 +#define p25o_height 25 +static unsigned char p25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x44, 0x00, 0x00, + 0x00, 0x44, 0x00, 0x00, 0x00, 0x6c, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x00, 0x82, 0x00, 0x00, 0x00, 0xc6, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, + 0x80, 0x00, 0x02, 0x00, 0x40, 0x00, 0x04, 0x00, 0x40, 0x00, 0x04, 0x00, + 0x20, 0x00, 0x08, 0x00, 0x20, 0x00, 0x08, 0x00, 0x20, 0x00, 0x08, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p25s.bm b/bitmaps/p25s.bm new file mode 100644 index 0000000..307da11 --- /dev/null +++ b/bitmaps/p25s.bm @@ -0,0 +1,12 @@ +#define p25s_width 25 +#define p25s_height 25 +static unsigned char p25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0xff, 0x01, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, + 0x80, 0xff, 0x03, 0x00, 0xc0, 0xff, 0x07, 0x00, 0xc0, 0xff, 0x07, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p29o.bm b/bitmaps/p29o.bm new file mode 100644 index 0000000..ec28219 --- /dev/null +++ b/bitmaps/p29o.bm @@ -0,0 +1,13 @@ +#define p29o_width 29 +#define p29o_height 29 +static unsigned char p29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x08, 0x02, 0x00, + 0x00, 0x08, 0x02, 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, 0xb8, 0x03, 0x00, + 0x00, 0x04, 0x04, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, + 0x00, 0x02, 0x08, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x04, 0x04, 0x00, + 0x00, 0x0c, 0x06, 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x01, 0x10, 0x00, + 0x80, 0x00, 0x20, 0x00, 0x80, 0x00, 0x20, 0x00, 0x80, 0x00, 0x20, 0x00, + 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, + 0x40, 0x00, 0x40, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p29s.bm b/bitmaps/p29s.bm new file mode 100644 index 0000000..b7b0674 --- /dev/null +++ b/bitmaps/p29s.bm @@ -0,0 +1,13 @@ +#define p29s_width 29 +#define p29s_height 29 +static unsigned char p29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0xf8, 0x03, 0x00, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xf8, 0x03, 0x00, + 0x00, 0xfc, 0x07, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfe, 0x0f, 0x00, + 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xfc, 0x07, 0x00, + 0x00, 0xfc, 0x07, 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x80, 0xff, 0x3f, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x80, 0xff, 0x3f, 0x00, + 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p33o.bm b/bitmaps/p33o.bm new file mode 100644 index 0000000..96c8fd5 --- /dev/null +++ b/bitmaps/p33o.bm @@ -0,0 +1,17 @@ +#define p33o_width 33 +#define p33o_height 33 +static unsigned char p33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x40, 0x04, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x20, 0x08, 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x40, 0x04, + 0x00, 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, + 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x08, + 0x20, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, 0x08, 0x20, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, 0x30, 0x18, 0x00, 0x00, 0x00, + 0x08, 0x20, 0x00, 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, 0x02, 0x80, + 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, + 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p33s.bm b/bitmaps/p33s.bm new file mode 100644 index 0000000..12474a2 --- /dev/null +++ b/bitmaps/p33s.bm @@ -0,0 +1,17 @@ +#define p33s_width 33 +#define p33s_height 33 +static unsigned char p33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xf8, + 0x3f, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xf8, 0x3f, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x01, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, + 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x80, 0xff, 0xff, 0x03, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p37o.bm b/bitmaps/p37o.bm new file mode 100644 index 0000000..43856cf --- /dev/null +++ b/bitmaps/p37o.bm @@ -0,0 +1,19 @@ +#define p37o_width 37 +#define p37o_height 37 +static unsigned char p37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, + 0x80, 0x20, 0x00, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00, 0x00, 0x80, 0x20, + 0x00, 0x00, 0x00, 0x80, 0x31, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, + 0x00, 0x20, 0x80, 0x00, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, + 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00, 0x00, + 0x20, 0x80, 0x00, 0x00, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x00, 0x30, 0x80, + 0x01, 0x00, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, + 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x80, 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x20, 0x00, 0x80, + 0x00, 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, 0x20, 0x00, 0x80, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p37s.bm b/bitmaps/p37s.bm new file mode 100644 index 0000000..ae7f706 --- /dev/null +++ b/bitmaps/p37s.bm @@ -0,0 +1,19 @@ +#define p37s_width 37 +#define p37s_height 37 +static unsigned char p37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, + 0x80, 0x3f, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x80, 0x3f, + 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xf0, + 0xff, 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, + 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, + 0xe0, 0xff, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0x01, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, + 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x1f, + 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x80, + 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p40o.bm b/bitmaps/p40o.bm new file mode 100644 index 0000000..5aeb96b --- /dev/null +++ b/bitmaps/p40o.bm @@ -0,0 +1,20 @@ +#define p40o_width 40 +#define p40o_height 40 +static unsigned char p40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x82, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x81, + 0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, 0x80, 0x07, 0x03, 0x00, + 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, + 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, + 0x40, 0x00, 0x04, 0x00, 0x00, 0x80, 0x00, 0x02, 0x00, 0x00, 0x00, 0x83, + 0x01, 0x00, 0x00, 0xc0, 0x00, 0x06, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, + 0x00, 0x10, 0x00, 0x10, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x00, 0x08, + 0x00, 0x20, 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x40, + 0x00, 0x00, 0x04, 0x00, 0x40, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, + 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p40s.bm b/bitmaps/p40s.bm new file mode 100644 index 0000000..ee88948 --- /dev/null +++ b/bitmaps/p40s.bm @@ -0,0 +1,20 @@ +#define p40s_width 40 +#define p40s_height 40 +static unsigned char p40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, + 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, + 0xc0, 0xff, 0x07, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0xff, + 0x01, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0xf8, + 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0xff, 0x7f, + 0x00, 0x00, 0xfc, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p45o.bm b/bitmaps/p45o.bm new file mode 100644 index 0000000..e5b95ca --- /dev/null +++ b/bitmaps/p45o.bm @@ -0,0 +1,51 @@ + +#define p45o_width 45 +#define p45o_height 45 +#define p45o_xoff 9 +#define p45o_yoff 4 +static unsigned char p45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x18, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/p45s.bm b/bitmaps/p45s.bm new file mode 100644 index 0000000..80af5b0 --- /dev/null +++ b/bitmaps/p45s.bm @@ -0,0 +1,51 @@ + +#define p45s_width 45 +#define p45s_height 45 +#define p45s_xoff 9 +#define p45s_yoff 4 +static unsigned char p45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/p49o.bm b/bitmaps/p49o.bm new file mode 100644 index 0000000..263aa88 --- /dev/null +++ b/bitmaps/p49o.bm @@ -0,0 +1,55 @@ + +#define p49o_width 49 +#define p49o_height 49 +#define p49o_xoff 10 +#define p49o_yoff 4 +static unsigned char p49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0x08, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x08, 0x20, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x10, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x40, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x40, 0x00, 0x00, 0x04, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/p49s.bm b/bitmaps/p49s.bm new file mode 100644 index 0000000..3f11e70 --- /dev/null +++ b/bitmaps/p49s.bm @@ -0,0 +1,55 @@ + +#define p49s_width 49 +#define p49s_height 49 +#define p49s_xoff 10 +#define p49s_yoff 4 +static unsigned char p49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/p54o.bm b/bitmaps/p54o.bm new file mode 100644 index 0000000..0779310 --- /dev/null +++ b/bitmaps/p54o.bm @@ -0,0 +1,35 @@ +#define p54o_width 54 +#define p54o_height 54 +static unsigned char p54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x60, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x60, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe1, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x78, 0x80, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0xe0, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x60, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p54s.bm b/bitmaps/p54s.bm new file mode 100644 index 0000000..3cda080 --- /dev/null +++ b/bitmaps/p54s.bm @@ -0,0 +1,35 @@ +#define p54s_width 54 +#define p54s_height 54 +static unsigned char p54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p58o.bm b/bitmaps/p58o.bm new file mode 100644 index 0000000..7e6087f --- /dev/null +++ b/bitmaps/p58o.bm @@ -0,0 +1,42 @@ +#define p58o_width 58 +#define p58o_height 58 +static unsigned char p58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x87, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p58s.bm b/bitmaps/p58s.bm new file mode 100644 index 0000000..bf08b88 --- /dev/null +++ b/bitmaps/p58s.bm @@ -0,0 +1,42 @@ +#define p58s_width 58 +#define p58s_height 58 +static unsigned char p58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p64o.bm b/bitmaps/p64o.bm new file mode 100644 index 0000000..5a1f35f --- /dev/null +++ b/bitmaps/p64o.bm @@ -0,0 +1,46 @@ +#define p64o_width 64 +#define p64o_height 64 +static unsigned char p64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p64s.bm b/bitmaps/p64s.bm new file mode 100644 index 0000000..11c1ad9 --- /dev/null +++ b/bitmaps/p64s.bm @@ -0,0 +1,46 @@ +#define p64s_width 64 +#define p64s_height 64 +static unsigned char p64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p72o.bm b/bitmaps/p72o.bm new file mode 100644 index 0000000..62c8202 --- /dev/null +++ b/bitmaps/p72o.bm @@ -0,0 +1,57 @@ +#define p72o_width 72 +#define p72o_height 72 +static unsigned char p72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x81, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xc3, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xc3, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p72s.bm b/bitmaps/p72s.bm new file mode 100644 index 0000000..29fde4a --- /dev/null +++ b/bitmaps/p72s.bm @@ -0,0 +1,57 @@ +#define p72s_width 72 +#define p72s_height 72 +static unsigned char p72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p80o.bm b/bitmaps/p80o.bm new file mode 100644 index 0000000..aa8c09e --- /dev/null +++ b/bitmaps/p80o.bm @@ -0,0 +1,70 @@ +#define p80o_width 80 +#define p80o_height 80 +static unsigned char p80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xfc, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x30, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p80s.bm b/bitmaps/p80s.bm new file mode 100644 index 0000000..0a2e4bd --- /dev/null +++ b/bitmaps/p80s.bm @@ -0,0 +1,70 @@ +#define p80s_width 80 +#define p80s_height 80 +static unsigned char p80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p87o.bm b/bitmaps/p87o.bm new file mode 100644 index 0000000..9ace16e --- /dev/null +++ b/bitmaps/p87o.bm @@ -0,0 +1,83 @@ +#define p87o_width 87 +#define p87o_height 87 +static unsigned char p87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xc1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xc1, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xc1, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x81, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x1f, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x03, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p87s.bm b/bitmaps/p87s.bm new file mode 100644 index 0000000..d159f8a --- /dev/null +++ b/bitmaps/p87s.bm @@ -0,0 +1,83 @@ +#define p87s_width 87 +#define p87s_height 87 +static unsigned char p87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p95o.bm b/bitmaps/p95o.bm new file mode 100644 index 0000000..eab93cc --- /dev/null +++ b/bitmaps/p95o.bm @@ -0,0 +1,98 @@ +#define p95o_width 95 +#define p95o_height 95 +static unsigned char p95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/p95s.bm b/bitmaps/p95s.bm new file mode 100644 index 0000000..ee7c1a6 --- /dev/null +++ b/bitmaps/p95s.bm @@ -0,0 +1,98 @@ +#define p95s_width 95 +#define p95s_height 95 +static unsigned char p95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q108o.bm b/bitmaps/q108o.bm new file mode 100644 index 0000000..d4a738f --- /dev/null +++ b/bitmaps/q108o.bm @@ -0,0 +1,129 @@ +#define q108o_width 108 +#define q108o_height 108 +static unsigned char q108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x80, 0x03, 0x0e, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x03, 0x80, 0x03, 0x0e, 0x00, 0xfe, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x80, 0x03, 0x0e, 0x00, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x80, 0x03, 0x0e, + 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x0e, 0x00, + 0x07, 0x07, 0x80, 0x03, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x0e, 0x00, 0x8f, 0x07, 0x80, 0x03, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x0e, 0x00, 0xfe, 0x03, 0x80, 0x03, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x0e, 0x00, 0xfc, 0x01, 0x80, 0x03, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x00, 0x70, 0x00, 0x00, 0x07, + 0x07, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x9f, 0x07, 0x00, 0x70, 0x00, + 0x00, 0xcf, 0x07, 0x00, 0x1f, 0x00, 0xf0, 0x1f, 0x00, 0xfe, 0x03, 0x00, + 0xf8, 0x00, 0x00, 0xfe, 0x03, 0xc0, 0x7f, 0x00, 0xf8, 0x3f, 0x00, 0xfc, + 0x01, 0x00, 0xf8, 0x00, 0x00, 0xfc, 0x01, 0xe0, 0xff, 0x00, 0x38, 0x38, + 0x00, 0xe0, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x38, 0x00, 0xe0, 0xe0, 0x00, + 0x1c, 0x70, 0x00, 0xe0, 0x01, 0x00, 0xf8, 0x00, 0x00, 0x3c, 0x00, 0x70, + 0xc0, 0x01, 0x1c, 0x70, 0x00, 0xe0, 0x01, 0x00, 0xdc, 0x01, 0x00, 0x3c, + 0x00, 0x70, 0xc0, 0x01, 0x1c, 0x70, 0x00, 0xe0, 0x03, 0x00, 0xdc, 0x01, + 0x00, 0x3e, 0x00, 0x70, 0xc0, 0x01, 0x1c, 0x70, 0x00, 0xe0, 0x03, 0x00, + 0xdc, 0x01, 0x00, 0x3e, 0x00, 0x70, 0xc0, 0x01, 0x1c, 0x70, 0x00, 0xe0, + 0x03, 0x00, 0xdc, 0x01, 0x00, 0x3e, 0x00, 0x70, 0xc0, 0x01, 0x38, 0x38, + 0x00, 0xe0, 0x07, 0x00, 0xdc, 0x01, 0x00, 0x3f, 0x00, 0xe0, 0xe0, 0x00, + 0xf8, 0x3f, 0x00, 0xe0, 0x07, 0x00, 0x8e, 0x03, 0x00, 0x3f, 0x00, 0xe0, + 0xff, 0x00, 0xf0, 0x1f, 0x00, 0xe0, 0x07, 0x00, 0x8e, 0x03, 0x00, 0x3f, + 0x00, 0xc0, 0x7f, 0x00, 0xc0, 0x1f, 0x00, 0x70, 0x0e, 0x00, 0x8e, 0x03, + 0x80, 0x73, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x1e, 0x00, 0x70, 0x0e, 0x00, + 0x8e, 0x03, 0x80, 0x73, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x3e, 0x00, 0x70, + 0x0e, 0x00, 0x8e, 0x03, 0x80, 0x73, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x7c, + 0x00, 0x70, 0x1c, 0x00, 0x07, 0x07, 0xc0, 0x71, 0x00, 0xf0, 0x01, 0x00, + 0x00, 0x7c, 0x00, 0x70, 0x1c, 0x00, 0x07, 0x07, 0xc0, 0x71, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0xfc, 0x00, 0x70, 0x38, 0x00, 0x07, 0x07, 0xe0, 0x70, + 0x00, 0xf8, 0x01, 0x00, 0x00, 0xfc, 0x00, 0x70, 0x38, 0x00, 0x07, 0x07, + 0xe0, 0x70, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xdc, 0x01, 0x70, 0x38, 0x00, + 0x07, 0x07, 0xe0, 0x70, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xdc, 0x01, 0x70, + 0x70, 0x80, 0x03, 0x0e, 0x70, 0x70, 0x00, 0xdc, 0x01, 0x00, 0x00, 0xb8, + 0x03, 0x70, 0x70, 0x80, 0x03, 0x0e, 0x70, 0x70, 0x00, 0xee, 0x00, 0x00, + 0x00, 0xb8, 0x07, 0x70, 0x70, 0x80, 0x03, 0x0e, 0x70, 0x70, 0x00, 0xef, + 0x00, 0x00, 0x00, 0x38, 0x07, 0x70, 0xe0, 0x80, 0x03, 0x0e, 0x38, 0x70, + 0x00, 0xe7, 0x00, 0x00, 0x00, 0x38, 0x0e, 0x70, 0xe0, 0xc0, 0x01, 0x1c, + 0x38, 0x70, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x38, 0x0e, 0x70, 0xe0, 0xc0, + 0x01, 0x1c, 0x38, 0x70, 0x80, 0xe3, 0x00, 0x00, 0x00, 0x70, 0x1c, 0x70, + 0xc0, 0xc1, 0x01, 0x1c, 0x1c, 0x70, 0xc0, 0x71, 0x00, 0x00, 0x00, 0x70, + 0x1c, 0x70, 0xc0, 0xc1, 0x01, 0x1c, 0x1c, 0x70, 0xc0, 0x71, 0x00, 0x00, + 0x00, 0x70, 0x38, 0x70, 0xc0, 0xc1, 0x01, 0x1c, 0x1c, 0x70, 0xe0, 0x70, + 0x00, 0x00, 0x00, 0x70, 0x38, 0x70, 0x80, 0xe3, 0x00, 0x38, 0x0e, 0x70, + 0xe0, 0x70, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x80, 0xe3, 0x00, 0x38, + 0x0e, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x70, 0x00, 0xe7, + 0x00, 0x38, 0x07, 0x70, 0x78, 0x70, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x70, + 0x00, 0xe7, 0x00, 0x38, 0x07, 0x70, 0x38, 0x38, 0x00, 0x00, 0x00, 0xe0, + 0xc0, 0x39, 0x00, 0xe7, 0x00, 0x38, 0x07, 0xe0, 0x1c, 0x38, 0x00, 0x00, + 0x00, 0xe0, 0xc0, 0x39, 0x00, 0x7e, 0x00, 0xf0, 0x03, 0xe0, 0x1c, 0x38, + 0x00, 0x00, 0x00, 0xe0, 0x80, 0x3b, 0x00, 0x7e, 0x00, 0xf0, 0x03, 0xe0, + 0x0e, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x80, 0x3b, 0x00, 0x7e, 0x00, 0xf0, + 0x03, 0xe0, 0x0e, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x3f, 0x00, 0x7c, + 0x70, 0xf0, 0x01, 0xe0, 0x07, 0x38, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x3f, + 0x18, 0x7c, 0xf8, 0xf0, 0xc1, 0xe0, 0x07, 0x1c, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x3e, 0x7c, 0x3c, 0xff, 0xe7, 0xf1, 0xe1, 0x03, 0x1c, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x3c, 0xfe, 0xff, 0xdf, 0xff, 0xff, 0xe3, 0x01, 0x1c, + 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xfc, 0xef, 0xff, 0x07, 0xff, 0xbf, 0xff, + 0x39, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0xf1, 0xff, 0x87, 0xff, 0x00, 0xf8, + 0x0f, 0xff, 0x7f, 0x1c, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x03, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x00, 0x00, 0xfc, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xfe, 0xff, 0xff, + 0x03, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x01, 0x00, 0x00, 0xfc, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0xf8, 0xff, 0xff, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q108s.bm b/bitmaps/q108s.bm new file mode 100644 index 0000000..ff5eb02 --- /dev/null +++ b/bitmaps/q108s.bm @@ -0,0 +1,129 @@ +#define q108s_width 108 +#define q108s_height 108 +static unsigned char q108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x03, 0x80, 0xff, 0x0f, 0x00, 0xfe, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x80, 0xff, 0x0f, 0x00, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x80, 0xff, 0x0f, + 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x80, + 0xff, 0x0f, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0x0f, 0x00, 0xff, 0x07, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0x0f, 0x00, 0xff, 0x07, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0xfe, 0x03, 0x80, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, 0xf8, 0x00, 0x80, 0xff, + 0x07, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0xff, 0x07, 0x00, 0xf8, 0x00, + 0x00, 0xff, 0x07, 0x00, 0x1f, 0x00, 0xf0, 0x1f, 0x00, 0xfe, 0x07, 0x00, + 0xf8, 0x00, 0x00, 0xff, 0x03, 0xc0, 0x7f, 0x00, 0xf8, 0x3f, 0x00, 0xfc, + 0x03, 0x00, 0xf8, 0x00, 0x00, 0xfe, 0x01, 0xe0, 0xff, 0x00, 0xf8, 0x3f, + 0x00, 0xf0, 0x01, 0x00, 0xf8, 0x00, 0x00, 0x7c, 0x00, 0xe0, 0xff, 0x00, + 0xfc, 0x7f, 0x00, 0xe0, 0x01, 0x00, 0xf8, 0x00, 0x00, 0x3c, 0x00, 0xf0, + 0xff, 0x01, 0xfc, 0x7f, 0x00, 0xe0, 0x01, 0x00, 0xfc, 0x01, 0x00, 0x3c, + 0x00, 0xf0, 0xff, 0x01, 0xfc, 0x7f, 0x00, 0xe0, 0x03, 0x00, 0xfc, 0x01, + 0x00, 0x3e, 0x00, 0xf0, 0xff, 0x01, 0xfc, 0x7f, 0x00, 0xe0, 0x03, 0x00, + 0xfc, 0x01, 0x00, 0x3e, 0x00, 0xf0, 0xff, 0x01, 0xfc, 0x7f, 0x00, 0xe0, + 0x03, 0x00, 0xfc, 0x01, 0x00, 0x3e, 0x00, 0xf0, 0xff, 0x01, 0xf8, 0x3f, + 0x00, 0xf0, 0x07, 0x00, 0xfc, 0x01, 0x00, 0x7f, 0x00, 0xe0, 0xff, 0x00, + 0xf8, 0x3f, 0x00, 0xf0, 0x07, 0x00, 0xfe, 0x03, 0x00, 0x7f, 0x00, 0xe0, + 0xff, 0x00, 0xf0, 0x1f, 0x00, 0xf0, 0x07, 0x00, 0xfe, 0x03, 0x00, 0x7f, + 0x00, 0xc0, 0x7f, 0x00, 0xc0, 0x1f, 0x00, 0xf0, 0x0f, 0x00, 0xfe, 0x03, + 0x80, 0x7f, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x3e, 0x00, 0xf0, 0x0f, 0x00, + 0xfe, 0x03, 0x80, 0x7f, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x3e, 0x00, 0xf0, + 0x1f, 0x00, 0xff, 0x07, 0xc0, 0x7f, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x7e, + 0x00, 0xf0, 0x1f, 0x00, 0xff, 0x07, 0xc0, 0x7f, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x7c, 0x00, 0xf0, 0x1f, 0x00, 0xff, 0x07, 0xc0, 0x7f, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0xfc, 0x00, 0xf0, 0x3f, 0x00, 0xff, 0x07, 0xe0, 0x7f, + 0x00, 0xf8, 0x01, 0x00, 0x00, 0xfc, 0x00, 0xf0, 0x3f, 0x00, 0xff, 0x07, + 0xe0, 0x7f, 0x00, 0xf8, 0x01, 0x00, 0x00, 0xfc, 0x01, 0xf0, 0x3f, 0x80, + 0xff, 0x0f, 0xe0, 0x7f, 0x00, 0xfc, 0x01, 0x00, 0x00, 0xfc, 0x03, 0xf0, + 0x7f, 0x80, 0xff, 0x0f, 0xf0, 0x7f, 0x00, 0xfe, 0x01, 0x00, 0x00, 0xf8, + 0x03, 0xf0, 0x7f, 0x80, 0xff, 0x0f, 0xf0, 0x7f, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0xf8, 0x07, 0xf0, 0x7f, 0x80, 0xff, 0x0f, 0xf0, 0x7f, 0x00, 0xff, + 0x00, 0x00, 0x00, 0xf8, 0x07, 0xf0, 0xff, 0x80, 0xff, 0x0f, 0xf8, 0x7f, + 0x00, 0xff, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xf0, 0xff, 0xc0, 0xff, 0x1f, + 0xf8, 0x7f, 0x80, 0xff, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xf0, 0xff, 0xc1, + 0xff, 0x1f, 0xfc, 0x7f, 0x80, 0xff, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0xf0, + 0xff, 0xc1, 0xff, 0x1f, 0xfc, 0x7f, 0xc0, 0xff, 0x00, 0x00, 0x00, 0xf0, + 0x1f, 0xf0, 0xff, 0xc1, 0xff, 0x1f, 0xfc, 0x7f, 0xc0, 0x7f, 0x00, 0x00, + 0x00, 0xf0, 0x3f, 0xf0, 0xff, 0xe3, 0xff, 0x3f, 0xfe, 0x7f, 0xe0, 0x7f, + 0x00, 0x00, 0x00, 0xf0, 0x7f, 0xf0, 0xff, 0xe3, 0xff, 0x3f, 0xfe, 0x7f, + 0xf0, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0xf8, 0xff, 0xe3, 0xff, 0x3f, + 0xfe, 0xff, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xf8, 0xff, 0xe7, + 0xff, 0x3f, 0xff, 0xff, 0xf8, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xf8, + 0xff, 0xe7, 0xff, 0x3f, 0xff, 0xff, 0xf8, 0x3f, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xf9, 0xff, 0xf7, 0xff, 0x7f, 0xff, 0xff, 0xfc, 0x3f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xfe, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x83, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x60, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x20, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x30, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q116o.bm b/bitmaps/q116o.bm new file mode 100644 index 0000000..f64757d --- /dev/null +++ b/bitmaps/q116o.bm @@ -0,0 +1,148 @@ +#define q116o_width 116 +#define q116o_height 116 +static unsigned char q116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x70, 0x70, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, + 0x38, 0xe0, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x3f, 0x00, 0x38, 0xe0, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x38, 0x00, 0x38, 0xe0, 0x00, 0xe0, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x70, 0x00, 0x38, 0xe0, 0x00, + 0x70, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x00, + 0x38, 0xe0, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x70, 0x00, 0x70, 0x70, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x70, 0x00, 0xf0, 0x7f, 0x00, 0x70, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x70, 0x00, 0xe0, 0x3f, 0x00, + 0x70, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x38, 0x38, 0x00, + 0x80, 0x0f, 0x00, 0xe0, 0xe0, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x7f, 0x00, + 0xf8, 0x3e, 0x00, 0x00, 0x07, 0x00, 0xe0, 0xfb, 0x00, 0xf0, 0x0f, 0x00, + 0xc0, 0xff, 0x00, 0xf0, 0x1f, 0x00, 0x80, 0x0f, 0x00, 0xc0, 0x7f, 0x00, + 0xf8, 0x1f, 0x00, 0xe0, 0xe1, 0x00, 0xe0, 0x0f, 0x00, 0x80, 0x0f, 0x00, + 0x80, 0x3f, 0x00, 0x38, 0x3c, 0x00, 0xe0, 0xc0, 0x01, 0x00, 0x0f, 0x00, + 0x80, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x1c, 0x38, 0x00, 0x70, 0xc0, 0x01, + 0x00, 0x0f, 0x00, 0x80, 0x0f, 0x00, 0x80, 0x07, 0x00, 0x1c, 0x70, 0x00, + 0x70, 0xc0, 0x01, 0x00, 0x0f, 0x00, 0xc0, 0x1d, 0x00, 0x80, 0x07, 0x00, + 0x1c, 0x70, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x1f, 0x00, 0xc0, 0x1d, 0x00, + 0xc0, 0x07, 0x00, 0x1c, 0x70, 0x00, 0x70, 0xc0, 0x01, 0x00, 0x1f, 0x00, + 0xc0, 0x1d, 0x00, 0xc0, 0x07, 0x00, 0x1c, 0x70, 0x00, 0xe0, 0xe0, 0x00, + 0x00, 0x1f, 0x00, 0xc0, 0x1d, 0x00, 0xc0, 0x07, 0x00, 0x38, 0x38, 0x00, + 0xe0, 0xf1, 0x00, 0x00, 0x3f, 0x00, 0xc0, 0x1d, 0x00, 0xe0, 0x07, 0x00, + 0x78, 0x3c, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0x38, 0x00, + 0xe0, 0x07, 0x00, 0xf0, 0x1f, 0x00, 0x80, 0x7f, 0x00, 0x00, 0x3f, 0x00, + 0xe0, 0x38, 0x00, 0xe0, 0x07, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x7e, 0x00, + 0x00, 0x77, 0x00, 0xe0, 0x38, 0x00, 0x70, 0x07, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0xf8, 0x00, 0x80, 0x73, 0x00, 0xe0, 0x38, 0x00, 0x70, 0x0e, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x80, 0x73, 0x00, 0x70, 0x70, 0x00, + 0x70, 0x0e, 0x00, 0x78, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0xe3, 0x00, + 0x70, 0x70, 0x00, 0x38, 0x0e, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x80, 0xe3, 0x00, 0x70, 0x70, 0x00, 0x38, 0x0e, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0xf0, 0x03, 0x80, 0xe3, 0x00, 0x70, 0x70, 0x00, 0x38, 0x0e, 0x00, + 0x7e, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x80, 0xc3, 0x01, 0x70, 0x70, 0x00, + 0x1c, 0x0e, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x70, 0x07, 0x80, 0xc3, 0x01, + 0x38, 0xe0, 0x00, 0x1c, 0x0e, 0x00, 0x77, 0x00, 0x00, 0x00, 0xe0, 0x0f, + 0x80, 0xc3, 0x01, 0x38, 0xe0, 0x00, 0x1c, 0x0e, 0x80, 0x3f, 0x00, 0x00, + 0x00, 0xe0, 0x0e, 0x80, 0x83, 0x03, 0x38, 0xe0, 0x00, 0x0e, 0x0e, 0x80, + 0x3b, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x80, 0x83, 0x03, 0x38, 0xe0, 0x00, + 0x0e, 0x0e, 0xc0, 0x39, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x80, 0x83, 0x03, + 0x1c, 0xc0, 0x01, 0x0e, 0x0e, 0xc0, 0x39, 0x00, 0x00, 0x00, 0xe0, 0x38, + 0x80, 0x03, 0x07, 0x1c, 0xc0, 0x01, 0x07, 0x0e, 0xe0, 0x38, 0x00, 0x00, + 0x00, 0xe0, 0x38, 0x80, 0x03, 0x07, 0x1c, 0xc0, 0x01, 0x07, 0x0e, 0xe0, + 0x38, 0x00, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x03, 0x07, 0x1c, 0xc0, 0x01, + 0x07, 0x0e, 0x70, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0x71, 0x80, 0x03, 0x0e, + 0x1c, 0xc0, 0x81, 0x03, 0x0e, 0x70, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0xe1, + 0x80, 0x03, 0x0e, 0x0e, 0x80, 0x83, 0x03, 0x0e, 0x38, 0x1c, 0x00, 0x00, + 0x00, 0xc0, 0xe1, 0x80, 0x03, 0x0e, 0x0e, 0x80, 0x83, 0x03, 0x0e, 0x38, + 0x1c, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x81, 0x03, 0x1c, 0x0e, 0x80, 0xc3, + 0x01, 0x0e, 0x1c, 0x1c, 0x00, 0x00, 0x00, 0xc0, 0xc1, 0x83, 0x03, 0x1c, + 0x0e, 0x80, 0xc3, 0x01, 0x0e, 0x1e, 0x1c, 0x00, 0x00, 0x00, 0x80, 0x83, + 0x83, 0x03, 0x1c, 0x07, 0x00, 0xc7, 0x01, 0x0e, 0x0e, 0x0e, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x87, 0x03, 0x38, 0x07, 0x00, 0xe7, 0x00, 0x0e, 0x07, + 0x0e, 0x00, 0x00, 0x00, 0x80, 0x03, 0xc7, 0x01, 0x38, 0x07, 0x00, 0xe7, + 0x00, 0x1c, 0x07, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x03, 0xce, 0x01, 0x38, + 0x07, 0x00, 0xe7, 0x00, 0x9c, 0x03, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x03, + 0xce, 0x01, 0xf0, 0x03, 0x00, 0x7e, 0x00, 0x9c, 0x03, 0x0e, 0x00, 0x00, + 0x00, 0x80, 0x03, 0xdc, 0x01, 0xf0, 0x03, 0x00, 0x7e, 0x00, 0xdc, 0x01, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x07, 0xdc, 0x01, 0xf0, 0x03, 0x00, 0x7e, + 0x00, 0xdc, 0x01, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xf8, 0x01, 0xe0, + 0x03, 0x07, 0x3e, 0x00, 0xfc, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0xf8, 0xc1, 0xe0, 0xc3, 0x1f, 0x3e, 0x18, 0xfc, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x07, 0xf0, 0xe1, 0xe3, 0xf9, 0xff, 0x3c, 0x3e, 0x7c, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0xe0, 0xf1, 0xff, 0xff, 0xf8, 0xff, + 0x7f, 0x3c, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x87, 0xe7, 0x7f, 0xff, + 0x3f, 0xe0, 0xff, 0xf7, 0x3f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0xce, + 0xff, 0x3f, 0xfc, 0x07, 0x00, 0xff, 0xe1, 0xff, 0x9f, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0xf0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x80, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xe0, + 0xff, 0xff, 0x3f, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xef, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x1f, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xc0, 0xff, 0xff, 0x1f, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q116s.bm b/bitmaps/q116s.bm new file mode 100644 index 0000000..4563f0f --- /dev/null +++ b/bitmaps/q116s.bm @@ -0,0 +1,148 @@ +#define q116s_width 116 +#define q116s_height 116 +static unsigned char q116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0xf0, 0x7f, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xf0, 0x7f, 0x00, + 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, 0x00, + 0xf8, 0xff, 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x7f, 0x00, 0xf8, 0xff, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x7f, 0x00, 0xf8, 0xff, 0x00, 0xf0, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x00, 0xf8, 0xff, 0x00, + 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x00, + 0xf0, 0x7f, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0xf0, 0x7f, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x00, 0xe0, 0x3f, 0x00, 0xf8, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0xf8, 0x7f, 0x00, 0xc0, 0x1f, 0x00, + 0xf0, 0xff, 0x00, 0xc0, 0x03, 0x00, 0x80, 0x7f, 0x00, 0xf8, 0x7f, 0x00, + 0x80, 0x0f, 0x00, 0xf0, 0xff, 0x00, 0xf0, 0x0f, 0x00, 0xc0, 0xff, 0x00, + 0xf0, 0x3f, 0x00, 0x80, 0x0f, 0x00, 0xe0, 0x7f, 0x00, 0xf8, 0x1f, 0x00, + 0xe0, 0xff, 0x01, 0xe0, 0x1f, 0x00, 0x80, 0x0f, 0x00, 0xc0, 0x3f, 0x00, + 0xfc, 0x3f, 0x00, 0xe0, 0xff, 0x01, 0x80, 0x0f, 0x00, 0x80, 0x0f, 0x00, + 0x80, 0x0f, 0x00, 0xfc, 0x3f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x0f, 0x00, + 0x80, 0x0f, 0x00, 0x80, 0x07, 0x00, 0xfe, 0x7f, 0x00, 0xf0, 0xff, 0x03, + 0x00, 0x0f, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0x07, 0x00, 0xfe, 0x7f, 0x00, + 0xf0, 0xff, 0x03, 0x00, 0x1f, 0x00, 0xc0, 0x1f, 0x00, 0xc0, 0x07, 0x00, + 0xfe, 0x7f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0x1f, 0x00, 0xc0, 0x1f, 0x00, + 0xc0, 0x07, 0x00, 0xfe, 0x7f, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x1f, 0x00, + 0xc0, 0x1f, 0x00, 0xc0, 0x07, 0x00, 0xfc, 0x3f, 0x00, 0xe0, 0xff, 0x01, + 0x00, 0x3f, 0x00, 0xe0, 0x3f, 0x00, 0xe0, 0x07, 0x00, 0xfc, 0x3f, 0x00, + 0xc0, 0xff, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0x3f, 0x00, 0xe0, 0x0f, 0x00, + 0xf8, 0x1f, 0x00, 0x80, 0x7f, 0x00, 0x80, 0x3f, 0x00, 0xe0, 0x3f, 0x00, + 0xe0, 0x0f, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x7e, 0x00, 0x80, 0x7f, 0x00, + 0xe0, 0x3f, 0x00, 0xf0, 0x0f, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xf8, 0x00, + 0x80, 0x7f, 0x00, 0xe0, 0x3f, 0x00, 0xf0, 0x0f, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x80, 0x7f, 0x00, 0xf0, 0x7f, 0x00, 0xf0, 0x0f, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0xff, 0x00, 0xf0, 0x7f, 0x00, + 0xf8, 0x0f, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x80, 0xff, 0x00, + 0xf0, 0x7f, 0x00, 0xf8, 0x0f, 0x00, 0x7c, 0x00, 0x00, 0x00, 0xf0, 0x03, + 0x80, 0xff, 0x00, 0xf0, 0x7f, 0x00, 0xf8, 0x0f, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0xf0, 0x07, 0x80, 0xff, 0x01, 0xf8, 0xff, 0x00, 0xfc, 0x0f, 0x00, + 0x7f, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x80, 0xff, 0x01, 0xf8, 0xff, 0x00, + 0xfc, 0x0f, 0x00, 0x7f, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x80, 0xff, 0x01, + 0xf8, 0xff, 0x00, 0xfc, 0x0f, 0x80, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0x0f, + 0x80, 0xff, 0x03, 0xf8, 0xff, 0x00, 0xfe, 0x0f, 0x80, 0x3f, 0x00, 0x00, + 0x00, 0xe0, 0x1f, 0x80, 0xff, 0x03, 0xf8, 0xff, 0x00, 0xfe, 0x0f, 0xc0, + 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x80, 0xff, 0x03, 0xfc, 0xff, 0x01, + 0xfe, 0x0f, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x80, 0xff, 0x07, + 0xfc, 0xff, 0x01, 0xff, 0x0f, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0x3f, + 0x80, 0xff, 0x07, 0xfc, 0xff, 0x01, 0xff, 0x0f, 0xe0, 0x3f, 0x00, 0x00, + 0x00, 0xe0, 0x7f, 0x80, 0xff, 0x0f, 0xfc, 0xff, 0x81, 0xff, 0x0f, 0xf0, + 0x3f, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0x80, 0xff, 0x0f, 0xfe, 0xff, 0x83, + 0xff, 0x0f, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x80, 0xff, 0x0f, + 0xfe, 0xff, 0x83, 0xff, 0x0f, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x81, 0xff, 0x1f, 0xfe, 0xff, 0xc3, 0xff, 0x0f, 0xfc, 0x1f, 0x00, 0x00, + 0x00, 0xc0, 0xff, 0x81, 0xff, 0x1f, 0xfe, 0xff, 0xc3, 0xff, 0x0f, 0xfc, + 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xc3, 0xff, 0x1f, 0xff, 0xff, 0xc7, + 0xff, 0x1f, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xc3, 0xff, 0x3f, + 0xff, 0xff, 0xe7, 0xff, 0x1f, 0xfe, 0x1f, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xc7, 0xff, 0x3f, 0xff, 0xff, 0xe7, 0xff, 0x1f, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xc7, 0xff, 0x3f, 0xff, 0xff, 0xe7, 0xff, 0x1f, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, 0xff, 0x7f, 0xff, 0xff, 0xf7, + 0xff, 0x9f, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xcf, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x9f, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xc0, + 0xff, 0xff, 0x1f, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x80, 0xff, 0xff, 0x0f, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q129o.bm b/bitmaps/q129o.bm new file mode 100644 index 0000000..00cf5d0 --- /dev/null +++ b/bitmaps/q129o.bm @@ -0,0 +1,186 @@ +#define q129o_width 129 +#define q129o_height 129 +static unsigned char q129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x3e, 0x7c, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, + 0x1f, 0xf8, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x03, 0x00, 0x0f, 0xf0, 0x00, 0xc0, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x0f, 0xf0, + 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xc7, 0x07, 0x00, 0x0f, 0xf0, 0x00, 0xe0, 0xe3, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x81, 0x0f, 0x00, 0x1f, 0xf8, 0x00, 0xf0, + 0x81, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x0f, + 0x00, 0x1e, 0x78, 0x00, 0xf0, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x0f, 0x00, 0x7e, 0x7e, 0x00, 0xf0, 0x00, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x0f, 0x00, 0xfc, + 0x3f, 0x00, 0xf0, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x81, 0x0f, 0x00, 0xf8, 0x1f, 0x00, 0xf0, 0x81, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x81, 0x07, 0x00, 0xf0, 0x0f, 0x00, + 0xe0, 0x81, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0xe0, 0xe7, + 0x07, 0x00, 0xc0, 0x03, 0x00, 0xe0, 0xe7, 0x07, 0x00, 0xfc, 0x00, 0x00, + 0xc0, 0xff, 0x00, 0xc0, 0xff, 0x03, 0x00, 0xe0, 0x07, 0x00, 0xc0, 0xff, + 0x03, 0x00, 0xff, 0x03, 0x00, 0xe0, 0xff, 0x01, 0x80, 0xff, 0x01, 0x00, + 0xe0, 0x07, 0x00, 0x80, 0xff, 0x01, 0x80, 0xff, 0x07, 0x00, 0xf0, 0xff, + 0x03, 0x00, 0xff, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0xff, 0x00, 0xc0, + 0xff, 0x0f, 0x00, 0xf8, 0xe1, 0x03, 0x00, 0xfc, 0x00, 0x00, 0xe0, 0x07, + 0x00, 0x00, 0x3f, 0x00, 0xc0, 0x87, 0x1f, 0x00, 0x78, 0xc0, 0x07, 0x00, + 0xf8, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0xe0, 0x03, 0x1e, + 0x00, 0x78, 0x80, 0x07, 0x00, 0xf8, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, + 0x1f, 0x00, 0xe0, 0x01, 0x1e, 0x00, 0x78, 0x80, 0x07, 0x00, 0xf8, 0x01, + 0x00, 0xf0, 0x0f, 0x00, 0x80, 0x1f, 0x00, 0xe0, 0x01, 0x1e, 0x00, 0x78, + 0x80, 0x07, 0x00, 0xf8, 0x01, 0x00, 0xf0, 0x0f, 0x00, 0x80, 0x1f, 0x00, + 0xe0, 0x01, 0x1e, 0x00, 0x78, 0xc0, 0x07, 0x00, 0xf8, 0x01, 0x00, 0xf0, + 0x0f, 0x00, 0x80, 0x1f, 0x00, 0xe0, 0x03, 0x1e, 0x00, 0xf8, 0xc1, 0x03, + 0x00, 0xf8, 0x03, 0x00, 0xf8, 0x1f, 0x00, 0xc0, 0x1f, 0x00, 0xc0, 0x83, + 0x1f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0xf8, 0x03, 0x00, 0x78, 0x1e, 0x00, + 0xc0, 0x1f, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x01, 0x00, 0xf8, + 0x03, 0x00, 0x78, 0x1e, 0x00, 0xc0, 0x1f, 0x00, 0x80, 0xff, 0x07, 0x00, + 0xc0, 0xff, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x78, 0x1e, 0x00, 0xe0, 0x1f, + 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x00, 0x00, 0xfc, 0x07, 0x00, + 0x78, 0x1e, 0x00, 0xe0, 0x1f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xf8, + 0x01, 0x00, 0xbc, 0x07, 0x00, 0x7c, 0x3e, 0x00, 0xe0, 0x3f, 0x00, 0x80, + 0x1f, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0xbc, 0x0f, 0x00, 0x3c, 0x3c, + 0x00, 0xf0, 0x3d, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x3c, 0x0f, 0x00, 0x3c, 0x3c, 0x00, 0xf0, 0x3c, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0x3c, 0x1f, 0x00, 0x3c, 0x3c, 0x00, 0xf8, + 0x3c, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x3c, 0x1e, + 0x00, 0x3e, 0x7c, 0x00, 0x78, 0x3c, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0xf0, 0x0f, 0x00, 0x3c, 0x1e, 0x00, 0x1e, 0x78, 0x00, 0x78, 0x3c, 0x00, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x3c, 0x3e, 0x00, 0x1e, + 0x78, 0x00, 0x7c, 0x3c, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x1f, + 0x00, 0x3c, 0x3c, 0x00, 0x1e, 0x78, 0x00, 0x3c, 0x3c, 0x00, 0xf8, 0x0f, + 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x3c, 0x3c, 0x00, 0x1e, 0x78, 0x00, + 0x3c, 0x3c, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x3c, + 0x7c, 0x00, 0x1f, 0xf8, 0x00, 0x3e, 0x3c, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0x3d, 0x00, 0x3c, 0x78, 0x00, 0x0f, 0xf0, 0x00, 0x1e, 0x3c, + 0x00, 0xbc, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x7d, 0x00, 0x3c, 0x78, 0x00, + 0x0f, 0xf0, 0x00, 0x1e, 0x3c, 0x00, 0xbe, 0x07, 0x00, 0x00, 0x00, 0xe0, + 0xf9, 0x00, 0x3c, 0xf8, 0x00, 0x0f, 0xf0, 0x00, 0x1f, 0x3c, 0x00, 0x9f, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0xf3, 0x00, 0x3c, 0xf0, 0x00, 0x0f, 0xf0, + 0x00, 0x0f, 0x3c, 0x00, 0xcf, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xf3, 0x01, + 0x3c, 0xf0, 0x80, 0x0f, 0xf0, 0x01, 0x0f, 0x3c, 0x80, 0xcf, 0x03, 0x00, + 0x00, 0x00, 0xc0, 0xe3, 0x01, 0x3c, 0xf0, 0x81, 0x07, 0xe0, 0x81, 0x0f, + 0x3c, 0x80, 0xc7, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xe3, 0x03, 0x3c, 0xe0, + 0x81, 0x07, 0xe0, 0x81, 0x07, 0x3c, 0xc0, 0xc7, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0xc3, 0x07, 0x3c, 0xe0, 0x81, 0x07, 0xe0, 0x81, 0x07, 0x3c, 0xe0, + 0xc3, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x87, 0x07, 0x3c, 0xe0, 0xc3, 0x07, + 0xe0, 0xc3, 0x07, 0x3c, 0xe0, 0xe1, 0x03, 0x00, 0x00, 0x00, 0x80, 0x87, + 0x0f, 0x3c, 0xc0, 0xc3, 0x03, 0xc0, 0xc3, 0x03, 0x3c, 0xf0, 0xe1, 0x01, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x0f, 0x3c, 0xc0, 0xc3, 0x03, 0xc0, 0xc3, + 0x03, 0x3c, 0xf0, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, 0x1f, 0x3c, + 0xc0, 0xc7, 0x03, 0xc0, 0xe3, 0x03, 0x3c, 0xf8, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x80, 0x07, 0x1e, 0x3c, 0x80, 0xc7, 0x03, 0xc0, 0xe3, 0x01, 0x3c, + 0x78, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, 0x3e, 0x3e, 0x80, 0xe7, + 0x03, 0xc0, 0xe7, 0x01, 0x3c, 0x7c, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, + 0x0f, 0x7c, 0x1e, 0x80, 0xef, 0x01, 0x80, 0xf7, 0x01, 0x7c, 0x3e, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x78, 0x1e, 0x00, 0xef, 0x01, 0x80, + 0xf7, 0x00, 0x78, 0x1e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf8, + 0x1e, 0x00, 0xef, 0x01, 0x80, 0xf7, 0x00, 0x78, 0x1f, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x1e, 0x00, 0xff, 0x01, 0x80, 0xff, 0x00, + 0x78, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xf0, 0x1f, 0x00, + 0xfe, 0x01, 0x80, 0x7f, 0x00, 0xf8, 0x0f, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0xe0, 0x1f, 0x00, 0xfe, 0x00, 0x00, 0x7f, 0x00, 0xf8, 0x07, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xc0, 0x1f, 0x00, 0xfe, 0xc0, + 0x03, 0x7f, 0x00, 0xf8, 0x03, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0xc0, 0x1f, 0x3c, 0xfc, 0xf0, 0x0f, 0x3f, 0x3c, 0xf8, 0x03, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x80, 0x1f, 0xff, 0xfc, 0xff, 0xff, 0x3f, + 0xff, 0xf8, 0x01, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x8c, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x31, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xff, 0xff, 0xff, + 0x7f, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0xff, 0xff, 0xe7, 0xff, + 0x1f, 0xf8, 0xff, 0xe7, 0xff, 0xff, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x81, 0xff, 0x01, 0x80, 0xff, 0x01, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x80, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf9, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x9f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q129s.bm b/bitmaps/q129s.bm new file mode 100644 index 0000000..901e1f5 --- /dev/null +++ b/bitmaps/q129s.bm @@ -0,0 +1,186 @@ +#define q129s_width 129 +#define q129s_height 129 +static unsigned char q129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, + 0xfe, 0x7f, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x01, 0x00, 0xff, 0xff, 0x00, 0x80, 0xff, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0x00, 0xff, 0xff, + 0x00, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x07, 0x00, 0xff, 0xff, 0x00, 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x07, 0x00, 0xff, 0xff, 0x00, 0xe0, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, + 0x00, 0xff, 0xff, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0xfe, 0x7f, 0x00, 0xf0, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0xfe, + 0x7f, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0xfc, 0x3f, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0xf0, 0xff, 0x0f, 0x00, 0xf8, 0x1f, 0x00, + 0xf0, 0xff, 0x0f, 0x00, 0xf8, 0x00, 0x00, 0x80, 0x7f, 0x00, 0xe0, 0xff, + 0x07, 0x00, 0xf0, 0x0f, 0x00, 0xe0, 0xff, 0x07, 0x00, 0xfe, 0x01, 0x00, + 0xc0, 0xff, 0x00, 0xe0, 0xff, 0x07, 0x00, 0xe0, 0x07, 0x00, 0xe0, 0xff, + 0x07, 0x00, 0xff, 0x03, 0x00, 0xe0, 0xff, 0x01, 0xc0, 0xff, 0x03, 0x00, + 0xe0, 0x07, 0x00, 0xc0, 0xff, 0x03, 0x80, 0xff, 0x07, 0x00, 0xf0, 0xff, + 0x03, 0x80, 0xff, 0x01, 0x00, 0xe0, 0x07, 0x00, 0x80, 0xff, 0x01, 0xc0, + 0xff, 0x0f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0xff, 0x00, 0x00, 0xf0, 0x0f, + 0x00, 0x00, 0xff, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0xf8, 0xff, 0x07, 0x00, + 0xf8, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x1f, 0x00, 0xe0, 0xff, 0x1f, + 0x00, 0xf8, 0xff, 0x07, 0x00, 0xf8, 0x01, 0x00, 0xf0, 0x0f, 0x00, 0x80, + 0x1f, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0xf8, 0xff, 0x07, 0x00, 0xf8, 0x01, + 0x00, 0xf0, 0x0f, 0x00, 0x80, 0x1f, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0xf8, + 0xff, 0x07, 0x00, 0xf8, 0x01, 0x00, 0xf0, 0x0f, 0x00, 0x80, 0x1f, 0x00, + 0xe0, 0xff, 0x1f, 0x00, 0xf8, 0xff, 0x07, 0x00, 0xf8, 0x03, 0x00, 0xf8, + 0x1f, 0x00, 0xc0, 0x1f, 0x00, 0xe0, 0xff, 0x1f, 0x00, 0xf0, 0xff, 0x03, + 0x00, 0xfc, 0x03, 0x00, 0xf8, 0x1f, 0x00, 0xc0, 0x3f, 0x00, 0xc0, 0xff, + 0x0f, 0x00, 0xf0, 0xff, 0x03, 0x00, 0xfc, 0x03, 0x00, 0xf8, 0x1f, 0x00, + 0xc0, 0x3f, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x01, 0x00, 0xfc, + 0x07, 0x00, 0xf8, 0x1f, 0x00, 0xe0, 0x3f, 0x00, 0x80, 0xff, 0x07, 0x00, + 0xc0, 0xff, 0x00, 0x00, 0xfc, 0x07, 0x00, 0xf8, 0x1f, 0x00, 0xe0, 0x3f, + 0x00, 0x00, 0xff, 0x03, 0x00, 0x80, 0xff, 0x01, 0x00, 0xfc, 0x07, 0x00, + 0xfc, 0x3f, 0x00, 0xe0, 0x3f, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0xfc, + 0x01, 0x00, 0xfc, 0x0f, 0x00, 0xfc, 0x3f, 0x00, 0xf0, 0x3f, 0x00, 0x80, + 0x3f, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0xfc, 0x0f, 0x00, 0xfc, 0x3f, + 0x00, 0xf0, 0x3f, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0xfc, 0x0f, 0x00, 0xfc, 0x3f, 0x00, 0xf0, 0x3f, 0x00, 0xc0, 0x0f, 0x00, + 0x00, 0x00, 0xf0, 0x07, 0x00, 0xfc, 0x1f, 0x00, 0xfe, 0x7f, 0x00, 0xf8, + 0x3f, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0xfc, 0x1f, + 0x00, 0xfe, 0x7f, 0x00, 0xf8, 0x3f, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, + 0xf0, 0x0f, 0x00, 0xfc, 0x1f, 0x00, 0xfe, 0x7f, 0x00, 0xf8, 0x3f, 0x00, + 0xf0, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0xfc, 0x3f, 0x00, 0xfe, + 0x7f, 0x00, 0xfc, 0x3f, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0xf0, 0x1f, + 0x00, 0xfc, 0x3f, 0x00, 0xfe, 0x7f, 0x00, 0xfc, 0x3f, 0x00, 0xf8, 0x0f, + 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xfc, 0x3f, 0x00, 0xff, 0xff, 0x00, + 0xfc, 0x3f, 0x00, 0xfc, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0xfc, + 0x7f, 0x00, 0xff, 0xff, 0x00, 0xfe, 0x3f, 0x00, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0xe0, 0x7f, 0x00, 0xfc, 0x7f, 0x00, 0xff, 0xff, 0x00, 0xfe, 0x3f, + 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x7f, 0x00, 0xfc, 0x7f, 0x00, + 0xff, 0xff, 0x00, 0xfe, 0x3f, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0x00, 0xfc, 0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0x3f, 0x00, 0xff, + 0x07, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x01, 0xfc, 0xff, 0x80, 0xff, 0xff, + 0x01, 0xff, 0x3f, 0x80, 0xff, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, + 0xfc, 0xff, 0x80, 0xff, 0xff, 0x01, 0xff, 0x3f, 0x80, 0xff, 0x03, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x03, 0xfc, 0xff, 0x81, 0xff, 0xff, 0x81, 0xff, + 0x3f, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x03, 0xfc, 0xff, + 0x81, 0xff, 0xff, 0x81, 0xff, 0x3f, 0xc0, 0xff, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0x07, 0xfc, 0xff, 0xc1, 0xff, 0xff, 0x83, 0xff, 0x3f, 0xe0, + 0xff, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x07, 0xfc, 0xff, 0xc3, 0xff, + 0xff, 0xc3, 0xff, 0x3f, 0xe0, 0xff, 0x03, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0x0f, 0xfe, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0x7f, 0xf0, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0xfe, 0xff, 0xc3, 0xff, 0xff, 0xc3, + 0xff, 0x7f, 0xf8, 0xff, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0x1f, 0xfe, + 0xff, 0xc7, 0xff, 0xff, 0xe3, 0xff, 0x7f, 0xf8, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0xfe, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0x7f, + 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0x3f, 0xfe, 0xff, 0xe7, + 0xff, 0xff, 0xe7, 0xff, 0x7f, 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x7f, 0xfe, 0xff, 0xef, 0xff, 0xff, 0xf7, 0xff, 0x7f, 0xfe, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x80, 0xff, 0x7f, 0xfe, 0xff, 0xef, 0xff, 0xff, + 0xf7, 0xff, 0x7f, 0xfe, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x80, 0xff, 0xff, + 0x01, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x01, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xc7, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q21o.bm b/bitmaps/q21o.bm new file mode 100644 index 0000000..336f0b5 --- /dev/null +++ b/bitmaps/q21o.bm @@ -0,0 +1,9 @@ +#define q21o_width 21 +#define q21o_height 21 +static unsigned char q21o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xe0, 0xea, 0x00, 0xa0, 0xaa, 0x00, + 0xae, 0xa4, 0x0e, 0x4a, 0x4a, 0x0a, 0xaa, 0xaa, 0x0a, 0xaa, 0xaa, 0x0a, + 0xaa, 0xaa, 0x0a, 0x14, 0x11, 0x05, 0x04, 0x00, 0x04, 0x08, 0x00, 0x02, + 0x08, 0x00, 0x02, 0x10, 0x00, 0x01, 0xd0, 0x7f, 0x01, 0x10, 0x00, 0x01, + 0xd0, 0x7f, 0x01, 0x10, 0x00, 0x01, 0x30, 0x80, 0x01, 0xe0, 0xff, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/q21s.bm b/bitmaps/q21s.bm new file mode 100644 index 0000000..e063066 --- /dev/null +++ b/bitmaps/q21s.bm @@ -0,0 +1,9 @@ +#define q21s_width 21 +#define q21s_height 21 +static unsigned char q21s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0xe0, 0xee, 0x00, 0xe0, 0xee, 0x00, + 0xce, 0x64, 0x0e, 0x4e, 0x4e, 0x0e, 0xce, 0x6e, 0x0e, 0xec, 0xee, 0x06, + 0xec, 0xee, 0x06, 0xf8, 0xff, 0x03, 0xf8, 0xff, 0x03, 0xf8, 0xff, 0x03, + 0xf8, 0xff, 0x03, 0x30, 0x80, 0x01, 0x90, 0x3f, 0x01, 0x70, 0xc0, 0x01, + 0xa0, 0xbf, 0x00, 0xf0, 0xff, 0x01, 0xf0, 0xff, 0x01, 0xe0, 0xff, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/q25o.bm b/bitmaps/q25o.bm new file mode 100644 index 0000000..750d07f --- /dev/null +++ b/bitmaps/q25o.bm @@ -0,0 +1,12 @@ +#define q25o_width 25 +#define q25o_height 25 +static unsigned char q25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x10, 0x02, 0x00, + 0x40, 0x29, 0x05, 0x00, 0xc6, 0x39, 0xc7, 0x00, 0x89, 0x10, 0x22, 0x01, + 0x8d, 0x11, 0x63, 0x01, 0x8e, 0x29, 0xe3, 0x00, 0x8c, 0x29, 0x63, 0x00, + 0x94, 0xaa, 0x52, 0x00, 0xa8, 0xaa, 0x2a, 0x00, 0xa8, 0xaa, 0x2a, 0x00, + 0xc8, 0x44, 0x26, 0x00, 0x90, 0xff, 0x13, 0x00, 0xf0, 0x04, 0x1c, 0x00, + 0x10, 0x00, 0x10, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x20, 0x00, 0x08, 0x00, + 0xc0, 0xff, 0x07, 0x00, 0x40, 0x00, 0x04, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x20, 0x00, 0x08, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q25s.bm b/bitmaps/q25s.bm new file mode 100644 index 0000000..0cecaaa --- /dev/null +++ b/bitmaps/q25s.bm @@ -0,0 +1,12 @@ +#define q25s_width 25 +#define q25s_height 25 +static unsigned char q25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x80, 0x38, 0x02, 0x00, + 0xc0, 0x39, 0x07, 0x00, 0xc6, 0x11, 0xc7, 0x00, 0x8f, 0x10, 0xe2, 0x01, + 0x8f, 0x39, 0xe3, 0x01, 0x8e, 0x39, 0xe3, 0x00, 0x8c, 0x39, 0x63, 0x00, + 0x9c, 0xbb, 0x73, 0x00, 0xb8, 0xbb, 0x3b, 0x00, 0xb8, 0xff, 0x3b, 0x00, + 0xf8, 0xff, 0x3f, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0xf0, 0xff, 0x1f, 0x00, + 0xf0, 0xff, 0x1f, 0x00, 0x60, 0x00, 0x0c, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x40, 0x00, 0x04, 0x00, 0x60, 0xff, 0x0d, 0x00, 0x60, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q29o.bm b/bitmaps/q29o.bm new file mode 100644 index 0000000..e1f80b4 --- /dev/null +++ b/bitmaps/q29o.bm @@ -0,0 +1,13 @@ +#define q29o_width 29 +#define q29o_height 29 +static unsigned char q29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0xa1, 0x10, 0x00, 0x80, 0xa2, 0x28, 0x00, 0x8c, 0x42, 0x28, 0x06, + 0x12, 0x41, 0x10, 0x09, 0x12, 0x43, 0x18, 0x09, 0x0c, 0xa3, 0x18, 0x06, + 0x18, 0xa3, 0x18, 0x03, 0x18, 0xa5, 0x14, 0x03, 0xa8, 0xa4, 0xa4, 0x02, + 0xa8, 0xa8, 0xa2, 0x02, 0xc8, 0x18, 0x63, 0x02, 0xd0, 0x18, 0x63, 0x01, + 0x90, 0x57, 0x3d, 0x01, 0xf0, 0xb8, 0xc3, 0x01, 0x10, 0x00, 0x00, 0x01, + 0x20, 0xfc, 0x87, 0x00, 0xc0, 0x03, 0x78, 0x00, 0x40, 0x00, 0x40, 0x00, + 0x80, 0xfe, 0x2f, 0x00, 0x80, 0x01, 0x30, 0x00, 0x40, 0xff, 0x5f, 0x00, + 0xc0, 0x00, 0x60, 0x00, 0xc0, 0x00, 0x60, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q29s.bm b/bitmaps/q29s.bm new file mode 100644 index 0000000..16f285b --- /dev/null +++ b/bitmaps/q29s.bm @@ -0,0 +1,13 @@ +#define q29s_width 29 +#define q29s_height 29 +static unsigned char q29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x80, 0xe1, 0x30, 0x00, 0xc0, 0xf3, 0x79, 0x00, 0xcc, 0xe3, 0x78, 0x06, + 0x9e, 0x41, 0x30, 0x0f, 0x1e, 0xe3, 0x18, 0x0f, 0x0c, 0xe3, 0x18, 0x06, + 0x18, 0xe3, 0x18, 0x03, 0x98, 0xe7, 0x1c, 0x03, 0xb8, 0xe7, 0xbc, 0x03, + 0xb8, 0xef, 0xbe, 0x03, 0xf8, 0xff, 0xff, 0x03, 0xf0, 0xff, 0xff, 0x01, + 0xf0, 0xff, 0xff, 0x01, 0xf0, 0xff, 0xff, 0x01, 0xf0, 0xff, 0xff, 0x01, + 0xe0, 0x03, 0xf8, 0x00, 0x60, 0xfc, 0xc7, 0x00, 0xc0, 0xff, 0x7f, 0x00, + 0xc0, 0x01, 0x70, 0x00, 0x80, 0xfe, 0x2f, 0x00, 0x40, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q33o.bm b/bitmaps/q33o.bm new file mode 100644 index 0000000..08f34e7 --- /dev/null +++ b/bitmaps/q33o.bm @@ -0,0 +1,38 @@ +#define q33o_width 33 +#define q33o_height 33 +#define q33o_xoff 1 +#define q33o_yoff 2 +static unsigned char q33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x80, 0x02, 0x00, 0x00, + 0x00, 0x83, 0x82, 0x01, 0x00, + 0x80, 0x04, 0x41, 0x02, 0x00, + 0x8c, 0x05, 0x41, 0x63, 0x00, + 0x12, 0x02, 0x81, 0x90, 0x00, + 0x12, 0x82, 0x82, 0x90, 0x00, + 0x0c, 0x86, 0xc2, 0x60, 0x00, + 0x18, 0x86, 0xc2, 0x30, 0x00, + 0x18, 0x8a, 0xa2, 0x30, 0x00, + 0x30, 0x4a, 0xa4, 0x18, 0x00, + 0x50, 0x4a, 0xa4, 0x14, 0x00, + 0x50, 0x52, 0x94, 0x14, 0x00, + 0x90, 0x52, 0x94, 0x12, 0x00, + 0x90, 0x32, 0x98, 0x12, 0x00, + 0x20, 0xeb, 0xaf, 0x09, 0x00, + 0xa0, 0x36, 0xd0, 0x0a, 0x00, + 0x60, 0x03, 0x00, 0x0d, 0x00, + 0x20, 0x00, 0x00, 0x08, 0x00, + 0x40, 0xfc, 0x7f, 0x04, 0x00, + 0xc0, 0x03, 0x80, 0x07, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, + 0x80, 0xfc, 0x7f, 0x02, 0x00, + 0x00, 0x03, 0x80, 0x01, 0x00, + 0x80, 0xfc, 0x7f, 0x02, 0x00, + 0xc0, 0x03, 0x80, 0x07, 0x00, + 0x40, 0x00, 0x00, 0x04, 0x00, + 0xc0, 0x03, 0x80, 0x07, 0x00, + 0x00, 0xfc, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q33s.bm b/bitmaps/q33s.bm new file mode 100644 index 0000000..e991203 --- /dev/null +++ b/bitmaps/q33s.bm @@ -0,0 +1,39 @@ + +#define q33s_width 33 +#define q33s_height 33 +#define q33s_xoff 1 +#define q33s_yoff 2 +static unsigned char q33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0xc3, 0x87, 0x01, 0x00, + 0x80, 0x87, 0xc3, 0x03, 0x00, + 0x8c, 0x07, 0xc1, 0x63, 0x00, + 0x1e, 0x83, 0x83, 0xf1, 0x00, + 0x1e, 0x82, 0x83, 0xf0, 0x00, + 0x0c, 0x86, 0xc3, 0x60, 0x00, + 0x18, 0x86, 0xc3, 0x30, 0x00, + 0x18, 0x8e, 0xe3, 0x30, 0x00, + 0x30, 0xce, 0xe7, 0x18, 0x00, + 0x70, 0xce, 0xe7, 0x1c, 0x00, + 0x70, 0xde, 0xf7, 0x1c, 0x00, + 0xf0, 0xde, 0xf7, 0x1e, 0x00, + 0xf0, 0xfe, 0xff, 0x1e, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0xc0, 0x03, 0x80, 0x07, 0x00, + 0xc0, 0xfc, 0x7f, 0x06, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0x80, 0x03, 0x80, 0x03, 0x00, + 0x00, 0xf9, 0x3f, 0x01, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0x03, 0x00, + 0xc0, 0xff, 0xff, 0x07, 0x00, + 0xc0, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q37o.bm b/bitmaps/q37o.bm new file mode 100644 index 0000000..53e6353 --- /dev/null +++ b/bitmaps/q37o.bm @@ -0,0 +1,19 @@ +#define q37o_width 37 +#define q37o_height 37 +static unsigned char q37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x11, 0x07, 0x00, 0x00, 0x22, 0x91, 0x08, + 0x00, 0x00, 0x22, 0x8e, 0x08, 0x00, 0x18, 0x1c, 0x04, 0x07, 0x03, 0x24, + 0x08, 0x04, 0x82, 0x04, 0x24, 0x08, 0x0a, 0x82, 0x04, 0x34, 0x18, 0x0a, + 0x83, 0x05, 0x18, 0x14, 0x0a, 0x03, 0x03, 0x30, 0x14, 0x0a, 0x85, 0x01, + 0x30, 0x24, 0x8a, 0x84, 0x01, 0x50, 0x24, 0x91, 0x44, 0x01, 0x50, 0x24, + 0x91, 0x44, 0x01, 0xa0, 0x24, 0x91, 0xa4, 0x00, 0xa0, 0x44, 0x51, 0xa4, + 0x00, 0xa0, 0x42, 0x51, 0xa4, 0x00, 0x20, 0xc3, 0x60, 0x98, 0x00, 0x20, + 0x83, 0x20, 0x98, 0x00, 0xa0, 0xbe, 0xae, 0xaf, 0x00, 0x40, 0xc3, 0x71, + 0xd0, 0x00, 0x40, 0x00, 0x00, 0x40, 0x00, 0x80, 0x00, 0x00, 0x20, 0x00, + 0x80, 0xfc, 0xff, 0x27, 0x00, 0x00, 0x03, 0x00, 0x18, 0x00, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0xf2, 0xff, 0x09, 0x00, 0x00, 0x0e, 0x00, 0x0e, + 0x00, 0x00, 0xe1, 0xff, 0x10, 0x00, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x80, + 0x00, 0x00, 0x20, 0x00, 0x00, 0x0f, 0x00, 0x1e, 0x00, 0x00, 0xf0, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q37s.bm b/bitmaps/q37s.bm new file mode 100644 index 0000000..613deb3 --- /dev/null +++ b/bitmaps/q37s.bm @@ -0,0 +1,19 @@ +#define q37s_width 37 +#define q37s_height 37 +static unsigned char q37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x1f, 0x07, 0x00, 0x00, 0x3e, 0x9f, 0x0f, + 0x00, 0x00, 0x3e, 0x8e, 0x0f, 0x00, 0x18, 0x1c, 0x04, 0x07, 0x03, 0x3c, + 0x08, 0x04, 0x82, 0x07, 0x3c, 0x18, 0x0e, 0x83, 0x07, 0x3c, 0x18, 0x0e, + 0x83, 0x07, 0x18, 0x1c, 0x0e, 0x07, 0x03, 0x30, 0x1c, 0x0e, 0x87, 0x01, + 0x30, 0x3c, 0x8e, 0x87, 0x01, 0x70, 0x3c, 0x9f, 0xc7, 0x01, 0x70, 0x3c, + 0x9f, 0xc7, 0x01, 0xf0, 0x3c, 0x9f, 0xe7, 0x01, 0xe0, 0x7c, 0xdf, 0xe7, + 0x00, 0xe0, 0x7e, 0xdf, 0xef, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xff, 0xff, + 0x7f, 0x00, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, + 0x80, 0x01, 0x00, 0x30, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x06, 0x00, 0x0c, 0x00, 0x00, 0xf3, 0xff, 0x19, + 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x80, 0xfe, 0xff, 0x3f, 0x00, 0x80, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xe0, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q40o.bm b/bitmaps/q40o.bm new file mode 100644 index 0000000..78a5415 --- /dev/null +++ b/bitmaps/q40o.bm @@ -0,0 +1,20 @@ +#define q40o_width 40 +#define q40o_height 40 +static unsigned char q40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x38, 0x44, 0x38, 0x00, 0x00, 0x44, 0x44, 0x44, + 0x00, 0x00, 0x44, 0x44, 0x44, 0x00, 0x18, 0x28, 0x38, 0x28, 0x30, 0x24, + 0x10, 0x10, 0x10, 0x48, 0x24, 0x10, 0x10, 0x10, 0x48, 0x24, 0x30, 0x28, + 0x18, 0x48, 0x18, 0x30, 0x28, 0x18, 0x30, 0x20, 0x30, 0x28, 0x18, 0x08, + 0x20, 0x50, 0x28, 0x14, 0x08, 0x60, 0x50, 0x28, 0x14, 0x0c, 0xa0, 0x48, + 0x44, 0x14, 0x0a, 0xa0, 0x88, 0x44, 0x22, 0x0a, 0x20, 0x89, 0x44, 0x22, + 0x09, 0x20, 0x89, 0x44, 0x22, 0x09, 0x40, 0x0a, 0x45, 0xa1, 0x04, 0x40, + 0x0c, 0x83, 0x61, 0x04, 0x40, 0x0c, 0x83, 0x61, 0x04, 0x40, 0xfa, 0xba, + 0xbe, 0x04, 0xc0, 0x0d, 0xc7, 0x41, 0x07, 0x80, 0x00, 0x00, 0x00, 0x02, + 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0xc1, 0xff, 0x07, 0x01, 0x00, 0x3d, + 0x00, 0x78, 0x01, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, + 0x00, 0x00, 0xc2, 0xff, 0x87, 0x00, 0x00, 0x3c, 0x00, 0x78, 0x00, 0x00, + 0x02, 0x00, 0x80, 0x00, 0x00, 0xe1, 0xff, 0x0f, 0x01, 0x00, 0x1f, 0x00, + 0xf0, 0x01, 0x80, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3f, 0x00, 0xf8, 0x01, + 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q40s.bm b/bitmaps/q40s.bm new file mode 100644 index 0000000..fbdb7d1 --- /dev/null +++ b/bitmaps/q40s.bm @@ -0,0 +1,20 @@ +#define q40s_width 40 +#define q40s_height 40 +static unsigned char q40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x38, 0x00, 0x00, 0x7c, 0x7c, 0x7c, + 0x00, 0x00, 0x7c, 0x7c, 0x7c, 0x00, 0x1c, 0x7c, 0x38, 0x7c, 0x70, 0x3e, + 0x38, 0x10, 0x38, 0xf8, 0x3e, 0x10, 0x10, 0x10, 0xf8, 0x3e, 0x30, 0x38, + 0x18, 0xf8, 0x1c, 0x30, 0x38, 0x18, 0x70, 0x30, 0x70, 0x38, 0x1c, 0x18, + 0x30, 0x70, 0x38, 0x1c, 0x18, 0x70, 0x70, 0x38, 0x1c, 0x1c, 0xf0, 0xf8, + 0x7c, 0x3e, 0x1e, 0xe0, 0xf8, 0x7c, 0x3e, 0x0e, 0xe0, 0xf9, 0x7c, 0x3e, + 0x0f, 0xe0, 0xf9, 0x7d, 0x3f, 0x0f, 0xe0, 0xfb, 0x7d, 0xbf, 0x0f, 0xe0, + 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, 0xff, 0x0f, 0xe0, 0xff, 0xff, + 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0xff, 0x07, + 0x80, 0xff, 0xff, 0xff, 0x03, 0x00, 0x3f, 0x00, 0xf8, 0x01, 0x00, 0x83, + 0xff, 0x83, 0x01, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x3e, 0x00, 0xf8, 0x00, 0x00, 0xc4, 0xff, 0x47, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x00, 0xfe, 0xff, + 0xff, 0x01, 0x80, 0xff, 0xff, 0xff, 0x03, 0x00, 0xff, 0xff, 0xff, 0x01, + 0x00, 0xc0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q45o.bm b/bitmaps/q45o.bm new file mode 100644 index 0000000..0765ce5 --- /dev/null +++ b/bitmaps/q45o.bm @@ -0,0 +1,51 @@ + +#define q45o_width 45 +#define q45o_height 45 +#define q45o_xoff 1 +#define q45o_yoff 2 +static unsigned char q45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x10, 0x81, 0x03, 0x00, + 0x00, 0x44, 0x10, 0x41, 0x04, 0x00, + 0x00, 0x44, 0x10, 0x41, 0x04, 0x00, + 0x00, 0x44, 0xe0, 0x40, 0x04, 0x00, + 0x1c, 0x38, 0x40, 0x80, 0x03, 0x07, + 0x22, 0x10, 0x40, 0x00, 0x81, 0x08, + 0x22, 0x30, 0xa0, 0x80, 0x81, 0x08, + 0x22, 0x30, 0xa0, 0x80, 0x81, 0x08, + 0x14, 0x30, 0xa0, 0x80, 0x01, 0x05, + 0x18, 0x50, 0xa0, 0x40, 0x01, 0x03, + 0x30, 0x50, 0xa0, 0x40, 0x81, 0x01, + 0x30, 0x50, 0x10, 0x41, 0x81, 0x01, + 0x50, 0x90, 0x10, 0x21, 0x41, 0x01, + 0x50, 0x90, 0x10, 0x21, 0x41, 0x01, + 0xa0, 0x88, 0x10, 0x21, 0xa2, 0x00, + 0xa0, 0x08, 0x09, 0x12, 0xa2, 0x00, + 0x20, 0x09, 0x09, 0x12, 0x92, 0x00, + 0x20, 0x09, 0x09, 0x12, 0x92, 0x00, + 0x20, 0x0a, 0x0a, 0x0a, 0x8a, 0x00, + 0x20, 0x0a, 0x0a, 0x0a, 0x8a, 0x00, + 0x20, 0x0c, 0x46, 0x0c, 0x86, 0x00, + 0x40, 0xcc, 0xa4, 0x64, 0x46, 0x00, + 0x40, 0x3a, 0x1f, 0x9f, 0x4b, 0x00, + 0xc0, 0x0d, 0x00, 0x00, 0x74, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x01, 0xff, 0x1f, 0x10, 0x00, + 0x00, 0xfe, 0x00, 0xe0, 0x0f, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xe4, 0xff, 0xff, 0x04, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0xc2, 0xff, 0x7f, 0x08, 0x00, + 0x00, 0x3f, 0x00, 0x80, 0x1f, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x20, 0x00, + 0x00, 0x7f, 0x00, 0xc0, 0x1f, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q45s.bm b/bitmaps/q45s.bm new file mode 100644 index 0000000..56e615d --- /dev/null +++ b/bitmaps/q45s.bm @@ -0,0 +1,51 @@ + +#define q45s_width 45 +#define q45s_height 45 +#define q45s_xoff 1 +#define q45s_yoff 2 +static unsigned char q45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x00, 0x38, 0xf0, 0x81, 0x03, 0x00, + 0x00, 0x7c, 0xf0, 0xc1, 0x07, 0x00, + 0x00, 0x7c, 0xf0, 0xc1, 0x07, 0x00, + 0x00, 0x7c, 0xe0, 0xc0, 0x07, 0x00, + 0x3c, 0x38, 0x40, 0x80, 0x83, 0x07, + 0x7e, 0x10, 0x40, 0x00, 0xc1, 0x0f, + 0x7e, 0x30, 0xe0, 0x80, 0xc1, 0x0f, + 0x7e, 0x30, 0xe0, 0x80, 0xc1, 0x0f, + 0x3c, 0x30, 0xe0, 0x80, 0x81, 0x07, + 0x18, 0x70, 0xe0, 0xc0, 0x01, 0x03, + 0x30, 0x70, 0xf0, 0xc1, 0x81, 0x01, + 0x30, 0x70, 0xf0, 0xc1, 0x81, 0x01, + 0x70, 0xf0, 0xf0, 0xe1, 0xc1, 0x01, + 0x70, 0xf8, 0xf0, 0xe1, 0xc3, 0x01, + 0xe0, 0xf8, 0xf0, 0xe1, 0xe3, 0x00, + 0xe0, 0xf8, 0xf9, 0xf3, 0xe3, 0x00, + 0xe0, 0xf9, 0xf9, 0xf3, 0xf3, 0x00, + 0xe0, 0xf9, 0xf9, 0xf3, 0xf3, 0x00, + 0xe0, 0xfb, 0xfb, 0xfb, 0xfb, 0x00, + 0xe0, 0xfb, 0xfb, 0xfb, 0xfb, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x7f, 0x00, 0xc0, 0x1f, 0x00, + 0x00, 0x06, 0xff, 0x1f, 0x0c, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xc4, 0xff, 0x7f, 0x04, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x80, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q49o.bm b/bitmaps/q49o.bm new file mode 100644 index 0000000..cb60814 --- /dev/null +++ b/bitmaps/q49o.bm @@ -0,0 +1,55 @@ + +#define q49o_width 49 +#define q49o_height 49 +#define q49o_xoff 1 +#define q49o_yoff 3 +static unsigned char q49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x40, 0x04, 0x3c, 0x00, 0x00, + 0x00, 0x84, 0x40, 0x04, 0x42, 0x00, 0x00, + 0x00, 0x84, 0x40, 0x04, 0x42, 0x00, 0x00, + 0x00, 0x84, 0x80, 0x02, 0x42, 0x00, 0x00, + 0x1c, 0x58, 0x00, 0x01, 0x34, 0x70, 0x00, + 0x22, 0x20, 0x00, 0x01, 0x08, 0x88, 0x00, + 0x22, 0x60, 0x80, 0x02, 0x0c, 0x88, 0x00, + 0x22, 0x60, 0x80, 0x02, 0x0c, 0x88, 0x00, + 0x14, 0x60, 0x80, 0x02, 0x0c, 0x50, 0x00, + 0x18, 0xa0, 0x80, 0x02, 0x0a, 0x30, 0x00, + 0x30, 0xa0, 0x80, 0x02, 0x0a, 0x18, 0x00, + 0x60, 0x20, 0x41, 0x04, 0x09, 0x0c, 0x00, + 0x60, 0x20, 0x41, 0x04, 0x09, 0x0c, 0x00, + 0xa0, 0x20, 0x41, 0x04, 0x09, 0x0a, 0x00, + 0xa0, 0x20, 0x42, 0x84, 0x08, 0x0a, 0x00, + 0x20, 0x21, 0x42, 0x84, 0x08, 0x09, 0x00, + 0x20, 0x22, 0x22, 0x88, 0x88, 0x08, 0x00, + 0x40, 0x22, 0x24, 0x48, 0x88, 0x04, 0x00, + 0x40, 0x24, 0x24, 0x48, 0x48, 0x04, 0x00, + 0x40, 0x24, 0x28, 0x28, 0x48, 0x04, 0x00, + 0x40, 0x28, 0x28, 0x28, 0x28, 0x04, 0x00, + 0x40, 0x30, 0x18, 0x31, 0x18, 0x04, 0x00, + 0x80, 0x30, 0x93, 0x92, 0x19, 0x02, 0x00, + 0x80, 0xa4, 0x7c, 0x7c, 0x4a, 0x02, 0x00, + 0x80, 0x7b, 0x00, 0x00, 0xbc, 0x03, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x02, 0xff, 0xff, 0x81, 0x00, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x88, 0xff, 0xff, 0x23, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0xff, 0xff, 0x41, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x7e, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q49s.bm b/bitmaps/q49s.bm new file mode 100644 index 0000000..a8db45d --- /dev/null +++ b/bitmaps/q49s.bm @@ -0,0 +1,55 @@ + +#define q49s_width 49 +#define q49s_height 49 +#define q49s_xoff 1 +#define q49s_yoff 3 +static unsigned char q49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x78, 0xc0, 0x07, 0x3c, 0x00, 0x00, + 0x00, 0xfc, 0xc0, 0x07, 0x7e, 0x00, 0x00, + 0x00, 0xfc, 0xc0, 0x07, 0x7e, 0x00, 0x00, + 0x00, 0xfc, 0x80, 0x03, 0x7e, 0x00, 0x00, + 0x3c, 0x78, 0x00, 0x01, 0x3c, 0x78, 0x00, + 0x7e, 0x30, 0x00, 0x01, 0x18, 0xfc, 0x00, + 0x7e, 0x60, 0x80, 0x03, 0x0c, 0xfc, 0x00, + 0x7e, 0x60, 0x80, 0x03, 0x0c, 0xfc, 0x00, + 0x3c, 0x60, 0x80, 0x03, 0x0c, 0x78, 0x00, + 0x18, 0xe0, 0x80, 0x03, 0x0e, 0x30, 0x00, + 0x30, 0xe0, 0x80, 0x03, 0x0e, 0x18, 0x00, + 0x60, 0xe0, 0xc1, 0x07, 0x0f, 0x0c, 0x00, + 0x60, 0xe0, 0xc1, 0x07, 0x0f, 0x0c, 0x00, + 0xe0, 0xe0, 0xc1, 0x07, 0x0f, 0x0e, 0x00, + 0xe0, 0xe0, 0xc3, 0x87, 0x0f, 0x0e, 0x00, + 0xe0, 0xe1, 0xc3, 0x87, 0x0f, 0x0f, 0x00, + 0xe0, 0xe3, 0xe7, 0xcf, 0x8f, 0x0f, 0x00, + 0xc0, 0xe3, 0xe7, 0xcf, 0x8f, 0x07, 0x00, + 0xc0, 0xe7, 0xe7, 0xcf, 0xcf, 0x07, 0x00, + 0xc0, 0xe7, 0xef, 0xef, 0xcf, 0x07, 0x00, + 0xc0, 0xef, 0xff, 0xff, 0xef, 0x07, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0xfe, 0x00, 0x00, + 0x00, 0x04, 0xfe, 0xff, 0x40, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x88, 0xff, 0xff, 0x23, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/q54o.bm b/bitmaps/q54o.bm new file mode 100644 index 0000000..1953558 --- /dev/null +++ b/bitmaps/q54o.bm @@ -0,0 +1,35 @@ +#define q54o_width 54 +#define q54o_height 54 +static unsigned char q54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x03, 0x33, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x07, 0x33, 0xf8, 0x03, + 0x00, 0x00, 0x30, 0x06, 0x33, 0x18, 0x03, 0x00, 0x00, 0x30, 0x06, 0x3f, + 0x18, 0x03, 0x00, 0xf8, 0x30, 0x07, 0x1e, 0x38, 0xc3, 0x07, 0xfc, 0xf1, + 0x03, 0x0c, 0xf0, 0xe3, 0x0f, 0x8c, 0xe1, 0x01, 0x1e, 0xe0, 0x61, 0x0c, + 0x8c, 0x81, 0x03, 0x1e, 0x70, 0x60, 0x0c, 0xcc, 0x81, 0x03, 0x1e, 0x70, + 0xe0, 0x0c, 0xfc, 0x80, 0x07, 0x1e, 0x78, 0xc0, 0x0f, 0xf8, 0x80, 0x07, + 0x1e, 0x78, 0xc0, 0x07, 0xe0, 0x80, 0x07, 0x3f, 0x78, 0xc0, 0x01, 0xc0, + 0x81, 0x0f, 0x33, 0x7c, 0xe0, 0x00, 0xc0, 0x81, 0x0d, 0x33, 0x6c, 0xe0, + 0x00, 0xc0, 0x83, 0x0d, 0x33, 0x6c, 0xf0, 0x00, 0xc0, 0xc3, 0x1d, 0x33, + 0x6e, 0xf0, 0x00, 0xc0, 0xc7, 0x18, 0x33, 0xe6, 0xf8, 0x00, 0xc0, 0xcf, + 0x98, 0x73, 0xc6, 0xfc, 0x00, 0x80, 0xcd, 0xb8, 0x61, 0xc7, 0x6c, 0x00, + 0x80, 0xdd, 0xb0, 0x61, 0xc3, 0x6e, 0x00, 0x80, 0xd9, 0xf0, 0xe1, 0xc3, + 0x66, 0x00, 0x80, 0xf9, 0xe0, 0xe1, 0xc1, 0x67, 0x00, 0x80, 0xf1, 0xe0, + 0xe1, 0xc1, 0x63, 0x00, 0x80, 0xf3, 0xe4, 0xcc, 0xc9, 0x73, 0x00, 0x00, + 0xe3, 0xfe, 0xff, 0xdf, 0x31, 0x00, 0x00, 0xff, 0xff, 0xf3, 0xff, 0x3f, + 0x00, 0x00, 0xff, 0x01, 0x00, 0xe0, 0x3f, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x0c, + 0xf8, 0xff, 0x07, 0x0c, 0x00, 0x00, 0xdc, 0xff, 0xff, 0xff, 0x0e, 0x00, + 0x00, 0xf8, 0x07, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x30, 0xf8, + 0xff, 0x07, 0x03, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0xf0, 0x07, 0x00, 0xf8, 0x03, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0x30, 0xf8, 0xff, 0x07, 0x03, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xf8, 0x07, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xf8, 0x07, 0x00, 0xf8, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q54s.bm b/bitmaps/q54s.bm new file mode 100644 index 0000000..1723c3b --- /dev/null +++ b/bitmaps/q54s.bm @@ -0,0 +1,35 @@ +#define q54s_width 54 +#define q54s_height 54 +static unsigned char q54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x83, 0x7f, 0xf0, 0x01, 0x00, 0x00, 0xf0, 0x87, 0x7f, 0xf8, 0x03, + 0x00, 0x00, 0xf0, 0x87, 0x7f, 0xf8, 0x03, 0x00, 0x00, 0xf0, 0x07, 0x3f, + 0xf8, 0x03, 0x00, 0xf8, 0xf0, 0x07, 0x1e, 0xf8, 0xc3, 0x07, 0xfc, 0xf1, + 0x07, 0x0c, 0xf8, 0xe3, 0x0f, 0xfc, 0xe1, 0x03, 0x1e, 0xf0, 0xe1, 0x0f, + 0xfc, 0x81, 0x03, 0x1e, 0x70, 0xe0, 0x0f, 0xfc, 0x81, 0x03, 0x1e, 0x70, + 0xe0, 0x0f, 0xfc, 0x80, 0x07, 0x1e, 0x78, 0xc0, 0x0f, 0xf8, 0x80, 0x07, + 0x1e, 0x78, 0xc0, 0x07, 0xe0, 0x80, 0x07, 0x3f, 0x78, 0xc0, 0x01, 0xe0, + 0x81, 0x0f, 0x3f, 0x7c, 0xe0, 0x01, 0xc0, 0xc1, 0x0f, 0x3f, 0xfc, 0xe0, + 0x00, 0xc0, 0xc3, 0x0f, 0x3f, 0xfc, 0xf0, 0x00, 0xc0, 0xc7, 0x1f, 0x3f, + 0xfe, 0xf8, 0x00, 0xc0, 0xc7, 0x9f, 0x7f, 0xfe, 0xf8, 0x00, 0xc0, 0xcf, + 0xbf, 0x7f, 0xff, 0xfc, 0x00, 0x80, 0xcf, 0xbf, 0x7f, 0xff, 0x7c, 0x00, + 0x80, 0xdf, 0xbf, 0x7f, 0xff, 0x7e, 0x00, 0x80, 0xdf, 0xff, 0xff, 0xff, + 0x7e, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xfc, + 0x07, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x0f, 0x00, + 0x00, 0x18, 0xf0, 0xff, 0x03, 0x06, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xf0, 0x07, + 0x00, 0xf8, 0x03, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x30, 0xf0, 0xff, 0x03, 0x03, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q58o.bm b/bitmaps/q58o.bm new file mode 100644 index 0000000..f60da09 --- /dev/null +++ b/bitmaps/q58o.bm @@ -0,0 +1,42 @@ +#define q58o_width 58 +#define q58o_height 58 +static unsigned char q58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0xce, 0x81, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x86, + 0xc1, 0x1f, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x86, 0xc1, 0x18, 0x00, 0x00, + 0x00, 0x60, 0x0c, 0xfe, 0xc1, 0x18, 0x00, 0x00, 0x30, 0x60, 0x0c, 0xfc, + 0xc0, 0x18, 0x30, 0x00, 0xfc, 0xe0, 0x0f, 0x30, 0xc0, 0x1f, 0xfc, 0x00, + 0xce, 0xc1, 0x07, 0x78, 0x80, 0x0f, 0xce, 0x01, 0x86, 0x01, 0x07, 0x78, + 0x80, 0x03, 0x86, 0x01, 0x8e, 0x01, 0x07, 0x78, 0x80, 0x03, 0xc6, 0x01, + 0xfc, 0x01, 0x07, 0x78, 0x80, 0x03, 0xfe, 0x00, 0xf8, 0x00, 0x0f, 0xfc, + 0xc0, 0x03, 0x7c, 0x00, 0xe0, 0x00, 0x0f, 0xcc, 0xc0, 0x03, 0x1c, 0x00, + 0xe0, 0x01, 0x0f, 0xcc, 0xc0, 0x03, 0x1e, 0x00, 0xe0, 0x01, 0x1f, 0xcc, + 0xe0, 0x03, 0x1e, 0x00, 0xe0, 0x03, 0x1b, 0xcc, 0x60, 0x03, 0x1f, 0x00, + 0xc0, 0x07, 0x1b, 0xce, 0x61, 0x83, 0x0f, 0x00, 0xc0, 0x86, 0x3b, 0x86, + 0x71, 0x87, 0x0d, 0x00, 0xc0, 0x8e, 0x31, 0x86, 0x31, 0xc6, 0x0d, 0x00, + 0xc0, 0x8c, 0x71, 0x86, 0x39, 0xc6, 0x0c, 0x00, 0xc0, 0x9c, 0x61, 0x87, + 0x1b, 0xe6, 0x0c, 0x00, 0xc0, 0x99, 0x61, 0x03, 0x1b, 0x66, 0x0e, 0x00, + 0x80, 0xb9, 0xe1, 0x03, 0x1f, 0x76, 0x06, 0x00, 0x80, 0xf1, 0xc1, 0x03, + 0x0f, 0x3e, 0x06, 0x00, 0x80, 0xe1, 0xc1, 0x03, 0x0f, 0x1e, 0x06, 0x00, + 0x80, 0xe1, 0xc9, 0x79, 0x4e, 0x1e, 0x06, 0x00, 0x80, 0xc3, 0xfd, 0xff, + 0xff, 0x0e, 0x07, 0x00, 0x00, 0xfb, 0xff, 0x87, 0xff, 0x7f, 0x03, 0x00, + 0x00, 0xff, 0x03, 0x00, 0x00, 0xff, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x1c, 0xf0, 0xff, + 0x3f, 0xe0, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x60, 0xe0, 0xff, 0x1f, 0x18, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0xe0, 0x1f, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x70, 0xf0, 0xff, + 0x3f, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0x0f, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0xf8, 0x0f, 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q58s.bm b/bitmaps/q58s.bm new file mode 100644 index 0000000..1a8ac6b --- /dev/null +++ b/bitmaps/q58s.bm @@ -0,0 +1,42 @@ +#define q58s_width 58 +#define q58s_height 58 +static unsigned char q58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0xfe, 0x01, 0x0f, 0x00, 0x00, 0x00, 0xe0, 0x07, 0xfe, + 0x81, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xfe, 0xc1, 0x1f, 0x00, 0x00, + 0x00, 0xe0, 0x0f, 0xfe, 0xc1, 0x1f, 0x00, 0x00, 0x30, 0xe0, 0x0f, 0xfc, + 0xc0, 0x1f, 0x30, 0x00, 0xfc, 0xe0, 0x0f, 0x78, 0xc0, 0x1f, 0xfc, 0x00, + 0xfe, 0xc1, 0x07, 0x78, 0x80, 0x0f, 0xfe, 0x01, 0xfe, 0x01, 0x07, 0x78, + 0x80, 0x03, 0xfe, 0x01, 0xfe, 0x01, 0x07, 0x78, 0x80, 0x03, 0xfe, 0x01, + 0xfe, 0x01, 0x07, 0x78, 0x80, 0x03, 0xfe, 0x01, 0xfc, 0x00, 0x0f, 0xfc, + 0xc0, 0x03, 0xfc, 0x00, 0xe0, 0x00, 0x0f, 0xfc, 0xc0, 0x03, 0x1c, 0x00, + 0xe0, 0x01, 0x1f, 0xfc, 0xe0, 0x03, 0x1e, 0x00, 0xe0, 0x01, 0x1f, 0xfc, + 0xe0, 0x03, 0x1e, 0x00, 0xe0, 0x83, 0x1f, 0xfe, 0xe1, 0x07, 0x1f, 0x00, + 0xe0, 0x87, 0x3f, 0xfe, 0xf1, 0x87, 0x1f, 0x00, 0xc0, 0x87, 0x3f, 0xfe, + 0xf1, 0x87, 0x0f, 0x00, 0xc0, 0x8f, 0x3f, 0xfe, 0xf1, 0xc7, 0x0f, 0x00, + 0xc0, 0x8f, 0x7f, 0xff, 0xfb, 0xc7, 0x0f, 0x00, 0xc0, 0x9f, 0x7f, 0xff, + 0xfb, 0xe7, 0x0f, 0x00, 0xc0, 0xbf, 0x7f, 0xff, 0xfb, 0xf7, 0x0f, 0x00, + 0x80, 0xbf, 0xff, 0xff, 0xff, 0xf7, 0x07, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x80, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xfc, 0x07, 0x00, + 0x80, 0xff, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x30, 0xe0, 0xff, 0x1f, 0x30, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xe0, 0x0f, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x60, 0xc0, 0xff, 0x0f, 0x18, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q64o.bm b/bitmaps/q64o.bm new file mode 100644 index 0000000..01cb3d9 --- /dev/null +++ b/bitmaps/q64o.bm @@ -0,0 +1,46 @@ +#define q64o_width 64 +#define q64o_height 64 +static unsigned char q64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x70, 0x0e, 0x30, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x30, + 0x0c, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x73, 0x30, 0x0c, 0xce, 0x01, 0x00, + 0x00, 0x80, 0x61, 0x70, 0x0e, 0x86, 0x01, 0x00, 0x00, 0x80, 0x61, 0xe0, + 0x07, 0x86, 0x01, 0x00, 0x60, 0x80, 0x73, 0x80, 0x01, 0xce, 0x01, 0x06, + 0xf8, 0x01, 0x3f, 0x80, 0x01, 0xfc, 0x80, 0x1f, 0x9c, 0x03, 0x0e, 0xc0, + 0x03, 0x70, 0xc0, 0x39, 0x0c, 0x03, 0x1c, 0xc0, 0x03, 0x38, 0xc0, 0x30, + 0x0c, 0x03, 0x1c, 0xc0, 0x03, 0x38, 0xc0, 0x30, 0x9c, 0x03, 0x1c, 0xc0, + 0x03, 0x38, 0xc0, 0x39, 0xf8, 0x01, 0x3c, 0xc0, 0x03, 0x3c, 0x80, 0x1f, + 0xf0, 0x01, 0x3e, 0xe0, 0x07, 0x3c, 0x80, 0x0f, 0xc0, 0x01, 0x36, 0x60, + 0x06, 0x7c, 0x80, 0x03, 0xc0, 0x03, 0x76, 0x60, 0x06, 0x6e, 0xc0, 0x03, + 0xc0, 0x03, 0x66, 0x60, 0x06, 0x66, 0xc0, 0x03, 0xc0, 0x07, 0xe6, 0x60, + 0x06, 0x67, 0xe0, 0x03, 0x80, 0x07, 0xc6, 0x70, 0x0e, 0x63, 0xe0, 0x01, + 0x80, 0x0f, 0xc6, 0x30, 0x0c, 0x63, 0xf0, 0x01, 0x80, 0x0d, 0xc6, 0x31, + 0x8c, 0x63, 0xb0, 0x01, 0x80, 0x1d, 0x86, 0x31, 0x8c, 0x61, 0xb8, 0x01, + 0x80, 0x19, 0x86, 0x31, 0x8c, 0x61, 0x98, 0x01, 0x80, 0x3b, 0x86, 0x3b, + 0xdc, 0x61, 0xdc, 0x01, 0x00, 0x33, 0x06, 0x1b, 0xd8, 0x60, 0xcc, 0x00, + 0x00, 0x73, 0x07, 0x1b, 0xd8, 0x60, 0xce, 0x00, 0x00, 0x63, 0x03, 0x1f, + 0xf8, 0xe0, 0xc6, 0x00, 0x00, 0xe3, 0x03, 0x1e, 0x78, 0xc0, 0xc7, 0x00, + 0x00, 0xc3, 0x03, 0x1e, 0x78, 0xc0, 0xc3, 0x00, 0x00, 0xc3, 0x63, 0xce, + 0x73, 0xc6, 0xc3, 0x00, 0x00, 0x87, 0xfb, 0xff, 0xff, 0xdf, 0xe1, 0x00, + 0x00, 0xf6, 0x9f, 0x3f, 0xfc, 0xf9, 0x6f, 0x00, 0x00, 0xfe, 0x07, 0x00, + 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0xc0, 0xff, 0xff, 0x03, 0x1c, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0x3f, 0x00, + 0x00, 0xfc, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0xc1, 0xff, 0xff, 0x83, 0x03, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0xfc, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0xc0, 0xc0, 0xff, 0xff, 0x03, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0x3f, 0x00, 0x00, 0xfc, 0x0f, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, + 0x00, 0xe0, 0xff, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q64s.bm b/bitmaps/q64s.bm new file mode 100644 index 0000000..88bcafd --- /dev/null +++ b/bitmaps/q64s.bm @@ -0,0 +1,46 @@ +#define q64s_width 64 +#define q64s_height 64 +static unsigned char q64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0xf0, 0x0f, 0x30, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xf0, + 0x0f, 0xfc, 0x00, 0x00, 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x01, 0x00, + 0x00, 0x80, 0x7f, 0xf0, 0x0f, 0xfe, 0x01, 0x00, 0x00, 0x80, 0x7f, 0xe0, + 0x07, 0xfe, 0x01, 0x00, 0x60, 0x80, 0x7f, 0x80, 0x01, 0xfe, 0x01, 0x06, + 0xf8, 0x01, 0x3f, 0xc0, 0x03, 0xfc, 0x80, 0x1f, 0xfc, 0x03, 0x1e, 0xc0, + 0x03, 0x78, 0xc0, 0x3f, 0xfc, 0x03, 0x1c, 0xc0, 0x03, 0x38, 0xc0, 0x3f, + 0xfc, 0x03, 0x1c, 0xc0, 0x03, 0x38, 0xc0, 0x3f, 0xfc, 0x03, 0x3c, 0xc0, + 0x03, 0x3c, 0xc0, 0x3f, 0xf8, 0x01, 0x3e, 0xe0, 0x07, 0x7c, 0x80, 0x1f, + 0xf0, 0x01, 0x3e, 0xe0, 0x07, 0x7c, 0x80, 0x0f, 0xc0, 0x01, 0x7e, 0xe0, + 0x07, 0x7e, 0x80, 0x03, 0xc0, 0x03, 0x7e, 0xe0, 0x07, 0x7e, 0xc0, 0x03, + 0xc0, 0x03, 0x7e, 0xe0, 0x07, 0x7e, 0xc0, 0x03, 0xc0, 0x07, 0xfe, 0xf0, + 0x0f, 0x7f, 0xe0, 0x03, 0x80, 0x07, 0xfe, 0xf0, 0x0f, 0x7f, 0xe0, 0x01, + 0x80, 0x0f, 0xfe, 0xf0, 0x0f, 0x7f, 0xf0, 0x01, 0x80, 0x0f, 0xfe, 0xf1, + 0x8f, 0x7f, 0xf0, 0x01, 0x80, 0x1f, 0xfe, 0xf1, 0x8f, 0x7f, 0xf8, 0x01, + 0x80, 0x1f, 0xfe, 0xf9, 0x9f, 0x7f, 0xf8, 0x01, 0x80, 0x3f, 0xfe, 0xfb, + 0xdf, 0x7f, 0xfc, 0x01, 0x80, 0x3f, 0xff, 0xfb, 0xdf, 0xff, 0xfc, 0x01, + 0x00, 0x7f, 0xff, 0xfb, 0xdf, 0xff, 0xfe, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x1f, 0x00, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0xe0, 0x80, 0xff, + 0xff, 0x01, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0xf8, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x81, 0xff, + 0xff, 0x81, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x20, 0xfe, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x20, 0xfe, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q72o.bm b/bitmaps/q72o.bm new file mode 100644 index 0000000..7fc4967 --- /dev/null +++ b/bitmaps/q72o.bm @@ -0,0 +1,57 @@ +#define q72o_width 72 +#define q72o_height 72 +static unsigned char q72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0xe7, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0xc3, 0x00, + 0xfe, 0x00, 0x00, 0x00, 0x80, 0xe3, 0x00, 0xc3, 0x00, 0xc7, 0x01, 0x00, + 0x00, 0x80, 0xc1, 0x00, 0xc3, 0x00, 0x83, 0x01, 0x00, 0x00, 0x80, 0xc1, + 0x00, 0xe7, 0x00, 0x83, 0x01, 0x00, 0x00, 0x80, 0xc1, 0x00, 0x7e, 0x00, + 0x83, 0x01, 0x00, 0x38, 0x80, 0xe3, 0x00, 0x18, 0x00, 0xc7, 0x01, 0x1c, + 0xfe, 0x00, 0x7f, 0x00, 0x18, 0x00, 0xfe, 0x00, 0x7f, 0xc7, 0x01, 0x1c, + 0x00, 0x3c, 0x00, 0x38, 0x80, 0xe3, 0x83, 0x01, 0x38, 0x00, 0x3c, 0x00, + 0x1c, 0x80, 0xc1, 0x83, 0x01, 0x38, 0x00, 0x3c, 0x00, 0x1c, 0x80, 0xc1, + 0x83, 0x01, 0x78, 0x00, 0x3c, 0x00, 0x1e, 0x80, 0xc1, 0xc7, 0x01, 0x78, + 0x00, 0x3c, 0x00, 0x1e, 0x80, 0xe3, 0xfe, 0x00, 0x78, 0x00, 0x7e, 0x00, + 0x1e, 0x00, 0x7f, 0xf8, 0x00, 0xf8, 0x00, 0x66, 0x00, 0x1f, 0x00, 0x1f, + 0xe0, 0x00, 0xd8, 0x00, 0x66, 0x00, 0x1b, 0x00, 0x07, 0xe0, 0x01, 0xd8, + 0x00, 0x66, 0x00, 0x1b, 0x80, 0x07, 0xe0, 0x01, 0xd8, 0x01, 0xe7, 0x80, + 0x1b, 0x80, 0x07, 0xe0, 0x03, 0x98, 0x01, 0xc3, 0x80, 0x19, 0xc0, 0x07, + 0xc0, 0x07, 0x98, 0x01, 0xc3, 0x80, 0x19, 0xe0, 0x03, 0xc0, 0x06, 0x98, + 0x03, 0xc3, 0xc0, 0x19, 0x60, 0x03, 0xc0, 0x0e, 0x18, 0x03, 0xc3, 0xc0, + 0x18, 0x70, 0x03, 0xc0, 0x0c, 0x1c, 0x87, 0xc3, 0xe1, 0x38, 0x30, 0x03, + 0xc0, 0x1c, 0x0c, 0x86, 0x81, 0x61, 0x30, 0x38, 0x03, 0xc0, 0x19, 0x0c, + 0x86, 0x81, 0x61, 0x30, 0x98, 0x03, 0x80, 0x39, 0x0c, 0x8e, 0x81, 0x71, + 0x30, 0x9c, 0x01, 0x80, 0x31, 0x0c, 0x8c, 0x81, 0x31, 0x30, 0x8c, 0x01, + 0x80, 0x71, 0x0c, 0xcc, 0x81, 0x33, 0x30, 0x8e, 0x01, 0x80, 0xe1, 0x0c, + 0xdc, 0x00, 0x3b, 0x30, 0x87, 0x01, 0x80, 0xc1, 0x0c, 0xd8, 0x00, 0x1b, + 0x30, 0x83, 0x01, 0x80, 0xc3, 0x0d, 0xf8, 0x00, 0x1f, 0xb0, 0xc3, 0x01, + 0x00, 0x83, 0x0d, 0xf0, 0x00, 0x0f, 0xb0, 0xc1, 0x00, 0x00, 0x83, 0x0f, + 0xf0, 0x18, 0x0f, 0xf0, 0xc1, 0x00, 0x00, 0x03, 0x0f, 0x71, 0x7e, 0x8e, + 0xf0, 0xc0, 0x00, 0x00, 0x03, 0xcf, 0xff, 0xff, 0xff, 0xf3, 0xc0, 0x00, + 0x00, 0x43, 0xee, 0xfe, 0x81, 0x7f, 0x77, 0xc2, 0x00, 0x00, 0xf7, 0x7f, + 0x00, 0x00, 0x00, 0xfe, 0xef, 0x00, 0x00, 0xbe, 0x1f, 0x00, 0x00, 0x00, + 0xf8, 0x7d, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x70, 0x00, 0xfe, 0xff, 0x7f, 0x00, 0x0e, 0x00, + 0x00, 0xe0, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0xc0, 0xff, + 0x01, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x80, 0x01, 0xfc, 0xff, 0x3f, + 0x80, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0xff, 0x03, 0x00, 0xc0, 0xff, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x01, 0xf8, 0xff, 0x1f, + 0x80, 0x01, 0x00, 0x00, 0xc0, 0xe1, 0xff, 0xff, 0xff, 0x87, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0x07, 0x00, 0xe0, 0xff, 0x03, 0x00, 0x00, 0xe0, 0x1f, + 0x00, 0x00, 0x00, 0xf8, 0x07, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xf0, 0x07, + 0x00, 0x00, 0x00, 0xe0, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x03, 0x00, 0xc0, + 0xff, 0x07, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q72s.bm b/bitmaps/q72s.bm new file mode 100644 index 0000000..d133f75 --- /dev/null +++ b/bitmaps/q72s.bm @@ -0,0 +1,57 @@ +#define q72s_width 72 +#define q72s_height 72 +static unsigned char q72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x80, 0xff, 0x01, 0x38, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x80, 0xff, 0x01, + 0xfe, 0x00, 0x00, 0x00, 0x80, 0xff, 0x80, 0xff, 0x01, 0xff, 0x01, 0x00, + 0x00, 0x80, 0xff, 0x80, 0xff, 0x01, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, + 0x80, 0xff, 0x01, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x00, 0xff, 0x00, + 0xff, 0x01, 0x00, 0x38, 0x80, 0xff, 0x00, 0x3c, 0x00, 0xff, 0x01, 0x1c, + 0xfe, 0x00, 0x7f, 0x00, 0x3c, 0x00, 0xfe, 0x00, 0x7f, 0xff, 0x01, 0x3e, + 0x00, 0x3c, 0x00, 0x7c, 0x80, 0xff, 0xff, 0x01, 0x38, 0x00, 0x3c, 0x00, + 0x1c, 0x80, 0xff, 0xff, 0x01, 0x38, 0x00, 0x3c, 0x00, 0x1c, 0x80, 0xff, + 0xff, 0x01, 0x78, 0x00, 0x3c, 0x00, 0x1e, 0x80, 0xff, 0xff, 0x01, 0x78, + 0x00, 0x7e, 0x00, 0x1e, 0x80, 0xff, 0xfe, 0x00, 0x78, 0x00, 0x7e, 0x00, + 0x1e, 0x00, 0x7f, 0xfc, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x1f, 0x00, 0x3f, + 0xe0, 0x00, 0xf8, 0x00, 0x7e, 0x00, 0x1f, 0x00, 0x07, 0xe0, 0x01, 0xf8, + 0x00, 0x7e, 0x00, 0x1f, 0x80, 0x07, 0xe0, 0x01, 0xf8, 0x01, 0xff, 0x80, + 0x1f, 0x80, 0x07, 0xe0, 0x03, 0xf8, 0x01, 0xff, 0x80, 0x1f, 0xc0, 0x07, + 0xc0, 0x07, 0xfc, 0x03, 0xff, 0xc0, 0x3f, 0xe0, 0x03, 0xc0, 0x07, 0xfc, + 0x03, 0xff, 0xc0, 0x3f, 0xe0, 0x03, 0xc0, 0x0f, 0xfc, 0x03, 0xff, 0xc0, + 0x3f, 0xf0, 0x03, 0xc0, 0x0f, 0xfc, 0x87, 0xff, 0xe1, 0x3f, 0xf0, 0x03, + 0xc0, 0x1f, 0xfc, 0x87, 0xff, 0xe1, 0x3f, 0xf8, 0x03, 0xc0, 0x1f, 0xfc, + 0x87, 0xff, 0xe1, 0x3f, 0xf8, 0x03, 0x80, 0x3f, 0xfc, 0x8f, 0xff, 0xf1, + 0x3f, 0xfc, 0x01, 0x80, 0x7f, 0xfc, 0x8f, 0xff, 0xf1, 0x3f, 0xfe, 0x01, + 0x80, 0x7f, 0xfc, 0xdf, 0xff, 0xfb, 0x3f, 0xfe, 0x01, 0x80, 0xff, 0xfc, + 0xdf, 0xff, 0xfb, 0x3f, 0xff, 0x01, 0x80, 0xff, 0xfc, 0xdf, 0xff, 0xfb, + 0x3f, 0xff, 0x01, 0x80, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x01, + 0x00, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0x00, 0x00, 0x00, 0xff, 0x0f, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0xc0, 0x00, + 0xfc, 0xff, 0x3f, 0x00, 0x03, 0x00, 0x00, 0xc0, 0xfd, 0xff, 0xff, 0xff, + 0xbf, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, + 0xff, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x03, 0xfc, 0xff, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x20, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q80o.bm b/bitmaps/q80o.bm new file mode 100644 index 0000000..c491d1e --- /dev/null +++ b/bitmaps/q80o.bm @@ -0,0 +1,70 @@ +#define q80o_width 80 +#define q80o_height 80 +static unsigned char q80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0x18, 0x18, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x18, 0x18, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x07, 0x18, 0x18, 0xe0, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x06, 0x38, 0x1c, 0x60, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x06, 0xf0, 0x0f, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x06, 0xe0, 0x07, 0x60, 0x30, 0x00, 0x00, 0xc0, 0x01, 0x1c, 0x07, + 0x80, 0x01, 0xe0, 0x38, 0x80, 0x03, 0xf0, 0x07, 0xf8, 0x03, 0xc0, 0x03, + 0xc0, 0x1f, 0xe0, 0x0f, 0x38, 0x0e, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, + 0x70, 0x1c, 0x18, 0x0c, 0xc0, 0x01, 0xc0, 0x03, 0x80, 0x03, 0x30, 0x18, + 0x18, 0x0c, 0xc0, 0x01, 0xc0, 0x03, 0x80, 0x03, 0x30, 0x18, 0x18, 0x0c, + 0xc0, 0x01, 0xc0, 0x03, 0x80, 0x03, 0x30, 0x18, 0x38, 0x0e, 0xc0, 0x03, + 0xe0, 0x07, 0xc0, 0x03, 0x70, 0x1c, 0xf0, 0x07, 0xc0, 0x03, 0x60, 0x06, + 0xc0, 0x03, 0xe0, 0x0f, 0xc0, 0x07, 0xc0, 0x03, 0x60, 0x06, 0xc0, 0x03, + 0xe0, 0x03, 0x00, 0x07, 0xc0, 0x07, 0x60, 0x06, 0xe0, 0x03, 0xe0, 0x00, + 0x00, 0x0f, 0xc0, 0x06, 0x70, 0x0e, 0x60, 0x03, 0xf0, 0x00, 0x00, 0x0f, + 0xc0, 0x06, 0x30, 0x0c, 0x60, 0x03, 0xf0, 0x00, 0x00, 0x1f, 0xc0, 0x0e, + 0x30, 0x0c, 0x70, 0x03, 0xf8, 0x00, 0x00, 0x1e, 0xc0, 0x0c, 0x30, 0x0c, + 0x30, 0x03, 0x78, 0x00, 0x00, 0x3e, 0xc0, 0x0c, 0x30, 0x0c, 0x30, 0x03, + 0x7c, 0x00, 0x00, 0x36, 0xc0, 0x1c, 0x38, 0x1c, 0x38, 0x03, 0x6c, 0x00, + 0x00, 0x76, 0xe0, 0x18, 0x18, 0x18, 0x18, 0x03, 0x6e, 0x00, 0x00, 0x66, + 0x60, 0x18, 0x18, 0x18, 0x18, 0x07, 0x66, 0x00, 0x00, 0xee, 0x60, 0x38, + 0x18, 0x18, 0x1c, 0x06, 0x77, 0x00, 0x00, 0xcc, 0x60, 0x30, 0x1c, 0x38, + 0x0c, 0x06, 0x33, 0x00, 0x00, 0xcc, 0x61, 0x70, 0x0c, 0x30, 0x0e, 0x86, + 0x33, 0x00, 0x00, 0x8c, 0x63, 0x60, 0x0c, 0x30, 0x06, 0xc6, 0x31, 0x00, + 0x00, 0x0c, 0x63, 0x60, 0x0c, 0x30, 0x06, 0xc6, 0x30, 0x00, 0x00, 0x0c, + 0x67, 0xe0, 0x0c, 0x30, 0x07, 0xe6, 0x30, 0x00, 0x00, 0x1c, 0x66, 0xc0, + 0x0e, 0x70, 0x03, 0x66, 0x38, 0x00, 0x00, 0x18, 0x6e, 0xc0, 0x06, 0x60, + 0x03, 0x76, 0x18, 0x00, 0x00, 0x18, 0x6c, 0xc0, 0x07, 0xe0, 0x03, 0x36, + 0x18, 0x00, 0x00, 0x18, 0x7c, 0x80, 0x07, 0xe0, 0x01, 0x3e, 0x18, 0x00, + 0x00, 0x18, 0x78, 0x80, 0x87, 0xe1, 0x01, 0x1e, 0x18, 0x00, 0x00, 0x18, + 0x78, 0x9c, 0xf3, 0xcf, 0x39, 0x1e, 0x18, 0x00, 0x00, 0x38, 0x72, 0xff, + 0x7f, 0xfe, 0xff, 0x4e, 0x1c, 0x00, 0x00, 0xb0, 0xff, 0xe3, 0x0f, 0xf0, + 0xc7, 0xff, 0x0d, 0x00, 0x00, 0xf0, 0xfd, 0x00, 0x00, 0x00, 0x00, 0xbf, + 0x0f, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x80, 0x03, 0xc0, 0xff, 0xff, + 0x03, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x83, 0xff, 0xff, 0xff, 0xff, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0xe0, 0xff, 0xff, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x1f, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x06, 0xe0, 0xff, 0xff, 0x07, 0x60, + 0x00, 0x00, 0x00, 0x00, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0x01, 0x00, 0x00, 0xc0, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x80, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x01, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0xfe, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q80s.bm b/bitmaps/q80s.bm new file mode 100644 index 0000000..381adae --- /dev/null +++ b/bitmaps/q80s.bm @@ -0,0 +1,70 @@ +#define q80s_width 80 +#define q80s_height 80 +static unsigned char q80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, + 0xf8, 0x1f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0xf8, 0x1f, + 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xf8, 0x1f, 0xe0, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0xf8, 0x1f, 0xe0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x07, 0xf0, 0x0f, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x07, 0xe0, 0x07, 0xe0, 0x3f, 0x00, 0x00, 0xc0, 0x03, 0xfc, 0x07, + 0x80, 0x01, 0xe0, 0x3f, 0xc0, 0x03, 0xf0, 0x0f, 0xf8, 0x03, 0xc0, 0x03, + 0xc0, 0x1f, 0xf0, 0x0f, 0xf8, 0x1f, 0xe0, 0x01, 0xc0, 0x03, 0x80, 0x07, + 0xf8, 0x1f, 0xf8, 0x1f, 0xc0, 0x01, 0xc0, 0x03, 0x80, 0x03, 0xf8, 0x1f, + 0xf8, 0x1f, 0xc0, 0x01, 0xc0, 0x03, 0x80, 0x03, 0xf8, 0x1f, 0xf8, 0x1f, + 0xc0, 0x01, 0xe0, 0x07, 0x80, 0x03, 0xf8, 0x1f, 0xf8, 0x1f, 0xc0, 0x03, + 0xe0, 0x07, 0xc0, 0x03, 0xf8, 0x1f, 0xf0, 0x0f, 0xc0, 0x03, 0xe0, 0x07, + 0xc0, 0x03, 0xf0, 0x0f, 0xe0, 0x07, 0xc0, 0x03, 0xe0, 0x07, 0xc0, 0x03, + 0xe0, 0x07, 0x00, 0x07, 0xc0, 0x07, 0xe0, 0x07, 0xe0, 0x03, 0xe0, 0x00, + 0x00, 0x0f, 0xc0, 0x07, 0xf0, 0x0f, 0xe0, 0x03, 0xf0, 0x00, 0x00, 0x0f, + 0xc0, 0x0f, 0xf0, 0x0f, 0xf0, 0x03, 0xf0, 0x00, 0x00, 0x1f, 0xc0, 0x0f, + 0xf0, 0x0f, 0xf0, 0x03, 0xf8, 0x00, 0x00, 0x1e, 0xe0, 0x0f, 0xf0, 0x0f, + 0xf0, 0x07, 0x78, 0x00, 0x00, 0x3e, 0xe0, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, + 0x7c, 0x00, 0x00, 0x3e, 0xe0, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, 0x7c, 0x00, + 0x00, 0x7e, 0xe0, 0x1f, 0xf8, 0x1f, 0xf8, 0x07, 0x7e, 0x00, 0x00, 0xfe, + 0xe0, 0x3f, 0xf8, 0x1f, 0xfc, 0x07, 0x7f, 0x00, 0x00, 0xfe, 0xe0, 0x3f, + 0xf8, 0x1f, 0xfc, 0x07, 0x7f, 0x00, 0x00, 0xfc, 0xe1, 0x3f, 0xfc, 0x3f, + 0xfc, 0x87, 0x3f, 0x00, 0x00, 0xfc, 0xe1, 0x7f, 0xfc, 0x3f, 0xfe, 0x87, + 0x3f, 0x00, 0x00, 0xfc, 0xe3, 0x7f, 0xfc, 0x3f, 0xfe, 0xc7, 0x3f, 0x00, + 0x00, 0xfc, 0xe3, 0x7f, 0xfc, 0x3f, 0xfe, 0xc7, 0x3f, 0x00, 0x00, 0xfc, + 0xe7, 0xff, 0xfe, 0x7f, 0xff, 0xe7, 0x3f, 0x00, 0x00, 0xfc, 0xe7, 0xff, + 0xfe, 0x7f, 0xff, 0xe7, 0x3f, 0x00, 0x00, 0xf8, 0xef, 0xff, 0xfe, 0x7f, + 0xff, 0xf7, 0x1f, 0x00, 0x00, 0xf8, 0xef, 0xff, 0xff, 0xff, 0xff, 0xf7, + 0x1f, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x80, 0xff, 0x3f, 0x00, 0x00, + 0xfc, 0xff, 0x01, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x80, 0xff, 0xff, 0x01, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x06, 0xff, 0xff, 0xff, 0xff, 0x60, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, 0x00, 0xe0, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0xc0, 0xff, 0xff, 0x03, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x80, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, + 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q87o.bm b/bitmaps/q87o.bm new file mode 100644 index 0000000..35cb8da --- /dev/null +++ b/bitmaps/q87o.bm @@ -0,0 +1,83 @@ +#define q87o_width 87 +#define q87o_height 87 +static unsigned char q87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x80, 0xe3, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xc0, 0xc1, 0x01, 0xf8, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0xc0, 0xc1, 0x01, 0xfc, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x1c, 0xc0, 0xc1, 0x01, 0x1c, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x38, 0x80, 0xe3, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x38, 0x80, 0xff, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x38, 0x00, 0x7f, 0x00, 0x0e, 0x0e, 0x00, 0x00, 0x80, 0x03, 0xf0, + 0x1c, 0x00, 0x1c, 0x00, 0x9c, 0x07, 0xe0, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, + 0x00, 0x1c, 0x00, 0xfc, 0x07, 0xf8, 0x03, 0xf0, 0x1f, 0xe0, 0x0f, 0x00, + 0x3e, 0x00, 0xf8, 0x03, 0xfc, 0x07, 0x70, 0x1c, 0x00, 0x07, 0x00, 0x3e, + 0x00, 0x70, 0x00, 0x1c, 0x07, 0x38, 0x38, 0x00, 0x0f, 0x00, 0x3e, 0x00, + 0x78, 0x00, 0x0e, 0x0e, 0x38, 0x38, 0x00, 0x0f, 0x00, 0x3e, 0x00, 0x78, + 0x00, 0x0e, 0x0e, 0x38, 0x38, 0x00, 0x0f, 0x00, 0x3e, 0x00, 0x78, 0x00, + 0x0e, 0x0e, 0x70, 0x1c, 0x00, 0x1f, 0x00, 0x77, 0x00, 0x7c, 0x00, 0x1c, + 0x07, 0xf0, 0x1f, 0x00, 0x1f, 0x00, 0x77, 0x00, 0x7c, 0x00, 0xfc, 0x07, + 0xe0, 0x0f, 0x00, 0x3f, 0x00, 0x77, 0x00, 0x7e, 0x00, 0xf8, 0x03, 0x80, + 0x0f, 0x00, 0x3f, 0x00, 0x77, 0x00, 0x7e, 0x00, 0xf8, 0x00, 0x00, 0x0e, + 0x00, 0x3f, 0x00, 0x77, 0x00, 0x7e, 0x00, 0x38, 0x00, 0x00, 0x1e, 0x00, + 0x77, 0x80, 0xe3, 0x00, 0x77, 0x00, 0x3c, 0x00, 0x00, 0x3e, 0x00, 0x77, + 0x80, 0xe3, 0x00, 0x77, 0x00, 0x3e, 0x00, 0x00, 0x3e, 0x00, 0x77, 0x80, + 0xe3, 0x00, 0x77, 0x00, 0x3e, 0x00, 0x00, 0x7e, 0x00, 0xe7, 0x80, 0xe3, + 0x80, 0x73, 0x00, 0x3f, 0x00, 0x00, 0x7c, 0x00, 0xe7, 0x80, 0xe3, 0x80, + 0x73, 0x00, 0x1f, 0x00, 0x00, 0xfc, 0x00, 0xe7, 0xc0, 0xc1, 0x81, 0x73, + 0x80, 0x1f, 0x00, 0x00, 0xfc, 0x81, 0xc3, 0xc1, 0xc1, 0xc1, 0x71, 0xc0, + 0x1f, 0x00, 0x00, 0xdc, 0x81, 0xc3, 0xc1, 0xc1, 0xc1, 0xe1, 0xc0, 0x1d, + 0x00, 0x00, 0x9c, 0x83, 0xc3, 0xc1, 0xc1, 0xc1, 0xe1, 0xe0, 0x1c, 0x00, + 0x00, 0x9c, 0x83, 0x83, 0xc3, 0xc1, 0xe1, 0xe0, 0xe0, 0x1c, 0x00, 0x00, + 0x38, 0x87, 0x83, 0xe3, 0x80, 0xe3, 0xe0, 0x70, 0x0e, 0x00, 0x00, 0x38, + 0x87, 0x83, 0xe3, 0x80, 0xe3, 0xe0, 0x70, 0x0e, 0x00, 0x00, 0x38, 0x8e, + 0x03, 0xe7, 0x80, 0x73, 0xe0, 0x38, 0x0e, 0x00, 0x00, 0x38, 0x9e, 0x03, + 0xe7, 0x80, 0x73, 0xe0, 0x3c, 0x0e, 0x00, 0x00, 0x38, 0x9c, 0x03, 0xe7, + 0x80, 0x73, 0xe0, 0x1c, 0x0e, 0x00, 0x00, 0x38, 0xb8, 0x03, 0x7e, 0x00, + 0x3f, 0xe0, 0x0e, 0x0e, 0x00, 0x00, 0x70, 0xb8, 0x03, 0x7e, 0x00, 0x3f, + 0xe0, 0x0e, 0x07, 0x00, 0x00, 0x70, 0xf0, 0x03, 0x7e, 0x00, 0x3f, 0xe0, + 0x07, 0x07, 0x00, 0x00, 0x70, 0xf0, 0x03, 0x7c, 0x08, 0x1f, 0xe0, 0x07, + 0x07, 0x00, 0x00, 0x70, 0xe0, 0x43, 0x7c, 0x1c, 0x1f, 0xe1, 0x03, 0x07, + 0x00, 0x00, 0x70, 0xe0, 0xf3, 0xbd, 0xff, 0xde, 0xe7, 0x03, 0x07, 0x00, + 0x00, 0x70, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x19, 0x07, 0x00, 0x00, + 0xe0, 0xfe, 0xbf, 0xff, 0xe3, 0xff, 0xfe, 0xbf, 0x03, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0x7e, 0x00, 0x3f, 0xf8, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xf7, + 0x03, 0x00, 0x00, 0x00, 0xe0, 0xf7, 0x03, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0xfe, 0xff, 0x3f, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xfc, 0xff, 0xff, 0xff, 0x1f, + 0x78, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xc0, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x00, 0xe0, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0xfc, 0xff, 0x1f, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, 0xfc, + 0xff, 0xff, 0xff, 0x1f, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x03, 0x00, + 0xe0, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0xfe, 0xff, 0x3f, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x38, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01, + 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0x01, + 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q87s.bm b/bitmaps/q87s.bm new file mode 100644 index 0000000..18875a0 --- /dev/null +++ b/bitmaps/q87s.bm @@ -0,0 +1,83 @@ +#define q87s_width 87 +#define q87s_height 87 +static unsigned char q87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x80, 0xff, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x0f, 0xc0, 0xff, 0x01, 0xf8, 0x03, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0xc0, 0xff, 0x01, 0xfc, 0x07, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x1f, 0xc0, 0xff, 0x01, 0xfc, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x3f, 0x80, 0xff, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0x3f, 0x80, 0xff, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x3f, 0x00, 0x7f, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x80, 0x03, 0xf0, + 0x1f, 0x00, 0x1c, 0x00, 0xfc, 0x07, 0xe0, 0x00, 0xe0, 0x0f, 0xf0, 0x1f, + 0x00, 0x3e, 0x00, 0xfc, 0x07, 0xf8, 0x03, 0xf0, 0x1f, 0xe0, 0x0f, 0x00, + 0x3e, 0x00, 0xf8, 0x03, 0xfc, 0x07, 0xf0, 0x1f, 0x80, 0x0f, 0x00, 0x3e, + 0x00, 0xf8, 0x00, 0xfc, 0x07, 0xf8, 0x3f, 0x00, 0x0f, 0x00, 0x3e, 0x00, + 0x78, 0x00, 0xfe, 0x0f, 0xf8, 0x3f, 0x00, 0x0f, 0x00, 0x3e, 0x00, 0x78, + 0x00, 0xfe, 0x0f, 0xf8, 0x3f, 0x00, 0x1f, 0x00, 0x7f, 0x00, 0x7c, 0x00, + 0xfe, 0x0f, 0xf0, 0x1f, 0x00, 0x1f, 0x00, 0x7f, 0x00, 0x7c, 0x00, 0xfc, + 0x07, 0xf0, 0x1f, 0x00, 0x1f, 0x00, 0x7f, 0x00, 0x7c, 0x00, 0xfc, 0x07, + 0xe0, 0x0f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0xf8, 0x03, 0x80, + 0x0f, 0x00, 0x3f, 0x00, 0x7f, 0x00, 0x7e, 0x00, 0xf8, 0x00, 0x00, 0x1e, + 0x00, 0x3f, 0x80, 0xff, 0x00, 0x7e, 0x00, 0x3c, 0x00, 0x00, 0x1e, 0x00, + 0x7f, 0x80, 0xff, 0x00, 0x7f, 0x00, 0x3c, 0x00, 0x00, 0x3e, 0x00, 0x7f, + 0x80, 0xff, 0x00, 0x7f, 0x00, 0x3e, 0x00, 0x00, 0x3e, 0x80, 0x7f, 0x80, + 0xff, 0x00, 0xff, 0x00, 0x3e, 0x00, 0x00, 0x7e, 0x80, 0xff, 0x80, 0xff, + 0x80, 0xff, 0x00, 0x3f, 0x00, 0x00, 0x7e, 0x80, 0xff, 0xc0, 0xff, 0x81, + 0xff, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0x80, 0xff, 0xc0, 0xff, 0x81, 0xff, + 0x80, 0x1f, 0x00, 0x00, 0xfc, 0x81, 0xff, 0xc1, 0xff, 0xc1, 0xff, 0xc0, + 0x1f, 0x00, 0x00, 0xfc, 0x81, 0xff, 0xc1, 0xff, 0xc1, 0xff, 0xc0, 0x1f, + 0x00, 0x00, 0xfc, 0x83, 0xff, 0xc1, 0xff, 0xc1, 0xff, 0xe0, 0x1f, 0x00, + 0x00, 0xfc, 0x83, 0xff, 0xe3, 0xff, 0xe3, 0xff, 0xe0, 0x1f, 0x00, 0x00, + 0xf8, 0x87, 0xff, 0xe3, 0xff, 0xe3, 0xff, 0xf0, 0x0f, 0x00, 0x00, 0xf8, + 0x8f, 0xff, 0xe7, 0xff, 0xf3, 0xff, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x8f, + 0xff, 0xe7, 0xff, 0xf3, 0xff, 0xf8, 0x0f, 0x00, 0x00, 0xf8, 0x9f, 0xff, + 0xe7, 0xff, 0xf3, 0xff, 0xfc, 0x0f, 0x00, 0x00, 0xf8, 0x9f, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x0f, 0x00, 0x00, 0xf8, 0xbf, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xfe, 0x0f, 0x00, 0x00, 0xf0, 0xbf, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xfe, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0xc0, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0xf8, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0x00, 0x00, 0x80, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x03, + 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xf8, 0xff, + 0x0f, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0xff, 0xff, 0xff, + 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q95o.bm b/bitmaps/q95o.bm new file mode 100644 index 0000000..3670003 --- /dev/null +++ b/bitmaps/q95o.bm @@ -0,0 +1,98 @@ +#define q95o_width 95 +#define q95o_height 95 +static unsigned char q95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x38, 0x0e, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x7f, 0x00, 0x1c, 0x1c, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x00, 0x1c, 0x1c, 0x80, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xe1, 0x00, 0x1c, 0x1c, 0x80, 0xc3, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x1c, 0x1c, 0xc0, 0x81, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc0, 0x01, 0x78, 0x0f, 0xc0, 0x81, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xc0, 0x01, 0xf8, 0x0f, 0xc0, 0x81, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xe0, 0x00, 0xf0, 0x07, 0x80, 0x83, 0x03, 0x00, 0x00, + 0x80, 0x07, 0xc0, 0xfb, 0x00, 0xc0, 0x01, 0x80, 0xef, 0x01, 0xf0, 0x00, + 0xe0, 0x1f, 0xc0, 0x7f, 0x00, 0xe0, 0x03, 0x00, 0xff, 0x01, 0xfc, 0x03, + 0xf0, 0x3f, 0x80, 0x3f, 0x00, 0xe0, 0x03, 0x00, 0xfe, 0x00, 0xfe, 0x07, + 0x70, 0x38, 0x00, 0x3c, 0x00, 0xe0, 0x03, 0x00, 0x1e, 0x00, 0x0e, 0x07, + 0x38, 0x70, 0x00, 0x3c, 0x00, 0xe0, 0x03, 0x00, 0x1e, 0x00, 0x07, 0x0e, + 0x38, 0x70, 0x00, 0x3c, 0x00, 0xe0, 0x03, 0x00, 0x1e, 0x00, 0x07, 0x0e, + 0x38, 0x70, 0x00, 0x7c, 0x00, 0x70, 0x07, 0x00, 0x1f, 0x00, 0x07, 0x0e, + 0x38, 0x38, 0x00, 0x7c, 0x00, 0x70, 0x07, 0x00, 0x1f, 0x00, 0x0e, 0x0e, + 0x70, 0x3c, 0x00, 0x7c, 0x00, 0x70, 0x07, 0x00, 0x1f, 0x00, 0x1e, 0x07, + 0xf0, 0x1f, 0x00, 0xfc, 0x00, 0x70, 0x07, 0x80, 0x1f, 0x00, 0xfc, 0x07, + 0xe0, 0x0f, 0x00, 0xfc, 0x00, 0x70, 0x07, 0x80, 0x1f, 0x00, 0xf8, 0x03, + 0x80, 0x1f, 0x00, 0xfc, 0x00, 0x38, 0x0e, 0x80, 0x1f, 0x00, 0xfc, 0x00, + 0x00, 0x3e, 0x00, 0xdc, 0x01, 0x38, 0x0e, 0xc0, 0x1d, 0x00, 0x3e, 0x00, + 0x00, 0x3e, 0x00, 0xdc, 0x01, 0x38, 0x0e, 0xc0, 0x1d, 0x00, 0x3e, 0x00, + 0x00, 0x7c, 0x00, 0xdc, 0x01, 0x38, 0x0e, 0xc0, 0x1d, 0x00, 0x1f, 0x00, + 0x00, 0x7c, 0x00, 0x9c, 0x03, 0x1c, 0x1c, 0xe0, 0x1c, 0x00, 0x1f, 0x00, + 0x00, 0xfc, 0x00, 0x9c, 0x03, 0x1c, 0x1c, 0xe0, 0x1c, 0x80, 0x1f, 0x00, + 0x00, 0xfc, 0x01, 0x9c, 0x03, 0x1c, 0x1c, 0xe0, 0x1c, 0xc0, 0x1f, 0x00, + 0x00, 0xdc, 0x01, 0x1c, 0x07, 0x1c, 0x1c, 0x70, 0x1c, 0xc0, 0x1d, 0x00, + 0x00, 0xb8, 0x03, 0x0e, 0x07, 0x1c, 0x1c, 0x70, 0x1c, 0xe0, 0x0e, 0x00, + 0x00, 0xb8, 0x03, 0x0e, 0x0e, 0x0e, 0x38, 0x38, 0x38, 0xe0, 0x0e, 0x00, + 0x00, 0x38, 0x07, 0x0e, 0x0e, 0x0e, 0x38, 0x38, 0x38, 0x70, 0x0e, 0x00, + 0x00, 0x38, 0x0f, 0x0e, 0x0e, 0x0e, 0x38, 0x38, 0x38, 0x78, 0x0e, 0x00, + 0x00, 0x38, 0x0e, 0x0e, 0x1c, 0x0e, 0x38, 0x1c, 0x38, 0x38, 0x0e, 0x00, + 0x00, 0x38, 0x1c, 0x0e, 0x1c, 0x07, 0x70, 0x1c, 0x38, 0x1c, 0x0e, 0x00, + 0x00, 0x70, 0x1c, 0x0e, 0x1c, 0x07, 0x70, 0x1c, 0x38, 0x1c, 0x07, 0x00, + 0x00, 0x70, 0x38, 0x0e, 0x38, 0x07, 0x70, 0x0e, 0x38, 0x0e, 0x07, 0x00, + 0x00, 0x70, 0x38, 0x0e, 0x38, 0x07, 0x70, 0x0e, 0x38, 0x0e, 0x07, 0x00, + 0x00, 0x70, 0x70, 0x0e, 0x38, 0x07, 0x70, 0x0e, 0x38, 0x07, 0x07, 0x00, + 0x00, 0x70, 0xf0, 0x0e, 0xf0, 0x03, 0xe0, 0x07, 0xb8, 0x07, 0x07, 0x00, + 0x00, 0x70, 0xe0, 0x0e, 0xf0, 0x03, 0xe0, 0x07, 0xb8, 0x03, 0x07, 0x00, + 0x00, 0xe0, 0xc0, 0x0f, 0xf0, 0x03, 0xe0, 0x07, 0xf8, 0x81, 0x03, 0x00, + 0x00, 0xe0, 0xc0, 0x0f, 0xe0, 0x83, 0xe0, 0x03, 0xf8, 0x81, 0x03, 0x00, + 0x00, 0xe0, 0x80, 0x0f, 0xe3, 0xe3, 0xe3, 0x63, 0xf8, 0x80, 0x03, 0x00, + 0x00, 0xe0, 0x80, 0x8f, 0xef, 0xf9, 0xcf, 0xfb, 0xf8, 0x80, 0x03, 0x00, + 0x00, 0xe0, 0x30, 0xff, 0xff, 0x7f, 0xff, 0xff, 0x7f, 0x86, 0x03, 0x00, + 0x00, 0xe0, 0xfd, 0xff, 0xff, 0x1f, 0xfc, 0xff, 0xff, 0xdf, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0x7f, 0xf0, 0x07, 0xf0, 0x07, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xcf, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf9, 0x01, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0xf8, 0xff, 0xff, 0x0f, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xc3, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0xf0, 0xff, 0xff, 0x07, 0x80, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x70, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, 0xf8, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/q95s.bm b/bitmaps/q95s.bm new file mode 100644 index 0000000..16160c8 --- /dev/null +++ b/bitmaps/q95s.bm @@ -0,0 +1,98 @@ +#define q95s_width 95 +#define q95s_height 95 +static unsigned char q95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0xf8, 0x0f, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x7f, 0x00, 0xfc, 0x1f, 0x00, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x00, 0xfc, 0x1f, 0x80, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x00, 0xfc, 0x1f, 0x80, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0xfc, 0x1f, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0x0f, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf8, 0x0f, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x01, 0xf0, 0x07, 0xc0, 0xff, 0x03, 0x00, 0x00, + 0x80, 0x07, 0xc0, 0xff, 0x00, 0xc0, 0x01, 0x80, 0xff, 0x01, 0xf0, 0x00, + 0xe0, 0x1f, 0xc0, 0xff, 0x00, 0xe0, 0x03, 0x80, 0xff, 0x01, 0xfc, 0x03, + 0xf0, 0x3f, 0x80, 0x7f, 0x00, 0xe0, 0x03, 0x00, 0xff, 0x00, 0xfe, 0x07, + 0xf0, 0x3f, 0x00, 0x3e, 0x00, 0xe0, 0x03, 0x00, 0x3e, 0x00, 0xfe, 0x07, + 0xf8, 0x7f, 0x00, 0x3c, 0x00, 0xe0, 0x03, 0x00, 0x1e, 0x00, 0xff, 0x0f, + 0xf8, 0x7f, 0x00, 0x3c, 0x00, 0xf0, 0x07, 0x00, 0x1e, 0x00, 0xff, 0x0f, + 0xf8, 0x7f, 0x00, 0x7c, 0x00, 0xf0, 0x07, 0x00, 0x1f, 0x00, 0xff, 0x0f, + 0xf8, 0x7f, 0x00, 0x7c, 0x00, 0xf0, 0x07, 0x00, 0x1f, 0x00, 0xff, 0x0f, + 0xf0, 0x3f, 0x00, 0x7c, 0x00, 0xf0, 0x07, 0x00, 0x1f, 0x00, 0xfe, 0x07, + 0xf0, 0x3f, 0x00, 0xfc, 0x00, 0xf0, 0x07, 0x80, 0x1f, 0x00, 0xfe, 0x07, + 0xe0, 0x1f, 0x00, 0xfc, 0x00, 0xf8, 0x0f, 0x80, 0x1f, 0x00, 0xfc, 0x03, + 0x80, 0x1f, 0x00, 0xfc, 0x00, 0xf8, 0x0f, 0x80, 0x1f, 0x00, 0xfc, 0x00, + 0x00, 0x3e, 0x00, 0xfc, 0x01, 0xf8, 0x0f, 0xc0, 0x1f, 0x00, 0x3e, 0x00, + 0x00, 0x3e, 0x00, 0xfc, 0x01, 0xf8, 0x0f, 0xc0, 0x1f, 0x00, 0x3e, 0x00, + 0x00, 0x7c, 0x00, 0xfe, 0x03, 0xf8, 0x0f, 0xe0, 0x3f, 0x00, 0x1f, 0x00, + 0x00, 0xfc, 0x00, 0xfe, 0x03, 0xfc, 0x1f, 0xe0, 0x3f, 0x80, 0x1f, 0x00, + 0x00, 0xfc, 0x00, 0xfe, 0x03, 0xfc, 0x1f, 0xe0, 0x3f, 0x80, 0x1f, 0x00, + 0x00, 0xfc, 0x01, 0xfe, 0x07, 0xfc, 0x1f, 0xf0, 0x3f, 0xc0, 0x1f, 0x00, + 0x00, 0xfc, 0x01, 0xfe, 0x07, 0xfc, 0x1f, 0xf0, 0x3f, 0xc0, 0x1f, 0x00, + 0x00, 0xfc, 0x03, 0xfe, 0x07, 0xfe, 0x3f, 0xf0, 0x3f, 0xe0, 0x1f, 0x00, + 0x00, 0xf8, 0x03, 0xfe, 0x0f, 0xfe, 0x3f, 0xf8, 0x3f, 0xe0, 0x0f, 0x00, + 0x00, 0xf8, 0x07, 0xfe, 0x0f, 0xfe, 0x3f, 0xf8, 0x3f, 0xf0, 0x0f, 0x00, + 0x00, 0xf8, 0x0f, 0xfe, 0x0f, 0xfe, 0x3f, 0xf8, 0x3f, 0xf8, 0x0f, 0x00, + 0x00, 0xf8, 0x0f, 0xfe, 0x1f, 0xfe, 0x3f, 0xfc, 0x3f, 0xf8, 0x0f, 0x00, + 0x00, 0xf8, 0x1f, 0xfe, 0x1f, 0xff, 0x7f, 0xfc, 0x3f, 0xfc, 0x0f, 0x00, + 0x00, 0xf0, 0x1f, 0xfe, 0x1f, 0xff, 0x7f, 0xfc, 0x3f, 0xfc, 0x07, 0x00, + 0x00, 0xf0, 0x3f, 0xfe, 0x3f, 0xff, 0x7f, 0xfe, 0x3f, 0xfe, 0x07, 0x00, + 0x00, 0xf0, 0x7f, 0xfe, 0x3f, 0xff, 0x7f, 0xfe, 0x3f, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0x7f, 0xfe, 0xbf, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x01, 0x00, 0x00, 0xc0, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xf8, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x80, 0xff, 0xff, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xc1, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x30, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r108o.bm b/bitmaps/r108o.bm new file mode 100644 index 0000000..b9554df --- /dev/null +++ b/bitmaps/r108o.bm @@ -0,0 +1,129 @@ +#define r108o_width 108 +#define r108o_height 108 +static unsigned char r108o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0x0f, 0xc0, 0xff, 0x1f, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x0e, 0xc0, 0x01, 0x1c, 0x80, 0x03, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x0e, 0xc0, 0x01, 0x1c, + 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x0e, 0xc0, + 0x01, 0x1c, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x0e, 0xc0, 0x01, 0x1c, 0x80, 0x03, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0xfe, 0xff, 0x01, 0xfc, 0xff, 0x03, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0xfe, 0xff, 0x01, 0xfc, 0xff, 0x03, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0xfc, 0xff, 0x00, 0xf8, 0xff, 0x03, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r108s.bm b/bitmaps/r108s.bm new file mode 100644 index 0000000..e6e0ff7 --- /dev/null +++ b/bitmaps/r108s.bm @@ -0,0 +1,129 @@ +#define r108s_width 108 +#define r108s_height 108 +static unsigned char r108s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, + 0x0f, 0xc0, 0xff, 0x1f, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0xc0, 0xff, 0x1f, + 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0xc0, + 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0x0f, 0xc0, 0xff, 0x1f, 0x80, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, + 0x00, 0x00, 0x00, 0x80, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r116o.bm b/bitmaps/r116o.bm new file mode 100644 index 0000000..b485a85 --- /dev/null +++ b/bitmaps/r116o.bm @@ -0,0 +1,148 @@ +#define r116o_width 116 +#define r116o_height 116 +static unsigned char r116o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x03, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, 0xe0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, + 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x38, 0x00, + 0x0e, 0x80, 0x03, 0xe0, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x38, 0x00, 0x0e, 0x80, 0x03, 0xe0, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x38, 0x00, 0x0e, 0x80, 0x03, 0xe0, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x38, 0x00, 0x0e, 0x80, 0x03, + 0xe0, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0xf8, 0xff, + 0x0f, 0x80, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0xf8, 0xff, 0x0f, 0x80, 0xff, 0xff, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0xf0, 0xff, 0x0f, 0x00, 0xff, 0x7f, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r116s.bm b/bitmaps/r116s.bm new file mode 100644 index 0000000..434fb17 --- /dev/null +++ b/bitmaps/r116s.bm @@ -0,0 +1,148 @@ +#define r116s_width 116 +#define r116s_height 116 +static unsigned char r116s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0xff, 0x3f, 0x00, 0xfc, 0xff, 0x03, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, 0xe0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, + 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, + 0xfe, 0xff, 0x03, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, 0xe0, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x3f, 0x00, 0xfe, 0xff, 0x03, + 0xe0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r129o.bm b/bitmaps/r129o.bm new file mode 100644 index 0000000..b9bcee8 --- /dev/null +++ b/bitmaps/r129o.bm @@ -0,0 +1,186 @@ +#define r129o_width 129 +#define r129o_height 129 +static unsigned char r129o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, + 0x00, 0xff, 0xff, 0x01, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, + 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x07, 0x80, 0x07, 0xc0, 0x03, + 0xe0, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, + 0x07, 0x80, 0x07, 0xc0, 0x03, 0xe0, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x80, 0x07, 0x80, 0x07, 0xc0, 0x03, 0xe0, 0x01, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0x07, 0x80, + 0x07, 0xc0, 0x03, 0xe0, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0f, 0x80, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x80, 0xff, 0xff, 0x07, 0xc0, + 0xff, 0xff, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, + 0x80, 0xff, 0xff, 0x07, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, + 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r129s.bm b/bitmaps/r129s.bm new file mode 100644 index 0000000..793b94c --- /dev/null +++ b/bitmaps/r129s.bm @@ -0,0 +1,186 @@ +#define r129s_width 129 +#define r129s_height 129 +static unsigned char r129s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0x03, + 0x00, 0xff, 0xff, 0x01, 0xc0, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, + 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, + 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, 0xff, 0xff, 0x03, 0xe0, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x07, 0x80, + 0xff, 0xff, 0x03, 0xe0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xc0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r21o.bm b/bitmaps/r21o.bm new file mode 100644 index 0000000..653fa36 --- /dev/null +++ b/bitmaps/r21o.bm @@ -0,0 +1,9 @@ +#define r21o_width 21 +#define r21o_height 21 +static unsigned char r21o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xce, 0x01, 0xd0, 0x7b, 0x01, + 0x10, 0x00, 0x01, 0xf0, 0xff, 0x01, 0x40, 0x40, 0x00, 0xc0, 0x7f, 0x00, + 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, + 0x40, 0x40, 0x00, 0x40, 0x40, 0x00, 0xc0, 0x7f, 0x00, 0x60, 0xc0, 0x00, + 0xf0, 0xff, 0x01, 0x18, 0x00, 0x03, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/r21s.bm b/bitmaps/r21s.bm new file mode 100644 index 0000000..7d6f80e --- /dev/null +++ b/bitmaps/r21s.bm @@ -0,0 +1,9 @@ +#define r21s_width 21 +#define r21s_height 21 +static unsigned char r21s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xce, 0x01, 0xf0, 0xff, 0x01, + 0xf0, 0xff, 0x01, 0x30, 0x80, 0x01, 0xc0, 0x7f, 0x00, 0x40, 0x40, 0x00, + 0xc0, 0x7f, 0x00, 0xc0, 0x7f, 0x00, 0xc0, 0x7f, 0x00, 0xc0, 0x7f, 0x00, + 0xc0, 0x7f, 0x00, 0xc0, 0x7f, 0x00, 0xc0, 0x7f, 0x00, 0x60, 0xc0, 0x00, + 0xf0, 0xff, 0x01, 0x18, 0x00, 0x03, 0xf8, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00}; diff --git a/bitmaps/r25o.bm b/bitmaps/r25o.bm new file mode 100644 index 0000000..7cea1b9 --- /dev/null +++ b/bitmaps/r25o.bm @@ -0,0 +1,12 @@ +#define r25o_width 25 +#define r25o_height 25 +static unsigned char r25o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x39, 0x0f, 0x00, 0x20, 0xef, 0x09, 0x00, 0x20, 0x00, 0x08, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0xc0, 0xff, 0x07, 0x00, 0x80, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x02, 0x00, 0x80, 0x00, 0x02, 0x00, 0x80, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x02, 0x00, 0x80, 0x00, 0x02, 0x00, 0x80, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x02, 0x00, 0x80, 0xff, 0x03, 0x00, 0xc0, 0x00, 0x06, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x20, 0x00, 0x08, 0x00, 0xf0, 0xff, 0x1f, 0x00, + 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r25s.bm b/bitmaps/r25s.bm new file mode 100644 index 0000000..455e3d6 --- /dev/null +++ b/bitmaps/r25s.bm @@ -0,0 +1,12 @@ +#define r25s_width 25 +#define r25s_height 25 +static unsigned char r25s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xe0, 0x39, 0x0f, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x20, 0x00, 0x08, 0x00, 0xc0, 0x00, 0x06, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x80, 0xff, 0x03, 0x00, 0x80, 0xff, 0x03, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x80, 0xff, 0x03, 0x00, 0x80, 0xff, 0x03, 0x00, 0x80, 0xff, 0x03, 0x00, + 0x80, 0xff, 0x03, 0x00, 0x80, 0x00, 0x02, 0x00, 0xc0, 0xff, 0x07, 0x00, + 0x40, 0x00, 0x0c, 0x00, 0xc0, 0xff, 0x0f, 0x00, 0x30, 0x00, 0x18, 0x00, + 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r29o.bm b/bitmaps/r29o.bm new file mode 100644 index 0000000..591e55c --- /dev/null +++ b/bitmaps/r29o.bm @@ -0,0 +1,13 @@ +#define r29o_width 29 +#define r29o_height 29 +static unsigned char r29o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe3, 0x79, 0x00, 0x40, 0x22, 0x49, 0x00, 0x40, 0x3e, 0x4f, 0x00, + 0x40, 0x00, 0x40, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x80, 0x00, 0x20, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, + 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, + 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x01, 0x10, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0x01, 0x30, 0x00, 0xc0, 0xff, 0x7f, 0x00, + 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0x40, 0x00, 0xf0, 0xff, 0xff, 0x01, + 0x10, 0x00, 0x00, 0x01, 0xf0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r29s.bm b/bitmaps/r29s.bm new file mode 100644 index 0000000..3ed032c --- /dev/null +++ b/bitmaps/r29s.bm @@ -0,0 +1,13 @@ +#define r29s_width 29 +#define r29s_height 29 +static unsigned char r29s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xe3, 0x79, 0x00, 0xc0, 0xe3, 0x79, 0x00, 0xc0, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0x7f, 0x00, 0x40, 0x00, 0x40, 0x00, 0x80, 0xff, 0x3f, 0x00, + 0x00, 0x01, 0x10, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, 0x00, 0xff, 0x1f, 0x00, + 0x00, 0x01, 0x10, 0x00, 0x00, 0xff, 0x3f, 0x00, 0x80, 0x00, 0x60, 0x00, + 0xc0, 0xff, 0x7f, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0x70, 0x00, 0xc0, 0x01, + 0xf0, 0xff, 0xff, 0x01, 0xf0, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r33o.bm b/bitmaps/r33o.bm new file mode 100644 index 0000000..bedcced --- /dev/null +++ b/bitmaps/r33o.bm @@ -0,0 +1,39 @@ + +#define r33o_width 33 +#define r33o_height 33 +#define r33o_xoff 5 +#define r33o_yoff 4 +static unsigned char r33o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xc7, 0xc7, 0x07, 0x00, + 0x40, 0x44, 0x44, 0x04, 0x00, + 0x40, 0x7c, 0x7c, 0x04, 0x00, + 0x40, 0x00, 0x00, 0x04, 0x00, + 0xc0, 0xff, 0xff, 0x07, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x01, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0x20, 0x00, 0x00, 0x08, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r33s.bm b/bitmaps/r33s.bm new file mode 100644 index 0000000..9d04f93 --- /dev/null +++ b/bitmaps/r33s.bm @@ -0,0 +1,39 @@ + +#define r33s_width 33 +#define r33s_height 33 +#define r33s_xoff 5 +#define r33s_yoff 4 +static unsigned char r33s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xc7, 0xc7, 0x07, 0x00, + 0xc0, 0xc7, 0xc7, 0x07, 0x00, + 0xc0, 0xff, 0xff, 0x07, 0x00, + 0xc0, 0xff, 0xff, 0x07, 0x00, + 0xc0, 0x00, 0x00, 0x06, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x03, 0x80, 0x01, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0x00, 0x00, + 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x01, 0x00, + 0x80, 0x00, 0x00, 0x02, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0x03, 0x00, + 0xe0, 0x00, 0x00, 0x0e, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0xe0, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r37o.bm b/bitmaps/r37o.bm new file mode 100644 index 0000000..bbe2943 --- /dev/null +++ b/bitmaps/r37o.bm @@ -0,0 +1,19 @@ +#define r37o_width 37 +#define r37o_height 37 +static unsigned char r37o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x1f, 0x3e, 0x00, 0x80, 0x08, 0x11, 0x22, 0x00, 0x80, + 0x08, 0x11, 0x22, 0x00, 0x80, 0xf8, 0xf1, 0x23, 0x00, 0x80, 0x00, 0x00, + 0x20, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, + 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x04, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, + 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, + 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, + 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, 0x10, + 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x20, + 0x00, 0x00, 0x80, 0x00, 0x20, 0x00, 0x00, 0x80, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r37s.bm b/bitmaps/r37s.bm new file mode 100644 index 0000000..90ebffa --- /dev/null +++ b/bitmaps/r37s.bm @@ -0,0 +1,19 @@ +#define r37s_width 37 +#define r37s_height 37 +static unsigned char r37s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0x0f, 0x1f, 0x3e, 0x00, 0x80, 0x0f, 0x1f, 0x3e, 0x00, 0x80, + 0x0f, 0x1f, 0x3e, 0x00, 0x80, 0xff, 0xff, 0x3f, 0x00, 0x80, 0xff, 0xff, + 0x3f, 0x00, 0x80, 0x00, 0x00, 0x20, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0xfc, + 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, + 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, + 0xfc, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, + 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, 0x00, 0xfc, 0xff, 0x07, 0x00, + 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0xfe, 0xff, 0x0f, 0x00, 0x00, 0x01, + 0x00, 0x10, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0xff, 0xff, 0x1f, 0x00, 0xe0, 0x01, 0x00, 0xf0, 0x00, 0xe0, + 0xff, 0xff, 0xff, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x00, 0xe0, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r40o.bm b/bitmaps/r40o.bm new file mode 100644 index 0000000..36c531a --- /dev/null +++ b/bitmaps/r40o.bm @@ -0,0 +1,20 @@ +#define r40o_width 40 +#define r40o_height 40 +static unsigned char r40o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x22, 0x44, 0x88, + 0x00, 0x00, 0x22, 0x44, 0x88, 0x00, 0x00, 0xe2, 0xc7, 0x8f, 0x00, 0x00, + 0x02, 0x00, 0x80, 0x00, 0x00, 0x02, 0x00, 0x80, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0x00, 0x00, 0x08, 0x00, 0x30, 0x00, 0x00, 0x30, 0x00, 0x08, 0x00, + 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, + 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, + 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, + 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, + 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0xf0, 0xff, 0x1f, 0x00, 0x00, 0x08, + 0x00, 0x60, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x00, 0x04, 0x00, 0x80, 0x00, 0x80, + 0xff, 0xff, 0xff, 0x03, 0x80, 0x00, 0x00, 0x00, 0x02, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x80, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r40s.bm b/bitmaps/r40s.bm new file mode 100644 index 0000000..2feb3b3 --- /dev/null +++ b/bitmaps/r40s.bm @@ -0,0 +1,20 @@ +#define r40s_width 40 +#define r40s_height 40 +static unsigned char r40s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0x3e, 0x7c, 0xf8, + 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0x3f, 0x00, 0x00, 0xf0, 0xff, 0x0f, 0x00, + 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, + 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, + 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, + 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, + 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0xe0, 0xff, 0x0f, 0x00, + 0x00, 0xe0, 0xff, 0x0f, 0x00, 0x00, 0x30, 0x00, 0x18, 0x00, 0x00, 0xf8, + 0xff, 0x7f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0x04, 0x00, 0xc0, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x00, 0x80, + 0x03, 0x00, 0x80, 0x03, 0x80, 0xff, 0xff, 0xff, 0x03, 0x80, 0xff, 0xff, + 0xff, 0x03, 0x80, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r45o.bm b/bitmaps/r45o.bm new file mode 100644 index 0000000..0ea3548 --- /dev/null +++ b/bitmaps/r45o.bm @@ -0,0 +1,51 @@ + +#define r45o_width 45 +#define r45o_height 45 +#define r45o_xoff 6 +#define r45o_yoff 4 +static unsigned char r45o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0xf0, 0x83, 0x1f, 0x00, + 0x00, 0x41, 0x10, 0x82, 0x10, 0x00, + 0x00, 0x41, 0x10, 0x82, 0x10, 0x00, + 0x00, 0xc1, 0x1f, 0xfe, 0x10, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x10, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x04, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x08, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x08, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0x40, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, + 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r45s.bm b/bitmaps/r45s.bm new file mode 100644 index 0000000..5ad6a05 --- /dev/null +++ b/bitmaps/r45s.bm @@ -0,0 +1,51 @@ + +#define r45s_width 45 +#define r45s_height 45 +#define r45s_xoff 6 +#define r45s_yoff 4 +static unsigned char r45s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7f, 0xf0, 0x83, 0x1f, 0x00, + 0x00, 0x7f, 0xf0, 0x83, 0x1f, 0x00, + 0x00, 0x7f, 0xf0, 0x83, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0xff, 0xff, 0xff, 0x1f, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x18, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x01, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x78, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r49o.bm b/bitmaps/r49o.bm new file mode 100644 index 0000000..ac98c15 --- /dev/null +++ b/bitmaps/r49o.bm @@ -0,0 +1,55 @@ + +#define r49o_width 49 +#define r49o_height 49 +#define r49o_xoff 7 +#define r49o_yoff 4 +static unsigned char r49o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xe0, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0x82, 0x20, 0x08, 0x82, 0x00, 0x00, + 0x00, 0x82, 0x20, 0x08, 0x82, 0x00, 0x00, + 0x00, 0x82, 0x20, 0x08, 0x82, 0x00, 0x00, + 0x00, 0x82, 0x3f, 0xf8, 0x83, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x10, 0x00, 0x00, + 0x00, 0x10, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0x08, 0x00, 0x00, 0x20, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x40, 0x00, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r49s.bm b/bitmaps/r49s.bm new file mode 100644 index 0000000..71b9d1a --- /dev/null +++ b/bitmaps/r49s.bm @@ -0,0 +1,55 @@ + +#define r49s_width 49 +#define r49s_height 49 +#define r49s_xoff 7 +#define r49s_yoff 4 +static unsigned char r49s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0xe0, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xe0, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xe0, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xe0, 0x0f, 0xfe, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x20, 0x00, 0x00, 0x08, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x0c, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x80, 0x07, 0x00, 0x00, 0xc0, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x80, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; diff --git a/bitmaps/r54o.bm b/bitmaps/r54o.bm new file mode 100644 index 0000000..312fc95 --- /dev/null +++ b/bitmaps/r54o.bm @@ -0,0 +1,35 @@ +#define r54o_width 54 +#define r54o_height 54 +static unsigned char r54o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x83, 0x7f, 0xf8, 0x0f, + 0x00, 0x00, 0xfc, 0x83, 0x7f, 0xf8, 0x0f, 0x00, 0x00, 0x0c, 0x83, 0x61, + 0x18, 0x0c, 0x00, 0x00, 0x0c, 0xff, 0xe1, 0x1f, 0x0c, 0x00, 0x00, 0x0c, + 0xff, 0xe1, 0x1f, 0x0c, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0x00, + 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, + 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, + 0x60, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, + 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x70, 0x00, 0x00, 0x80, + 0x03, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0xff, 0x07, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r54s.bm b/bitmaps/r54s.bm new file mode 100644 index 0000000..2dfbbe9 --- /dev/null +++ b/bitmaps/r54s.bm @@ -0,0 +1,35 @@ +#define r54s_width 54 +#define r54s_height 54 +static unsigned char r54s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x83, 0x7f, 0xf8, 0x0f, + 0x00, 0x00, 0xfc, 0x83, 0x7f, 0xf8, 0x0f, 0x00, 0x00, 0xfc, 0x83, 0x7f, + 0xf8, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, + 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xe0, 0x00, 0x00, 0x00, + 0x80, 0x01, 0x00, 0x60, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x80, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, 0xe0, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0xe0, 0x01, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x07, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x38, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x3e, + 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x3e, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r58o.bm b/bitmaps/r58o.bm new file mode 100644 index 0000000..4f2d96c --- /dev/null +++ b/bitmaps/r58o.bm @@ -0,0 +1,42 @@ +#define r58o_width 58 +#define r58o_height 58 +static unsigned char r58o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xfe, + 0xc1, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xfe, 0xc1, 0x7f, 0x00, 0x00, + 0x00, 0x18, 0x0c, 0x86, 0xc1, 0x60, 0x00, 0x00, 0x00, 0x18, 0x0c, 0x86, + 0xc1, 0x60, 0x00, 0x00, 0x00, 0x18, 0xfc, 0x87, 0xff, 0x60, 0x00, 0x00, + 0x00, 0x18, 0xfc, 0x87, 0xff, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x0e, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r58s.bm b/bitmaps/r58s.bm new file mode 100644 index 0000000..b02cf4d --- /dev/null +++ b/bitmaps/r58s.bm @@ -0,0 +1,42 @@ +#define r58s_width 58 +#define r58s_height 58 +static unsigned char r58s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xfe, + 0xc1, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xfe, 0xc1, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0x0f, 0xfe, 0xc1, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0xfe, + 0xc1, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x03, 0x00, 0x00, + 0x00, 0x80, 0x03, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r64o.bm b/bitmaps/r64o.bm new file mode 100644 index 0000000..a2dcaff --- /dev/null +++ b/bitmaps/r64o.bm @@ -0,0 +1,46 @@ +#define r64o_width 64 +#define r64o_height 64 +static unsigned char r64o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0xf0, + 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, + 0x00, 0xc0, 0x60, 0x30, 0x0c, 0x06, 0x03, 0x00, 0x00, 0xc0, 0x60, 0x30, + 0x0c, 0x06, 0x03, 0x00, 0x00, 0xc0, 0xe0, 0x3f, 0xfc, 0x07, 0x03, 0x00, + 0x00, 0xc0, 0xe0, 0x3f, 0xfc, 0x07, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0x00, 0x0f, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r64s.bm b/bitmaps/r64s.bm new file mode 100644 index 0000000..148a9be --- /dev/null +++ b/bitmaps/r64s.bm @@ -0,0 +1,46 @@ +#define r64s_width 64 +#define r64s_height 64 +static unsigned char r64s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, 0xf0, + 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, + 0x00, 0xc0, 0x7f, 0xf0, 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0x7f, 0xf0, + 0x0f, 0xfe, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, + 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x01, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, + 0xff, 0xff, 0x03, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, + 0x00, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r72o.bm b/bitmaps/r72o.bm new file mode 100644 index 0000000..5cc37f8 --- /dev/null +++ b/bitmaps/r72o.bm @@ -0,0 +1,57 @@ +#define r72o_width 72 +#define r72o_height 72 +static unsigned char r72o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, 0x00, 0x60, 0xc0, + 0x80, 0x81, 0x01, 0x03, 0x06, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x81, 0x01, + 0x03, 0x06, 0x00, 0x00, 0x60, 0xc0, 0x80, 0x81, 0x01, 0x03, 0x06, 0x00, + 0x00, 0x60, 0xc0, 0xff, 0x81, 0xff, 0x03, 0x06, 0x00, 0x00, 0x60, 0xc0, + 0xff, 0x81, 0xff, 0x03, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x06, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, + 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, + 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0xe0, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x01, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, + 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r72s.bm b/bitmaps/r72s.bm new file mode 100644 index 0000000..c6efbd4 --- /dev/null +++ b/bitmaps/r72s.bm @@ -0,0 +1,57 @@ +#define r72s_width 72 +#define r72s_height 72 +static unsigned char r72s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, + 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, + 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0x80, 0xff, 0x01, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0x01, + 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x03, 0x00, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, + 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r80o.bm b/bitmaps/r80o.bm new file mode 100644 index 0000000..23f91a8 --- /dev/null +++ b/bitmaps/r80o.bm @@ -0,0 +1,70 @@ +#define r80o_width 80 +#define r80o_height 80 +static unsigned char r80o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, + 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, 0xf0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x0c, 0x18, 0x18, 0x30, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x0c, 0x18, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0c, 0x18, 0x18, 0x30, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfc, + 0x1f, 0xf8, 0x3f, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0xfc, 0x1f, 0xf8, + 0x3f, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x03, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, + 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x0f, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, + 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r80s.bm b/bitmaps/r80s.bm new file mode 100644 index 0000000..9bb5219 --- /dev/null +++ b/bitmaps/r80s.bm @@ -0,0 +1,70 @@ +#define r80s_width 80 +#define r80s_height 80 +static unsigned char r80s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, + 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, 0xf0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, 0xf0, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0x0f, 0xf8, 0x1f, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x0f, 0xf8, 0x1f, 0xf0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, + 0x00, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, + 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0xf0, 0x0f, 0x00, 0x00, 0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r87o.bm b/bitmaps/r87o.bm new file mode 100644 index 0000000..51c1216 --- /dev/null +++ b/bitmaps/r87o.bm @@ -0,0 +1,83 @@ +#define r87o_width 87 +#define r87o_height 87 +static unsigned char r87o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x3f, 0xc0, 0xff, 0x03, 0xfc, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x3f, 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x3f, 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x0e, + 0x38, 0xe0, 0x80, 0x03, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x38, + 0xe0, 0x80, 0x03, 0x0e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xf8, 0xff, + 0x80, 0xff, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xf8, 0xff, 0x80, + 0xff, 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xf0, 0xff, 0x00, 0xff, + 0x0f, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x38, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, + 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, + 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0x00, 0x00, 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0x01, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, + 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r87s.bm b/bitmaps/r87s.bm new file mode 100644 index 0000000..7bc2fa2 --- /dev/null +++ b/bitmaps/r87s.bm @@ -0,0 +1,83 @@ +#define r87s_width 87 +#define r87s_height 87 +static unsigned char r87s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0x3f, 0xc0, 0xff, 0x03, 0xfc, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0xfe, 0x3f, 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, + 0xfe, 0x3f, 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x3f, 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x3f, + 0xe0, 0xff, 0x03, 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x3f, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, + 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, + 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, + 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, + 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x70, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, + 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, + 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, + 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x07, 0x00, + 0x00, 0xf0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, + 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r95o.bm b/bitmaps/r95o.bm new file mode 100644 index 0000000..e335736 --- /dev/null +++ b/bitmaps/r95o.bm @@ -0,0 +1,98 @@ +#define r95o_width 95 +#define r95o_height 95 +static unsigned char r95o_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0x01, 0xfc, 0xff, 0x00, 0xfe, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x01, 0xfc, 0xff, 0x00, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x01, 0xfc, 0xff, 0x00, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xc0, 0x01, 0x1c, 0xe0, 0x00, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xc0, 0x01, 0x1c, 0xe0, 0x00, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xc0, 0xff, 0x1f, 0xe0, 0xff, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0xc0, 0xff, 0x1f, 0xe0, 0xff, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x80, 0xff, 0x0f, 0xc0, 0xff, 0x07, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/r95s.bm b/bitmaps/r95s.bm new file mode 100644 index 0000000..9018e28 --- /dev/null +++ b/bitmaps/r95s.bm @@ -0,0 +1,98 @@ +#define r95s_width 95 +#define r95s_height 95 +static unsigned char r95s_bits[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0x00, 0xfe, 0x7f, 0x00, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x00, 0xfe, 0x7f, 0x80, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x00, 0xfe, 0x7f, 0x80, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x00, 0xfe, 0x7f, 0x80, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0x00, 0xfe, 0x7f, 0x80, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, + 0x00, 0x00, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x00, 0x00, + 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x1f, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xfc, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, + 0x00, 0x00, 0xe0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0x01, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x07, 0x00, 0x00, + 0x00, 0xc0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; diff --git a/bitmaps/unsigned.sh b/bitmaps/unsigned.sh new file mode 100755 index 0000000..338ded7 --- /dev/null +++ b/bitmaps/unsigned.sh @@ -0,0 +1,8 @@ +#! /bin/csh + +foreach file ($*) + mv $file ${file}.old$$ && \ + sed -e 's/static char/static unsigned char/' < $file.old$$ > $file && \ + rm ${file}.old$$ +end + diff --git a/childio.c b/childio.c new file mode 100644 index 0000000..7fd3d14 --- /dev/null +++ b/childio.c @@ -0,0 +1,260 @@ +/* + * childio.c -- set up communication with child processes $Id: + * childio.c,v 1.2 1994/11/12 19:31:41 mann Exp mann $ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. */ + +/* This file splits into two entirely different pieces of code + depending on whether USE_PTYS is 1. The whole reason for all + the pty nonsense is that select() does not work on pipes in System-V + derivatives (at least some of them). This is a problem because + XtAppAddInput works by adding its argument to a select that is done + deep inside Xlib. +*/ + +#include "config.h" + +#include +#if HAVE_UNISTD_H +# include +#endif + +#include "common.h" +#include "frontend.h" + +#if !USE_PTYS +/* This code is for systems where pipes work properly */ + +void SetUpChildIO(to_prog, from_prog) + int to_prog[2], from_prog[2]; +{ + signal(SIGPIPE, SIG_IGN); + pipe(to_prog); + pipe(from_prog); +} + +#else /* USE_PTYS == 1 */ +/* This code is for all systems where we must use ptys */ + +#include +#include +#include +#if HAVE_STROPTS_H +# include +#endif /* HAVE_STROPTS_H */ +#if HAVE_SYS_FCNTL_H +# include +#else /* not HAVE_SYS_FCNTL_H */ +# if HAVE_FCNTL_H +# include +# endif /* HAVE_FCNTL_H */ +#endif /* not HAVE_SYS_FCNTL_H */ + +int PseudoTTY P((char pty_name[])); + +int SetUpChildIO(to_prog, from_prog) + int to_prog[2], from_prog[2]; +{ + char pty_name[MSG_SIZ]; + + if ((to_prog[1] = PseudoTTY(pty_name)) == -1) { + DisplayFatalError("Can't open pseudo-tty", errno, 1); + ExitEvent(1); + } + from_prog[0] = to_prog[1]; + to_prog[0] = from_prog[1] = open(pty_name, O_RDWR, 0); + +#if HAVE_STROPTS_H /* do we really need this?? pipe-like behavior is fine */ + if (ioctl (to_prog[0], I_PUSH, "ptem") == -1 || + ioctl (to_prog[0], I_PUSH, "ldterm") == -1 || + ioctl (to_prog[0], I_PUSH, "ttcompat") == -1) { +# ifdef NOTDEF /* seems some systems don't have or need ptem and ttcompat */ + DisplayFatalError("Can't ioctl pseudo-tty", errno, 1); + ExitEvent(1); +# endif /*NOTDEF*/ + } +#endif /* HAVE_STROPTS_H */ + +} + +#if HAVE_GRANTPT +/* This code is for SVR4 */ + +int PseudoTTY(pty_name) + char pty_name[]; +{ + extern char *ptsname(); + char *ptss; + int fd; + + fd = open("/dev/ptmx", O_RDWR); + if (fd < 0) return fd; + if (grantpt(fd) == -1) return -1; + if (unlockpt(fd) == -1) return -1; + if (!(ptss = ptsname(fd))) return -1; + strcpy(pty_name, ptss); + return fd; +} + +#else /* not HAVE_GRANTPT */ +#if HAVE__GETPTY +/* This code is for IRIX */ + +int PseudoTTY(pty_name) + char pty_name[]; +{ + int fd; + char *ptyn; + + ptyn = _getpty(&fd, O_RDWR, 0600, 0); + if (ptyn == NULL) return -1; + strcpy(pty_name, ptyn); + return fd; +} + +#else /* not HAVE__GETPTY */ +#if HAVE_LIBSEQ +/* This code is for Sequent DYNIX/ptx. Untested. --tpm */ + +int PseudoTTY(pty_name) + char pty_name[]; +{ + int fd; + char *slave, *master; + + fd = getpseudotty(&slave, &master); + if (fd < 0) return fd; + strcpy(pty_name, slave); + return fd; +} + +#else /* not HAVE_LIBSEQ */ +/* This code is for all other systems */ +/* The code is adapted from GNU Emacs 19.24 */ + +#ifndef FIRST_PTY_LETTER +#define FIRST_PTY_LETTER 'p' +#endif +#ifndef LAST_PTY_LETTER +#define LAST_PTY_LETTER 'z' +#endif + +int PseudoTTY(pty_name) + char pty_name[]; +{ + struct stat stb; + register c, i; + int fd; + + /* Some systems name their pseudoterminals so that there are gaps in + the usual sequence - for example, on HP9000/S700 systems, there + are no pseudoterminals with names ending in 'f'. So we wait for + three failures in a row before deciding that we've reached the + end of the ptys. */ + int failed_count = 0; + +#ifdef PTY_ITERATION + PTY_ITERATION +#else + for (c = FIRST_PTY_LETTER; c <= LAST_PTY_LETTER; c++) + for (i = 0; i < 16; i++) +#endif + { +#ifdef PTY_NAME_SPRINTF + PTY_NAME_SPRINTF +#else + sprintf (pty_name, "/dev/pty%c%x", c, i); +#endif /* no PTY_NAME_SPRINTF */ + +#ifdef PTY_OPEN + PTY_OPEN; +#else /* no PTY_OPEN */ + if (stat (pty_name, &stb) < 0) + { + failed_count++; + if (failed_count >= 3) + return -1; + } + else + failed_count = 0; + fd = open (pty_name, O_RDWR, 0); +#endif /* no PTY_OPEN */ + + if (fd >= 0) + { + /* check to make certain that both sides are available + this avoids a nasty yet stupid bug in rlogins */ +#ifdef PTY_TTY_NAME_SPRINTF + PTY_TTY_NAME_SPRINTF +#else + sprintf (pty_name, "/dev/tty%c%x", c, i); +#endif /* no PTY_TTY_NAME_SPRINTF */ +#ifndef UNIPLUS + if (access (pty_name, 6) != 0) + { + close (fd); + continue; + } +#endif /* not UNIPLUS */ +#ifdef IBMRTAIX + /* On AIX, the parent gets SIGHUP when a pty attached + child dies. So, we ignore SIGHUP once we've started + a child on a pty. Note that this may cause xboard + not to die when it should, i.e., when its own + controlling tty goes away. + */ + signal(SIGHUP, SIG_IGN); +#endif /* IBMRTAIX */ + return fd; + } + } + return -1; +} + +#endif /* not HAVE_LIBSEQ */ +#endif /* not HAVE__GETPTY */ +#endif /* not HAVE_GRANTPT */ +#endif /* USE_PTYS */ diff --git a/childio.h b/childio.h new file mode 100644 index 0000000..28250ce --- /dev/null +++ b/childio.h @@ -0,0 +1,51 @@ +/* + * childio.h -- set up communication with child processes + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +void SetUpChildIO P((int to_prog[2], int from_prog[2])); diff --git a/cmail.in b/cmail.in new file mode 100644 index 0000000..d9f66f6 --- /dev/null +++ b/cmail.in @@ -0,0 +1,1839 @@ +#! @PERLPATH@ +## (configure will change the top line to the location of perl on your system) +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## cmail $Revision$: a tool to aid playing chess by email +## Copyright (C) 1993 Free Software Foundation, Inc. +## +## cmail is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## cmail is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with cmail; if not, write to the Free Software +## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. +## +## Modified: $Date$ +## Revision: $Revision$ +## Email: evan@quadstone.co.uk +## Snailmail: Evan Welsh +## Quadstone Ltd +## 16 Chester Street +## Edinburgh EH3 7RA +## Scotland +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Print verbose diagnostics for debugging +sub debug { + if ($DEBUG) { + local ($old) = select ; ## Remember selected output + select (logfile) ; + $| = 1 ; ## Keep it flushed + print @_ ; ## Print arguments + select ($old) ; + } +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Create a directory for storing games in if it doesn't already exist +sub need_chess_dir { + local ($old) ; + + ## ################################################################# ## + ## Check for existence of the named chess directory + ## ################################################################# ## + + if (! (-d "$CMAILDIR")) { + + ## ############################################################# ## + ## Ask user for confirmation if attached to tty + ## ############################################################# ## + + if (-t) { + $old = select ; ## Remember selected output + select (stdout) ; ## Write to standard output + $| = 1 ; ## Keep it flushed + print ( "CMail directory \"$CMAILDIR\" does not exist." + . " Create it? [y/q]: ") ; + + $_ = ; ## Read response from tty + die "Bye!\n" if (/^[qQ].*/) ; ## Quit if q selected + + select ($old) ; ## Re-select the old output + } + + ## ############################################################# ## + ## Create a cmail directory or die + ## ############################################################# ## + + die "cmail: Can't create CMail directory: \"$CMAILDIR\"\n" + unless mkdir ("$CMAILDIR", 511) ; + print ( "Created cmail directory \"$CMAILDIR\".\n" + . "You can move it but remember to set the CMAIL_DIR" + . " environment variable.\n") ; + } + + ## ################################################################# ## + ## Change to the $CMAILDIR directory whether newly created or not + ## ################################################################# ## + + die "Couldn't changed directory to \"$CMAILDIR\"\n" + unless (chdir "$CMAILDIR") ; + + ## ################################################################# ## + ## Check for existence of the named chess directory + ## ################################################################# ## + + if (! (-d "$ARCDIR")) { + + ## ############################################################# ## + ## Ask user for confirmation if attached to tty + ## ############################################################# ## + + if (-t) { + $old = select ; ## Remember selected output + select (stdout) ; ## Write to standard output + $| = 1 ; ## Keep it flushed + print ( "Archive directory \"$ARCDIR\" does not exist." + . " Create it? [y/q]: ") ; + + $_ = ; ## Read response from tty + die "Bye!\n" if (/^[qQ].*/) ; ## Quit if q selected + + select ($old) ; ## Re-select the old output + } + + ## ############################################################# ## + ## Create a chess directory or die + ## ############################################################# ## + + die "cmail: Can't create archive directory: \"$ARCDIR\"\n" + unless mkdir ("$ARCDIR", 511) ; + print ( "Created archive directory \"$ARCDIR\".\n" + . "You can move it but remember to set the CMAIL_ARCDIR" + . " environment variable.\n") ; + } +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Parse command-line arguments +sub parse_flags { + ## ################################################################# ## + ## Set up defaults from the environment or from hard-wired constants + ## ################################################################# ## + + $SHOWC = 0 ; + $SHOWW = 0 ; + $OUTPUT_POS = $ENV{'CMAIL_OUTPUT_POS'} ; + $LOGFILE = $ENV{'CMAIL_LOGFILE'} ; + $MAILPROG = $ENV{'CMAIL_MAILPROG'} ; + $MAILPROG = "/usr/sbin/sendmail" if ( (-x "/usr/sbin/sendmail") + && (! $MAILPROG)) ; + $MAILPROG = "/usr/lib/sendmail" if ( (-x "/usr/lib/sendmail") + && (! $MAILPROG)) ; + $MAILPROG = "/etc/sendmail" if ( (-x "/usr/lib/sendmail") + && (! $MAILPROG)) ; + $MAILPROG = "/usr/ucb/Mail" if ( (-x "/usr/ucb/Mail") + && (! $MAILPROG)) ; + $MAILPROG = "/usr/ucb/mail" if ( (-x "/usr/ucb/mail") + && (! $MAILPROG)) ; + $MAILPROG = "Mail" unless ($MAILPROG) ; + $HOMEDIR = $ENV{'HOME'} ; + $CMAILDIR = $ENV{'CMAIL_DIR'} ; + $CMAILDIR = $ENV{'CHESSDIR'} unless ($CMAILDIR) ; + $CMAILDIR = "$HOMEDIR/Chess" unless ($CMAILDIR) ; + $CMAILDIR = "~/Chess" unless ($HOMEDIR) ; + $NUM_GAMES = "?" ; + $NUM_WGAMES = "?" ; + $NUM_BGAMES = "?" ; + $TIME_DELAY = $ENV{'CMAIL_TIME_DELAY'} ; + $TIME_DELAY = 0 unless ($TIME_DELAY) ; + $PW_NAME = &get_pw_name () ; + $MY_NNAME = $PW_NAME ; + $MY_NNAME = $ENV{'LOGNAME'} unless ($MY_NNAME) ; + $MY_NNAME = $ENV{'USER'} unless ($MY_NNAME) ; + $MY_NNAME = "?" unless ($MY_NNAME) ; + $PGN_EVENT = "Email correspondence game" ; + $PGN_SITE = "NET"; + $PGN_ROUND = "-"; + $PGN_MODE = "EM"; + $SEND_MAIL = 1 ; + $REMAIL = 0 ; + $LOAD_XBOARD = 1 unless $ENV{'CMAIL_NO_XBOARD'} ; + $REUSE = 1 ; + @TD_FLAGS = ("-td", $TIME_DELAY) ; + @NCP_FLAGS = ("-ncp") ; + + ## ################################################################# ## + ## Define the usage string + ## ################################################################# ## + + $USAGE = ("cmail + [-h] [-c] [-w] [-[x]v] [-[x]mail] [-[x]xboard] [-[x]reuse] [-remail] + [-game ] [-(w|b|)games ] [-(me|opp) ] + [-(w|b|my|opp)name ] [-(w|b|my|opp)na ] + [-dir ] [-arcdir ] [-mailprog ] + [-logFile ] [-event ] [-site ] [-round ] + [-mode ]") ; + + ## ################################################################# ## + ## Overwrite defaults if specified on the command-line + ## ################################################################# ## + + @UNREC_ARGS = () ; + while ($ARGV = shift) { + $UNREC = 0 if ($ARGV =~ /^-/) ; + if ("$ARGV" eq "-h") {die ("Usage: $USAGE\n") ;} + elsif ("$ARGV" eq "-c") {$SHOWC = 1 ;} + elsif ("$ARGV" eq "-w") {$SHOWW = 1 ;} + elsif ("$ARGV" eq "-v") {$DEBUG = 1 ; + @DEBUG_FLAGS = ("-debug") ;} + elsif ("$ARGV" eq "-xv") {$DEBUG = 0 ; + $QUIET = 1 ;} + elsif ("$ARGV" eq "-mail") {$SEND_MAIL = 1 ;} + elsif ("$ARGV" eq "-xmail") {$SEND_MAIL = 0 ;} + elsif ("$ARGV" eq "-xboard") {$LOAD_XBOARD = 1 ;} + elsif ("$ARGV" eq "-xxboard") {$LOAD_XBOARD = 0 ;} + elsif ("$ARGV" eq "-reuse") {$REUSE = 1 ;} + elsif ("$ARGV" eq "-xreuse") {$REUSE = 0 ;} + elsif ("$ARGV" eq "-remail") {$LOAD_XBOARD = 0 ; + $SEND_MAIL = 1 ; + $REMAIL = 1 ;} + elsif ("$ARGV" eq "-game") {$PGN_GAME = shift ;} + elsif ("$ARGV" eq "-games") {$NUM_GAMES = shift ;} + elsif ("$ARGV" eq "-wgames") {$NUM_WGAMES = shift ;} + elsif ("$ARGV" eq "-bgames") {$NUM_BGAMES = shift ;} + elsif ("$ARGV" eq "-me") {$MY_NNAME = shift ;} + elsif ("$ARGV" eq "-opp") {$OPP_NNAME = shift ;} + elsif ("$ARGV" eq "-myname") {$MY_FNAME = shift ;} + elsif ("$ARGV" eq "-oppname") {$OPP_FNAME = shift ;} + elsif ("$ARGV" eq "-wname") {$WHITE_FNAME = shift ;} + elsif ("$ARGV" eq "-bname") {$BLACK_FNAME = shift ;} + elsif ("$ARGV" eq "-myna") {$MY_ADDRESS = shift ;} + elsif ("$ARGV" eq "-oppna") {$OPP_ADDRESS = shift ;} + elsif ("$ARGV" eq "-wna") {$WHITENA = shift ;} + elsif ("$ARGV" eq "-bna") {$BLACKNA = shift ;} + elsif ("$ARGV" eq "-dir") {$CMAILDIR = shift ;} + elsif ("$ARGV" eq "-arcdir") {$ARCDIR = shift ;} + elsif ("$ARGV" eq "-mailprog") {$MAILPROG = shift ;} + elsif ("$ARGV" eq "-logFile") {$LOGFILE = shift ;} + elsif ("$ARGV" =~ /^-(td|timeDelay)$/) + {@TD_FLAGS = ($ARGV, + shift) ;} + elsif ("$ARGV" =~ /^-noChessComputer$/) + {@NCP_FLAGS = ($ARGV, + shift) ;} + elsif ("$ARGV" =~ /^-[x]?ncp$/) {@NCP_FLAGS = ($ARGV) ;} + elsif ("$ARGV" eq "-event") {$PGN_EVENT = shift ;} + elsif ("$ARGV" eq "-site") {$PGN_SITE = shift ;} + elsif ("$ARGV" eq "-round") {$PGN_ROUND = shift ;} + elsif ("$ARGV" eq "-mode") {$PGN_MODE = shift ;} + elsif ("$ARGV" =~ /^-/ || $UNREC) { + push(@UNREC_ARGS, $ARGV) ; + $UNREC = 1 ; + } else { + die("cmail: Unrecognised flag \"$ARGV\"\nUsage: $USAGE\n") ; + } + } + + ## ################################################################# ## + ## Assign a value to $ARCDIR if not specified on the command line + ## ################################################################# ## + + $ARCDIR = $ENV{'CMAIL_ARCDIR'} unless ($ARCDIR) ; + $ARCDIR = $CMAILDIR unless ($ARCDIR) ; + $ENV{'CMAIL_ARCDIR'} = $ARCDIR ; ## Make sure this is set for xboard + + ## ################################################################# ## + ## Propagate some CMAIL variables through xboard to the cmail + ## grandchild so that it uses the same important variables as this one + ## ################################################################# ## + + $ENV{'CMAIL_MAILPROG'} = $MAILPROG ; + $ENV{'CMAIL_DIR'} = $CMAILDIR ; + $ENV{'CHESSDIR'} = $CMAILDIR ; ## Make xboard use $CMAILDIR + $ENV{'CMAIL_ARCDIR'} = $ARCDIR ; + if ($LOGFILE) { + $ENV{'CMAIL_LOGFILE'} = $LOGFILE ; + } else { + $LOGFILE = "&STDERR" ; + } + + ## ################################################################# ## + ## Work out how many games of each colour will be played + ## ################################################################# ## + + die "cmail: Illegal number of games: $NUM_GAMES\n" + if ($NUM_GAMES < 0) ; + die "cmail: Illegal number of white games: $NUM_WGAMES\n" + if ($NUM_WGAMES < 0) ; + die "cmail: Illegal number of black games: $NUM_BGAMES\n" + if ($NUM_BGAMES < 0) ; + if ("$NUM_GAMES" ne "?") { + if ("$NUM_WGAMES" eq "?") { + if ("$NUM_BGAMES" eq "?") { + $NUM_BGAMES = int($NUM_GAMES / 2) ; + } + $NUM_WGAMES = $NUM_GAMES - $NUM_BGAMES ; + } elsif ("$NUM_BGAMES" eq "?") { + $NUM_BGAMES = $NUM_GAMES - $NUM_WGAMES ; + } + } elsif ("$NUM_WGAMES" eq "?") { + if ("$NUM_BGAMES" eq "?") { + $NUM_GAMES = 1 ; + $NUM_WGAMES = 1 ; + $NUM_BGAMES = 0 ; + } else { + $NUM_GAMES = $NUM_BGAMES ; + $NUM_WGAMES = 0 ; + } + } else { + if ("$NUM_BGAMES" eq "?") { + $NUM_GAMES = $NUM_WGAMES ; + $NUM_BGAMES = 0 ; + } else { + $NUM_GAMES = $NUM_WGAMES + $NUM_BGAMES ; + } + } + die "cmail: Illegal number of games: $NUM_GAMES\n" + if ("$NUM_GAMES" eq "0") ; + die ( "cmail: Inconsistent numbers of games specified:" + . " $NUM_WGAMES + $NUM_BGAMES != $NUM_GAMES\n") + unless ($NUM_GAMES == $NUM_WGAMES + $NUM_BGAMES) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Initialisation of variables and environment +sub showGPL { + ## ################################################################# ## + ## Show copyright notice + ## ################################################################# ## + + while () { + last if (/^{END OF GPL COPYRIGHT}$/) ; + s/\$Revision[:] (.*) \$/$1/ ; + print ; + } + + ## ################################################################# ## + ## Show conditions if requested + ## ################################################################# ## + + while () { + last if (/^{END OF GPL CONDITIONS}$/) ; + print if ($SHOWW) ; + } + + ## ################################################################# ## + ## Show warranty if requested + ## ################################################################# ## + + if ($SHOWC) { + print "\n" if ($SHOWW) ; + print while () ; + } + + + exit 0 if ($SHOWC || $SHOWW) ; ## Abort if showed conditions or warranty +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Initialisation of variables and environment +sub initialise { + local ($p) = "[.PRNBQKprnbqk]" ; + local ($l) = "$p $p $p $p $p $p $p $p\n" ; + local ($board) = "$l$l$l$l$l$l$l$l" ; + local ($tp) = ".* to play\n" ; + $posdiag = "\{--------------\n$board$tp--------------\}\n+" ; + + &parse_flags (@ARGV) ; ## Parse command-line arguments + + &showGPL unless $QUIET ; + + open (tty, "< /dev/tty") ; ## Open tty for reading + + &need_chess_dir () ; ## Check for the existence of CMAILDIR + + open (logfile, ">$LOGFILE") if ($DEBUG) ; ## Default is STDERR + + &debug ("Called \n") ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Prompt for a game name, if use a default +sub prompt_for_game_name { + &debug ("Called \n") ; + local ($old) = select ; ## Remember the selected output + select (stdout); ## Prompt goes to stdout + $| = 1 ; ## Keep it flushed + + print "Game name [ to use default]: " ; + die "cmail: tty not open\n" unless (-t) ; + =~ /(.*)/ ; ## Read line from tty + $PGN_GAME = "$1" ; ## Assign to game name + + select ($old) ; ## Re-select the old output +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Prompt for opponent's address +sub prompt_for_opp_address { + &debug ("Called \n") ; + local ($old) = select ; ## Remember the selected output + select (stdout); ## Prompt goes to stdout + $| = 1 ; ## Keep it flushed + + ## ################################################################# ## + ## Prompt for opponent's email address + ## ################################################################# ## + + print "Opponent's email address: " ; + die "cmail: tty not open\n" unless (-t) ; + =~ /(.*)/ ; + $OPP_ADDRESS = $1 ; + + ## ################################################################# ## + ## Use name as default if still blank + ## ################################################################# ## + + $OPP_ADDRESS = $OPP_NNAME if ("" eq $OPP_ADDRESS) ; + + select ($old) ; ## Re-select the old output +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Prompt for opponent's name +sub prompt_for_opp_name { + &debug ("Called \n") ; + local ($old) = select ; ## Remember the selected output + select (stdout) ; ## Prompt goes to stdout + $| = 1 ; ## Keep it flushed + print "Opponent's name: " ; + + die "cmail: tty not open\n" unless (-t) ; ## Check tty is open + =~ /(.*)/ ; ## Read line from tty + $OPP_NNAME = $1 ; ## Match! + die "cmail: Can't proceed without the opponent's name.\n" + unless ($OPP_NNAME) ; + + select ($old) ; ## Re-select the old output +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Prompt for move +sub prompt_for_move { + local ($prompt) = shift ; + local ($pattern) = shift ; + &debug ("Called \n") ; + + local ($move) = "" ; + local ($old) = select ; ## Remember the selected output + select (stdout) ; ## Write to stdout + $| = 1 ; ## Keep it flushed + die "cmail: tty not open\n" unless (-t) ; ## Check tty is open + + do { + print $prompt ; + =~ /(.*)/ ; ## Read line from tty + $move = $1 ; ## Match! + } until ($move =~ /^$pattern$/) ; + + select ($old) ; ## Re-select the old output + return ($move) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Load the game +sub play_game { + &debug ("Called \n") ; + + $| = 1 ; ## Start flushing output buffer + + ## ################################################################# ## + ## Load xboard unless inhibited by command-line arguments + ## ################################################################# ## + + if (($STARTING_NEW_GAME) && ($NUM_WGAMES == 0)) { + print ( "Bypassing xboard and mailing $NUM_BGAMES empty" + . " black games.\n") ; + } elsif ($LOAD_XBOARD) { + ## ############################################################# ## + ## Remove output file from previous run, but preserve + ## $PGN_GAME.game.out.* because they will be empty black games + ## ############################################################# ## + + unlink "$PGN_GAME.out" ; + + ## ############################################################# ## + ## Invoke xboard with loads of flags + ## ############################################################# ## + + if ($PGN_GAME) { + if (@ARCHIVE) { + local ($date) = &get_date_from_games (@ARCHIVE) ; + $XBOARD_ARGS = join (' ', (("-lgf", + "$ARCDIR/$PGN_GAME.$date.archive"), + "-ncp", + "-xics", + @TD_FLAGS, + @DEBUG_FLAGS, + @UNREC_ARGS)) ; + } else { + $XBOARD_ARGS = join (' ', (("-cmail", $PGN_GAME), + @TD_FLAGS, + @NCP_FLAGS, + "-xics", + @DEBUG_FLAGS, + @UNREC_ARGS)) ; + } + } else { + $PGN_GAME = "unknown.cmail" ; + $XBOARD_ARGS = join (' ', (("-lgf", $PGN_GAME), + "-ncp", + "-xics", + @TD_FLAGS, + @DEBUG_FLAGS, + @UNREC_ARGS)) ; + $REUSE = 0 ; + } + + $LOG_FILE = "$PGN_GAME.log" ; + &debug ("Invoking xboard with args: $XBOARD_ARGS\n") ; + $PID_FILE = "$PGN_GAME.pid" ; + if ( (! $REUSE) + || (! ( (-f $PID_FILE) + && ($XBOARD_PID = `cat $PID_FILE`) + && ("$XBOARD_PID" =~ /^\d+$/) + && (kill "SIGUSR1", $XBOARD_PID)))) { + print "Loading xboard for game \"$PGN_GAME\"..." ; +# system ("gdb xboard") ; + system ( "{ ({ xboard $XBOARD_ARGS & } ;" + . " echo \$! > $PID_FILE ;" + . " wait ;" + . " rm $PID_FILE) & } >$LOG_FILE 2>&1") ; + print ( "done.\n" + . "If nothing happens look for an error message in\n" + . "$CMAILDIR/$LOG_FILE\n") ; + } else { + print ("Revived existing xboard for game \"$PGN_GAME\".\n" + . "If nothing happens" + . " remove $CMAILDIR/$PID_FILE and try again.\n") ; + } + + return 1 ; + } + return 0 ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Enter moves on tty instead of xboard +sub play_on_tty { + &debug ("Called \n") ; + + local (@results) = @_ ; + + local (@games, $game, $to_play) ; + + ## ################################################################# ## + ## Check we have access to tty + ## ################################################################# ## + + if (open(STDIN, '/dev/tty')) { + ## ############################################################# ## + ## Read in games + ## ############################################################# ## + + local ($infile) = "$PGN_GAME.game.in" ; + if (-f $infile) { + @games = &get_games_from_file($infile) ; + &debug ("Read in games from \"$infile\"\n") ; + + if (@results) { + foreach $game (@games) { + $result = shift (@results) ; + if ($result && ($game =~ /\[Result\s+"[^*]+"\]/)) { + $game = "" ; + } + } + } + + ## ################################################################# ## + ## Accept move on tty for each game in turn + ## ################################################################# ## + + local ($comment_orig, $comment, $comment_line, + $pos, $move, $normal_move, $action, $result) ; + + foreach $game (@games) { + next unless $game ; + + $game =~ s/[\s\n]*[*]?[\s\n]*$// ; + $pos = "" ; + $pos = $1 if ($game =~ s/($posdiag)//) ; + print $game, "\n\n", $pos ; + + ($number, $to_play) = &get_to_play ($game) ; + + $comment_orig = "" ; + $game_nocomment = $game ; + if ($game_nocomment =~ s/\n?{\n?([^{]*)}$//) { + $comment_orig = $1 ; + $comment_orig =~ s/([^\n])$/$1\n/ ; +# &debug ("Comment is:\n{\n$comment_orig}\n") ; + } + if ($game =~ /\[Result\s+"[^*]+"\]/) { + &prompt_for_move ("Game finished, press \"Return\" to continue: ", "") ; + next ; + } + + $tmpgame = $game_nocomment ; + $comment = $comment_orig ; + + outer: + while (1) { + if ($game =~ /{\n?.* offers a draw\n?}$/) { + $move = &prompt_for_move ("Enter move [MOVE/(r)esign/(a)ccept/(c)omment/re(t)ry]: ", + "([-a-h0-9PRNBQK][-a-h0-9PRNBQK]+|[ract])") ; + } else { + $move = &prompt_for_move ("Enter move [MOVE/(r)esign/(c)omment/re(t)ry]: ", + "([-a-h0-9PRNBQK][-a-h0-9PRNBQK]+|[rct])") ; + } + $normal_move = 0 ; + $result = "" ; + if ($move =~ /^\s*r\s*$/i) { + if ($to_play eq "White") { + $result = "0-1" ; + } else { + $result = "1-0" ; + } + $move = "\n{$to_play resigns} $result" ; + } elsif ($move =~ /^\s*a\s*$/i) { + $move = "\n{Draw agreed} $result" ; + } elsif ($move =~ /^\s*c\s*$/i) { + while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) { + $comment .= $comment_line . "\n" ; + } + next ; + } elsif ($move =~ /^\s*t\s*$/i) { + print $game, "\n\n", $pos ; + $tmpgame = $game_nocomment ; + $comment = $comment_orig ; + print "Try again.\n" ; + next ; + } else { + $normal_move = 1 ; + } + + $tmpgame .= "\n{\n" . $comment . "}" if ($comment) ; + if (! $normal_move) { + $tmpgame .= "$move" ; + } elsif ($to_play eq "White") { + $tmpgame .= "\n$number. $move" ; + } elsif ($tmpgame =~ /}$/) { + $tmpgame .= "\n$number. ... $move" ; + } else { + $tmpgame .= " $move" ; + } + + $tmpgame =~ s/\[Result\s+"(.*)"\]/[Result "$result"]/ if ($result) ; + $comment = "" ; + middle: + while (1) { + if ($normal_move) { + $action = &prompt_for_move ("Enter action [(d)raw/(c)omment/(s)end/re(t)ry]: ", + "[dcst]") ; + } elsif ($result) { + $action = &prompt_for_move ("Enter action [(s)end/re(t)ry]: ", + "[st]") ; + } else { + $action = &prompt_for_move ("Enter action [(c)omment/(s)end/re(t)ry]: ", + "[cst]") ; + } + if ($action =~ /^\s*d\s*$/i) { + if ($normal_move) { + $comment .= "$to_play offers a draw\n" ; + + while (1) { + $action = &prompt_for_move ("Enter action [(c)omment/(s)end/re(t)ry]: ", + "[cst]") ; + if ($action =~ /^\s*c\s*$/i) { + while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) { + $comment .= $comment_line . "\n" ; + } + next ; + } elsif ($action =~ /^\s*t\s*$/i) { + print $game, "\n\n", $pos ; + $tmpgame = $game_nocomment ; + $comment = $comment_orig ; + print "Try again.\n" ; + next outer; + } elsif ($action =~ /^\s*s\s*$/i) { + $tmpgame .= "\n{\n" . $comment . "}" ; + last middle ; + } + } + } else { + print "You can't offer a draw at this point.\n" ; + next ; + } + } elsif ($action =~ /^\s*c\s*$/i) { + if ($result) { + print "You can't enter a comment after the game is finished.\n" ; + } else { + while ($comment_line = &prompt_for_move ("Enter comment: ", ".*")) { + $comment .= $comment_line . "\n" ; + } + } + next ; + } elsif ($action =~ /^\s*t\s*$/i) { + print $game, $pos ; + $tmpgame = $game_nocomment ; + $comment = $comment_orig ; + print "Try again.\n" ; + next outer; + } elsif ($action =~ /^\s*s\s*$/i) { + $tmpgame .= "\n{\n" . $comment . "}\n" if ($comment) ; + last ; + } + } + + last ; + } + + $tmpgame .= "\n*" if ($normal_move) ; + $tmpgame .= "\n\n" ; + $game = $tmpgame ; + } + } else { + die "cmail: No games to be read\n" ; + } + } else { + die "cmail: Can't open tty" ; + } + + return (@games) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Find the game the user wants by any means possible +sub find_game { + &debug ("Called \n") ; + + ## ################################################################# ## + ## Ask user for a game name if not already known + ## ################################################################# ## + + &prompt_for_game_name () if ("" eq "$PGN_GAME") ; + + ## ################################################################# ## + ## Find out opponent's details + ## ################################################################# ## + + if ("" eq "$PGN_GAME") { + ## ############################################################# ## + ## Failed to find the game name so construct a default from players + ## ############################################################# ## + + &prompt_for_opp_name () if ("" eq "$OPP_NNAME") ; ## Ask user + die "cmail: Can't proceed without your opponent's short name (-opp)\n" + if ("" eq "$OPP_NNAME") ; + die "cmail: Can't proceed without your own short name (-me)\n" + if ("" eq "$MY_NNAME") ; + if ($NUM_WGAMES > 0) { + $PGN_GAME = "$MY_NNAME-vs-$OPP_NNAME" ; ## Construct default + } else { + $PGN_GAME = "$OPP_NNAME-vs-$MY_NNAME" ; ## Construct default + } + } elsif (("" eq "$OPP_ADDRESS") && ("" ne "$RETURN_ADDRESS")) { + $OPP_ADDRESS = $RETURN_ADDRESS ; ## Use return address instead + &debug ( "Using return address \"$OPP_ADDRESS\"" + . " for opponent address\n") ; + } + + ## ################################################################# ## + ## If no $PGN_GAME.game.in file, assume we're starting a new game + ## ################################################################# ## + + &start_new_game () unless (-f "$PGN_GAME.game.in") ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get the date +sub get_date { + local ($the_time) = time ; + local ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = + localtime ($the_time) ; + $mon ++ ; + $year += 1900 ; + if ($mon < 10) { + $mon = "0$mon" ; + } + if ($mday < 10) { + $mday = "0$mday" ; + } + "$year.$mon.$mday" ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Start a new game +sub start_new_game { + print ( "Starting new game" + . " -- $NUM_WGAMES as white, $NUM_BGAMES as black.\n") ; + local ($to_play) = "white" ; + $move_num = 0 ; + $STARTING_NEW_GAME = 1 ; + + local (@game) ; + + ## ################################################################# ## + ## Ask user for opponent's email address if unknown + ## ################################################################# ## + + &prompt_for_opp_address () if ("" eq "$OPP_ADDRESS") ; + + ## ################################################################# ## + ## Give up if we haven't got anywhere to send a move to + ## ################################################################# ## + + die "cmail: Can't proceed without your opponent's email address.\n" + if ("" eq "$OPP_ADDRESS") ; + + ## ################################################################# ## + ## Create an empty game file + ## ################################################################# ## + + open (GAMEFILE, "> $PGN_GAME.game.in") ; + for ($j = 1; $j <= $NUM_GAMES; $j ++) { + $PW_GCOS = &get_pw_gcos () ; + + $PGN_MYCOL = $MY_FNAME ; + $PGN_MYCOL = $PW_GCOS unless $PGN_MYCOL ; + $PGN_MYCOL = $MY_NNAME unless $PGN_MYCOL ; + $PGN_MYCOLNA = $MY_ADDRESS ; + $PGN_MYCOLNA = "?" unless ($PGN_MYCOLNA) ; + + $PGN_OPPCOL = $OPP_FNAME ; + $PGN_OPPCOL = "?" unless ($PGN_OPPCOL) ; + $PGN_OPPCOLNA = $OPP_ADDRESS ; + $PGN_OPPCOLNA = "?" unless ($PGN_OPPCOLNA) ; + + if ($j > $NUM_WGAMES) { + $PGN_WHITE = $PGN_OPPCOL ; + $PGN_BLACK = $PGN_MYCOL ; + $PGN_WHITENA = $PGN_OPPCOLNA ; + $PGN_BLACKNA = $PGN_MYCOLNA ; + } else { + $PGN_WHITE = $PGN_MYCOL ; + $PGN_BLACK = $PGN_OPPCOL ; + $PGN_WHITENA = $PGN_MYCOLNA ; + $PGN_BLACKNA = $PGN_OPPCOLNA ; + } + + ## ######################################################### ## + ## If we only have one colour of game then allow command-line + ## colour specs to override + ## ######################################################### ## + + if (! ($NUM_WGAMES && $NUM_BGAMES)) { + $PGN_WHITE = $WHITE_FNAME if ($WHITE_FNAME) ; + $PGN_BLACK = $BLACK_FNAME if ($BLACK_FNAME) ; + $PGN_WHITENA = $WHITENA if ($WHITENA) ; + $PGN_BLACKNA = $BLACKNA if ($BLACKNA) ; + } + + $PGN_DATE = &get_date () ; + $PGN_DATE = "?" unless ($PGN_DATE) ; + + if ($NUM_GAMES > 1) { + $SUFFIX = ".$j" ; + } else { + $SUFFIX = "" ; + } + @game = ("[Event \"$PGN_EVENT\"]\n", + "[Site \"$PGN_SITE\"]\n", + "[Date \"$PGN_DATE\"]\n", + "[Round \"$PGN_ROUND\"]\n", + "[White \"$PGN_WHITE\"]\n", + "[Black \"$PGN_BLACK\"]\n", + "[Result \"*\"]\n", + "[WhiteNA \"$PGN_WHITENA\"]\n", + "[BlackNA \"$PGN_BLACKNA\"]\n", + "[Mode \"$PGN_MODE\"]\n", + "[CmailGameName \"$PGN_GAME$SUFFIX\"]\n\n*\n") ; + if ($j > $NUM_WGAMES) { + open (GAMEOUTFILE, "> $PGN_GAME.game.out.$j") ; + print GAMEOUTFILE @game ; + close (GAMEOUTFILE) ; + } else { + print GAMEFILE @game ; + } + } + close (GAMEFILE) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get the password file gcos (full name) entry +sub get_pw_entry { + local ($name, $passwd, $uid, $gid, $quota, $comment, $gcos, $dir, $shell) = + getpwuid ($<); + ($name, $gcos) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get password file gcos (full name) entry +sub get_pw_gcos { + local ($PW_GCOS) ; + if (! $PW_GCOS) { + ($dummy, $PW_GCOS) = &get_pw_entry () ; + $PW_GCOS =~ s/^\s*([^,()]+[^ ,()])[ ]*[,()].*$/$1/; + if ($PW_GCOS =~ /^([^,()]+)\s+([^\s,()]+)$/) { ## Multi-word name + $PW_GCOS = $2 . ", " . $1 ; + } elsif ($PW_GCOS !~ /^([^\s,()]+)/) { ## No sensible gcos entry + $PW_GCOS = "" ; + } ## Else leave it as one word + &debug ("PW full name is \"$PW_GCOS\"\n"); + } + return $PW_GCOS ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get password file user name entry +sub get_pw_name { + local ($PW_NAME) ; + ($PW_NAME, $dummy) = &get_pw_entry () ; + &debug ("PW name is $PW_NAME\n"); + + return $PW_NAME ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Analyse the email message +sub analyse_email_message { + local ($new_result, $delete_result, $unfinished, $finished) + = (0, 0, 0, 0) ; + local ($gamefile, @games) ; + + ## ################################################################# ## + ## Slurp the mail message + ## ################################################################# ## + + die "cmail: No games on standard input" + unless (@games = &get_games_from_file ("STDIN")) ; + + ## ################################################################# ## + ## Is the message a real cmail message or just a chess game? $PGN_GAME + ## will have been set by calling get_games_from_file if it's real + ## ################################################################# ## + + print "Processing game message..." ; + + if ($PGN_GAME) { + ## ############################################################# ## + ## Restore the results file from the archive if + ## necessary. This is helpful if the user pipes in an old + ## message for take-back purposes or whatever. + ## ############################################################# ## + + if (! -f "$PGN_GAME.res") { + ## Find what date would have been used to create the archive + foreach (@games) { + if (/\[Date\s"(.*)"\]/) { + $date = $1 ; + last ; ## Assume all dates are the same + } + } + ## Restore results file from archive directory if it exists + if ($date && (-f "$ARCDIR/$PGN_GAME.$date.archive")) { + if (system ("cp", + "$ARCDIR/$PGN_GAME.$date.archive", + "$PGN_GAME.res")) { + print stderr ( "\nWarning: couldn't restore results file" + . " from archive\n") ; + } else { + print "restored results file from archive..." ; + } + } + } + + ## ############################################################# ## + ## Find existing results, if any. + ## ############################################################# ## + + local (@results) = &get_games_from_file ("$PGN_GAME.res") ; + + ## ############################################################# ## + ## Parse each game + ## ############################################################# ## + + foreach $game (@games) { + next unless ($game) ; + + ($game_name, $game_num) = &get_game_name_and_number ($game) ; + + $result = 0 ; + @game = split("\n", $game) ; + foreach (@game) { + if (/^\[(Black|White)\s*"[?]"\]$/) { + $colour = $1; + $PW_GCOS = &get_pw_gcos () unless ($PW_GCOS) ; + $PW_GCOS = "$MY_NNAME" unless ($PW_GCOS) ; + s/".*"/"$PW_GCOS"/ ; + &debug ("Changed $colour tag to be $_") ; + } elsif (/^\[((Black|White)NA)\s*"(.*)"\]$/) { + $NA = $3 ; + if ($NA eq "?") { + if ($RETURN_ADDRESS) { + $NA = $RETURN_ADDRESS ; + } else { + $NA = "??" ; + } + $_ = "[$1 \"$NA\"]" ; + &debug ("Changed $1 tag.\n") ; + } + if ($2 eq "White") { + $PGN_WHITENA = $NA ; + &debug ("WhiteNA tag is \"$PGN_WHITENA\"\n") ; + } else { + $PGN_BLACKNA = $NA ; + &debug ("BlackNA tag is \"$PGN_BLACKNA\"\n") ; + } + } elsif (/\[Result\s*"(.*)"\]$/) { + if ($1 ne "*") { + $result = 1 ; + $finished ++ ; + } else { + $unfinished ++ ; + } + } elsif (/^(.*[^\d]+)?\d+[.]\s*([^\s*]*\s+)?[^\s.*]+(\s*\d+[.]\s*)?[\s*]*$/) { + if ($2) { + $to_play = "white" ; + } else { + $to_play = "black" ; + } + &debug ("$to_play to play\n") ; + } + } + + ## ######################################################### ## + ## Reconstruct possibly edited game + ## ######################################################### ## + + $game = join ("\n", @game) . "\n\n" ; + + ## ######################################################### ## + ## Build up results array + ## ######################################################### ## + + if ($result) { + $results[$game_num] = $games[$game_num] ; + $new_result = 1 ; + } elsif ($results[$game_num]) { + ## Deleting a result does actually make sense if the user + ## pipes in an old message for take-back purposes or whatever + $results[$game_num] = "" ; + $delete_result = 1 ; + } + + ## ######################################################### ## + ## Remove old .out files + ## ######################################################### ## + + unlink <$PGN_GAME.game.out.*> ; + + ## ######################################################### ## + ## Write ongoing games to game file and append new results + ## ######################################################### ## + + die "cmail: Can't open file for writing:" + . " \"$CMAILDIR/$PGN_GAME.game.in\"\n" + unless open (gamefile, ">$PGN_GAME.game.in") ; + &debug (@games) ; + print gamefile @games ; + close (gamefile) ; + } + + ## ############################################################# ## + ## Print how many finished/unfinished games were found + ## ############################################################# ## + + printf ("%d unfinished %s and %d finished %s...", + $unfinished, ($unfinished == 1) ? "game" : "games", + $finished, ($finished == 1) ? "game" : "games") ; + + ## ############################################################# ## + ## Write results back to results file if there were any results + ## in the input + ## ############################################################# ## + + if ($new_result || $delete_result) { + die ( "cmail: Can't open results file for writing:" + . "\"$CMAILDIR/$PGN_GAME.res\"\n") + unless open (resfile, ">$PGN_GAME.res") ; + print resfile @results ; + close (resfile) ; + } + + ## ############################################################# ## + ## Archive results if there are no unfinished games + ## ############################################################# ## + + @ARCHIVE = @results unless ($unfinished) ; + + ## ############################################################# ## + ## Figure out return address if not known + ## ############################################################# ## + + if (! $RETURN_ADDRESS) { + if ($to_play eq "black") { + $RETURN_ADDRESS = $PGN_WHITENA unless ("$PGN_WHITENA" eq "?") ; + } else { + $RETURN_ADDRESS = $PGN_BLACKNA unless ("$PGN_BLACKNA" eq "?") ; + } + } + + ## ############################################################# ## + ## Decide to include position diagrams in output if not already + ## decided and a position diagram was found in the input + ## ############################################################# ## + + if ("$OUTPUT_POS" eq "") { + if (grep (/$posdiag/, @games)) { + $OUTPUT_POS = "y" ; # Output position only if it was input + } else { + $OUTPUT_POS = "n" ; + } + } + $ENV{'CMAIL_OUTPUT_POS'} = $OUTPUT_POS ; + + ## ############################################################# ## + ## Check that we have enough info about the players to continue + ## ############################################################# ## + + &find_game () ; + } else { + ## ############################################################# ## + ## Set up xboard for viewing non-cmail PGN file + ## ############################################################# ## + + local ($file) = "unknown.cmail" ; + print "done.\nDumping non-cmail file into $CMAILDIR/$file..." ; + + die "cmail: Can't open file for writing: \"$CMAILDIR/$file\"\n" + unless open (gamefile, ">$file") ; + print gamefile @games ; + close (gamefile) ; + } + + print "done.\n" ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Sort two filenames by the numeric suffix +sub sort_by_numeric_suffix { + $a =~ /[.](\d+)$/ ; local ($na) = $1 ; + $b =~ /[.](\d+)$/ ; local ($nb) = $1 ; + + return ($na <=> $nb) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +sub get_game_name_and_number { + local ($game) = join ("\n", @_) ; + + local ($game_name, $game_num) ; + + die "CMailGameName tag missing\n" + unless ($game =~ /\[C[Mm]ailGameName\s+"(.*)"\]/) ; + + ## ################################################################# ## + ## Set game name and number + ## ################################################################# ## + + $game_name = $1 ; + if ($game_name =~ s/^(.*)[.](\d+)$/$1/) { + $game_num = $2 ; + } else { + $game_num = 1 ; + } + + ## ################################################################# ## + ## Set $PGN_GAME as a side-effect or check validity + ## ################################################################# ## + + if ($PGN_GAME) { + die ( "cmail: Mismatched game names in input message:\n" + . "\"$PGN_GAME\", \"$game_name\"\n") + if ("$PGN_GAME" ne "$game_name") ; + } else { + $PGN_GAME = $game_name ; + &debug ("PGN_GAME set to \"$PGN_GAME\"\n") ; + } + + return ($game_name, $game_num) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Read in a file of games and split into separate games +sub get_games_from_file { + local ($file) = shift ; + + local (@file, $first_line) ; ## Slurp stdin + if ($file eq "STDIN") { + if ($first_line = ) { ## Necessary to handle no input case + @file = ; ## Slurp stdin + @file = ($first_line, @file) ; + + foreach (@file) { + ## Strip off leading quotation characters + s/^[^\s]*>// ; + s/^[ \t]+// ; + + ## Find return address and set it as a side-effect + if ( /^From:?.*<([^>]+)>.*\n$/ + || /^From:? *([^ ]*).*\n$/) { + $RETURN_ADDRESS = $1 ; ## Default for opp's email + &debug ("Found opponent's email address", + " \"$RETURN_ADDRESS\"\n") ; + } elsif (/\[C[Mm]ailGameName\s+"(.*)"\]/) { + $PGN_GAME = $1 ; + $PGN_GAME =~ s/[.]\d+$// ; + } + } + + return (@file) unless ($PGN_GAME) ; + if (grep (/\{--------------|\[Event/, @file)) { + shift (@file) while ($file[0] !~ /\{--------------|\[Event/) ; + } + } else { + return () ; + } + } else { + return () unless (open (file, "<$file")) ; + + @file = ; ## Slurp file + close (file) ; + } + + local (@games, $game_name, $game_num, $game, $tag) ; + + ## ################################################################# ## + ## Remove headers and leading blanks + ## ################################################################# ## + + local (@tgames) = split (/($posdiag\[Event|\[Event)/, join ('', @file)) ; + shift (@tgames) while (!$tgames[0]) ; + + ## ################################################################# ## + ## Set up @games array with proper game numbers + ## ################################################################# ## + + while (@tgames) { + $game = shift (@tgames) . shift (@tgames) ; + + ($game_name, $game_num) = &get_game_name_and_number ($game) ; + $games[$game_num] = $game ; + } + + return (@games) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Analyse output files and send the move +sub send_move { + &debug ("Called \n") ; + + ## ################################################################# ## + ## Cat the pos (if it exists), game and result (if it exists) files + ## into the .out file. + ## ################################################################# ## + + local ($unfinished, $finished) = (0, 0) ; + local (@results, $move, $move_msg, $to_play, $number) ; + + ## ################################################################# ## + ## Find any .game.out.* files + ## ################################################################# ## + + local (@outfiles) = (<$PGN_GAME.game.out.*>) ; + @outfiles = grep (/[.]\d+$/, @outfiles) ; ## Ignore autosave files + @outfiles = sort sort_by_numeric_suffix @outfiles ; ## Sort + + ## ################################################################# ## + ## Find .res file if it exists + ## ################################################################# ## + + local ($resfile) = "$PGN_GAME.res" ; + if (-f $resfile) { + @results = &get_games_from_file($resfile) ; + &debug ("Read in results\n") ; + } else { + @results = () ; + &debug ("No results to read\n") ; + } + + ## ################################################################# ## + ## Find .out file if it exists + ## ################################################################# ## + + local ($outfile) = "$PGN_GAME.out" ; + if (! ($REMAIL || $LOAD_XBOARD)) { + @games = &play_on_tty (@results) ; + } elsif (@outfiles) { + foreach (@outfiles) { + die "Can't open game file \"$_\" for reading" + unless (open (game, "<$_")) ; + die "Empty game file \"$_\"" + unless ($game = join ('', )) ; + close (game) ; + &debug ("Read in game file \"$_\"\n") ; + ## Remove position diagram if it wasn't in the input msg + $game =~ s/($posdiag)// if ("$OUTPUT_POS" ne "y") ; + ($game_name, $game_num) = &get_game_name_and_number ($game) ; + $games[$game_num] = $game ; + } + &debug ("Read in games from output files\n") ; + $games[0] = "" ; + } else { + &debug ("No games to read from STDIN\n") ; + if (-f $outfile) { + @games = &get_games_from_file($outfile) ; + } else { + die "Can't find any game files\n" unless (@results) ; + } + } + + ## ################################################################# ## + ## Process games + ## ################################################################# ## + + if (@games) { + ## ############################################################# ## + ## Find opponent's email address in games + ## ############################################################# ## + + $OPP_ADDRESS = &get_opp_address_from_games (@games) + unless ($OPP_ADDRESS) ; + + ## ############################################################# ## + ## Collect the .game.out.* files into the .out file, remembering + ## the move number of the last line and whether result or not + ## ############################################################# ## + + $unfinished = 0 ; + $move_num = 0 ; + $move = blank ; + + ## Write games to output file + die "Can't open output file \"$PGN_GAME.out\" for writing\n" + unless open (outfile, ">$PGN_GAME.out") ; + print outfile @games ; + close (outfile) ; + + $game_num = -1 ; + $num_games = 0 ; + foreach $game (@games) { + $game_num ++ ; + next unless ($game) ; + + $num_games ++ ; + ## Determine last move and whether result or not + $result = 0 ; + foreach (split(/\n/, $game)) { + if (/^(.*[^\d]+|)(\d+)[.]+\s*[^\s.]*\s+(\S+)\s*$/) { + $move_num = $2 ; + $move = $3 ; + } elsif (/^\[Result\s*"(.*)"\]$/) { + if ($1 ne "*") { + $result = 1 ; + $finished ++ ; + } else { + $unfinished ++ ; + } + } + } + + $results[$game_num] = $game if ($result) ; + } + + ## Write result files back to $PGN_GAME.res + if (@results) { + die "Can't open results file $PGN_GAME.res for writing\n" + unless open (resfile, ">$PGN_GAME.res") ; + print resfile @results ; + close (results) ; + } + + unlink <$PGN_GAME.game.out.*> ; + + ## ############################################################# ## + ## Just say how many games are in the message + ## ############################################################# ## + + if ($num_games > 1) { + $move_msg = "$num_games games" ; + } else { + $move_msg = "1 game" ; + } + + ## ############################################################# ## + ## Print how many finished/unfinished games were found + ## ############################################################# ## + + printf ("Sending %d unfinished %s and %d finished %s.\n", + $unfinished, ($unfinished == 1) ? "game" : "games", + $finished, ($finished == 1) ? "game" : "games") ; + + ## ############################################################# ## + ## Send the mail message to opponent's address unless bypassed + ## ############################################################# ## + + if ($SEND_MAIL) { + local ($subject) = "cmail $move_msg <$PGN_GAME>" ; + if ($MAILPROG =~ /sendmail/) { + $opened = open (mail, "|$MAILPROG $OPP_ADDRESS") ; + print mail "To: $OPP_ADDRESS\n"; + print mail "Subject: $subject\n"; + print mail "Mime-Version: 1.0\n"; + print mail "Content-Type: application/x-chess;name=$PGN_GAME.pgn\n\n"; + } else { + $opened = open (mail, "|$MAILPROG -s \"$subject\" $OPP_ADDRESS") ; + } + if ($opened) { + print mail @games ; + close (mail) ; + print ( "Mailed cmail message to \"$OPP_ADDRESS\":\n" + . "$move_msg <$PGN_GAME>\n") ; + @ARCHIVE = @results unless ($unfinished) ; + } else { + die "Failed to mail cmail message.\n" ; + } + } else { + print ( "Email not sent (as requested).\n" + . "Would have mailed cmail message to \"$OPP_ADDRESS\":\n" + . "$NUM_GAMES games <$PGN_GAME>\n") ; + } + } else { + if (@results) { + print "Email not sent (the game is over).\n" ; + } else { + die "No games found\n" ; + } + } +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get date from array of games +sub get_date_from_games { + local (@games) = @_ ; + + local ($date) = "nodate" ; + + foreach (@games) { + if (/\[Date\s"(.*)"\]/) { + $date = $1 ; + last ; ## Assume all dates are the same + } + } + + return ($date) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Determine which colour is to play and the move number +sub get_to_play { + &debug ("Called \n") ; + local ($game) = shift ; + + local ($number, $to_play) = (1, "White") ; + + $game =~ s/{[^}]*}//g ; + $game =~ s/[\s\n]*[*][\s\n]*$// ; + + if ($game =~ /(\d+)[.][\n ]*([.]*)[\n ]*([^\n.]*)[\n\s]*[10-]*[\n\s]*$/) { + $number = $1 ; + + if ($game =~ /\[Result "0-1"\]/) { + $to_play = "Black" ; + } elsif ($game =~ /\[Result "1-0"\]/) { + $to_play = "White" ; + } elsif (($2 ne "") || (($3 =~ / /) || ($3 eq ""))) { + $to_play = "White" ; + $number ++ ; + } else { + $to_play = "Black" ; + } + } + + &debug ("$to_play to play on move $number\n") ; + + return ($number, $to_play) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Get opp address from array of games +sub get_opp_address_from_games { + &debug ("Called \n") ; + local (@games) = @_ ; + + local ($opp_address) = "" ; + local ($number, $to_play, $tag) ; + + foreach (@games) { + next unless $_ ; + + ($number, $to_play) = &get_to_play ($_) ; + $tag = ( ($to_play eq "White") + ? "WhiteNA" + : "BlackNA") ; + + if (/\[$tag\s"(.*)"\]/) { + $opp_address = $1 ; + die "cmail: Empty \"$tag\" tag\n" unless ($opp_address) ; + &debug ("Found opponent's address \"$opp_address\" from games.\n") ; + last ; ## Assume all opp addresses are the same + } else { + die "cmail: Can't find \"$tag\" tag\n" ; + } + } + + die "cmail: Can't find opponent's email address\n" unless ($opp_address) ; + + return ($opp_address) ; +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Archive @ARCHIVE in the $ARCDIR directory +sub archive { + return () unless (@ARCHIVE) ; + + local ($date) = &get_date_from_games (@ARCHIVE) ; + + local ($file) = "$ARCDIR/$PGN_GAME.$date.archive" ; + if (open (archive, ">$file")) { + print archive @ARCHIVE ; + close (archive) ; + print "Archived game in $file\n" ; + local (@remove) = <$PGN_GAME*> ; + @remove = grep ($_ ne "$PGN_GAME.$date.archive", + @remove) ; ## Don't delete archive + unlink (@remove) ; + } else { + print "Couldn't open \"$file\" to archive game\n" ; + } +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# + + +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +## Main body +sub main { + local (@games) = () ; + + &initialise () ; ## Initialise variables etc. + + if (-t || $REMAIL) { ## No input directed (invoked from a shell rather than a mailer) + &debug ("Interactive!\n") ; + &find_game () ; ## Get the necessary info about the game + } else { + &debug ("Piping!\n") ; + &analyse_email_message () ; ## Analyse the mail message + } + + if (! &play_game ()) { ## Load the game + &send_move () ; ## Analyse output and send moves + } + + &archive () ; ## Archive games if all finished + + close (tty) ; ## Tidy up + close (logfile) if ($DEBUG) ; ## Tidy up +} +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +&main () ; +#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=# +__END__ +cmail $Revision$, Copyright (C) 1993 Free Software Foundation, Inc. +cmail comes with ABSOLUTELY NO WARRANTY; for details type `cmail -w'. +cmail is free software, and you are welcome to redistribute it +under certain conditions; type `cmail -c' for details. + +{END OF GPL COPYRIGHT} + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. +{END OF GPL CONDITIONS} + GNU GENERAL PUBLIC LICENSE + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + diff --git a/cmail.man b/cmail.man new file mode 100644 index 0000000..ac7dce6 --- /dev/null +++ b/cmail.man @@ -0,0 +1,275 @@ +.\"=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +.\"# File: cmail.man +.\"# +.\"# Author: Evan Welsh +.\"# +.\"# Email: Evan.Welsh@msdw.com +.\"# +.\"# Modified: $Date$ +.\"# $Revision$ +.\"# +.\"# Summary: Man page for cmail +.\"=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= +.\" +.TH CMAIL 6 +.PD +.ad b +.SH NAME +cmail \- an email chess helper +.SH SYNOPSIS +\fBcmail\fR +[\|\fBoptions\fR\|] +.SH DESCRIPTION +.PP +The \fIcmail\fP program will help you play chess by email with opponents of +your choice using an X interface. To use it, you will need to be able to +run \fIxboard\fP with which \fIcmail\fP is distributed, available by +anonymous FTP from numerous sites around the world. It has been tested with +\fIxboard 3.2\fP; it may require modification for other versions. +.SH OPTIONS +You will usually run cmail without giving any options. See the next +section for instructions. +.TP 8 +.B \-h +Displays \fIcmail\fP usage information. +.TP 8 +.B \-c +Shows the conditions of the GNU General Public License. +.TP 8 +.B \-w +Shows the warranty notice of the GNU General Public License. +.TP 8 +.B \-[\|x\|]v +Provides or inhibits verbose output from \fIcmail\fP and \fIxboard\fP, +useful for debugging. The +.B \-xv +form also inhibits the cmail introduction message. +.TP 8 +.B \-[\|x\|]mail +Invokes or inhibits the sending of a mail message containing the move. +.TP 8 +.B \-[\|x\|]xboard +Invokes or inhibits the running of \fIxboard\fP on the game file. +.TP 8 +.B \-[\|x\|]reuse +Invokes or inhibits the reuse of an existing \fIxboard\fP to display the +current game. +.TP 8 +.B \-remail +Resends the last mail message for that game. This inhibits running +\fIxboard\fP. +.TP 8 +.B \-game \fIname\fP +The name of the game to be processed. +.TP 8 +.B \-(w|b|)games \fInumber\fP +Number of games to start as White, as Black or in total. Default is 1 as +white and none as black. If only one colour is specified then none of the +other colour is assumed. If no colour is specified then equal numbers of +White and Black games are started, with the extra game being as White if an +odd number of total games is specified. +.TP 8 +.B \-(me|opp) \fIshort name\fP +A one-word alias for yourself or your opponent. +.TP 8 +.B \-(w|b|my|opp)name \fIfull name\fP +The full name of White, Black, yourself or your opponent. +.TP 8 +.B \-(w|b|my|opp)na \fInet address\fP +The email address of White, Black, yourself or your opponent. +.TP 8 +.B \-dir \fIdirectory\fP +The directory in which \fIcmail\fP keeps its files. This defaults to the +environment variable $CMAIL_DIR or failing that, $CHESSDIR, $HOME/Chess or +~/Chess. It will be created if it does not exist. +.TP 8 +.B \-arcdir \fIdirectory\fP +The directory in which \fIcmail\fP archives completed games. Defaults to +the environment variable $CMAIL_ARCDIR or, in its absence, the same +directory as cmail keeps its working files (above). +.TP 8 +.B \-mailprog \fImail program\fP +The program used by cmail to send email messages. This defaults to the +environment variable $CMAIL_MAILPROG or failing that "/usr/ucb/Mail", +"/usr/ucb/mail" or "Mail". You will need to set this variable if none of +the above paths fit your system. +.TP 8 +.B \-gamesFile \fIfile\fP +A file containing a list of games with email addresses. This defaults to +the environment variable $CMAIL_GAMES or failing that .cmailgames. +.TP 8 +.B \-aliasesFile \fIfile\fP +A file containing one or more aliases for a set of email addresses. This +defaults to the environment variable $CMAIL_ALIASES or failing +that .cmailaliases. +.TP 8 +.B \-logFile \fIfile\fP +A file in which to dump verbose debugging messages that are invoked with +the +.B \-v +option. +.TP 8 +.B \-event \fIevent\fP +The PGN Event tag (default "Email correspondence game"). +.TP 8 +.B \-site \fIsite\fP +The PGN Site tag (default "NET"). +.TP 8 +.B \-round \fIround\fP +The PGN Round tag (default "-", not applicable). +.TP 8 +.B \-mode \fImode\fP +The PGN Mode tag (default "EM", Electronic Mail). +.PP +.SH OTHER OPTIONS +Any unrecognised flags will be passed to \fIxboard\fP. Those most relevant +for use with \fIcmail\fP are: +.TP 8 +.B \-timeDelay (or -td) \fIdelay\fP +This sets the speed at which the moves are displayed on start-up. It +defaults to the environment variable $CMAIL_TIME_DELAY if set, and 0 +otherwise. +.TP 8 +.B \-noChessProgram (True | False), or -[x]ncp +If this option is False, +.IR xboard +starts a chess program which can be used with \fIcmail\fP to suggest moves. +Default: True. +.TP 8 +.B \-searchTime (or -st) minutes[:seconds] +Tells GNU Chess to spend at most the given amount of time searching +for each of its moves. Without this option, GNU Chess chooses +its search time based on the number of moves and amount of time +remaining until the next time control. +.TP 8 +.B \-searchDepth (or -sd) number +Tells GNU Chess to look ahead at most the given number of moves when +searching for a move to make. Without this option, GNU Chess chooses its +search depth based on the number of moves and amount of time remaining +until the next time control. +.TP 8 +.B \-saveGameFile (or -sgf) file +If this option is set, +.IR xboard +appends a record of the game played to the specified file on exit. +.TP 8 +.B -autosave or -autoSaveGames +If this option is True, at the end of every game +.IR xboard +prompts you for a filename and appends a record of the game to the file you +specify. +.TP 8 +.B \-savePositionFile (or -spf) file +If this option is set, +.IR xboard +appends the final position reached to the specified file on exit. +.TP 8 +.B \-boardSize (or -size) "(Large | Medium | Small)" +Determines how large the board will be and what built-in piece bitmaps +will be used. On a large board (the default), +pieces are 80x80 pixels, on a medium board 64x64 pixels, and +on a small board 40x40 pixels. +.SH STARTING A GAME +Type \fIcmail\fP from a shell to start a game as white. After an opening +message, you will be prompted for a game name, which is optional -- if you +simply press return, the game name will take the form +\fIyou\fP-VS-\fIopponent\fP. You will next be prompted for the short name +of your opponent. If you haven't played this person before, you will also +be prompted for his/her email address. \fIcmail\fP will then invoke +\fIxboard\fP in the background. Make your first move and select \fIMail +Move\fP from the \fIFile\fP menu. If all is well, \fIcmail\fP will mail a +copy of the move to your opponent. If you select \fIExit\fP without having +selected \fIMail Move\fP then no move will be made. +.SH ANSWERING A MOVE +When you receive a message from an opponent containing a move in one of +your games, simply pipe the message through \fIcmail\fP. In some mailers +this is as simple as typing "| cmail" when viewing the message, while in +others you may have to save the message to a file and do "cmail < file" at +the command line. In either case \fIcmail\fP will display the game using +\fIxboard\fP. If you didn't exit \fIxboard\fP when you made your first move +then \fIcmail\fP will do its best to use the existing \fIxboard\fP instead +of starting a new one. As before, simply make a move and select \fIMail +Move\fP from the \fIFile\fP menu. \fIcmail\fP will try to use the +\fIxboard\fP that was most recently used to display the current game. This +means that many games can be in progress simultaneously, each with its own +active \fIxboard\fP. +.PP +If you want to look at the history or explore a variation, go ahead, but +you must return to the current position before \fIxboard\fP will allow you +to mail a move. If you edit the game's history you must select \fIReload +Same Game\fP from the \fIFile\fP menu to get back to the original position, +then make the move you want and select \fIMail Move\fP. As before, if you +decide you aren't ready to make a move just yet you can either select +\fIExit\fP without sending a move or just leave \fIxboard\fP running until +you are ready. +.SH COMPLETING A GAME +Because \fIxboard\fP can now detect checkmate and stalemate, \fIcmail\fP +now handles game termination sensibly. As well as resignation, the +\fIAction\fP menu now allows draws to be offered and accepted for +\fIcmail\fP games. +.PP +For multi-game messages, only unfinished and just-finished games will be +included in email messages. When all the games are finished, they are +archived in the user's archive directory, and similarly in the opponent's +when he or she pipes the final message through \fIcmail\fP. The archive +file name includes the date the game was started. +.SH MULTI-GAME MESSAGES +It's possible to have a \fIcmail\fP message carry more than one game. This +feature was implemented to handle IECG (International Email Chess Group) +matches, where a match consists of 1 game as white and 1 as black, with +moves transmitted simultaneously. In case there are more general uses, +\fIcmail\fP itself places no limit on the number of black/white games +contained in a message; however, \fIxboard\fP does. +.SH TROUBLE SHOOTING +It's possible that a strange conjunction of conditions may occasionally +mean that \fIcmail\fP has trouble reactivating an existing \fIxboard\fP. If +this should happen, simply trying it again should work. If not, remove the +file that stores the \fIxboard\fP's PID (<\fIgame\fP>.pid) or use the +\fI-xreuse\fP option to force \fIcmail\fP to start a new \fIxboard\fP. +.PP +Versions of \fIcmail\fP after 2.16 no longer understand the old file format +that \fIxboard\fP used to use and so cannot be used to correspond with +anyone using an older version. +.PP +Versions of \fIcmail\fP older than 2.11 do not handle multi-game messages, +so multi-game correspondence is not possible with opponents using an older +version. +.SH FILES +"\fI.cmailgames\fP" +contains a list of games with the email addresses of the opponents. +.PP +"\fI.cmailaliases\fP" +contains one or more aliases for a set of email addresses. +.SH BUGS +No known bugs. +.SH BUG REPORTS +I make no promises but if you send bug reports/suggestions to +Evan.Welsh@msdw.com I'll do my best to fix/implement them. +.SH AUTHOR +Copyright (C) 1993 Free Software Foundation, Inc. +.PP +\fIcmail\fP is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +.PP +\fIcmail\fP is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License +along with cmail; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. +.sp +.ta 1.0i 3.0i +.nf +Author: Evan Welsh +.fi +.SH CONTRIBUTORS +.PP +Patrick Surry helped with design, testing and documentation. +.PP +Tim Mann helped integrate \fIcmail\fP with \fIxboard\fP. +.SH SEE ALSO +\fIMail\fP(1), \fIperl\fP(1), \fIxboard\fP(1) diff --git a/comment.in b/comment.in new file mode 100644 index 0000000..7354c52 --- /dev/null +++ b/comment.in @@ -0,0 +1,42 @@ +#! @AWKPATH@ -f +# +# Preprocessor for chess games that are formatted as blocks of moves +# interspersed with blocks of text, separated by blank lines. Finds +# the blocks of text and encloses them with "{ }" brackets so that +# xboard's game parser can identify them as comments. Many games are +# posted to rec.games.chess in this format. +# +# Limitation: Fails if a text block starts with a numbered move. In +# that case you'll have to hand-edit the output. +# +BEGIN { + inmoves = 0; + blankline = 1; +} + +{ + if (NF == 0) { + blankline = 1; + } else if (blankline) { + blankline = 0; + if ($1 ~ /^[0-9]+/) { + if (!inmoves) { + inmoves = 1; + print "}"; + } else { + print ""; + } + } else { + if (inmoves) { + inmoves = 0; + print "{"; + } else { + print "}{"; + } + } + print $0; + } else { + print $0; + } +} + diff --git a/common.h b/common.h new file mode 100644 index 0000000..62281a4 --- /dev/null +++ b/common.h @@ -0,0 +1,452 @@ +/* + * common.h -- Common definitions for X and Windows NT versions of XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#ifndef _COMMON +#define _COMMON + +/* Begin compatibility grunge */ + +#if defined(__STDC__) || defined(WIN32) || defined(_amigados) +#define P(args) args +typedef void *VOIDSTAR; +#else +#define P(args) () +typedef char *VOIDSTAR; +#endif + +#ifdef WIN32 +typedef char Boolean; +typedef char *String; +#define popen _popen +#define pclose _pclose + +#else +#ifdef _amigados /* It is important, that these types have */ +typedef int Boolean; /* a length of 4 bytes each, as we are */ +typedef char *String; /* using ReadArgs() for argument parsing. */ +#ifdef _DCC +FILE *popen(const char *, const char *); +int pclose(FILE *); +#endif + +#else +#include +#endif +#endif + + +#ifndef TRUE +#define TRUE 1 +#define FALSE 0 +#endif + +#if !HAVE_RANDOM +# if HAVE_RAND48 +# define srandom srand48 +# define random lrand48 +# else /* not HAVE_RAND48 */ +# define srandom srand +# define random rand +# endif /* not HAVE_RAND48 */ +#endif /* !HAVE_RANDOM */ + +/* End compatibility grunge */ + +#define PROTOVER 2 /* engine protocol version */ + +#define BOARD_SIZE 8 +#define DROP_RANK -3 +#define MAX_MOVES 1000 +#define MSG_SIZ 512 +#define DIALOG_SIZE 256 +#define STAR_MATCH_N 16 +#define MOVE_LEN 32 +#define TIME_CONTROL "5" /* in minutes */ +#define TIME_DELAY_QUOTE "1.0" /* seconds between moves */ +#define TIME_DELAY ((float) 1.0) +#define MOVES_PER_SESSION 40 /* moves per TIME_CONTROL */ +#define TIME_INCREMENT -1 /* if >= 0, MOVES_PER_SESSION unused */ +#define WhiteOnMove(move) (((move) % 2) == 0) +#define ICS_HOST "chessclub.com" +#define ICS_PORT "5000" +#define ICS_COMM_PORT "" +#define FIRST_HOST "localhost" +#define SECOND_HOST "localhost" +#define TELNET_PROGRAM "telnet" +#define MATCH_MODE "False" +#define INIT_STRING "new\nrandom\n" +#define WHITE_STRING "white\ngo\n" +#define BLACK_STRING "black\ngo\n" +#define COMPUTER_STRING "computer\n" +#define REUSE_CHESS_PROGRAMS 1 +#define WHITE_PIECE_COLOR "#FFFFCC" +#define BLACK_PIECE_COLOR "#202020" +#define LIGHT_SQUARE_COLOR "#C8C365" +#define DARK_SQUARE_COLOR "#77A26D" +#define JAIL_SQUARE_COLOR "#808080" +#define HIGHLIGHT_SQUARE_COLOR "#FFFF00" +#define PREMOVE_HIGHLIGHT_COLOR "#FF0000" +#define BELLCHAR '\007' +#define NULLCHAR '\000' +#define FEATURE_TIMEOUT 10000 /*ms*/ + +/* Zippy defaults */ +#define ZIPPY_TALK FALSE +#define ZIPPY_PLAY FALSE +#define ZIPPY_LINES "yow.lines" +#define ZIPPY_PINHEAD "" +#define ZIPPY_PASSWORD "" +#define ZIPPY_PASSWORD2 "" +#define ZIPPY_WRONG_PASSWORD "" +#define ZIPPY_ACCEPT_ONLY "" +#define ZIPPY_USE_I TRUE +#define ZIPPY_BUGHOUSE 0 +#define ZIPPY_NOPLAY_CRAFTY FALSE +#define ZIPPY_GAME_END "gameend\n" +#define ZIPPY_GAME_START "" +#define ZIPPY_ADJOURN FALSE +#define ZIPPY_ABORT FALSE +#define ZIPPY_VARIANTS "normal" +#define ZIPPY_MAX_GAMES 0 +#define ZIPPY_REPLAY_TIMEOUT 120 + +typedef enum { + BeginningOfGame, MachinePlaysWhite, MachinePlaysBlack, + AnalyzeMode, AnalyzeFile, TwoMachinesPlay, + EditGame, PlayFromGameFile, EndOfGame, EditPosition, Training, + IcsIdle, IcsPlayingWhite, IcsPlayingBlack, IcsObserving, + IcsExamining + } GameMode; + +typedef enum { + WhitePawn, WhiteKnight, WhiteBishop, WhiteRook, WhiteQueen, WhiteKing, + BlackPawn, BlackKnight, BlackBishop, BlackRook, BlackQueen, BlackKing, + EmptySquare, + ClearBoard, WhitePlay, BlackPlay /*for use on EditPosition menus*/ + } ChessSquare; + +typedef ChessSquare Board[BOARD_SIZE][BOARD_SIZE]; + +typedef enum { + WhiteKingSideCastle = 1, WhiteQueenSideCastle, + WhiteKingSideCastleWild, WhiteQueenSideCastleWild, + WhiteHSideCastleFR, WhiteASideCastleFR, + BlackKingSideCastle, BlackQueenSideCastle, + BlackKingSideCastleWild, BlackQueenSideCastleWild, + BlackHSideCastleFR, BlackASideCastleFR, + WhitePromotionKnight, WhitePromotionBishop, + WhitePromotionRook, WhitePromotionQueen, WhitePromotionKing, + BlackPromotionKnight, BlackPromotionBishop, + BlackPromotionRook, BlackPromotionQueen, BlackPromotionKing, + WhiteCapturesEnPassant, BlackCapturesEnPassant, + WhiteDrop, BlackDrop, + NormalMove, AmbiguousMove, IllegalMove, ImpossibleMove, + WhiteWins, BlackWins, GameIsDrawn, GameUnfinished, + GNUChessGame, XBoardGame, MoveNumberOne, + Comment, PositionDiagram, ElapsedTime, PGNTag, NAG + } ChessMove; + +typedef enum { + ColorShout, ColorSShout, ColorChannel1, ColorChannel, ColorKibitz, + ColorTell, ColorChallenge, ColorRequest, ColorSeek, ColorNormal, + ColorNone, NColorClasses +} ColorClass; + +typedef enum { + SoundMove, SoundBell, SoundAlarm, SoundIcsWin, SoundIcsLoss, + SoundIcsDraw, SoundIcsUnfinished, NSoundClasses +} SoundClass; + +/* Names for chess variants, not necessarily supported */ +typedef enum { + VariantNormal, /* Normal chess */ + VariantLoadable, /* "loadgame" command allowed (not really a variant)*/ + VariantWildCastle, /* Shuffle chess where king can castle from d file */ + VariantNoCastle, /* Shuffle chess with no castling at all */ + VariantFischeRandom, /* FischeRandom */ + VariantBughouse, /* Bughouse, ICC/FICS rules */ + VariantCrazyhouse, /* Crazyhouse, ICC/FICS rules */ + VariantLosers, /* Try to lose all pieces or get mated (ICC wild 17)*/ + VariantSuicide, /* Try to lose all pieces incl. king (FICS) */ + VariantGiveaway, /* Try to have no legal moves left (ICC wild 26) */ + VariantTwoKings, /* Weird ICC wild 9 */ + VariantKriegspiel, /* Kriegspiel; pawns can capture invisible pieces */ + VariantAtomic, /* Capturing piece explodes (ICC wild 27) */ + Variant3Check, /* Win by giving check 3 times (ICC wild 25) */ + VariantShatranj, /* Unsupported (ICC wild 28) */ + Variant29, /* Temporary name for possible future ICC wild 29 */ + Variant30, /* Temporary name for possible future ICC wild 30 */ + Variant31, /* Temporary name for possible future ICC wild 31 */ + Variant32, /* Temporary name for possible future ICC wild 32 */ + Variant33, /* Temporary name for possible future ICC wild 33 */ + Variant34, /* Temporary name for possible future ICC wild 34 */ + Variant35, /* Temporary name for possible future ICC wild 35 */ + Variant36, /* Temporary name for possible future ICC wild 36 */ + VariantUnknown /* Catchall for other unknown variants */ +} VariantClass; + +#define VARIANT_NAMES { \ + "normal", \ + "normal", \ + "wildcastle", \ + "nocastle", \ + "fischerandom", \ + "bughouse", \ + "crazyhouse", \ + "losers", \ + "suicide", \ + "giveaway", \ + "twokings", \ + "kriegspiel", \ + "atomic", \ + "3check", \ + "shatranj", \ + "wild29", \ + "wild30", \ + "wild31", \ + "wild32", \ + "wild33", \ + "wild34", \ + "wild35", \ + "wild36", \ + "unknown" \ +} + +typedef struct { +#if !defined(_amigados) + char *whitePieceColor; + char *blackPieceColor; + char *lightSquareColor; + char *darkSquareColor; + char *jailSquareColor; + char *highlightSquareColor; + char *premoveHighlightColor; +#else + int whitePieceColor; + int blackPieceColor; + int lightSquareColor; + int darkSquareColor; + int jailSquareColor; + int highlightSquareColor; + int premoveHighlightColor; +#endif + int movesPerSession; + int timeIncrement; + char *initString; + char *secondInitString; + char *firstComputerString; + char *secondComputerString; + char *firstChessProgram; + char *secondChessProgram; + char *firstDirectory; + char *secondDirectory; + Boolean firstPlaysBlack; + Boolean noChessProgram; + char *firstHost; + char *secondHost; + char *bitmapDirectory; + char *remoteShell; + char *remoteUser; + float timeDelay; + char *timeControl; + Boolean icsActive; + char *icsHost; + char *icsPort; + char *icsCommPort; /* if set, use serial port instead of tcp host/port */ + char *icsLogon; /* Hack to permit variable logon scripts. */ + char *icsHelper; + Boolean icsInputBox; + Boolean useTelnet; + char *telnetProgram; + char *gateway; + char *loadGameFile; + int loadGameIndex; /* game # within file */ + char *saveGameFile; + Boolean autoSaveGames; + char *loadPositionFile; + int loadPositionIndex; /* position # within file */ + char *savePositionFile; + Boolean matchMode; + int matchGames; + Boolean monoMode; + Boolean debugMode; + Boolean clockMode; + char *boardSize; + Boolean Iconic; + char *searchTime; + int searchDepth; + Boolean showCoords; + char *clockFont; + char *messageFont; /* WinBoard only */ + char *coordFont; + char *font; /* xboard only: all other fonts */ + char *tagsFont; /* WinBoard only */ + char *commentFont; /* WinBoard only */ + char *icsFont; /* WinBoard only */ + Boolean ringBellAfterMoves; + Boolean autoCallFlag; + Boolean flipView; + Boolean autoFlipView; + char *cmailGameName; /* xboard only */ + Boolean alwaysPromoteToQueen; + Boolean oldSaveStyle; + Boolean quietPlay; + Boolean showThinking; + Boolean ponderNextMove; + Boolean periodicUpdates; + Boolean autoObserve; + Boolean autoComment; + Boolean getMoveList; + Boolean testLegality; + int borderXoffset; /* xboard only */ + int borderYoffset; /* xboard only */ + Boolean titleInWindow; /* xboard only */ + Boolean localLineEditing; /* WinBoard only */ + Boolean zippyTalk; + Boolean zippyPlay; + int flashCount; /* Number of times to flash (xboard only) */ + int flashRate; /* Flashes per second (xboard only) */ + char *pixmapDirectory; /* Path to XPM/XIM files to use (xboard only) */ + int msLoginDelay; /* Delay per character (in msec) while sending + ICS logon script (xboard only) */ + Boolean colorize; /* If True, use the following colors to color text */ + /* Strings for colors, as "fg, bg, bold" (strings used in xboard only) */ + char *colorShout; + char *colorSShout; + char *colorChannel1; + char *colorChannel; + char *colorKibitz; + char *colorTell; + char *colorChallenge; + char *colorRequest; + char *colorSeek; + char *colorNormal; + char *soundProgram; /* sound-playing program */ + char *soundShout; + char *soundSShout; + char *soundChannel1; + char *soundChannel; + char *soundKibitz; + char *soundTell; + char *soundChallenge; + char *soundRequest; + char *soundSeek; + char *soundMove; + char *soundIcsWin; + char *soundIcsLoss; + char *soundIcsDraw; + char *soundIcsUnfinished; + char *soundIcsAlarm; + Boolean reuseFirst; + Boolean reuseSecond; + Boolean animateDragging; /* If True, animate mouse dragging of pieces */ + Boolean animate; /* If True, animate non-mouse moves */ + int animSpeed; /* Delay in milliseconds between animation frames */ + Boolean popupMoveErrors; + Boolean popupExitMessage; + int showJail; + Boolean highlightLastMove; + Boolean highlightDragging; + Boolean blindfold; /* if true, no pieces are drawn */ + Boolean premove; /* true if premove feature enabled */ + Boolean premoveWhite; /* true if premoving White first move */ + char *premoveWhiteText; /* text of White premove 1 */ + Boolean premoveBlack; /* true if premoving Black first move */ + char *premoveBlackText; /* text of Black premove 1 */ + Boolean icsAlarm; /* true if sounding alarm at a certain time */ + int icsAlarmTime; /* time to sound alarm, in milliseconds */ + Boolean autoRaiseBoard; + int fontSizeTolerance; /* xboard only */ + char *initialMode; + char *variant; + int firstProtocolVersion; + int secondProtocolVersion; + Boolean showButtonBar; +#if ZIPPY + char *zippyLines; + char *zippyPinhead; + char *zippyPassword; + char *zippyPassword2; + char *zippyWrongPassword; + char *zippyAcceptOnly; + int zippyUseI; + int zippyBughouse; + int zippyNoplayCrafty; + char *zippyGameEnd; + char *zippyGameStart; + int zippyAdjourn; + int zippyAbort; + char *zippyVariants; + int zippyMaxGames; + int zippyReplayTimeout; /*seconds*/ +#endif +} AppData, *AppDataPtr; + +extern AppData appData; + +typedef struct { + /* PGN 7-tag info */ + char *event; + char *site; + char *date; + char *round; + char *white; + char *black; + ChessMove result; + /* Additional info */ + char *fen; /* NULL or FEN for starting position; input only */ + char *resultDetails; + char *timeControl; + char *extraTags; /* NULL or "[Tag \"Value\"]\n", etc. */ + int whiteRating; /* -1 if unknown */ + int blackRating; /* -1 if unknown */ + VariantClass variant; +} GameInfo; + + +#endif diff --git a/config.guess b/config.guess new file mode 100755 index 0000000..e9e4455 --- /dev/null +++ b/config.guess @@ -0,0 +1,693 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc. +# +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Written by Per Bothner . +# The master version of this file is at the FSF in /home/gd/gnu/lib. +# +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. +# +# The plan is that this can be called by configure scripts if you +# don't specify an explicit system type (host/target name). +# +# Only a few systems have been added to this list; please add others +# (but try to keep the structure clean). +# + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 8/24/94.) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15 + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + alpha:OSF1:*:*) + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'` + exit 0 ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit 0 ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-cbm-sysv4 + exit 0;; + amiga:NetBSD:*:*) + echo m68k-cbm-netbsd${UNAME_RELEASE} + exit 0 ;; + amiga:OpenBSD:*:*) + echo m68k-cbm-openbsd${UNAME_RELEASE} + exit 0 ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit 0;; + Pyramid*:OSx*:*:*|MIS*:OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit 0 ;; + NILE:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit 0 ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + i86pc:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit 0 ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit 0 ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit 0 ;; + atari*:NetBSD:*:*) + echo m68k-atari-netbsd${UNAME_RELEASE} + exit 0 ;; + atari*:OpenBSD:*:*) + echo m68k-atari-openbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:NetBSD:*:*) + echo m68k-sun-netbsd${UNAME_RELEASE} + exit 0 ;; + sun3*:OpenBSD:*:*) + echo m68k-sun-openbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:NetBSD:*:*) + echo m68k-apple-netbsd${UNAME_RELEASE} + exit 0 ;; + mac68k:OpenBSD:*:*) + echo m68k-apple-openbsd${UNAME_RELEASE} + exit 0 ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit 0 ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit 0 ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit 0 ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + sed 's/^ //' << EOF >dummy.c + int main (argc, argv) int argc; char **argv; { + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + ${CC-cc} dummy.c -o dummy \ + && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \ + && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit 0 ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit 0 ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit 0 ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit 0 ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \ + -o ${TARGET_BINARY_INTERFACE}x = x ] ; then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else echo i586-dg-dgux${UNAME_RELEASE} + fi + exit 0 ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit 0 ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit 0 ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit 0 ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit 0 ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit 0 ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i?86:AIX:*:*) + echo i386-ibm-aix + exit 0 ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + sed 's/^ //' << EOF >dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo rs6000-ibm-aix3.2.5 + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit 0 ;; + *:AIX:*:4) + if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=4.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit 0 ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit 0 ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit 0 ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC NetBSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit 0 ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit 0 ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit 0 ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit 0 ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit 0 ;; + 9000/[3478]??:HP-UX:*:*) + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;; + 9000/8?? ) HP_ARCH=hppa1.0 ;; + esac + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit 0 ;; + 3050*:HI-UX:*:*) + sed 's/^ //' << EOF >dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + echo unknown-hitachi-hiuxwe2 + exit 0 ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit 0 ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit 0 ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit 0 ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit 0 ;; + i?86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit 0 ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit 0 ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit 0 ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit 0 ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit 0 ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit 0 ;; + CRAY*X-MP:*:*:*) + echo xmp-cray-unicos + exit 0 ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ + exit 0 ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} + exit 0 ;; + CRAY-2:*:*:*) + echo cray2-cray-unicos + exit 0 ;; + F300:UNIX_System_V:*:*) + FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit 0 ;; + F301:UNIX_System_V:*:*) + echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'` + exit 0 ;; + hp3[0-9][05]:NetBSD:*:*) + echo m68k-hp-netbsd${UNAME_RELEASE} + exit 0 ;; + hp3[0-9][05]:OpenBSD:*:*) + echo m68k-hp-openbsd${UNAME_RELEASE} + exit 0 ;; + i?86:BSD/386:*:* | *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit 0 ;; + *:FreeBSD:*:*) + echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit 0 ;; + *:NetBSD:*:*) + echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + *:OpenBSD:*:*) + echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + exit 0 ;; + i*:CYGWIN*:*) + echo i386-pc-cygwin32 + exit 0 ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin32 + exit 0 ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit 0 ;; + *:GNU:*:*) + echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit 0 ;; + *:Linux:*:*) + # The BFD linker knows what the default object file format is, so + # first see if it will tell us. + ld_help_string=`ld --help 2>&1` + if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then + echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0 + elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then + echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0 + elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then + echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0 + elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then + echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0 + elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then + echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 + elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then + echo "powerpc-unknown-linux-gnu" ; exit 0 + elif test "${UNAME_MACHINE}" = "alpha" ; then + echo alpha-unknown-linux-gnu ; exit 0 + elif test "${UNAME_MACHINE}" = "sparc" ; then + echo sparc-unknown-linux-gnu ; exit 0 + else + # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us + # useful --help. Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout. + test ! -d /usr/lib/ldscripts/. \ + && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0 + # Determine whether the default compiler is a.out or elf + cat >dummy.c </dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0 + rm -f dummy.c dummy + fi ;; +# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions +# are messed up and put the nodename in both sysname and nodename. + i?86:DYNIX/ptx:4*:*) + echo i386-sequent-sysv4 + exit 0 ;; + i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*) + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE} + fi + exit 0 ;; + i?86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')` + (/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit 0 ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit 0 ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit 0 ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit 0 ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit 0 ;; + M68*:*:R3V[567]*:*) + test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;; + 3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4.3${OS_REL} && exit 0 + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && echo i486-ncr-sysv4 && exit 0 ;; + m68*:LynxOS:2.*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit 0 ;; + i?86:LynxOS:2.*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit 0 ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit 0 ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit 0 ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit 0 ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit 0 ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit 0 ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit 0 ;; + R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit 0 ;; + PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit 0 ;; +esac + +#echo '(No uname command or uname output not recognized.)' 1>&2 +#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 + +cat >dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +#if !defined (ultrix) + printf ("vax-dec-bsd\n"); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0 +rm -f dummy.c dummy + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit 0 ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit 0 ;; + c34*) + echo c34-convex-bsd + exit 0 ;; + c38*) + echo c38-convex-bsd + exit 0 ;; + c4*) + echo c4-convex-bsd + exit 0 ;; + esac +fi + +#echo '(Unable to guess system type)' 1>&2 + +exit 1 diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..5f518f1 --- /dev/null +++ b/config.h.in @@ -0,0 +1,135 @@ +/* config.h.in. Generated automatically from configure.in by autoheader. */ + +/* Define if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define if you need to in order for stat and other things to work. */ +#undef _POSIX_SOURCE + +/* Define as the return type of signal handlers (int or void). */ +#undef RETSIGTYPE + +/* Define if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* Define if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* Define if lex declares yytext as a char * by default, not a char[]. */ +#undef YYTEXT_POINTER + +#define FIRST_PTY_LETTER 'p' + +#undef IBMRTAIX + +#define LAST_PTY_LETTER 'q' + +#define PATCHLEVEL "0" + +#define PRODUCT "xboard" + +#undef PTY_ITERATION + +#undef PTY_NAME_SPRINTF + +#undef PTY_TTY_NAME_SPRINTF + +#define REMOTE_SHELL "rsh" + +#undef RTU + +#undef UNIPLUS + +#define USE_PTYS 0 + +#define VERSION "x.y" + +#undef X_WCHAR + +#undef ZIPPY + +#undef ATTENTION + +#undef DEFINED_SYS_ERRLIST + +#undef HAVE_LIBXPM + +#undef USE_XAW3D + +/* Define if you have the _getpty function. */ +#undef HAVE__GETPTY + +/* Define if you have the ftime function. */ +#undef HAVE_FTIME + +/* Define if you have the gethostname function. */ +#undef HAVE_GETHOSTNAME + +/* Define if you have the gettimeofday function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define if you have the grantpt function. */ +#undef HAVE_GRANTPT + +/* Define if you have the rand48 function. */ +#undef HAVE_RAND48 + +/* Define if you have the random function. */ +#undef HAVE_RANDOM + +/* Define if you have the sysinfo function. */ +#undef HAVE_SYSINFO + +/* Define if you have the usleep function. */ +#undef HAVE_USLEEP + +/* Define if you have the header file. */ +#undef HAVE_X11_XPM_H + +/* Define if you have the header file. */ +#undef HAVE_DIRENT_H + +/* Define if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_LAN_SOCKET_H + +/* Define if you have the header file. */ +#undef HAVE_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_STRING_H + +/* Define if you have the header file. */ +#undef HAVE_STROPTS_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_DIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_FCNTL_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_NDIR_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_SYSTEMINFO_H + +/* Define if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if you have the i library (-li). */ +#undef HAVE_LIBI + +/* Define if you have the seq library (-lseq). */ +#undef HAVE_LIBSEQ diff --git a/config.sub b/config.sub new file mode 100755 index 0000000..0432524 --- /dev/null +++ b/config.sub @@ -0,0 +1,927 @@ +#! /bin/sh +# Configuration validation subroutine script, version 1.1. +# Copyright (C) 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc. +# This file is (in principle) common to ALL GNU software. +# The presence of a machine in this file suggests that SOME GNU software +# can handle that machine. It does not imply ALL GNU software can. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +if [ x$1 = x ] +then + echo Configuration name missing. 1>&2 + echo "Usage: $0 CPU-MFR-OPSYS" 1>&2 + echo "or $0 ALIAS" 1>&2 + echo where ALIAS is a recognized configuration type. 1>&2 + exit 1 +fi + +# First pass through any local machine types. +case $1 in + *local*) + echo $1 + exit 0 + ;; + *) + ;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + linux-gnu*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple) + os= + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco5) + os=sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + tahoe | i860 | m68k | m68000 | m88k | ns32k | arm \ + | arme[lb] | pyramid \ + | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \ + | alpha | we32k | ns16k | clipper | i370 | sh \ + | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \ + | pdp11 | mips64el | mips64orion | mips64orionel \ + | sparc | sparclet | sparclite | sparc64) + basic_machine=$basic_machine-unknown + ;; + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i[3456]86) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + vax-* | tahoe-* | i[3456]86-* | i860-* | m68k-* | m68000-* | m88k-* \ + | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \ + | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \ + | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \ + | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \ + | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \ + | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \ + | mips64el-* | mips64orion-* | mips64orionel-* | f301-*) + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-cbm + ;; + amigados) + basic_machine=m68k-cbm + os=-amigados + ;; + amigaunix | amix) + basic_machine=m68k-cbm + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | ymp) + basic_machine=ymp-cray + os=-unicos + ;; + cray2) + basic_machine=cray2-cray + os=-unicos + ;; + [ctj]90-cray) + basic_machine=c90-cray + os=-unicos + ;; + crds | unos) + basic_machine=m68k-crds + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k7[0-9][0-9] | hp7[0-9][0-9] | hp9k8[0-9]7 | hp8[0-9]7) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + os=-mvs + ;; +# I'm not sure what "Sysv32" means. Should this be sysv3.2? + i[3456]86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i[3456]86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i[3456]86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i[3456]86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + miniframe) + basic_machine=m68000-convergent + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + np1) + basic_machine=np1-gould + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pentium | p5) + basic_machine=i586-intel + ;; + pentiumpro | p6) + basic_machine=i686-intel + ;; + pentium-* | p5-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + k5) + # We don't have specific support for AMD's K5 yet, so just call it a Pentium + basic_machine=i586-amd + ;; + nexen) + # We don't have specific support for Nexgen yet, so just call it a Pentium + basic_machine=i586-nexgen + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=rs6000-ibm + ;; + ppc) basic_machine=powerpc-unknown + ;; + ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + xmp) + basic_machine=xmp-cray + os=-unicos + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + mips) + basic_machine=mips-mips + ;; + romp) + basic_machine=romp-ibm + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sparc) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -unixware* | svr4*) + os=-sysv4 + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ + | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \ + | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -linux-gnu* | -uxpv*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -ctix* | -uts*) + os=-sysv + ;; + -ns2 ) + os=-nextstep2 + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -xenix) + os=-xenix + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + *-acorn) + os=-riscix1.2 + ;; + arm*-semi) + os=-aout + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + # This also exists in the configure program, but was not the + # default. + # os=-sunos4 + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-ibm) + os=-aix + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigados + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f301-fujitsu) + os=-uxpv + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -aix*) + vendor=ibm + ;; + -hpux*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -vxsim* | -vxworks*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os diff --git a/configure b/configure new file mode 100755 index 0000000..a4b60d2 --- /dev/null +++ b/configure @@ -0,0 +1,3835 @@ +#! /bin/sh + +# Guess values for system-dependent variables and create Makefiles. +# Generated automatically using autoconf version 2.13 +# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +# Defaults: +ac_help= +ac_default_prefix=/usr/local +# Any additions from configure.in: +ac_help="$ac_help + --with-Xaw3d use Xaw3d instead of Xaw" +ac_help="$ac_help + --with-x use the X Window System" +ac_help="$ac_help + --enable-xpm libXpm will be used if found (default) + --disable-xpm libXpm will not be used" +ac_help="$ac_help + --enable-ptys force use of pseudo-ttys with child processes + --disable-ptys force use of pipes with child processes" +ac_help="$ac_help + --enable-zippy features for interfacing a chess program to ICS" +ac_help="$ac_help + --enable-sigint sending SIGINT (^C) wakes up GNU Chess (default) + --disable-sigint typing a command wakes up GNU Chess" + +# Initialize some variables set by options. +# The variables have the same names as the options, with +# dashes changed to underlines. +build=NONE +cache_file=./config.cache +exec_prefix=NONE +host=NONE +no_create= +nonopt=NONE +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +target=NONE +verbose= +x_includes=NONE +x_libraries=NONE +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datadir='${prefix}/share' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +libdir='${exec_prefix}/lib' +includedir='${prefix}/include' +oldincludedir='/usr/include' +infodir='${prefix}/info' +mandir='${prefix}/man' + +# Initialize some other variables. +subdirs= +MFLAGS= MAKEFLAGS= +SHELL=${CONFIG_SHELL-/bin/sh} +# Maximum number of lines to put in a shell here document. +ac_max_here_lines=12 + +ac_prev= +for ac_option +do + + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval "$ac_prev=\$ac_option" + ac_prev= + continue + fi + + case "$ac_option" in + -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; + *) ac_optarg= ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case "$ac_option" in + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir="$ac_optarg" ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build="$ac_optarg" ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file="$ac_optarg" ;; + + -datadir | --datadir | --datadi | --datad | --data | --dat | --da) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ + | --da=*) + datadir="$ac_optarg" ;; + + -disable-* | --disable-*) + ac_feature=`echo $ac_option|sed -e 's/-*disable-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + eval "enable_${ac_feature}=no" ;; + + -enable-* | --enable-*) + ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; } + fi + ac_feature=`echo $ac_feature| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "enable_${ac_feature}='$ac_optarg'" ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix="$ac_optarg" ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he) + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat << EOF +Usage: configure [options] [host] +Options: [defaults in brackets after descriptions] +Configuration: + --cache-file=FILE cache test results in FILE + --help print this message + --no-create do not create output files + --quiet, --silent do not print \`checking...' messages + --version print the version of autoconf that created configure +Directory and file names: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [same as prefix] + --bindir=DIR user executables in DIR [EPREFIX/bin] + --sbindir=DIR system admin executables in DIR [EPREFIX/sbin] + --libexecdir=DIR program executables in DIR [EPREFIX/libexec] + --datadir=DIR read-only architecture-independent data in DIR + [PREFIX/share] + --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data in DIR + [PREFIX/com] + --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var] + --libdir=DIR object code libraries in DIR [EPREFIX/lib] + --includedir=DIR C header files in DIR [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include] + --infodir=DIR info documentation in DIR [PREFIX/info] + --mandir=DIR man documentation in DIR [PREFIX/man] + --srcdir=DIR find the sources in DIR [configure dir or ..] + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM + run sed PROGRAM on installed program names +EOF + cat << EOF +Host type: + --build=BUILD configure for building on BUILD [BUILD=HOST] + --host=HOST configure for HOST [guessed] + --target=TARGET configure for TARGET [TARGET=HOST] +Features and packages: + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR +EOF + if test -n "$ac_help"; then + echo "--enable and --with options recognized:$ac_help" + fi + exit 0 ;; + + -host | --host | --hos | --ho) + ac_prev=host ;; + -host=* | --host=* | --hos=* | --ho=*) + host="$ac_optarg" ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir="$ac_optarg" ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir="$ac_optarg" ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir="$ac_optarg" ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir="$ac_optarg" ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst \ + | --locals | --local | --loca | --loc | --lo) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* \ + | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) + localstatedir="$ac_optarg" ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir="$ac_optarg" ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir="$ac_optarg" ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix="$ac_optarg" ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix="$ac_optarg" ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix="$ac_optarg" ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name="$ac_optarg" ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir="$ac_optarg" ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir="$ac_optarg" ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site="$ac_optarg" ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir="$ac_optarg" ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir="$ac_optarg" ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target="$ac_optarg" ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers) + echo "configure generated by autoconf version 2.13" + exit 0 ;; + + -with-* | --with-*) + ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + case "$ac_option" in + *=*) ;; + *) ac_optarg=yes ;; + esac + eval "with_${ac_package}='$ac_optarg'" ;; + + -without-* | --without-*) + ac_package=`echo $ac_option|sed -e 's/-*without-//'` + # Reject names that are not valid shell variable names. + if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then + { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; } + fi + ac_package=`echo $ac_package| sed 's/-/_/g'` + eval "with_${ac_package}=no" ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes="$ac_optarg" ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries="$ac_optarg" ;; + + -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; } + ;; + + *) + if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then + echo "configure: warning: $ac_option: invalid host type" 1>&2 + fi + if test "x$nonopt" != xNONE; then + { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; } + fi + nonopt="$ac_option" + ;; + + esac +done + +if test -n "$ac_prev"; then + { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; } +fi + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +# File descriptor usage: +# 0 standard input +# 1 file creation +# 2 errors and warnings +# 3 some systems may open it to /dev/tty +# 4 used on the Kubota Titan +# 6 checking for... messages and results +# 5 compiler messages saved in config.log +if test "$silent" = yes; then + exec 6>/dev/null +else + exec 6>&1 +fi +exec 5>./config.log + +echo "\ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. +" 1>&5 + +# Strip out --no-create and --no-recursion so they do not pile up. +# Also quote any args containing shell metacharacters. +ac_configure_args= +for ac_arg +do + case "$ac_arg" in + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c) ;; + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;; + *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*) + ac_configure_args="$ac_configure_args '$ac_arg'" ;; + *) ac_configure_args="$ac_configure_args $ac_arg" ;; + esac +done + +# NLS nuisances. +# Only set these to C if already set. These must not be set unconditionally +# because not all systems understand e.g. LANG=C (notably SCO). +# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'! +# Non-C LC_CTYPE values break the ctype check. +if test "${LANG+set}" = set; then LANG=C; export LANG; fi +if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi +if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi +if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -rf conftest* confdefs.h +# AIX cpp loses on an empty file, so make sure it contains at least a newline. +echo > confdefs.h + +# A filename unique to this package, relative to the directory that +# configure is in, which we can look for to find out if srcdir is correct. +ac_unique_file=xboard.c + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then its parent. + ac_prog=$0 + ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'` + test "x$ac_confdir" = "x$ac_prog" && ac_confdir=. + srcdir=$ac_confdir + if test ! -r $srcdir/$ac_unique_file; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r $srcdir/$ac_unique_file; then + if test "$ac_srcdir_defaulted" = yes; then + { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; } + else + { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; } + fi +fi +srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'` + +# Prefer explicitly selected file to automatically selected ones. +if test -z "$CONFIG_SITE"; then + if test "x$prefix" != xNONE; then + CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" + else + CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" + fi +fi +for ac_site_file in $CONFIG_SITE; do + if test -r "$ac_site_file"; then + echo "loading site script $ac_site_file" + . "$ac_site_file" + fi +done + +if test -r "$cache_file"; then + echo "loading cache $cache_file" + . $cache_file +else + echo "creating cache $cache_file" + > $cache_file +fi + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +ac_exeext= +ac_objext=o +if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then + # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu. + if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then + ac_n= ac_c=' +' ac_t=' ' + else + ac_n=-n ac_c= ac_t= + fi +else + ac_n= ac_c='\c' ac_t= +fi + + + + +PRODUCT=xboard +VERSION=4.2 +PATCHLEVEL=6 + +if test -z "$CFLAGS" ; then + CFLAGS=" " +fi +# Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:552: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="gcc" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:582: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_prog_rejected=no + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + break + fi + done + IFS="$ac_save_ifs" +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# -gt 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + set dummy "$ac_dir/$ac_word" "$@" + shift + ac_cv_prog_CC="$@" + fi +fi +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + if test -z "$CC"; then + case "`uname -s`" in + *win32* | *WIN32*) + # Extract the first word of "cl", so it can be a program name with args. +set dummy cl; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:633: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_CC="cl" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +CC="$ac_cv_prog_CC" +if test -n "$CC"; then + echo "$ac_t""$CC" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + ;; + esac + fi + test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; } +fi + +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 +echo "configure:665: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 + +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +cat > conftest.$ac_ext << EOF + +#line 676 "configure" +#include "confdefs.h" + +main(){return(0);} +EOF +if { (eval echo configure:681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + ac_cv_prog_cc_works=yes + # If we can't run a trivial program, we are probably using a cross compiler. + if (./conftest; exit) 2>/dev/null; then + ac_cv_prog_cc_cross=no + else + ac_cv_prog_cc_cross=yes + fi +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + ac_cv_prog_cc_works=no +fi +rm -fr conftest* +ac_ext=c +# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. +ac_cpp='$CPP $CPPFLAGS' +ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5' +ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5' +cross_compiling=$ac_cv_prog_cc_cross + +echo "$ac_t""$ac_cv_prog_cc_works" 1>&6 +if test $ac_cv_prog_cc_works = no; then + { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } +fi +echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 +echo "configure:707: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 +cross_compiling=$ac_cv_prog_cc_cross + +echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 +echo "configure:712: checking whether we are using GNU C" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then + ac_cv_prog_gcc=yes +else + ac_cv_prog_gcc=no +fi +fi + +echo "$ac_t""$ac_cv_prog_gcc" 1>&6 + +if test $ac_cv_prog_gcc = yes; then + GCC=yes +else + GCC= +fi + +ac_test_CFLAGS="${CFLAGS+set}" +ac_save_CFLAGS="$CFLAGS" +CFLAGS= +echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 +echo "configure:740: checking whether ${CC-cc} accepts -g" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + echo 'void f(){}' > conftest.c +if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then + ac_cv_prog_cc_g=yes +else + ac_cv_prog_cc_g=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$ac_cv_prog_cc_g" 1>&6 +if test "$ac_test_CFLAGS" = set; then + CFLAGS="$ac_save_CFLAGS" +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi + +echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 +echo "configure:772: checking how to run the C preprocessor" >&5 +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then +if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # This must be in double quotes, not single quotes, because CPP may get + # substituted into the Makefile and "${CC-cc}" will confuse make. + CPP="${CC-cc} -E" + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:793: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -E -traditional-cpp" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP="${CC-cc} -nologo -E" + cat > conftest.$ac_ext < +Syntax Error +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:827: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + : +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + CPP=/lib/cpp +fi +rm -f conftest* +fi +rm -f conftest* +fi +rm -f conftest* + ac_cv_prog_CPP="$CPP" +fi + CPP="$ac_cv_prog_CPP" +else + ac_cv_prog_CPP="$CPP" +fi +echo "$ac_t""$CPP" 1>&6 + +echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6 +echo "configure:852: checking for POSIXized ISC" >&5 +if test -d /etc/conf/kconfig.d && + grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 +then + echo "$ac_t""yes" 1>&6 + ISC=yes # If later tests want to check for ISC. + cat >> confdefs.h <<\EOF +#define _POSIX_SOURCE 1 +EOF + + if test "$GCC" = yes; then + CC="$CC -posix" + else + CC="$CC -Xp" + fi +else + echo "$ac_t""no" 1>&6 + ISC= +fi + +ac_aux_dir= +for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do + if test -f $ac_dir/install-sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f $ac_dir/install.sh; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + fi +done +if test -z "$ac_aux_dir"; then + { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; } +fi +ac_config_guess=$ac_aux_dir/config.guess +ac_config_sub=$ac_aux_dir/config.sub +ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# ./install, which can be erroneously created by make from ./install.sh. +echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 +echo "configure:903: checking for a BSD compatible install" >&5 +if test -z "$INSTALL"; then +if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":" + for ac_dir in $PATH; do + # Account for people who put trailing slashes in PATH elements. + case "$ac_dir/" in + /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + if test -f $ac_dir/$ac_prog; then + if test $ac_prog = install && + grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + else + ac_cv_path_install="$ac_dir/$ac_prog -c" + break 2 + fi + fi + done + ;; + esac + done + IFS="$ac_save_IFS" + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL="$ac_cv_path_install" + else + # As a last resort, use the slow shell script. We don't cache a + # path for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the path is relative. + INSTALL="$ac_install_sh" + fi +fi +echo "$ac_t""$INSTALL" 1>&6 + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +for ac_prog in lex flex +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:960: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LEX="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +LEX="$ac_cv_prog_LEX" +if test -n "$LEX"; then + echo "$ac_t""$LEX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$LEX" && break +done +test -n "$LEX" || LEX="lex_not_found" + +if test "$LEX" != lex_not_found ; then + # Extract the first word of "flex", so it can be a program name with args. +set dummy flex; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:994: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$LEX"; then + ac_cv_prog_LEX="$LEX" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_LEX="flex" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_LEX" && ac_cv_prog_LEX="lex" +fi +fi +LEX="$ac_cv_prog_LEX" +if test -n "$LEX"; then + echo "$ac_t""$LEX" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +if test -z "$LEXLIB" +then + case "$LEX" in + flex*) ac_lib=fl ;; + *) ac_lib=l ;; + esac + echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6 +echo "configure:1028: checking for yywrap in -l$ac_lib" >&5 +ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-l$ac_lib $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LEXLIB="-l$ac_lib" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +echo $ac_n "checking lex output file root""... $ac_c" 1>&6 +echo "configure:1070: checking lex output file root" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # The minimal lex program is just a single line: %%. But some broken lexes +# (Solaris, I think it was) want two %% lines, so accommodate them. +echo '%% +%%' | $LEX +if test -f lex.yy.c; then + ac_cv_prog_lex_root=lex.yy +elif test -f lexyy.c; then + ac_cv_prog_lex_root=lexyy +else + { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; } +fi +fi + +echo "$ac_t""$ac_cv_prog_lex_root" 1>&6 +LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root + +echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6 +echo "configure:1091: checking whether yytext is a pointer" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # POSIX says lex can declare yytext either as a pointer or an array; the +# default is implementation-dependent. Figure out which it is, since +# not all implementations provide the %pointer and %array declarations. +ac_cv_prog_lex_yytext_pointer=no +echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c +ac_save_LIBS="$LIBS" +LIBS="$LIBS $LEXLIB" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_cv_prog_lex_yytext_pointer=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 +fi +rm -f conftest* +LIBS="$ac_save_LIBS" +rm -f "${LEX_OUTPUT_ROOT}.c" + +fi + +echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6 +if test $ac_cv_prog_lex_yytext_pointer = yes; then + cat >> confdefs.h <<\EOF +#define YYTEXT_POINTER 1 +EOF + +fi + +fi +for ac_prog in remsh rsh +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1137: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_RSH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$RSH"; then + ac_cv_prog_RSH="$RSH" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_RSH="$ac_prog" + break + fi + done + IFS="$ac_save_ifs" +fi +fi +RSH="$ac_cv_prog_RSH" +if test -n "$RSH"; then + echo "$ac_t""$RSH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$RSH" && break +done +test -n "$RSH" || RSH="rsh" + +cat >> confdefs.h <&6 +echo "configure:1174: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_prog_NROFF'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + if test -n "$NROFF"; then + ac_cv_prog_NROFF="$NROFF" # Let the user override the test. +else + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_prog_NROFF="nroff -man" + break + fi + done + IFS="$ac_save_ifs" + test -z "$ac_cv_prog_NROFF" && ac_cv_prog_NROFF="cat" +fi +fi +NROFF="$ac_cv_prog_NROFF" +if test -n "$NROFF"; then + echo "$ac_t""$NROFF" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + + +for ac_prog in awk mawk gawk nawk +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1207: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_AWKPATH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$AWKPATH" in + /*) + ac_cv_path_AWKPATH="$AWKPATH" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_AWKPATH="$AWKPATH" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_AWKPATH="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +AWKPATH="$ac_cv_path_AWKPATH" +if test -n "$AWKPATH"; then + echo "$ac_t""$AWKPATH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$AWKPATH" && break +done + +for ac_prog in perl +do +# Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 +echo "configure:1247: checking for $ac_word" >&5 +if eval "test \"`echo '$''{'ac_cv_path_PERLPATH'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + case "$PERLPATH" in + /*) + ac_cv_path_PERLPATH="$PERLPATH" # Let the user override the test with a path. + ;; + ?:/*) + ac_cv_path_PERLPATH="$PERLPATH" # Let the user override the test with a dos path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" + ac_dummy="$PATH" + for ac_dir in $ac_dummy; do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + ac_cv_path_PERLPATH="$ac_dir/$ac_word" + break + fi + done + IFS="$ac_save_ifs" + ;; +esac +fi +PERLPATH="$ac_cv_path_PERLPATH" +if test -n "$PERLPATH"; then + echo "$ac_t""$PERLPATH" 1>&6 +else + echo "$ac_t""no" 1>&6 +fi + +test -n "$PERLPATH" && break +done + + +# Check whether --with-Xaw3d or --without-Xaw3d was given. +if test "${with_Xaw3d+set}" = set; then + withval="$with_Xaw3d" + cat >> confdefs.h <<\EOF +#define USE_XAW3D 1 +EOF + + XAW_LIBS="-lXaw3d" +else + XAW_LIBS="-lXaw" +fi + + + +echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 +echo "configure:1298: checking for ANSI C header files" >&5 +if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +#include +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + ac_cv_header_stdc=yes +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "memchr" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "free" >/dev/null 2>&1; then + : +else + rm -rf conftest* + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. +if test "$cross_compiling" = yes; then + : +else + cat > conftest.$ac_ext < +#define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int main () { int i; for (i = 0; i < 256; i++) +if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); +exit (0); } + +EOF +if { (eval echo configure:1378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +then + : +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -fr conftest* + ac_cv_header_stdc=no +fi +rm -fr conftest* +fi + +fi +fi + +echo "$ac_t""$ac_cv_header_stdc" 1>&6 +if test $ac_cv_header_stdc = yes; then + cat >> confdefs.h <<\EOF +#define STDC_HEADERS 1 +EOF + +fi + +echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 +echo "configure:1402: checking whether time.h and sys/time.h may both be included" >&5 +if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#include +int main() { +struct tm *tp; +; return 0; } +EOF +if { (eval echo configure:1416: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_time=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_time=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_time" 1>&6 +if test $ac_cv_header_time = yes; then + cat >> confdefs.h <<\EOF +#define TIME_WITH_SYS_TIME 1 +EOF + +fi + +echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 +echo "configure:1437: checking for sys/wait.h that is POSIX.1 compatible" >&5 +if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifndef WEXITSTATUS +#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8) +#endif +#ifndef WIFEXITED +#define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif +int main() { +int s; +wait (&s); +s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; +; return 0; } +EOF +if { (eval echo configure:1458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_header_sys_wait_h=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_header_sys_wait_h=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6 +if test $ac_cv_header_sys_wait_h = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_SYS_WAIT_H 1 +EOF + +fi + +ac_header_dirent=no +for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 +echo "configure:1483: checking for $ac_hdr that defines DIR" >&5 +if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include <$ac_hdr> +int main() { +DIR *dirp = 0; +; return 0; } +EOF +if { (eval echo configure:1496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_dirent_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done +# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. +if test $ac_header_dirent = dirent.h; then +echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 +echo "configure:1521: checking for opendir in -ldir" >&5 +ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldir $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -ldir" +else + echo "$ac_t""no" 1>&6 +fi + +else +echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 +echo "configure:1562: checking for opendir in -lx" >&5 +ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lx $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + LIBS="$LIBS -lx" +else + echo "$ac_t""no" 1>&6 +fi + +fi + +echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 +echo "configure:1604: checking return type of signal handlers" >&5 +if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +#include +#ifdef signal +#undef signal +#endif +#ifdef __cplusplus +extern "C" void (*signal (int, void (*)(int)))(int); +#else +void (*signal ()) (); +#endif + +int main() { +int i; +; return 0; } +EOF +if { (eval echo configure:1626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ac_cv_type_signal=void +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_cv_type_signal=int +fi +rm -f conftest* +fi + +echo "$ac_t""$ac_cv_type_signal" 1>&6 +cat >> confdefs.h <&6 +echo "configure:1648: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_hdr in fcntl.h sys/fcntl.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1688: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +for ac_hdr in sys/socket.h lan/socket.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:1728: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1738: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + +ac_safe=`echo "stddef.h" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for stddef.h""... $ac_c" 1>&6 +echo "configure:1766: checking for stddef.h" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:1776: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +cat >> confdefs.h <<\EOF +#define X_WCHAR 1 +EOF + +fi + + +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "sys_errlist" >/dev/null 2>&1; then + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define DEFINED_SYS_ERRLIST 1 +EOF + +fi +rm -f conftest* + +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "sys_errlist" >/dev/null 2>&1; then + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define DEFINED_SYS_ERRLIST 1 +EOF + +fi +rm -f conftest* + +cat > conftest.$ac_ext < +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "sys_errlist" >/dev/null 2>&1; then + rm -rf conftest* + cat >> confdefs.h <<\EOF +#define DEFINED_SYS_ERRLIST 1 +EOF + +fi +rm -f conftest* + + +for ac_func in _getpty grantpt setitimer usleep +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1851: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in gettimeofday ftime +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1906: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in random rand48 +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:1961: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:1989: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +for ac_func in gethostname sysinfo +do +echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 +echo "configure:2016: checking for $ac_func" >&5 +if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char $ac_func(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_$ac_func) || defined (__stub___$ac_func) +choke me +#else +$ac_func(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_$ac_func=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_$ac_func=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` + cat >> confdefs.h <&6 +fi +done + +echo $ac_n "checking for setlocale""... $ac_c" 1>&6 +echo "configure:2069: checking for setlocale" >&5 +if eval "test \"`echo '$''{'ac_cv_func_setlocale'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char setlocale(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_setlocale) || defined (__stub___setlocale) +choke me +#else +setlocale(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_setlocale=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_setlocale=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'setlocale`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +echo $ac_n "checking for setlocale in -li""... $ac_c" 1>&6 +echo "configure:2115: checking for setlocale in -li" >&5 +ac_lib_var=`echo i'_'setlocale | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-li $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo i | sed -e 's/^a-zA-Z0-9_/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +cat >> confdefs.h <<\EOF +#define X_LOCALE 1 +EOF + +fi + +fi + + +echo $ac_n "checking for getpseudotty in -lseq""... $ac_c" 1>&6 +echo "configure:2169: checking for getpseudotty in -lseq" >&5 +ac_lib_var=`echo seq'_'getpseudotty | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lseq $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_lib=HAVE_LIB`echo seq | sed -e 's/[^a-zA-Z0-9_]/_/g' \ + -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'` + cat >> confdefs.h <&6 +fi + + +# If we find X, set shell vars x_includes and x_libraries to the +# paths, otherwise set no_x=yes. +# Uses ac_ vars as temps to allow command line to override cache and checks. +# --without-x overrides everything else, but does not touch the cache. +echo $ac_n "checking for X""... $ac_c" 1>&6 +echo "configure:2221: checking for X" >&5 + +# Check whether --with-x or --without-x was given. +if test "${with_x+set}" = set; then + withval="$with_x" + : +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then + # Both variables are already set. + have_x=yes + else +if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=NO ac_x_libraries=NO +rm -fr conftestdir +if mkdir conftestdir; then + cd conftestdir + # Make sure to not put "make" in the Imakefile rules, since we grep it out. + cat > Imakefile <<'EOF' +acfindx: + @echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"' +EOF + if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering...", which would confuse us. + eval `${MAKE-make} acfindx 2>/dev/null | grep -v make` + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl; do + if test ! -f $ac_im_usrlibdir/libX11.$ac_extension && + test -f $ac_im_libdir/libX11.$ac_extension; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case "$ac_im_incroot" in + /usr/include) ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;; + esac + case "$ac_im_usrlibdir" in + /usr/lib | /lib) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;; + esac + fi + cd .. + rm -fr conftestdir +fi + +if test "$ac_x_includes" = NO; then + # Guess where to find include files, by looking for this one X11 .h file. + test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h + + # First, try using that file with no special directory specified. +cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:2288: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + # We can compile using X headers with no special include directory. +ac_x_includes= +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + # Look for the header file in a standard set of common directories. +# Check X11 before X11Rn because it is often a symlink to the current release. + for ac_dir in \ + /usr/X11/include \ + /usr/X11R6/include \ + /usr/X11R5/include \ + /usr/X11R4/include \ + \ + /usr/include/X11 \ + /usr/include/X11R6 \ + /usr/include/X11R5 \ + /usr/include/X11R4 \ + \ + /usr/local/X11/include \ + /usr/local/X11R6/include \ + /usr/local/X11R5/include \ + /usr/local/X11R4/include \ + \ + /usr/local/include/X11 \ + /usr/local/include/X11R6 \ + /usr/local/include/X11R5 \ + /usr/local/include/X11R4 \ + \ + /usr/X386/include \ + /usr/x386/include \ + /usr/XFree86/include/X11 \ + \ + /usr/include \ + /usr/local/include \ + /usr/unsupported/include \ + /usr/athena/include \ + /usr/local/x11r5/include \ + /usr/lpp/Xamples/include \ + \ + /usr/openwin/include \ + /usr/openwin/share/include \ + ; \ + do + if test -r "$ac_dir/$x_direct_test_include"; then + ac_x_includes=$ac_dir + break + fi + done +fi +rm -f conftest* +fi # $ac_x_includes = NO + +if test "$ac_x_libraries" = NO; then + # Check for the libraries. + + test -z "$x_direct_test_library" && x_direct_test_library=Xt + test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc + + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS="$LIBS" + LIBS="-l$x_direct_test_library $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + LIBS="$ac_save_LIBS" +# We can link X programs with no special library path. +ac_x_libraries= +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + LIBS="$ac_save_LIBS" +# First see if replacing the include by lib works. +# Check X11 before X11Rn because it is often a symlink to the current release. +for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \ + /usr/X11/lib \ + /usr/X11R6/lib \ + /usr/X11R5/lib \ + /usr/X11R4/lib \ + \ + /usr/lib/X11 \ + /usr/lib/X11R6 \ + /usr/lib/X11R5 \ + /usr/lib/X11R4 \ + \ + /usr/local/X11/lib \ + /usr/local/X11R6/lib \ + /usr/local/X11R5/lib \ + /usr/local/X11R4/lib \ + \ + /usr/local/lib/X11 \ + /usr/local/lib/X11R6 \ + /usr/local/lib/X11R5 \ + /usr/local/lib/X11R4 \ + \ + /usr/X386/lib \ + /usr/x386/lib \ + /usr/XFree86/lib/X11 \ + \ + /usr/lib \ + /usr/local/lib \ + /usr/unsupported/lib \ + /usr/athena/lib \ + /usr/local/x11r5/lib \ + /usr/lpp/Xamples/lib \ + /lib/usr/lib/X11 \ + \ + /usr/openwin/lib \ + /usr/openwin/share/lib \ + ; \ +do + for ac_extension in a so sl; do + if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f conftest* +fi # $ac_x_libraries = NO + +if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then + # Didn't find X anywhere. Cache the known absence of X. + ac_cv_have_x="have_x=no" +else + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries" +fi +fi + fi + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + echo "$ac_t""$have_x" 1>&6 + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes \ + ac_x_includes=$x_includes ac_x_libraries=$x_libraries" + echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6 +fi + +if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + cat >> confdefs.h <<\EOF +#define X_DISPLAY_MISSING 1 +EOF + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + case "`(uname -sr) 2>/dev/null`" in + "SunOS 5"*) + echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6 +echo "configure:2470: checking whether -R must be followed by a space" >&5 + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_nospace=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_nospace=no +fi +rm -f conftest* + if test $ac_R_nospace = yes; then + echo "$ac_t""no" 1>&6 + X_LIBS="$X_LIBS -R$x_libraries" + else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + ac_R_space=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ac_R_space=no +fi +rm -f conftest* + if test $ac_R_space = yes; then + echo "$ac_t""yes" 1>&6 + X_LIBS="$X_LIBS -R $x_libraries" + else + echo "$ac_t""neither works" 1>&6 + fi + fi + LIBS="$ac_xsave_LIBS" + esac + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And karl@cs.umb.edu says + # the Alpha needs dnet_stub (dnet does not exist). + echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 +echo "configure:2535: checking for dnet_ntoa in -ldnet" >&5 +ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6 +echo "configure:2576: checking for dnet_ntoa in -ldnet_stub" >&5 +ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-ldnet_stub $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to dickey@clark.net. + echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6 +echo "configure:2624: checking for gethostbyname" >&5 +if eval "test \"`echo '$''{'ac_cv_func_gethostbyname'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char gethostbyname(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname) +choke me +#else +gethostbyname(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_gethostbyname=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_gethostbyname=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_gethostbyname = no; then + echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6 +echo "configure:2673: checking for gethostbyname in -lnsl" >&5 +ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lnsl $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says simon@lia.di.epfl.ch: it contains + # gethostby* variants that don't use the nameserver (or something). + # -lsocket must be given before -lnsl if both are needed. + # We assume that if connect needs -lnsl, so does gethostbyname. + echo $ac_n "checking for connect""... $ac_c" 1>&6 +echo "configure:2722: checking for connect" >&5 +if eval "test \"`echo '$''{'ac_cv_func_connect'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char connect(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_connect) || defined (__stub___connect) +choke me +#else +connect(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_connect=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_connect=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_connect = no; then + echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6 +echo "configure:2771: checking for connect in -lsocket" >&5 +ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX. + echo $ac_n "checking for remove""... $ac_c" 1>&6 +echo "configure:2814: checking for remove" >&5 +if eval "test \"`echo '$''{'ac_cv_func_remove'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char remove(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_remove) || defined (__stub___remove) +choke me +#else +remove(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2842: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_remove=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_remove=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_remove = no; then + echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6 +echo "configure:2863: checking for remove in -lposix" >&5 +ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lposix $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +else + echo "$ac_t""no" 1>&6 +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + echo $ac_n "checking for shmat""... $ac_c" 1>&6 +echo "configure:2906: checking for shmat" >&5 +if eval "test \"`echo '$''{'ac_cv_func_shmat'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char shmat(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_shmat) || defined (__stub___shmat) +choke me +#else +shmat(); +#endif + +; return 0; } +EOF +if { (eval echo configure:2934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_shmat=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_shmat=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then + echo "$ac_t""yes" 1>&6 + : +else + echo "$ac_t""no" 1>&6 +fi + + if test $ac_cv_func_shmat = no; then + echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6 +echo "configure:2955: checking for shmat in -lipc" >&5 +ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lipc $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +else + echo "$ac_t""no" 1>&6 +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS="$LDFLAGS" + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # --interran@uluru.Stanford.EDU, kb@cs.umb.edu. + echo $ac_n "checking for IceConnectionNumber in -lICE""... $ac_c" 1>&6 +echo "configure:3007: checking for IceConnectionNumber in -lICE" >&5 +ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$ac_save_LDFLAGS" + +fi + +if test -n "$no_x" ; then + echo $PRODUCT requires the X Window System header files and libraries! + echo They were not found on your system. See FAQ topic C.2. + echo configure failed + exit 1 +fi + + +# Make sure we can run config.sub. +if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then : +else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } +fi + +echo $ac_n "checking host system type""... $ac_c" 1>&6 +echo "configure:3064: checking host system type" >&5 + +host_alias=$host +case "$host_alias" in +NONE) + case $nonopt in + NONE) + if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then : + else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; } + fi ;; + *) host_alias=$nonopt ;; + esac ;; +esac + +host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias` +host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` +echo "$ac_t""$host" 1>&6 + + + + +USE_PTYS=0 +case "$host" in + *-*-hpux* ) + cat >> confdefs.h <<\EOF +#define PTY_TTY_NAME_SPRINTF sprintf (pty_name, "/dev/pty/tty%c%x", c, i); +EOF + + cat >> confdefs.h <<\EOF +#define PTY_NAME_SPRINTF sprintf (pty_name, "/dev/ptym/pty%c%x", c, i); +EOF + + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + else + + + CONF_CFLAGS="-Aa -D_HPUX_SOURCE" + fi + + + if test -d /opt/hppd/include/X11; then + X_CFLAGS="$X_CFLAGS -I/opt/hppd/include" + X_LIBS="$X_LIBS -L/opt/hppd/lib" + elif test -d /usr/contrib/X11R5/include; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include" + X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib" + elif test -d /usr/contrib/mitX11R5/include; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include" + X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib" + elif test -d /MIT/X11R5/include; then + X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include" + X_LIBS="$X_LIBS -L/MIT/X11R5/lib" + elif test -d /usr/local/include/X11R5; then + X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5" + X_LIBS="$X_LIBS -L/usr/local/lib/X11R5" + fi + if test -d /usr/include/X11R5; then + X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5" + X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4" + elif test -d /usr/include/X11R4; then + X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4" + X_LIBS="$X_LIBS -L/usr/lib/X11R4" + fi + ;; + + romp-ibm-aix* ) + cat >> confdefs.h <<\EOF +#define IBMRTAIX 1 +EOF + + ;; + + i386-ibm-aix ) + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + fi + ;; + + *-*-aix3* | *-*-bosx* ) + cat >> confdefs.h <<\EOF +#define PTY_ITERATION for (c = 0; !c; c++) +EOF + + cat >> confdefs.h <<\EOF +#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc"); +EOF + + cat >> confdefs.h <<\EOF +#define PTY_TTY_NAME_SPRINTF strcpy (pty_name, ttyname (fd)); +EOF + + ;; + + *-*-cxux* ) + cat >> confdefs.h <<\EOF +#define FIRST_PTY_LETTER 'A' +EOF + + cat >> confdefs.h <<\EOF +#define LAST_PTY_LETTER 'P' +EOF + + ;; + + *-*-uniplus* ) + cat >> confdefs.h <<\EOF +#define UNIPLUS 1 +EOF + + ;; + + *-*-rtu* ) + cat >> confdefs.h <<\EOF +#define FIRST_PTY_LETTER 'z' +EOF + + cat >> confdefs.h <<\EOF +#define PTY_TTY_NAME_SPRINTF sprintf (pty_name, "/dev/ttyp%x", i); +EOF + + cat >> confdefs.h <<\EOF +#define PTY_NAME_SPRINTF sprintf (pty_name, "/dev/pty%x", i); +EOF + + cat >> confdefs.h <<\EOF +#define RTU 1 +EOF + + ;; + + *-*-iris* | *-*-irix3* ) + cat >> confdefs.h <<\EOF +#define PTY_ITERATION for (c = 0; !c; c++) +EOF + + cat >> confdefs.h <<\EOF +#define PTY_NAME_SPRINTF strcpy (pty_name, "/dev/ptc"); +EOF + + cat >> confdefs.h <<\EOF +#define PTY_TTY_NAME_SPRINTF sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev)); +EOF + + ;; + + *-*-irix* ) + ;; + + *-*-sunos4* | *-*-solaris1* ) + + + if test "$GCC" = yes; then + PRE_XMULIB="-static" + POST_XMULIB="-dynamic" + else + PRE_XMULIB="-Bstatic" + POST_XMULIB="-Bdynamic" + fi + ;; + + *-*-sunos5* | *-*-solaris2* ) + + + X_LIBS="$X_LIBS -lelf" + ;; + + *-*-sco* ) + cat >> confdefs.h <<\EOF +#define PTY_ITERATION for (i = 0; ; i++) +EOF + + cat >> confdefs.h <<\EOF +#define PTY_NAME_SPRINTF sprintf (pty_name, "/dev/ptyp%d", i); +EOF + + cat >> confdefs.h <<\EOF +#define PTY_TTY_NAME_SPRINTF sprintf (pty_name, "/dev/ttyp%d", i); +EOF + + ;; + + *-*-dynix* | *-*-ptx* ) + ;; + + *-*-esix* ) + ;; + + *-*-usg5-4* | *-*-sysvr4* ) + ;; + + *-*-usg* | *-*-sysv* | *-*-aix* ) + ;; + + vax-*-ultrix ) + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + fi + ;; +esac + +# Check whether --enable-xpm or --disable-xpm was given. +if test "${enable_xpm+set}" = set; then + enableval="$enable_xpm" + enable_xpm="$enableval" +else + enable_xpm="yes" +fi + + +if test "$enable_xpm" = "yes"; then + save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_CFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + for ac_hdr in X11/xpm.h +do +ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` +echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 +echo "configure:3284: checking for $ac_hdr" >&5 +if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +EOF +ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" +{ (eval echo configure:3294: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` +if test -z "$ac_err"; then + rm -rf conftest* + eval "ac_cv_header_$ac_safe=yes" +else + echo "$ac_err" >&5 + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_header_$ac_safe=no" +fi +rm -f conftest* +fi +if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then + echo "$ac_t""yes" 1>&6 + ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'` + cat >> confdefs.h <&6 +fi +done + + CFLAGS="$save_cflags" + if test "$ac_cv_header_X11_xpm_h" = "yes"; then + save_ldflags="$LDFLAGS" + LDFLAGS="$LDFLAGS $X_LIBS" + echo $ac_n "checking for XpmReadFileToPixmap in -lXpm""... $ac_c" 1>&6 +echo "configure:3325: checking for XpmReadFileToPixmap in -lXpm" >&5 +ac_lib_var=`echo Xpm'_'XpmReadFileToPixmap | sed 'y%./+-%__p_%'` +if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + ac_save_LIBS="$LIBS" +LIBS="-lXpm $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $LIBS" +cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_lib_$ac_lib_var=no" +fi +rm -f conftest* +LIBS="$ac_save_LIBS" + +fi +if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then + echo "$ac_t""yes" 1>&6 + X_PRE_LIBS="-lXpm $X_PRE_LIBS"; cat >> confdefs.h <<\EOF +#define HAVE_LIBXPM 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + + LDFLAGS="$save_ldflags" + fi +fi + + + + + + +echo $ac_n "checking whether ptys or pipes should be used""... $ac_c" 1>&6 +echo "configure:3377: checking whether ptys or pipes should be used" >&5 +# Check whether --enable-ptys or --disable-ptys was given. +if test "${enable_ptys+set}" = set; then + enableval="$enable_ptys" + if test "$enableval" = yes; then + USE_PTYS=1 + echo "$ac_t""ptys (user override)" 1>&6 +fi +if test "$enableval" = no; then + USE_PTYS=0 + echo "$ac_t""pipes (user override)" 1>&6 +fi +else + if test "$USE_PTYS" = 1; then + echo "$ac_t""ptys" 1>&6 +else + echo "$ac_t""pipes" 1>&6 +fi +fi + +cat >> confdefs.h <> confdefs.h <<\EOF +#define ZIPPY 1 +EOF + + ZIPPY_O=zippy.o + ZIPPY_H=zippy.h +fi +fi + + + + +# Check whether --enable-sigint or --disable-sigint was given. +if test "${enable_sigint+set}" = set; then + enableval="$enable_sigint" + if test "$enableval" = yes; then + cat >> confdefs.h <<\EOF +#define ATTENTION 1 +EOF + +fi +else + cat >> confdefs.h <<\EOF +#define ATTENTION 1 +EOF + +fi + + +cat >> confdefs.h <> confdefs.h <> confdefs.h < confcache <<\EOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs. It is not useful on other systems. +# If it contains results you don't want to keep, you may remove or edit it. +# +# By default, configure uses ./config.cache as the cache file, +# creating it if it does not exist already. You can give configure +# the --cache-file=FILE option to use a different cache file; that is +# what configure does when it calls configure scripts in +# subdirectories, so they share the cache. +# Giving --cache-file=/dev/null disables caching, for debugging configure. +# config.status only pays attention to the cache file if you give it the +# --recheck option to rerun configure. +# +EOF +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, don't put newlines in cache variables' values. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +(set) 2>&1 | + case `(ac_space=' '; set | grep ac_space) 2>&1` in + *ac_space=\ *) + # `set' does not quote correctly, so add quotes (double-quote substitution + # turns \\\\ into \\, and sed turns \\ into \). + sed -n \ + -e "s/'/'\\\\''/g" \ + -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p" + ;; + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p' + ;; + esac >> confcache +if cmp -s $cache_file confcache; then + : +else + if test -w $cache_file; then + echo "updating cache $cache_file" + cat confcache > $cache_file + else + echo "not updating unwritable cache $cache_file" + fi +fi +rm -f confcache + +trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15 + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +# Any assignment to VPATH causes Sun make to only execute +# the first set of double-colon rules, so remove it if not needed. +# If there is a colon in the path, we need to keep it. +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d' +fi + +trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15 + +DEFS=-DHAVE_CONFIG_H + +# Without the "./", some shells look in PATH for config.status. +: ${CONFIG_STATUS=./config.status} + +echo creating $CONFIG_STATUS +rm -f $CONFIG_STATUS +cat > $CONFIG_STATUS </dev/null | sed 1q`: +# +# $0 $ac_configure_args +# +# Compiler output produced by configure, useful for debugging +# configure, is in ./config.log if it exists. + +ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]" +for ac_option +do + case "\$ac_option" in + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion" + exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;; + -version | --version | --versio | --versi | --vers | --ver | --ve | --v) + echo "$CONFIG_STATUS generated by autoconf version 2.13" + exit 0 ;; + -help | --help | --hel | --he | --h) + echo "\$ac_cs_usage"; exit 0 ;; + *) echo "\$ac_cs_usage"; exit 1 ;; + esac +done + +ac_given_srcdir=$srcdir +ac_given_INSTALL="$INSTALL" + +trap 'rm -fr `echo "Makefile comment.awk:comment.in cmail xboard.texinfo config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +EOF +cat >> $CONFIG_STATUS < conftest.subs <<\\CEOF +$ac_vpsub +$extrasub +s%@SHELL@%$SHELL%g +s%@CFLAGS@%$CFLAGS%g +s%@CPPFLAGS@%$CPPFLAGS%g +s%@CXXFLAGS@%$CXXFLAGS%g +s%@FFLAGS@%$FFLAGS%g +s%@DEFS@%$DEFS%g +s%@LDFLAGS@%$LDFLAGS%g +s%@LIBS@%$LIBS%g +s%@exec_prefix@%$exec_prefix%g +s%@prefix@%$prefix%g +s%@program_transform_name@%$program_transform_name%g +s%@bindir@%$bindir%g +s%@sbindir@%$sbindir%g +s%@libexecdir@%$libexecdir%g +s%@datadir@%$datadir%g +s%@sysconfdir@%$sysconfdir%g +s%@sharedstatedir@%$sharedstatedir%g +s%@localstatedir@%$localstatedir%g +s%@libdir@%$libdir%g +s%@includedir@%$includedir%g +s%@oldincludedir@%$oldincludedir%g +s%@infodir@%$infodir%g +s%@mandir@%$mandir%g +s%@CC@%$CC%g +s%@CPP@%$CPP%g +s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g +s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g +s%@INSTALL_DATA@%$INSTALL_DATA%g +s%@LEX@%$LEX%g +s%@LEXLIB@%$LEXLIB%g +s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g +s%@RSH@%$RSH%g +s%@NROFF@%$NROFF%g +s%@NROFFFLAGS@%$NROFFFLAGS%g +s%@AWKPATH@%$AWKPATH%g +s%@PERLPATH@%$PERLPATH%g +s%@XAW_LIBS@%$XAW_LIBS%g +s%@X_CFLAGS@%$X_CFLAGS%g +s%@X_PRE_LIBS@%$X_PRE_LIBS%g +s%@X_LIBS@%$X_LIBS%g +s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g +s%@host@%$host%g +s%@host_alias@%$host_alias%g +s%@host_cpu@%$host_cpu%g +s%@host_vendor@%$host_vendor%g +s%@host_os@%$host_os%g +s%@PRE_XMULIB@%$PRE_XMULIB%g +s%@POST_XMULIB@%$POST_XMULIB%g +s%@CONF_CFLAGS@%$CONF_CFLAGS%g +s%@CONF_LDFLAGS@%$CONF_LDFLAGS%g +s%@ZIPPY_O@%$ZIPPY_O%g +s%@ZIPPY_H@%$ZIPPY_H%g +s%@PRODUCT@%$PRODUCT%g +s%@VERSION@%$VERSION%g +s%@PATCHLEVEL@%$PATCHLEVEL%g + +CEOF +EOF + +cat >> $CONFIG_STATUS <<\EOF + +# Split the substitutions into bite-sized pieces for seds with +# small command number limits, like on Digital OSF/1 and HP-UX. +ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script. +ac_file=1 # Number of current file. +ac_beg=1 # First line for current file. +ac_end=$ac_max_sed_cmds # Line after last line for current file. +ac_more_lines=: +ac_sed_cmds="" +while $ac_more_lines; do + if test $ac_beg -gt 1; then + sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file + else + sed "${ac_end}q" conftest.subs > conftest.s$ac_file + fi + if test ! -s conftest.s$ac_file; then + ac_more_lines=false + rm -f conftest.s$ac_file + else + if test -z "$ac_sed_cmds"; then + ac_sed_cmds="sed -f conftest.s$ac_file" + else + ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file" + fi + ac_file=`expr $ac_file + 1` + ac_beg=$ac_end + ac_end=`expr $ac_end + $ac_max_sed_cmds` + fi +done +if test -z "$ac_sed_cmds"; then + ac_sed_cmds=cat +fi +EOF + +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories. + + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`" + # A "../" for each directory in $ac_dir_suffix. + ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'` + else + ac_dir_suffix= ac_dots= + fi + + case "$ac_given_srcdir" in + .) srcdir=. + if test -z "$ac_dots"; then top_srcdir=. + else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;; + /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;; + *) # Relative path. + srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix" + top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + + case "$ac_given_INSTALL" in + [/$]*) INSTALL="$ac_given_INSTALL" ;; + *) INSTALL="$ac_dots$ac_given_INSTALL" ;; + esac + + echo creating "$ac_file" + rm -f "$ac_file" + configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure." + case "$ac_file" in + *Makefile*) ac_comsub="1i\\ +# $configure_input" ;; + *) ac_comsub= ;; + esac + + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + sed -e "$ac_comsub +s%@configure_input@%$configure_input%g +s%@srcdir@%$srcdir%g +s%@top_srcdir@%$top_srcdir%g +s%@INSTALL@%$INSTALL%g +" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file +fi; done +rm -f conftest.s* + +# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where +# NAME is the cpp macro being defined and VALUE is the value it is being given. +# +# ac_d sets the value in "#define NAME VALUE" lines. +ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)' +ac_dB='\([ ][ ]*\)[^ ]*%\1#\2' +ac_dC='\3' +ac_dD='%g' +# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE". +ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_uB='\([ ]\)%\1#\2define\3' +ac_uC=' ' +ac_uD='\4%g' +# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE". +ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' +ac_eB='$%\1#\2define\3' +ac_eC=' ' +ac_eD='%g' + +if test "${CONFIG_HEADERS+set}" != set; then +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +fi +for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then + # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". + case "$ac_file" in + *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'` + ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + *) ac_file_in="${ac_file}.in" ;; + esac + + echo creating $ac_file + + rm -f conftest.frag conftest.in conftest.out + ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"` + cat $ac_file_inputs > conftest.in + +EOF + +# Transform confdefs.h into a sed script conftest.vals that substitutes +# the proper values into config.h.in to produce config.h. And first: +# Protect against being on the right side of a sed subst in config.status. +# Protect against being in an unquoted here document in config.status. +rm -f conftest.vals +cat > conftest.hdr <<\EOF +s/[\\&%]/\\&/g +s%[\\$`]%\\&%g +s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp +s%ac_d%ac_u%gp +s%ac_u%ac_e%gp +EOF +sed -n -f conftest.hdr confdefs.h > conftest.vals +rm -f conftest.hdr + +# This sed command replaces #undef with comments. This is necessary, for +# example, in the case of _POSIX_SOURCE, which is predefined and required +# on some systems where configure will not decide to define it. +cat >> conftest.vals <<\EOF +s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */% +EOF + +# Break up conftest.vals because some shells have a limit on +# the size of here documents, and old seds have small limits too. + +rm -f conftest.tail +while : +do + ac_lines=`grep -c . conftest.vals` + # grep -c gives empty output for an empty file on some AIX systems. + if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi + # Write a limited-size here document to conftest.frag. + echo ' cat > conftest.frag <> $CONFIG_STATUS + sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS + echo 'CEOF + sed -f conftest.frag conftest.in > conftest.out + rm -f conftest.in + mv conftest.out conftest.in +' >> $CONFIG_STATUS + sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail + rm -f conftest.vals + mv conftest.tail conftest.vals +done +rm -f conftest.vals + +cat >> $CONFIG_STATUS <<\EOF + rm -f conftest.frag conftest.h + echo "/* $ac_file. Generated automatically by configure. */" > conftest.h + cat conftest.in >> conftest.h + rm -f conftest.in + if cmp -s $ac_file conftest.h 2>/dev/null; then + echo "$ac_file is unchanged" + rm -f conftest.h + else + # Remove last slash and all that follows it. Not all systems have dirname. + ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'` + if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then + # The file is in a subdirectory. + test ! -d "$ac_dir" && mkdir "$ac_dir" + fi + rm -f $ac_file + mv conftest.h $ac_file + fi +fi; done + +EOF +cat >> $CONFIG_STATUS <> $CONFIG_STATUS <<\EOF +test -z "$CONFIG_HEADERS" || date > stamp-h +chmod 755 comment.awk cmail + +exit 0 +EOF +chmod +x $CONFIG_STATUS +rm -fr confdefs* $ac_clean_files +test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 + diff --git a/configure.in b/configure.in new file mode 100644 index 0000000..797c7b3 --- /dev/null +++ b/configure.in @@ -0,0 +1,323 @@ +dnl| configure.in +dnl| +dnl| You can process this file with autoconf to produce a configure script. +dnl| However, normally the supplied configure script will work fine. +dnl| +dnl| If you do need to change the configure script, instead of editing +dnl| it directly, try to edit configure.in (in a way that will keep +dnl| it portable to sites and systems other than your own), and run autoconf +dnl| to regenerate configure. Then submit your changes to be folded into +dnl| the standard version of xboard. + +AC_INIT(xboard.c) +AC_CONFIG_HEADER(config.h) + +PRODUCT=xboard +VERSION=4.2 +PATCHLEVEL=6 + +if test -z "$CFLAGS" ; then +dnl| Prevent the next macro from setting CFLAGS to -g + CFLAGS=" " +fi +AC_PROG_CC +AC_PROG_CPP +AC_ISC_POSIX +AC_PROG_INSTALL +AC_CHECK_PROGS(LEX, lex flex, lex_not_found) +if test "$LEX" != lex_not_found ; then + AC_DECL_YYTEXT +fi +AC_CHECK_PROGS(RSH, remsh rsh, rsh) +AC_DEFINE_UNQUOTED(REMOTE_SHELL, "$RSH") +AC_CHECK_PROG(NROFF, nroff, [nroff -man], cat) +AC_SUBST(NROFFFLAGS) +AC_PATH_PROGS(AWKPATH, awk mawk gawk nawk) +AC_PATH_PROGS(PERLPATH, perl) + +AC_ARG_WITH(Xaw3d, [ --with-Xaw3d use Xaw3d instead of Xaw], + [AC_DEFINE(USE_XAW3D) + XAW_LIBS="-lXaw3d"], + XAW_LIBS="-lXaw") +AC_SUBST(XAW_LIBS) + +AC_HEADER_STDC +AC_HEADER_TIME +AC_HEADER_SYS_WAIT +AC_HEADER_DIRENT +AC_TYPE_SIGNAL +AC_CHECK_HEADERS(stropts.h sys/time.h string.h unistd.h sys/systeminfo.h) +AC_CHECK_HEADERS(fcntl.h sys/fcntl.h, break) +AC_CHECK_HEADERS(sys/socket.h lan/socket.h, break) +AC_CHECK_HEADER(stddef.h, [], AC_DEFINE(X_WCHAR, 1)) + +AC_EGREP_HEADER(sys_errlist, errno.h, AC_DEFINE(DEFINED_SYS_ERRLIST)) +AC_EGREP_HEADER(sys_errlist, stdio.h, AC_DEFINE(DEFINED_SYS_ERRLIST)) +AC_EGREP_HEADER(sys_errlist, stdlib.h, AC_DEFINE(DEFINED_SYS_ERRLIST)) + +AC_CHECK_FUNCS(_getpty grantpt setitimer usleep) +AC_CHECK_FUNCS(gettimeofday ftime, break) +AC_CHECK_FUNCS(random rand48, break) +AC_CHECK_FUNCS(gethostname sysinfo, break) +AC_CHECK_FUNC(setlocale, [], + AC_CHECK_LIB(i, setlocale, [], AC_DEFINE(X_LOCALE, 1))) + +AC_CHECK_LIB(seq, getpseudotty) + +AC_PATH_XTRA +if test -n "$no_x" ; then + echo $PRODUCT requires the X Window System header files and libraries! + echo They were not found on your system. See FAQ topic C.2. + echo configure failed + exit 1 +fi + +AC_CANONICAL_HOST + +dnl| The following info is mostly gathered from GNU Emacs 19.24. Basically, +dnl| we are trying to find out whether this is a System-V derivative in +dnl| which pipes don't work with select() and if so, whether there is anything +dnl| strange about the way to open a pty. Some of the work was done above +dnl| by looking for _getpty, grantpt, and getpseudotty. A few other strange +dnl| properties of particular systems are also handled here. + +dnl| 4/6/97 I'm not sure there really are any systems where pipes +dnl| don't work with select(), and ptys cause problems on many +dnl| systems, so I'm changing the default to disable ptys in all +dnl| cases. I will change it back if I get bug reports that are fixed +dnl| by doing a "configure --enable-ptys" + +USE_PTYS=0 +case "$host" in + *-*-hpux* ) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, + [sprintf (pty_name, "/dev/pty/tty%c%x", c, i);]) + AC_DEFINE(PTY_NAME_SPRINTF, + [sprintf (pty_name, "/dev/ptym/pty%c%x", c, i);]) +dnl| USE_PTYS=1 + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + else + +dnl| Note: You might be able to build xboard even if your compiler does not +dnl| support ANSI C (-Aa). xboard itself does not require ANSI C. I don't +dnl| know whether the X header files on HP-UX require it. + + CONF_CFLAGS="-Aa -D_HPUX_SOURCE" + fi + +dnl| HP doesn't supply a full set of X header files and libraries. People +dnl| often have some things installed in one place and some in another. +dnl| AC_PATH_XTRA will find only one place, so we try to add all the +dnl| likely ones that might be missing here. It might be better to +dnl| change AC_PATH_XTRA to try to extract this information from imake, +dnl| since folks who install the missing bits often configure their +dnl| imake to find them, but I don't want to delve into autoconf and +dnl| hack on its internals. + + if test -d /opt/hppd/include/X11; then + X_CFLAGS="$X_CFLAGS -I/opt/hppd/include" + X_LIBS="$X_LIBS -L/opt/hppd/lib" + elif test -d /usr/contrib/X11R5/include; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/X11R5/include" + X_LIBS="$X_LIBS -L/usr/contrib/X11R5/lib" + elif test -d /usr/contrib/mitX11R5/include; then + X_CFLAGS="$X_CFLAGS -I/usr/contrib/mitX11R5/include" + X_LIBS="$X_LIBS -L/usr/contrib/mitX11R5/lib" + elif test -d /MIT/X11R5/include; then + X_CFLAGS="$X_CFLAGS -I/MIT/X11R5/include" + X_LIBS="$X_LIBS -L/MIT/X11R5/lib" + elif test -d /usr/local/include/X11R5; then + X_CFLAGS="$X_CFLAGS -I/usr/local/include/X11R5" + X_LIBS="$X_LIBS -L/usr/local/lib/X11R5" + fi + if test -d /usr/include/X11R5; then + X_CFLAGS="$X_CFLAGS -I/usr/include/X11R5" + X_LIBS="$X_LIBS -L/usr/lib/X11R5 -L/usr/lib/X11R4" + elif test -d /usr/include/X11R4; then + X_CFLAGS="$X_CFLAGS -I/usr/include/X11R4" + X_LIBS="$X_LIBS -L/usr/lib/X11R4" + fi + ;; + + romp-ibm-aix* ) + AC_DEFINE(IBMRTAIX, 1) +dnl| USE_PTYS=1 + ;; + + i386-ibm-aix ) +dnl| USE_PTYS=1 + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + fi + ;; + + *-*-aix3* | *-*-bosx* ) + AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)]) + AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [strcpy (pty_name, ttyname (fd));]) +dnl| USE_PTYS=1 + ;; + + *-*-cxux* ) + AC_DEFINE(FIRST_PTY_LETTER, 'A') + AC_DEFINE(LAST_PTY_LETTER, 'P') +dnl| USE_PTYS=1 + ;; + + *-*-uniplus* ) + AC_DEFINE(UNIPLUS, 1) +dnl| USE_PTYS=1 + ;; + + *-*-rtu* ) + AC_DEFINE(FIRST_PTY_LETTER, 'z') + AC_DEFINE(PTY_TTY_NAME_SPRINTF, + [sprintf (pty_name, "/dev/ttyp%x", i);]) + AC_DEFINE(PTY_NAME_SPRINTF, + [sprintf (pty_name, "/dev/pty%x", i);]) + AC_DEFINE(RTU, 1) +dnl| USE_PTYS=1 + ;; + + *-*-iris* | *-*-irix3* ) + AC_DEFINE(PTY_ITERATION, [for (c = 0; !c; c++)]) + AC_DEFINE(PTY_NAME_SPRINTF, [strcpy (pty_name, "/dev/ptc");]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, + [sprintf (pty_name, "/dev/ttyq%d", minor(stb.st_rdev));]) +dnl| USE_PTYS=1 + ;; + + *-*-irix* ) +dnl| USE_PTYS=1 + ;; + + *-*-sunos4* | *-*-solaris1* ) + +dnl| Work around a bug in the SunOS 4.x linker. Not needed if you have patches +dnl| 100512-02 and 100573-03 from Sun. The X FAQ says that the following is +dnl| "overkill," but doesn't explain what should be done instead. + + if test "$GCC" = yes; then + PRE_XMULIB="-static" + POST_XMULIB="-dynamic" + else + PRE_XMULIB="-Bstatic" + POST_XMULIB="-Bdynamic" + fi + ;; + + *-*-sunos5* | *-*-solaris2* ) +dnl| USE_PTYS=1 + +dnl| I'm not sure -lelf is needed, but it was in the old Imakefile. +dnl| The other libraries should all be found by Ac_PATH_XTRA or other +dnl| code above. + + X_LIBS="$X_LIBS -lelf" + ;; + + *-*-sco* ) + AC_DEFINE(PTY_ITERATION, [for (i = 0; ; i++)]) + AC_DEFINE(PTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ptyp%d", i);]) + AC_DEFINE(PTY_TTY_NAME_SPRINTF, [sprintf (pty_name, "/dev/ttyp%d", i);]) +dnl| USE_PTYS=1 + ;; + + *-*-dynix* | *-*-ptx* ) +dnl| USE_PTYS=1 + ;; + + *-*-esix* ) +dnl| USE_PTYS=1 + ;; + + *-*-usg5-4* | *-*-sysvr4* ) +dnl| USE_PTYS=1 + ;; + + *-*-usg* | *-*-sysv* | *-*-aix* ) +dnl| USE_PTYS=1 + ;; + + vax-*-ultrix ) + if test "$GCC" = yes; then + CONF_CFLAGS="-fwritable-strings" + fi + ;; +esac + +AC_ARG_ENABLE(xpm, +[ --enable-xpm libXpm will be used if found (default) + --disable-xpm libXpm will not be used], +[enable_xpm="$enableval"], [enable_xpm="yes"]) + +if test "$enable_xpm" = "yes"; then + save_cflags="$CFLAGS" + CFLAGS="$CFLAGS $X_CFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + AC_CHECK_HEADERS(X11/xpm.h) + CFLAGS="$save_cflags" + if test "$ac_cv_header_X11_xpm_h" = "yes"; then + save_ldflags="$LDFLAGS" + LDFLAGS="$LDFLAGS $X_LIBS" + AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, + [X_PRE_LIBS="-lXpm $X_PRE_LIBS"; AC_DEFINE(HAVE_LIBXPM)], [], + [$X_PRE_LIBS -lX11 $X_EXTRA_LIBS]) + LDFLAGS="$save_ldflags" + fi +fi + +AC_SUBST(PRE_XMULIB) +AC_SUBST(POST_XMULIB) +AC_SUBST(CONF_CFLAGS) +AC_SUBST(CONF_LDFLAGS) + +AC_MSG_CHECKING(whether ptys or pipes should be used) +AC_ARG_ENABLE(ptys, +[ --enable-ptys force use of pseudo-ttys with child processes + --disable-ptys force use of pipes with child processes], +[if test "$enableval" = yes; then + USE_PTYS=1 + AC_MSG_RESULT([ptys (user override)]) +fi +if test "$enableval" = no; then + USE_PTYS=0 + AC_MSG_RESULT([pipes (user override)]) +fi], +[if test "$USE_PTYS" = 1; then + AC_MSG_RESULT(ptys) +else + AC_MSG_RESULT(pipes) +fi]) +AC_DEFINE_UNQUOTED(USE_PTYS, $USE_PTYS) + +AC_ARG_ENABLE(zippy, +[ --enable-zippy features for interfacing a chess program to ICS], +[if test "$enableval" = yes; then + AC_DEFINE(ZIPPY, 1) + ZIPPY_O=zippy.o + ZIPPY_H=zippy.h +fi]) +AC_SUBST(ZIPPY_O) +AC_SUBST(ZIPPY_H) + +AC_ARG_ENABLE(sigint, +[ --enable-sigint sending SIGINT (^C) wakes up GNU Chess (default) + --disable-sigint typing a command wakes up GNU Chess], +[if test "$enableval" = yes; then + AC_DEFINE(ATTENTION, 1) +fi], +[AC_DEFINE(ATTENTION, 1)]) + +AC_DEFINE_UNQUOTED(PRODUCT, "$PRODUCT") +AC_DEFINE_UNQUOTED(VERSION, "$VERSION") +AC_DEFINE_UNQUOTED(PATCHLEVEL, "$PATCHLEVEL") +AC_SUBST(PRODUCT) +AC_SUBST(VERSION) +AC_SUBST(PATCHLEVEL) + +AC_OUTPUT(Makefile comment.awk:comment.in cmail xboard.texinfo, +[test -z "$CONFIG_HEADERS" || date > stamp-h +chmod 755 comment.awk cmail +]) diff --git a/engine-intf.html b/engine-intf.html new file mode 100644 index 0000000..3fac364 --- /dev/null +++ b/engine-intf.html @@ -0,0 +1,1825 @@ + + + +Chess Engine Communication Protocol + + + +
+

Chess Engine Communication Protocol

+

Tim Mann

+

+Last modified on Mon Feb 5 23:23:16 PST 2001 by mann
+Version 2; implemented in xboard/WinBoard 4.2.1 and later.
+Changes since version 1 are indicated in red. +


+ + + +
+ +

1. Introduction

+ +

+This document is a set of rough notes on the protocol that xboard and +WinBoard use to communicate with gnuchessx and other chess engines. +These notes may be useful if you want to connect a different chess +engine to xboard. Throughout the notes, "xboard" means both xboard +and WinBoard except where they are specifically contrasted. +

+ +

+There are two reasons I can imagine someone wanting to do this: +

+
    +
  1. You have, or are developing, a chess engine but you don't want to +write your own graphical interface. +
  2. You have, or are developing,a chess engine, and you want to +interface it to the Internet Chess Server. +
+ +

+In case (2), if you are using xboard, you will need to configure the +"Zippy" code into it, but WinBoard includes this code already. See +the file zippy.README +in the xboard or WinBoard distribution for more information. + +

+ +

+These notes are unpolished, but I've attempted to make them complete +in this release. If you notice any errors, omissions, or misleading +statements, let me know. +

+ +

+I'd like to hear from everyone who is trying to interface their own +chess engine to xboard/WinBoard. Please email me, tim.mann@compaq.com. Also, please join +the mailing list for authors of xboard/WinBoard compatible chess +engines. The list is now hosted by egroups.com; you can join at http://www.egroups.com/group/chess-engines, or you can read the +list there without joining. The list is filtered to prevent spam. +

+ +

2. Connection

+ +

+An xboard chess engine runs as a separate process from xboard itself, +connected to xboard through a pair of anonymous pipes. The engine +does not have to do anything special to set up these pipes. xboard +sets up the pipes itself and starts the engine with one pipe as its +standard input and the other as its standard output. The engine then +reads commands from its standard input and writes responses to its +standard output. This is, unfortunately, a little more complicated to +do right than it sounds; see section 6 below. +

+ +

+And yes, contrary to some people's expectations, exactly the same +thing is true for WinBoard. Pipes and standard input/output are +implemented in Win32 and work fine. You don't have to use DDE, COM, +DLLs, BSOD, or any of the other infinite complexity that +Microsoft has created just to talk between two programs. A WinBoard +chess engine is a Win32 console program that simply reads from its +standard input and writes to its standard output. See sections +5 and 6 below for additional details. +

+ +

3. Debugging

+ +

+To diagnose problems in your engine's interaction with xboard, use the +-debug flag on xboard's command line to see the messages that are +being exchanged. In WinBoard, these messages are written to the file +WinBoard.debug instead of going to the screen. +

+ +

+You can turn debug mode on or off while WinBoard is running by +pressing Ctrl+Alt+F12. You can turn debug mode on or off while xboard +is running by binding DebugProc to a shortcut key (and pressing the +key!); see the instructions on shortcut keys in the xboard man page. +

+ +

+While your engine is running under xboard/WinBoard, you can send a +command directly to the engine by pressing Shift+1 (xboard) or Alt+1 +(WinBoard 4.0.3 and later). This brings up a dialog that you can type +your command into. Press Shift+2 (Alt+2) instead to send to the +second chess engine in Two Machines mode. On WinBoard 4.0.2 and earlier, +Ctrl+Alt is used in place of Alt; this had to be changed due to a conflict +with typing the @-sign on some European keyboards. +

+ +

4. How it got this way

+ +

+Originally, xboard was just trying to talk to the existing +command-line interface of GNU Chess 3.1+ and 4, which was designed +for people to type commands to. So the communication protocol is very +ad-hoc. It might have been good to redesign it early on, but because +xboard and GNU Chess are separate programs, I didn't want to force +people to upgrade them together to versions that matched. I +particularly wanted to keep new versions of xboard working with old +versions of GNU Chess, to make it easier to compare the play of old +and new gnuchess versions. I didn't foresee the need for a clean +protocol to be used with other chess engines in the future. +

+ +

+Circumstances have changed over the years, and now there are many more +engines that work with xboard. I've had to make the protocol +description more precise, I've added some features that GNU Chess +does not support, and I've specified the standard semantics of a few +features to be slightly different from what GNU Chess 4 does. +

+ +

+ +This release of the protocol specification is the first to carry a +version number of its own -- version 2. Previous releases simply +carried a last-modified date and were loosely tied to specific +releases of xboard and WinBoard. The version number "1" applies +generally to all those older versions of the protocol. + + + +

Protocol version 2 remains compatible with older engines but has +several new capabilities. In particular, it adds the +"feature" command, a new mechanism for making backward-compatible +changes and extensions to the protocol. Engines that do not support a +particular new feature do not have to use it; new features are not +enabled unless the engine specifically requests them using the feature +command. If an engine does not send the feature command at all, the +protocol behavior is nearly identical to version 1. Several new +features can be selected by the feature command in version 2, +including the "ping" command (recommended for all engines), the +"setboard" command, and many optional parameters. Additional features +will probably be added in future versions. + +

+ +

5. WinBoard requires Win32 engines

+ +

+Due to some Microsoft brain damage that I don't understand, WinBoard +does not work with chess engines that were compiled to use a DOS +extender for 32-bit addressing. (Probably not with 16-bit DOS or +Windows programs either.) WinBoard works only with engines that are +compiled for the Win32 API. You can get a free compiler that targets +the Win32 API from http://sources.redhat.com/cygwin/. I think DJGPP 2.x should also +work if you use the RSXNTDJ extension, but I haven't tried it. Of +course, Microsoft Visual C++ will work. Most likely the other +commercial products that support Win32 will work too (Borland, etc.), +but I have not tried them. Delphi has been successfully used to write +engines for WinBoard; if you want to do this, Tony Werten has donated +some sample +code that should help you get started. +

+ +

6. Hints on input/output

+ +

+Beware of using buffered I/O in your chess engine. The C stdio +library, C++ streams, and the I/O packages in most other languages use +buffering both on input and output. That means two things. First, +when your engine tries to write some characters to xboard, the library +stashes them in an internal buffer and does not actually write them to +the pipe connected to xboard until either the buffer fills up or you +call a special library routine asking for it to be flushed. (In C +stdio, this routine is named fflush.) Second, when your engine tries +to read some characters from xboard, the library does not read just +the characters you asked for -- it reads all the characters that are +currently available (up to some limit) and stashes any characters you +are not yet ready for in an internal buffer. The next time you ask to +read, you get the characters from the buffer (if any) before the +library tries to read more data from the actual pipe. +

+ +

+Why does this cause problems? First, on the output side, remember +that your engine produces output in small quantities (say, a few +characters for a move, or a line or two giving the current analysis), +and that data always needs to be delivered to xboard/WinBoard for +display immediately. If you use buffered output, the data you print +will sit in a buffer in your own address space instead of being +delivered. +

+ +

+You can usually fix the output buffering problem by asking for the +buffering to be turned off. In C stdio, you do this by calling +setbuf(stdout, NULL). A more laborious and error-prone +method is to carefully call fflush(stdout) after every line +you output; I don't recommend this. In C++, you can try +cout.setf(ios::unitbuf), which is documented in current +editions of "The C++ Programming Language," but not older ones. +Another C++ method that might work is +cout.rdbuf()->setbuf(NULL, 0). Alternatively, you can +carefully call cout.flush() after every line you output; +again, I don't recommend this. +

+ +

+Another way to fix the problem is to use unbuffered operating system +calls to write directly to the file descriptor for standard output. +On Unix, this means write(1, ...) -- see the man page for write(2). +On Win32, you can use either the Unix-like _write(1, ...) or Win32 +native routines like WriteFile. +

+ +

+Second, on the input side, you are likely to want to poll during your +search and stop it if new input has come in. If you implement +pondering, you'll need this so that pondering stops when the user +makes a move. You should also poll during normal thinking on your +move, so that you can implement the "?" (move now) command, and so +that you can respond promptly to a "result", "force", or "quit" +command if xboard wants to end the game or terminate your engine. +Buffered input makes polling more complicated -- when you poll, you +must stop your search if there are either characters in the buffer +or characters available from the underlying file descriptor. +

+ +

+The most direct way to fix this problem is to use unbuffered operating +system calls to read (and poll) the underlying file descriptor +directly. On Unix, use read(0, ...) to read from standard input, and +use select() to poll it. See the man pages read(2) and select(2). +(Don't follow the example of GNU Chess 4 and use the FIONREAD ioctl to +poll for input. It is not very portable; that is, it does not exist +on all versions of Unix, and is broken on some that do have it.) On +Win32, you can use either the Unix-like _read(0, ...) or the native +Win32 ReadFile() to read. Unfortunately, under Win32, the function to +use for polling is different depending on whether the input device is +a pipe, a console, or something else. (More Microsoft brain damage +here -- did they never hear of device independence?) For pipes, you +can use PeekNamedPipe to poll (even when the pipe is unnamed). +For consoles, +you can use GetNumberOfConsoleInputEvents. For sockets only, you can +use select(). It might be possible to use +WaitForSingleObject more +generally, but I have not tried it. Some code to do these things can +be found in Crafty's utility.c, but I don't guarantee that it's all +correct or optimal. +

+ +

+A second way to fix the problem might be to ask your I/O library not +to buffer on input. It should then be safe to poll the underlying +file descriptor as described above. With C, you can try calling +setbuf(stdin, NULL). However, I have never tried this. Also, there +could be problems if you use scanf(), at least with certain patterns, +because scanf() sometimes needs to read one extra character and "push +it back" into the buffer; hence, there is a one-character pushback +buffer even if you asked for stdio to be unbuffered. With C++, you +can try cin.rdbuf()->setbuf(NULL, 0), but again, I have never tried +this. +

+ +

+A third way to fix the problem is to check whether there are +characters in the buffer whenever you poll. C I/O libraries generally +do not provide any portable way to do this. Under C++, you can use +cin.rdbuf()->in_avail(). This method has been reported to +work with +EXchess. Remember that if there are no characters in the buffer, you +still have to poll the underlying file descriptor too, using the +method described above. +

+ +

+A fourth way to fix the problem is to use a separate thread to read +from stdin. This way works well if you are familiar with thread +programming. This thread can be blocked waiting for input to come in +at all times, while the main thread of your engine does its thinking. +When input arrives, you have the thread put the input into a buffer +and set a flag in a global variable. Your search routine then +periodically tests the global variable to see if there is input to +process, and stops if there is. WinBoard and my Win32 ports of ICC +timestamp and FICS timeseal use threads to handle multiple input +sources. +

+ +

7. Signals

+ +

Engines that run on Unix need to be concerned with two Unix +signals: SIGTERM and SIGINT. This applies both to +engines that run under xboard and (the unusual case of) engines that +WinBoard remotely runs on a Unix host using the -firstHost or +-secondHost feature. It does not apply to engines that run on +Windows, because Windows does not have Unix-style signals. + +Beginning with version 2, you can now turn off the use of +either or both +signals. See the "feature" command in section 9 below. + +

+ +

First, when an engine is sent the "quit" command, it is also given +a SIGTERM signal shortly afterward to make sure it goes away. +If your engine reliably responds to "quit", and the signal causes +problems for you, you should either ignore it by calling +signal(SIGTERM, SIG_IGN) at the start of your program, +or disable it with the "feature" command.

+ +

Second, xboard will send an interrupt signal (SIGINT) at +certain times when it believes the engine may not be listening to user +input (thinking or pondering). WinBoard currently does this only when +the engine is running remotely using the -firstHost or -secondHost +feature, not when it is running locally. You probably need to know +only enough about this grungy feature to keep it from getting in your +way. +

+ +

+The SIGINTs are basically tailored to the needs of GNU Chess 4 +on systems where its input polling code is broken or disabled. +Because they work in a rather peculiar way, it is recommended that you +either ignore SIGINT by having your engine call +signal(SIGINT, SIG_IGN), or disable it with the "feature" +command.

+ +

+Here are details for the curious. If xboard needs to send a command +when it is the chess engine's move (such as before the "?" command), +it sends a SIGINT first. If xboard needs to send commands when it is +not the chess engine's move, but the chess engine may be pondering +(thinking on its opponent's time) or analyzing (analysis or analyze +file mode), xboard sends a SIGINT before the first such command only. +Another SIGINT is not sent until another move is made, even if xboard +issues more commands. This behavior is necessary for GNU Chess 4. The +first SIGINT stops it from pondering until the next move, but on some +systems, GNU Chess 4 will die if it receives a SIGINT when not +actually thinking or pondering. +

+ +

+There are two reasons why WinBoard does not send the Win32 equivalent +of SIGINT (which is called CTRL_C_EVENT) to local +engines. First, the Win32 GNU Chess 4 port does not need it. Second, I +could not find a way to get it to work. Win32 seems to be designed +under the assumption that only console applications, not windowed +applications, would ever want to send a CTRL_C_EVENT. +

+ +

8. Commands from xboard to the engine

+ +

+All commands from xboard to the engine end with a newline (\n), even +where that is not explicitly stated. All your output to xboard must +be in complete lines; any form of prompt or partial line will cause +problems. +

+ +

+At the beginning of each game, xboard sends an initialization string. +This is currently "new\nrandom\n" unless the user changes it with the +initString or secondInitString option. +

+ +

+xboard normally reuses the same chess engine process for multiple +games. At the end of a game, xboard will send the "force" command +(see below) to make sure your engine stops thinking about the current +position. It will later send the initString again to start a new +game. If your engine can't play multiple games, you can disable reuse + +either with the "feature" command (beginning in protocol version +2; see below) or + +with xboard's -xreuse (or -xreuse2) command line +option. xboard will then ask the process to quit after each game and +start a new process for the next game. +

+ +
+
xboard +
This command will be sent once immediately after your engine +process is started. You can use it to put your engine into "xboard +mode" if that is needed. If your engine prints a prompt to ask for +user input, you must turn off the prompt and output a newline when the +"xboard" command comes in. +

+ + +

protover N +
Beginning in protocol version 2 (in which N=2), this command will +be sent immediately after the "xboard" command. If you receive some +other command immediately after "xboard" (such as "new"), you can +assume that protocol version 1 is in use. The "protover" command is +the only new command that xboard always sends in version 2. All other +new commands to the engine are sent only if the engine first enables +them with the "feature" command. Protocol versions will always be +simple integers so that they can easily be compared. + +

Your engine should reply to the protover command by sending the +"feature" command (see below) with the list of non-default feature +settings that you require, if any. + +

Your engine should never refuse to run due to receiving a higher +protocol version number than it is expecting! New protocol versions +will always be compatible with older ones by default; the larger +version number is simply a hint that additional "feature" command +options added in later protocol versions may be accepted. + +

+ + +

accepted +
rejected +
These commands may be sent to your engine in reply to the "feature" +command; see its documentation below. + +

+ +

new +
Reset the board to the standard chess starting position. Set +White on move. Leave force mode and set the engine to play Black. +Associate the engine's clock with Black and the opponent's clock with +White. Reset clocks and time controls to the start of a new game. +Stop clocks. Do not ponder on this move, even if pondering is on. +Remove any search depth limit previously set by the sd command. +

+ +

variant VARNAME +
If the game is not standard chess, but a variant, this command is +sent after "new" and before the first move or "edit" command. Currently +defined variant names are: + + +
wildcastleShuffle chess where king can castle from d file +
nocastleShuffle chess with no castling at all +
fischerandomFischer Random (not supported yet) +
bughouseBughouse, ICC/FICS rules +
crazyhouseCrazyhouse, ICC/FICS rules +
losersWin by losing all pieces or getting mated (ICC) +
suicideWin by losing all pieces including king, +or by having fewer pieces when one player has no legal moves (FICS) +
giveaway +Win by losing all pieces including king, +or by having no legal moves (ICC) +
twokingsWeird ICC wild 9 +
kriegspielKriegspiel (engines not supported) +
atomicAtomic +
3checkWin by giving check 3 times +
unknownUnknown variant (not supported) +
+

+ +

quit +
The chess engine should immediately exit. This command is used +when xboard is itself exiting, and also between games if the -xreuse +command line option is given (or -xreuse2 for the second engine). +See also Signals above. +

+ +

random +
This command is specific to GNU Chess 4. You can either ignore it +completely (that is, treat it as a no-op) or implement it as GNU Chess +does. The command toggles "random" mode (that is, it sets random = +!random). In random mode, the engine adds a small random value to its +evaluation function to vary its play. The "new" command sets random +mode off. +

+ +

force +
Set the engine to play neither color ("force mode"). Stop clocks. +The engine should check that moves received in force mode are legal +and made in the proper turn, but should not think, ponder, or make +moves of its own. +

+ +

go +
Leave force mode and set the engine to play the color that is on +move. Associate the engine's clock with the color that is on move, +the opponent's clock with the color that is not on move. Start the engine's +clock. Start thinking and eventually make a move. +

+ +

playother +
+ +(This command is new in protocol version 2. It is not +sent unless you enable it with the feature command.) +Leave force mode and set the engine to play the color that is not on +move. Associate the opponent's clock with the color that is on move, +the engine's clock with the color that is not on move. Start the opponent's +clock. If pondering is enabled, the engine should begin pondering. +If the engine later receives a move, it should start thinking and eventually +reply. + +

+ +

white +
+ +(This command is obsolete as of protocol version 2, but is still +sent in some situations to accommodate older engines unless you disable it +with the feature command.) + +Set White on move. Set the engine to play Black. Stop clocks. +

+ +

black +
+ +(This command is obsolete as of protocol version 2, but is still +sent in some situations to accommodate older engines unless you disable it +with the feature command.) + +Set Black on move. Set the engine to play White. Stop clocks. +

+ +

level MPS BASE INC +
Set time controls. See the Time Control section below. +

+ +

st TIME +
Set time controls. See the Time Control section +below. The commands "level" and "st" are not used together. +

+ +

sd DEPTH +
The engine should limit its thinking to DEPTH ply. +

+ +

time N +
Set a clock that always belongs to the engine. N is a number in + centiseconds (units of 1/100 second). Even if the engine changes to + playing the opposite color, this clock remains with the engine. +

+ +

otim N + +
Set a clock that always belongs to the opponent. N is a number in +centiseconds (units of 1/100 second). Even if the opponent changes to +playing the opposite color, this clock remains with the opponent. +

+If needed for purposes of board display in force mode (where the +engine is not participating in the game) the time clock should be +associated with the last color that the engine was set to play, the +otim clock with the opposite color. +

+ +

+ +Beginning in protocol version 2, if you can't handle the time and +otim commands, you can use the "feature" command to disable them; see +below. + +The following techniques from older protocol versions also +work: You can ignore the time and otim commands (that is, treat them +as no-ops), or send back "Error (unknown command): time" the first +time you see "time". +

+ +
MOVE +
See below for the syntax of moves. If the move is illegal, print +an error message; see the section "Commands from the engine to +xboard". If the move is legal and in turn, make it. If not in force +mode, stop the opponent's clock, start the engine's clock, start +thinking, and eventually make a move. +

+When xboard sends your engine a move, it normally sends coordinate +algebraic notation. Examples: +

+ +
Normal moves:e2e4 +
Pawn promotion:e7e8q +
Castling:e1g1, e1c1, e8g8, e8c8 +
Bughouse/crazyhouse drop:P@h3 +
ICS Wild 0/1 castling:d1f1, d1b1, d8f8, d8b8 +
FischerRandom castling:O-O, O-O-O (oh, not zero) +
+ +

+ +Beginning in protocol version 2, you can use the feature command +to select SAN (standard algebraic notation) instead; for example, e4, +Nf3, exd5, Bxf7+, Qxf7#, e8=Q, O-O, or P@h3. Note that the last form, +P@h3, is a extension to the PGN standard's definition of SAN, which does +not support bughouse or crazyhouse. + +

+ +

+xboard doesn't reliably detect illegal moves, because it does not keep +track of castling unavailability due to king or rook moves, or en +passant availability. If xboard sends an illegal move, send back an +error message so that xboard can retract it and inform the user; see +the section "Commands from the engine to xboard". +

+ + +
usermove MOVE +
By default, moves are sent to the engine without a command name; +the notation is just sent as a line by itself. +Beginning in protocol version 2, you can use the feature command +to cause the command name "usermove" to be sent before the move. +Example: "usermove e2e4". + +

+ +
? +
Move now. If your engine is thinking, it should move immediately; + otherwise, the command should be ignored (treated as a no-op). It + is permissible for your engine to always ignore the ? command. The + only bad consequence is that xboard's Move Now menu command will do + nothing. +

+It is also permissible for your engine to move immediately if it gets +any command while thinking, as long as it processes the command right +after moving, but it's preferable if you don't do this. For example, +xboard may send post, nopost, easy, hard, force, quit, + +or other commands + +while the engine is on move. +

+ + +
ping N +
+In this command, N is a decimal number. When you receive the command, +reply by sending the string pong N, where N is the +same number you received. Important: You must not reply to a "ping" +command until you have finished executing all commands that you +received before it. Pondering does not count; if you receive a ping +while pondering, you should reply immediately and continue pondering. +Because of the way xboard uses the ping command, if you implement the +other commands in this protocol, you should never see a "ping" command +when it is your move; however, if you do, you must not send the "pong" +reply to xboard until after you send your move. For example, xboard +may send "?" immediately followed by "ping". If you implement the "?" +command, you will have moved by the time you see the subsequent ping +command. Similarly, xboard may send a sequence like "force", "new", +"ping". You must not send the pong response until after you have +finished executing the "new" command and are ready for the new game to +start. + +

+The ping command is new in protocol version 2 and will not be sent +unless you enable it with the "feature" command. Its purpose is to +allow several race conditions that could occur in previous versions of +the protocol to be fixed, so it is highly recommended that you +implement it. It is especially important in simple engines that do +not ponder and do not poll for input while thinking, but it is needed in all +engines. +

+
+ +
draw +
The engine's opponent offers the engine a draw. To accept the +draw, send "offer draw". To decline, ignore the offer (that is, send +nothing). If you're playing on ICS, it's possible for the draw offer +to have been withdrawn by the time you accept it, so don't assume the +game is over because you accept a draw offer. Continue playing until +xboard tells you the game is over. See also "offer draw" below. +

+ +

result RESULT {COMMENT} +
After the end of each game, xboard will send you a result command. +You can use this command to trigger learning. RESULT is either 1-0, +0-1, 1/2-1/2, or *, indicating whether white won, black won, the game +was a draw, or the game was unfinished. The COMMENT string is purely +a human-readable comment; its content is unspecified and subject to +change. In ICS mode, it is passed through from ICS uninterpreted. +Example:
result 1-0 {White mates}
+

+Here are some notes on interpreting the "result" command. Some apply +only to playing on ICS ("Zippy" mode). +

+ +

+If you won but did not just play a mate, your opponent must have +resigned or forfeited. If you lost but were not just mated, you +probably forfeited on time, or perhaps the operator resigned manually. +If there was a draw for some nonobvious reason, perhaps your opponent +called your flag when he had insufficient mating material (or vice +versa), or perhaps the operator agreed to a draw manually. +

+ +

+You will get a result command even if you already know the game ended +-- for example, after you just checkmated your opponent. In fact, if +you send the "RESULT {COMMENT}" command (discussed below), you will +simply get the same thing fed back to you with "result" tacked in +front. You might not always get a "result *" command, however. In +particular, you won't get one in local chess engine mode when the user +stops playing by selecting Reset, Edit Game, Exit or the like. +

+ + +
setboard FEN +
The setboard command is the new way to set up positions, beginning +in protocol version 2. It is not used unless it has been selected +with the feature command. Here FEN is a position in Forsythe-Edwards +Notation, as defined in the PGN standard. + +

Illegal positions: Note that either setboard or edit can +be used to send an illegal position to the engine. The user can +create any position with xboard's Edit Position command (even, say, +an empty board, or a board with 64 white kings and no black ones). +If your engine receives a position that it considers illegal, +I suggest that you send the response "tellusererror Illegal position", +and then respond to any attempted move with "Illegal move" until +the next new, edit, or setboard command.

+
+

+ +

edit +
+ +The edit command is the old way to set up positions. For compatibility +with old engines, it is still used by default, but new engines may prefer +to use the feature command (see below) to cause xboard to use setboard instead. + +The edit command puts the chess engine into a special mode, where +it accepts the following subcommands: + +
cchange current piece color, initially white +
Pa4 (for example)place pawn of current color on a4 +
xa4 (for example)empty the square a4 (not used by xboard) +
#clear board +
.leave edit mode +
+ +See the Idioms section below for additional subcommands used in +ChessBase's implementation of the protocol. + + +

The edit command does not change the side to move. To set up a +black-on-move position, xboard uses the following command sequence: +

+
+    new
+    force
+    a2a3
+    edit
+    <edit commands>
+    .
+
+ +

+This sequence is used to avoid the "black" command, which is now +considered obsolete and which many engines never did implement as +specified in this document. +

+ +

+After an edit command is complete, if a king and a rook are on their +home squares, castling is assumed to be available to them. En passant +capture is assumed to be illegal on the current move regardless of the +positions of the pawns. The clock for the 50 move rule starts at +zero, and for purposes of the draw by repetition rule, no prior +positions are deemed to have occurred. +

+ +
hint +
If the user asks for a hint, xboard sends your engine the command +"hint". Your engine should respond with "Hint: xxx", where xxx is a +suggested move. If there is no move to suggest, you can ignore the +hint command (that is, treat it as a no-op). +

+ +

bk +
If the user selects "Book" from the xboard menu, xboard will send +your engine the command "bk". You can send any text you like as the +response, as long as each line begins with a blank space or tab (\t) +character, and you send an empty line at the end. The text pops up in +a modal information dialog. +

+ +

undo +
If the user asks to back up one move, xboard will send you the +"undo" command. xboard will not send this command without putting you +in "force" mode first, so you don't have to worry about what should +happen if the user asks to undo a move your engine made. (GNU Chess 4 +actually switches to playing the opposite color in this case.) +

+ +

remove +
If the user asks to retract a move, xboard will send you the +"remove" command. It sends this command only when the user is on +move. Your engine should undo the last two moves (one for each +player) and continue playing the same color. +

+ +

hard +
Turn on pondering (thinking on the opponent's time, also known as +"permanent brain"). xboard will not make any assumption about what +your default is for pondering or whether "new" affects this setting. +

+ +

easy +
Turn off pondering. +

+ +

post +
Turn on thinking/pondering output. +See Thinking Output section. +

+ +

nopost +
Turn off thinking/pondering output. +

+ +

analyze +
Enter analyze mode. See Analyze Mode section. +

+ +

name X
This command informs the engine of its +opponent's name. When the engine is playing on a chess server, xboard +obtains the opponent's name from the server. + +When the engine is +playing locally against a human user, xboard obtains the user's login +name from the local operating system. When the engine is playing +locally against another engine, xboard uses either the other engine's +filename or the name that the other engine supplied in the myname +option to the feature command. By default, xboard uses the name +command only when the engine is playing on a chess server. Beginning +in protocol version 2, you can change this with the name option to the +feature command; see below. + +

+ +

rating +
In ICS mode, xboard obtains the ICS opponent's rating from the +"Creating:" message that appears before each game. (This message may +not appear on servers using outdated versions of the FICS code.) In +Zippy mode, it sends these ratings on to the chess engine using the +"rating" command. The chess engine's own rating comes first, and if +either opponent is not rated, his rating is given as 0. + +In the future this command may also be used in other modes, if ratings +are known. + +Example:
rating 2600 1500
+

+ + +

ics HOSTNAME +
If HOSTNAME is "-", the engine is playing against a local +opponent; otherwise, the engine is playing on an Internet Chess Server +(ICS) with the given hostname. This command is new in protocol +version 2 and is not sent unless the engine has enabled it with +the "feature" command. Example: "ics freechess.org" + +

+ +

computer +
The opponent is also a computer chess engine. Some engines alter +their playing style when they receive this command. +

+ + +

pause +
resume +
(These commands are new in protocol +version 2 and will not be sent unless feature pause=1 is set. At +this writing, xboard actually does not use the commands at all, but it +or other interfaces may use them in the future.) +The "pause" command puts the engine into a special state where it +does not think, ponder, or otherwise consume significant CPU time. +The current thinking or pondering (if any) is suspended and both +player's clocks are stopped. The only command that the interface may +send to the engine while it is in the paused state is "resume". The +paused thinking or pondering (if any) resumes from exactly where it +left off, and the clock of the player on move resumes running from +where it stopped. + +
+ +

Bughouse commands:

+ +

+xboard now supports bughouse engines when in Zippy mode. See +zippy.README for information on Zippy mode and how to turn on the +bughouse support. The bughouse move format is given above. xboard +sends the following additional commands to the engine when in bughouse +mode. +Commands to inform your engine of the partner's game state may +be added in the future. +

+ +
+
partner <player> +
<player> is now your partner for future games. Example:
partner mann
+

+ +

partner +
Meaning: You no longer have a partner. +

+ +

ptell <text> +
Your partner told you <text>, either with a ptell or an ordinary tell. +

+ +

holding [<white>] [<black>] +
White currently holds <white>; black currently holds <black>. + Example:
holding [PPPRQ] []
+ +
holding [<white>] [<black>] <color><piece> +
White currently holds <white>; black currently holds <black>, after + <color> acquired <piece>. Example:
holding [PPPRQ] [R] BR
+
+ +

9. Commands from the engine to xboard

+ +

+ +In general, an engine should not send any output to xboard that is not +described in this document. As the protocol is extended, newer +versions of xboard may recognize additional strings as commands that +were previously not assigned a meaning. + +

+ +
+ +
feature FEATURE1=VALUE1 FEATURE2=VALUE2 ... + +
Beginning with version 2, the protocol includes the "feature" +command, which lets your engine control certain optional protocol +features. Feature settings are written as FEATURE=VALUE, where +FEATURE is a name from the list below and VALUE is the value to be +assigned. Features can take string, integer, or boolean values; the +type of value is listed for each feature. String values are written +in double quotes (for example, feature myname="Miracle Chess +0.9"), integers are written in decimal, and boolean values are +written as 0 for false, 1 for true. Any number of features can be set +in one feature command, or multiple feature commands can be given. + +

+Your engine should send one or more feature commands immediately after +receiving the "protover" command, since xboard needs to know the +values of some features before sending further commands to the engine. +Because engines that predate protocol version 2 do not send "feature", +xboard uses a timeout mechanism: when it first starts your engine, it +sends "xboard" and "protover N", then listens for feature commands for +two seconds before sending any other commands. To end this timeout +and avoid the wait, set the feature "done=1" at the end of your last +feature command. To increase the timeout, if needed, set the feature +"done=0" before your first feature command and "done=1" at the end. +If needed, it is okay for your engine to set done=0 soon as it starts, +even before it receives the xboard and protover commands. This can be +useful if your engine takes a long time to initialize itself. It +should be harmless even if you are talking to a (version 1) user +interface that does not understand the "feature" command, since such +interfaces generally ignore commands from the engine that they do not +understand. +

+ +

+The feature command is designed to let the protocol change without +breaking engines that were written for older protocol versions. When +a new feature is added to the protocol, its default value is always +chosen to be compatible with older versions of the protocol that did +not have the feature. Any feature that your engine does not set in a +"feature" command retains its default value, so as the protocol +changes, you do not have to change your engine to keep up with it +unless you want to take advantage of a new feature. Because some +features are improvements to the protocol, while others are meant to +cater to engines that do not implement all the protocol features, the +recommended setting for a feature is not always the same as the +default setting. The listing below gives both default and recommended +settings for most features. +

+ +

+You may want to code your engine so as to be able to work with +multiple versions of the engine protocol. Protocol version 1 does not +send the protover command and does not implement the feature command; +if you send a feature command in protocol version 1, it will have no +effect and there will be no response. In protocol version 2 or later, +each feature F that you set generates the response "accepted F" if the +feature is implemented, or "rejected F" if it is not. Thus an engine +author can request any feature without having to keep track of which +protocol version it was introduced in; you need only check whether the +feature is accepted or rejected. This mechanism also makes it +possible for a user interface author to implement a subset of a +protocol version by rejecting some features that are defined in that +version; however, you should realize that engine authors are likely to +code for xboard and may not be prepared to have a feature that they +depend on be rejected. +

+ +

+Here are the features that are currently defined. +

+ +
+
ping (boolean, default 0, recommended 1) +
If ping=1, xboard may use the protocol's new "ping" command; +if ping=0, xboard will not use the command. + +
setboard (boolean, default 0, recommended 1) +
If setboard=1, xboard will use the protocol's new "setboard" command +to set up positions; if setboard=0, it will use the older "edit" command. + +
playother (boolean, default 0, recommended 1) +
If playother=1, xboard will use the protocol's new "playother" command +when appropriate; if playother=0, it will not use the command. + +
san (boolean, default 0) +
If san=1, xboard will send moves to the engine in standard algebraic +notation (SAN); for example, Nf3. If san=0, xboard will send moves in +coordinate notation; for example, g1f3. See MOVE in +section 8 above for more details of both kinds of notation. + +
usermove (boolean, default 0) +
If usermove=1, xboard will send moves to the engine with the +command "usermove MOVE"; if usermove=0, xboard will send just the move, +with no command name. + +
time (boolean, default 1, recommended 1) +
If time=1, xboard will send the "time" and "otim" commands to +update the engine's clocks; if time=0, it will not. + +
draw (boolean, default 1, recommended 1) +
If draw=1, xboard will send the "draw" command if the engine's opponent +offers a draw; if draw=0, xboard will not inform the engine about +draw offers. Note that if draw=1, you may receive a draw offer while you +are on move; if this will cause you to move immediately, you should set +draw=0. + +
sigint (boolean, default 1) +
If sigint=1, xboard may send SIGINT (the interrupt signal) to +the engine as section 7 above; if sigint=0, it will +not. + +
sigterm (boolean, default 1) +
If sigterm=1, xboard may send SIGTERM (the termination signal) to +the engine as section 7 above; if sigterm=0, it will +not. + +
reuse (boolean, default 1, recommended 1) +
If reuse=1, xboard may reuse your engine for multiple games. If +reuse=0 (or if the user has set the -xreuse option on xboard's command +line), xboard will kill the engine process after every game and start +a fresh process for the next game. + +
analyze (boolean, default 1, recommended 1) +
If analyze=0, xboard will not try to use the "analyze" command; it +will pop up an error message if the user asks for analysis mode. If +analyze=1, xboard will try to use the command if the user asks for +analysis mode. + +
myname (string, default determined from engine filename) +
This feature lets you set the name that xboard will use for your +engine in window banners, in the PGN tags of saved game files, and when +sending the "name" command to another engine. + +
variants (string, see text below) +
This feature indicates which chess variants your engine accepts. +It should be a comma-separated list of variant names. See the table +under the "variant" command in section 8 above. If +you do not set this feature, xboard will assume by default that your +engine supports all variants. (However, the -zippyVariants +command-line option still limits which variants will be accepted in +Zippy mode.) It is recommended that you set this feature to the +correct value for your engine (just "normal" in most cases) rather +than leaving the default in place, so that the user will get an +appropriate error message if he tries to play a variant that your +engine does not support. + +
colors (boolean, default 1, recommended 0) +
If colors=1, xboard uses the obsolete "white" and "black" +commands in a stylized way that works with most older chess engines +that require the commands. See the "Idioms" section +below for details. If colors=0, xboard does not use the "white" and +"black" commands at all. + +
ics (boolean, default 0) +
If ics=1, xboard will use the protocol's new "ics" command +to inform the engine of whether or not it is playing on a chess server; +if ics=0, it will not. + +
name (boolean, see text below) +
If name=1, xboard will use the protocol's "name" command +to inform the engine of the opponent's name; if name=0, it will not. +By default, name=1 if the engine is playing on a chess server; name=0 if not. + +
pause (boolean, default 0) +
If pause=1, xboard may use the protocol's new "pause" command; +if pause=0, xboard assumes that the engine does not support this command. + +
done (integer, no default) +
If you set done=1 during the initial two-second timeout after +xboard sends you the "xboard" command, the +timeout will end and xboard will not look for any more feature +commands before starting normal operation. +If you set done=0, the initial timeout is increased to one hour; +in this case, you must set done=1 before xboard will enter normal operation. +
+
+

+ +

Illegal move: MOVE +
Illegal move (REASON): MOVE +
If your engine receives a MOVE command that is recognizably a move +but is not legal in the current position, your engine must print an +error message in one of the above formats so that xboard can pass the +error on to the user and retract the move. The (REASON) is entirely +optional. Examples: + +
+  Illegal move: e2e4
+  Illegal move (in check): Nf3
+  Illegal move (moving into check): e1g1
+
+

+Generally, xboard will never send an ambiguous move, so it does not +matter whether you respond to such a move with an Illegal move message +or an Error message. +

+ +
Error (ERRORTYPE): COMMAND +
If your engine receives a command it does not understand or does +not implement, it should print an error message in the above format so +that xboard can parse it. Examples: +
+  Error (ambiguous move): Nf3
+  Error (unknown command): analyze
+  Error (command not legal now): undo
+  Error (too many parameters): level 1 2 3 4 5 6 7
+
+ +
move MOVE +
Your engine is making the move MOVE. Do not echo moves from +xboard with this command; send only new moves made by the engine. + + +

For the actual move text from your chess engine (in place of MOVE +above), your move should be either +

    +
  • in coordinate notation (e.g., +e2e4, e7e8q) with castling indicated by the King's two-square move (e.g., +e1g1), or +
  • in Standard Algebraic Notation (SAN) as defined in the +Portable Game Notation standard (e.g, e4, Nf3, O-O, cxb5, Nxe4, e8=Q), +with the extension piece@square (e.g., P@f7) to handle piece placement +in bughouse and crazyhouse. +
+xboard itself also accepts some variants of SAN, but for compatibility +with non-xboard interfaces, it is best not to rely on this behavior. +

+ +

Warning: Even though all versions of this protocol specification +have indicated that xboard accepts SAN moves, some non-xboard +interfaces are known to accept only coordinate notation. See the +Idioms section for more information on the known limitations of some +non-xboard interfaces. It should be safe to send SAN moves if you +receive a "protover 2" (or later) command from the interface, but +otherwise it is best to stick to coordinate notation for maximum +compatibility. An even more conservative approach would be for your +engine to send SAN to the interface only if you have set feature san=1 +(which causes the interface to send SAN to you) and have received +"accepted san" in reply. +

+
+ +
RESULT {COMMENT}
When your engine detects +that the game has ended by rule, your engine must output a line of the +form "RESULT {comment}" (without the quotes), where RESULT is a PGN +result code (1-0, 0-1, or 1/2-1/2), and comment is the reason. Here +"by rule" means that the game is definitely over because of what +happened on the board. In normal chess, this includes checkmate, +stalemate, triple repetition, the 50 move rule, or insufficient +material; it does not include loss on time or the like. +Examples: +
+  0-1 {Black mates}
+  1-0 {White mates}
+  1/2-1/2 {Draw by repetition}
+  1/2-1/2 {Stalemate}
+
+ +

+xboard relays the result to the user, the ICS, the other engine in Two +Machines mode, and the PGN save file as required. +

+ +
resign +
If your engine wants to resign, it can send the command "resign". +Alternatively, it can use the "RESULT {comment}" command if the string +"resign" is included in the comment; for example "0-1 {White +resigns}". xboard relays the resignation to the user, the ICS, the +other engine in Two Machines mode, and the PGN save file as required. +

+ +

offer draw +
If your engine wants to offer a draw by agreement (as opposed to +claiming a draw by rule), it can send the command "offer draw". +xboard relays the offer to the user, the ICS, the other engine in Two +Machines mode, and the PGN save file as required. In Machine White, +Machine Black, or Two Machines mode, the offer is considered valid +until your engine has made two more moves. +

+ + +

tellopponent MESSAGE +
This command lets the engine give a message to its opponent, +independent of whether the opponent is a user on the local machine or +a remote ICS user (Zippy mode). MESSAGE consists of any characters, +including whitespace, to the end of the line. When the engine is +playing against a user on the local machine, xboard pops up an +information dialog containing the message. When the engine is playing +against an opponent on the ICS (Zippy mode), xboard sends "say +MESSAGE\n" to the ICS. +

+ +

tellothers MESSAGE +
This command lets the engine give a message to people watching the +game other than the engine's opponent. MESSAGE consists of any +characters, including whitespace, to the end of the line. When the +engine is playing against a user on the local machine, this command +does nothing. When the engine is playing against an opponent on the +ICS (Zippy mode), xboard sends "whisper MESSAGE\n" to the ICS. +

+ +

tellall MESSAGE +
This command lets the engine give a message to its opponent and +other people watching the game, +independent of whether the opponent is a user on the local machine or +a remote ICS user (Zippy mode). MESSAGE consists of any characters, +including whitespace, to the end of the line. When the engine is +playing against a user on the local machine, xboard pops up an +information dialog containing the message. When the engine is playing +against an opponent on the ICS (Zippy mode), xboard sends "kibitz +MESSAGE\n" to the ICS. + +

+ +

telluser MESSAGE +
xboard pops up an information dialog containing the message. +MESSAGE consists of any characters, including whitespace, to the end +of the line. +

+ +

tellusererror MESSAGE +
xboard pops up an error dialog containing the message. +MESSAGE consists of any characters, including whitespace, to the end +of the line. +

+ +

askuser REPTAG MESSAGE +
Here REPTAG is a string containing no whitespace, and MESSAGE +consists of any characters, including whitespace, to the end of the +line. xboard pops up a question dialog that says MESSAGE and +has a typein box. If the user types in "bar", xboard sends "REPTAG +bar" to the engine. The user can cancel the dialog and send nothing. +

+ +

tellics MESSAGE +
In Zippy mode, xboard sends "MESSAGE\n" to ICS. MESSAGE consists +of any characters, including whitespace, to the end of the line. +

+ + +

tellicsnoalias MESSAGE +
In Zippy mode, xboard sends "xMESSAGE\n" to ICS, where "x" is a +character that prevents the ICS from expanding command aliases, if +xboard knows of such a character. (On chessclub.com and chess.net, +"/" is used; on freechess.org, "$" is used.) MESSAGE consists of any +characters, including whitespace, to the end of the line. + +
+

+ +

10. Thinking Output

+ +

+If the user asks your engine to "show thinking", xboard sends your +engine the "post" command. It sends "nopost" to turn thinking off. +In post mode, your engine sends output lines to show the progress of +its thinking. The engine can send as many or few of these lines as it +wants to, whenever it wants to. Typically they would be sent when the +PV (principal variation) changes or the depth changes. The thinking +output should be in the following format: +

+ +
ply score time nodes pv
+ +Where: + +
plyInteger giving current search depth. +
scoreInteger giving current evaluation in centipawns. +
timeCurrent search time in centiseconds (ex: +1028 = 10.28 seconds). + +
nodesNodes searched. +
pvFreeform text giving current "best" line. +You can continue the pv onto another line if you start each +continuation line with at least four space characters. +
+ +

+Example: +

+ +
  9 156 1084 48000 Nf3 Nc6 Nc3 Nf6
+ +

+Meaning: +

+ +9 ply, score=1.56, time = 10.84 seconds, nodes=48000, +PV = "Nf3 Nc6 Nc3 Nf6" + +

+Longer example from actual Crafty output: +

+
+  4    109      14   1435  1. e4 d5 2. Qf3 dxe4 3. Qxe4 Nc6
+  4    116      23   2252  1. Nf3 Nc6 2. e4 e6
+  4    116      27   2589  1. Nf3 Nc6 2. e4 e6
+  5    141      44   4539  1. Nf3 Nc6 2. O-O e5 3. e4
+  5    141      54   5568  1. Nf3 Nc6 2. O-O e5 3. e4
+
+ +

+You can use the PV to show other things; for instance, while in book, +Crafty shows the observed frequency of different reply moves in its +book. In situations like this where your engine is not really +searching, start the PV with a '(' character: +

+ +
+  0      0       0      0  (e4 64%, d4 24%)
+
+ +

+GNU Chess output is very slightly different. The ply number is +followed by an extra nonblank character, and the time is in seconds, +not hundredths of seconds. For compatibility, xboard accepts the +extra character and takes it as a flag indicating the different time +units. Example: +

+ +
+ 2.     14    0       38   d1d2  e8e7 
+ 3+     78    0       65   d1d2  e8e7  d2d3 
+ 3&     14    0       89   d1d2  e8e7  d2d3 
+ 3&     76    0      191   d1e2  e8e7  e2e3 
+ 3.     76    0      215   d1e2  e8e7  e2e3 
+ 4&     15    0      366   d1e2  e8e7  e2e3  e7e6 
+ 4.     15    0      515   d1e2  e8e7  e2e3  e7e6 
+ 5+     74    0      702   d1e2  f7f5  e2e3  e8e7  e3f4 
+ 5&     71    0     1085   d1e2  e8e7  e2e3  e7e6  e3f4 
+ 5.     71    0     1669   d1e2  e8e7  e2e3  e7e6  e3f4 
+ 6&     48    0     3035   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 
+ 6.     48    0     3720   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 
+ 7&     48    0     6381   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 
+ 7.     48    0    10056   d1e2  e8e7  e2e3  e7e6  e3e4  f7f5  e4d4 
+ 8&     66    1    20536   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 
+ 8.     66    1    24387   d1e2  e8e7  e2e3  e7e6  e3d4  g7g5  a2a4  f7f5 
+ 9&     62    2    38886   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 
+                           d4e4 
+ 9.     62    4    72578   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  a2a4  h5h4 
+                           d4e4 
+10&     34    7   135944   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 
+                           d4e4  f7f5  e4f4 
+10.     34    9   173474   d1e2  e8e7  e2e3  e7e6  e3d4  h7h5  c2c4  h5h4 
+                           d4e4  f7f5  e4f4 
+
+ +

If your engine is pondering (thinking on its opponent's time) in post +mode, it can show its thinking then too. In this case your engine may +omit the hint move (the move it is assuming its opponent will make) +from the thinking lines if and only if it sends xboard the move in +the usual "Hint: xxx" format before sending the first line. +

+ +

11. Time control

+ +

+xboard supports three styles of time control: conventional chess clocks, +the ICS-style incremental clock, and an exact number of seconds per move. +

+ +

In conventional clock mode, every time control period is the same. +That is, if the time control is 40 moves in 5 minutes, then after each +side has made 40 moves, they each get an additional 5 minutes, and so +on, ad infinitum. At some future time it would be nice to support a +series of distinct time controls. This is very low on my personal +priority list, but code donations to the xboard project are accepted, +so feel free to take a swing at it. I suggest you talk to me first, +though. +

+ +

+The command to set a conventional time control looks like this: +

+ +
+  level 40 5 0
+  level 40 0:30 0
+
+ +

+The 40 means that there are 40 moves per time control. The 5 means +there are 5 minutes in the control. In the second example, the 0:30 +means there are 30 seconds. The final 0 means that we are in +conventional clock mode. +

+ +

+The command to set an incremental time control looks like this: +

+ +
+  level 0 2 12
+
+ +

+Here the 0 means "play the whole game in this time control period", +the 2 means "base=2 minutes", and the 12 means "inc=12 seconds". As +in conventional clock mode, the second argument to level can be in +minutes and seconds. +

+ +

+At the start of the game, each player's clock is set to base minutes. +Immediately after a player makes a move, inc seconds are added to his +clock. A player's clock counts down while it is his turn. Your flag +can be called whenever your clock is zero or negative. (Your clock +can go negative and then become positive again because of the +increment.) +

+ +

+A special rule on some ICS implementations: if you ask for a game with +base=0, the clocks really start at 10 seconds instead of 0. xboard +itself does not know about this rule, so it passes the 0 on to the +engine instead of changing it to 0:10. +

+ +

+ICS also has time odds games. With time odds, each player has his own +(base, inc) pair, but otherwise things work the same as in normal +games. The Zippy xboard accepts time odds games but ignores the fact +that the opponent's parameters are different; this is perhaps not +quite the right thing to do, but gnuchess doesn't understand time +odds. Time odds games are always unrated. +

+ +

+The command to set an exact number of seconds per move looks like this: +

+ +
+  st 30
+
+ +

+This means that each move must be made in at most 30 seconds. Time not used +on one move does not accumulate for use on later moves. +

+ +

12. Analyze Mode

+ +

xboard supports analyzing fresh games, edited positions, and games +from files. However, all of these look the same from the chess +engine's perspective. Basically, the engine just has to respond to the +"analyze" command. + +Beginning in protocol version 2, +if your engine does not support analyze mode, it should use +the feature command to set analyze=0. + +The older method of +printing the error message "Error (unknown command): analyze" in +response to the "analyze" command will also work, however. +

+ +

+To enter analyze mode, xboard sends the command sequence "post", "analyze". +Analyze mode in your engine should be +similar to force mode, except that your engine thinks about what move +it would make next if it were on move. Your engine should accept the +following commands while in analyze mode: +

+ +
    +
  • Any legal move, as in force mode +
  • undo   Back up one move and analyze previous position. +
  • new   Reset position to start of game but stay in analyze mode. + +
  • setboard if you have set feature setboard=1; otherwise edit. Exiting edit mode returns to analyze mode. + +
  • exit   Leave analyze mode. +
  • .   Send a search status update (optional); see below. +
  • +bk   Show book moves from this position, +if any; see above. +
  • +hint   Show the predicted move from this +position, if any; see above. +
+ +

+If the user selects "Periodic Updates", xboard will send the string +".\n" to the chess engine periodically during analyze mode, unless the +last PV received began with a '(' character. +

+ +

+The chess engine should respond to ".\n" with a line like this: +

+ +
+stat01: time nodes ply mvleft mvtot mvname
+
+ +Where: + +
timeElapsed search time in centiseconds (ie: 567 = 5.67 seconds). +
nodesNodes searched so far. +
plySearch depth so far. +
mvleftNumber of moves left to consider at this depth. +
mvtotTotal number of moves to consider. +
mvname +Move currently being considered (SAN or coordinate notation). Optional; +added in protocol version 2. +
+ +

+Examples: +

+
+  stat01: 1234 30000 7 5 30
+  stat01: 1234 30000 7 5 30 Nf3
+
+ +

+Meaning: +

+ +

After 12.34 seconds, I've searched 7 ply/30000 nodes, there are a + total of 30 legal moves, and I have 5 more moves to search + before going to depth 8. In the second example, of the 30 legal + moves, the one I am currently searching is Nf3.

+ +

+Implementation of the "." command is optional. If the engine does not +respond to the "." command with a "stat01..." line, xboard will stop +sending "." commands. If the engine does not implement this command, +the analysis window will use a shortened format to display the engine +info. +

+ +

+To give the user some extra information, the chess engine can output +the strings "++\n" and "--\n", to indicate that the current search is +failing high or low, respectively. You don't have to send anything +else to say "Okay, I'm not failing high/low anymore." xboard will +figure this out itself. +

+ +

13. Idioms and backward compatibility features

+ +

+Some engines have variant interpretations of the force/go/white/black, +time/otim, and hard/easy command sets. +In order to accommodate these older engines, xboard uses these commands +only according to the stylized patterns ("idioms") given in this section. +The obsolete white and black commands +have historically been particularly troublesome, and it is recommended +that new engines set the feature colors=0 and/or ignore the commands. +

+ +
+ +
time N +
otim N +
MOVE +
Sent when the opponent makes a move and the engine is already +playing the opposite color. +

+ +

white +
go +
Sent when the engine is in force mode or playing Black but should +switch to playing White. This sequence is sent only when White is +already on move. + +If you set the feature colors=0, "white" is not sent. + +

+ +

black +
go +
Sent when the engine is in force mode or playing White but should +switch to playing Black. This sequence is sent only when Black is +already on move. + +If you set the feature colors=0, "black" is not sent. + +

+ +

white +
time N +
otim N +
black +
go +
Sent when Black is on move, the engine is in force mode or playing +White, and the engine's clock needs to be updated before it starts +playing. +The initial "white" is a kludge to accommodate GNU Chess +4's variant interpretation of these commands. + +If you set the feature colors=0, "white" and "black" are not sent. + +

+ +

black +
time N +
otim N +
white +
go +
Sent when White is on move, the engine is in force mode or playing +Black, and the engine's clock needs to be updated before it starts +playing. See previous idiom. +The initial "black" is a kludge to accommodate GNU Chess +4's variant interpretation of these commands. + +If you set the feature colors=0, "black" and "white" are not sent. + +

+ +

hard +
easy +
Sent in sequence to turn off pondering if xboard is not sure +whether it is on. When xboard is sure, it will send "hard" or "easy" +alone. xboard does this because "easy" is a toggle in GNU Chess 4 but +"hard" is an absolute on. + +
+ +

+To support older engines, certain additional commands from the engine +to xboard are also recognized. (These are commands by themselves, not +values to be placed in the comment field of the PGN result code.) +These forms are not recommended for new engines; use the PGN result +code commands or the resign command instead. +

+ + +
Command Interpreted as +
White resigns 0-1 {White resigns} +
Black resigns 1-0 {Black resigns} +
White 1-0 {White mates} +
Black 0-1 {Black mates} +
Draw 1/2-1/2 {Draw} +
computer mates 1-0 {White mates} or 0-1 {Black mates} +
opponent mates 1-0 {White mates} or 0-1 {Black mates} +
computer resigns 0-1 {White resigns} or 1-0 {Black resigns} +
game is a draw 1/2-1/2 {Draw} +
checkmate 1-0 {White mates} or 0-1 {Black mates} +
+ +

+Commands in the above table are recognized if they begin a line and +arbitrary characters follow, so (for example) "White mates" will be +recognized as "White", and "game is a draw by the 50 move rule" will +be recognized as "game is a draw". All the commands are +case-sensitive. +

+ +

+An alternative move syntax is also recognized: +

+ + +
Command Interpreted as +
NUMBER ... MOVE move MOVE +
+ +

+Here NUMBER means any string of decimal digits, optionally ending in a +period. MOVE is any string containing no whitespace. In this command +format, xboard requires the "..." even if your engine is playing +White. A command of the form NUMBER MOVE will be ignored. This odd +treatment of the commands is needed for compatibility with gnuchessx. +The original reasons for it are lost in the mists of time, but I +suspect it was originally a bug in the earliest versions of xboard, +before I started working on it, which someone "fixed" in the wrong +way, by creating a special version of gnuchess (gnuchessx) instead of +changing xboard. +

+ +

+Any line that contains the words "offer" and "draw" is recognized as +"offer draw". +

+ +

+The "Illegal move" message is recognized even if spelled "illegal +move" and even if the colon (":") is omitted. This accommodates GNU +Chess 4, which prints messages like "Illegal move (no matching +move)e2e4", and old versions of Crafty, which print just "illegal move". +

+ +

+In Zippy mode, for compatibility with older versions of Crafty, +xboard passes through to ICS any line that begins "kibitz", "whisper", +"tell", or "draw". Do not use this feature in new code. Instead, use the +commands "tellall", "tellothers", "tellopponent", "tellics" (if needed), +"1/2-1/2 {COMMENT}", or "offer draw", as appropriate. +

+ +

+ +If the engine responds to the "sd DEPTH" command with an error message +indicating the command is not supported (such as "Illegal move: sd"), +xboard sets an internal flag and subsequently uses the command +"depth\nDEPTH" instead, for the benefit of GNU Chess 4. Note the +newline in the middle of this command! New engines should not rely on +this feature. + +

+ +

+ +If the engine responds to the "st TIME" command with an error message +indicating the command is not supported (such as "Illegal move: st"), +xboard sets an internal flag and subsequently uses the command "level +1 TIME" instead, for the benefit of GNU Chess 4. Note that this is +not a standard use of the level command, as TIME seconds are not added +after each player makes 1 move; rather, each move is made in at most +TIME seconds. New engines should not implement or rely on this +feature. + +

+ + +

+In support of the -firstHost/-secondHost features, which allow a chess +engine to be run on another machine using the rsh protocol, xboard recognizes +error messages that are likely to come from rsh as fatal errors. The following +messages are currently recognized: +

+ +
+unknown host
+No remote directory
+not found
+No such file
+can't alloc
+Permission denied
+
+
+ +

+ +ChessBase/Fritz now implements the xboard/winboard protocol and can use +WinBoard-compatible engines in its GUI. ChessBase's version of the +protocol is generally the same as version 1, except that they have +added the commands fritz, reset, and +ponder, and the edit subcommands +castle and ep. If you want your +engine to work well with the ChessBase/Fritz GUI, you may need to +implement these additional commands, and you should also be aware of +the peculiar way that ChessBase uses the protocol. See their web page for documentation. + +

+ +

+ +ChessMaster 8000 also implements version 1 of the xboard/winboard +protocol and can use WinBoard-compatible engines. The original +release of CM8000 also has one additional restriction: only pure +coordinate notation (e.g., e2e4) is accepted in the move command. A +patch to correct this should be available from The Learning Company +(makers of CM8000) in February 2001. + +

+ +
+
converted to HTML by Steffen A. Jakob
+ + diff --git a/frontend.h b/frontend.h new file mode 100644 index 0000000..e611d41 --- /dev/null +++ b/frontend.h @@ -0,0 +1,172 @@ +/* + * frontend.h -- Interface exported by all XBoard front ends + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#ifndef _FRONTEND +#define _FRONTEND + +#include + +typedef VOIDSTAR ProcRef; +#define NoProc ((ProcRef) 0) +typedef VOIDSTAR InputSourceRef; + +void ModeHighlight P((void)); +void SetICSMode P((void)); +void SetGNUMode P((void)); +void SetNCPMode P((void)); +void SetCmailMode P((void)); +void SetTrainingModeOn P((void)); +void SetTrainingModeOff P((void)); +void SetUserThinkingEnables P((void)); +void SetMachineThinkingEnables P((void)); +void DisplayTitle P((String title)); +void DisplayMessage P((String message, String extMessage)); +void DisplayError P((String message, int error)); +void DisplayMoveError P((String message)); + +/* If status == 0, we are exiting with a benign message, not an error */ +void DisplayFatalError P((String message, int error, int status)); + +void DisplayInformation P((String message)); +void AskQuestion P((String title, String question, String replyPrefix, + ProcRef pr)); +void DisplayIcsInteractionTitle P((String title)); +void DrawPosition P((int fullRedraw, Board board)); +void ResetFrontEnd P((void)); +void CommentPopUp P((String title, String comment)); +void CommentPopDown P((void)); +void EditCommentPopUp P((int index, String title, String text)); + +void RingBell P((void)); +void PlayIcsWinSound P((void)); +void PlayIcsLossSound P((void)); +void PlayIcsDrawSound P((void)); +void PlayIcsUnfinishedSound P((void)); +void PlayAlarmSound P((void)); +void EchoOn P((void)); +void EchoOff P((void)); +void Raw P((void)); +void Colorize P((ColorClass cc, int continuation)); + +char *UserName P((void)); +char *HostName P((void)); + +int ClockTimerRunning P((void)); +int StopClockTimer P((void)); +void StartClockTimer P((long millisec)); +void DisplayWhiteClock P((long timeRemaining, int highlight)); +void DisplayBlackClock P((long timeRemaining, int highlight)); + +int LoadGameTimerRunning P((void)); +int StopLoadGameTimer P((void)); +void StartLoadGameTimer P((long millisec)); +void AutoSaveGame P((void)); + +typedef void (*DelayedEventCallback) P((void)); +void ScheduleDelayedEvent P((DelayedEventCallback cb, long millisec)); +DelayedEventCallback GetDelayedEvent P((void)); +void CancelDelayedEvent P((void)); + +int StartChildProcess P((char *cmdLine, char *dir, ProcRef *pr)); +void DestroyChildProcess P((ProcRef pr, int/*boolean*/ signal)); +void InterruptChildProcess P((ProcRef pr)); + +int OpenTelnet P((char *host, char *port, ProcRef *pr)); +int OpenTCP P((char *host, char *port, ProcRef *pr)); +int OpenCommPort P((char *name, ProcRef *pr)); +int OpenLoopback P((ProcRef *pr)); +int OpenRcmd P((char *host, char *user, char *cmd, ProcRef *pr)); + +typedef void (*InputCallback) P((InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error)); +/* pr == NoProc means the local keyboard */ +InputSourceRef AddInputSource P((ProcRef pr, int lineByLine, + InputCallback func, VOIDSTAR closure)); +void RemoveInputSource P((InputSourceRef isr)); + +/* pr == NoProc means the local display */ +int OutputToProcess P((ProcRef pr, char *message, int count, int *outError)); +int OutputToProcessDelayed P((ProcRef pr, char *message, int count, + int *outError, long msdelay)); + +void CmailSigHandlerCallBack P((InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error)); + +extern ProcRef cmailPR; + +/* these are in wgamelist.c */ +void GameListPopUp P((FILE *fp, char *filename)); +void GameListPopDown P((void)); +void GameListHighlight P((int index)); +void GameListDestroy P((void)); + +/* these are in wedittags.c */ +void EditTagsPopUp P((char *tags)); +void TagsPopUp P((char *tags, char *msg)); +void TagsPopDown P((void)); + +void ICSInitScript P((void)); +void StartAnalysisClock P((void)); +void AnalysisPopUp P((char *title, char *label)); +void AnalysisPopDown P((void)); + +void SetHighlights P((int fromX, int fromY, int toX, int toY)); +void ClearHighlights P((void)); +void SetPremoveHighlights P((int fromX, int fromY, int toX, int toY)); +void ClearPremoveHighlights P((void)); + +void ShutDownFrontEnd P((void)); +void BoardToTop P((void)); +void AnimateMove P((Board board, int fromX, int fromY, int toX, int toY)); +void HistorySet P((char movelist[][2*MOVE_LEN], + int first, int last, int current)); +void FreezeUI P((void)); +void ThawUI P((void)); +extern char *programName; + +#endif diff --git a/gamelist.c b/gamelist.c new file mode 100644 index 0000000..0df36b6 --- /dev/null +++ b/gamelist.c @@ -0,0 +1,305 @@ +/* + * gamelist.c -- Functions to manage a gamelist + * XBoard $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include +#include +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "parser.h" + + +/* Variables + */ +List gameList; + + +/* Local function prototypes + */ +static void GameListDeleteGame P((ListGame *)); +static ListGame *GameListCreate P((void)); +static void GameListFree P((List *)); +static int GameListNewGame P((ListGame **)); + +/* Delete a ListGame; implies removint it from a list. + */ +static void GameListDeleteGame(listGame) + ListGame *listGame; +{ + if (listGame) { + if (listGame->gameInfo.event) free(listGame->gameInfo.event); + if (listGame->gameInfo.site) free(listGame->gameInfo.site); + if (listGame->gameInfo.date) free(listGame->gameInfo.date); + if (listGame->gameInfo.round) free(listGame->gameInfo.round); + if (listGame->gameInfo.white) free(listGame->gameInfo.white); + if (listGame->gameInfo.black) free(listGame->gameInfo.black); + if (listGame->gameInfo.fen) free(listGame->gameInfo.fen); + if (listGame->gameInfo.resultDetails) free(listGame->gameInfo.resultDetails); + if (listGame->gameInfo.timeControl) free(listGame->gameInfo.timeControl); + if (listGame->gameInfo.extraTags) free(listGame->gameInfo.extraTags); + ListNodeFree((ListNode *) listGame); + } +} + + +/* Free the previous list of games. + */ +static void GameListFree(gameList) + List *gameList; +{ + while (!ListEmpty(gameList)) + { + GameListDeleteGame((ListGame *) gameList->head); + } +} + + + +/* Initialize a new GameInfo structure. + */ +void GameListInitGameInfo(gameInfo) + GameInfo *gameInfo; +{ + gameInfo->event = NULL; + gameInfo->site = NULL; + gameInfo->date = NULL; + gameInfo->round = NULL; + gameInfo->white = NULL; + gameInfo->black = NULL; + gameInfo->result = GameUnfinished; + gameInfo->fen = NULL; + gameInfo->resultDetails = NULL; + gameInfo->timeControl = NULL; + gameInfo->extraTags = NULL; + gameInfo->whiteRating = -1; /* unknown */ + gameInfo->blackRating = -1; /* unknown */ + gameInfo->variant = VariantNormal; +} + + +/* Create empty ListGame; returns ListGame or NULL, if out of memory. + * + * Note, that the ListGame is *not* added to any list + */ +static ListGame *GameListCreate() + +{ + ListGame *listGame; + + if ((listGame = (ListGame *) ListNodeCreate(sizeof(*listGame)))) { + GameListInitGameInfo(&listGame->gameInfo); + } + return(listGame); +} + + +/* Creates a new game for the gamelist. + */ +static int GameListNewGame(listGamePtr) + ListGame **listGamePtr; +{ + if (!(*listGamePtr = (ListGame *) GameListCreate())) { + GameListFree(&gameList); + return(ENOMEM); + } + ListAddTail(&gameList, (ListNode *) *listGamePtr); + return(0); +} + + +/* Build the list of games in the open file f. + * Returns 0 for success or error number. + */ +int GameListBuild(f) + FILE *f; +{ + ChessMove cm, lastStart; + int gameNumber; + ListGame *currentListGame = NULL; + int error; + int offset; + + GameListFree(&gameList); + yynewfile(f); + gameNumber = 0; + + lastStart = (ChessMove) 0; + yyskipmoves = TRUE; + do { + yyboardindex = 1; + offset = yyoffset(); + cm = (ChessMove) yylex(); + switch (cm) { + case GNUChessGame: + if ((error = GameListNewGame(¤tListGame))) { + rewind(f); + yyskipmoves = FALSE; + return(error); + } + currentListGame->number = ++gameNumber; + currentListGame->offset = offset; + if (currentListGame->gameInfo.event != NULL) { + free(currentListGame->gameInfo.event); + } + currentListGame->gameInfo.event = StrSave(yy_text); + lastStart = cm; + break; + case XBoardGame: + lastStart = cm; + break; + case MoveNumberOne: + switch (lastStart) { + case GNUChessGame: + break; /* ignore */ + case PGNTag: + lastStart = cm; + break; /* Already started */ + case (ChessMove) 0: + case MoveNumberOne: + case XBoardGame: + if ((error = GameListNewGame(¤tListGame))) { + rewind(f); + yyskipmoves = FALSE; + return(error); + } + currentListGame->number = ++gameNumber; + currentListGame->offset = offset; + lastStart = cm; + break; + default: + break; /* impossible */ + } + break; + case PGNTag: + lastStart = cm; + if ((error = GameListNewGame(¤tListGame))) { + rewind(f); + yyskipmoves = FALSE; + return(error); + } + currentListGame->number = ++gameNumber; + currentListGame->offset = offset; + ParsePGNTag(yy_text, ¤tListGame->gameInfo); + do { + yyboardindex = 1; + offset = yyoffset(); + cm = (ChessMove) yylex(); + if (cm == PGNTag) { + ParsePGNTag(yy_text, ¤tListGame->gameInfo); + } + } while (cm == PGNTag || cm == Comment); + break; + default: + break; + } + } + while (cm != (ChessMove) 0); + + + if (appData.debugMode) { + for (currentListGame = (ListGame *) gameList.head; + currentListGame->node.succ; + currentListGame = (ListGame *) currentListGame->node.succ) { + + fprintf(debugFP, "Parsed game number %d, offset %ld:\n", + currentListGame->number, currentListGame->offset); + PrintPGNTags(debugFP, ¤tListGame->gameInfo); + } + } + + rewind(f); + yyskipmoves = FALSE; + return 0; +} + + +/* Clear an existing GameInfo structure. + */ +void ClearGameInfo(gameInfo) + GameInfo *gameInfo; +{ + if (gameInfo->event != NULL) { + free(gameInfo->event); + } + if (gameInfo->site != NULL) { + free(gameInfo->site); + } + if (gameInfo->date != NULL) { + free(gameInfo->date); + } + if (gameInfo->round != NULL) { + free(gameInfo->round); + } + if (gameInfo->white != NULL) { + free(gameInfo->white); + } + if (gameInfo->black != NULL) { + free(gameInfo->black); + } + if (gameInfo->resultDetails != NULL) { + free(gameInfo->resultDetails); + } + if (gameInfo->fen != NULL) { + free(gameInfo->fen); + } + if (gameInfo->timeControl != NULL) { + free(gameInfo->timeControl); + } + if (gameInfo->extraTags != NULL) { + free(gameInfo->extraTags); + } + + GameListInitGameInfo(gameInfo); +} + +char * +GameListLine(number, gameInfo) + int number; + GameInfo *gameInfo; +{ + char *event = (gameInfo->event && strcmp(gameInfo->event, "?") != 0) ? + gameInfo->event : gameInfo->site ? gameInfo->site : "?"; + char *white = gameInfo->white ? gameInfo->white : "?"; + char *black = gameInfo->black ? gameInfo->black : "?"; + char *date = gameInfo->date ? gameInfo->date : "?"; + int len = 10 + strlen(event) + 2 + strlen(white) + 1 + + strlen(black) + 11 + strlen(date) + 1; + char *ret = (char *) malloc(len); + sprintf(ret, "%d. %s, %s-%s, %s, %s", + number, event, white, black, PGNResult(gameInfo->result), date); + return ret; +} + diff --git a/gpl.texinfo b/gpl.texinfo new file mode 100644 index 0000000..b24db7d --- /dev/null +++ b/gpl.texinfo @@ -0,0 +1,398 @@ +@c This GPL is meant to be included from other files. +@c To format a standalone GPL, use license.texi. + +@center Version 2, June 1991 + +@display +Copyright @copyright{} 1989, 1991 Free Software Foundation, Inc. +59 Temple Place, Suite 330, Boston, MA 02111 USA + +Everyone is permitted to copy and distribute verbatim copies +of this license document, but changing it is not allowed. +@end display + +@unnumberedsec Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software---to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + +@iftex +@unnumberedsec TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end iftex +@ifinfo +@center TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION +@end ifinfo + +@enumerate 0 +@item +This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The ``Program'', below, +refers to any such program or work, and a ``work based on the Program'' +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term ``modification''.) Each licensee is addressed as ``you''. + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + +@item +You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + +@item +You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + +@enumerate a +@item +You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + +@item +You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + +@item +If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) +@end enumerate + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + +@item +You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + +@enumerate a +@item +Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + +@item +Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + +@item +Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) +@end enumerate + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + +@item +You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + +@item +You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + +@item +Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + +@item +If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + +@item +If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + +@item +The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and ``any +later version'', you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + +@item +If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + +@iftex +@vskip -@baselineskip +@vskip -@baselineskip +@heading NO WARRANTY +@end iftex +@ifinfo +@center NO WARRANTY +@end ifinfo + +@item +BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM ``AS IS'' WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + +@item +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. +@end enumerate + +@iftex +@heading END OF TERMS AND CONDITIONS +@end iftex +@ifinfo +@center END OF TERMS AND CONDITIONS +@end ifinfo + +@page +@unnumberedsec How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the ``copyright'' line and a pointer to where the full notice is found. + +@smallexample +@var{one line to give the program's name and an idea of what it does.} +Copyright (C) 19@var{yy} @var{name of author} + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. +@end smallexample + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +@smallexample +Gnomovision version 69, Copyright (C) 19@var{yy} @var{name of author} +Gnomovision comes with ABSOLUTELY NO WARRANTY; for details +type `show w'. This is free software, and you are welcome +to redistribute it under certain conditions; type `show c' +for details. +@end smallexample + +The hypothetical commands @samp{show w} and @samp{show c} should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than @samp{show w} and +@samp{show c}; they could even be mouse-clicks or menu items---whatever +suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a ``copyright disclaimer'' for the program, if +necessary. Here is a sample; alter the names: + +@example +@group +Yoyodyne, Inc., hereby disclaims all copyright +interest in the program `Gnomovision' +(which makes passes at compilers) written +by James Hacker. + +@var{signature of Ty Coon}, 1 April 1989 +Ty Coon, President of Vice +@end group +@end example + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/ics-parsing.txt b/ics-parsing.txt new file mode 100644 index 0000000..4603237 --- /dev/null +++ b/ics-parsing.txt @@ -0,0 +1,161 @@ +Parsing of ICS Output +Updated to match xboard/WinBoard 4.0.2 +$Id$ +============================================================================== + +This document describes how xboard and WinBoard parse ICS output. The +general parsing method is to compare a list of patterns against the +current line (whether partial or complete) each time new input is +received from ICS. The patterns are considered in a fixed order. The +pattern matching is not "anchored", so unmatched text at the beginning +of a line (including the prompt, usually) is skipped. Whenever a +pattern is matched, the characters are "consumed" and matching begins +again with the next unmatched character, starting at the top of the +list. The last pattern is "\n", causing characters up to a newline to +be discarded if they have not matched any patterns. The pattern +language is very simple. Every character but "*" must match +literally. "*" matches zero or more characters that don't include a +newline and don't match the character immediately following the *, if +any. A "*" at the end of a pattern will not match until a complete +line is received + +This method of pattern matching is rather fragile. The patterns have +to be chosen quite carefully to avoid unexpected results. For +example, at one time "* shouts: *" was used to match shouts, while +"<12>" was used to match the start of a board. If someone shouted +"<12>", xboard would succeed in ignoring the <12> only if all the +characters from the ">" to the next newline were received at one time, +so that the shout pattern could match before the start-of-board +pattern was considered. (This usually happens on TCP connections, but +is not guaranteed.) + +The patterns intentionally allow text in finger notes to be parsed and +colorized as tells, shouts, etc. I did this because Zek once said +that ZIICS users like this feature, even though he originally +considered it a bug in ZIICS, and so he doesn't dare change it. I may +eventually change it anyway so that people stop reporting it as a bug. + +Here is the complete list of patterns that xboard looks for, in order. +The list was obtained by grepping the source code for "looking_at", my +procedure for pattern-matching. Some of these are specific to FICS, +some to ICC, and some may be outdated---that is, they may reflect +messages that no ICS produces anymore. Occasionally the same pattern +appears more than once because earlier occurrences were inside +if/then/else statements. There may also be a couple of places where I +do a test without calling looking_at. + +zippy.c (runs first if Zippy is active, otherwise skipped): +"* kibitzes: Hello from Crafty" +"* is in the computer list." +"* * is a computer *" +"* offers to be your bughouse partner" +"* tells you: [automatic message] I chose you" +"* agrees to be your partner" +"are no longer *'s partner" +"no longer have a bughouse partner" +"partner has disconnected" +"partner has just chosen a new partner" +"* tells you: [automatic message] I'm no longer your" +"* (your partner) tells you: *" +"* tells you: *" +"* says: *" +"--> * *" +"* shouts: *" +"* kibitzes: *" +"* whispers: *" +"You have * message*." +"* has left a message for you." +"* just sent you a message." +"--* (*:*): *" +"*. * (*:*): *" +"*. * at *:*: *" +"*(*): *" +"*(*)(*): *" +"Notification: * has arrived" +"Not sent -- * is censoring you" +"command is currently turned off" +"* * match * * requested with * (*)" +"* * match * requested with * (*)" +* has made an alternate proposal of * * match * *." +"Challenge: * (*) *(*) * * * * Loaded from *" +"Challenge: * (*) *(*) * * * * : * * Loaded from *" +"Challenge: * (*) *(*) * * * * : * *" +"Challenge: * (*) *(*) * * * * * *" +"Challenge: * (*) *(*) * * * *" +"offers you a draw" +"requests that the game be aborted" +"would like to abort" +"requests adjournment" +"would like to adjourn" + +backend.c: +"ics%" /* right after login only; nonessential */ +"chessclub.com" /* before login; turns on ICC mode */ +"\"*\" is *a registered name" +"Logging you in as \"*\"" +"Your name will be \"*\"" +"* s-shouts: " +"* c-shouts: " +"--->" /* seen in FICS login, not a shout */ +"* shouts: " +"--> " +"* tells you: " +"* (your partner) tells you: " +"* says: " +"* has left a message " +"* just sent you a message:\n" +"*. * (*:*): " +"*. * at *:*: " +"* whispers: " +"* kibitzes: " +"*)(*): *" /* channel tell or allobs or admin comment */ +"*(*): *" /* channel tell or allobs or admin comment */ +"*)(*)(*): *" /* channel tell */ +"Challenge:" +"* offers you" +"* offers to be" +"* would like to" +"* requests to" +"Your opponent offers" +"Your opponent requests" +"\\ " /* continuation line */ +"Black Strength :" /* need to issue "style 12; refresh" */ +"<<< style 10 board >>>" /* need to issue "style 12; refresh" */ +"<10>" /* need to issue "style 12; refresh" */ +"#@#" /* need to issue "style 12; refresh" */ +"login:" +"\n<12> " +"<12> " +"\n " +" " +"* *vs. * *--- *" /* move list coming */ +"* * match, initial time: * minute*, increment: * second" +"Move " /* move list is here */ +"% " /* end of prompt; nonessential */ +"}*" /* ends a move list */ +"Adding game * to observation list" +"Game notification: * (*) vs. * (*)" +"Entering examine mode for game *" +"has made you an examiner of game *" +"Illegal move" +"Not a legal move" +"Your king is in check" +"It isn't your turn" +"It is not your move" +"still have time" +"not out of time" +"either player is out of time" +"has timeseal; checking" +"added * seconds to" +"seconds were added to" +"clock paused" +"clock resumed" +"Creating: * (*)* * (*)" +"Creating: * (*) [*] * (*)" +"{Game * (* vs. *) *}*" +"Removing game * from observation" +"no longer observing game *" +"Game * (*) has no examiners" +"no longer examining game *" +"\n" +"*% " /* end of prompt; nonessential */ diff --git a/install-sh b/install-sh new file mode 100755 index 0000000..ebc6691 --- /dev/null +++ b/install-sh @@ -0,0 +1,250 @@ +#! /bin/sh +# +# install - install a program, script, or datafile +# This comes from X11R5 (mit/util/scripts/install.sh). +# +# Copyright 1991 by the Massachusetts Institute of Technology +# +# Permission to use, copy, modify, distribute, and sell this software and its +# documentation for any purpose is hereby granted without fee, provided that +# the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# `make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. It can only install one file at a time, a restriction +# shared with many OS's install programs. + + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit="${DOITPROG-}" + + +# put in absolute paths if you don't have them in your path; or use env. vars. + +mvprog="${MVPROG-mv}" +cpprog="${CPPROG-cp}" +chmodprog="${CHMODPROG-chmod}" +chownprog="${CHOWNPROG-chown}" +chgrpprog="${CHGRPPROG-chgrp}" +stripprog="${STRIPPROG-strip}" +rmprog="${RMPROG-rm}" +mkdirprog="${MKDIRPROG-mkdir}" + +transformbasename="" +transform_arg="" +instcmd="$mvprog" +chmodcmd="$chmodprog 0755" +chowncmd="" +chgrpcmd="" +stripcmd="" +rmcmd="$rmprog -f" +mvcmd="$mvprog" +src="" +dst="" +dir_arg="" + +while [ x"$1" != x ]; do + case $1 in + -c) instcmd="$cpprog" + shift + continue;; + + -d) dir_arg=true + shift + continue;; + + -m) chmodcmd="$chmodprog $2" + shift + shift + continue;; + + -o) chowncmd="$chownprog $2" + shift + shift + continue;; + + -g) chgrpcmd="$chgrpprog $2" + shift + shift + continue;; + + -s) stripcmd="$stripprog" + shift + continue;; + + -t=*) transformarg=`echo $1 | sed 's/-t=//'` + shift + continue;; + + -b=*) transformbasename=`echo $1 | sed 's/-b=//'` + shift + continue;; + + *) if [ x"$src" = x ] + then + src=$1 + else + # this colon is to work around a 386BSD /bin/sh bug + : + dst=$1 + fi + shift + continue;; + esac +done + +if [ x"$src" = x ] +then + echo "install: no input file specified" + exit 1 +else + true +fi + +if [ x"$dir_arg" != x ]; then + dst=$src + src="" + + if [ -d $dst ]; then + instcmd=: + else + instcmd=mkdir + fi +else + +# Waiting for this to be detected by the "$instcmd $src $dsttmp" command +# might cause directories to be created, which would be especially bad +# if $src (and thus $dsttmp) contains '*'. + + if [ -f $src -o -d $src ] + then + true + else + echo "install: $src does not exist" + exit 1 + fi + + if [ x"$dst" = x ] + then + echo "install: no destination specified" + exit 1 + else + true + fi + +# If destination is a directory, append the input filename; if your system +# does not like double slashes in filenames, you may need to add some logic + + if [ -d $dst ] + then + dst="$dst"/`basename $src` + else + true + fi +fi + +## this sed command emulates the dirname command +dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` + +# Make sure that the destination directory exists. +# this part is taken from Noah Friedman's mkinstalldirs script + +# Skip lots of stat calls in the usual case. +if [ ! -d "$dstdir" ]; then +defaultIFS=' +' +IFS="${IFS-${defaultIFS}}" + +oIFS="${IFS}" +# Some sh's can't handle IFS=/ for some reason. +IFS='%' +set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` +IFS="${oIFS}" + +pathcomp='' + +while [ $# -ne 0 ] ; do + pathcomp="${pathcomp}${1}" + shift + + if [ ! -d "${pathcomp}" ] ; + then + $mkdirprog "${pathcomp}" + else + true + fi + + pathcomp="${pathcomp}/" +done +fi + +if [ x"$dir_arg" != x ] +then + $doit $instcmd $dst && + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi +else + +# If we're going to rename the final executable, determine the name now. + + if [ x"$transformarg" = x ] + then + dstfile=`basename $dst` + else + dstfile=`basename $dst $transformbasename | + sed $transformarg`$transformbasename + fi + +# don't allow the sed command to completely eliminate the filename + + if [ x"$dstfile" = x ] + then + dstfile=`basename $dst` + else + true + fi + +# Make a temp file name in the proper directory. + + dsttmp=$dstdir/#inst.$$# + +# Move or copy the file name to the temp name + + $doit $instcmd $src $dsttmp && + + trap "rm -f ${dsttmp}" 0 && + +# and set any options; do chmod last to preserve setuid bits + +# If any of these fail, we abort the whole thing. If we want to +# ignore errors from any of these, just make sure not to ignore +# errors from the above "$doit $instcmd $src $dsttmp" command. + + if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && + if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && + if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && + if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && + +# Now rename the file to the real destination. + + $doit $rmcmd -f $dstdir/$dstfile && + $doit $mvcmd $dsttmp $dstdir/$dstfile + +fi && + + +exit 0 diff --git a/lists.c b/lists.c new file mode 100644 index 0000000..9f6d4b5 --- /dev/null +++ b/lists.c @@ -0,0 +1,149 @@ +/* + * lists.c -- Functions to implement a double linked list + * XBoard $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + * ------------------------------------------------------------------------ + * + * This file could well be a part of backend.c, but I prefer it this + * way. + */ + +#include "config.h" + +#include +#if STDC_HEADERS +# include +#endif /* not STDC_HEADERS */ + +#include "common.h" +#include "lists.h" + + + +/* Check, if List l is empty; returns TRUE, if it is, FALSE + * otherwise. + */ +int ListEmpty(l) + List *l; +{ + return(l->head == (ListNode *) &l->tail); +} + + +/* Initialize a list. Must be executed before list is used. + */ +void ListNew(l) + List *l; +{ + l->head = (ListNode *) &l->tail; + l->tail = NULL; + l->tailPred = (ListNode *) l; +} + + +/* Remove node n from the list it is inside. + */ +void ListRemove(n) + ListNode *n; +{ + if (n->succ != NULL) { /* Be safe */ + n->pred->succ = n->succ; + n->succ->pred = n->pred; + n->succ = NULL; /* Mark node as no longer being member */ + n->pred = NULL; /* of a list. */ + } +} + + +/* Delete node n. + */ +void ListNodeFree(n) + ListNode *n; +{ + if (n) { + ListRemove(n); + free(n); + } +} + + +/* Create a list node with size s. Returns NULL, if out of memory. + */ +ListNode *ListNodeCreate(s) + size_t s; +{ + ListNode *n; + + if ((n = (ListNode*) malloc(s))) { + n->succ = NULL; /* Mark node as not being member of a list. */ + n->pred = NULL; + } + return(n); +} + + +/* Insert node n into the list of node m after m. + */ +void ListInsert(m, n) + ListNode *m, *n; +{ + n->succ = m->succ; + n->pred = m; + m->succ = n; + n->succ->pred = n; +} + + +/* Add node n to the head of list l. + */ +void ListAddHead(l, n) + List *l; + ListNode *n; +{ + ListInsert((ListNode *) &l->head, n); +} + + +/* Add node n to the tail of list l. + */ +void ListAddTail(l, n) + List *l; + ListNode *n; +{ + ListInsert((ListNode *) l->tailPred, n); +} + + +/* Return element with number n of list l. (NULL, if n doesn't exist.) + * Counting starts with 0. + */ +ListNode *ListElem(l, n) + List *l; + int n; +{ + ListNode *ln; + + for (ln = l->head; ln->succ; ln = ln->succ) { + if (!n--) { + return (ln); + } + } + + return(NULL); +} diff --git a/lists.h b/lists.h new file mode 100644 index 0000000..780f6c2 --- /dev/null +++ b/lists.h @@ -0,0 +1,66 @@ +/* + * lists.c -- Includefile of lists.c + * XBoard $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + * ------------------------------------------------------------------------ + * + * This file could well be a part of backend.c, but I prefer it this + * way. + */ + +#ifndef _LISTS_H +#define _LISTS_H + + +/* Type definition: Node of a double linked list. + */ +typedef struct _ListNode { + struct _ListNode *succ; + struct _ListNode *pred; +} ListNode; + + +/* Type definition: Double linked list. + * + * The list structure consists of two ListNode's: The pred entry of + * the head being the succ entry of the tail. Thus a list is empty + * if and only if it consists of 2 nodes. :-) + */ +typedef struct { + struct _ListNode *head; /* The list structure consists of two */ + struct _ListNode *tail; /* ListNode's: The pred entry of the */ + struct _ListNode *tailPred; /* head being the succ entry of the */ +} List; /* tail. */ + + + +/* Function prototypes + */ +extern int ListEmpty P((List *)); +void ListNew P((List *)); +void ListRemove P((ListNode *)); +void ListNodeFree P((ListNode *)); +ListNode *ListNodeCreate P((size_t)); +void ListInsert P((ListNode *, ListNode *)); +void ListAddHead P((List *, ListNode *)); +void ListAddTail P((List *, ListNode *)); +ListNode *ListElem P((List *, int)); + + +#endif diff --git a/mkinstalldirs b/mkinstalldirs new file mode 100755 index 0000000..d0fd194 --- /dev/null +++ b/mkinstalldirs @@ -0,0 +1,40 @@ +#! /bin/sh +# mkinstalldirs --- make directory hierarchy +# Author: Noah Friedman +# Created: 1993-05-16 +# Public domain + +# $Id$ + +errstatus=0 + +for file +do + set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` + shift + + pathcomp= + for d + do + pathcomp="$pathcomp$d" + case "$pathcomp" in + -* ) pathcomp=./$pathcomp ;; + esac + + if test ! -d "$pathcomp"; then + echo "mkdir $pathcomp" 1>&2 + + mkdir "$pathcomp" || lasterr=$? + + if test ! -d "$pathcomp"; then + errstatus=$lasterr + fi + fi + + pathcomp="$pathcomp/" + done +done + +exit $errstatus + +# mkinstalldirs ends here diff --git a/moves.c b/moves.c new file mode 100644 index 0000000..bed2064 --- /dev/null +++ b/moves.c @@ -0,0 +1,978 @@ +/* + * moves.c - Move generation and checking + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include +#if HAVE_STRING_H +# include +#else /* not HAVE_STRING_H */ +# include +#endif /* not HAVE_STRING_H */ +#include "common.h" +#include "backend.h" +#include "moves.h" +#include "parser.h" + +int WhitePiece P((ChessSquare)); +int BlackPiece P((ChessSquare)); +int SameColor P((ChessSquare, ChessSquare)); + + +int WhitePiece(piece) + ChessSquare piece; +{ + return (int) piece >= (int) WhitePawn && (int) piece <= (int) WhiteKing; +} + +int BlackPiece(piece) + ChessSquare piece; +{ + return (int) piece >= (int) BlackPawn && (int) piece <= (int) BlackKing; +} + +int SameColor(piece1, piece2) + ChessSquare piece1, piece2; +{ + return ((int) piece1 >= (int) WhitePawn && + (int) piece1 <= (int) WhiteKing && + (int) piece2 >= (int) WhitePawn && + (int) piece2 <= (int) WhiteKing) + || ((int) piece1 >= (int) BlackPawn && + (int) piece1 <= (int) BlackKing && + (int) piece2 >= (int) BlackPawn && + (int) piece2 <= (int) BlackKing); +} + +ChessSquare PromoPiece(moveType) + ChessMove moveType; +{ + switch (moveType) { + default: + return EmptySquare; + case WhitePromotionQueen: + return WhiteQueen; + case BlackPromotionQueen: + return BlackQueen; + case WhitePromotionRook: + return WhiteRook; + case BlackPromotionRook: + return BlackRook; + case WhitePromotionBishop: + return WhiteBishop; + case BlackPromotionBishop: + return BlackBishop; + case WhitePromotionKnight: + return WhiteKnight; + case BlackPromotionKnight: + return BlackKnight; + case WhitePromotionKing: + return WhiteKing; + case BlackPromotionKing: + return BlackKing; + } +} + +ChessMove PromoCharToMoveType(whiteOnMove, promoChar) + int whiteOnMove; + int promoChar; +{ + if (whiteOnMove) { + switch (promoChar) { + case 'n': + case 'N': + return WhitePromotionKnight; + case 'b': + case 'B': + return WhitePromotionBishop; + case 'r': + case 'R': + return WhitePromotionRook; + case 'q': + case 'Q': + return WhitePromotionQueen; + case 'k': + case 'K': + return WhitePromotionKing; + case NULLCHAR: + default: + return NormalMove; + } + } else { + switch (promoChar) { + case 'n': + case 'N': + return BlackPromotionKnight; + case 'b': + case 'B': + return BlackPromotionBishop; + case 'r': + case 'R': + return BlackPromotionRook; + case 'q': + case 'Q': + return BlackPromotionQueen; + case 'k': + case 'K': + return BlackPromotionKing; + case NULLCHAR: + default: + return NormalMove; + } + } +} + +char pieceToChar[] = { + 'P', 'N', 'B', 'R', 'Q', 'K', + 'p', 'n', 'b', 'r', 'q', 'k', 'x' + }; + +char PieceToChar(p) + ChessSquare p; +{ + return pieceToChar[(int) p]; +} + +ChessSquare CharToPiece(c) + int c; +{ + switch (c) { + default: + case 'x': return EmptySquare; + case 'P': return WhitePawn; + case 'R': return WhiteRook; + case 'N': return WhiteKnight; + case 'B': return WhiteBishop; + case 'Q': return WhiteQueen; + case 'K': return WhiteKing; + case 'p': return BlackPawn; + case 'r': return BlackRook; + case 'n': return BlackKnight; + case 'b': return BlackBishop; + case 'q': return BlackQueen; + case 'k': return BlackKing; + } +} + +void CopyBoard(to, from) + Board to, from; +{ + int i, j; + + for (i = 0; i < BOARD_SIZE; i++) + for (j = 0; j < BOARD_SIZE; j++) + to[i][j] = from[i][j]; +} + +int CompareBoards(board1, board2) + Board board1, board2; +{ + int i, j; + + for (i = 0; i < BOARD_SIZE; i++) + for (j = 0; j < BOARD_SIZE; j++) { + if (board1[i][j] != board2[i][j]) + return FALSE; + } + return TRUE; +} + + +/* Call callback once for each pseudo-legal move in the given + position, except castling moves. A move is pseudo-legal if it is + legal, or if it would be legal except that it leaves the king in + check. In the arguments, epfile is EP_NONE if the previous move + was not a double pawn push, or the file 0..7 if it was, or + EP_UNKNOWN if we don't know and want to allow all e.p. captures. + Promotion moves generated are to Queen only. +*/ +void GenPseudoLegal(board, flags, epfile, callback, closure) + Board board; + int flags; + int epfile; + MoveCallback callback; + VOIDSTAR closure; +{ + int rf, ff; + int i, j, d, s, fs, rs, rt, ft; + + for (rf = 0; rf <= 7; rf++) + for (ff = 0; ff <= 7; ff++) { + if (flags & F_WHITE_ON_MOVE) { + if (!WhitePiece(board[rf][ff])) continue; + } else { + if (!BlackPiece(board[rf][ff])) continue; + } + switch (board[rf][ff]) { + case EmptySquare: + default: + /* can't happen */ + break; + + case WhitePawn: + if (rf < 7 && board[rf + 1][ff] == EmptySquare) { + callback(board, flags, + rf == 6 ? WhitePromotionQueen : NormalMove, + rf, ff, rf + 1, ff, closure); + } + if (rf == 1 && board[2][ff] == EmptySquare && + board[3][ff] == EmptySquare) { + callback(board, flags, NormalMove, + rf, ff, 3, ff, closure); + } + for (s = -1; s <= 1; s += 2) { + if (rf < 7 && ff + s >= 0 && ff + s <= 7 && + ((flags & F_KRIEGSPIEL_CAPTURE) || + BlackPiece(board[rf + 1][ff + s]))) { + callback(board, flags, + rf == 6 ? WhitePromotionQueen : NormalMove, + rf, ff, rf + 1, ff + s, closure); + } + if (rf == 4) { + if (ff + s >= 0 && ff + s <= 7 && + (epfile == ff + s || epfile == EP_UNKNOWN) && + board[4][ff + s] == BlackPawn && + board[5][ff + s] == EmptySquare) { + callback(board, flags, WhiteCapturesEnPassant, + rf, ff, 5, ff + s, closure); + } + } + } + break; + + case BlackPawn: + if (rf > 0 && board[rf - 1][ff] == EmptySquare) { + callback(board, flags, + rf == 1 ? BlackPromotionQueen : NormalMove, + rf, ff, rf - 1, ff, closure); + } + if (rf == 6 && board[5][ff] == EmptySquare && + board[4][ff] == EmptySquare) { + callback(board, flags, NormalMove, + rf, ff, 4, ff, closure); + } + for (s = -1; s <= 1; s += 2) { + if (rf > 0 && ff + s >= 0 && ff + s <= 7 && + ((flags & F_KRIEGSPIEL_CAPTURE) || + WhitePiece(board[rf - 1][ff + s]))) { + callback(board, flags, + rf == 1 ? BlackPromotionQueen : NormalMove, + rf, ff, rf - 1, ff + s, closure); + } + if (rf == 3) { + if (ff + s >= 0 && ff + s <= 7 && + (epfile == ff + s || epfile == EP_UNKNOWN) && + board[3][ff + s] == WhitePawn && + board[2][ff + s] == EmptySquare) { + callback(board, flags, BlackCapturesEnPassant, + rf, ff, 2, ff + s, closure); + } + } + } + break; + + case WhiteKnight: + case BlackKnight: + for (i = -1; i <= 1; i += 2) + for (j = -1; j <= 1; j += 2) + for (s = 1; s <= 2; s++) { + rt = rf + i*s; + ft = ff + j*(3-s); + if (rt < 0 || rt > 7 || ft < 0 || ft > 7) continue; + if (SameColor(board[rf][ff], board[rt][ft])) continue; + callback(board, flags, NormalMove, + rf, ff, rt, ft, closure); + } + break; + + case WhiteBishop: + case BlackBishop: + for (rs = -1; rs <= 1; rs += 2) + for (fs = -1; fs <= 1; fs += 2) + for (i = 1;; i++) { + rt = rf + (i * rs); + ft = ff + (i * fs); + if (rt < 0 || rt > 7 || ft < 0 || ft > 7) break; + if (SameColor(board[rf][ff], board[rt][ft])) break; + callback(board, flags, NormalMove, + rf, ff, rt, ft, closure); + if (board[rt][ft] != EmptySquare) break; + } + break; + + case WhiteRook: + case BlackRook: + for (d = 0; d <= 1; d++) + for (s = -1; s <= 1; s += 2) + for (i = 1;; i++) { + rt = rf + (i * s) * d; + ft = ff + (i * s) * (1 - d); + if (rt < 0 || rt > 7 || ft < 0 || ft > 7) break; + if (SameColor(board[rf][ff], board[rt][ft])) break; + callback(board, flags, NormalMove, + rf, ff, rt, ft, closure); + if (board[rt][ft] != EmptySquare) break; + } + break; + + case WhiteQueen: + case BlackQueen: + for (rs = -1; rs <= 1; rs++) + for (fs = -1; fs <= 1; fs++) { + if (rs == 0 && fs == 0) continue; + for (i = 1;; i++) { + rt = rf + (i * rs); + ft = ff + (i * fs); + if (rt < 0 || rt > 7 || ft < 0 || ft > 7) break; + if (SameColor(board[rf][ff], board[rt][ft])) break; + callback(board, flags, NormalMove, + rf, ff, rt, ft, closure); + if (board[rt][ft] != EmptySquare) break; + } + } + break; + + case WhiteKing: + case BlackKing: + for (i = -1; i <= 1; i++) + for (j = -1; j <= 1; j++) { + if (i == 0 && j == 0) continue; + rt = rf + i; + ft = ff + j; + if (rt < 0 || rt > 7 || ft < 0 || ft > 7) continue; + if (SameColor(board[rf][ff], board[rt][ft])) continue; + callback(board, flags, NormalMove, + rf, ff, rt, ft, closure); + } + break; + } + } +} + + +typedef struct { + MoveCallback cb; + VOIDSTAR cl; +} GenLegalClosure; + +extern void GenLegalCallback P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + +void GenLegalCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register GenLegalClosure *cl = (GenLegalClosure *) closure; + + if (!(flags & F_IGNORE_CHECK) && + CheckTest(board, flags, rf, ff, rt, ft, + kind == WhiteCapturesEnPassant || + kind == BlackCapturesEnPassant)) return; + if (flags & F_ATOMIC_CAPTURE) { + if (board[rt][ft] != EmptySquare || + kind == WhiteCapturesEnPassant || kind == BlackCapturesEnPassant) { + int r, f; + ChessSquare king = (flags & F_WHITE_ON_MOVE) ? WhiteKing : BlackKing; + if (board[rf][ff] == king) return; + for (r = rt-1; r <= rt+1; r++) { + for (f = ft-1; f <= ft+1; f++) { + if (r >= 0 && r <= 7 && f >= 0 && f <= 7 && + board[r][f] == king) return; + } + } + } + } + cl->cb(board, flags, kind, rf, ff, rt, ft, cl->cl); +} + + +/* Like GenPseudoLegal, but (1) include castling moves, (2) unless + F_IGNORE_CHECK is set in the flags, omit moves that would leave the + king in check, and (3) if F_ATOMIC_CAPTURE is set in the flags, omit + moves that would destroy your own king. The CASTLE_OK flags are + true if castling is not yet ruled out by a move of the king or + rook. Return TRUE if the player on move is currently in check and + F_IGNORE_CHECK is not set. */ +int GenLegal(board, flags, epfile, callback, closure) + Board board; + int flags; + int epfile; + MoveCallback callback; + VOIDSTAR closure; +{ + GenLegalClosure cl; + int ff; + int ignoreCheck = (flags & F_IGNORE_CHECK) != 0; + + cl.cb = callback; + cl.cl = closure; + GenPseudoLegal(board, flags, epfile, GenLegalCallback, (VOIDSTAR) &cl); + + if (!ignoreCheck && + CheckTest(board, flags, -1, -1, -1, -1, FALSE)) return TRUE; + + /* Generate castling moves */ + for (ff = 4; ff >= 3; ff-- /*ics wild 1*/) { + if ((flags & F_WHITE_ON_MOVE) && + (flags & F_WHITE_KCASTLE_OK) && + board[0][ff] == WhiteKing && + board[0][ff + 1] == EmptySquare && + board[0][ff + 2] == EmptySquare && + board[0][6] == EmptySquare && + board[0][7] == WhiteRook && + (ignoreCheck || + (!CheckTest(board, flags, 0, ff, 0, ff + 1, FALSE) && + !CheckTest(board, flags, 0, ff, 0, ff + 2, FALSE)))) { + + callback(board, flags, + ff==4 ? WhiteKingSideCastle : WhiteKingSideCastleWild, + 0, ff, 0, ff + 2, closure); + } + if ((flags & F_WHITE_ON_MOVE) && + (flags & F_WHITE_QCASTLE_OK) && + board[0][ff] == WhiteKing && + board[0][ff - 1] == EmptySquare && + board[0][ff - 2] == EmptySquare && + board[0][1] == EmptySquare && + board[0][0] == WhiteRook && + (ignoreCheck || + (!CheckTest(board, flags, 0, ff, 0, ff - 1, FALSE) && + !CheckTest(board, flags, 0, ff, 0, ff - 2, FALSE)))) { + + callback(board, flags, + ff==4 ? WhiteQueenSideCastle : WhiteQueenSideCastleWild, + 0, ff, 0, ff - 2, closure); + } + if (!(flags & F_WHITE_ON_MOVE) && + (flags & F_BLACK_KCASTLE_OK) && + board[7][ff] == BlackKing && + board[7][ff + 1] == EmptySquare && + board[7][ff + 2] == EmptySquare && + board[7][6] == EmptySquare && + board[7][7] == BlackRook && + (ignoreCheck || + (!CheckTest(board, flags, 7, ff, 7, ff + 1, FALSE) && + !CheckTest(board, flags, 7, ff, 7, ff + 2, FALSE)))) { + + callback(board, flags, + ff==4 ? BlackKingSideCastle : BlackKingSideCastleWild, + 7, ff, 7, ff + 2, closure); + } + if (!(flags & F_WHITE_ON_MOVE) && + (flags & F_BLACK_QCASTLE_OK) && + board[7][ff] == BlackKing && + board[7][ff - 1] == EmptySquare && + board[7][ff - 2] == EmptySquare && + board[7][1] == EmptySquare && + board[7][0] == BlackRook && + (ignoreCheck || + (!CheckTest(board, flags, 7, ff, 7, ff - 1, FALSE) && + !CheckTest(board, flags, 7, ff, 7, ff - 1, FALSE)))) { + + callback(board, flags, + ff==4 ? BlackQueenSideCastle : BlackQueenSideCastleWild, + 7, ff, 7, ff - 2, closure); + } + } + + return FALSE; +} + + +typedef struct { + int rking, fking; + int check; +} CheckTestClosure; + + +extern void CheckTestCallback P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + + +void CheckTestCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register CheckTestClosure *cl = (CheckTestClosure *) closure; + + if (rt == cl->rking && ft == cl->fking) cl->check++; +} + + +/* If the player on move were to move from (rf, ff) to (rt, ft), would + he leave himself in check? Or if rf == -1, is the player on move + in check now? enPassant must be TRUE if the indicated move is an + e.p. capture. The possibility of castling out of a check along the + back rank is not accounted for (i.e., we still return nonzero), as + this is illegal anyway. Return value is the number of times the + king is in check. */ +int CheckTest(board, flags, rf, ff, rt, ft, enPassant) + Board board; + int flags; + int rf, ff, rt, ft, enPassant; +{ + CheckTestClosure cl; + ChessSquare king = flags & F_WHITE_ON_MOVE ? WhiteKing : BlackKing; + ChessSquare captured = EmptySquare; + /* Suppress warnings on uninitialized variables */ + + if (rf >= 0) { + if (enPassant) { + captured = board[rf][ft]; + board[rf][ft] = EmptySquare; + } else { + captured = board[rt][ft]; + } + board[rt][ft] = board[rf][ff]; + board[rf][ff] = EmptySquare; + } + + /* For compatibility with ICS wild 9, we scan the board in the + order a1, a2, a3, ... b1, b2, ..., h8 to find the first king, + and we test only whether that one is in check. */ + cl.check = 0; + for (cl.fking = 0; cl.fking <= 7; cl.fking++) + for (cl.rking = 0; cl.rking <= 7; cl.rking++) { + if (board[cl.rking][cl.fking] == king) { + GenPseudoLegal(board, flags ^ F_WHITE_ON_MOVE, -1, + CheckTestCallback, (VOIDSTAR) &cl); + goto undo_move; /* 2-level break */ + } + } + + undo_move: + + if (rf >= 0) { + board[rf][ff] = board[rt][ft]; + if (enPassant) { + board[rf][ft] = captured; + board[rt][ft] = EmptySquare; + } else { + board[rt][ft] = captured; + } + } + + return cl.check; +} + + +typedef struct { + int rf, ff, rt, ft; + ChessMove kind; +} LegalityTestClosure; + +extern void LegalityTestCallback P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + +void LegalityTestCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register LegalityTestClosure *cl = (LegalityTestClosure *) closure; + + if (rf == cl->rf && ff == cl->ff && rt == cl->rt && ft == cl->ft) + cl->kind = kind; +} + +ChessMove LegalityTest(board, flags, epfile, rf, ff, rt, ft, promoChar) + Board board; + int flags, epfile; + int rf, ff, rt, ft, promoChar; +{ + LegalityTestClosure cl; + + cl.rf = rf; + cl.ff = ff; + cl.rt = rt; + cl.ft = ft; + cl.kind = IllegalMove; + GenLegal(board, flags, epfile, LegalityTestCallback, (VOIDSTAR) &cl); + if (promoChar != NULLCHAR && promoChar != 'x') { + if (cl.kind == WhitePromotionQueen || cl.kind == BlackPromotionQueen) { + cl.kind = + PromoCharToMoveType((flags & F_WHITE_ON_MOVE) != 0, promoChar); + } else { + cl.kind = IllegalMove; + } + } + return cl.kind; +} + +typedef struct { + int count; +} MateTestClosure; + +extern void MateTestCallback P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + +void MateTestCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register MateTestClosure *cl = (MateTestClosure *) closure; + + cl->count++; +} + +/* Return MT_NONE, MT_CHECK, MT_CHECKMATE, or MT_STALEMATE */ +int MateTest(board, flags, epfile) + Board board; + int flags, epfile; +{ + MateTestClosure cl; + int inCheck; + + cl.count = 0; + inCheck = GenLegal(board, flags, epfile, MateTestCallback, (VOIDSTAR) &cl); + if (cl.count > 0) { + return inCheck ? MT_CHECK : MT_NONE; + } else { + return inCheck ? MT_CHECKMATE : MT_STALEMATE; + } +} + + +extern void DisambiguateCallback P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + +void DisambiguateCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register DisambiguateClosure *cl = (DisambiguateClosure *) closure; + + if ((cl->pieceIn == EmptySquare || cl->pieceIn == board[rf][ff]) && + (cl->rfIn == -1 || cl->rfIn == rf) && + (cl->ffIn == -1 || cl->ffIn == ff) && + (cl->rtIn == -1 || cl->rtIn == rt) && + (cl->ftIn == -1 || cl->ftIn == ft)) { + + cl->count++; + cl->piece = board[rf][ff]; + cl->rf = rf; + cl->ff = ff; + cl->rt = rt; + cl->ft = ft; + cl->kind = kind; + } +} + +void Disambiguate(board, flags, epfile, closure) + Board board; + int flags, epfile; + DisambiguateClosure *closure; +{ + int illegal = 0; + closure->count = 0; + closure->rf = closure->ff = closure->rt = closure->ft = 0; + closure->kind = ImpossibleMove; + GenLegal(board, flags, epfile, DisambiguateCallback, (VOIDSTAR) closure); + if (closure->count == 0) { + /* See if it's an illegal move due to check */ + illegal = 1; + GenLegal(board, flags|F_IGNORE_CHECK, epfile, DisambiguateCallback, + (VOIDSTAR) closure); + if (closure->count == 0) { + /* No, it's not even that */ + return; + } + } + if (closure->promoCharIn != NULLCHAR && closure->promoCharIn != 'x') { + if (closure->kind == WhitePromotionQueen + || closure->kind == BlackPromotionQueen) { + closure->kind = + PromoCharToMoveType((flags & F_WHITE_ON_MOVE) != 0, + closure->promoCharIn); + } else { + closure->kind = IllegalMove; + } + } + closure->promoChar = ToLower(PieceToChar(PromoPiece(closure->kind))); + if (closure->promoChar == 'x') closure->promoChar = NULLCHAR; + if (closure->count > 1) { + closure->kind = AmbiguousMove; + } + if (illegal) { + /* Note: If more than one illegal move matches, but no legal + moves, we return IllegalMove, not AmbiguousMove. Caller + can look at closure->count to detect this. + */ + closure->kind = IllegalMove; + } +} + + +typedef struct { + /* Input */ + ChessSquare piece; + int rf, ff, rt, ft; + /* Output */ + ChessMove kind; + int rank; + int file; + int either; +} CoordsToAlgebraicClosure; + +extern void CoordsToAlgebraicCallback P((Board board, int flags, + ChessMove kind, int rf, int ff, + int rt, int ft, VOIDSTAR closure)); + +void CoordsToAlgebraicCallback(board, flags, kind, rf, ff, rt, ft, closure) + Board board; + int flags; + ChessMove kind; + int rf, ff, rt, ft; + VOIDSTAR closure; +{ + register CoordsToAlgebraicClosure *cl = + (CoordsToAlgebraicClosure *) closure; + + if (rt == cl->rt && ft == cl->ft && + board[rf][ff] == cl->piece) { + if (rf == cl->rf) { + if (ff == cl->ff) { + cl->kind = kind; /* this is the move we want */ + } else { + cl->file++; /* need file to rule out this move */ + } + } else { + if (ff == cl->ff) { + cl->rank++; /* need rank to rule out this move */ + } else { + cl->either++; /* rank or file will rule out this move */ + } + } + } +} + +/* Convert coordinates to normal algebraic notation. + promoChar must be NULLCHAR or 'x' if not a promotion. +*/ +ChessMove CoordsToAlgebraic(board, flags, epfile, + rf, ff, rt, ft, promoChar, out) + Board board; + int flags, epfile; + int rf, ff, rt, ft; + int promoChar; + char out[MOVE_LEN]; +{ + ChessSquare piece; + ChessMove kind; + char *outp = out; + CoordsToAlgebraicClosure cl; + + if (rf == DROP_RANK) { + /* Bughouse piece drop */ + *outp++ = ToUpper(PieceToChar((ChessSquare) ff)); + *outp++ = '@'; + *outp++ = ft + 'a'; + *outp++ = rt + '1'; + *outp = NULLCHAR; + return (flags & F_WHITE_ON_MOVE) ? WhiteDrop : BlackDrop; + } + + if (promoChar == 'x') promoChar = NULLCHAR; + piece = board[rf][ff]; + switch (piece) { + case WhitePawn: + case BlackPawn: + kind = LegalityTest(board, flags, epfile, rf, ff, rt, ft, promoChar); + if (kind == IllegalMove && !(flags&F_IGNORE_CHECK)) { + /* Keep short notation if move is illegal only because it + leaves the player in check, but still return IllegalMove */ + kind = LegalityTest(board, flags|F_IGNORE_CHECK, epfile, + rf, ff, rt, ft, promoChar); + if (kind == IllegalMove) break; + kind = IllegalMove; + } + /* Pawn move */ + *outp++ = ff + 'a'; + if (ff == ft) { + /* Non-capture; use style "e5" */ + *outp++ = rt + '1'; + } else { + /* Capture; use style "exd5" */ + *outp++ = 'x'; + *outp++ = ft + 'a'; + *outp++ = rt + '1'; + } + /* Use promotion suffix style "=Q" */ + if (promoChar != NULLCHAR && promoChar != 'x') { + *outp++ = '='; + *outp++ = ToUpper(promoChar); + } + *outp = NULLCHAR; + return kind; + + + case WhiteKing: + case BlackKing: + /* Test for castling or ICS wild castling */ + /* Use style "O-O" (oh-oh) for PGN compatibility */ + if (rf == rt && + rf == ((piece == WhiteKing) ? 0 : 7) && + ((ff == 4 && (ft == 2 || ft == 6)) || + (ff == 3 && (ft == 1 || ft == 5)))) { + switch (ft) { + case 1: + case 6: + strcpy(out, "O-O"); + break; + case 2: + case 5: + strcpy(out, "O-O-O"); + break; + } + /* This notation is always unambiguous, unless there are + kings on both the d and e files, with "wild castling" + possible for the king on the d file and normal castling + possible for the other. ICS rules for wild 9 + effectively make castling illegal for either king in + this situation. So I am not going to worry about it; + I'll just generate an ambiguous O-O in this case. + */ + return LegalityTest(board, flags, epfile, + rf, ff, rt, ft, promoChar); + } + /* else fall through */ + + default: + /* Piece move */ + cl.rf = rf; + cl.ff = ff; + cl.rt = rt; + cl.ft = ft; + cl.piece = piece; + cl.kind = IllegalMove; + cl.rank = cl.file = cl.either = 0; + GenLegal(board, flags, epfile, + CoordsToAlgebraicCallback, (VOIDSTAR) &cl); + + if (cl.kind == IllegalMove && !(flags&F_IGNORE_CHECK)) { + /* Generate pretty moves for moving into check, but + still return IllegalMove. + */ + GenLegal(board, flags|F_IGNORE_CHECK, epfile, + CoordsToAlgebraicCallback, (VOIDSTAR) &cl); + if (cl.kind == IllegalMove) break; + cl.kind = IllegalMove; + } + + /* Style is "Nf3" or "Nxf7" if this is unambiguous, + else "Ngf3" or "Ngxf7", + else "N1f3" or "N5xf7", + else "Ng1f3" or "Ng5xf7". + */ + *outp++ = ToUpper(PieceToChar(piece)); + + if (cl.file || (cl.either && !cl.rank)) { + *outp++ = ff + 'a'; + } + if (cl.rank) { + *outp++ = rf + '1'; + } + + if(board[rt][ft] != EmptySquare) + *outp++ = 'x'; + + *outp++ = ft + 'a'; + *outp++ = rt + '1'; + *outp = NULLCHAR; + return cl.kind; + + case EmptySquare: + /* Moving a nonexistent piece */ + break; + } + + /* Not a legal move, even ignoring check. + If there was a piece on the from square, + use style "Ng1g3" or "Ng1xe8"; + if there was a pawn or nothing (!), + use style "g1g3" or "g1xe8". Use "x" + if a piece was on the to square, even + a piece of the same color. + */ + outp = out; + if (piece != EmptySquare && piece != WhitePawn && piece != BlackPawn) { + *outp++ = ToUpper(PieceToChar(piece)); + } + *outp++ = ff + 'a'; + *outp++ = rf + '1'; + if (board[rt][ft] != EmptySquare) *outp++ = 'x'; + *outp++ = ft + 'a'; + *outp++ = rt + '1'; + /* Use promotion suffix style "=Q" */ + if (promoChar != NULLCHAR && promoChar != 'x') { + *outp++ = '='; + *outp++ = ToUpper(promoChar); + } + *outp = NULLCHAR; + + return IllegalMove; +} diff --git a/moves.h b/moves.h new file mode 100644 index 0000000..b1cf2ef --- /dev/null +++ b/moves.h @@ -0,0 +1,147 @@ +/* + * moves.h - Move generation and checking + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +extern ChessSquare PromoPiece P((ChessMove moveType)); +extern ChessMove PromoCharToMoveType P((int whiteOnMove, int promoChar)); +extern char PieceToChar P((ChessSquare p)); +extern ChessSquare CharToPiece P((int c)); + +extern void CopyBoard P((Board to, Board from)); +extern int CompareBoards P((Board board1, Board board2)); + +typedef void (*MoveCallback) P((Board board, int flags, ChessMove kind, + int rf, int ff, int rt, int ft, + VOIDSTAR closure)); + +/* Values for flags arguments */ +#define F_WHITE_ON_MOVE 1 +#define F_WHITE_KCASTLE_OK 2 +#define F_WHITE_QCASTLE_OK 4 +#define F_BLACK_KCASTLE_OK 8 +#define F_BLACK_QCASTLE_OK 16 +#define F_ALL_CASTLE_OK (F_WHITE_KCASTLE_OK | F_WHITE_QCASTLE_OK | \ + F_BLACK_KCASTLE_OK | F_BLACK_QCASTLE_OK) +#define F_IGNORE_CHECK 32 +#define F_KRIEGSPIEL_CAPTURE 64 /* pawns can try to capture invisible pieces */ +#define F_ATOMIC_CAPTURE 128 /* capturing piece explodes, destroying itself + and all non-pawns on adjacent squares; + destroying your own king is illegal */ + +/* Special epfile values */ +#define EP_NONE -1 +#define EP_UNKNOWN -2 + +/* Call callback once for each pseudo-legal move in the given + position, except castling moves. A move is pseudo-legal if it is + legal, or if it would be legal except that it leaves the king in + check. In the arguments, epfile is EP_NONE if the previous move + was not a double pawn push, or the file 0..7 if it was, or + EP_UNKNOWN if we don't know and want to allow all e.p. captures. + Promotion moves generated are to Queen only. +*/ +extern void GenPseudoLegal P((Board board, int flags, int epfile, + MoveCallback callback, VOIDSTAR closure)); + +/* Like GenPseudoLegal, but include castling moves and (unless + F_IGNORE_CHECK is set in the flags) omit moves that would leave the + king in check. The CASTLE_OK flags are true if castling is not yet + ruled out by a move of the king or rook. Return TRUE if the player + on move is currently in check and F_IGNORE_CHECK is not set. +*/ +extern int GenLegal P((Board board, int flags, int epfile, + MoveCallback callback, VOIDSTAR closure)); + +/* If the player on move were to move from (rf, ff) to (rt, ft), would + he leave himself in check? Or if rf == -1, is the player on move + in check now? enPassant must be TRUE if the indicated move is an + e.p. capture. The possibility of castling out of a check along the + back rank is not accounted for (i.e., we still return nonzero), as + this is illegal anyway. Return value is the number of times the + king is in check. */ +extern int CheckTest P((Board board, int flags, + int rf, int ff, int rt, int ft, int enPassant)); + +/* Is a move from (rf, ff) to (rt, ft) legal for the player whom the + flags say is on move? Other arguments as in GenPseudoLegal. + Returns the type of move made, taking promoChar into account. */ +extern ChessMove LegalityTest P((Board board, int flags, int epfile, + int rf, int ff, int rt, int ft, + int promoChar)); + +#define MT_NONE 0 +#define MT_CHECK 1 +#define MT_CHECKMATE 2 +#define MT_STALEMATE 3 + +/* Return MT_NONE, MT_CHECK, MT_CHECKMATE, or MT_STALEMATE */ +extern int MateTest P((Board board, int flags, int epfile)); + +typedef struct { + /* Input data */ + ChessSquare pieceIn; /* EmptySquare if unknown */ + int rfIn, ffIn, rtIn, ftIn; /* -1 if unknown */ + int promoCharIn; /* NULLCHAR if unknown */ + /* Output data for matched move */ + ChessMove kind; + ChessSquare piece; + int rf, ff, rt, ft; + int promoChar; /* 'q' if a promotion and promoCharIn was NULLCHAR */ + int count; /* Number of possibilities found */ +} DisambiguateClosure; + +/* Disambiguate a partially-known move */ +void Disambiguate P((Board board, int flags, int epfile, + DisambiguateClosure *closure)); + + +/* Convert coordinates to normal algebraic notation. + promoChar must be NULLCHAR or '.' if not a promotion. +*/ +ChessMove CoordsToAlgebraic P((Board board, int flags, int epfile, + int rf, int ff, int rt, int ft, + int promoChar, char out[MOVE_LEN])); diff --git a/parser.h b/parser.h new file mode 100644 index 0000000..dfc257a --- /dev/null +++ b/parser.h @@ -0,0 +1,59 @@ +/* + * parser.h -- Interface to XBoard move parser + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +extern void yynewfile P((FILE *f)); +extern void yynewstr P((char *s)); +extern int yylex P((void)); +extern ChessMove yylexstr P((int boardIndex, char *s)); +extern char currentMoveString[]; +extern int yyboardindex; +extern int yyskipmoves; /* If TRUE, all moves are reported as AmbiguousMove + instead of being disambiguated. */ +extern char *yy_text; /* Needed because yytext can be either a char[] + or a (non-constant) char* */ +extern int yyoffset P((void)); diff --git a/parser.l b/parser.l new file mode 100644 index 0000000..39264f5 --- /dev/null +++ b/parser.l @@ -0,0 +1,922 @@ +%a 10000 +%o 10000 +%e 2000 +%k 2500 +%p 7000 +%n 1000 +%{ +/* + * parser.l -- lex parser of algebraic chess moves for XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +/* This parser handles all forms of promotion. + * The parser resolves ambiguous moves by searching and check-testing. + * It also parses comments of the form [anything] or (anything). + */ + +#include "config.h" + +#define NO_CONSTRAINT -1 +#undef YYLMAX +#define YYLMAX 4096 +#define UNPUT_BUF_SIZE YYLMAX + +#ifdef FLEX_SCANNER +/* yytext is probably a char*, but could be a char[]. yy_text is set + in YY_DECL below, because if yytext is a char*, its value is not + constant. */ +char *yy_text; +#else /*!FLEX_SCANNER*/ +/* yytext is definitely a char[], so yy_text can be set here, statically. */ +char *yy_text = (char *) yytext; +#endif + +#ifdef FLEX_SCANNER +/* This is flex */ +#undef YY_INPUT +#define YY_INPUT(buf, result, max_size) my_yy_input(buf, &result, max_size) +#undef YY_DECL +#define YY_DECL \ + int _yylex YY_PROTO((void)); \ + int yylex YY_PROTO((void)) \ + { \ + int result = _yylex(); \ + yy_text = (char *) yytext; \ + return(result); \ + } \ + int _yylex YY_PROTO((void)) +#else +/* This is lex */ +#undef input +#undef output +#undef unput +#endif + +/* The includes must be here, below the #undef input */ + +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_UNISTD_H +# include +#endif + +#if defined(_amigados) +# include +# if HAVE_FCNTL_H +# include /* isatty() prototype */ +# endif /* HAVE_FCNTL_H */ +#endif /* defined(_amigados) */ + +#include "common.h" +#include "backend.h" +#include "frontend.h" +#include "parser.h" +#include "moves.h" + +extern int PosFlags P((int)); + +extern Board boards[MAX_MOVES]; +int yyboardindex; +int yyskipmoves = FALSE; +char currentMoveString[YYLMAX]; +#ifndef FLEX_SCANNER +char unputBuffer[UNPUT_BUF_SIZE]; +int unputCount = 0; +#endif + +#ifdef FLEX_SCANNER +void my_yy_input P((char *buf, int *result, int max_size)); +#else /*!FLEX_SCANNER*/ +static int input P((void)); +static void output P((int ch)); +static void unput P((int ch)); +int yylook P((void)); +int yyback P((int *, int)); +#endif +#undef yywrap +int yywrap P((void)); +extern void CopyBoard P((Board to, Board from)); + +%} +%% + +[RrBbNnQqKkPp][/]?[a-h][1-8][xX:-]?[a-h][1-8](=?\(?[RrBbNnQqKk]\)?)? { + /* + * Fully-qualified algebraic move, possibly with promotion + */ + int skip1 = 0, skip2 = 0; + ChessSquare piece; + ChessMove result; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove the / */ + if (yytext[1] == '/') skip1 = 1; + + /* remove the [xX:-] */ + if ((yytext[3+skip1] == 'x') || (yytext[3+skip1] == 'X') || + (yytext[3+skip1] == '-') || (yytext[3+skip1] == ':')) skip2 = 1; + + currentMoveString[0] = yytext[1+skip1]; + currentMoveString[1] = yytext[2+skip1]; + currentMoveString[2] = yytext[3+skip1+skip2]; + currentMoveString[3] = yytext[4+skip1+skip2]; + currentMoveString[4] = NULLCHAR; + + if (yyleng-skip1-skip2 > 5) { + if (yytext[yyleng-1] == ')') { + currentMoveString[4] = ToLower(yytext[yyleng-2]); + } else { + currentMoveString[4] = ToLower(yytext[yyleng-1]); + } + currentMoveString[5] = NULLCHAR; + } + + piece = boards[yyboardindex] + [currentMoveString[1] - '1'][currentMoveString[0] - 'a']; + if (ToLower(yytext[0]) != ToLower(PieceToChar(piece))) + return (int) IllegalMove; + + result = LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + currentMoveString[1] - '1', + currentMoveString[0] - 'a', + currentMoveString[3] - '1', + currentMoveString[2] - 'a', + currentMoveString[4]); + + if (currentMoveString[4] == NULLCHAR && + (result == WhitePromotionQueen || result == BlackPromotionQueen)) { + currentMoveString[4] = 'q'; + currentMoveString[5] = NULLCHAR; + } + + return (int) result; +} + +[a-h][1-8][xX:-]?[a-h][1-8](=?\(?[RrBbNnQqKk]\)?)? { + /* + * Simple algebraic move, possibly with promotion + */ + int skip = 0; + ChessMove result; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove the [xX:-] */ + if ((yytext[2] == 'x') || (yytext[2] == 'X') || + (yytext[2] == '-') || (yytext[2] == ':')) skip = 1; + + currentMoveString[0] = yytext[0]; + currentMoveString[1] = yytext[1]; + currentMoveString[2] = yytext[2+skip]; + currentMoveString[3] = yytext[3+skip]; + currentMoveString[4] = NULLCHAR; + + if (yyleng-skip > 4) { + if (yytext[yyleng-1] == ')') { + currentMoveString[4] = ToLower(yytext[yyleng-2]); + } else { + currentMoveString[4] = ToLower(yytext[yyleng-1]); + } + currentMoveString[5] = NULLCHAR; + } + + result = LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + currentMoveString[1] - '1', + currentMoveString[0] - 'a', + currentMoveString[3] - '1', + currentMoveString[2] - 'a', + currentMoveString[4]); + + if (currentMoveString[4] == NULLCHAR && + (result == WhitePromotionQueen || result == BlackPromotionQueen)) { + currentMoveString[4] = 'q'; + currentMoveString[5] = NULLCHAR; + } + + return (int) result; +} + +[a-h][1-8](=?\(?[RrBbNnQqKk]\)?)? { + /* + * Pawn move, possibly with promotion + */ + DisambiguateClosure cl; + int skip = 0; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove the =() */ + if (yytext[2] == '=') skip++; + if (yytext[2+skip] == '(') skip++; + + cl.pieceIn = WhiteOnMove(yyboardindex) ? WhitePawn : BlackPawn; + cl.rfIn = -1; + cl.ffIn = yytext[0] - 'a'; + cl.rtIn = yytext[1] - '1'; + cl.ftIn = yytext[0] - 'a'; + cl.promoCharIn = yytext[2+skip]; + Disambiguate(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, &cl); + + currentMoveString[0] = cl.ff + 'a'; + currentMoveString[1] = cl.rf + '1'; + currentMoveString[2] = cl.ft + 'a'; + currentMoveString[3] = cl.rt + '1'; + currentMoveString[4] = cl.promoChar; + currentMoveString[5] = NULLCHAR; + + return (int) cl.kind; +} + + +(ab|bc|cd|de|ef|fg|gh|hg|gf|fe|ed|dc|cb|ba|([a-h][xX:-][a-h]))(=?\(?[RrBbNnQqKk]\)?)?(ep|"e.p.")? { + /* + * Pawn capture, possibly with promotion, possibly ambiguous + */ + DisambiguateClosure cl; + int skip1 = 0, skip2 = 0; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove trailing ep or e.p. (nonstandard PGN) */ + if (yytext[yyleng-1] == 'p') { + yyleng -= 2; + yytext[yyleng] = NULLCHAR; + } else if (yytext[yyleng-1] == '.') { + yyleng -= 4; + yytext[yyleng] = NULLCHAR; + } + + /* remove the [xX:-] and =() */ + if ((yytext[1] == 'x') || (yytext[1] == 'X') + || (yytext[1] == ':') || (yytext[1] == '-')) skip1 = 1; + if (yytext[2+skip1] == '=') skip2++; + if (yytext[2+skip1+skip2] == '(') skip2++; + + cl.pieceIn = WhiteOnMove(yyboardindex) ? WhitePawn : BlackPawn; + cl.rfIn = -1; + cl.ffIn = yytext[0] - 'a'; + cl.rtIn = -1; + cl.ftIn = yytext[1+skip1] - 'a'; + cl.promoCharIn = yytext[2+skip1+skip2]; + Disambiguate(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, &cl); + + currentMoveString[0] = cl.ff + 'a'; + currentMoveString[1] = cl.rf + '1'; + currentMoveString[2] = cl.ft + 'a'; + currentMoveString[3] = cl.rt + '1'; + currentMoveString[4] = cl.promoChar; + currentMoveString[5] = NULLCHAR; + + return (int) cl.kind; +} + +[a-h][xX:]?[a-h][1-8](=?\(?[RrBbNnQqKk]\)?)?(ep|"e.p.")? { + /* + * unambiguously abbreviated Pawn capture, possibly with promotion + */ + int skip = 0; + ChessMove result; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove trailing ep or e.p. (nonstandard PGN) */ + if (yytext[yyleng-1] == 'p') { + yyleng -= 2; + yytext[yyleng] = NULLCHAR; + } else if (yytext[yyleng-1] == '.') { + yyleng -= 4; + yytext[yyleng] = NULLCHAR; + } + + /* remove the [xX:-] */ + if ((yytext[1] == 'x') || (yytext[1] == 'X') + || (yytext[1] == ':') || (yytext[1] == '-')) skip = 1; + + currentMoveString[0] = yytext[0]; + currentMoveString[2] = yytext[1+skip]; + currentMoveString[3] = yytext[2+skip]; + if (WhiteOnMove(yyboardindex)) { + if (yytext[2+skip] == '1') return (int) ImpossibleMove; + currentMoveString[1] = yytext[2+skip] - 1; + } else { + if (yytext[2+skip] == '8') return (int) ImpossibleMove; + currentMoveString[1] = yytext[2+skip] + 1; + } + if (yyleng-skip > 3) { + if (yytext[yyleng-1] == ')') + currentMoveString[4] = ToLower(yytext[yyleng-2]); + else + currentMoveString[4] = ToLower(yytext[yyleng-1]); + currentMoveString[5] = NULLCHAR; + } else { + currentMoveString[4] = NULLCHAR; + } + + result = LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + currentMoveString[1] - '1', + currentMoveString[0] - 'a', + currentMoveString[3] - '1', + currentMoveString[2] - 'a', + currentMoveString[4]); + + if (currentMoveString[4] == NULLCHAR && + (result == WhitePromotionQueen || result == BlackPromotionQueen)) { + currentMoveString[4] = 'q'; + currentMoveString[5] = NULLCHAR; + } + + if (result != IllegalMove) return (int) result; + + /* Special case: improperly written en passant capture */ + if (WhiteOnMove(yyboardindex)) { + if (currentMoveString[3] == '5') { + currentMoveString[1] = '5'; + currentMoveString[3] = '6'; + } else { + return (int) IllegalMove; + } + } else { + if (currentMoveString[3] == '4') { + currentMoveString[1] = '4'; + currentMoveString[3] = '3'; + } else { + return (int) IllegalMove; + } + } + + result = LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + currentMoveString[1] - '1', + currentMoveString[0] - 'a', + currentMoveString[3] - '1', + currentMoveString[2] - 'a', + currentMoveString[4]); + + if (result == WhiteCapturesEnPassant || result == BlackCapturesEnPassant) + return (int) result; + else + return (int) IllegalMove; +} + +[RrBbNnQqKk][xX:-]?[a-h][1-8] { + /* + * piece move, possibly ambiguous + */ + DisambiguateClosure cl; + int skip = 0; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove the [xX:-] */ + if ((yytext[1] == 'x') || (yytext[1] == 'X') + || (yytext[1] == ':') || (yytext[1] == '-')) skip = 1; + + if (WhiteOnMove(yyboardindex)) { + cl.pieceIn = CharToPiece(ToUpper(yytext[0])); + } else { + cl.pieceIn = CharToPiece(ToLower(yytext[0])); + } + cl.rfIn = -1; + cl.ffIn = -1; + cl.rtIn = yytext[2+skip] - '1'; + cl.ftIn = yytext[1+skip] - 'a'; + cl.promoCharIn = NULLCHAR; + Disambiguate(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, &cl); + + currentMoveString[0] = cl.ff + 'a'; + currentMoveString[1] = cl.rf + '1'; + currentMoveString[2] = cl.ft + 'a'; + currentMoveString[3] = cl.rt + '1'; + currentMoveString[4] = cl.promoChar; + currentMoveString[5] = NULLCHAR; + + return (int) cl.kind; +} + +[RrBbNnQqKk][a-h1-8][xX:-]?[a-h][1-8] { + /* + * piece move with rank or file disambiguator + */ + DisambiguateClosure cl; + int skip = 0; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + /* remove the [xX:-] */ + if ((yytext[2] == 'x') || (yytext[2] == 'X') + || (yytext[2] == ':') || (yytext[2] == '-')) skip = 1; + + if (WhiteOnMove(yyboardindex)) { + cl.pieceIn = CharToPiece(ToUpper(yytext[0])); + } else { + cl.pieceIn = CharToPiece(ToLower(yytext[0])); + } + if (isalpha(yytext[1])) { + cl.rfIn = -1; + cl.ffIn = yytext[1] - 'a'; + } else { + cl.rfIn = yytext[1] - '1'; + cl.ffIn = -1; + } + cl.rtIn = yytext[3+skip] - '1'; + cl.ftIn = yytext[2+skip] - 'a'; + cl.promoCharIn = NULLCHAR; + Disambiguate(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, &cl); + + currentMoveString[0] = cl.ff + 'a'; + currentMoveString[1] = cl.rf + '1'; + currentMoveString[2] = cl.ft + 'a'; + currentMoveString[3] = cl.rt + '1'; + currentMoveString[4] = cl.promoChar; + currentMoveString[5] = NULLCHAR; + + return (int) cl.kind; +} + +000|0-0-0|ooo|OOO|o-o-o|O-O-O { + int rf, ff, rt, ft; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + if (WhiteOnMove(yyboardindex)) { + if (boards[yyboardindex][0][3] == WhiteKing) { + /* ICS wild castling */ + strcpy(currentMoveString, "d1f1"); + rf = 0; + ff = 3; + rt = 0; + ft = 5; + } else { + strcpy(currentMoveString, "e1c1"); + rf = 0; + ff = 4; + rt = 0; + ft = 2; + } + } else{ + if (boards[yyboardindex][7][3] == BlackKing) { + /* ICS wild castling */ + strcpy(currentMoveString, "d8f8"); + rf = 7; + ff = 3; + rt = 7; + ft = 5; + } else { + strcpy(currentMoveString, "e8c8"); + rf = 7; + ff = 4; + rt = 7; + ft = 2; + } + } + return (int) LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + rf, ff, rt, ft, NULLCHAR); +} + +00|0-0|oo|OO|o-o|O-O { + int rf, ff, rt, ft; + + if (yyskipmoves) return (int) AmbiguousMove; /* not disambiguated */ + + if (WhiteOnMove(yyboardindex)) { + if (boards[yyboardindex][0][3] == WhiteKing) { + /* ICS wild castling */ + strcpy(currentMoveString, "d1b1"); + rf = 0; + ff = 3; + rt = 0; + ft = 1; + } else { + strcpy(currentMoveString, "e1g1"); + rf = 0; + ff = 4; + rt = 0; + ft = 6; + } + } else { + if (boards[yyboardindex][7][3] == BlackKing) { + /* ICS wild castling */ + strcpy(currentMoveString, "d8b8"); + rf = 7; + ff = 3; + rt = 7; + ft = 1; + } else { + strcpy(currentMoveString, "e8g8"); + rf = 7; + ff = 4; + rt = 7; + ft = 6; + } + } + return (int) LegalityTest(boards[yyboardindex], + PosFlags(yyboardindex), EP_UNKNOWN, + rf, ff, rt, ft, NULLCHAR); +} + +[PpNnBbRrQq]@[a-h][1-8] { + /* Bughouse piece drop. No legality checking for now. */ + currentMoveString[1] = '@'; + currentMoveString[2] = yytext[2]; + currentMoveString[3] = yytext[3]; + currentMoveString[4] = NULLCHAR; + if (WhiteOnMove(yyboardindex)) { + currentMoveString[0] = ToUpper(yytext[0]); + return (int) WhiteDrop; + } else { + currentMoveString[0] = ToLower(yytext[0]); + return (int) BlackDrop; + } +} + +[Rr]esign(s|ed)? { + if (WhiteOnMove(yyboardindex)) + return (int) BlackWins; + else + return (int) WhiteWins; +} + +(([Ww](hite)?)|([Bb](lack)?))" "(([Rr]esign)|([Ff]orfeit))(s|ed)? { + return (int) (ToUpper(yytext[0]) == 'W' ? BlackWins : WhiteWins); +} + +(([Ww](hite)?)|([Bb](lack)?))" "[Dd]isconnect(s|ed) { + return (int) GameUnfinished; +} + +[Ss]talemate { + return (int) GameIsDrawn; +} + +"+-+" { + return (int) GameIsDrawn; +} + +([Cc]heck)?[Mm]ate { + if (WhiteOnMove(yyboardindex)) + return (int) BlackWins; + else + return (int) WhiteWins; +} + +"++" { + if (WhiteOnMove(yyboardindex)) + return (int) BlackWins; + else + return (int) WhiteWins; +} + +[Dd]raw(n)?(" "by)?(" "[Rr]epetition)|(" "[Aa]gree(d|ment)) { + return (int) GameIsDrawn; +} + +[Dd]raw(n)?(" (".*")")? { + return (int) GameIsDrawn; +} + +(([Ww](hite)?)|([Bb](lack)?))" "([Mm]ate(s|ed)?)|([Ww][io]n(s)?.*) { + return (int) (ToUpper(yytext[0]) == 'W' ? WhiteWins : BlackWins); +} + +(([Ww](hite)?)|([Bb](lack)?))" "([Mm]ate(s|ed)?)|([Ll]os[tes]+.*) { + return (int) (ToUpper(yytext[0]) == 'W' ? BlackWins : WhiteWins); +} + +("{"[^\}\n]*"} ")?(1-0|"1 - 0"|"1/0"|"1 / 0"|"1:0"|"1 : 0")(" (".*")"|" {".*"}")? { + return (int) WhiteWins; +} + +("{"[^\}\n]*"} ")?(0-1|"0 - 1"|"0/1"|"0 / 1"|"0:1"|"0 : 1")(" (".*")"|" {".*"}")? { + return (int) BlackWins; +} + +("{"[^\}\n]*"} ")?("1/2"|"1 / 2")(" "?[-:]" "?("1/2"|"1 / 2"))?(" (".*")"|" {".*"}")? { + return (int) GameIsDrawn; +} + +("{"[^\}\n]*"} ")?"*"(" (".*")"|" {".*"}")? { + return (int) GameUnfinished; +} + +[1-9][0-9]*/"."?[ \t\n]*[a-hNnPpRrBQqKkOo] { + /* move numbers */ + if ((yyleng == 1) && (yytext[0] == '1')) + return (int) MoveNumberOne; +} + +\([0-9]+:[0-9][0-9](\.[0-9]+)?\)|\{[0-9]+:[0-9][0-9](\.[0-9]+)?\} { + /* elapsed time indication, e.g. (0:12) or {10:21.071} */ + return (int) ElapsedTime; +} + +"[--"[^\]]*"--]" { + /* position diagram enclosed in [-- --] */ + return (int) PositionDiagram; +} + +^"{--------------"\n[^\}]*\n"--------------}"$ { + /* position diagram enclosed in {-- --} */ + return (int) PositionDiagram; +} + +\[[ \t\n]*[A-Za-z0-9][A-Za-z0-9_+#=-]*[ \t\n]*\"[^"]*\"[ \t\n]*\] { + return (int) PGNTag; +} + +[Gg](nu|NU)" "?[Cc](hess|HESS).*[Gg](ame|AME) { + return (int) GNUChessGame; +} + +^[#;%]" "[^ ]*(" game file"|" position file").*$ { + return (int) XBoardGame; +} + +\$[0-9]+ { /* numeric annotation glyph */ + return (int) NAG; +} + +\{[^\}]*\} { /* anything in {} */ + return (int) Comment; +} + +;.*$ { /* ; to end of line */ + return (int) Comment; +} + +\[[^\]]*\] { /* anything in [] */ + return (int) Comment; +} + +\([^()]*(\([^()]*\)[^()]*)+[^()]*\) { /* nested () */ + return (int) Comment; +} + +\([^)][^)]+\) { /* >=2 chars in () */ + return (int) Comment; +} + +^[-a-zA-Z0-9]+:" ".*(\n[ \t]+.*)* { + /* Skip mail headers */ +} + +[a-zA-Z0-9'-]+ { + /* Skip random words */ +} + +.|\n { + /* Skip everything else */ +} + +%% + + +static char *StringToLex; + +#ifndef FLEX_SCANNER +static FILE *lexFP; + +static int input() +{ + int ret; + + if (StringToLex != NULL) { + ret = *StringToLex; + if (ret == NULLCHAR) + ret = EOF; + else + StringToLex++; + } else if (unputCount > 0) { + ret = unputBuffer[--unputCount]; + } else { + ret = fgetc(lexFP); + } + + if (ret == EOF) + return 0; + else + return ret; +} + +/* + * Return offset of next pattern within current file + */ +int yyoffset() +{ + int offset = ftell(lexFP) - unputCount; + + if (offset < 0) { + offset = 0; + } + return(offset); +} + +static void output(ch) + int ch; +{ + fprintf(stderr, "PARSER BUG: unmatched character '%c' (0%o)\n", + ch, ch); +} + +static void unput(ch) + int ch; +{ + if (ch == 0) return; + if (StringToLex != NULL) { + StringToLex--; + } else { + if (unputCount >= UNPUT_BUF_SIZE) + fprintf(stderr, "PARSER BUG: unput buffer overflow '%c' (0%o)\n", + ch, ch); + unputBuffer[unputCount++] = ch; + } +} + +/* Get ready to lex from a new file. Kludge below sticks + an artificial newline at the front of the file, which the + above grammar ignores, but which makes ^ at start of pattern + match at the real start of the file. +*/ +void yynewfile(f) + FILE *f; +{ + lexFP = f; + StringToLex = NULL; + unputCount = 0; + unput('\n'); /* kludge */ +} + +/* Get ready to lex from a string. ^ at start of pattern WON'T + match at the start of the string! +*/ +void yynewstr(s) + char *s; +{ + lexFP = NULL; + StringToLex = s; + unputCount = 0; +} +#endif /*!FLEX_SCANNER*/ + +#ifdef FLEX_SCANNER +void my_yy_input(buf, result, max_size) + char *buf; + int *result; + int max_size; +{ + int count; + + if (StringToLex != NULL) { + count = 0; + while (*StringToLex != NULLCHAR) { + *buf++ = *StringToLex++; + count++; + } + *result = count; + return; + } else { + count = fread(buf, 1, max_size, yyin); + if (count == 0) { + *result = YY_NULL; + } else { + *result = count; + } + return; + } +} + +static YY_BUFFER_STATE my_file_buffer = NULL; + +/* + Return offset of next pattern in the current file. +*/ +int yyoffset() +{ + int pos = yy_c_buf_p - yy_current_buffer->yy_ch_buf; + + return(ftell(yy_current_buffer->yy_input_file) - + yy_n_chars + pos); +} + + +void yynewstr(s) + char *s; +{ + if (my_file_buffer != NULL) + yy_delete_buffer(my_file_buffer); + StringToLex = s; + my_file_buffer = yy_create_buffer(stdin, YY_BUF_SIZE); + yy_switch_to_buffer(my_file_buffer); +} + +void yynewfile(f) + FILE *f; +{ + if (my_file_buffer != NULL) + yy_delete_buffer(my_file_buffer); + StringToLex = NULL; + my_file_buffer = yy_create_buffer(f, YY_BUF_SIZE); + yy_switch_to_buffer(my_file_buffer); +} +#endif /*FLEX_SCANNER*/ + +int yywrap() +{ + return TRUE; +} + +/* Parse a move from the given string s */ +/* ^ at start of pattern WON'T work here unless using flex */ +ChessMove yylexstr(boardIndex, s) + int boardIndex; + char *s; +{ + ChessMove ret; + char *oldStringToLex; +#ifdef FLEX_SCANNER + YY_BUFFER_STATE buffer, oldBuffer; +#endif + + yyboardindex = boardIndex; + oldStringToLex = StringToLex; + StringToLex = s; +#ifdef FLEX_SCANNER + buffer = yy_create_buffer(stdin, YY_BUF_SIZE); + oldBuffer = YY_CURRENT_BUFFER; + yy_switch_to_buffer(buffer); +#endif /*FLEX_SCANNER*/ + + ret = (ChessMove) yylex(); + +#ifdef FLEX_SCANNER + if (oldBuffer != NULL) + yy_switch_to_buffer(oldBuffer); + yy_delete_buffer(buffer); +#endif /*FLEX_SCANNER*/ + StringToLex = oldStringToLex; + + return ret; +} diff --git a/pgntags.c b/pgntags.c new file mode 100644 index 0000000..8a1f6b5 --- /dev/null +++ b/pgntags.c @@ -0,0 +1,262 @@ +/* + * pgntags.c -- Functions to manage PGN tags + * XBoard $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + * ------------------------------------------------------------------------ + * + * This file could well be a part of backend.c, but I prefer it this + * way. + */ + +#include "config.h" + +#include +#include +#include +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "parser.h" + +static char *PGNTagsStatic P((GameInfo *)); + + + +/* Parse PGN tags; returns 0 for success or error number + */ +int ParsePGNTag(tag, gameInfo) + char *tag; + GameInfo *gameInfo; +{ + char *name, *value, *p, *oldTags; + int len; + int success; + + name = tag; + while (!isalpha(*name) && !isdigit(*name)) { + name++; + } + p = name; + while (*p != ' ' && *p != '\t' && *p != '\n') { + p++; + } + *p = NULLCHAR; + value = strchr(p + 1, '"') + 1; + p = strrchr(value, '"'); + *p = NULLCHAR; + + if (StrCaseCmp(name, "Event") == 0) { + success = StrSavePtr(value, &gameInfo->event) != NULL; + } else if (StrCaseCmp(name, "Site") == 0) { + success = StrSavePtr(value, &gameInfo->site) != NULL; + } else if (StrCaseCmp(name, "Date") == 0) { + success = StrSavePtr(value, &gameInfo->date) != NULL; + } else if (StrCaseCmp(name, "Round") == 0) { + success = StrSavePtr(value, &gameInfo->round) != NULL; + } else if (StrCaseCmp(name, "White") == 0) { + success = StrSavePtr(value, &gameInfo->white) != NULL; + } else if (StrCaseCmp(name, "Black") == 0) { + success = StrSavePtr(value, &gameInfo->black) != NULL; + } + /* Fold together the various ways of denoting White/Black rating */ + else if ((StrCaseCmp(name, "WhiteElo")==0) || + (StrCaseCmp(name, "WhiteUSCF")==0) ) { + success = TRUE; + gameInfo->whiteRating = atoi( value ); + } else if ((StrCaseCmp(name, "BlackElo")==0) || + (StrCaseCmp(name, "BlackUSCF")==0)) { + success = TRUE; + gameInfo->blackRating = atoi( value ); + } + else if (StrCaseCmp(name, "Result") == 0) { + if (strcmp(value, "1-0") == 0) + gameInfo->result = WhiteWins; + else if (strcmp(value, "0-1") == 0) + gameInfo->result = BlackWins; + else if (strcmp(value, "1/2-1/2") == 0) + gameInfo->result = GameIsDrawn; + else + gameInfo->result = GameUnfinished; + success = TRUE; + } else if (StrCaseCmp(name, "FEN") == 0) { + success = StrSavePtr(value, &gameInfo->fen) != NULL; + } else if (StrCaseCmp(name, "SetUp") == 0) { + /* ignore on input; presence of FEN governs */ + success = TRUE; + } else if (StrCaseCmp(name, "Variant") == 0) { + /* xboard-defined extension */ + gameInfo->variant = StringToVariant(value); + success = TRUE; + } else { + if (gameInfo->extraTags == NULL) { + oldTags = ""; + } else { + oldTags = gameInfo->extraTags; + } + /* Buffer size includes 7 bytes of space for [ ""]\n\0 */ + len = strlen(oldTags) + strlen(value) + strlen(name) + 7; + if ((p = (char *) malloc(len)) != NULL) { + sprintf(p, "%s[%s \"%s\"]\n", oldTags, name, value); + if (gameInfo->extraTags != NULL) free(gameInfo->extraTags); + gameInfo->extraTags = p; + success = TRUE; + } else { + success = FALSE; + } + } + return(success ? 0 : ENOMEM); +} + + + +/* Return a static buffer with a game's data. + */ +static char *PGNTagsStatic(gameInfo) + GameInfo *gameInfo; +{ + static char buf[8192]; + char buf1[MSG_SIZ]; + + buf[0] = NULLCHAR; + + sprintf(buf1, "[Event \"%s\"]\n", + gameInfo->event ? gameInfo->event : "?"); + strcat(buf, buf1); + sprintf(buf1, "[Site \"%s\"]\n", + gameInfo->site ? gameInfo->site : "?"); + strcat(buf, buf1); + sprintf(buf1, "[Date \"%s\"]\n", + gameInfo->date ? gameInfo->date : "?"); + strcat(buf, buf1); + sprintf(buf1, "[Round \"%s\"]\n", + gameInfo->round ? gameInfo->round : "-"); + strcat(buf, buf1); + sprintf(buf1, "[White \"%s\"]\n", + gameInfo->white ? gameInfo->white : "?"); + strcat(buf, buf1); + sprintf(buf1, "[Black \"%s\"]\n", + gameInfo->black ? gameInfo->black : "?"); + strcat(buf, buf1); + sprintf(buf1, "[Result \"%s\"]\n", PGNResult(gameInfo->result)); + strcat(buf, buf1); + + if (gameInfo->whiteRating >= 0 ) { + sprintf(buf1, "[WhiteElo \"%d\"]\n", gameInfo->whiteRating ); + strcat(buf, buf1); + } + if ( gameInfo->blackRating >= 0 ) { + sprintf(buf1, "[BlackElo \"%d\"]\n", gameInfo->blackRating ); + strcat(buf, buf1); + } + if (gameInfo->timeControl != NULL) { + sprintf(buf1, "[TimeControl \"%s\"]\n", gameInfo->timeControl); + strcat(buf, buf1); + } + if (gameInfo->variant != VariantNormal) { + sprintf(buf1, "[Variant \"%s\"]\n", VariantName(gameInfo->variant)); + strcat(buf, buf1); + } + if (gameInfo->extraTags != NULL) { + strcat(buf, gameInfo->extraTags); + } + return buf; +} + + + +/* Print game info + */ +void PrintPGNTags(fp, gameInfo) + FILE *fp; + GameInfo *gameInfo; +{ + fprintf(fp, "%s", PGNTagsStatic(gameInfo)); +} + + +/* Return a non-static buffer with a games info. + */ +char *PGNTags(gameInfo) + GameInfo *gameInfo; +{ + return StrSave(PGNTagsStatic(gameInfo)); +} + + +/* Returns pointer to a static string with a result. + */ +char *PGNResult(result) + ChessMove result; +{ + switch (result) { + case GameUnfinished: + default: + return "*"; + case WhiteWins: + return "1-0"; + case BlackWins: + return "0-1"; + case GameIsDrawn: + return "1/2-1/2"; + } +} + +/* Returns 0 for success, nonzero for error */ +int +ReplaceTags(tags, gameInfo) + char *tags; + GameInfo *gameInfo; +{ + ChessMove moveType; + int err; + + ClearGameInfo(gameInfo); + yynewstr(tags); + for (;;) { + yyboardindex = 0; + moveType = (ChessMove) yylex(); + if (moveType == (ChessMove) 0) { + break; + } else if (moveType == PGNTag) { + err = ParsePGNTag(yy_text, gameInfo); + if (err != 0) return err; + } + } + /* just one problem...if there is a result in the new tags, + * DisplayMove() won't ever show it because ClearGameInfo() set + * gameInfo->resultDetails to NULL. So we must plug something in if there + * is a result. + */ + if (gameInfo->result != GameUnfinished) { + if (gameInfo->resultDetails) free(gameInfo->resultDetails); + gameInfo->resultDetails = strdup(""); + } + return 0; +} diff --git a/pixmaps/README.pixmaps b/pixmaps/README.pixmaps new file mode 100644 index 0000000..e2fb412 --- /dev/null +++ b/pixmaps/README.pixmaps @@ -0,0 +1,2 @@ +See ../bitmaps/README. These pixmaps were converted from the bitmaps there, +and the same notices apply. diff --git a/pixmaps/bdd108.xpm b/pixmaps/bdd108.xpm new file mode 100644 index 0000000..1c4a47d --- /dev/null +++ b/pixmaps/bdd108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *bdd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................... ................................................", +".............................................. ...............................................", +".............................................. ...............................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................... ................................................", +"............................................... ................................................", +"................................................ .................................................", +"................................................. ..................................................", +".................................................. ...................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................. ..............................................", +"............................................ .............................................", +"........................................... ............................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"............................... X ................................", +"............................... XXX ................................", +".............................. XXX ...............................", +"............................. XXX ..............................", +"............................. XXX ..............................", +"............................ XXX .............................", +"............................ XXX .............................", +"............................ XXX .............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"............................ XXX .............................", +"............................ XXX .............................", +"............................ X .............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +".............................. ...............................", +".............................. ...............................", +"............................... ................................", +"................................ .................................", +"................................ .................................", +"................................. XXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXX XXXXXX .....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXX XXXXXXXXXX ..................................", +"................................ X X .................................", +"................................ .................................", +"................................ .................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"................................. ..................................", +"..................................... ......................................", +"............................................ .............................................", +"................................................. .................................................", +"............................................... ...............................................", +"............................................. .............................................", +"........................................... ...........................................", +".................. ...................", +".............. ...............", +"........... ............", +"......... ..........", +"........ .........", +"........ . .........", +"......... ..... ..........", +"......... ......... ..........", +".......... ............... ...........", +"........... ............. ..................... ............. ............", +"............ ........................................................................... .............", +"............ ............................................................................... .............", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/bdd116.xpm b/pixmaps/bdd116.xpm new file mode 100644 index 0000000..4696871 --- /dev/null +++ b/pixmaps/bdd116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *bdd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"........................................... ............................................", +".......................................... ...........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +".................................. X ...................................", +"................................. XXX ..................................", +"................................. XXX ..................................", +"................................ XXX .................................", +"................................ XXX .................................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... XXX ................................", +".............................. XXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... X ................................", +"................................ .................................", +"................................ .................................", +"................................. ..................................", +"................................. ..................................", +".................................. ...................................", +".................................. ...................................", +"................................... ....................................", +"................................... ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXX XXXXXX ........................................", +"....................................... ........................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXX XXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +"................................. ..................................", +".................................. ...................................", +".................................... .....................................", +"......................................... ..........................................", +"................................................ .................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +".............................................. ...............................................", +"....................... ..... ..... ........................", +".................. ...................", +"............... ................", +"............. ..............", +"........... ............", +".......... . ...........", +".......... ..... ...........", +"........... ....... ............", +"........... ........... ............", +"............ ................. .............", +"............. ............. ....................... ............. ..............", +"............. ............................................................................. ..............", +".............. ................................................................................... ...............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/bdd129.xpm b/pixmaps/bdd129.xpm new file mode 100644 index 0000000..71b7bec --- /dev/null +++ b/pixmaps/bdd129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *bdd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"......................................................... ..........................................................", +".......................................................... ...........................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................. ..................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"........................................... ............................................", +".......................................... ...........................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... XX ......................................", +"..................................... XXXX ......................................", +".................................... XXXX .....................................", +".................................... XXXX .....................................", +"................................... XXXX ....................................", +"................................... XXXX ....................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +"................................. XXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XX ...................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................... .....................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"...................................... .......................................", +"....................................... ........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXX XXX ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"........................................ .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXX XXXXXXXXXXX .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"........................................ .........................................", +".............................................. ...............................................", +"..................................................... ......................................................", +".......................................................... ...........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +"..................... ............. ............. ......................", +"................. ..................", +".............. ...............", +"............ .............", +".......... ...........", +"......... ..........", +"......... ..........", +"......... ..........", +".......... .. ...........", +"........... ...... ............", +"........... .......... ............", +"............ .............. .............", +"............. .................. ..............", +".............. .............. .......................... .............. ...............", +".............. ........................................................................................ ...............", +"............... ............................................................................................ ................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/bdd21.xpm b/pixmaps/bdd21.xpm new file mode 100644 index 0000000..890d08a --- /dev/null +++ b/pixmaps/bdd21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *bdd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"......... .........", +"........ ........", +"....... .......", +"...... ......", +"..... X .....", +"..... X .....", +"..... XXXXX .....", +"..... X .....", +"..... X .....", +"...... ......", +"....... XXXXX .......", +"...... ......", +"...... XXXXXXX ......", +"...... ......", +".. ... ... ..", +". . . .", +". . .", +".. ... ..", +"....................." +}; diff --git a/pixmaps/bdd25.xpm b/pixmaps/bdd25.xpm new file mode 100644 index 0000000..058fbe4 --- /dev/null +++ b/pixmaps/bdd25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *bdd25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +"........ ........", +"....... .......", +"...... X ......", +"...... X ......", +"...... XXXXX ......", +"...... X ......", +"...... X ......", +"....... .......", +"........ XXXXX ........", +"........ ........", +"........ XXXXXXX ........", +"....... .......", +"........ ........", +"........... ...........", +".. ..", +".. ..", +"... . ...", +"... .... ..... .... ...", +"........................." +}; diff --git a/pixmaps/bdd29.xpm b/pixmaps/bdd29.xpm new file mode 100644 index 0000000..99e5410 --- /dev/null +++ b/pixmaps/bdd29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *bdd29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +"............. .............", +"............ ............", +"............ ............", +"............. .............", +"............ ............", +".......... ..........", +"......... .........", +"........ X ........", +"....... X .......", +"....... XXXXX .......", +"....... X .......", +"....... X .......", +"........ ........", +"........ ........", +"......... XXXXXXX .........", +".......... X X ..........", +"......... .........", +"......... XXXXXXXXX .........", +"........ ........", +".......... ..........", +"............ ............", +"... ...", +".. ..", +"... . ...", +"... . ..... . ...", +".............................", +"............................." +}; diff --git a/pixmaps/bdd33.xpm b/pixmaps/bdd33.xpm new file mode 100644 index 0000000..5c8e9ca --- /dev/null +++ b/pixmaps/bdd33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *bdd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. ..............", +".............. ..............", +"............... ...............", +"............... ...............", +"............. .............", +"............ ............", +"........... ...........", +".......... X ..........", +".......... X ..........", +"......... X .........", +"......... XXXXXXX .........", +"......... X .........", +"......... X .........", +"......... .........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXX ...........", +"........... ...........", +".......... XXXXX ..........", +".......... XXXX XXXX ..........", +".......... ..........", +"........... ...........", +".............. ..............", +".... ....", +"... ...", +"... . ...", +".... ..... ....", +".... ....................... ....", +".................................", +"................................." +}; diff --git a/pixmaps/bdd37.xpm b/pixmaps/bdd37.xpm new file mode 100644 index 0000000..11e22e3 --- /dev/null +++ b/pixmaps/bdd37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *bdd37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................. .................", +"................ ................", +".............. ..............", +"............. .............", +"............ ............", +"........... ...........", +"........... X ...........", +".......... X ..........", +".......... XXXXXXX ..........", +".......... X ..........", +".......... X ..........", +".......... X ..........", +"........... ...........", +"........... ...........", +"............ ............", +"............ XXXXXXXXX ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXX ............", +"........... ...........", +"........... ...........", +"............. .............", +"................ .................", +"........ .... .... ........", +".... ....", +"... . ...", +".... ..... ....", +".... ......................... ....", +".....................................", +"....................................." +}; diff --git a/pixmaps/bdd40.xpm b/pixmaps/bdd40.xpm new file mode 100644 index 0000000..e0727f3 --- /dev/null +++ b/pixmaps/bdd40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *bdd40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"................... ..................", +".................. .................", +".................. .................", +".................. .................", +"................... ..................", +"................... ..................", +".................. .................", +"................ ...............", +"............... ..............", +".............. .............", +"............. ............", +"............ X ...........", +"............ X ...........", +"........... X ..........", +"........... XXXXXXX ..........", +"........... X ..........", +"........... X ..........", +"........... X ..........", +"............ ...........", +"............ ...........", +"............. ............", +"............. XXXXXXX ............", +".............. XXXX XXXX .............", +"............. ............", +"............. ............", +"............. XXXXXXXXXXXXX ............", +"............ ...........", +"............ ...........", +"............... ..............", +"................... ..................", +"................. ................", +"...... .....", +".... ...", +"... . ..", +".... ..... ...", +"..... ............................. ....", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/bdd45.xpm b/pixmaps/bdd45.xpm new file mode 100644 index 0000000..cdcefb9 --- /dev/null +++ b/pixmaps/bdd45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *bdd45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............ X ............", +"............ X ............", +"........... X ...........", +"........... XXXXXXXXX ...........", +"........... X ...........", +"........... X ...........", +"........... X ...........", +"........... X ...........", +"............ ............", +"............ ............", +"............. .............", +".............. ..............", +".............. XXXXXXXXXXX ..............", +"............... ...............", +"............... ...............", +".............. ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. X X ..............", +"............. .............", +"............. .............", +"................ ................", +".................... ....................", +".................. ..................", +"....... .......", +".... . ....", +"... ..... ...", +"... ....... ...", +".... ................................. ....", +".............................................", +"............................................." +}; diff --git a/pixmaps/bdd49.xpm b/pixmaps/bdd49.xpm new file mode 100644 index 0000000..6ee6307 --- /dev/null +++ b/pixmaps/bdd49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *bdd49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +"....................... .......................", +"...................... ......................", +".................... ....................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +"............. X .............", +"............. X .............", +"............ X ............", +"............ X ............", +"............ XXXXXXXXX ............", +"............ X ............", +"............ X ............", +"............ X ............", +"............ X ............", +"............. .............", +"............. .............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXX ...............", +"................ X X ................", +"................ ................", +"................ ................", +"............... ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".................. ..................", +"...................... ......................", +".................... ....................", +"........ ........", +"..... . .....", +".... ..... ....", +".... ......... ....", +".... ................................. ....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/bdd54.xpm b/pixmaps/bdd54.xpm new file mode 100644 index 0000000..0dcec7e --- /dev/null +++ b/pixmaps/bdd54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *bdd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"............... XX ...............", +"............... XX ...............", +".............. XX ..............", +".............. XX ..............", +".............. XXXXXXXXXX ..............", +".............. XXXXXXXXXX ..............", +".............. XX ..............", +".............. XX ..............", +".............. XX ..............", +".............. XX ..............", +"............... ...............", +"............... ...............", +"............... ...............", +"................ XXXXXXXXXX ................", +"................. XXXXXXXXXXXXXX .................", +".................. XXX XXX ..................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"............... ...............", +"................ ................", +".................... ....................", +"....................... .......................", +"....... . . .......", +"..... .....", +".... ....", +"..... .....", +"..... .. .....", +"...... .... ......", +"....... ....... ........ ....... .......", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/bdd58.xpm b/pixmaps/bdd58.xpm new file mode 100644 index 0000000..0b57c28 --- /dev/null +++ b/pixmaps/bdd58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *bdd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"..................... .....................", +".................... ....................", +"................... ...................", +".................. ..................", +"................. XX .................", +"................ XX ................", +"................ XX ................", +"............... XX ...............", +"............... XXXXXXXXXX ...............", +"............... XXXXXXXXXX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"................ ................", +"................ ................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"...................... ......................", +"......................... .........................", +".......... ....... ....... ..........", +"...... ......", +"..... .....", +"..... .....", +"...... .. ......", +"...... ...... ......", +"....... ....... .......... ....... .......", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/bdd64.xpm b/pixmaps/bdd64.xpm new file mode 100644 index 0000000..5f9694b --- /dev/null +++ b/pixmaps/bdd64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *bdd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... XX ...................", +".................. XX ..................", +".................. XX ..................", +"................. XX .................", +"................. XX .................", +"................. XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX .................", +"................. XX .................", +"................. XX .................", +"................. XX .................", +"................. XX .................", +".................. XX ..................", +".................. ..................", +".................. ..................", +"................... ...................", +"................... ...................", +".................... XXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXX .....................", +"..................... X X .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................... ....................", +"......................... .........................", +"............................. .............................", +"........................... ...........................", +"........... ...... ...... ...........", +"........ ........", +"...... ......", +"..... .....", +"...... .. ......", +"....... ...... .......", +"....... ........ .......... ........ .......", +"........ .............................................. ........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/bdd72.xpm b/pixmaps/bdd72.xpm new file mode 100644 index 0000000..1a902fe --- /dev/null +++ b/pixmaps/bdd72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *bdd72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +".................................. ..................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"................................ ................................", +"................................. .................................", +"................................ ................................", +"............................... ...............................", +"............................. .............................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +".................... XX ....................", +".................... XX ....................", +"................... XX ...................", +"................... XX ...................", +".................. XX ..................", +".................. XX ..................", +".................. XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +".................... ....................", +"..................... .....................", +"...................... XXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXX XXXX .......................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"...................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXX XXX .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +"...................... ......................", +"............................ ............................", +".................................. .................................", +"................................. ................................", +"............................... ..............................", +"............. ..... ...... .............", +"......... .........", +"...... ......", +".... .. ....", +"..... .... .....", +"..... ........ .....", +"...... .............. ......", +"....... .................................................. .......", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/bdd80.xpm b/pixmaps/bdd80.xpm new file mode 100644 index 0000000..765f9df --- /dev/null +++ b/pixmaps/bdd80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *bdd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................... ....................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... XX .......................", +"....................... XX .......................", +"...................... XX ......................", +"...................... XX ......................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"...................... XX ......................", +"...................... ......................", +"...................... ......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... XXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXX XXXX ...........................", +"........................... ...........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXX XXXXXX ........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +"................................ ................................", +".................................... ....................................", +".................................. ..................................", +"................................ ................................", +".............. ..............", +".......... ..........", +"........ ........", +"....... .......", +"...... .. ......", +"....... ...... .......", +"....... ............ .......", +"........ ......... .................. ......... ........", +"......... ........................................................ .........", +".......... .......................................................... ..........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/bdd87.xpm b/pixmaps/bdd87.xpm new file mode 100644 index 0000000..edb2a80 --- /dev/null +++ b/pixmaps/bdd87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *bdd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"...................................... ......................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"...................................... ......................................", +"...................................... ......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... X .........................", +"......................... XXX .........................", +"........................ XXX ........................", +"........................ XXX ........................", +"....................... XXX .......................", +"....................... XXX .......................", +"...................... XXX ......................", +"...................... XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"....................... XXX .......................", +"....................... XXX .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................... XXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXX ............................", +"............................. X X .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"........................... XXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXX XXXXXXX ..........................", +".......................... ..........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"............................. .............................", +"................................... ...................................", +"....................................... ......................................", +"..................................... ....................................", +"............. .......... ......... .............", +".......... ..........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"......... . .........", +"......... ..... .........", +".......... ......... ..........", +"........... .......... ............... .......... ...........", +"............ ............................................................. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/bdd95.xpm b/pixmaps/bdd95.xpm new file mode 100644 index 0000000..96c104c --- /dev/null +++ b/pixmaps/bdd95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *bdd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"........................................... ...........................................", +"............................................ ............................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +"............................... ...............................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... XXX ...........................", +"........................... XXX ...........................", +".......................... XXX ..........................", +".......................... XXX ..........................", +"......................... XXX .........................", +"......................... XXX .........................", +"........................ XXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"......................... XXX .........................", +"......................... XXX .........................", +"......................... XXX .........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"............................ ............................", +"............................. .............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXX XXXXX .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"................................ ................................", +"....................................... .......................................", +".......................................... ..........................................", +"........................................ ........................................", +"...................................... ......................................", +"............... ...............", +"............ ............", +".......... ..........", +"........ ........", +"....... .......", +"........ ........", +"......... . .........", +"......... ..... .........", +".......... ........... ..........", +"........... ........... ................. ........... ...........", +"............ ................................................................. ............", +"............ ..................................................................... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/bdl108.xpm b/pixmaps/bdl108.xpm new file mode 100644 index 0000000..d8a168b --- /dev/null +++ b/pixmaps/bdl108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *bdl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................... ................................................", +".............................................. ...............................................", +".............................................. ...............................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................... ................................................", +"............................................... ................................................", +"................................................ .................................................", +"................................................. ..................................................", +".................................................. ...................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................. ..............................................", +"............................................ .............................................", +"........................................... ............................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"............................... X ................................", +"............................... XXX ................................", +".............................. XXX ...............................", +"............................. XXX ..............................", +"............................. XXX ..............................", +"............................ XXX .............................", +"............................ XXX .............................", +"............................ XXX .............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"........................... XXX ............................", +"............................ XXX .............................", +"............................ XXX .............................", +"............................ X .............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +".............................. ...............................", +".............................. ...............................", +"............................... ................................", +"................................ .................................", +"................................ .................................", +"................................. XXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXX XXXXXX .....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXX XXXXXXXXXX ..................................", +"................................ X X .................................", +"................................ .................................", +"................................ .................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"................................. ..................................", +"..................................... ......................................", +"............................................ .............................................", +"................................................. .................................................", +"............................................... ...............................................", +"............................................. .............................................", +"........................................... ...........................................", +".................. ...................", +".............. ...............", +"........... ............", +"......... ..........", +"........ .........", +"........ . .........", +"......... ..... ..........", +"......... ......... ..........", +".......... ............... ...........", +"........... ............. ..................... ............. ............", +"............ ........................................................................... .............", +"............ ............................................................................... .............", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/bdl116.xpm b/pixmaps/bdl116.xpm new file mode 100644 index 0000000..68b4f86 --- /dev/null +++ b/pixmaps/bdl116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *bdl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"........................................... ............................................", +".......................................... ...........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +".................................. X ...................................", +"................................. XXX ..................................", +"................................. XXX ..................................", +"................................ XXX .................................", +"................................ XXX .................................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... XXX ................................", +".............................. XXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +".............................. XXX ...............................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... XXX ................................", +"............................... X ................................", +"................................ .................................", +"................................ .................................", +"................................. ..................................", +"................................. ..................................", +".................................. ...................................", +".................................. ...................................", +"................................... ....................................", +"................................... ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXX XXXXXX ........................................", +"....................................... ........................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXX XXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +"................................. ..................................", +".................................. ...................................", +".................................... .....................................", +"......................................... ..........................................", +"................................................ .................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +".............................................. ...............................................", +"....................... ..... ..... ........................", +".................. ...................", +"............... ................", +"............. ..............", +"........... ............", +".......... . ...........", +".......... ..... ...........", +"........... ....... ............", +"........... ........... ............", +"............ ................. .............", +"............. ............. ....................... ............. ..............", +"............. ............................................................................. ..............", +".............. ................................................................................... ...............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/bdl129.xpm b/pixmaps/bdl129.xpm new file mode 100644 index 0000000..0b60c68 --- /dev/null +++ b/pixmaps/bdl129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *bdl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"......................................................... ..........................................................", +".......................................................... ...........................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................. ..................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"........................................... ............................................", +".......................................... ...........................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... XX ......................................", +"..................................... XXXX ......................................", +".................................... XXXX .....................................", +".................................... XXXX .....................................", +"................................... XXXX ....................................", +"................................... XXXX ....................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +"................................. XXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +"................................. XXXX ..................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XXXX ...................................", +".................................. XX ...................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................... .....................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"...................................... .......................................", +"....................................... ........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXX XXX ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"........................................ .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXX XXXXXXXXXXX .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"........................................ .........................................", +".............................................. ...............................................", +"..................................................... ......................................................", +".......................................................... ...........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +"..................... ............. ............. ......................", +"................. ..................", +".............. ...............", +"............ .............", +".......... ...........", +"......... ..........", +"......... ..........", +"......... ..........", +".......... .. ...........", +"........... ...... ............", +"........... .......... ............", +"............ .............. .............", +"............. .................. ..............", +".............. .............. .......................... .............. ...............", +".............. ........................................................................................ ...............", +"............... ............................................................................................ ................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/bdl21.xpm b/pixmaps/bdl21.xpm new file mode 100644 index 0000000..af76752 --- /dev/null +++ b/pixmaps/bdl21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *bdl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"......... .........", +"........ ........", +"....... .......", +"...... ......", +"..... X .....", +"..... X .....", +"..... XXXXX .....", +"..... X .....", +"..... X .....", +"...... ......", +"....... XXXXX .......", +"...... ......", +"...... XXXXXXX ......", +"...... ......", +".. ... ... ..", +". . . .", +". . .", +".. ... ..", +"....................." +}; diff --git a/pixmaps/bdl25.xpm b/pixmaps/bdl25.xpm new file mode 100644 index 0000000..93dfefa --- /dev/null +++ b/pixmaps/bdl25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *bdl25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +"........ ........", +"....... .......", +"...... X ......", +"...... X ......", +"...... XXXXX ......", +"...... X ......", +"...... X ......", +"....... .......", +"........ XXXXX ........", +"........ ........", +"........ XXXXXXX ........", +"....... .......", +"........ ........", +"........... ...........", +".. ..", +".. ..", +"... . ...", +"... .... ..... .... ...", +"........................." +}; diff --git a/pixmaps/bdl29.xpm b/pixmaps/bdl29.xpm new file mode 100644 index 0000000..730a604 --- /dev/null +++ b/pixmaps/bdl29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *bdl29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +"............. .............", +"............ ............", +"............ ............", +"............. .............", +"............ ............", +".......... ..........", +"......... .........", +"........ X ........", +"....... X .......", +"....... XXXXX .......", +"....... X .......", +"....... X .......", +"........ ........", +"........ ........", +"......... XXXXXXX .........", +".......... X X ..........", +"......... .........", +"......... XXXXXXXXX .........", +"........ ........", +".......... ..........", +"............ ............", +"... ...", +".. ..", +"... . ...", +"... . ..... . ...", +".............................", +"............................." +}; diff --git a/pixmaps/bdl33.xpm b/pixmaps/bdl33.xpm new file mode 100644 index 0000000..4863b81 --- /dev/null +++ b/pixmaps/bdl33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *bdl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. ..............", +".............. ..............", +"............... ...............", +"............... ...............", +"............. .............", +"............ ............", +"........... ...........", +".......... X ..........", +".......... X ..........", +"......... X .........", +"......... XXXXXXX .........", +"......... X .........", +"......... X .........", +"......... .........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXX ...........", +"........... ...........", +".......... XXXXX ..........", +".......... XXXX XXXX ..........", +".......... ..........", +"........... ...........", +".............. ..............", +".... ....", +"... ...", +"... . ...", +".... ..... ....", +".... ....................... ....", +".................................", +"................................." +}; diff --git a/pixmaps/bdl37.xpm b/pixmaps/bdl37.xpm new file mode 100644 index 0000000..7b88c7a --- /dev/null +++ b/pixmaps/bdl37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *bdl37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................. .................", +"................ ................", +".............. ..............", +"............. .............", +"............ ............", +"........... ...........", +"........... X ...........", +".......... X ..........", +".......... XXXXXXX ..........", +".......... X ..........", +".......... X ..........", +".......... X ..........", +"........... ...........", +"........... ...........", +"............ ............", +"............ XXXXXXXXX ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXX ............", +"........... ...........", +"........... ...........", +"............. .............", +"................ .................", +"........ .... .... ........", +".... ....", +"... . ...", +".... ..... ....", +".... ......................... ....", +".....................................", +"....................................." +}; diff --git a/pixmaps/bdl40.xpm b/pixmaps/bdl40.xpm new file mode 100644 index 0000000..e53c7d1 --- /dev/null +++ b/pixmaps/bdl40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *bdl40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"................... ..................", +".................. .................", +".................. .................", +".................. .................", +"................... ..................", +"................... ..................", +".................. .................", +"................ ...............", +"............... ..............", +".............. .............", +"............. ............", +"............ X ...........", +"............ X ...........", +"........... X ..........", +"........... XXXXXXX ..........", +"........... X ..........", +"........... X ..........", +"........... X ..........", +"............ ...........", +"............ ...........", +"............. ............", +"............. XXXXXXX ............", +".............. XXXX XXXX .............", +"............. ............", +"............. ............", +"............. XXXXXXXXXXXXX ............", +"............ ...........", +"............ ...........", +"............... ..............", +"................... ..................", +"................. ................", +"...... .....", +".... ...", +"... . ..", +".... ..... ...", +"..... ............................. ....", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/bdl45.xpm b/pixmaps/bdl45.xpm new file mode 100644 index 0000000..d340b44 --- /dev/null +++ b/pixmaps/bdl45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *bdl45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............ X ............", +"............ X ............", +"........... X ...........", +"........... XXXXXXXXX ...........", +"........... X ...........", +"........... X ...........", +"........... X ...........", +"........... X ...........", +"............ ............", +"............ ............", +"............. .............", +".............. ..............", +".............. XXXXXXXXXXX ..............", +"............... ...............", +"............... ...............", +".............. ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. X X ..............", +"............. .............", +"............. .............", +"................ ................", +".................... ....................", +".................. ..................", +"....... .......", +".... . ....", +"... ..... ...", +"... ....... ...", +".... ................................. ....", +".............................................", +"............................................." +}; diff --git a/pixmaps/bdl49.xpm b/pixmaps/bdl49.xpm new file mode 100644 index 0000000..4debb81 --- /dev/null +++ b/pixmaps/bdl49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *bdl49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +"....................... .......................", +"...................... ......................", +".................... ....................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +"............. X .............", +"............. X .............", +"............ X ............", +"............ X ............", +"............ XXXXXXXXX ............", +"............ X ............", +"............ X ............", +"............ X ............", +"............ X ............", +"............. .............", +"............. .............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXX ...............", +"................ X X ................", +"................ ................", +"................ ................", +"............... ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".................. ..................", +"...................... ......................", +".................... ....................", +"........ ........", +"..... . .....", +".... ..... ....", +".... ......... ....", +".... ................................. ....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/bdl54.xpm b/pixmaps/bdl54.xpm new file mode 100644 index 0000000..42c7ee8 --- /dev/null +++ b/pixmaps/bdl54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *bdl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"............... XX ...............", +"............... XX ...............", +".............. XX ..............", +".............. XX ..............", +".............. XXXXXXXXXX ..............", +".............. XXXXXXXXXX ..............", +".............. XX ..............", +".............. XX ..............", +".............. XX ..............", +".............. XX ..............", +"............... ...............", +"............... ...............", +"............... ...............", +"................ XXXXXXXXXX ................", +"................. XXXXXXXXXXXXXX .................", +".................. XXX XXX ..................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"............... ...............", +"................ ................", +".................... ....................", +"....................... .......................", +"....... . . .......", +"..... .....", +".... ....", +"..... .....", +"..... .. .....", +"...... .... ......", +"....... ....... ........ ....... .......", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/bdl58.xpm b/pixmaps/bdl58.xpm new file mode 100644 index 0000000..3a32070 --- /dev/null +++ b/pixmaps/bdl58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *bdl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"..................... .....................", +".................... ....................", +"................... ...................", +".................. ..................", +"................. XX .................", +"................ XX ................", +"................ XX ................", +"............... XX ...............", +"............... XXXXXXXXXX ...............", +"............... XXXXXXXXXX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"............... XX ...............", +"................ ................", +"................ ................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"...................... ......................", +"......................... .........................", +".......... ....... ....... ..........", +"...... ......", +"..... .....", +"..... .....", +"...... .. ......", +"...... ...... ......", +"....... ....... .......... ....... .......", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/bdl64.xpm b/pixmaps/bdl64.xpm new file mode 100644 index 0000000..5e44884 --- /dev/null +++ b/pixmaps/bdl64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *bdl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... XX ...................", +".................. XX ..................", +".................. XX ..................", +"................. XX .................", +"................. XX .................", +"................. XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX .................", +"................. XX .................", +"................. XX .................", +"................. XX .................", +"................. XX .................", +".................. XX ..................", +".................. ..................", +".................. ..................", +"................... ...................", +"................... ...................", +".................... XXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXX .....................", +"..................... X X .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................... ....................", +"......................... .........................", +"............................. .............................", +"........................... ...........................", +"........... ...... ...... ...........", +"........ ........", +"...... ......", +"..... .....", +"...... .. ......", +"....... ...... .......", +"....... ........ .......... ........ .......", +"........ .............................................. ........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/bdl72.xpm b/pixmaps/bdl72.xpm new file mode 100644 index 0000000..62f62f7 --- /dev/null +++ b/pixmaps/bdl72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *bdl72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +".................................. ..................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"................................ ................................", +"................................. .................................", +"................................ ................................", +"............................... ...............................", +"............................. .............................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +".................... XX ....................", +".................... XX ....................", +"................... XX ...................", +"................... XX ...................", +".................. XX ..................", +".................. XX ..................", +".................. XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +".................. XX ..................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +".................... ....................", +"..................... .....................", +"...................... XXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXX XXXX .......................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"...................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXX XXX .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +"...................... ......................", +"............................ ............................", +".................................. .................................", +"................................. ................................", +"............................... ..............................", +"............. ..... ...... .............", +"......... .........", +"...... ......", +".... .. ....", +"..... .... .....", +"..... ........ .....", +"...... .............. ......", +"....... .................................................. .......", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/bdl80.xpm b/pixmaps/bdl80.xpm new file mode 100644 index 0000000..69e1111 --- /dev/null +++ b/pixmaps/bdl80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *bdl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................... ....................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... XX .......................", +"....................... XX .......................", +"...................... XX ......................", +"...................... XX ......................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"..................... XX .....................", +"...................... XX ......................", +"...................... ......................", +"...................... ......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... XXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXX XXXX ...........................", +"........................... ...........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXX XXXXXX ........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +"................................ ................................", +".................................... ....................................", +".................................. ..................................", +"................................ ................................", +".............. ..............", +".......... ..........", +"........ ........", +"....... .......", +"...... .. ......", +"....... ...... .......", +"....... ............ .......", +"........ ......... .................. ......... ........", +"......... ........................................................ .........", +".......... .......................................................... ..........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/bdl87.xpm b/pixmaps/bdl87.xpm new file mode 100644 index 0000000..f068084 --- /dev/null +++ b/pixmaps/bdl87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *bdl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"...................................... ......................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"...................................... ......................................", +"...................................... ......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... X .........................", +"......................... XXX .........................", +"........................ XXX ........................", +"........................ XXX ........................", +"....................... XXX .......................", +"....................... XXX .......................", +"...................... XXX ......................", +"...................... XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"...................... XXX ......................", +"....................... XXX .......................", +"....................... XXX .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................... XXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXX ............................", +"............................. X X .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"........................... XXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXX XXXXXXX ..........................", +".......................... ..........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"............................. .............................", +"................................... ...................................", +"....................................... ......................................", +"..................................... ....................................", +"............. .......... ......... .............", +".......... ..........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"......... . .........", +"......... ..... .........", +".......... ......... ..........", +"........... .......... ............... .......... ...........", +"............ ............................................................. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/bdl95.xpm b/pixmaps/bdl95.xpm new file mode 100644 index 0000000..c2eb65f --- /dev/null +++ b/pixmaps/bdl95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *bdl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"........................................... ...........................................", +"............................................ ............................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +"............................... ...............................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... XXX ...........................", +"........................... XXX ...........................", +".......................... XXX ..........................", +".......................... XXX ..........................", +"......................... XXX .........................", +"......................... XXX .........................", +"........................ XXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"........................ XXX ........................", +"......................... XXX .........................", +"......................... XXX .........................", +"......................... XXX .........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"............................ ............................", +"............................. .............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXX XXXXX .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"................................ ................................", +"....................................... .......................................", +".......................................... ..........................................", +"........................................ ........................................", +"...................................... ......................................", +"............... ...............", +"............ ............", +".......... ..........", +"........ ........", +"....... .......", +"........ ........", +"......... . .........", +"......... ..... .........", +".......... ........... ..........", +"........... ........... ................. ........... ...........", +"............ ................................................................. ............", +"............ ..................................................................... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/bld108.xpm b/pixmaps/bld108.xpm new file mode 100644 index 0000000..7cea260 --- /dev/null +++ b/pixmaps/bld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *bld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................. ..................................................", +"................................................ XXX .................................................", +"................................................ XXXXX .................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"................................................ XXXXX .................................................", +"................................................ XXX .................................................", +"................................................. ..................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................ X .................................................", +"............................................... XXX ................................................", +"............................................. XXXXXXX ..............................................", +"........................................... XXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXX .......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXX XXXXX ...................................", +"................................... ....................................", +".................................... .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXX XXXXXXX ...................................", +"................................. X X ..................................", +"................................. ..................................", +"................................. XXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXX ................................", +"................................ .................................", +"..................................... ......................................", +"............................................ .............................................", +"................................................ X .................................................", +"............................................... XXX ................................................", +"............................................. XXXXXXX ..............................................", +".......................................... XXXXXXXXX ...........................................", +".................. XXXXXXXXXXXXX ...................", +".............. XXXXXXXXXXXXXXXXX ...............", +"........... XXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXX XXXXXXXXXXX ....... XXXXXXXXXXX XXXXXXX ..........", +".......... XXX ........... XXX ..........", +".......... ............... ...........", +"........... ............. ..................... ............. ............", +"............ ........................................................................... .............", +"............ ............................................................................... .............", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/bld116.xpm b/pixmaps/bld116.xpm new file mode 100644 index 0000000..0296f95 --- /dev/null +++ b/pixmaps/bld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *bld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... XXXXX ....................................................", +"................................................... XXXXXXX ....................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +"................................................... XXXXXXX ....................................................", +"................................................... XXXXX ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +"..................................................... ......................................................", +"................................................... XXX ....................................................", +".................................................. XXXXX ...................................................", +"................................................ XXXXXXXXX .................................................", +"............................................... XXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXX ...............................................", +"............................................ XXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXX XXXXXXX .....................................", +"..................................... ......................................", +"...................................... .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXX XXXXXXX ......................................", +".................................... X X .....................................", +".................................... .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXX ...................................", +".................................... .....................................", +"......................................... ..........................................", +"................................................ .................................................", +".................................................... X .....................................................", +".................................................. XXX ...................................................", +"................................................ XXXXXXX .................................................", +".............................................. XXXXXXXXXXX ...............................................", +"..................... XXXXXXXXXXXXXXX ......................", +"................ XXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXX XXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXX ........... XXXXXXXX ............", +"........... XXX ................. XXX ............", +"............ X ....................... X .............", +"............. ....................................................................... ..............", +"............. ............................................................................... ..............", +".............. ................................................................................... ...............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/bld129.xpm b/pixmaps/bld129.xpm new file mode 100644 index 0000000..2ad3ed2 --- /dev/null +++ b/pixmaps/bld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *bld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ XXXX .........................................................", +"........................................................ XXXXXXXX .........................................................", +"....................................................... XXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXX ........................................................", +"........................................................ XXXXXXXX .........................................................", +"........................................................ XXXX .........................................................", +"......................................................... ..........................................................", +".......................................................... ...........................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"........................................................ XX .........................................................", +"....................................................... XXXX ........................................................", +"..................................................... XXXXXXXX ......................................................", +".................................................... XXXXXXXXXX .....................................................", +".................................................. XXXXXXXXXXXXXX ...................................................", +"................................................. XXXXXXXXXXXXXXXX ..................................................", +"................................................ XXXXXXXXXXXXXXXXXXXX .................................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXX XXXXX .........................................", +"......................................... ..........................................", +".......................................... ...........................................", +"........................................... ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXX XXXXXXXX .........................................", +"........................................ .........................................", +"....................................... ........................................", +"....................................... ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... .......................................", +"......................................... ..........................................", +".............................................. ...............................................", +"..................................................... ......................................................", +"......................................................... ..........................................................", +"....................................................... XXXX ........................................................", +"..................................................... XXXXXX ......................................................", +"..................... ............ XXXXXXXXXX ............ ......................", +"................ XXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXX XXXXXXXXXXXXX .... XXXXXXXXXXXXX XXXXXX ............", +"............ XXX ........ XXX .............", +"............ ............ .............", +"............. .................. ..............", +".............. .............. ........................ .............. ...............", +".............. ........................................................................................ ...............", +"............... ............................................................................................ ................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/bld21.xpm b/pixmaps/bld21.xpm new file mode 100644 index 0000000..f78fcd1 --- /dev/null +++ b/pixmaps/bld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *bld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"......... X .........", +"........ X ........", +"....... XXX .......", +"...... XXXXX ......", +"..... XXX XXX .....", +"..... XXXX XXXX .....", +"..... XX XX .....", +"..... XXXX XXXX .....", +"..... XXX XXX .....", +"...... XXXXX ......", +"....... .......", +"...... XXXXX ......", +"...... ......", +"...... XXXXXXX ......", +".. .. .. ..", +". XX XXX XX .", +". XXXXXX XXXXXX .", +".. . ..", +"....................." +}; diff --git a/pixmaps/bld25.xpm b/pixmaps/bld25.xpm new file mode 100644 index 0000000..ca8d60f --- /dev/null +++ b/pixmaps/bld25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *bld25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... X ...........", +"........... X ...........", +"............ ............", +".......... X ..........", +"........ XXXXX ........", +"....... XXXXXXXXX .......", +"...... XXXXX XXXXX ......", +"...... XXXXX XXXXX ......", +"...... XXX XXX ......", +"...... XXXXX XXXXX ......", +"...... XXXXX XXXXX ......", +"....... XXXXXXXXX .......", +"........ ........", +"........ XXXXXXX ........", +"........ ........", +"....... XXXXXXXXX .......", +"........ ........", +"........... X ...........", +".. XXX ..", +".. XXXXXXXXX XXXXXXXXX ..", +"... XX . XX ...", +"... .... ..... .... ...", +"........................." +}; diff --git a/pixmaps/bld29.xpm b/pixmaps/bld29.xpm new file mode 100644 index 0000000..de255c0 --- /dev/null +++ b/pixmaps/bld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *bld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"............. X .............", +"............. X .............", +"............. .............", +"............ XXX ............", +".......... XXXXX ..........", +"......... XXXXXXXXX .........", +"........ XXXXX XXXXX ........", +"....... XXXXXX XXXXXX .......", +"....... XXXX XXXX .......", +"....... XXXXXX XXXXXX .......", +"....... XXXXXX XXXXXX .......", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"......... X X .........", +".......... XXXXXXX ..........", +"......... XXXXXXXXX .........", +"......... .........", +"........ XXXXXXXXX ........", +".......... ..........", +"............ X ............", +"... XXXXX ...", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +"... XX XXXXX . XXXXX XX ...", +"... . ..... . ...", +".............................", +"............................." +}; diff --git a/pixmaps/bld33.xpm b/pixmaps/bld33.xpm new file mode 100644 index 0000000..63d5155 --- /dev/null +++ b/pixmaps/bld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *bld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. XXX ..............", +".............. XXX ..............", +"............... ...............", +"............... X ...............", +"............. XXX .............", +"............ XXXXXXX ............", +"........... XXXXXXXXX ...........", +".......... XXXXX XXXXX ..........", +".......... XXXXX XXXXX ..........", +"......... XXXXXX XXXXXX .........", +"......... XXXX XXXX .........", +"......... XXXXXX XXXXXX .........", +"......... XXXXXX XXXXXX .........", +"......... XXXXXXXXXXXXX .........", +".......... XXXXXXXXXXX ..........", +".......... XXXXXXXXXXX ..........", +"........... ...........", +"........... XXXXXXXXX ...........", +".......... X X ..........", +".......... XXXXXXXXX ..........", +".......... XXXXXXXXXXX ..........", +"........... ...........", +".............. X ..............", +".... XXXXX ....", +"... XXXXXXXXXXXX XXXXXXXXXXXX ...", +"... XXXXXXXXXX . XXXXXXXXXX ...", +".... ..... ....", +".... ....................... ....", +".................................", +"................................." +}; diff --git a/pixmaps/bld37.xpm b/pixmaps/bld37.xpm new file mode 100644 index 0000000..8df022f --- /dev/null +++ b/pixmaps/bld37.xpm @@ -0,0 +1,43 @@ +/* XPM */ +static char * bld37[] = { +"37 37 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ... ", +" .XXX. ", +" .XXX. ", +" .XXX. ", +" ... ", +" ..X.. ", +" ..XXXXX.. ", +" .XXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXX.XXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXX.......XXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" ............. ", +" .XXXXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" ............. ", +" ..XXXXXXXXXXX.. ", +" ..XXXXXXXXXXX.. ", +" ........... ", +" ..X.. ", +" .. ..XXXXX.. .. ", +" ....XX....XXXX.XXXX....XX.... ", +" .XXXXXXXXXXXX.. ..XXXXXXXXXXXX. ", +" .X.......... ..........X. ", +" .. .. ", +" ", +" "}; diff --git a/pixmaps/bld40.xpm b/pixmaps/bld40.xpm new file mode 100644 index 0000000..9dcec2c --- /dev/null +++ b/pixmaps/bld40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *bld40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"................... ..................", +".................. XXX .................", +".................. XXX .................", +".................. XXX .................", +"................... ..................", +"................... X ..................", +".................. XXX .................", +"................ XXXXX ...............", +"............... XXXXXXXXX ..............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ...........", +"............ XXXXXXX XXXXXXX ...........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXX XXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"............ XXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXX ...........", +"............. XXXXXXXXXXXXX ............", +"............. XX XX ............", +".............. XXXXXXXXX .............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............. ............", +"............ XXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXX ...........", +"............... ..............", +"................... X ..................", +"................. XXX ................", +"...... XXXXXXX .....", +".... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX ..", +".... X ..... X ...", +"..... ............................. ....", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/bld45.xpm b/pixmaps/bld45.xpm new file mode 100644 index 0000000..f72fde3 --- /dev/null +++ b/pixmaps/bld45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *bld45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"..................... .....................", +".................... XXX ....................", +".................... XXX ....................", +".................... XXX ....................", +"..................... .....................", +"..................... X .....................", +"................... XXX ...................", +".................. XXXXXXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXX XXXXXXXXX ............", +"............ XXXXXXXXX XXXXXXXXX ............", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXX XXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXX ..............", +".............. ..............", +"............... XXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +".............. X X ..............", +".............. XXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX .............", +"................ ................", +".................... X ....................", +".................. XXXXX ..................", +"....... XXXX XXXX .......", +".... XXXXXXXXXXXXX . XXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ...", +"... XX ....... XX ...", +".... ................................. ....", +".............................................", +"............................................." +}; diff --git a/pixmaps/bld49.xpm b/pixmaps/bld49.xpm new file mode 100644 index 0000000..ff734f0 --- /dev/null +++ b/pixmaps/bld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *bld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"...................... XXX ......................", +"..................... XXXXX .....................", +"..................... XXXXX .....................", +"...................... XXX ......................", +"....................... .......................", +"...................... X ......................", +"..................... XXXXX .....................", +"................... XXXXXXX ...................", +".................. XXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXX XXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +"................ XX XX ................", +"................ XXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"............... ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXX ..............", +".................. ..................", +"...................... X ......................", +".................... XXXXX ....................", +"........ XXXX XXXX ........", +"..... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ....", +".... XXX ......... XXX ....", +".... ................................. ....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/bld54.xpm b/pixmaps/bld54.xpm new file mode 100644 index 0000000..5d80d3f --- /dev/null +++ b/pixmaps/bld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *bld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"....................... XX .......................", +"....................... XXXX .......................", +"....................... XXXX .......................", +"....................... XX .......................", +"........................ ........................", +"........................ ........................", +"...................... XX ......................", +"..................... XXXXXX .....................", +"................... XXXXXXXX ...................", +".................. XXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"............... XXXXXXXX XXXXXXXX ...............", +"............... XXXXXXXXX XXXXXXXXX ...............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXX ................", +"................ XX XX ................", +"................. .................", +".................. XXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................. X X .................", +"................ ................", +"................ XXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXX ...............", +"................ ................", +".................... ....................", +"...................... XX ......................", +"....... XXXXXX .......", +"..... XXXXXXXXXX .....", +"... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ....", +"..... .. .....", +"...... ........ ......", +"....... ...................................... .......", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/bld58.xpm b/pixmaps/bld58.xpm new file mode 100644 index 0000000..426784d --- /dev/null +++ b/pixmaps/bld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *bld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +"......................... XX .........................", +"......................... XXXX .........................", +"......................... XXXX .........................", +"......................... XX .........................", +".......................... ..........................", +"........................... ...........................", +"......................... .........................", +"........................ XXXX ........................", +"...................... XXXXXX ......................", +".................... XXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXX ................", +"................ XXXXXXXXXX XXXXXXXXXX ................", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"................ XXXXXXXXXX XXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXX ..................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX .................", +"................. .................", +"...................... ......................", +".......................... ..........................", +"........................ XX ........................", +"........ XXXXXX ........", +"...... XXXXXXXXXX ......", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .....", +"..... X XXXXXXX .. XXXXXXX X .....", +"...... ...... ......", +"....... ........ .......... ........ .......", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/bld64.xpm b/pixmaps/bld64.xpm new file mode 100644 index 0000000..5312ff1 --- /dev/null +++ b/pixmaps/bld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *bld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +"............................ XX ............................", +"............................ XXXX ............................", +"............................ XXXX ............................", +"............................ XX ............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"......................... XXXXXX .........................", +"........................ XXXXXXXXXX ........................", +"...................... XXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXX XXXXXXXXXX ...................", +".................. XXXXXXXXXX XXXXXXXXXX ..................", +".................. XXXXXXXXXXX XXXXXXXXXXX ..................", +"................. XXXXXXXXXXX XXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXX XXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +".................... XX XX ....................", +"..................... .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXX ....................", +".................... X X ....................", +".................... ....................", +"................... XXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX ...................", +".................... ....................", +"......................... .........................", +"............................ ............................", +".......................... XXXX ..........................", +"......... XXXXXXXX .........", +"....... XXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .....", +"...... XXX XXXXXXXX .. XXXXXXXX XXX ......", +"...... ...... ......", +"....... ........ .......... ........ .......", +"........ .............................................. ........", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/bld72.xpm b/pixmaps/bld72.xpm new file mode 100644 index 0000000..9dab6df --- /dev/null +++ b/pixmaps/bld72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *bld72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXX ...............................", +"................................ ................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +"............................. XXXXXX .............................", +"............................ XXXXXXXXXX ............................", +"........................... XXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXX XXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXX XXX ......................", +"....................... .......................", +"........................ XXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXX XXX ......................", +"..................... .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXX ....................", +"...................... ......................", +"............................ ............................", +"................................ ................................", +"............................... XXXX ...............................", +"............................. XXXXXX .............................", +"........... XXXXXXXXXX ...........", +"....... XXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXX ...... XXXXX ....", +"..... X ............ X .....", +"...... ................................................ ......", +"....... ...................................................... .......", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/bld80.xpm b/pixmaps/bld80.xpm new file mode 100644 index 0000000..4da7179 --- /dev/null +++ b/pixmaps/bld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *bld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXX ...................................", +".................................... ....................................", +"..................................... .....................................", +".................................... XX ....................................", +".................................. XXXX ..................................", +"................................. XXXXXXXX .................................", +"............................... XXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXX XXXXX .........................", +".......................... ..........................", +"........................... XXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXX .........................", +"......................... .........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX .......................", +".......................... ..........................", +"................................ ................................", +".................................... ....................................", +".................................. XXXX ..................................", +"................................ XXXXXXXX ................................", +".............. XXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXX XXXXXX ...... XXXXXX XXXXXXX .......", +"....... XX ............ XX .......", +"........ ......... .................. ......... ........", +"......... ........................................................ .........", +".......... .......................................................... ..........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/bld87.xpm b/pixmaps/bld87.xpm new file mode 100644 index 0000000..2232db4 --- /dev/null +++ b/pixmaps/bld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *bld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................................... XXX .......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"....................................... XXX .......................................", +"....................................... .......................................", +"........................................ ........................................", +"....................................... .......................................", +"...................................... X ......................................", +".................................... XXXXX ....................................", +"................................... XXXXXXX ...................................", +"................................. XXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXX XXXX ...........................", +"............................ ............................", +"............................ ............................", +"............................. XXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXX XXXXX ............................", +"........................... ...........................", +"........................... ...........................", +"........................... XXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXX .........................", +".......................... ..........................", +"............................. .............................", +"................................... ...................................", +"...................................... X ......................................", +"................................... XXXXX ...................................", +"............. XXXXXXX .............", +".......... XXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXX XXXXXXXXXXX . XXXXXXXXXXX XXXX ........", +"........ X ..... X ........", +"......... ......... .........", +".......... .......... ............... .......... ..........", +"........... ............................................................. ...........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/bld95.xpm b/pixmaps/bld95.xpm new file mode 100644 index 0000000..5ef80d5 --- /dev/null +++ b/pixmaps/bld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *bld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... XXXXX ..........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +".......................................... XXXXX ..........................................", +".......................................... ..........................................", +"........................................... ...........................................", +"............................................ ............................................", +"........................................... X ...........................................", +"......................................... XXX .........................................", +"........................................ XXXXX ........................................", +"...................................... XXXXXXXXX ......................................", +"..................................... XXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. X X ..............................", +"............................... ...............................", +"................................ ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXX XXXX ..............................", +".............................. ..............................", +"............................. .............................", +"............................. XXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXX ............................", +"............................ ............................", +"................................ ................................", +"....................................... .......................................", +".......................................... X ..........................................", +"........................................ XXX ........................................", +"............... .......... XXXXXXX .......... ...............", +"............ XXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXX XXXXXXXXXX ..... XXXXXXXXXX XXXXX .........", +".......... X ......... X ..........", +".......... ............. ..........", +"........... ........... ................... ........... ...........", +"............ ................................................................... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/bll108.xpm b/pixmaps/bll108.xpm new file mode 100644 index 0000000..c1c7eb4 --- /dev/null +++ b/pixmaps/bll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *bll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................. ..................................................", +"................................................ XXX .................................................", +"................................................ XXXXX .................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"............................................... XXXXXXX ................................................", +"................................................ XXXXX .................................................", +"................................................ XXX .................................................", +"................................................. ..................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................ X .................................................", +"............................................... XXX ................................................", +"............................................. XXXXXXX ..............................................", +"........................................... XXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXX .......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXX XXXXX ...................................", +"................................... ....................................", +".................................... .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXX XXXXXXX ...................................", +"................................. X X ..................................", +"................................. ..................................", +"................................. XXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXX ................................", +"................................ .................................", +"..................................... ......................................", +"............................................ .............................................", +"................................................ X .................................................", +"............................................... XXX ................................................", +"............................................. XXXXXXX ..............................................", +".......................................... XXXXXXXXX ...........................................", +".................. XXXXXXXXXXXXX ...................", +".............. XXXXXXXXXXXXXXXXX ...............", +"........... XXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXX XXXXXXXXXXX ....... XXXXXXXXXXX XXXXXXX ..........", +".......... XXX ........... XXX ..........", +".......... ............... ...........", +"........... ............. ..................... ............. ............", +"............ ........................................................................... .............", +"............ ............................................................................... .............", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/bll116.xpm b/pixmaps/bll116.xpm new file mode 100644 index 0000000..d4e7e18 --- /dev/null +++ b/pixmaps/bll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *bll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... XXXXX ....................................................", +"................................................... XXXXXXX ....................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +".................................................. XXXXXXXXX ...................................................", +"................................................... XXXXXXX ....................................................", +"................................................... XXXXX ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +"..................................................... ......................................................", +"................................................... XXX ....................................................", +".................................................. XXXXX ...................................................", +"................................................ XXXXXXXXX .................................................", +"............................................... XXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXX ...............................................", +"............................................ XXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXX XXXXXXX .....................................", +"..................................... ......................................", +"...................................... .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXX XXXXXXX ......................................", +".................................... X X .....................................", +".................................... .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXX ...................................", +".................................... .....................................", +"......................................... ..........................................", +"................................................ .................................................", +".................................................... X .....................................................", +".................................................. XXX ...................................................", +"................................................ XXXXXXX .................................................", +".............................................. XXXXXXXXXXX ...............................................", +"..................... XXXXXXXXXXXXXXX ......................", +"................ XXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXX XXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXX ........... XXXXXXXX ............", +"........... XXX ................. XXX ............", +"............ X ....................... X .............", +"............. ....................................................................... ..............", +"............. ............................................................................... ..............", +".............. ................................................................................... ...............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/bll129.xpm b/pixmaps/bll129.xpm new file mode 100644 index 0000000..889493b --- /dev/null +++ b/pixmaps/bll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *bll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ XXXX .........................................................", +"........................................................ XXXXXXXX .........................................................", +"....................................................... XXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXXXX ........................................................", +"....................................................... XXXXXXXX ........................................................", +"........................................................ XXXXXXXX .........................................................", +"........................................................ XXXX .........................................................", +"......................................................... ..........................................................", +".......................................................... ...........................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"........................................................ XX .........................................................", +"....................................................... XXXX ........................................................", +"..................................................... XXXXXXXX ......................................................", +".................................................... XXXXXXXXXX .....................................................", +".................................................. XXXXXXXXXXXXXX ...................................................", +"................................................. XXXXXXXXXXXXXXXX ..................................................", +"................................................ XXXXXXXXXXXXXXXXXXXX .................................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXX XXXXX .........................................", +"......................................... ..........................................", +".......................................... ...........................................", +"........................................... ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXX XXXXXXXX .........................................", +"........................................ .........................................", +"....................................... ........................................", +"....................................... ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... .......................................", +"......................................... ..........................................", +".............................................. ...............................................", +"..................................................... ......................................................", +"......................................................... ..........................................................", +"....................................................... XXXX ........................................................", +"..................................................... XXXXXX ......................................................", +"..................... ............ XXXXXXXXXX ............ ......................", +"................ XXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXX XXXXXXXXXXXXX .... XXXXXXXXXXXXX XXXXXX ............", +"............ XXX ........ XXX .............", +"............ ............ .............", +"............. .................. ..............", +".............. .............. ........................ .............. ...............", +".............. ........................................................................................ ...............", +"............... ............................................................................................ ................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/bll21.xpm b/pixmaps/bll21.xpm new file mode 100644 index 0000000..10ac3fb --- /dev/null +++ b/pixmaps/bll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *bll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"......... X .........", +"........ X ........", +"....... XXX .......", +"...... XXXXX ......", +"..... XXX XXX .....", +"..... XXXX XXXX .....", +"..... XX XX .....", +"..... XXXX XXXX .....", +"..... XXX XXX .....", +"...... XXXXX ......", +"....... .......", +"...... XXXXX ......", +"...... ......", +"...... XXXXXXX ......", +".. .. .. ..", +". XX XXX XX .", +". XXXXXX XXXXXX .", +".. . ..", +"....................." +}; diff --git a/pixmaps/bll25.xpm b/pixmaps/bll25.xpm new file mode 100644 index 0000000..616882a --- /dev/null +++ b/pixmaps/bll25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *bll25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... X ...........", +"........... X ...........", +"............ ............", +".......... X ..........", +"........ XXXXX ........", +"....... XXXXXXXXX .......", +"...... XXXXX XXXXX ......", +"...... XXXXX XXXXX ......", +"...... XXX XXX ......", +"...... XXXXX XXXXX ......", +"...... XXXXX XXXXX ......", +"....... XXXXXXXXX .......", +"........ ........", +"........ XXXXXXX ........", +"........ ........", +"....... XXXXXXXXX .......", +"........ ........", +"........... X ...........", +".. XXX ..", +".. XXXXXXXXX XXXXXXXXX ..", +"... XX . XX ...", +"... .... ..... .... ...", +"........................." +}; diff --git a/pixmaps/bll29.xpm b/pixmaps/bll29.xpm new file mode 100644 index 0000000..bbf8f5c --- /dev/null +++ b/pixmaps/bll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *bll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"............. X .............", +"............. X .............", +"............. .............", +"............ XXX ............", +".......... XXXXX ..........", +"......... XXXXXXXXX .........", +"........ XXXXX XXXXX ........", +"....... XXXXXX XXXXXX .......", +"....... XXXX XXXX .......", +"....... XXXXXX XXXXXX .......", +"....... XXXXXX XXXXXX .......", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"......... X X .........", +".......... XXXXXXX ..........", +"......... XXXXXXXXX .........", +"......... .........", +"........ XXXXXXXXX ........", +".......... ..........", +"............ X ............", +"... XXXXX ...", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +"... XX XXXXX . XXXXX XX ...", +"... . ..... . ...", +".............................", +"............................." +}; diff --git a/pixmaps/bll33.xpm b/pixmaps/bll33.xpm new file mode 100644 index 0000000..e540d21 --- /dev/null +++ b/pixmaps/bll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *bll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. XXX ..............", +".............. XXX ..............", +"............... ...............", +"............... X ...............", +"............. XXX .............", +"............ XXXXXXX ............", +"........... XXXXXXXXX ...........", +".......... XXXXX XXXXX ..........", +".......... XXXXX XXXXX ..........", +"......... XXXXXX XXXXXX .........", +"......... XXXX XXXX .........", +"......... XXXXXX XXXXXX .........", +"......... XXXXXX XXXXXX .........", +"......... XXXXXXXXXXXXX .........", +".......... XXXXXXXXXXX ..........", +".......... XXXXXXXXXXX ..........", +"........... ...........", +"........... XXXXXXXXX ...........", +".......... X X ..........", +".......... XXXXXXXXX ..........", +".......... XXXXXXXXXXX ..........", +"........... ...........", +".............. X ..............", +".... XXXXX ....", +"... XXXXXXXXXXXX XXXXXXXXXXXX ...", +"... XXXXXXXXXX . XXXXXXXXXX ...", +".... ..... ....", +".... ....................... ....", +".................................", +"................................." +}; diff --git a/pixmaps/bll37.xpm b/pixmaps/bll37.xpm new file mode 100644 index 0000000..1dd6755 --- /dev/null +++ b/pixmaps/bll37.xpm @@ -0,0 +1,43 @@ +/* XPM */ +static char * bll37[] = { +"37 37 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ... ", +" .XXX. ", +" .XXX. ", +" .XXX. ", +" ... ", +" ..X.. ", +" ..XXXXX.. ", +" .XXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXX.XXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXX.......XXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXX.XXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" ............. ", +" .XXXXXXXXXXX. ", +" .XXXXXXXXXXX. ", +" ............. ", +" ..XXXXXXXXXXX.. ", +" ..XXXXXXXXXXX.. ", +" ........... ", +" ..X.. ", +" .. ..XXXXX.. .. ", +" ....XX....XXXX.XXXX....XX.... ", +" .XXXXXXXXXXXX.. ..XXXXXXXXXXXX. ", +" .X.......... ..........X. ", +" .. .. ", +" ", +" "}; diff --git a/pixmaps/bll40.xpm b/pixmaps/bll40.xpm new file mode 100644 index 0000000..13dd7e2 --- /dev/null +++ b/pixmaps/bll40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *bll40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"................... ..................", +".................. XXX .................", +".................. XXX .................", +".................. XXX .................", +"................... ..................", +"................... X ..................", +".................. XXX .................", +"................ XXXXX ...............", +"............... XXXXXXXXX ..............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ...........", +"............ XXXXXXX XXXXXXX ...........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXX XXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ..........", +"............ XXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXX ...........", +"............. XXXXXXXXXXXXX ............", +"............. XX XX ............", +".............. XXXXXXXXX .............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............. ............", +"............ XXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXX ...........", +"............... ..............", +"................... X ..................", +"................. XXX ................", +"...... XXXXXXX .....", +".... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX ..", +".... X ..... X ...", +"..... ............................. ....", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/bll45.xpm b/pixmaps/bll45.xpm new file mode 100644 index 0000000..7d8a502 --- /dev/null +++ b/pixmaps/bll45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *bll45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"..................... .....................", +".................... XXX ....................", +".................... XXX ....................", +".................... XXX ....................", +"..................... .....................", +"..................... X .....................", +"................... XXX ...................", +".................. XXXXXXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXX XXXXXXXXX ............", +"............ XXXXXXXXX XXXXXXXXX ............", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXX XXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"........... XXXXXXXXXX XXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXX ..............", +".............. ..............", +"............... XXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +".............. X X ..............", +".............. XXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX .............", +"................ ................", +".................... X ....................", +".................. XXXXX ..................", +"....... XXXX XXXX .......", +".... XXXXXXXXXXXXX . XXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ...", +"... XX ....... XX ...", +".... ................................. ....", +".............................................", +"............................................." +}; diff --git a/pixmaps/bll49.xpm b/pixmaps/bll49.xpm new file mode 100644 index 0000000..c595ccf --- /dev/null +++ b/pixmaps/bll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *bll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"...................... XXX ......................", +"..................... XXXXX .....................", +"..................... XXXXX .....................", +"...................... XXX ......................", +"....................... .......................", +"...................... X ......................", +"..................... XXXXX .....................", +"................... XXXXXXX ...................", +".................. XXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXX XXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +"................ XX XX ................", +"................ XXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"............... ...............", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXX ..............", +".................. ..................", +"...................... X ......................", +".................... XXXXX ....................", +"........ XXXX XXXX ........", +"..... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ....", +".... XXX ......... XXX ....", +".... ................................. ....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/bll54.xpm b/pixmaps/bll54.xpm new file mode 100644 index 0000000..f2c473a --- /dev/null +++ b/pixmaps/bll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *bll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"....................... XX .......................", +"....................... XXXX .......................", +"....................... XXXX .......................", +"....................... XX .......................", +"........................ ........................", +"........................ ........................", +"...................... XX ......................", +"..................... XXXXXX .....................", +"................... XXXXXXXX ...................", +".................. XXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"............... XXXXXXXX XXXXXXXX ...............", +"............... XXXXXXXXX XXXXXXXXX ...............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXXX XXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXX ................", +"................ XX XX ................", +"................. .................", +".................. XXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................. X X .................", +"................ ................", +"................ XXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXX ...............", +"................ ................", +".................... ....................", +"...................... XX ......................", +"....... XXXXXX .......", +"..... XXXXXXXXXX .....", +"... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ....", +"..... .. .....", +"...... ........ ......", +"....... ...................................... .......", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/bll58.xpm b/pixmaps/bll58.xpm new file mode 100644 index 0000000..81ed080 --- /dev/null +++ b/pixmaps/bll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *bll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +"......................... XX .........................", +"......................... XXXX .........................", +"......................... XXXX .........................", +"......................... XX .........................", +".......................... ..........................", +"........................... ...........................", +"......................... .........................", +"........................ XXXX ........................", +"...................... XXXXXX ......................", +".................... XXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXX ................", +"................ XXXXXXXXXX XXXXXXXXXX ................", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"................ XXXXXXXXXX XXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXX ..................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX .................", +"................. .................", +"...................... ......................", +".......................... ..........................", +"........................ XX ........................", +"........ XXXXXX ........", +"...... XXXXXXXXXX ......", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .....", +"..... X XXXXXXX .. XXXXXXX X .....", +"...... ...... ......", +"....... ........ .......... ........ .......", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/bll64.xpm b/pixmaps/bll64.xpm new file mode 100644 index 0000000..abaf676 --- /dev/null +++ b/pixmaps/bll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *bll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +"............................ XX ............................", +"............................ XXXX ............................", +"............................ XXXX ............................", +"............................ XX ............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"......................... XXXXXX .........................", +"........................ XXXXXXXXXX ........................", +"...................... XXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXX XXXXXXXXXX ...................", +".................. XXXXXXXXXX XXXXXXXXXX ..................", +".................. XXXXXXXXXXX XXXXXXXXXXX ..................", +"................. XXXXXXXXXXX XXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXXX XXXXXXXXXXXX .................", +"................. XXXXXXXXXXX XXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +".................... XX XX ....................", +"..................... .....................", +"..................... XXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXX ....................", +".................... X X ....................", +".................... ....................", +"................... XXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX ...................", +".................... ....................", +"......................... .........................", +"............................ ............................", +".......................... XXXX ..........................", +"......... XXXXXXXX .........", +"....... XXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .....", +"...... XXX XXXXXXXX .. XXXXXXXX XXX ......", +"...... ...... ......", +"....... ........ .......... ........ .......", +"........ .............................................. ........", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/bll72.xpm b/pixmaps/bll72.xpm new file mode 100644 index 0000000..9fc050f --- /dev/null +++ b/pixmaps/bll72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *bll72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXXXX ...............................", +"............................... XXXX ...............................", +"................................ ................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +"............................. XXXXXX .............................", +"............................ XXXXXXXXXX ............................", +"........................... XXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXX XXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXX XXX ......................", +"....................... .......................", +"........................ XXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXX XXX ......................", +"..................... .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXX ....................", +"...................... ......................", +"............................ ............................", +"................................ ................................", +"............................... XXXX ...............................", +"............................. XXXXXX .............................", +"........... XXXXXXXXXX ...........", +"....... XXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXX ...... XXXXX ....", +"..... X ............ X .....", +"...... ................................................ ......", +"....... ...................................................... .......", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/bll80.xpm b/pixmaps/bll80.xpm new file mode 100644 index 0000000..b4e7808 --- /dev/null +++ b/pixmaps/bll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *bll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXXXX ...................................", +"................................... XXXX ...................................", +".................................... ....................................", +"..................................... .....................................", +".................................... XX ....................................", +".................................. XXXX ..................................", +"................................. XXXXXXXX .................................", +"............................... XXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXX XXXXX .........................", +".......................... ..........................", +"........................... XXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXX .........................", +"......................... .........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX .......................", +".......................... ..........................", +"................................ ................................", +".................................... ....................................", +".................................. XXXX ..................................", +"................................ XXXXXXXX ................................", +".............. XXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXX XXXXXX ...... XXXXXX XXXXXXX .......", +"....... XX ............ XX .......", +"........ ......... .................. ......... ........", +"......... ........................................................ .........", +".......... .......................................................... ..........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/bll87.xpm b/pixmaps/bll87.xpm new file mode 100644 index 0000000..a1aecac --- /dev/null +++ b/pixmaps/bll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *bll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................................... XXX .......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"...................................... XXXXX ......................................", +"....................................... XXX .......................................", +"....................................... .......................................", +"........................................ ........................................", +"....................................... .......................................", +"...................................... X ......................................", +".................................... XXXXX ....................................", +"................................... XXXXXXX ...................................", +"................................. XXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXX XXXX ...........................", +"............................ ............................", +"............................ ............................", +"............................. XXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXX XXXXX ............................", +"........................... ...........................", +"........................... ...........................", +"........................... XXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXX .........................", +".......................... ..........................", +"............................. .............................", +"................................... ...................................", +"...................................... X ......................................", +"................................... XXXXX ...................................", +"............. XXXXXXX .............", +".......... XXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXX XXXXXXXXXXX . XXXXXXXXXXX XXXX ........", +"........ X ..... X ........", +"......... ......... .........", +".......... .......... ............... .......... ..........", +"........... ............................................................. ...........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/bll95.xpm b/pixmaps/bll95.xpm new file mode 100644 index 0000000..ec349c0 --- /dev/null +++ b/pixmaps/bll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *bll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... XXXXX ..........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +"......................................... XXXXXXX .........................................", +".......................................... XXXXX ..........................................", +".......................................... ..........................................", +"........................................... ...........................................", +"............................................ ............................................", +"........................................... X ...........................................", +"......................................... XXX .........................................", +"........................................ XXXXX ........................................", +"...................................... XXXXXXXXX ......................................", +"..................................... XXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXX XXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. X X ..............................", +"............................... ...............................", +"................................ ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXX XXXX ..............................", +".............................. ..............................", +"............................. .............................", +"............................. XXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXX ............................", +"............................ ............................", +"................................ ................................", +"....................................... .......................................", +".......................................... X ..........................................", +"........................................ XXX ........................................", +"............... .......... XXXXXXX .......... ...............", +"............ XXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXX XXXXXXXXXX ..... XXXXXXXXXX XXXXX .........", +".......... X ......... X ..........", +".......... ............. ..........", +"........... ........... ................... ........... ...........", +"............ ................................................................... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/convbm b/pixmaps/convbm new file mode 100644 index 0000000..e577fdc --- /dev/null +++ b/pixmaps/convbm @@ -0,0 +1,35 @@ +#!/bin/sh + +for size in 129 116 108 95 87 80 72 64 58 54 49 45 40 37 33 29 25 21 ; do + + mkdir $size + + for piece in p r n b q k ; do + + name=${piece}ld${size} + echo $name + convert -pen green -draw 'color 0,0 floodfill' \ + XBM:${piece}${size}o.bm tmp.xpm + sed < tmp.xpm > $size/$name.xpm -f convbm.sed -e s/magick/$name/ + + name=${piece}ll${size} + echo $name + convert -pen gray -draw 'color 0,0 floodfill' \ + XBM:${piece}${size}o.bm tmp.xpm + sed < tmp.xpm > $size/$name.xpm -f convbm.sed -e s/magick/$name/ + + name=${piece}dd${size} + echo $name + convert -pen green -draw 'color 0,0 floodfill' \ + XBM:${piece}${size}s.bm tmp.xpm + sed < tmp.xpm > $size/$name.xpm -f convbm.sed -e s/magick/$name/ + + name=${piece}dl${size} + echo $name + convert -pen gray -draw 'color 0,0 floodfill' \ + XBM:${piece}${size}s.bm tmp.xpm + sed < tmp.xpm > $size/$name.xpm -f convbm.sed -e s/magick/$name/ + + done + +done diff --git a/pixmaps/convbm.sed b/pixmaps/convbm.sed new file mode 100644 index 0000000..c06b461 --- /dev/null +++ b/pixmaps/convbm.sed @@ -0,0 +1,4 @@ +s/Gray0/black s dark_piece/ +s/Gray100/white s light_piece/ +s/Green/green s dark_square/ +s/#bebebe/gray s light_square/ diff --git a/pixmaps/convbm2.sed b/pixmaps/convbm2.sed new file mode 100644 index 0000000..0715909 --- /dev/null +++ b/pixmaps/convbm2.sed @@ -0,0 +1,5 @@ +s/_xpm// +s/#000000000000/black s dark_piece/ +s/#FFFFFFFFFFFF/white s light_piece/ +s/#0000FFFF0000/green s dark_square/ +s/#BE..BE..BE../gray s light_square/ diff --git a/pixmaps/kdd108.xpm b/pixmaps/kdd108.xpm new file mode 100644 index 0000000..b0c4558 --- /dev/null +++ b/pixmaps/kdd108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *kdd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................... ................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... XXX ................................................", +".............................................. XXXXXXX ...............................................", +".............................................. XXXXXXXXX ...............................................", +"............................................. XXXX XXXX ..............................................", +"............................................. XXX XXX ..............................................", +"............................................. XXX XXX ..............................................", +"............................................ XXX XXX .............................................", +"...................... ............ XXX XXX ............ .......................", +".................. ......... XXX XXX ......... ...................", +"................ ....... XXX XXX ....... .................", +"............... XXXXXXXXXX ..... XXX XXX ..... XXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXX ... XXX XXX ... XXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXX . XXX XXX . XXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXX XXXXXXXX XXX XXX XXXXXXXX XXXXXXXX ............", +".......... XXXXX XXXXXX XXX XXX XXXXXX XXXXX ...........", +".......... XXXX XXXXX XXX XXX XXXXX XXXX ...........", +"......... XXXX XXXXX XXX XXX XXXXX XXXX ..........", +"......... XXX XXXX XXX XXX XXXX XXX ..........", +"........ XXXX XXXX XXX XXX XXXX XXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX .........", +"........ XXXX XXXX XXX XXX XXXX XXXX .........", +"....... XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX ........", +"....... XXX XXXX XXX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX ........", +"....... XXX XXXX X XXXX XXX ........", +"....... XXXX XXX XXX XXXX ........", +"........ XXX XXX XXX XXX .........", +"........ XXX XXXX XXXX XXX .........", +"........ XXX XXX XXX XXX .........", +"......... XXXX XXX XXX XXXX ..........", +"......... XXX XXXX XXXX XXX ..........", +".......... XXXX XXXX XXXX XXXX ...........", +"........... XXXX XXX XXX XXXX ............", +"........... XXXX XXX XXX XXXX ............", +"............ XXXXX XXX XXX XXXXX .............", +"............. XXXXX XXX XXX XXXXX ..............", +".............. XXXXX XXX XXX XXXXX ...............", +"............... XXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXX ................", +"................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX .................", +"................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXX XXXXXXXXXXX ....................", +"..................... XXXXX XXXXX ......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ........................", +"...................... XXXXXXXX XXXXXXXX ........................", +"....................... XXX XXX ........................", +"....................... ........................", +"....................... XXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXX XXXXXXXXXXXX ........................", +"....................... XXXXXXXX XXXXXXXX ........................", +"....................... XXXX XXXX ........................", +"....................... ........................", +"....................... ........................", +"......................... ..........................", +"........................... .............................", +".............................. ................................", +".................................. ...................................", +"...................................... .......................................", +"............................................. ..............................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/kdd116.xpm b/pixmaps/kdd116.xpm new file mode 100644 index 0000000..85c327a --- /dev/null +++ b/pixmaps/kdd116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *kdd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +".................................................... .....................................................", +"................................................... ....................................................", +".................................................. XXXXX ...................................................", +"................................................. XXXXXXXXX ..................................................", +"................................................. XXXXXXXXXXX ..................................................", +"................................................ XXX XXX .................................................", +"................................................ XXX XXX .................................................", +"................................................ XXX XXX .................................................", +"............................................... XXX XXX ................................................", +"............................................... XXX XXX ................................................", +"......................... ............. XXX XXX ............. ..........................", +"...................... ......... XXX XXX ......... .......................", +".................... ....... XXX XXX ....... .....................", +".................. XXXXXXXXXX ..... XXX XXX ..... XXXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXX ... XXX XXX ... XXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXX .. XXX XXX .. XXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXX XXXXXXXX X XXX XXX X XXXXXXXX XXXXXXXX ...............", +"............. XXXXX XXXXXXX XXX XXX XXXXXXX XXXXX ..............", +"............ XXXXX XXXXXX XXX XXX XXXXXX XXXXX .............", +"............ XXXX XXXXX XXX XXX XXXXX XXXX .............", +"........... XXXX XXXX XXX XXX XXXX XXXX ............", +"........... XXX XXXX XXX XXX XXXX XXX ............", +".......... XXXX XXXX XXX XXX XXXX XXXX ...........", +".......... XXX XXXX XXX XXX XXXX XXX ...........", +".......... XXXX XXX XXX XXX XXX XXXX ...........", +"......... XXX XXXX XXXXX XXXX XXX ..........", +"......... XXX XXXX XXXXX XXXX XXX ..........", +"......... XXX XXX XXX XXX XXX ..........", +"......... XXX XXXX XXX XXXX XXX ..........", +"......... XXX XXX XXX XXX XXX ..........", +"......... XXX XXXX XXXX XXX ..........", +"......... XXXX XXX XXX XXXX ..........", +".......... XXX XXX XXX XXX ...........", +".......... XXX XXXX XXXX XXX ...........", +"........... XXX XXX XXX XXX ............", +"........... XXXX XXX XXX XXXX ............", +"............ XXX XXXX XXXX XXX .............", +"............ XXXX XXXX XXXX XXXX .............", +"............. XXXX XXX XXX XXXX ..............", +".............. XXXX XXX XXX XXXX ...............", +".............. XXXXX XXX XXX XXXXX ...............", +"............... XXXXX XXX XXX XXXXX ................", +"................ XXXXX XXX XXX XXXXX .................", +"................. XXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXX ..................", +".................. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ...................", +"................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXX XXXXXXXXX .......................", +"........................ XX XX .........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXX XXXXXXXXXXXX ..........................", +"......................... XXXXXXXX XXXXXXXX ..........................", +"......................... XXXX XXXX ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXX XXXXXXXXXXXX ..........................", +"......................... XXXXXXX XXXXXXX ..........................", +"......................... XXXX XXXX ..........................", +"......................... ..........................", +".......................... ...........................", +"............................ .............................", +"............................... ................................", +".................................. ...................................", +"...................................... .......................................", +".......................................... ...........................................", +"................................................. ..................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/kdd129.xpm b/pixmaps/kdd129.xpm new file mode 100644 index 0000000..cd077dd --- /dev/null +++ b/pixmaps/kdd129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *kdd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................... ................................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"....................................................... XXXXXX ........................................................", +"...................................................... XXXXXXXX .......................................................", +"...................................................... XXXXXXXXXX .......................................................", +"..................................................... XXXXXXXXXXXX ......................................................", +"..................................................... XXXXX XXXXX ......................................................", +"..................................................... XXXX XXXX ......................................................", +".................................................... XXXX XXXX .....................................................", +".................................................... XXXXX XXXXX .....................................................", +"........................... .............. XXXX XXXX .............. ............................", +"........................ .......... XXXX XXXX .......... .........................", +"...................... ........ XXXX XXXX ........ .......................", +".................... ...... XXXX XXXX ...... .....................", +".................. XXXXXXXXXXXX .... XXXX XXXX .... XXXXXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXXXX ... XXXX XXXX ... XXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXX . XXXX XXXX . XXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXX XXXXXXXXXXX XXXX XXXX XXXXXXXXXXX XXXXXXXXXXX ...............", +"............. XXXXXXXXX XXXXXXXXX XXXX XXXX XXXXXXXXX XXXXXXXXX ..............", +"............ XXXXXXX XXXXXXXX XXXXX XXXXX XXXXXXXX XXXXXXX .............", +"............ XXXXXX XXXXXXX XXXX XXXX XXXXXXX XXXXXX .............", +"........... XXXXX XXXXXX XXXXX XXXXX XXXXXX XXXXX ............", +"........... XXXXX XXXXXX XXXX XXXX XXXXXX XXXXX ............", +".......... XXXXX XXXXXX XXXXXXXXXX XXXXXX XXXXX ...........", +".......... XXXXX XXXXXX XXXXXXXX XXXXXX XXXXX ...........", +".......... XXXXX XXXXX XXXXXXXX XXXXX XXXXX ...........", +"......... XXXXX XXXXX XXXXXX XXXXX XXXXX ..........", +"......... XXXXX XXXXX XXXXXX XXXXX XXXXX ..........", +"......... XXXX XXXXX XXXX XXXXX XXXX ..........", +"......... XXXX XXXXX XXXX XXXXX XXXX ..........", +"......... XXXX XXXXX XX XXXXX XXXX ..........", +"......... XXXX XXXXX XX XXXXX XXXX ..........", +"......... XXXXX XXXXX XX XXXXX XXXXX ..........", +"......... XXXXX XXXXX XXXXX XXXXX ..........", +".......... XXXXX XXXXX XXXXX XXXXX ...........", +".......... XXXXX XXXX XXXX XXXXX ...........", +".......... XXXXX XXXXX XXXXX XXXXX ...........", +"........... XXXXX XXXXX XXXXX XXXXX ............", +"........... XXXXX XXXX XXXX XXXXX ............", +"............ XXXXX XXXXX XXXXX XXXXX .............", +"............ XXXXX XXXXX XXXXX XXXXX .............", +"............. XXXXXX XXXXX XXXXX XXXXXX ..............", +".............. XXXXXX XXXXX XXXXX XXXXXX ...............", +".............. XXXXXX XXXX XXXX XXXXXX ...............", +"............... XXXXXXX XXXX XXXX XXXXXXX ................", +"................ XXXXXXX XXXX XXXX XXXXXXX .................", +"................. XXXXXXX XXXX XXXX XXXXXXX ..................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ...................", +"................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ....................", +".................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX .....................", +"..................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXX XXXXXXXXXX ..........................", +".......................... XXXXX XXXXX ...........................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXX XXXXXXXXX .............................", +"........................... XXXX XXXX .............................", +"........................... .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXX XXXXXXXXXXX .............................", +"........................... XXXXXXX XXXXXXX .............................", +"............................ XXX XXX .............................", +"............................ .............................", +"............................ ..............................", +".............................. ...............................", +"................................ ..................................", +"................................... .....................................", +"...................................... ........................................", +".......................................... ............................................", +"............................................... ................................................", +"...................................................... .......................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/kdd21.xpm b/pixmaps/kdd21.xpm new file mode 100644 index 0000000..099dc9d --- /dev/null +++ b/pixmaps/kdd21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *kdd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +".......... ..........", +"......... .........", +".......... ..........", +"......... .........", +".... .. X .. ....", +".. X . X . X ..", +". XX XX X XX XX .", +". X X X X .", +". X X X X .", +". X X X .", +". X X .", +".. X XXXXXXX X ..", +"... XX XX ...", +".... ....", +".... XXXXX ....", +".... ....", +".... XXXXXXXXX ....", +"..... .....", +".....................", +"....................." +}; diff --git a/pixmaps/kdd25.xpm b/pixmaps/kdd25.xpm new file mode 100644 index 0000000..b64ee21 --- /dev/null +++ b/pixmaps/kdd25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *kdd25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... X ..........", +".... . X X . ....", +"... XXXX X X XXXX ...", +".. X X X X X X ..", +".. X X X X X ..", +".. X X X X X ..", +".. X X X X ..", +"... X X X X ...", +"... X X X X ....", +".... XXXXXXXXXXXXX .....", +"..... .....", +"..... XXXXXXXXX .....", +"..... XX XX .....", +"..... XXXXXXXXX .....", +"...... X X ......", +"...... .......", +"......... .........", +".........................", +"........................." +}; diff --git a/pixmaps/kdd29.xpm b/pixmaps/kdd29.xpm new file mode 100644 index 0000000..e3aadb8 --- /dev/null +++ b/pixmaps/kdd29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *kdd29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............. ..............", +".............. ..............", +"............ ............", +".............. ..............", +".............. ..............", +"............. .............", +"............ X ............", +"............ X X ............", +"..... .. X X .. .....", +".... XXXXX X X XXXXX ....", +"... X XX X X XX X ...", +".. X X X X X ..", +".. X X X X X ..", +".. X X X X ..", +".. X X X X ..", +"... X X X X ...", +".... X XXXXXXXXXXX X ....", +"..... XXX XXX .....", +"...... ......", +"...... XXXXXXXXXXX ......", +"...... XX XX ......", +"...... XXXXXXXXX ......", +"...... XX XX ......", +"....... ......", +".......... .........", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/kdd33.xpm b/pixmaps/kdd33.xpm new file mode 100644 index 0000000..d1f017d --- /dev/null +++ b/pixmaps/kdd33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *kdd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"................ ................", +".............. ..............", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +".............. XXX ..............", +"............. X X .............", +"...... .. X X .. ......", +"..... XXXXX X X XXXXX .....", +".... X XX X X XX X ....", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X X X X ...", +".... X X X X ...", +".... X X X X ....", +"..... X XXXXXXXXX X .....", +"...... XXXX XXXX ......", +"....... .......", +"....... .......", +"........ XXXXXXXXXXXXX .......", +"........ XX XX .......", +"........ XXXXXXXXX .......", +"........ XXX XXX .......", +"........ .......", +"......... ........", +"............ ...........", +".................................", +"................................." +}; diff --git a/pixmaps/kdd37.xpm b/pixmaps/kdd37.xpm new file mode 100644 index 0000000..fc3fc68 --- /dev/null +++ b/pixmaps/kdd37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *kdd37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".................. ..................", +".................. ..................", +"................ ................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................ XXX ................", +"............... X X ...............", +"....... ... X X ... .......", +"..... XXXXX . X X . XXXXX .....", +".... XX XX X X XX XX ....", +"... X X X X X X ...", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X XX XX X ...", +".... X X X X ....", +".... X X X X ....", +"..... X X X X .....", +"...... X XXXXXXXXXXXXX X ......", +"....... XXXX XXXX .......", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXX ........", +"........ XX XX ........", +"........ XXXXXXXXX ........", +"........ XXXX XXXX ........", +"........ ........", +".......... ..........", +"............. ..............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/kdd40.xpm b/pixmaps/kdd40.xpm new file mode 100644 index 0000000..547c56f --- /dev/null +++ b/pixmaps/kdd40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * kdd40[] = { +"40 40 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ", +" ..... ", +" . ", +" . ", +" . ", +" . ", +" ... ", +" .XXX. ", +" .X...X. ", +" .X...X. ", +" ..... .X...X. ..... ", +" ..XXXXX.. .X...X. ..XXXXX.. ", +" .XX.....XX...X...X...XX.....XX. ", +" .X.........X...X.X...X.........X. ", +" .X...........X..X.X..X...........X. ", +" .X............X..X..X............X. ", +" .X............XX.X.XX............X. ", +" .X.............X...X.............X. ", +" .XX............XX.XX............XX. ", +" .X.............X.X.............X. ", +" .X............X.X............X. ", +" .XX......XXXXXXXXXXX......XX. ", +" ..X.XXXXX.........XXXXX.X.. ", +" ..XX.................XX.. ", +" ....................... ", +" ....................... ", +" ....XXXXXXXXXXXXXXX.... ", +" ..XXX.............XXX.. ", +" .......XXXXXXXXX....... ", +" ...XXXX.........XXXX... ", +" ..XX...............XX.. ", +" ....................... ", +" ................... ", +" ........... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/kdd45.xpm b/pixmaps/kdd45.xpm new file mode 100644 index 0000000..4fd4dd2 --- /dev/null +++ b/pixmaps/kdd45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *kdd45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"................... XXX ...................", +".................. X X ..................", +".................. X X ..................", +".................. X X ..................", +"........ ... X X ... ........", +"...... XXXXXX . X X . XXXXXX ......", +"..... XX XX X X XX XX .....", +".... X X X X X X ....", +".... X X X X X X ....", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X X X X ...", +".... X X X X ...", +".... X X X X ....", +"..... X X X X ....", +"...... X X X X .....", +"....... XX XXXXXXXXXXXXX XX ......", +"........ XX XXXXX XXXXX XX .......", +"......... X X ........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXX .........", +".......... XXXXX XXXXX ..........", +".......... X X ..........", +".......... XXXXXXXXXXX ..........", +".......... XXXX XXXX ..........", +".......... XX XX ..........", +".......... ..........", +"............. ............", +"................. ................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/kdd49.xpm b/pixmaps/kdd49.xpm new file mode 100644 index 0000000..26cd928 --- /dev/null +++ b/pixmaps/kdd49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *kdd49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"..................... .....................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... XXX .....................", +".................... X X ....................", +".................... X X ....................", +".................... X X ....................", +"......... .... X X .... .........", +"....... XXXXXX .. X X .. XXXXXX .......", +"...... XX XX X X XX XX ......", +"..... X XX X X XX X .....", +".... . X X X X . ....", +"...... X X X X ......", +"... . X X X X . ...", +"... . X X X . ...", +"... . X X X . ...", +"... . X X . ...", +"... X XX XX X ...", +".... X X X X ....", +".... X X X X ....", +"..... X X X X .....", +"...... XX XXXXXXXXXXXXX XX ......", +"....... X XXXXX X XXXXX X .......", +"........ XXX XXX ........", +".......... .........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXX XXXXXX ..........", +".......... ..........", +".......... XXXXXXXXXXX ..........", +".......... XXXX XXXX ..........", +".......... XXX XXX ..........", +".......... ..........", +"........... ...........", +".............. ..............", +"................... ..................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/kdd54.xpm b/pixmaps/kdd54.xpm new file mode 100644 index 0000000..f97e127 --- /dev/null +++ b/pixmaps/kdd54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *kdd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................ ........................", +"....................... XXXX .......................", +"....................... XXXXXX .......................", +"...................... XX XX ......................", +"........... ..... XX XX ..... ...........", +"......... .. XX XX .. .........", +"....... XXXXXX XX XX XXXXXX .......", +"...... XXXXXXXXXX XX XX XXXXXXXXXX ......", +"..... XXXX XXXX XXXXXX XXXX XXXX .....", +"..... XXX XXX XXXX XXX XXX .....", +".... XXX XXX XX XXX XXX ....", +".... XXX XXX XX XXX XXX ....", +".... XX XX XX XX ....", +".... XX XXX XXX XX ....", +".... XXX XX XX XXX ....", +".... XXX XXX XXX XXX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XX XX XXX .....", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXX XXXXXXXXXXXXXXXX XXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +"........... ...........", +"............ ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXX XXXXXX ............", +"............ X X ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ............", +"............ XX XX ............", +"............ ............", +".............. ..............", +"................. .................", +"..................... .....................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/kdd58.xpm b/pixmaps/kdd58.xpm new file mode 100644 index 0000000..c501f69 --- /dev/null +++ b/pixmaps/kdd58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *kdd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"......................... .........................", +"......................... .........................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +".......................... ..........................", +"......................... XXXX .........................", +"......................... XXXXXX .........................", +"........................ XX XX ........................", +"........... ...... XX XX ...... ...........", +"......... .... XX XX .... .........", +"....... XXXXXXX .. XX XX .. XXXXXXX .......", +"...... XXXXXXXXXXX XX XX XXXXXXXXXXX ......", +"..... XXXX XXXXX XXXXXX XXXXX XXXX .....", +"..... XXX XXXX XXXX XXXX XXX .....", +".... XXX XXX XXXX XXX XXX ....", +".... XXX XXX XXXX XXX XXX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XXX XX ....", +".... XXX XXX XXX XXX ....", +".... XX XX XX XX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XX XX XXX ......", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXXX XXXXXXXXXXXXXXXX XXXX ........", +"......... XXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXX .........", +".......... XXXXXXXXXX XXXXXXXXXX ..........", +"........... XXX XXX ...........", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ X X ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ XXX XXX ............", +"............ ............", +"............... ...............", +".................. ..................", +"....................... .......................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/kdd64.xpm b/pixmaps/kdd64.xpm new file mode 100644 index 0000000..af6a1c8 --- /dev/null +++ b/pixmaps/kdd64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *kdd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................ ............................", +"............................ ............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"........................... XXXXXX ...........................", +".......................... XXX XXX ..........................", +".......................... XX XX ..........................", +"............. ...... XX XX ...... .............", +"........... .... XX XX .... ...........", +"......... XXXXXXX .. XX XX .. XXXXXXX .........", +"........ XXXXXXXXXXX XX XX XXXXXXXXXXX ........", +"....... XXXX XXXXX XXX XXX XXXXX XXXX .......", +"...... XXX XXXX XX XX XXXX XXX ......", +"...... XXX XXX XXXXXX XXX XXX ......", +"..... XXX XXX XXXX XXX XXX .....", +"..... XXX XXX XXXX XXX XXX .....", +"..... XX XXX XX XXX XX .....", +"..... XX XXX XX XXX XX .....", +"..... XX XXX XXX XX .....", +"..... XXX XXX XXX XXX .....", +"...... XXX XX XX XXX ......", +"...... XXX XXX XXX XXX ......", +"....... XXX XXX XXX XXX .......", +"....... XXX XX XX XXX .......", +"........ XXX XX XX XXX ........", +"......... XXX XX XX XXX .........", +".......... XXX XXXXXXXXXXXXXXXXXX XXX ..........", +"........... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ...........", +"............ XXXXXXXXXX XXXXXXXXXX ............", +"............. XXX XXX .............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXX XXX ..............", +"............... ..............", +"................. .................", +"..................... ....................", +"......................... .........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/kdd72.xpm b/pixmaps/kdd72.xpm new file mode 100644 index 0000000..5a24a6c --- /dev/null +++ b/pixmaps/kdd72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *kdd72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"............................... ...............................", +"............................... ...............................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... XX ...............................", +".............................. XXXXXX ..............................", +".............................. XXX XXX ..............................", +"............................. XX XX .............................", +"............................. XXX XXX .............................", +".............. ....... XX XX ....... ..............", +"........... .... XX XX .... ...........", +"......... XXXXXXXX .. XX XX .. XXXXXXXX .........", +"........ XXXXXXXXXXXXX XX XX XXXXXXXXXXXXX ........", +"....... XXXXX XXXXX XXX XXX XXXXX XXXXX .......", +"...... XXX XXXX XX XX XXXX XXX ......", +"...... XXX XXX XX XX XXX XXX ......", +"..... XXX XXX XX XX XXX XXX .....", +"..... XX XXX XX XX XXX XX .....", +".... XXX XXX XXXX XXX XXX ....", +".... XX XXX XXXX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XXX XX ....", +".... XXX XXX XXX XXX ....", +".... XXX XX XX XXX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XXX XXX XXX .....", +"...... XXX XX XX XXX ......", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXXX XX XX XXXX ........", +"......... XXXX XXXXXXXXXXXXXXXXXX XXXX .........", +".......... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ..........", +"........... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...........", +"............. XXXXXXX XXXXXXX .............", +".............. XX XX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXX XXXX ...............", +"............... ...............", +"............... XXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"............... XXXXXX XXXXXX ...............", +"............... XXX XXX ...............", +"............... ...............", +"................. .................", +".................... ....................", +"....................... ........................", +"............................. .............................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/kdd80.xpm b/pixmaps/kdd80.xpm new file mode 100644 index 0000000..c2fbb38 --- /dev/null +++ b/pixmaps/kdd80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *kdd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"................................... ...................................", +"................................... ...................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XX ...................................", +".................................. XXXXXX ..................................", +".................................. XXX XXX ..................................", +"................................. XX XX .................................", +"................................. XXX XXX .................................", +"................ ........ XX XX ........ ................", +"............. ..... XX XX ..... .............", +"............ XXXXXXXXX ... XX XX ... XXXXXXXXX ............", +".......... XXXXXXXXXXXXX .. XX XX .. XXXXXXXXXXXXX ..........", +"......... XXXXX XXXXX XX XX XXXXX XXXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX ........", +"........ XXX XXXX XX XX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX XXX .......", +"....... XXX XXX XX XX XXX XX .......", +"...... XXX XXX XXXXXX XXX XXX ......", +"...... XXX XXX XXXX XXX XXX ......", +"...... XX XXX XXXX XXX XX ......", +"...... XX XXX XX XXX XX ......", +"...... XX XXX XX XXX XX ......", +"...... XX XX XXX XX ......", +"...... XXX XXX XXX XXX ......", +"....... XX XXX XXX XX .......", +"....... XXX XX XX XXX .......", +"........ XX XXX XXX XXX ........", +"........ XXX XXX XXX XXX ........", +"......... XXX XX XX XXX .........", +".......... XXX XX XX XXX ..........", +"........... XXXX XX XX XXXX ...........", +"............ XXXX XXXXXXXXXXXXXXXXXX XXXX ............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX .............", +".............. XXX XXXXXXXXXXX XXXXXXXXXXX XXX ..............", +"............... XXXXXXXXX XXXXXXXXX ...............", +"................ XXXX XXXX ................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXX XXX .................", +"................. .................", +"................. XXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXX XXXXXXX ..................", +".................. XXX XXX ..................", +".................. ..................", +".................... ....................", +"....................... .......................", +"........................... ...........................", +"................................ ................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/kdd87.xpm b/pixmaps/kdd87.xpm new file mode 100644 index 0000000..439c2ff --- /dev/null +++ b/pixmaps/kdd87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *kdd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"...................................... ......................................", +"..................................... .....................................", +"...................................... ......................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"..................................... XXX .....................................", +"..................................... XXXXXXX .....................................", +".................................... XXXXXXXXX ....................................", +".................................... XXX XXX ....................................", +"................................... XXX XXX ...................................", +".................. ......... XXX XXX ......... ..................", +"............... ...... XXX XXX ...... ...............", +"............. .... XXX XXX .... .............", +"........... XXXXXXXXX .. XXX XXX .. XXXXXXXXX ...........", +".......... XXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXXXX .........", +"........ XXXXXX XXXXXXX XXX XXX XXXXXXX XXXXXX ........", +"........ XXXX XXXXX XXX XXX XXXXX XXXX ........", +"....... XXXX XXXXX XXX XXX XXXXX XXXX .......", +"....... XXX XXXX XXX XXX XXXX XXX .......", +"....... XXXX XXXX XXXXX XXXX XXXX .......", +"...... XXX XXXX XXXXX XXXX XXX ......", +"...... XXX XXX XXX XXX XXX ......", +"...... XXX XXXX XXX XXXX XXX ......", +"...... XXX XXX X XXX XXX ......", +"...... XXX XXXX X XXXX XXX ......", +"...... XXXX XXX XXX XXXX ......", +"....... XXX XXXX XXXX XXX ......", +"....... XXXX XXX XXX XXXX .......", +"........ XXX XXX XXX XXX .......", +"........ XXXX XXXX XXXX XXXX ........", +"......... XXXX XXX XXX XXXX ........", +"......... XXXX XXX XXX XXXX .........", +".......... XXXX XXX XXX XXXX .........", +"........... XXXX XXX XXX XXXX ..........", +"............ XXXX XXXXXXXXXXXXXXXXXXX XXXX ...........", +"............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ............", +".............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX .............", +"............... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..............", +"................ XXXXXXXXX XXXXXXXXX ...............", +"................. XXX XXX .................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXX XXXXXXXXXXXXX ..................", +".................. XXXXXX XXXXXX ..................", +".................. ..................", +"................... XXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...................", +"................... XXXXXXXX XXXXXXXX ...................", +"................... XXX XXX ...................", +"................... ...................", +".................... ...................", +"....................... ......................", +".......................... .........................", +".............................. .............................", +".................................... ...................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/kdd95.xpm b/pixmaps/kdd95.xpm new file mode 100644 index 0000000..e1a37c1 --- /dev/null +++ b/pixmaps/kdd95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *kdd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +"......................................... XXX .........................................", +"......................................... XXXXXXX .........................................", +"........................................ XXXXXXXXX ........................................", +"........................................ XXX XXX ........................................", +"....................................... XXX XXX .......................................", +".................... .......... XXX XXX .......... ....................", +"................. ....... XXX XXX ....... .................", +"............... ..... XXX XXX ..... ...............", +"............. ... XXX XXX ... .............", +"............ XXXXXXXXX .. XXX XXX .. XXXXXXXXX ............", +"........... XXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXX XXXXXXXX XXX XXX XXXXXXXX XXXXXXX ..........", +"......... XXXXX XXXXXX XXX XXX XXXXXX XXXXX .........", +"......... XXXX XXXXX XXX XXX XXXXX XXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX ........", +"........ XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXXX XXXXX XXXX XXX .......", +"....... XXX XXXX XXX XXXX XXX .......", +"....... XXX XXX XXX XXX XXX .......", +"....... XXX XXXX XXX XXXX XXX .......", +"....... XXX XXX X XXX XXX .......", +"....... XXX XXXX XXXX XXX .......", +"....... XXXX XXX XXX XXXX .......", +"........ XXX XXXX XXX XXX ........", +"........ XXXX XXXX XXXX XXXX ........", +"......... XXX XXX XXX XXX .........", +"......... XXXX XXXX XXX XXXX .........", +".......... XXXX XXXX XXXX XXXX ..........", +"........... XXXX XXX XXX XXXX ...........", +"........... XXXX XXX XXX XXXX ...........", +"............ XXXXX XXX XXX XXXXX ............", +"............. XXXXX XXX XXX XXXXX .............", +".............. XXXXX XXXXXXXXXXXXXXXXXXXXX XXXXX ..............", +"............... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ...............", +"................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ................", +"................. XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXX XXXXXXXXX ..................", +"................... XXXX XXXX ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXX XXXXXXXXX .....................", +".................... XXXXX XXXXX .....................", +".................... .....................", +".................... XXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXX XXXXX .....................", +"..................... X X .....................", +"..................... .....................", +"....................... ........................", +".......................... ...........................", +"............................. ..............................", +"................................. ..................................", +"....................................... ........................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/kdl108.xpm b/pixmaps/kdl108.xpm new file mode 100644 index 0000000..d04b7bd --- /dev/null +++ b/pixmaps/kdl108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *kdl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................... ................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... XXX ................................................", +".............................................. XXXXXXX ...............................................", +".............................................. XXXXXXXXX ...............................................", +"............................................. XXXX XXXX ..............................................", +"............................................. XXX XXX ..............................................", +"............................................. XXX XXX ..............................................", +"............................................ XXX XXX .............................................", +"...................... ............ XXX XXX ............ .......................", +".................. ......... XXX XXX ......... ...................", +"................ ....... XXX XXX ....... .................", +"............... XXXXXXXXXX ..... XXX XXX ..... XXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXX ... XXX XXX ... XXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXX . XXX XXX . XXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXX XXXXXXXX XXX XXX XXXXXXXX XXXXXXXX ............", +".......... XXXXX XXXXXX XXX XXX XXXXXX XXXXX ...........", +".......... XXXX XXXXX XXX XXX XXXXX XXXX ...........", +"......... XXXX XXXXX XXX XXX XXXXX XXXX ..........", +"......... XXX XXXX XXX XXX XXXX XXX ..........", +"........ XXXX XXXX XXX XXX XXXX XXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX .........", +"........ XXXX XXXX XXX XXX XXXX XXXX .........", +"....... XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX ........", +"....... XXX XXXX XXX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX ........", +"....... XXX XXXX X XXXX XXX ........", +"....... XXXX XXX XXX XXXX ........", +"........ XXX XXX XXX XXX .........", +"........ XXX XXXX XXXX XXX .........", +"........ XXX XXX XXX XXX .........", +"......... XXXX XXX XXX XXXX ..........", +"......... XXX XXXX XXXX XXX ..........", +".......... XXXX XXXX XXXX XXXX ...........", +"........... XXXX XXX XXX XXXX ............", +"........... XXXX XXX XXX XXXX ............", +"............ XXXXX XXX XXX XXXXX .............", +"............. XXXXX XXX XXX XXXXX ..............", +".............. XXXXX XXX XXX XXXXX ...............", +"............... XXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXX ................", +"................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX .................", +"................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXX XXXXXXXXXXX ....................", +"..................... XXXXX XXXXX ......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXX XXXXXXXXXXX ........................", +"...................... XXXXXXXX XXXXXXXX ........................", +"....................... XXX XXX ........................", +"....................... ........................", +"....................... XXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXX XXXXXXXXXXXX ........................", +"....................... XXXXXXXX XXXXXXXX ........................", +"....................... XXXX XXXX ........................", +"....................... ........................", +"....................... ........................", +"......................... ..........................", +"........................... .............................", +".............................. ................................", +".................................. ...................................", +"...................................... .......................................", +"............................................. ..............................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/kdl116.xpm b/pixmaps/kdl116.xpm new file mode 100644 index 0000000..98f27c2 --- /dev/null +++ b/pixmaps/kdl116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *kdl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +".................................................... .....................................................", +"................................................... ....................................................", +".................................................. XXXXX ...................................................", +"................................................. XXXXXXXXX ..................................................", +"................................................. XXXXXXXXXXX ..................................................", +"................................................ XXX XXX .................................................", +"................................................ XXX XXX .................................................", +"................................................ XXX XXX .................................................", +"............................................... XXX XXX ................................................", +"............................................... XXX XXX ................................................", +"......................... ............. XXX XXX ............. ..........................", +"...................... ......... XXX XXX ......... .......................", +".................... ....... XXX XXX ....... .....................", +".................. XXXXXXXXXX ..... XXX XXX ..... XXXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXX ... XXX XXX ... XXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXX .. XXX XXX .. XXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXX XXXXXXXX X XXX XXX X XXXXXXXX XXXXXXXX ...............", +"............. XXXXX XXXXXXX XXX XXX XXXXXXX XXXXX ..............", +"............ XXXXX XXXXXX XXX XXX XXXXXX XXXXX .............", +"............ XXXX XXXXX XXX XXX XXXXX XXXX .............", +"........... XXXX XXXX XXX XXX XXXX XXXX ............", +"........... XXX XXXX XXX XXX XXXX XXX ............", +".......... XXXX XXXX XXX XXX XXXX XXXX ...........", +".......... XXX XXXX XXX XXX XXXX XXX ...........", +".......... XXXX XXX XXX XXX XXX XXXX ...........", +"......... XXX XXXX XXXXX XXXX XXX ..........", +"......... XXX XXXX XXXXX XXXX XXX ..........", +"......... XXX XXX XXX XXX XXX ..........", +"......... XXX XXXX XXX XXXX XXX ..........", +"......... XXX XXX XXX XXX XXX ..........", +"......... XXX XXXX XXXX XXX ..........", +"......... XXXX XXX XXX XXXX ..........", +".......... XXX XXX XXX XXX ...........", +".......... XXX XXXX XXXX XXX ...........", +"........... XXX XXX XXX XXX ............", +"........... XXXX XXX XXX XXXX ............", +"............ XXX XXXX XXXX XXX .............", +"............ XXXX XXXX XXXX XXXX .............", +"............. XXXX XXX XXX XXXX ..............", +".............. XXXX XXX XXX XXXX ...............", +".............. XXXXX XXX XXX XXXXX ...............", +"............... XXXXX XXX XXX XXXXX ................", +"................ XXXXX XXX XXX XXXXX .................", +"................. XXXXX XXXXXXXXXXXXXXXXXXXXXXX XXXXX ..................", +".................. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ...................", +"................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXX XXXXXXXXX .......................", +"........................ XX XX .........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXX XXXXXXXXXXXX ..........................", +"......................... XXXXXXXX XXXXXXXX ..........................", +"......................... XXXX XXXX ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXX XXXXXXXXXXXX ..........................", +"......................... XXXXXXX XXXXXXX ..........................", +"......................... XXXX XXXX ..........................", +"......................... ..........................", +".......................... ...........................", +"............................ .............................", +"............................... ................................", +".................................. ...................................", +"...................................... .......................................", +".......................................... ...........................................", +"................................................. ..................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/kdl129.xpm b/pixmaps/kdl129.xpm new file mode 100644 index 0000000..eefa794 --- /dev/null +++ b/pixmaps/kdl129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *kdl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................... ................................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"....................................................... XXXXXX ........................................................", +"...................................................... XXXXXXXX .......................................................", +"...................................................... XXXXXXXXXX .......................................................", +"..................................................... XXXXXXXXXXXX ......................................................", +"..................................................... XXXXX XXXXX ......................................................", +"..................................................... XXXX XXXX ......................................................", +".................................................... XXXX XXXX .....................................................", +".................................................... XXXXX XXXXX .....................................................", +"........................... .............. XXXX XXXX .............. ............................", +"........................ .......... XXXX XXXX .......... .........................", +"...................... ........ XXXX XXXX ........ .......................", +".................... ...... XXXX XXXX ...... .....................", +".................. XXXXXXXXXXXX .... XXXX XXXX .... XXXXXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXXXX ... XXXX XXXX ... XXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXX . XXXX XXXX . XXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXX XXXXXXXXXXX XXXX XXXX XXXXXXXXXXX XXXXXXXXXXX ...............", +"............. XXXXXXXXX XXXXXXXXX XXXX XXXX XXXXXXXXX XXXXXXXXX ..............", +"............ XXXXXXX XXXXXXXX XXXXX XXXXX XXXXXXXX XXXXXXX .............", +"............ XXXXXX XXXXXXX XXXX XXXX XXXXXXX XXXXXX .............", +"........... XXXXX XXXXXX XXXXX XXXXX XXXXXX XXXXX ............", +"........... XXXXX XXXXXX XXXX XXXX XXXXXX XXXXX ............", +".......... XXXXX XXXXXX XXXXXXXXXX XXXXXX XXXXX ...........", +".......... XXXXX XXXXXX XXXXXXXX XXXXXX XXXXX ...........", +".......... XXXXX XXXXX XXXXXXXX XXXXX XXXXX ...........", +"......... XXXXX XXXXX XXXXXX XXXXX XXXXX ..........", +"......... XXXXX XXXXX XXXXXX XXXXX XXXXX ..........", +"......... XXXX XXXXX XXXX XXXXX XXXX ..........", +"......... XXXX XXXXX XXXX XXXXX XXXX ..........", +"......... XXXX XXXXX XX XXXXX XXXX ..........", +"......... XXXX XXXXX XX XXXXX XXXX ..........", +"......... XXXXX XXXXX XX XXXXX XXXXX ..........", +"......... XXXXX XXXXX XXXXX XXXXX ..........", +".......... XXXXX XXXXX XXXXX XXXXX ...........", +".......... XXXXX XXXX XXXX XXXXX ...........", +".......... XXXXX XXXXX XXXXX XXXXX ...........", +"........... XXXXX XXXXX XXXXX XXXXX ............", +"........... XXXXX XXXX XXXX XXXXX ............", +"............ XXXXX XXXXX XXXXX XXXXX .............", +"............ XXXXX XXXXX XXXXX XXXXX .............", +"............. XXXXXX XXXXX XXXXX XXXXXX ..............", +".............. XXXXXX XXXXX XXXXX XXXXXX ...............", +".............. XXXXXX XXXX XXXX XXXXXX ...............", +"............... XXXXXXX XXXX XXXX XXXXXXX ................", +"................ XXXXXXX XXXX XXXX XXXXXXX .................", +"................. XXXXXXX XXXX XXXX XXXXXXX ..................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ...................", +"................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ....................", +".................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX .....................", +"..................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXX XXXXXXXXXX ..........................", +".......................... XXXXX XXXXX ...........................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXX XXXXXXXXX .............................", +"........................... XXXX XXXX .............................", +"........................... .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXX XXXXXXXXXXX .............................", +"........................... XXXXXXX XXXXXXX .............................", +"............................ XXX XXX .............................", +"............................ .............................", +"............................ ..............................", +".............................. ...............................", +"................................ ..................................", +"................................... .....................................", +"...................................... ........................................", +".......................................... ............................................", +"............................................... ................................................", +"...................................................... .......................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/kdl21.xpm b/pixmaps/kdl21.xpm new file mode 100644 index 0000000..781c288 --- /dev/null +++ b/pixmaps/kdl21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *kdl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +".......... ..........", +"......... .........", +".......... ..........", +"......... .........", +".... .. X .. ....", +".. X . X . X ..", +". XX XX X XX XX .", +". X X X X .", +". X X X X .", +". X X X .", +". X X .", +".. X XXXXXXX X ..", +"... XX XX ...", +".... ....", +".... XXXXX ....", +".... ....", +".... XXXXXXXXX ....", +"..... .....", +".....................", +"....................." +}; diff --git a/pixmaps/kdl25.xpm b/pixmaps/kdl25.xpm new file mode 100644 index 0000000..54e1861 --- /dev/null +++ b/pixmaps/kdl25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *kdl25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... X ..........", +".... . X X . ....", +"... XXXX X X XXXX ...", +".. X X X X X X ..", +".. X X X X X ..", +".. X X X X X ..", +".. X X X X ..", +"... X X X X ...", +"... X X X X ....", +".... XXXXXXXXXXXXX .....", +"..... .....", +"..... XXXXXXXXX .....", +"..... XX XX .....", +"..... XXXXXXXXX .....", +"...... X X ......", +"...... .......", +"......... .........", +".........................", +"........................." +}; diff --git a/pixmaps/kdl29.xpm b/pixmaps/kdl29.xpm new file mode 100644 index 0000000..a313606 --- /dev/null +++ b/pixmaps/kdl29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *kdl29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............. ..............", +".............. ..............", +"............ ............", +".............. ..............", +".............. ..............", +"............. .............", +"............ X ............", +"............ X X ............", +"..... .. X X .. .....", +".... XXXXX X X XXXXX ....", +"... X XX X X XX X ...", +".. X X X X X ..", +".. X X X X X ..", +".. X X X X ..", +".. X X X X ..", +"... X X X X ...", +".... X XXXXXXXXXXX X ....", +"..... XXX XXX .....", +"...... ......", +"...... XXXXXXXXXXX ......", +"...... XX XX ......", +"...... XXXXXXXXX ......", +"...... XX XX ......", +"....... ......", +".......... .........", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/kdl33.xpm b/pixmaps/kdl33.xpm new file mode 100644 index 0000000..c075637 --- /dev/null +++ b/pixmaps/kdl33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *kdl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"................ ................", +".............. ..............", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +".............. XXX ..............", +"............. X X .............", +"...... .. X X .. ......", +"..... XXXXX X X XXXXX .....", +".... X XX X X XX X ....", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X X X X ...", +".... X X X X ...", +".... X X X X ....", +"..... X XXXXXXXXX X .....", +"...... XXXX XXXX ......", +"....... .......", +"....... .......", +"........ XXXXXXXXXXXXX .......", +"........ XX XX .......", +"........ XXXXXXXXX .......", +"........ XXX XXX .......", +"........ .......", +"......... ........", +"............ ...........", +".................................", +"................................." +}; diff --git a/pixmaps/kdl37.xpm b/pixmaps/kdl37.xpm new file mode 100644 index 0000000..668d9fe --- /dev/null +++ b/pixmaps/kdl37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *kdl37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".................. ..................", +".................. ..................", +"................ ................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................ XXX ................", +"............... X X ...............", +"....... ... X X ... .......", +"..... XXXXX . X X . XXXXX .....", +".... XX XX X X XX XX ....", +"... X X X X X X ...", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X XX XX X ...", +".... X X X X ....", +".... X X X X ....", +"..... X X X X .....", +"...... X XXXXXXXXXXXXX X ......", +"....... XXXX XXXX .......", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXX ........", +"........ XX XX ........", +"........ XXXXXXXXX ........", +"........ XXXX XXXX ........", +"........ ........", +".......... ..........", +"............. ..............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/kdl40.xpm b/pixmaps/kdl40.xpm new file mode 100644 index 0000000..bd33263 --- /dev/null +++ b/pixmaps/kdl40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * kdl40[] = { +"40 40 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ", +" ..... ", +" . ", +" . ", +" . ", +" . ", +" ... ", +" .XXX. ", +" .X...X. ", +" .X...X. ", +" ..... .X...X. ..... ", +" ..XXXXX.. .X...X. ..XXXXX.. ", +" .XX.....XX...X...X...XX.....XX. ", +" .X.........X...X.X...X.........X. ", +" .X...........X..X.X..X...........X. ", +" .X............X..X..X............X. ", +" .X............XX.X.XX............X. ", +" .X.............X...X.............X. ", +" .XX............XX.XX............XX. ", +" .X.............X.X.............X. ", +" .X............X.X............X. ", +" .XX......XXXXXXXXXXX......XX. ", +" ..X.XXXXX.........XXXXX.X.. ", +" ..XX.................XX.. ", +" ....................... ", +" ....................... ", +" ....XXXXXXXXXXXXXXX.... ", +" ..XXX.............XXX.. ", +" .......XXXXXXXXX....... ", +" ...XXXX.........XXXX... ", +" ..XX...............XX.. ", +" ....................... ", +" ................... ", +" ........... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/kdl45.xpm b/pixmaps/kdl45.xpm new file mode 100644 index 0000000..22f00d3 --- /dev/null +++ b/pixmaps/kdl45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *kdl45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"................... XXX ...................", +".................. X X ..................", +".................. X X ..................", +".................. X X ..................", +"........ ... X X ... ........", +"...... XXXXXX . X X . XXXXXX ......", +"..... XX XX X X XX XX .....", +".... X X X X X X ....", +".... X X X X X X ....", +"... X X X X X X ...", +"... X X X X X ...", +"... X X X X X ...", +"... X X X X ...", +".... X X X X ...", +".... X X X X ....", +"..... X X X X ....", +"...... X X X X .....", +"....... XX XXXXXXXXXXXXX XX ......", +"........ XX XXXXX XXXXX XX .......", +"......... X X ........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXX .........", +".......... XXXXX XXXXX ..........", +".......... X X ..........", +".......... XXXXXXXXXXX ..........", +".......... XXXX XXXX ..........", +".......... XX XX ..........", +".......... ..........", +"............. ............", +"................. ................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/kdl49.xpm b/pixmaps/kdl49.xpm new file mode 100644 index 0000000..d49b1fb --- /dev/null +++ b/pixmaps/kdl49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *kdl49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"..................... .....................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... XXX .....................", +".................... X X ....................", +".................... X X ....................", +".................... X X ....................", +"......... .... X X .... .........", +"....... XXXXXX .. X X .. XXXXXX .......", +"...... XX XX X X XX XX ......", +"..... X XX X X XX X .....", +".... . X X X X . ....", +"...... X X X X ......", +"... . X X X X . ...", +"... . X X X . ...", +"... . X X X . ...", +"... . X X . ...", +"... X XX XX X ...", +".... X X X X ....", +".... X X X X ....", +"..... X X X X .....", +"...... XX XXXXXXXXXXXXX XX ......", +"....... X XXXXX X XXXXX X .......", +"........ XXX XXX ........", +".......... .........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXX XXXXXX ..........", +".......... ..........", +".......... XXXXXXXXXXX ..........", +".......... XXXX XXXX ..........", +".......... XXX XXX ..........", +".......... ..........", +"........... ...........", +".............. ..............", +"................... ..................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/kdl54.xpm b/pixmaps/kdl54.xpm new file mode 100644 index 0000000..68faf17 --- /dev/null +++ b/pixmaps/kdl54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *kdl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................ ........................", +"....................... XXXX .......................", +"....................... XXXXXX .......................", +"...................... XX XX ......................", +"........... ..... XX XX ..... ...........", +"......... .. XX XX .. .........", +"....... XXXXXX XX XX XXXXXX .......", +"...... XXXXXXXXXX XX XX XXXXXXXXXX ......", +"..... XXXX XXXX XXXXXX XXXX XXXX .....", +"..... XXX XXX XXXX XXX XXX .....", +".... XXX XXX XX XXX XXX ....", +".... XXX XXX XX XXX XXX ....", +".... XX XX XX XX ....", +".... XX XXX XXX XX ....", +".... XXX XX XX XXX ....", +".... XXX XXX XXX XXX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XX XX XXX .....", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXX XXXXXXXXXXXXXXXX XXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +"........... ...........", +"............ ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXX XXXXXX ............", +"............ X X ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ............", +"............ XX XX ............", +"............ ............", +".............. ..............", +"................. .................", +"..................... .....................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/kdl58.xpm b/pixmaps/kdl58.xpm new file mode 100644 index 0000000..7810ede --- /dev/null +++ b/pixmaps/kdl58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *kdl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"......................... .........................", +"......................... .........................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +".......................... ..........................", +"......................... XXXX .........................", +"......................... XXXXXX .........................", +"........................ XX XX ........................", +"........... ...... XX XX ...... ...........", +"......... .... XX XX .... .........", +"....... XXXXXXX .. XX XX .. XXXXXXX .......", +"...... XXXXXXXXXXX XX XX XXXXXXXXXXX ......", +"..... XXXX XXXXX XXXXXX XXXXX XXXX .....", +"..... XXX XXXX XXXX XXXX XXX .....", +".... XXX XXX XXXX XXX XXX ....", +".... XXX XXX XXXX XXX XXX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XXX XX ....", +".... XXX XXX XXX XXX ....", +".... XX XX XX XX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XX XX XXX ......", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXXX XXXXXXXXXXXXXXXX XXXX ........", +"......... XXXX XXXXXXXXXXXXXXXXXXXXXXXX XXXX .........", +".......... XXXXXXXXXX XXXXXXXXXX ..........", +"........... XXX XXX ...........", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ X X ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ XXX XXX ............", +"............ ............", +"............... ...............", +".................. ..................", +"....................... .......................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/kdl64.xpm b/pixmaps/kdl64.xpm new file mode 100644 index 0000000..fb70d18 --- /dev/null +++ b/pixmaps/kdl64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *kdl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................ ............................", +"............................ ............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"........................... XXXXXX ...........................", +".......................... XXX XXX ..........................", +".......................... XX XX ..........................", +"............. ...... XX XX ...... .............", +"........... .... XX XX .... ...........", +"......... XXXXXXX .. XX XX .. XXXXXXX .........", +"........ XXXXXXXXXXX XX XX XXXXXXXXXXX ........", +"....... XXXX XXXXX XXX XXX XXXXX XXXX .......", +"...... XXX XXXX XX XX XXXX XXX ......", +"...... XXX XXX XXXXXX XXX XXX ......", +"..... XXX XXX XXXX XXX XXX .....", +"..... XXX XXX XXXX XXX XXX .....", +"..... XX XXX XX XXX XX .....", +"..... XX XXX XX XXX XX .....", +"..... XX XXX XXX XX .....", +"..... XXX XXX XXX XXX .....", +"...... XXX XX XX XXX ......", +"...... XXX XXX XXX XXX ......", +"....... XXX XXX XXX XXX .......", +"....... XXX XX XX XXX .......", +"........ XXX XX XX XXX ........", +"......... XXX XX XX XXX .........", +".......... XXX XXXXXXXXXXXXXXXXXX XXX ..........", +"........... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ...........", +"............ XXXXXXXXXX XXXXXXXXXX ............", +"............. XXX XXX .............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXX XXX ..............", +"............... ..............", +"................. .................", +"..................... ....................", +"......................... .........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/kdl72.xpm b/pixmaps/kdl72.xpm new file mode 100644 index 0000000..dd9070b --- /dev/null +++ b/pixmaps/kdl72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *kdl72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"............................... ...............................", +"............................... ...............................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... XX ...............................", +".............................. XXXXXX ..............................", +".............................. XXX XXX ..............................", +"............................. XX XX .............................", +"............................. XXX XXX .............................", +".............. ....... XX XX ....... ..............", +"........... .... XX XX .... ...........", +"......... XXXXXXXX .. XX XX .. XXXXXXXX .........", +"........ XXXXXXXXXXXXX XX XX XXXXXXXXXXXXX ........", +"....... XXXXX XXXXX XXX XXX XXXXX XXXXX .......", +"...... XXX XXXX XX XX XXXX XXX ......", +"...... XXX XXX XX XX XXX XXX ......", +"..... XXX XXX XX XX XXX XXX .....", +"..... XX XXX XX XX XXX XX .....", +".... XXX XXX XXXX XXX XXX ....", +".... XX XXX XXXX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XX XXX XX ....", +".... XX XXX XXX XX ....", +".... XXX XXX XXX XXX ....", +".... XXX XX XX XXX ....", +"..... XXX XXX XXX XXX .....", +"..... XXX XXX XXX XXX .....", +"...... XXX XX XX XXX ......", +"...... XXX XX XX XXX ......", +"....... XXX XX XX XXX .......", +"........ XXXX XX XX XXXX ........", +"......... XXXX XXXXXXXXXXXXXXXXXX XXXX .........", +".......... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ..........", +"........... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ...........", +"............. XXXXXXX XXXXXXX .............", +".............. XX XX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXX XXXX ...............", +"............... ...............", +"............... XXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXX XXXXXXXXXX ...............", +"............... XXXXXX XXXXXX ...............", +"............... XXX XXX ...............", +"............... ...............", +"................. .................", +".................... ....................", +"....................... ........................", +"............................. .............................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/kdl80.xpm b/pixmaps/kdl80.xpm new file mode 100644 index 0000000..862105d --- /dev/null +++ b/pixmaps/kdl80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *kdl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"................................... ...................................", +"................................... ...................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XX ...................................", +".................................. XXXXXX ..................................", +".................................. XXX XXX ..................................", +"................................. XX XX .................................", +"................................. XXX XXX .................................", +"................ ........ XX XX ........ ................", +"............. ..... XX XX ..... .............", +"............ XXXXXXXXX ... XX XX ... XXXXXXXXX ............", +".......... XXXXXXXXXXXXX .. XX XX .. XXXXXXXXXXXXX ..........", +"......... XXXXX XXXXX XX XX XXXXX XXXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX ........", +"........ XXX XXXX XX XX XXXX XXX ........", +"....... XXX XXX XXX XXX XXX XXX .......", +"....... XXX XXX XX XX XXX XX .......", +"...... XXX XXX XXXXXX XXX XXX ......", +"...... XXX XXX XXXX XXX XXX ......", +"...... XX XXX XXXX XXX XX ......", +"...... XX XXX XX XXX XX ......", +"...... XX XXX XX XXX XX ......", +"...... XX XX XXX XX ......", +"...... XXX XXX XXX XXX ......", +"....... XX XXX XXX XX .......", +"....... XXX XX XX XXX .......", +"........ XX XXX XXX XXX ........", +"........ XXX XXX XXX XXX ........", +"......... XXX XX XX XXX .........", +".......... XXX XX XX XXX ..........", +"........... XXXX XX XX XXXX ...........", +"............ XXXX XXXXXXXXXXXXXXXXXX XXXX ............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX .............", +".............. XXX XXXXXXXXXXX XXXXXXXXXXX XXX ..............", +"............... XXXXXXXXX XXXXXXXXX ...............", +"................ XXXX XXXX ................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX .................", +"................. XXXXXXX XXXXXXX .................", +"................. XXX XXX .................", +"................. .................", +"................. XXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. XXXXXXX XXXXXXX ..................", +".................. XXX XXX ..................", +".................. ..................", +".................... ....................", +"....................... .......................", +"........................... ...........................", +"................................ ................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/kdl87.xpm b/pixmaps/kdl87.xpm new file mode 100644 index 0000000..622981d --- /dev/null +++ b/pixmaps/kdl87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *kdl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"...................................... ......................................", +"..................................... .....................................", +"...................................... ......................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"..................................... XXX .....................................", +"..................................... XXXXXXX .....................................", +".................................... XXXXXXXXX ....................................", +".................................... XXX XXX ....................................", +"................................... XXX XXX ...................................", +".................. ......... XXX XXX ......... ..................", +"............... ...... XXX XXX ...... ...............", +"............. .... XXX XXX .... .............", +"........... XXXXXXXXX .. XXX XXX .. XXXXXXXXX ...........", +".......... XXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXXXX .........", +"........ XXXXXX XXXXXXX XXX XXX XXXXXXX XXXXXX ........", +"........ XXXX XXXXX XXX XXX XXXXX XXXX ........", +"....... XXXX XXXXX XXX XXX XXXXX XXXX .......", +"....... XXX XXXX XXX XXX XXXX XXX .......", +"....... XXXX XXXX XXXXX XXXX XXXX .......", +"...... XXX XXXX XXXXX XXXX XXX ......", +"...... XXX XXX XXX XXX XXX ......", +"...... XXX XXXX XXX XXXX XXX ......", +"...... XXX XXX X XXX XXX ......", +"...... XXX XXXX X XXXX XXX ......", +"...... XXXX XXX XXX XXXX ......", +"....... XXX XXXX XXXX XXX ......", +"....... XXXX XXX XXX XXXX .......", +"........ XXX XXX XXX XXX .......", +"........ XXXX XXXX XXXX XXXX ........", +"......... XXXX XXX XXX XXXX ........", +"......... XXXX XXX XXX XXXX .........", +".......... XXXX XXX XXX XXXX .........", +"........... XXXX XXX XXX XXXX ..........", +"............ XXXX XXXXXXXXXXXXXXXXXXX XXXX ...........", +"............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ............", +".............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX .............", +"............... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ..............", +"................ XXXXXXXXX XXXXXXXXX ...............", +"................. XXX XXX .................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXX XXXXXXXXXXXXX ..................", +".................. XXXXXX XXXXXX ..................", +".................. ..................", +"................... XXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...................", +"................... XXXXXXXX XXXXXXXX ...................", +"................... XXX XXX ...................", +"................... ...................", +".................... ...................", +"....................... ......................", +".......................... .........................", +".............................. .............................", +".................................... ...................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/kdl95.xpm b/pixmaps/kdl95.xpm new file mode 100644 index 0000000..8af0567 --- /dev/null +++ b/pixmaps/kdl95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *kdl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +"......................................... XXX .........................................", +"......................................... XXXXXXX .........................................", +"........................................ XXXXXXXXX ........................................", +"........................................ XXX XXX ........................................", +"....................................... XXX XXX .......................................", +".................... .......... XXX XXX .......... ....................", +"................. ....... XXX XXX ....... .................", +"............... ..... XXX XXX ..... ...............", +"............. ... XXX XXX ... .............", +"............ XXXXXXXXX .. XXX XXX .. XXXXXXXXX ............", +"........... XXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXX XXX XXX XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXX XXXXXXXX XXX XXX XXXXXXXX XXXXXXX ..........", +"......... XXXXX XXXXXX XXX XXX XXXXXX XXXXX .........", +"......... XXXX XXXXX XXX XXX XXXXX XXXX .........", +"........ XXX XXXX XXX XXX XXXX XXX ........", +"........ XXX XXXX XXXXX XXXX XXX ........", +"....... XXX XXXX XXXXX XXXX XXX .......", +"....... XXX XXXX XXX XXXX XXX .......", +"....... XXX XXX XXX XXX XXX .......", +"....... XXX XXXX XXX XXXX XXX .......", +"....... XXX XXX X XXX XXX .......", +"....... XXX XXXX XXXX XXX .......", +"....... XXXX XXX XXX XXXX .......", +"........ XXX XXXX XXX XXX ........", +"........ XXXX XXXX XXXX XXXX ........", +"......... XXX XXX XXX XXX .........", +"......... XXXX XXXX XXX XXXX .........", +".......... XXXX XXXX XXXX XXXX ..........", +"........... XXXX XXX XXX XXXX ...........", +"........... XXXX XXX XXX XXXX ...........", +"............ XXXXX XXX XXX XXXXX ............", +"............. XXXXX XXX XXX XXXXX .............", +".............. XXXXX XXXXXXXXXXXXXXXXXXXXX XXXXX ..............", +"............... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX ...............", +"................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX ................", +"................. XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXX XXXXXXXXX ..................", +"................... XXXX XXXX ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXX XXXXXXXXX .....................", +".................... XXXXX XXXXX .....................", +".................... .....................", +".................... XXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXX XXXXX .....................", +"..................... X X .....................", +"..................... .....................", +"....................... ........................", +".......................... ...........................", +"............................. ..............................", +"................................. ..................................", +"....................................... ........................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/kld108.xpm b/pixmaps/kld108.xpm new file mode 100644 index 0000000..683b0d5 --- /dev/null +++ b/pixmaps/kld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *kld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................... ................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... XXXXX ................................................", +".............................................. XXXXXXX ...............................................", +".............................................. XXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"...................... ............ XXXXXXXXXXXXX ............ .......................", +".................. ......... XXXXXXXXXXXXX ......... ...................", +"................ ....... XXXXXXXXXXXXX ....... .................", +"............... XXXXXXXXXX ..... XXXXXXXXXXXXX ..... XXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX ..................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXX XXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXX XXXXXXXXXXXX ........................", +"...................... XXXXXXXXX XXXXXXXX ........................", +"...................... XXXXX XXXXXXXXXXXXXXXXX XXXX ........................", +"...................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX ........................", +"....................... XXXXXXXXX XXXXXXXXX ........................", +"....................... XXXXX XXXXXXXXXXXXXXXXX XXXXX ........................", +"....................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXXXXXXXXX ................................", +".................................. ...................................", +"...................................... .......................................", +"............................................. ..............................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/kld116.xpm b/pixmaps/kld116.xpm new file mode 100644 index 0000000..9eda4d6 --- /dev/null +++ b/pixmaps/kld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *kld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +".................................................... .....................................................", +"................................................... ....................................................", +".................................................. XXXXX ...................................................", +"................................................. XXXXXXXXX ..................................................", +"................................................. XXXXXXXXXXX ..................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"......................... ............. XXXXXXXXXXXXXXX ............. ..........................", +"...................... ......... XXXXXXXXXXXXXXX ......... .......................", +".................... ....... XXXXXXXXXXXXXXX ....... .....................", +".................. XXXXXXXXX ..... XXXXXXXXXXXXXXX ..... XXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXX .....................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXX XXXXXXXXX ..........................", +"......................... XXXXXX XXXXXXXXXXXXXXXXXXX XXXXXX ..........................", +"......................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXX XXXXXXXXX ..........................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXX XXXXX ..........................", +"......................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".................................. XXXXXXXXXXXXXXXXX ...................................", +"...................................... .......................................", +".......................................... ...........................................", +"................................................. ..................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/kld129.xpm b/pixmaps/kld129.xpm new file mode 100644 index 0000000..4ae7716 --- /dev/null +++ b/pixmaps/kld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *kld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................... ................................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"....................................................... XXXXXX ........................................................", +"...................................................... XXXXXXXXXX .......................................................", +"...................................................... XXXXXXXXXXXX .......................................................", +"..................................................... XXXXXXXXXXXX ......................................................", +"..................................................... XXXXXXXXXXXXXX ......................................................", +"..................................................... XXXXXXXXXXXXXX ......................................................", +".................................................... XXXXXXXXXXXXXX .....................................................", +".................................................... XXXXXXXXXXXXXXXX .....................................................", +"........................... .............. XXXXXXXXXXXXXXXX .............. ............................", +"........................ .......... XXXXXXXXXXXXXXXX .......... .........................", +"...................... ........ XXXXXXXXXXXXXXXX ........ .......................", +".................... ...... XXXXXXXXXXXXXXXX ...... .....................", +".................. XXXXXXXXX .... XXXXXXXXXXXXXXXX .... XXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXX XXXXXXXXXXXXX .....................", +"..................... XXXXXXXX XXXXXXXX ......................", +"...................... XXX XXXXXXXXXXXXXXXXXXXX XXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXX XXXXXXXXX ............................", +"........................... XXXXXX XXXXX .............................", +"........................... XX XXXXXXXXXXXXXXXXXXXX X .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXX XXXXXXXXXX .............................", +"........................... XXXXXXXX XXXXXXX .............................", +"........................... XXXX XXXXXXXXXXXXXXXXXX XXX .............................", +"........................... X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXXXXXXXXX .....................................", +"...................................... ........................................", +".......................................... ............................................", +"............................................... ................................................", +"...................................................... .......................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/kld21.xpm b/pixmaps/kld21.xpm new file mode 100644 index 0000000..38788d5 --- /dev/null +++ b/pixmaps/kld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *kld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +".......... ..........", +"......... .........", +".......... ..........", +"......... .........", +"........ X ........", +".. XXXXX ..", +". XXXX XXXXX XXXX .", +". XXXXXX XXX XXXXXX .", +". XXXXXXX X XXXXXXX .", +". XXXXXXX XXXXXXX .", +". XXXXXXX XXXXXXX .", +".. XXX XXX ..", +"... XXXXXXX ...", +".... XXXXXXXXXXX ....", +".... XXXXXXX ....", +".... XX XX ....", +".... XXXXXXX ....", +"...... ......", +".....................", +"....................." +}; diff --git a/pixmaps/kld25.xpm b/pixmaps/kld25.xpm new file mode 100644 index 0000000..6029bea --- /dev/null +++ b/pixmaps/kld25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *kld25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... XXX ..........", +".... . XXX . ....", +"... XXXXX XXX XXXXX ...", +".. XXXXXXX XXX XXXXXXX ..", +".. XXXXXXXX X XXXXXXXX ..", +".. XXXXXXXX X XXXXXXXX ..", +".. XXXXXXXXX XXXXXXXXX ..", +"... XXXXXXXX XXXXXXXX ...", +"... XXXXXXXX XXXXXXX ....", +".... XX X .....", +"..... XXXXXXXXXXX .....", +"..... XX XX .....", +"..... XXXXXXXXX .....", +"..... XX XX .....", +"...... XXXXXXXXX ......", +"...... XXXXXXX .......", +"......... .........", +".........................", +"........................." +}; diff --git a/pixmaps/kld29.xpm b/pixmaps/kld29.xpm new file mode 100644 index 0000000..4788f2a --- /dev/null +++ b/pixmaps/kld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *kld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............. ..............", +".............. ..............", +"............ ............", +".............. ..............", +".............. ..............", +"............. .............", +"............ XXX ............", +"............ XXX ............", +"..... .. XXX .. .....", +".... XXXXX XXX XXXXX ....", +"... XXXXXXXX XXX XXXXXXXX ...", +".. XXXXXXXXXX X XXXXXXXXXX ..", +".. XXXXXXXXXX X XXXXXXXXXX ..", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +"... XXXXXXXXXX XXXXXXXXXX ...", +".... XXXXX XXXXX ....", +"..... XXXXXXXXX .....", +"...... XXXXXXXXXXXXXXX ......", +"...... XXX XXX ......", +"...... XXXXXXXXX ......", +"...... XXX XXX ......", +"...... XXXXXXXXX ......", +"....... XXXXXXXXXX ......", +".......... .........", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/kld33.xpm b/pixmaps/kld33.xpm new file mode 100644 index 0000000..032e15e --- /dev/null +++ b/pixmaps/kld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *kld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"................ ................", +".............. ..............", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +".............. XXX ..............", +"............. XXXXX .............", +"...... .. XXXXX .. ......", +"..... XXXXX XXXXX XXXXX .....", +".... XXXXXXXX XXXXX XXXXXXXX ....", +"... XXXXXXXXXX XXX XXXXXXXXXX ...", +"... XXXXXXXXXX X XXXXXXXXXX ...", +"... XXXXXXXXXXX X XXXXXXXXXXX ...", +"... XXXXXXXXXXX XXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXXXXXXXXXXX ...", +".... XXXXXXXXXXX XXXXXXXXXXX ....", +"..... XXXXXX XXXXXX .....", +"...... X XXXXXXXXX X ......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXX XXX .......", +"....... XXXXXXXXXXX .......", +"....... XXXX XXXX .......", +"....... X XXXXXXXXX X .......", +"....... XXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXX ........", +"........... ...........", +".................................", +"................................." +}; diff --git a/pixmaps/kld37.xpm b/pixmaps/kld37.xpm new file mode 100644 index 0000000..d826ef2 --- /dev/null +++ b/pixmaps/kld37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *kld37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".................. ..................", +".................. ..................", +"................ ................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................ XXX ................", +"............... XXXXX ...............", +"....... ... XXXXX ... .......", +"..... XXXXX . XXXXX . XXXXX .....", +".... XXXXXXXXX XXXXX XXXXXXXXX ....", +"... XXXXXXXXXXX XXXXX XXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXX XXXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXX XXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX X XXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX X XXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXX XXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXX XXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXX XXXXXXXXXXXX .....", +"...... XXXXXX XXXXXX ......", +"....... XXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXX XXX ........", +"........ XXXXXXXXXXXXX ........", +"........ XXXXX XXXXX ........", +"........ X XXXXXXXXX X ........", +"........ XXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXX ..........", +"............. ..............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/kld40.xpm b/pixmaps/kld40.xpm new file mode 100644 index 0000000..009ff00 --- /dev/null +++ b/pixmaps/kld40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * kld40[] = { +"40 40 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ", +" ..... ", +" . ", +" . ", +" . ", +" . ", +" ... ", +" .XXX. ", +" .XXXXX. ", +" .XXXXX. ", +" ..... .XXXXX. ..... ", +" ..XXXXX.. .XXXXX. ..XXXXX.. ", +" .XXXXXXXXX...XXXXX...XXXXXXXXX. ", +" .XXXXXXXXXXXX..XXX..XXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX.XXX.XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXX..X..XXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXXXX. ", +" .XXXXXXXX...........XXXXXXXX. ", +" .XXX....XXXXXXXXXXX....XXX. ", +" ...XXXXXXXXXXXXXXXXXXX... ", +" .XXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXX. ", +" .XXXX.............XXXX. ", +" .....XXXXXXXXXXXXX..... ", +" .XXXXXX.........XXXXXX. ", +" .XX....XXXXXXXXX....XX. ", +" ...XXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXXXXXXXXXXX.. ", +" ....XXXXXXXXXXX.... ", +" ........... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/kld45.xpm b/pixmaps/kld45.xpm new file mode 100644 index 0000000..cfb7b22 --- /dev/null +++ b/pixmaps/kld45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *kld45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"................... XXXXX ...................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +"........ .... XXXXXXX .... ........", +"...... XXXXXX .. XXXXXXX .. XXXXXX ......", +"..... XXXXXXXXXX XXXXXXX XXXXXXXXXX .....", +".... XXXXXXXXXXXXX XXXXX XXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ....", +"...... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....", +"....... XXXXXXXX XXXXXXXXX ......", +"........ XXX XXXXXXXXXXXXX XXXX .......", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXX XXXXXX .........", +".......... X XXXXXXXXXXXXX X ..........", +"......... XXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXX XXXXXX ..........", +".......... XX XXXXXXXXXXX XX ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXX ..........", +"............. XXXXXXXXXXXX ............", +"................. ................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/kld49.xpm b/pixmaps/kld49.xpm new file mode 100644 index 0000000..fa7308d --- /dev/null +++ b/pixmaps/kld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *kld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"..................... .....................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... XXXXX .....................", +".................... XXXXXXX ....................", +".................... XXXXXXX ....................", +".................... XXXXXXX ....................", +"......... .... XXXXXXX .... .........", +"....... XXXXXXX .. XXXXXXX .. XXXXXXX .......", +"...... XXXXXXXXXXX XXXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXX XXXXXXXXXXX ......", +"....... XXXXXX XXXXXXXXXXXXX XXXXXX .......", +"........ X XXXXXXXXXXXXXXXXXXXXX XX ........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXX XXXXXXX ..........", +".......... XX XXXXXXXXXXXXX XX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXX XXXXXXXX ..........", +".......... XXXX XXXXXXXXXXX XXXX ..........", +".......... X XXXXXXXXXXXXXXXXXXX X ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +".............. XXXXXXXXXXXX ..............", +"................... ..................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/kld54.xpm b/pixmaps/kld54.xpm new file mode 100644 index 0000000..8453bdf --- /dev/null +++ b/pixmaps/kld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *kld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................ ........................", +"....................... XX .......................", +"....................... XXXX .......................", +"...................... XXXX ......................", +"........... ..... XXXXXX ..... ...........", +"......... .. XXXXXX .. .........", +"....... XXXXXX XXXXXX XXXXXX .......", +"...... XXXXXXXXXXX XXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXX XXXX XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXX XXXXXXXXX ........", +"......... XX XX .........", +".......... XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXX XXXXXXXX ...........", +"........... XXX XXX ...........", +"........... XXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ............", +"............ XX XX ............", +"............ XXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXX ..............", +"................ ................", +"..................... .....................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/kld58.xpm b/pixmaps/kld58.xpm new file mode 100644 index 0000000..062ab28 --- /dev/null +++ b/pixmaps/kld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *kld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"......................... .........................", +"......................... .........................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +".......................... ..........................", +"......................... XX .........................", +"......................... XXXX .........................", +"........................ XXXX ........................", +"........... ...... XXXXXX ...... ...........", +"......... .... XXXXXX .... .........", +"....... XXXXXXX .. XXXXXX .. XXXXXXX .......", +"...... XXXXXXXXXXX XXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXX XXXXXXXXXXX ........", +"......... XXXXX XXXXX .........", +".......... XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ XXX XXX ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXX XXXXXXXXX ............", +"............ XXXX XXXX ............", +"............ X XXXXXXXXXXXX X ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............... XXXXXXXXXXXX ...............", +".................. ..................", +"....................... .......................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/kld64.xpm b/pixmaps/kld64.xpm new file mode 100644 index 0000000..21e9447 --- /dev/null +++ b/pixmaps/kld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *kld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................ ............................", +"............................ ............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"........................... XXXXXX ...........................", +".......................... XXXXXX ..........................", +".......................... XXXXXXXX ..........................", +"............. ...... XXXXXXXX ...... .............", +"........... .... XXXXXXXX .... ...........", +"......... XXXXXXX .. XXXXXXXX .. XXXXXXX .........", +"........ XXXXXXXXXXX XXXXXXXX XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXX XXXXXXXXXXX ..........", +"........... XXXX XXXX ...........", +"............ XXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. X XXXXXXXXXXXXXX X ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. X XXXXXXXXXXXXXX X ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXX ..............", +"................. XXXXXXXXXXXXXX .................", +"..................... ....................", +"......................... .........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/kld72.xpm b/pixmaps/kld72.xpm new file mode 100644 index 0000000..5359fcb --- /dev/null +++ b/pixmaps/kld72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *kld72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"............................... ...............................", +"............................... ...............................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +".............................. XXXXXX ..............................", +".............................. XXXXXXXX ..............................", +"............................. XXXXXXXX .............................", +"............................. XXXXXXXXXX .............................", +".............. ....... XXXXXXXXXX ....... ..............", +"........... .... XXXXXXXXXX .... ...........", +"......... XXXXXXXX .. XXXXXXXXXX .. XXXXXXXX .........", +"........ XXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXX XXXXXXXXX ..........", +"........... XXX XXXXXXXXXXXXXXXX XXX ...........", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXX XXXXX ...............", +"............... X XXXXXXXXXXXXXXXX X ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXX XXXXXXXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXX XXXXXXXXXXXXXX XXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................... XXXXXXXXXXXXXX ....................", +"....................... ........................", +"............................. .............................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/kld80.xpm b/pixmaps/kld80.xpm new file mode 100644 index 0000000..b899149 --- /dev/null +++ b/pixmaps/kld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *kld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"................................... ...................................", +"................................... ...................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +".................................. XXXXXX ..................................", +".................................. XXXXXXXX ..................................", +"................................. XXXXXXXX .................................", +"................................. XXXXXXXXXX .................................", +"................ ........ XXXXXXXXXX ........ ................", +"............. ..... XXXXXXXXXX ..... .............", +"............ XXXXXXXXX ... XXXXXXXXXX ... XXXXXXXXX ............", +".......... XXXXXXXXXXXXXX .. XXXXXXXXXX .. XXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +".............. XXXXX XXXXXXXXXXXXXXXX XXXXX ..............", +"............... X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX .................", +"................. XXXXXXXX XXXXXXXX .................", +"................. XXXX XXXXXXXXXXXXXX XXXX .................", +"................. X XXXXXXXXXXXXXXXXXXXXXXXXXX X .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX XXXXXXXXXXXXXX .................", +".................. XXXXXXX XXXXXXX .................", +".................. XXXX XXXXXXXXXXXXXX XXXX ..................", +".................. X XXXXXXXXXXXXXXXXXXXXXXXXXX X ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"....................... XXXXXXXXXXXXXXXX .......................", +"........................... ...........................", +"................................ ................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/kld87.xpm b/pixmaps/kld87.xpm new file mode 100644 index 0000000..065241b --- /dev/null +++ b/pixmaps/kld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *kld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"...................................... ......................................", +"..................................... .....................................", +"...................................... ......................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"..................................... XXXXX .....................................", +"..................................... XXXXXXX .....................................", +".................................... XXXXXXXXX ....................................", +".................................... XXXXXXXXX ....................................", +"................................... XXXXXXXXXXX ...................................", +".................. ......... XXXXXXXXXXX ......... ..................", +"............... ...... XXXXXXXXXXX ...... ...............", +"............. .... XXXXXXXXXXX .... .............", +"........... XXXXXXXX .. XXXXXXXXXXX .. XXXXXXXX ...........", +".......... XXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...........", +"............. XXXXXXXXXXXX XXXXXXXXXXXXX ............", +".............. XXXXXX XXXXXXX .............", +"............... XX XXXXXXXXXXXXXXXXX XX ..............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXXXXX XXXXXXXX ..................", +".................. XXXX XXXX ..................", +".................. XXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +"................... XXXXXXXX XXXXXXXX ...................", +"................... XXXX XXXX ...................", +"................... X XXXXXXXXXXXXXXX X ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"....................... XXXXXXXXXXXXXXXX ......................", +".......................... .........................", +".............................. .............................", +".................................... ...................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/kld95.xpm b/pixmaps/kld95.xpm new file mode 100644 index 0000000..9a4a9a3 --- /dev/null +++ b/pixmaps/kld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *kld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +"......................................... XXXXX .........................................", +"......................................... XXXXXXX .........................................", +"........................................ XXXXXXXXX ........................................", +"........................................ XXXXXXXXX ........................................", +"....................................... XXXXXXXXXXX .......................................", +".................... .......... XXXXXXXXXXX .......... ....................", +"................. ....... XXXXXXXXXXX ....... .................", +"............... ..... XXXXXXXXXXX ..... ...............", +"............. XXXXXXXXX ... XXXXXXXXXXX ... XXXXXXXXX .............", +"............ XXXXXXXXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXX XXXXXXXXXXXXX ...............", +"................ XXXXXXX XXXXXXX ................", +"................. XX XXXXXXXXXXXXXXXXXXX X .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX .....................", +".................... XXXXXX XXXXX .....................", +".................... XXX XXXXXXXXXXXXXXXXX XX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXX XXXXXX .....................", +"..................... XXX XXXXXXXXXXXXXXX XXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".......................... XXXXXXXXXXXXXXXX ...........................", +"............................. ..............................", +"................................. ..................................", +"....................................... ........................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/kll108.xpm b/pixmaps/kll108.xpm new file mode 100644 index 0000000..5ee67eb --- /dev/null +++ b/pixmaps/kll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *kll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................... ................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... XXXXX ................................................", +".............................................. XXXXXXX ...............................................", +".............................................. XXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"...................... ............ XXXXXXXXXXXXX ............ .......................", +".................. ......... XXXXXXXXXXXXX ......... ...................", +"................ ....... XXXXXXXXXXXXX ....... .................", +"............... XXXXXXXXXX ..... XXXXXXXXXXXXX ..... XXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX ..................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXX XXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXX XXXXXXXXXXXX ........................", +"...................... XXXXXXXXX XXXXXXXX ........................", +"...................... XXXXX XXXXXXXXXXXXXXXXX XXXX ........................", +"...................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX ........................", +"....................... XXXXXXXXX XXXXXXXXX ........................", +"....................... XXXXX XXXXXXXXXXXXXXXXX XXXXX ........................", +"....................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXXXXXXXXX ................................", +".................................. ...................................", +"...................................... .......................................", +"............................................. ..............................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/kll116.xpm b/pixmaps/kll116.xpm new file mode 100644 index 0000000..9b24b5c --- /dev/null +++ b/pixmaps/kll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *kll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +".................................................... .....................................................", +"................................................... ....................................................", +".................................................. XXXXX ...................................................", +"................................................. XXXXXXXXX ..................................................", +"................................................. XXXXXXXXXXX ..................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"................................................ XXXXXXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"......................... ............. XXXXXXXXXXXXXXX ............. ..........................", +"...................... ......... XXXXXXXXXXXXXXX ......... .......................", +".................... ....... XXXXXXXXXXXXXXX ....... .....................", +".................. XXXXXXXXX ..... XXXXXXXXXXXXXXX ..... XXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXXXX XXXXXXXXXXXXXXXXXXXXX XXXXXXX .....................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXX XXXXXXXXX ..........................", +"......................... XXXXXX XXXXXXXXXXXXXXXXXXX XXXXXX ..........................", +"......................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXX XXXXXXXXX ..........................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXX XXXXX ..........................", +"......................... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".................................. XXXXXXXXXXXXXXXXX ...................................", +"...................................... .......................................", +".......................................... ...........................................", +"................................................. ..................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/kll129.xpm b/pixmaps/kll129.xpm new file mode 100644 index 0000000..fbae236 --- /dev/null +++ b/pixmaps/kll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *kll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................... ................................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"........................................................ .........................................................", +"....................................................... ........................................................", +"....................................................... ........................................................", +"........................................................ .........................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +"........................................................ .........................................................", +"....................................................... XXXXXX ........................................................", +"...................................................... XXXXXXXXXX .......................................................", +"...................................................... XXXXXXXXXXXX .......................................................", +"..................................................... XXXXXXXXXXXX ......................................................", +"..................................................... XXXXXXXXXXXXXX ......................................................", +"..................................................... XXXXXXXXXXXXXX ......................................................", +".................................................... XXXXXXXXXXXXXX .....................................................", +".................................................... XXXXXXXXXXXXXXXX .....................................................", +"........................... .............. XXXXXXXXXXXXXXXX .............. ............................", +"........................ .......... XXXXXXXXXXXXXXXX .......... .........................", +"...................... ........ XXXXXXXXXXXXXXXX ........ .......................", +".................... ...... XXXXXXXXXXXXXXXX ...... .....................", +".................. XXXXXXXXX .... XXXXXXXXXXXXXXXX .... XXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXX XXXXXXXXXXXXX .....................", +"..................... XXXXXXXX XXXXXXXX ......................", +"...................... XXX XXXXXXXXXXXXXXXXXXXX XXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXX XXXXXXXXX ............................", +"........................... XXXXXX XXXXX .............................", +"........................... XX XXXXXXXXXXXXXXXXXXXX X .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXX XXXXXXXXXX .............................", +"........................... XXXXXXXX XXXXXXX .............................", +"........................... XXXX XXXXXXXXXXXXXXXXXX XXX .............................", +"........................... X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXXXXXXXXX .....................................", +"...................................... ........................................", +".......................................... ............................................", +"............................................... ................................................", +"...................................................... .......................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/kll21.xpm b/pixmaps/kll21.xpm new file mode 100644 index 0000000..76d3971 --- /dev/null +++ b/pixmaps/kll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *kll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +".......... ..........", +"......... .........", +".......... ..........", +"......... .........", +"........ X ........", +".. XXXXX ..", +". XXXX XXXXX XXXX .", +". XXXXXX XXX XXXXXX .", +". XXXXXXX X XXXXXXX .", +". XXXXXXX XXXXXXX .", +". XXXXXXX XXXXXXX .", +".. XXX XXX ..", +"... XXXXXXX ...", +".... XXXXXXXXXXX ....", +".... XXXXXXX ....", +".... XX XX ....", +".... XXXXXXX ....", +"...... ......", +".....................", +"....................." +}; diff --git a/pixmaps/kll25.xpm b/pixmaps/kll25.xpm new file mode 100644 index 0000000..9a23279 --- /dev/null +++ b/pixmaps/kll25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *kll25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +"............ ............", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... XXX ..........", +".... . XXX . ....", +"... XXXXX XXX XXXXX ...", +".. XXXXXXX XXX XXXXXXX ..", +".. XXXXXXXX X XXXXXXXX ..", +".. XXXXXXXX X XXXXXXXX ..", +".. XXXXXXXXX XXXXXXXXX ..", +"... XXXXXXXX XXXXXXXX ...", +"... XXXXXXXX XXXXXXX ....", +".... XX X .....", +"..... XXXXXXXXXXX .....", +"..... XX XX .....", +"..... XXXXXXXXX .....", +"..... XX XX .....", +"...... XXXXXXXXX ......", +"...... XXXXXXX .......", +"......... .........", +".........................", +"........................." +}; diff --git a/pixmaps/kll29.xpm b/pixmaps/kll29.xpm new file mode 100644 index 0000000..de553b9 --- /dev/null +++ b/pixmaps/kll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *kll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............. ..............", +".............. ..............", +"............ ............", +".............. ..............", +".............. ..............", +"............. .............", +"............ XXX ............", +"............ XXX ............", +"..... .. XXX .. .....", +".... XXXXX XXX XXXXX ....", +"... XXXXXXXX XXX XXXXXXXX ...", +".. XXXXXXXXXX X XXXXXXXXXX ..", +".. XXXXXXXXXX X XXXXXXXXXX ..", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +".. XXXXXXXXXXX XXXXXXXXXXX ..", +"... XXXXXXXXXX XXXXXXXXXX ...", +".... XXXXX XXXXX ....", +"..... XXXXXXXXX .....", +"...... XXXXXXXXXXXXXXX ......", +"...... XXX XXX ......", +"...... XXXXXXXXX ......", +"...... XXX XXX ......", +"...... XXXXXXXXX ......", +"....... XXXXXXXXXX ......", +".......... .........", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/kll33.xpm b/pixmaps/kll33.xpm new file mode 100644 index 0000000..0a00be8 --- /dev/null +++ b/pixmaps/kll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *kll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"................ ................", +".............. ..............", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +".............. XXX ..............", +"............. XXXXX .............", +"...... .. XXXXX .. ......", +"..... XXXXX XXXXX XXXXX .....", +".... XXXXXXXX XXXXX XXXXXXXX ....", +"... XXXXXXXXXX XXX XXXXXXXXXX ...", +"... XXXXXXXXXX X XXXXXXXXXX ...", +"... XXXXXXXXXXX X XXXXXXXXXXX ...", +"... XXXXXXXXXXX XXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXXXXXXXXXXX ...", +".... XXXXXXXXXXX XXXXXXXXXXX ....", +"..... XXXXXX XXXXXX .....", +"...... X XXXXXXXXX X ......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXX XXX .......", +"....... XXXXXXXXXXX .......", +"....... XXXX XXXX .......", +"....... X XXXXXXXXX X .......", +"....... XXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXX ........", +"........... ...........", +".................................", +"................................." +}; diff --git a/pixmaps/kll37.xpm b/pixmaps/kll37.xpm new file mode 100644 index 0000000..a1d84d0 --- /dev/null +++ b/pixmaps/kll37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *kll37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".................. ..................", +".................. ..................", +"................ ................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................ XXX ................", +"............... XXXXX ...............", +"....... ... XXXXX ... .......", +"..... XXXXX . XXXXX . XXXXX .....", +".... XXXXXXXXX XXXXX XXXXXXXXX ....", +"... XXXXXXXXXXX XXXXX XXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXX XXXXXXXXXXXX ...", +"... XXXXXXXXXXXX XXX XXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX X XXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX X XXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXX XXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXX XXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXX XXXXXXXXXXXX .....", +"...... XXXXXX XXXXXX ......", +"....... XXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXX XXX ........", +"........ XXXXXXXXXXXXX ........", +"........ XXXXX XXXXX ........", +"........ X XXXXXXXXX X ........", +"........ XXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXX ..........", +"............. ..............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/kll40.xpm b/pixmaps/kll40.xpm new file mode 100644 index 0000000..f40e8b0 --- /dev/null +++ b/pixmaps/kll40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * kll40[] = { +"40 40 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ", +" ..... ", +" . ", +" . ", +" . ", +" . ", +" ... ", +" .XXX. ", +" .XXXXX. ", +" .XXXXX. ", +" ..... .XXXXX. ..... ", +" ..XXXXX.. .XXXXX. ..XXXXX.. ", +" .XXXXXXXXX...XXXXX...XXXXXXXXX. ", +" .XXXXXXXXXXXX..XXX..XXXXXXXXXXXX. ", +" .XXXXXXXXXXXXX.XXX.XXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXX..X..XXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.X.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXXXX. ", +" .XXXXXXXX...........XXXXXXXX. ", +" .XXX....XXXXXXXXXXX....XXX. ", +" ...XXXXXXXXXXXXXXXXXXX... ", +" .XXXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXX. ", +" .XXXX.............XXXX. ", +" .....XXXXXXXXXXXXX..... ", +" .XXXXXX.........XXXXXX. ", +" .XX....XXXXXXXXX....XX. ", +" ...XXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXXXXXXXXXXX.. ", +" ....XXXXXXXXXXX.... ", +" ........... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/kll45.xpm b/pixmaps/kll45.xpm new file mode 100644 index 0000000..db7b972 --- /dev/null +++ b/pixmaps/kll45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *kll45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +"...................... ......................", +".................... ....................", +"................... XXXXX ...................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +"........ .... XXXXXXX .... ........", +"...... XXXXXX .. XXXXXXX .. XXXXXX ......", +"..... XXXXXXXXXX XXXXXXX XXXXXXXXXX .....", +".... XXXXXXXXXXXXX XXXXX XXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ....", +"...... XXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....", +"....... XXXXXXXX XXXXXXXXX ......", +"........ XXX XXXXXXXXXXXXX XXXX .......", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXX XXXXXX .........", +".......... X XXXXXXXXXXXXX X ..........", +"......... XXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXX XXXXXX ..........", +".......... XX XXXXXXXXXXX XX ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXX ..........", +"............. XXXXXXXXXXXX ............", +"................. ................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/kll49.xpm b/pixmaps/kll49.xpm new file mode 100644 index 0000000..6a7819b --- /dev/null +++ b/pixmaps/kll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *kll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"..................... .....................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +"..................... XXXXX .....................", +".................... XXXXXXX ....................", +".................... XXXXXXX ....................", +".................... XXXXXXX ....................", +"......... .... XXXXXXX .... .........", +"....... XXXXXXX .. XXXXXXX .. XXXXXXX .......", +"...... XXXXXXXXXXX XXXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXX ....", +"... XXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXX XXXXXXXXXXX ......", +"....... XXXXXX XXXXXXXXXXXXX XXXXXX .......", +"........ X XXXXXXXXXXXXXXXXXXXXX XX ........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXX XXXXXXX ..........", +".......... XX XXXXXXXXXXXXX XX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXX XXXXXXXX ..........", +".......... XXXX XXXXXXXXXXX XXXX ..........", +".......... X XXXXXXXXXXXXXXXXXXX X ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +".............. XXXXXXXXXXXX ..............", +"................... ..................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/kll54.xpm b/pixmaps/kll54.xpm new file mode 100644 index 0000000..1a5cb10 --- /dev/null +++ b/pixmaps/kll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *kll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"....................... .......................", +"....................... .......................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................ ........................", +"....................... XX .......................", +"....................... XXXX .......................", +"...................... XXXX ......................", +"........... ..... XXXXXX ..... ...........", +"......... .. XXXXXX .. .........", +"....... XXXXXX XXXXXX XXXXXX .......", +"...... XXXXXXXXXXX XXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXX XXXX XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXX XXXXXXXXX ........", +"......... XX XX .........", +".......... XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXX XXXXXXXX ...........", +"........... XXX XXX ...........", +"........... XXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXX XXXXXXX ............", +"............ XX XX ............", +"............ XXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXX ..............", +"................ ................", +"..................... .....................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/kll58.xpm b/pixmaps/kll58.xpm new file mode 100644 index 0000000..fb99059 --- /dev/null +++ b/pixmaps/kll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *kll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"......................... .........................", +"......................... .........................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +".......................... ..........................", +"......................... XX .........................", +"......................... XXXX .........................", +"........................ XXXX ........................", +"........... ...... XXXXXX ...... ...........", +"......... .... XXXXXX .... .........", +"....... XXXXXXX .. XXXXXX .. XXXXXXX .......", +"...... XXXXXXXXXXX XXXXXX XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXX XXXXXXXXXXX ........", +"......... XXXXX XXXXX .........", +".......... XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXX XXXXXXXX ............", +"............ XXX XXX ............", +"............ XXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXX XXXXXXXXX ............", +"............ XXXX XXXX ............", +"............ X XXXXXXXXXXXX X ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +"............... XXXXXXXXXXXX ...............", +".................. ..................", +"....................... .......................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/kll64.xpm b/pixmaps/kll64.xpm new file mode 100644 index 0000000..34128c9 --- /dev/null +++ b/pixmaps/kll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *kll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................ ............................", +"............................ ............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +"............................ ............................", +"........................... XXXX ...........................", +"........................... XXXXXX ...........................", +".......................... XXXXXX ..........................", +".......................... XXXXXXXX ..........................", +"............. ...... XXXXXXXX ...... .............", +"........... .... XXXXXXXX .... ...........", +"......... XXXXXXX .. XXXXXXXX .. XXXXXXX .........", +"........ XXXXXXXXXXX XXXXXXXX XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXX XXXXXXXXXXX ..........", +"........... XXXX XXXX ...........", +"............ XXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. X XXXXXXXXXXXXXX X ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXX XXXXXXXXX ..............", +".............. XXXX XXXX ..............", +".............. X XXXXXXXXXXXXXX X ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXX ..............", +"................. XXXXXXXXXXXXXX .................", +"..................... ....................", +"......................... .........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/kll72.xpm b/pixmaps/kll72.xpm new file mode 100644 index 0000000..2444098 --- /dev/null +++ b/pixmaps/kll72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *kll72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"............................... ...............................", +"............................... ...............................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +"................................ ................................", +"............................... XXXX ...............................", +".............................. XXXXXX ..............................", +".............................. XXXXXXXX ..............................", +"............................. XXXXXXXX .............................", +"............................. XXXXXXXXXX .............................", +".............. ....... XXXXXXXXXX ....... ..............", +"........... .... XXXXXXXXXX .... ...........", +"......... XXXXXXXX .. XXXXXXXXXX .. XXXXXXXX .........", +"........ XXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXX ......", +"..... XXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .....", +".... XXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXX XXXXXXXXX ..........", +"........... XXX XXXXXXXXXXXXXXXX XXX ...........", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXX XXXXXXXXXXX ...............", +"............... XXXXX XXXXX ...............", +"............... X XXXXXXXXXXXXXXXX X ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXX XXXXXXXXXXXX ...............", +"............... XXXXXXX XXXXXXX ...............", +"............... XXX XXXXXXXXXXXXXX XXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................... XXXXXXXXXXXXXX ....................", +"....................... ........................", +"............................. .............................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/kll80.xpm b/pixmaps/kll80.xpm new file mode 100644 index 0000000..6f055c9 --- /dev/null +++ b/pixmaps/kll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *kll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"................................... ...................................", +"................................... ...................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"....................................... .......................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +".................................. XXXXXX ..................................", +".................................. XXXXXXXX ..................................", +"................................. XXXXXXXX .................................", +"................................. XXXXXXXXXX .................................", +"................ ........ XXXXXXXXXX ........ ................", +"............. ..... XXXXXXXXXX ..... .............", +"............ XXXXXXXXX ... XXXXXXXXXX ... XXXXXXXXX ............", +".......... XXXXXXXXXXXXXX .. XXXXXXXXXX .. XXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX XXXXXXXXXX XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXX XXXXXXXXXX .............", +".............. XXXXX XXXXXXXXXXXXXXXX XXXXX ..............", +"............... X XXXXXXXXXXXXXXXXXXXXXXXXXXXX X ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX .................", +"................. XXXXXXXX XXXXXXXX .................", +"................. XXXX XXXXXXXXXXXXXX XXXX .................", +"................. X XXXXXXXXXXXXXXXXXXXXXXXXXX X .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX XXXXXXXXXXXXXX .................", +".................. XXXXXXX XXXXXXX .................", +".................. XXXX XXXXXXXXXXXXXX XXXX ..................", +".................. X XXXXXXXXXXXXXXXXXXXXXXXXXX X ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"....................... XXXXXXXXXXXXXXXX .......................", +"........................... ...........................", +"................................ ................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/kll87.xpm b/pixmaps/kll87.xpm new file mode 100644 index 0000000..590cf77 --- /dev/null +++ b/pixmaps/kll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *kll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................................... ...........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"...................................... ......................................", +"..................................... .....................................", +"...................................... ......................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +".......................................... ..........................................", +"......................................... .........................................", +"....................................... .......................................", +"...................................... ......................................", +"..................................... XXXXX .....................................", +"..................................... XXXXXXX .....................................", +".................................... XXXXXXXXX ....................................", +".................................... XXXXXXXXX ....................................", +"................................... XXXXXXXXXXX ...................................", +".................. ......... XXXXXXXXXXX ......... ..................", +"............... ...... XXXXXXXXXXX ...... ...............", +"............. .... XXXXXXXXXXX .... .............", +"........... XXXXXXXX .. XXXXXXXXXXX .. XXXXXXXX ...........", +".......... XXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...........", +"............. XXXXXXXXXXXX XXXXXXXXXXXXX ............", +".............. XXXXXX XXXXXXX .............", +"............... XX XXXXXXXXXXXXXXXXX XX ..............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXXXXX XXXXXXXX ..................", +".................. XXXX XXXX ..................", +".................. XXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXX XXXXXXXXXXXXXXX ..................", +"................... XXXXXXXX XXXXXXXX ...................", +"................... XXXX XXXX ...................", +"................... X XXXXXXXXXXXXXXX X ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"....................... XXXXXXXXXXXXXXXX ......................", +".......................... .........................", +".............................. .............................", +".................................... ...................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/kll95.xpm b/pixmaps/kll95.xpm new file mode 100644 index 0000000..76ae3e4 --- /dev/null +++ b/pixmaps/kll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *kll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"......................................... .........................................", +"......................................... .........................................", +"......................................... .........................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +".............................................. ..............................................", +"............................................. .............................................", +"........................................... ...........................................", +".......................................... ..........................................", +"......................................... XXXXX .........................................", +"......................................... XXXXXXX .........................................", +"........................................ XXXXXXXXX ........................................", +"........................................ XXXXXXXXX ........................................", +"....................................... XXXXXXXXXXX .......................................", +".................... .......... XXXXXXXXXXX .......... ....................", +"................. ....... XXXXXXXXXXX ....... .................", +"............... ..... XXXXXXXXXXX ..... ...............", +"............. XXXXXXXXX ... XXXXXXXXXXX ... XXXXXXXXX .............", +"............ XXXXXXXXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXX XXXXXXXXXXXXX ...............", +"................ XXXXXXX XXXXXXX ................", +"................. XX XXXXXXXXXXXXXXXXXXX X .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX .....................", +".................... XXXXXX XXXXX .....................", +".................... XXX XXXXXXXXXXXXXXXXX XX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXX XXXXXXXXXX .....................", +"..................... XXXXXX XXXXXX .....................", +"..................... XXX XXXXXXXXXXXXXXX XXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".......................... XXXXXXXXXXXXXXXX ...........................", +"............................. ..............................", +"................................. ..................................", +"....................................... ........................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/ndd108.xpm b/pixmaps/ndd108.xpm new file mode 100644 index 0000000..0743601 --- /dev/null +++ b/pixmaps/ndd108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *ndd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................. .................. .........................................................", +"............................ ................ ........................................................", +"............................ .............. ........................................................", +"............................ ........... .......................................................", +"............................ .......... .......................................................", +"............................. ....... ......................................................", +"............................. ...... ......................................................", +"............................. .... .....................................................", +"............................. ... .....................................................", +"............................. .. .................................................", +"............................. ............................................", +"............................. .........................................", +".............................. X XXX .......................................", +"............................. XXXXX XXXXXXX .....................................", +"............................ XXXXXXXXX XXXXXXXXXX ...................................", +"........................... XXXXXXXX XXXXXXXXX ..................................", +".......................... XXXXX XXXXXXX ................................", +".......................... X XXXXXX ...............................", +"......................... XXXXX ..............................", +"........................ XXXXX .............................", +"........................ XXXXX ............................", +"....................... XXX XXXXX ...........................", +"....................... XXXXXX XXXXX ..........................", +"....................... XXXXX XXXXX ..........................", +"...................... XXXXXX XXXXX .........................", +"...................... XXXXXXX XXXXX ........................", +"...................... XXXXXX XXXX ........................", +"...................... XXXXXXX XXXXX .......................", +"...................... XX XX XXXXX ......................", +"...................... XX XXXXX ......................", +"..................... XX XXXXX .....................", +"..................... XXXXX .....................", +"..................... XXXX ....................", +".................... XXXXX ....................", +".................... XXXX ...................", +"................... XXXXX ...................", +"................... XX XXXX ..................", +".................. XX XXXXX ..................", +"................. XX XXXXX ..................", +"................. X XXXXX .................", +"................ XX XXXXX .................", +"............... X XXXX .................", +".............. X XXXXX ................", +".............. XXXXX ................", +"............. XXXXX ................", +"............. XXXXX ...............", +"............ . XXXXX ...............", +"............ .. XXXXXX ...............", +"........... .... XXXXX ..............", +"........... ...... XXXXX ..............", +".......... ........ XXXXX ..............", +".......... XX ......... XXXXXX ..............", +".......... XXXX ........... XXXXX .............", +"......... XXXXX ............. XXXXX .............", +"......... XXXXX ............. XXXXX .............", +"......... XXXX ............... XXXXXX .............", +"......... XX ............... XXXXX .............", +"......... ................ XXXXX ............", +"......... XX ................ XXXXX ............", +"......... XX ................ XXXXX ............", +".......... XX ................. XXXXX ............", +".......... XX ................. XXXXXX ............", +"........... XX ................. XXXXXX ............", +"............ X ................. XXXXX ............", +".............. ................. XXXXX ...........", +"................ ................ XXXXX ...........", +"...................... ................ XXXXX ...........", +"...................... ................ XXXXX ...........", +"....................... ................ XXXXXX ...........", +"........................................... XXXXXX ...........", +".......................................... XXXXXX ...........", +"......................................... XXXXXX ...........", +"........................................ XXXXXX ...........", +"....................................... XXXXXX ...........", +"...................................... XXXXX ..........", +"...................................... XXXXX ..........", +"..................................... XXXXX ..........", +".................................... XXXXX ..........", +".................................... XXXXX ..........", +"................................... XXXXX ..........", +"................................... XXXXX ..........", +".................................. XXXXX ..........", +".................................. XXXXX ..........", +".................................. XXXXX ..........", +"................................. XXXXX ..........", +"................................. XXXX ..........", +"................................. XXX ..........", +"................................. ..........", +"................................. ..........", +".................................. ..........", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/ndd116.xpm b/pixmaps/ndd116.xpm new file mode 100644 index 0000000..06850b6 --- /dev/null +++ b/pixmaps/ndd116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *ndd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ..............................................................", +"................................ .................. .............................................................", +"............................... ................ ............................................................", +"............................... ............... ............................................................", +"............................... ............ ...........................................................", +"............................... .......... ...........................................................", +"............................... ........ ..........................................................", +"............................... ...... ..........................................................", +"............................... ..... .........................................................", +"............................... ... .........................................................", +"................................ ... .........................................................", +"................................ .................................................", +"................................ ..............................................", +"................................ ............................................", +"................................. XXXXX XXXXXXX ..........................................", +"................................ XXXXXXXX XXXXXXXXXX ........................................", +"............................... XXXXXXXXXX XXXXXXXXXXX ......................................", +".............................. XXXXXX XXXXXXXX .....................................", +"............................. XXX XXXXXXX ...................................", +"............................ XXXXXX ..................................", +"........................... XXXXX .................................", +"........................... XXXXX ................................", +".......................... XXXXX ...............................", +".......................... XXX XXXXX ..............................", +".......................... XXXXX XXXXX .............................", +"......................... XXXX XXXXX .............................", +"......................... XXXXX XXXXX ............................", +"......................... XXXXXX XXXXX ...........................", +"......................... XXXXXX XXXXX ..........................", +"........................ XXXXXX XXXXX ..........................", +"........................ XX XX XXXXX .........................", +"........................ XX XXXX .........................", +"........................ XX XXXXX ........................", +"....................... XXXXX ........................", +"....................... XXXXX .......................", +"....................... XXXXX .......................", +"...................... XXXXX ......................", +"...................... XXXXX ......................", +"..................... XXXXX .....................", +"..................... XX XXXXX .....................", +".................... XX XXXXX ....................", +"................... XX XXXX ....................", +"................... X XXXXX ....................", +".................. XX XXXXX ...................", +"................. X XXXXX ...................", +"................. X XXXXX ...................", +"................ XXXXX ..................", +"............... XXXXX ..................", +"............... . XXXXX ..................", +".............. .. XXXXX .................", +".............. .... XXXXXX .................", +"............. ..... XXXXX .................", +"............. ....... XXXXX .................", +"............. ......... XXXXX ................", +"............ XX ........... XXXXXX ................", +"............ XXXX ............ XXXXX ................", +"............ XXXXX .............. XXXXX ................", +"........... XXXXX ............... XXXXX ...............", +"........... XXXX ................ XXXXXX ...............", +"........... XXXX ................. XXXXXX ...............", +"........... XX ................. XXXXX ...............", +"........... ................. XXXXX ...............", +"........... XX .................. XXXXX ..............", +"........... XX .................. XXXXX ..............", +"............ XX .................. XXXXXX ..............", +"............ XX .................. XXXXXX ..............", +"............. XX .................. XXXXX ..............", +".............. .................. XXXXX ..............", +"................ .................. XXXXX ..............", +".................. . .................. XXXXX .............", +"......................... ................. XXXXX .............", +"......................... ................. XXXXXX .............", +".......................... ................. XXXXXX .............", +".............................................. XXXXXX .............", +"............................................. XXXXXX .............", +"............................................ XXXXXX .............", +"........................................... XXXXXX .............", +"........................................... XXXXX .............", +".......................................... XXXXX .............", +"......................................... XXXXX ............", +"........................................ XXXXX ............", +"........................................ XXXXX ............", +"....................................... XXXXX ............", +"....................................... XXXXX ............", +"...................................... XXXXX ............", +"...................................... XXXXX ............", +"..................................... XXXXX ............", +"..................................... XXXXX ............", +"..................................... XXXXX ............", +".................................... XXXXXX ............", +".................................... XXXXX ............", +".................................... XX ............", +".................................... ............", +".................................... ............", +"..................................... ............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/ndd129.xpm b/pixmaps/ndd129.xpm new file mode 100644 index 0000000..bb54717 --- /dev/null +++ b/pixmaps/ndd129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *ndd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................... ...................... ....................................................................", +".................................. ................... ...................................................................", +".................................. .................. ...................................................................", +".................................. ................ ..................................................................", +".................................. ............. .................................................................", +".................................. ............ .................................................................", +".................................. ......... ................................................................", +".................................. ....... ................................................................", +".................................. ...... ...............................................................", +".................................. .... ...............................................................", +".................................. ... ...............................................................", +".................................. .. ............................................................", +".................................. ......................................................", +"................................... ..................................................", +"................................... ................................................", +"................................... XX ..............................................", +"................................... XXXXXX XXXXXXXXX ............................................", +".................................. XXXXXXXXX XXXXXXXXXXX ..........................................", +"................................. XXXXXXXXXXX XXXXXXXXXXXX .........................................", +"................................ XXXXXXXXXXX XXXXXXXXXXXXX .......................................", +"................................ XXXXXXX XXXXXXXXXX ......................................", +"............................... XXXXX XXXXXXXX .....................................", +".............................. XXXXXXXX ....................................", +"............................. XXXXXXXX ...................................", +"............................. XXXXXXX ..................................", +"............................ XXXXXXX .................................", +"............................ XXXXX XXXXXX ................................", +"........................... XXXXXXX XXXXXX ...............................", +"........................... XXXXX XXXXXX ...............................", +"........................... XXXXXX XXXXXX ..............................", +"........................... XXXXXXX XXXXXX .............................", +".......................... XXXXXXXX XXXXXXX ............................", +".......................... XXXXXXX XXXXXXX ............................", +".......................... XXXXXXX XXXXXX ...........................", +".......................... XXXXXX XXXXXXX ..........................", +".......................... XX XXXXXXX ..........................", +".......................... XX XXXXXX .........................", +"......................... XX XXXXXXX .........................", +"......................... XXXXXXX ........................", +"......................... XXXXXXX ........................", +"........................ XXXXXXX .......................", +"........................ XXXXXXX .......................", +"....................... XXXXXXX ......................", +"....................... X XXXXXXX ......................", +"...................... XXX XXXXXXX ......................", +"..................... XXX XXXXXXX .....................", +"..................... XX XXXXXXX .....................", +".................... XXX XXXXXXX ....................", +"................... XXX XXXXXXX ....................", +"................... XX XXXXXXXX ....................", +".................. XXX XXXXXXX ...................", +"................. X XXXXXXX ...................", +"................. XXXXXXXX ...................", +"................ XXXXXXX ..................", +"............... XXXXXXX ..................", +"............... . XXXXXXXX ..................", +".............. .. XXXXXXX ..................", +".............. ... XXXXXXX .................", +"............. ..... XXXXXXXX .................", +"............. ....... XXXXXXXX .................", +"............ ......... XXXXXXX .................", +"............ XX .......... XXXXXXX ................", +"............ XXXX ............ XXXXXXXX ................", +"............ XXXXXX .............. XXXXXXXX ................", +"........... XXXXXX .............. XXXXXXX ................", +"........... XXXXXX ................ XXXXXXX ................", +"........... XXXXX ................. XXXXXXX ...............", +"........... XXXXX .................. XXXXXXXX ...............", +"........... XXX ................... XXXXXXXX ...............", +"........... X ................... XXXXXXX ...............", +"........... XX ................... XXXXXXX ...............", +"........... XXX .................... XXXXXXX ..............", +"........... XXX .................... XXXXXXXX ..............", +"............ XXX .................... XXXXXXXX ..............", +"............ XXX .................... XXXXXXXX ..............", +"............. XXX .................... XXXXXXXX ..............", +".............. X .................... XXXXXXXX ..............", +"............... .................... XXXXXXX ..............", +"................. ................... XXXXXXX ..............", +"................... ................... XXXXXXX .............", +".......................... ................... XXXXXXXX .............", +"........................... .................... XXXXXXXX .............", +"............................ .................... XXXXXXXX .............", +"................................................... XXXXXXXX .............", +".................................................. XXXXXXXX .............", +"................................................. XXXXXXXX .............", +"................................................ XXXXXXXX .............", +"............................................... XXXXXXXX .............", +"............................................... XXXXXXX .............", +".............................................. XXXXXXX .............", +"............................................. XXXXXXX ............", +"............................................. XXXXXXX ............", +"............................................ XXXXXXX ............", +"........................................... XXXXXXXX ............", +"........................................... XXXXXXXX ............", +".......................................... XXXXXXXX ............", +".......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"........................................ XXXXXXX ............", +"........................................ XXXXXX ............", +"........................................ XXXX ............", +"........................................ ............", +"........................................ ............", +"........................................ ............", +"......................................... .............", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/ndd21.xpm b/pixmaps/ndd21.xpm new file mode 100644 index 0000000..499b3f8 --- /dev/null +++ b/pixmaps/ndd21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *ndd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"..... .. ...........", +"..... ..........", +"..... ........", +"..... XX X ......", +"..... XX XX .....", +".... X XX ....", +".... X XX ....", +"... X XXX ...", +"... X XX ...", +".. XX ...", +".. X X XX ..", +".. X .. XX ..", +".. X .. XX ..", +".. .. XX ..", +"....... XX ..", +"...... XX ..", +"...... XX ..", +"...... ..", +".....................", +"....................." +}; diff --git a/pixmaps/ndd25.xpm b/pixmaps/ndd25.xpm new file mode 100644 index 0000000..565efbc --- /dev/null +++ b/pixmaps/ndd25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *ndd25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +"....... ... .............", +"....... . ............", +"....... .........", +"...... XX XXX .......", +"...... XX X ......", +"..... X X X .....", +"..... XX XX .....", +".... X ....", +".... X XX ....", +"... XX ...", +"... X ...", +".. XX .. XX ...", +".. X .... XX ...", +".. .... XX ..", +"... .... X ..", +"..... .... XX ..", +".......... XX ..", +"......... XX ..", +"........ XX ..", +"........ ..", +"........ ..", +".........................", +"........................." +}; diff --git a/pixmaps/ndd29.xpm b/pixmaps/ndd29.xpm new file mode 100644 index 0000000..0ee6213 --- /dev/null +++ b/pixmaps/ndd29.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ndd29[] = { +"29 29 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . . ", +" .. ... ", +" ... ... ", +" ........... ", +" ..XX...XXX.. ", +" ...........X.. ", +" ..XX........X.. ", +" ..X...........X.. ", +" ..X...........XX. ", +" ................X.. ", +" ..........X.....XX. ", +" ..................X. ", +" ..................XX. ", +" .......... .......XX. ", +" .XX..... ........X. ", +" .X..... .........XX. ", +" ...X.. ..........XX. ", +" .... ..........XX. ", +" ...........XX. ", +" ............XX. ", +" .............XX. ", +" ..............XX. ", +" ...............X. ", +" ................. ", +" ", +" ", +" "}; diff --git a/pixmaps/ndd33.xpm b/pixmaps/ndd33.xpm new file mode 100644 index 0000000..8d17ffc --- /dev/null +++ b/pixmaps/ndd33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *ndd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +"............... .................", +"......... ... .................", +"......... .. ................", +"......... ..............", +"......... XX XX ............", +"......... X XX ..........", +"........ X .........", +"........ XX X ........", +"....... X X .......", +"....... X XX .......", +"...... X ......", +"...... XX ......", +"..... X X .....", +"..... XX .....", +".... XX .....", +".... .. X ....", +"... X .... XX ....", +"... X .... XX ....", +"... ..... XX ....", +"... ..... X ....", +".... ..... X ...", +"............. XX ...", +"............ XX ...", +"........... XX ...", +"........... XX ...", +".......... XX ...", +".......... ...", +".......... ...", +".................................", +"................................." +}; diff --git a/pixmaps/ndd37.xpm b/pixmaps/ndd37.xpm new file mode 100644 index 0000000..bb51dbc --- /dev/null +++ b/pixmaps/ndd37.xpm @@ -0,0 +1,43 @@ +/* XPM */ +static char * ndd37[] = { +"37 37 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . .. ", +" ... .. ", +" .... .... ", +" ............ ", +" ...XX....XXX.. ", +" ...X.........XX.. ", +" ...............X.. ", +" ....X............X.. ", +" ...XX.............X.. ", +" ..XX..............XX. ", +" ....................X.. ", +" ....................XX. ", +" .....................X.. ", +" .............X........XX. ", +" .......................X. ", +" ............. ..........X. ", +" ............. ..........XX. ", +" .XX........ ..........XX. ", +" .X....... ............X. ", +" ........ ............X. ", +" ....X.. .............XX. ", +" ...... ..............XX. ", +" . ..............XX. ", +" ...............XX. ", +" ................XX. ", +" .................XX. ", +" .................XX. ", +" ..................XX. ", +" ...................X. ", +" ..................... ", +" ", +" ", +" "}; diff --git a/pixmaps/ndd40.xpm b/pixmaps/ndd40.xpm new file mode 100644 index 0000000..2d7d4d0 --- /dev/null +++ b/pixmaps/ndd40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * ndd40[] = { +"40 40 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . .. ", +" ... .. ", +" .... .... ", +" ..... .... ", +" .............. ", +" ...XXX.....XXX... ", +" ...............XX.. ", +" .................X.. ", +" ....XX.............X.. ", +" ...XX...............X.. ", +" ..XX................XX. ", +" ..X..................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................XX. ", +" ...............X..........X.. ", +" ..........................XX. ", +" ............... ...........XX. ", +" .............. ............X. ", +" ..XX......... ............XX. ", +" ..XX....... .............XX. ", +" ..X....... .............XX. ", +" .....X... ...............X. ", +" ....... ...............X. ", +" ..... ................XX. ", +" . .................XX. ", +" ..................XX. ", +" ...................XX. ", +" ...................XX. ", +" ....................XX. ", +" ....................XX. ", +" .....................XX. ", +" ......................X. ", +" ........................ ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/ndd45.xpm b/pixmaps/ndd45.xpm new file mode 100644 index 0000000..13673a7 --- /dev/null +++ b/pixmaps/ndd45.xpm @@ -0,0 +1,51 @@ +/* XPM */ +static char * ndd45[] = { +"45 45 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" .. .. ", +" ... ... ", +" .... ..... ", +" ..... ...... ", +" ............... ", +" ...XXX......XXX... ", +" ................XXX. ", +" ...................XX. ", +" ....XX...............X. ", +" ....X..................X. ", +" .....X..................X. ", +" ...XX...................XX. ", +" ...X.....................X. ", +" ..........................XX. ", +" ...........................X. ", +" .................X..........XX. ", +" ..............................X. ", +" .................X............X. ", +" ...............................XX. ", +" ................... .............X. ", +" ................. .............X. ", +" ...XX............ .............X. ", +" ...XX.......... .............XX. ", +" ...X......... ...............X. ", +" ............ ................X. ", +" ........... ................X. ", +" .....X... .................X. ", +" ....... ..................XX. ", +" .. ...................XX. ", +" ....................XX. ", +" .....................XX. ", +" ......................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................X. ", +" .........................X. ", +" .........................X. ", +" ........................... ", +" ", +" ", +" "}; diff --git a/pixmaps/ndd49.xpm b/pixmaps/ndd49.xpm new file mode 100644 index 0000000..1a4b04f --- /dev/null +++ b/pixmaps/ndd49.xpm @@ -0,0 +1,55 @@ +/* XPM */ +static char * ndd49[] = { +"49 49 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . . ", +" ... ... ", +" .... .... ", +" ..... ..... ", +" ............... ", +" ....XX.....XXX... ", +" ...XX..........XXX.. ", +" ..................XXX. ", +" .....................XX. ", +" .......................X. ", +" ......X..................X. ", +" ....XX....................X. ", +" ....X.....................XX. ", +" ...X.......................X. ", +" ............................XX. ", +" .............................X. ", +" .............................XX. ", +" ..................X............X. ", +" ..................X............XX. ", +" ................................XX. ", +" ..................................X. ", +" ................... ..............XX. ", +" ................... ..............XX. ", +" ................. ...............X. ", +" ...XX........... ...............X. ", +" ...X.......... ................XX. ", +" ............. ................XX. ", +" ............ .................XX. ", +" ......X.... ..................XX. ", +" ......... ...................X. ", +" ....... ....................X. ", +" .. .....................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................XX. ", +" .........................XX. ", +" .........................XX. ", +" ..........................XX. ", +" ..........................XX. ", +" ...........................XX. ", +" .............................. ", +" .............................. ", +" ", +" ", +" "}; diff --git a/pixmaps/ndd54.xpm b/pixmaps/ndd54.xpm new file mode 100644 index 0000000..5728700 --- /dev/null +++ b/pixmaps/ndd54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *ndd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".............. ....... ............................", +".............. ..... ...........................", +".............. ... ..........................", +".............. .. ..........................", +".............. .........................", +"............... .....................", +"............... X ..................", +".............. XXXX XXXX ................", +"............. XXXXX XXXXX ...............", +"............ X XXXX ..............", +"............ XXXX .............", +"........... XXXX XXXX ............", +"........... XXXX XXXX ............", +"........... XXXX XXXX ...........", +"........... XXX XXX ..........", +"........... X XXXX ..........", +".......... XXXX .........", +".......... XXXX .........", +"......... X XXXX .........", +"........ XX XXXX ........", +"........ X XXXX ........", +"....... XXXX ........", +"....... XXXX .......", +"...... . XXXX .......", +"...... ... XXXX .......", +"..... XX ..... XXXX .......", +"..... XXX ..... XXXX ......", +"..... XXX ....... XXXX ......", +"..... XX ....... XXXX ......", +"..... XX ........ XXXX ......", +"..... XX ........ XXXX ......", +"...... X ........ XXXX ......", +"........ ....... XXXXX ......", +"............ ....... XXXX .....", +"..................... XXXX .....", +".................... XXXX .....", +".................... XXXX .....", +"................... XXXX .....", +".................. XXXX .....", +".................. XXXX .....", +"................. XXXX .....", +"................. XXXX .....", +"................. XX .....", +"................. .....", +"................. .....", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/ndd58.xpm b/pixmaps/ndd58.xpm new file mode 100644 index 0000000..e9509a5 --- /dev/null +++ b/pixmaps/ndd58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *ndd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"................ ......... ..............................", +"............... ....... .............................", +"............... ..... .............................", +"................ ... ............................", +"................ .. ............................", +"................ ........................", +"................ .....................", +"................ XX XXXX ...................", +"............... XXXXX XXXXX .................", +".............. XXX XXXXX ................", +"............. XXXX ...............", +"............. XXXX ..............", +"............ XXXX XXXX .............", +"............ XXXX XXXX ............", +"............ XXXX XXXX ............", +"............ XXX XXX ...........", +"........... X XXXX ...........", +"........... XXXX ..........", +"........... XXXX ..........", +".......... X XXXX .........", +".......... X XXXX .........", +"......... XX XXXX .........", +"........ X XXXX ........", +"....... XXXX ........", +"....... XXXX ........", +"...... . XXXX .......", +"...... ... XXXX .......", +"..... XX ..... XXXX .......", +"..... XXX ..... XXXX .......", +"..... XXX ....... XXXX ......", +"..... XX ....... XXXX ......", +"..... XX ........ XXXXX ......", +"..... X ........ XXXX ......", +"..... XX ........ XXXX ......", +"...... ........ XXXX ......", +"........ ....... XXXX ......", +"............. ....... XXXX .....", +"...................... XXXX .....", +"..................... XXXX .....", +"..................... XXXX .....", +".................... XXXX .....", +"................... XXXXX .....", +"................... XXXXX .....", +".................. XXXX .....", +".................. XXXX .....", +".................. XXX .....", +".................. .....", +".................. .....", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/ndd64.xpm b/pixmaps/ndd64.xpm new file mode 100644 index 0000000..3792964 --- /dev/null +++ b/pixmaps/ndd64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *ndd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................. ........ .................................", +"................. ....... ................................", +"................. .... ................................", +"................. .. ...............................", +"................. . ...............................", +"................. ...........................", +".................. ........................", +".................. XX XXXX ......................", +"................. XXXXX XXXXXX .....................", +"................ XXX XXXXX ...................", +"............... X XXXX ..................", +"............... XXXX .................", +".............. XX XXXX ................", +".............. XXX XXXX ...............", +".............. XXXX XXXX ...............", +"............. XXXXX XXXX ..............", +"............. XXXX XXXX .............", +"............. X XXXX .............", +"............ XXXX ............", +"............ XXXX ............", +"............ XXXX ...........", +"........... X XXXX ...........", +"........... X XXXX ..........", +".......... XX XXXX ..........", +"......... X XXXX ..........", +"......... XXXX .........", +"........ XXXX .........", +"....... . XXXX .........", +"....... ... XXXX ........", +"....... XX ..... XXXX ........", +"...... XXXX ...... XXXX ........", +"...... XXXX ........ XXXX ........", +"...... XXX ........ XXXX ........", +"...... XXX ......... XXXX .......", +"...... X ......... XXXX .......", +"...... XX ......... XXXX .......", +"....... XX ......... XXXX .......", +"........ ......... XXXX .......", +".......... ......... XXXX .......", +".............. ......... XXXXX .......", +"......................... XXXX ......", +"........................ XXXX ......", +"....................... XXXX ......", +"...................... XXXX ......", +"...................... XXXX ......", +"..................... XXXX ......", +"..................... XXXX ......", +".................... XXXX ......", +".................... XXXX ......", +".................... XXXX ......", +".................... ......", +".................... ......", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/ndd72.xpm b/pixmaps/ndd72.xpm new file mode 100644 index 0000000..07a1fe0 --- /dev/null +++ b/pixmaps/ndd72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *ndd72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. ......................................", +".................. ........... .....................................", +"................... ......... ....................................", +"................... ...... ....................................", +"................... ..... ...................................", +"................... ... ...................................", +"................... .. ...................................", +"................... ..............................", +"................... ...........................", +"................... XXXX XXXX .........................", +"................... XXXXXX XXXXXXX .......................", +".................. XXXX XXXXX ......................", +"................. X XXXX ....................", +"................ XXX ...................", +"............... XXXX ..................", +"............... XXXX .................", +".............. XX XXXX ................", +".............. XXX XXXX ...............", +".............. XXXX XXXX ...............", +".............. XXXXX XXX ..............", +".............. XXXX XXXX .............", +"............. X XXXX .............", +"............. XXXX ............", +"............. XXXX ............", +"............ XXXX ...........", +"............ XXXX ...........", +"........... X XXXX ...........", +"........... XX XXXX ..........", +".......... X XXXX ..........", +"......... XX XXXX ..........", +"......... XXXX .........", +"........ XXXX .........", +"....... XXXX .........", +"....... .. XXXX ........", +"...... .... XXXX ........", +"...... ...... XXXX ........", +"...... XX ........ XXXX .......", +"..... XXXX ........ XXXX .......", +"..... XXXX .......... XXXX .......", +"..... XXX .......... XXXX .......", +"..... XXX ........... XXXX .......", +"..... X ........... XXXX .......", +"..... XX ........... XXXX ......", +"..... XX ............ XXXX ......", +"...... X ........... XXXX ......", +"....... ........... XXXX ......", +"......... . ........... XXXX ......", +"............... ........... XXXX ......", +"............................ XXXX ......", +"............................ XXXX ......", +"........................... XXXX .....", +".......................... XXXXX .....", +"......................... XXXX .....", +"......................... XXXX .....", +"........................ XXXX .....", +"....................... XXXX .....", +"....................... XXXX .....", +"....................... XXXX .....", +"...................... XXXX .....", +"...................... XXXX .....", +"...................... XXX .....", +"...................... .....", +"...................... .....", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/ndd80.xpm b/pixmaps/ndd80.xpm new file mode 100644 index 0000000..bf56bdb --- /dev/null +++ b/pixmaps/ndd80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *ndd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................... ............ ..........................................", +"...................... .......... .........................................", +"...................... ......... ........................................", +"...................... ...... ........................................", +"...................... .... .......................................", +"...................... ... .......................................", +"...................... . .......................................", +"...................... .................................", +"...................... ..............................", +"....................... XXXX XXXXXX ............................", +"...................... XXXXXXX XXXXXX ..........................", +"..................... XXXX XXXXX ........................", +".................... XXXX .......................", +"................... XXX ......................", +"................... XXXX .....................", +".................. XXXX ....................", +".................. XXX XXXX ...................", +".................. XXX XXXX ...................", +"................. XXXX XXXX ..................", +"................. XXXX XXX .................", +"................. XXXX XXXX .................", +"................. X XXXX ................", +"................ X XXXX ................", +"................ XXXX ...............", +"................ XXXX ...............", +"............... XXXX ..............", +"............... X XXXX ..............", +".............. X XXXX .............", +".............. XX XXXX .............", +"............. X XXXX .............", +"............ XX XXXX ............", +"............ XXXX ............", +"........... XXXX ............", +"........... . XXXX ...........", +".......... .. XXXX ...........", +"......... .... XXXX ...........", +"......... ...... XXXX ...........", +"......... XX ....... XXXX ..........", +"........ XXX ......... XXXX ..........", +"........ XXX .......... XXXX ..........", +"........ XXX ........... XXXX ..........", +"........ XX ............ XXXX ..........", +"........ X ............ XXXX ..........", +"........ XX ............ XXXX .........", +"........ X ............ XXXX .........", +"........ XX ............. XXXX .........", +"......... X ............. XXXX .........", +".......... ............. XXXX .........", +"............ ............ XXXX .........", +"................. ............. XXXX .........", +"................................ XXXX .........", +"............................... XXXX ........", +".............................. XXXX ........", +"............................. XXXX ........", +"............................ XXXX ........", +"............................ XXXX ........", +"........................... XXXX ........", +"........................... XXXX ........", +".......................... XXXX ........", +".......................... XXXX ........", +"......................... XXXX ........", +"......................... XXXX ........", +"......................... XXX ........", +"......................... X ........", +"......................... ........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/ndd87.xpm b/pixmaps/ndd87.xpm new file mode 100644 index 0000000..5537192 --- /dev/null +++ b/pixmaps/ndd87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *ndd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................ .............. .............................................", +"....................... ............ .............................................", +"....................... .......... ............................................", +"....................... ........ ............................................", +"....................... ...... ...........................................", +"....................... .... ...........................................", +"....................... ... ..........................................", +"....................... . ..........................................", +"........................ ....................................", +"........................ .................................", +"........................ ...............................", +"........................ XXXX XXXXXX .............................", +"....................... XXXXXXX XXXXXXXX ............................", +"...................... XXXXXXXX XXXXXXXX ..........................", +"..................... XXXX XXXXXX .........................", +".................... X XXXXX ........................", +".................... XXXXX .......................", +"................... XXX XXXXX ......................", +"................... XXXXX XXXXX .....................", +"................... XXXXX XXXXX .....................", +".................. XXXXXX XXXXX ....................", +".................. XXXXXX XXXXX ...................", +".................. XXXXXX XXXX ..................", +".................. XX XX XXXXX ..................", +".................. XX XXXXX .................", +"................. XXXX .................", +"................. XXXXX ................", +"................. XXXX ................", +"................ XXXXX ...............", +"................ XX XXXX ...............", +"............... XX XXXXX ..............", +".............. XX XXXXX ..............", +".............. XX XXXXX ..............", +"............. XX XXXXX .............", +"............ X XXXXX .............", +"............ XXXXX .............", +"........... XXXXX ............", +"........... . XXXXX ............", +".......... .. XXXXX ............", +".......... .... XXXXX ............", +"......... ...... XXXXX ...........", +"......... XX ........ XXXXX ...........", +"......... XXXX ......... XXXXX ...........", +"........ XXXXX .......... XXXXX ...........", +"........ XXXXX ........... XXXXX ..........", +"........ XXXX ............ XXXXXX ..........", +"........ XX ............ XXXXX ..........", +"........ XX ............. XXXXX ..........", +"........ XX ............. XXXXX ..........", +"......... XX ............. XXXXX .........", +"......... XX ............. XXXXX .........", +".......... ............. XXXXXX .........", +"........... ............. XXXXXX .........", +"............. . ............. XXXXXX .........", +"................... ............. XXXXX .........", +".................................. XXXXX .........", +".................................. XXXXX .........", +"................................. XXXXX .........", +"................................ XXXXX ........", +"............................... XXXXX ........", +".............................. XXXXX ........", +".............................. XXXXX ........", +"............................. XXXXXX ........", +"............................. XXXXXX ........", +"............................ XXXXXX ........", +"............................ XXXXXX ........", +"............................ XXXXXX ........", +"........................... XXXXX ........", +"........................... XXXX ........", +"........................... ........", +"........................... ........", +"............................ ........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/ndd95.xpm b/pixmaps/ndd95.xpm new file mode 100644 index 0000000..6d2a62e --- /dev/null +++ b/pixmaps/ndd95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *ndd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".......................... ............... ..................................................", +"......................... ............. .................................................", +".......................... ........... ................................................", +".......................... ......... ................................................", +".......................... ....... ...............................................", +".......................... ...... ...............................................", +".......................... .... ..............................................", +".......................... ... ..............................................", +".......................... .........................................", +".......................... .....................................", +".......................... ...................................", +"........................... XXX XXXX .................................", +".......................... XXXXXX XXXXXXX ...............................", +"......................... XXXXXXXXX XXXXXXXX ..............................", +"........................ XXXXX XXXXXXX ............................", +"....................... XXX XXXXXX ...........................", +"...................... XXXXX ..........................", +"...................... XXXXX .........................", +"..................... XXXXX ........................", +"..................... XXX XXXXX .......................", +"..................... XXXXX XXXXX .......................", +".................... XXXXX XXXXX ......................", +".................... XXXXXX XXXXX .....................", +".................... XXXXX XXXX ....................", +".................... XXXXXX XXXXX ....................", +".................... XXXX XXXXX ...................", +"................... XX XXXX ...................", +"................... XXXXX ..................", +"................... XXXX ..................", +".................. XXXXX .................", +".................. XXXX .................", +"................. X XXXXX ................", +"................. X XXXX ................", +"................ XX XXXXX ................", +"................ XX XXXXX ...............", +"............... X XXXXX ...............", +".............. XX XXXXX ...............", +".............. XXXXX ..............", +"............. XXXXX ..............", +"............ XXXXX ..............", +"............ . XXXXX .............", +"........... ... XXXXX .............", +"........... .... XXXXX .............", +".......... ...... XXXXX ............", +".......... XX ........ XXXXXX ............", +".......... XXXX ......... XXXXX ............", +"......... XXXXX ........... XXXXX ............", +"......... XXXXX ............ XXXXX ............", +"......... XXXX ............. XXXXX ...........", +"......... XX .............. XXXXXX ...........", +"......... X .............. XXXXX ...........", +"......... XX .............. XXXXX ...........", +"......... XX ............... XXXXX ...........", +".......... XX ............... XXXXX ...........", +".......... XX ............... XXXXX ..........", +"........... .............. XXXXXX ..........", +"............. .............. XXXXXX ..........", +"............... .............. XXXXXX ..........", +".................... .............. XXXXX ..........", +"..................... .............. XXXXX ..........", +"...................................... XXXXX ..........", +"..................................... XXXXX ..........", +".................................... XXXXX ..........", +"................................... XXXXX .........", +".................................. XXXXX .........", +".................................. XXXXXX .........", +"................................. XXXXXX .........", +"................................. XXXXXX .........", +"................................ XXXXXX .........", +"................................ XXXXXX .........", +"............................... XXXXXX .........", +"............................... XXXXXX .........", +"............................... XXXXXX .........", +".............................. XXXXX .........", +".............................. XXXX .........", +".............................. .........", +".............................. .........", +"............................... .........", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/ndl108.xpm b/pixmaps/ndl108.xpm new file mode 100644 index 0000000..f289b06 --- /dev/null +++ b/pixmaps/ndl108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *ndl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................. .................. .........................................................", +"............................ ................ ........................................................", +"............................ .............. ........................................................", +"............................ ........... .......................................................", +"............................ .......... .......................................................", +"............................. ....... ......................................................", +"............................. ...... ......................................................", +"............................. .... .....................................................", +"............................. ... .....................................................", +"............................. .. .................................................", +"............................. ............................................", +"............................. .........................................", +".............................. X XXX .......................................", +"............................. XXXXX XXXXXXX .....................................", +"............................ XXXXXXXXX XXXXXXXXXX ...................................", +"........................... XXXXXXXX XXXXXXXXX ..................................", +".......................... XXXXX XXXXXXX ................................", +".......................... X XXXXXX ...............................", +"......................... XXXXX ..............................", +"........................ XXXXX .............................", +"........................ XXXXX ............................", +"....................... XXX XXXXX ...........................", +"....................... XXXXXX XXXXX ..........................", +"....................... XXXXX XXXXX ..........................", +"...................... XXXXXX XXXXX .........................", +"...................... XXXXXXX XXXXX ........................", +"...................... XXXXXX XXXX ........................", +"...................... XXXXXXX XXXXX .......................", +"...................... XX XX XXXXX ......................", +"...................... XX XXXXX ......................", +"..................... XX XXXXX .....................", +"..................... XXXXX .....................", +"..................... XXXX ....................", +".................... XXXXX ....................", +".................... XXXX ...................", +"................... XXXXX ...................", +"................... XX XXXX ..................", +".................. XX XXXXX ..................", +"................. XX XXXXX ..................", +"................. X XXXXX .................", +"................ XX XXXXX .................", +"............... X XXXX .................", +".............. X XXXXX ................", +".............. XXXXX ................", +"............. XXXXX ................", +"............. XXXXX ...............", +"............ . XXXXX ...............", +"............ .. XXXXXX ...............", +"........... .... XXXXX ..............", +"........... ...... XXXXX ..............", +".......... ........ XXXXX ..............", +".......... XX ......... XXXXXX ..............", +".......... XXXX ........... XXXXX .............", +"......... XXXXX ............. XXXXX .............", +"......... XXXXX ............. XXXXX .............", +"......... XXXX ............... XXXXXX .............", +"......... XX ............... XXXXX .............", +"......... ................ XXXXX ............", +"......... XX ................ XXXXX ............", +"......... XX ................ XXXXX ............", +".......... XX ................. XXXXX ............", +".......... XX ................. XXXXXX ............", +"........... XX ................. XXXXXX ............", +"............ X ................. XXXXX ............", +".............. ................. XXXXX ...........", +"................ ................ XXXXX ...........", +"...................... ................ XXXXX ...........", +"...................... ................ XXXXX ...........", +"....................... ................ XXXXXX ...........", +"........................................... XXXXXX ...........", +".......................................... XXXXXX ...........", +"......................................... XXXXXX ...........", +"........................................ XXXXXX ...........", +"....................................... XXXXXX ...........", +"...................................... XXXXX ..........", +"...................................... XXXXX ..........", +"..................................... XXXXX ..........", +".................................... XXXXX ..........", +".................................... XXXXX ..........", +"................................... XXXXX ..........", +"................................... XXXXX ..........", +".................................. XXXXX ..........", +".................................. XXXXX ..........", +".................................. XXXXX ..........", +"................................. XXXXX ..........", +"................................. XXXX ..........", +"................................. XXX ..........", +"................................. ..........", +"................................. ..........", +".................................. ..........", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/ndl116.xpm b/pixmaps/ndl116.xpm new file mode 100644 index 0000000..f5dc793 --- /dev/null +++ b/pixmaps/ndl116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *ndl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ..............................................................", +"................................ .................. .............................................................", +"............................... ................ ............................................................", +"............................... ............... ............................................................", +"............................... ............ ...........................................................", +"............................... .......... ...........................................................", +"............................... ........ ..........................................................", +"............................... ...... ..........................................................", +"............................... ..... .........................................................", +"............................... ... .........................................................", +"................................ ... .........................................................", +"................................ .................................................", +"................................ ..............................................", +"................................ ............................................", +"................................. XXXXX XXXXXXX ..........................................", +"................................ XXXXXXXX XXXXXXXXXX ........................................", +"............................... XXXXXXXXXX XXXXXXXXXXX ......................................", +".............................. XXXXXX XXXXXXXX .....................................", +"............................. XXX XXXXXXX ...................................", +"............................ XXXXXX ..................................", +"........................... XXXXX .................................", +"........................... XXXXX ................................", +".......................... XXXXX ...............................", +".......................... XXX XXXXX ..............................", +".......................... XXXXX XXXXX .............................", +"......................... XXXX XXXXX .............................", +"......................... XXXXX XXXXX ............................", +"......................... XXXXXX XXXXX ...........................", +"......................... XXXXXX XXXXX ..........................", +"........................ XXXXXX XXXXX ..........................", +"........................ XX XX XXXXX .........................", +"........................ XX XXXX .........................", +"........................ XX XXXXX ........................", +"....................... XXXXX ........................", +"....................... XXXXX .......................", +"....................... XXXXX .......................", +"...................... XXXXX ......................", +"...................... XXXXX ......................", +"..................... XXXXX .....................", +"..................... XX XXXXX .....................", +".................... XX XXXXX ....................", +"................... XX XXXX ....................", +"................... X XXXXX ....................", +".................. XX XXXXX ...................", +"................. X XXXXX ...................", +"................. X XXXXX ...................", +"................ XXXXX ..................", +"............... XXXXX ..................", +"............... . XXXXX ..................", +".............. .. XXXXX .................", +".............. .... XXXXXX .................", +"............. ..... XXXXX .................", +"............. ....... XXXXX .................", +"............. ......... XXXXX ................", +"............ XX ........... XXXXXX ................", +"............ XXXX ............ XXXXX ................", +"............ XXXXX .............. XXXXX ................", +"........... XXXXX ............... XXXXX ...............", +"........... XXXX ................ XXXXXX ...............", +"........... XXXX ................. XXXXXX ...............", +"........... XX ................. XXXXX ...............", +"........... ................. XXXXX ...............", +"........... XX .................. XXXXX ..............", +"........... XX .................. XXXXX ..............", +"............ XX .................. XXXXXX ..............", +"............ XX .................. XXXXXX ..............", +"............. XX .................. XXXXX ..............", +".............. .................. XXXXX ..............", +"................ .................. XXXXX ..............", +".................. . .................. XXXXX .............", +"......................... ................. XXXXX .............", +"......................... ................. XXXXXX .............", +".......................... ................. XXXXXX .............", +".............................................. XXXXXX .............", +"............................................. XXXXXX .............", +"............................................ XXXXXX .............", +"........................................... XXXXXX .............", +"........................................... XXXXX .............", +".......................................... XXXXX .............", +"......................................... XXXXX ............", +"........................................ XXXXX ............", +"........................................ XXXXX ............", +"....................................... XXXXX ............", +"....................................... XXXXX ............", +"...................................... XXXXX ............", +"...................................... XXXXX ............", +"..................................... XXXXX ............", +"..................................... XXXXX ............", +"..................................... XXXXX ............", +".................................... XXXXXX ............", +".................................... XXXXX ............", +".................................... XX ............", +".................................... ............", +".................................... ............", +"..................................... ............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/ndl129.xpm b/pixmaps/ndl129.xpm new file mode 100644 index 0000000..177a28a --- /dev/null +++ b/pixmaps/ndl129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *ndl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................... ...................... ....................................................................", +".................................. ................... ...................................................................", +".................................. .................. ...................................................................", +".................................. ................ ..................................................................", +".................................. ............. .................................................................", +".................................. ............ .................................................................", +".................................. ......... ................................................................", +".................................. ....... ................................................................", +".................................. ...... ...............................................................", +".................................. .... ...............................................................", +".................................. ... ...............................................................", +".................................. .. ............................................................", +".................................. ......................................................", +"................................... ..................................................", +"................................... ................................................", +"................................... XX ..............................................", +"................................... XXXXXX XXXXXXXXX ............................................", +".................................. XXXXXXXXX XXXXXXXXXXX ..........................................", +"................................. XXXXXXXXXXX XXXXXXXXXXXX .........................................", +"................................ XXXXXXXXXXX XXXXXXXXXXXXX .......................................", +"................................ XXXXXXX XXXXXXXXXX ......................................", +"............................... XXXXX XXXXXXXX .....................................", +".............................. XXXXXXXX ....................................", +"............................. XXXXXXXX ...................................", +"............................. XXXXXXX ..................................", +"............................ XXXXXXX .................................", +"............................ XXXXX XXXXXX ................................", +"........................... XXXXXXX XXXXXX ...............................", +"........................... XXXXX XXXXXX ...............................", +"........................... XXXXXX XXXXXX ..............................", +"........................... XXXXXXX XXXXXX .............................", +".......................... XXXXXXXX XXXXXXX ............................", +".......................... XXXXXXX XXXXXXX ............................", +".......................... XXXXXXX XXXXXX ...........................", +".......................... XXXXXX XXXXXXX ..........................", +".......................... XX XXXXXXX ..........................", +".......................... XX XXXXXX .........................", +"......................... XX XXXXXXX .........................", +"......................... XXXXXXX ........................", +"......................... XXXXXXX ........................", +"........................ XXXXXXX .......................", +"........................ XXXXXXX .......................", +"....................... XXXXXXX ......................", +"....................... X XXXXXXX ......................", +"...................... XXX XXXXXXX ......................", +"..................... XXX XXXXXXX .....................", +"..................... XX XXXXXXX .....................", +".................... XXX XXXXXXX ....................", +"................... XXX XXXXXXX ....................", +"................... XX XXXXXXXX ....................", +".................. XXX XXXXXXX ...................", +"................. X XXXXXXX ...................", +"................. XXXXXXXX ...................", +"................ XXXXXXX ..................", +"............... XXXXXXX ..................", +"............... . XXXXXXXX ..................", +".............. .. XXXXXXX ..................", +".............. ... XXXXXXX .................", +"............. ..... XXXXXXXX .................", +"............. ....... XXXXXXXX .................", +"............ ......... XXXXXXX .................", +"............ XX .......... XXXXXXX ................", +"............ XXXX ............ XXXXXXXX ................", +"............ XXXXXX .............. XXXXXXXX ................", +"........... XXXXXX .............. XXXXXXX ................", +"........... XXXXXX ................ XXXXXXX ................", +"........... XXXXX ................. XXXXXXX ...............", +"........... XXXXX .................. XXXXXXXX ...............", +"........... XXX ................... XXXXXXXX ...............", +"........... X ................... XXXXXXX ...............", +"........... XX ................... XXXXXXX ...............", +"........... XXX .................... XXXXXXX ..............", +"........... XXX .................... XXXXXXXX ..............", +"............ XXX .................... XXXXXXXX ..............", +"............ XXX .................... XXXXXXXX ..............", +"............. XXX .................... XXXXXXXX ..............", +".............. X .................... XXXXXXXX ..............", +"............... .................... XXXXXXX ..............", +"................. ................... XXXXXXX ..............", +"................... ................... XXXXXXX .............", +".......................... ................... XXXXXXXX .............", +"........................... .................... XXXXXXXX .............", +"............................ .................... XXXXXXXX .............", +"................................................... XXXXXXXX .............", +".................................................. XXXXXXXX .............", +"................................................. XXXXXXXX .............", +"................................................ XXXXXXXX .............", +"............................................... XXXXXXXX .............", +"............................................... XXXXXXX .............", +".............................................. XXXXXXX .............", +"............................................. XXXXXXX ............", +"............................................. XXXXXXX ............", +"............................................ XXXXXXX ............", +"........................................... XXXXXXXX ............", +"........................................... XXXXXXXX ............", +".......................................... XXXXXXXX ............", +".......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"......................................... XXXXXXXX ............", +"........................................ XXXXXXX ............", +"........................................ XXXXXX ............", +"........................................ XXXX ............", +"........................................ ............", +"........................................ ............", +"........................................ ............", +"......................................... .............", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/ndl21.xpm b/pixmaps/ndl21.xpm new file mode 100644 index 0000000..f1430a5 --- /dev/null +++ b/pixmaps/ndl21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *ndl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"..... .. ...........", +"..... ..........", +"..... ........", +"..... XX X ......", +"..... XX XX .....", +".... X XX ....", +".... X XX ....", +"... X XXX ...", +"... X XX ...", +".. XX ...", +".. X X XX ..", +".. X .. XX ..", +".. X .. XX ..", +".. .. XX ..", +"....... XX ..", +"...... XX ..", +"...... XX ..", +"...... ..", +".....................", +"....................." +}; diff --git a/pixmaps/ndl25.xpm b/pixmaps/ndl25.xpm new file mode 100644 index 0000000..c8dca0b --- /dev/null +++ b/pixmaps/ndl25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *ndl25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +"....... ... .............", +"....... . ............", +"....... .........", +"...... XX XXX .......", +"...... XX X ......", +"..... X X X .....", +"..... XX XX .....", +".... X ....", +".... X XX ....", +"... XX ...", +"... X ...", +".. XX .. XX ...", +".. X .... XX ...", +".. .... XX ..", +"... .... X ..", +"..... .... XX ..", +".......... XX ..", +"......... XX ..", +"........ XX ..", +"........ ..", +"........ ..", +".........................", +"........................." +}; diff --git a/pixmaps/ndl29.xpm b/pixmaps/ndl29.xpm new file mode 100644 index 0000000..064b9aa --- /dev/null +++ b/pixmaps/ndl29.xpm @@ -0,0 +1,35 @@ +/* XPM */ +static char * ndl29[] = { +"29 29 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . . ", +" .. ... ", +" ... ... ", +" ........... ", +" ..XX...XXX.. ", +" ...........X.. ", +" ..XX........X.. ", +" ..X...........X.. ", +" ..X...........XX. ", +" ................X.. ", +" ..........X.....XX. ", +" ..................X. ", +" ..................XX. ", +" .......... .......XX. ", +" .XX..... ........X. ", +" .X..... .........XX. ", +" ...X.. ..........XX. ", +" .... ..........XX. ", +" ...........XX. ", +" ............XX. ", +" .............XX. ", +" ..............XX. ", +" ...............X. ", +" ................. ", +" ", +" ", +" "}; diff --git a/pixmaps/ndl33.xpm b/pixmaps/ndl33.xpm new file mode 100644 index 0000000..6e35445 --- /dev/null +++ b/pixmaps/ndl33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *ndl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +"............... .................", +"......... ... .................", +"......... .. ................", +"......... ..............", +"......... XX XX ............", +"......... X XX ..........", +"........ X .........", +"........ XX X ........", +"....... X X .......", +"....... X XX .......", +"...... X ......", +"...... XX ......", +"..... X X .....", +"..... XX .....", +".... XX .....", +".... .. X ....", +"... X .... XX ....", +"... X .... XX ....", +"... ..... XX ....", +"... ..... X ....", +".... ..... X ...", +"............. XX ...", +"............ XX ...", +"........... XX ...", +"........... XX ...", +".......... XX ...", +".......... ...", +".......... ...", +".................................", +"................................." +}; diff --git a/pixmaps/ndl37.xpm b/pixmaps/ndl37.xpm new file mode 100644 index 0000000..4cd933e --- /dev/null +++ b/pixmaps/ndl37.xpm @@ -0,0 +1,43 @@ +/* XPM */ +static char * ndl37[] = { +"37 37 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . .. ", +" ... .. ", +" .... .... ", +" ............ ", +" ...XX....XXX.. ", +" ...X.........XX.. ", +" ...............X.. ", +" ....X............X.. ", +" ...XX.............X.. ", +" ..XX..............XX. ", +" ....................X.. ", +" ....................XX. ", +" .....................X.. ", +" .............X........XX. ", +" .......................X. ", +" ............. ..........X. ", +" ............. ..........XX. ", +" .XX........ ..........XX. ", +" .X....... ............X. ", +" ........ ............X. ", +" ....X.. .............XX. ", +" ...... ..............XX. ", +" . ..............XX. ", +" ...............XX. ", +" ................XX. ", +" .................XX. ", +" .................XX. ", +" ..................XX. ", +" ...................X. ", +" ..................... ", +" ", +" ", +" "}; diff --git a/pixmaps/ndl40.xpm b/pixmaps/ndl40.xpm new file mode 100644 index 0000000..96982ae --- /dev/null +++ b/pixmaps/ndl40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * ndl40[] = { +"40 40 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . .. ", +" ... .. ", +" .... .... ", +" ..... .... ", +" .............. ", +" ...XXX.....XXX... ", +" ...............XX.. ", +" .................X.. ", +" ....XX.............X.. ", +" ...XX...............X.. ", +" ..XX................XX. ", +" ..X..................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................XX. ", +" ...............X..........X.. ", +" ..........................XX. ", +" ............... ...........XX. ", +" .............. ............X. ", +" ..XX......... ............XX. ", +" ..XX....... .............XX. ", +" ..X....... .............XX. ", +" .....X... ...............X. ", +" ....... ...............X. ", +" ..... ................XX. ", +" . .................XX. ", +" ..................XX. ", +" ...................XX. ", +" ...................XX. ", +" ....................XX. ", +" ....................XX. ", +" .....................XX. ", +" ......................X. ", +" ........................ ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/ndl45.xpm b/pixmaps/ndl45.xpm new file mode 100644 index 0000000..3d276b9 --- /dev/null +++ b/pixmaps/ndl45.xpm @@ -0,0 +1,51 @@ +/* XPM */ +static char * ndl45[] = { +"45 45 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" .. .. ", +" ... ... ", +" .... ..... ", +" ..... ...... ", +" ............... ", +" ...XXX......XXX... ", +" ................XXX. ", +" ...................XX. ", +" ....XX...............X. ", +" ....X..................X. ", +" .....X..................X. ", +" ...XX...................XX. ", +" ...X.....................X. ", +" ..........................XX. ", +" ...........................X. ", +" .................X..........XX. ", +" ..............................X. ", +" .................X............X. ", +" ...............................XX. ", +" ................... .............X. ", +" ................. .............X. ", +" ...XX............ .............X. ", +" ...XX.......... .............XX. ", +" ...X......... ...............X. ", +" ............ ................X. ", +" ........... ................X. ", +" .....X... .................X. ", +" ....... ..................XX. ", +" .. ...................XX. ", +" ....................XX. ", +" .....................XX. ", +" ......................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................X. ", +" .........................X. ", +" .........................X. ", +" ........................... ", +" ", +" ", +" "}; diff --git a/pixmaps/ndl49.xpm b/pixmaps/ndl49.xpm new file mode 100644 index 0000000..e79a791 --- /dev/null +++ b/pixmaps/ndl49.xpm @@ -0,0 +1,55 @@ +/* XPM */ +static char * ndl49[] = { +"49 49 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . . ", +" ... ... ", +" .... .... ", +" ..... ..... ", +" ............... ", +" ....XX.....XXX... ", +" ...XX..........XXX.. ", +" ..................XXX. ", +" .....................XX. ", +" .......................X. ", +" ......X..................X. ", +" ....XX....................X. ", +" ....X.....................XX. ", +" ...X.......................X. ", +" ............................XX. ", +" .............................X. ", +" .............................XX. ", +" ..................X............X. ", +" ..................X............XX. ", +" ................................XX. ", +" ..................................X. ", +" ................... ..............XX. ", +" ................... ..............XX. ", +" ................. ...............X. ", +" ...XX........... ...............X. ", +" ...X.......... ................XX. ", +" ............. ................XX. ", +" ............ .................XX. ", +" ......X.... ..................XX. ", +" ......... ...................X. ", +" ....... ....................X. ", +" .. .....................XX. ", +" ......................XX. ", +" .......................XX. ", +" ........................XX. ", +" .........................XX. ", +" .........................XX. ", +" ..........................XX. ", +" ..........................XX. ", +" ...........................XX. ", +" .............................. ", +" .............................. ", +" ", +" ", +" "}; diff --git a/pixmaps/ndl54.xpm b/pixmaps/ndl54.xpm new file mode 100644 index 0000000..9d06e45 --- /dev/null +++ b/pixmaps/ndl54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *ndl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".............. ....... ............................", +".............. ..... ...........................", +".............. ... ..........................", +".............. .. ..........................", +".............. .........................", +"............... .....................", +"............... X ..................", +".............. XXXX XXXX ................", +"............. XXXXX XXXXX ...............", +"............ X XXXX ..............", +"............ XXXX .............", +"........... XXXX XXXX ............", +"........... XXXX XXXX ............", +"........... XXXX XXXX ...........", +"........... XXX XXX ..........", +"........... X XXXX ..........", +".......... XXXX .........", +".......... XXXX .........", +"......... X XXXX .........", +"........ XX XXXX ........", +"........ X XXXX ........", +"....... XXXX ........", +"....... XXXX .......", +"...... . XXXX .......", +"...... ... XXXX .......", +"..... XX ..... XXXX .......", +"..... XXX ..... XXXX ......", +"..... XXX ....... XXXX ......", +"..... XX ....... XXXX ......", +"..... XX ........ XXXX ......", +"..... XX ........ XXXX ......", +"...... X ........ XXXX ......", +"........ ....... XXXXX ......", +"............ ....... XXXX .....", +"..................... XXXX .....", +".................... XXXX .....", +".................... XXXX .....", +"................... XXXX .....", +".................. XXXX .....", +".................. XXXX .....", +"................. XXXX .....", +"................. XXXX .....", +"................. XX .....", +"................. .....", +"................. .....", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/ndl58.xpm b/pixmaps/ndl58.xpm new file mode 100644 index 0000000..9392382 --- /dev/null +++ b/pixmaps/ndl58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *ndl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"................ ......... ..............................", +"............... ....... .............................", +"............... ..... .............................", +"................ ... ............................", +"................ .. ............................", +"................ ........................", +"................ .....................", +"................ XX XXXX ...................", +"............... XXXXX XXXXX .................", +".............. XXX XXXXX ................", +"............. XXXX ...............", +"............. XXXX ..............", +"............ XXXX XXXX .............", +"............ XXXX XXXX ............", +"............ XXXX XXXX ............", +"............ XXX XXX ...........", +"........... X XXXX ...........", +"........... XXXX ..........", +"........... XXXX ..........", +".......... X XXXX .........", +".......... X XXXX .........", +"......... XX XXXX .........", +"........ X XXXX ........", +"....... XXXX ........", +"....... XXXX ........", +"...... . XXXX .......", +"...... ... XXXX .......", +"..... XX ..... XXXX .......", +"..... XXX ..... XXXX .......", +"..... XXX ....... XXXX ......", +"..... XX ....... XXXX ......", +"..... XX ........ XXXXX ......", +"..... X ........ XXXX ......", +"..... XX ........ XXXX ......", +"...... ........ XXXX ......", +"........ ....... XXXX ......", +"............. ....... XXXX .....", +"...................... XXXX .....", +"..................... XXXX .....", +"..................... XXXX .....", +".................... XXXX .....", +"................... XXXXX .....", +"................... XXXXX .....", +".................. XXXX .....", +".................. XXXX .....", +".................. XXX .....", +".................. .....", +".................. .....", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/ndl64.xpm b/pixmaps/ndl64.xpm new file mode 100644 index 0000000..b46377a --- /dev/null +++ b/pixmaps/ndl64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *ndl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................. ........ .................................", +"................. ....... ................................", +"................. .... ................................", +"................. .. ...............................", +"................. . ...............................", +"................. ...........................", +".................. ........................", +".................. XX XXXX ......................", +"................. XXXXX XXXXXX .....................", +"................ XXX XXXXX ...................", +"............... X XXXX ..................", +"............... XXXX .................", +".............. XX XXXX ................", +".............. XXX XXXX ...............", +".............. XXXX XXXX ...............", +"............. XXXXX XXXX ..............", +"............. XXXX XXXX .............", +"............. X XXXX .............", +"............ XXXX ............", +"............ XXXX ............", +"............ XXXX ...........", +"........... X XXXX ...........", +"........... X XXXX ..........", +".......... XX XXXX ..........", +"......... X XXXX ..........", +"......... XXXX .........", +"........ XXXX .........", +"....... . XXXX .........", +"....... ... XXXX ........", +"....... XX ..... XXXX ........", +"...... XXXX ...... XXXX ........", +"...... XXXX ........ XXXX ........", +"...... XXX ........ XXXX ........", +"...... XXX ......... XXXX .......", +"...... X ......... XXXX .......", +"...... XX ......... XXXX .......", +"....... XX ......... XXXX .......", +"........ ......... XXXX .......", +".......... ......... XXXX .......", +".............. ......... XXXXX .......", +"......................... XXXX ......", +"........................ XXXX ......", +"....................... XXXX ......", +"...................... XXXX ......", +"...................... XXXX ......", +"..................... XXXX ......", +"..................... XXXX ......", +".................... XXXX ......", +".................... XXXX ......", +".................... XXXX ......", +".................... ......", +".................... ......", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/ndl72.xpm b/pixmaps/ndl72.xpm new file mode 100644 index 0000000..dac2c14 --- /dev/null +++ b/pixmaps/ndl72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *ndl72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. ......................................", +".................. ........... .....................................", +"................... ......... ....................................", +"................... ...... ....................................", +"................... ..... ...................................", +"................... ... ...................................", +"................... .. ...................................", +"................... ..............................", +"................... ...........................", +"................... XXXX XXXX .........................", +"................... XXXXXX XXXXXXX .......................", +".................. XXXX XXXXX ......................", +"................. X XXXX ....................", +"................ XXX ...................", +"............... XXXX ..................", +"............... XXXX .................", +".............. XX XXXX ................", +".............. XXX XXXX ...............", +".............. XXXX XXXX ...............", +".............. XXXXX XXX ..............", +".............. XXXX XXXX .............", +"............. X XXXX .............", +"............. XXXX ............", +"............. XXXX ............", +"............ XXXX ...........", +"............ XXXX ...........", +"........... X XXXX ...........", +"........... XX XXXX ..........", +".......... X XXXX ..........", +"......... XX XXXX ..........", +"......... XXXX .........", +"........ XXXX .........", +"....... XXXX .........", +"....... .. XXXX ........", +"...... .... XXXX ........", +"...... ...... XXXX ........", +"...... XX ........ XXXX .......", +"..... XXXX ........ XXXX .......", +"..... XXXX .......... XXXX .......", +"..... XXX .......... XXXX .......", +"..... XXX ........... XXXX .......", +"..... X ........... XXXX .......", +"..... XX ........... XXXX ......", +"..... XX ............ XXXX ......", +"...... X ........... XXXX ......", +"....... ........... XXXX ......", +"......... . ........... XXXX ......", +"............... ........... XXXX ......", +"............................ XXXX ......", +"............................ XXXX ......", +"........................... XXXX .....", +".......................... XXXXX .....", +"......................... XXXX .....", +"......................... XXXX .....", +"........................ XXXX .....", +"....................... XXXX .....", +"....................... XXXX .....", +"....................... XXXX .....", +"...................... XXXX .....", +"...................... XXXX .....", +"...................... XXX .....", +"...................... .....", +"...................... .....", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/ndl80.xpm b/pixmaps/ndl80.xpm new file mode 100644 index 0000000..649a597 --- /dev/null +++ b/pixmaps/ndl80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *ndl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................... ............ ..........................................", +"...................... .......... .........................................", +"...................... ......... ........................................", +"...................... ...... ........................................", +"...................... .... .......................................", +"...................... ... .......................................", +"...................... . .......................................", +"...................... .................................", +"...................... ..............................", +"....................... XXXX XXXXXX ............................", +"...................... XXXXXXX XXXXXX ..........................", +"..................... XXXX XXXXX ........................", +".................... XXXX .......................", +"................... XXX ......................", +"................... XXXX .....................", +".................. XXXX ....................", +".................. XXX XXXX ...................", +".................. XXX XXXX ...................", +"................. XXXX XXXX ..................", +"................. XXXX XXX .................", +"................. XXXX XXXX .................", +"................. X XXXX ................", +"................ X XXXX ................", +"................ XXXX ...............", +"................ XXXX ...............", +"............... XXXX ..............", +"............... X XXXX ..............", +".............. X XXXX .............", +".............. XX XXXX .............", +"............. X XXXX .............", +"............ XX XXXX ............", +"............ XXXX ............", +"........... XXXX ............", +"........... . XXXX ...........", +".......... .. XXXX ...........", +"......... .... XXXX ...........", +"......... ...... XXXX ...........", +"......... XX ....... XXXX ..........", +"........ XXX ......... XXXX ..........", +"........ XXX .......... XXXX ..........", +"........ XXX ........... XXXX ..........", +"........ XX ............ XXXX ..........", +"........ X ............ XXXX ..........", +"........ XX ............ XXXX .........", +"........ X ............ XXXX .........", +"........ XX ............. XXXX .........", +"......... X ............. XXXX .........", +".......... ............. XXXX .........", +"............ ............ XXXX .........", +"................. ............. XXXX .........", +"................................ XXXX .........", +"............................... XXXX ........", +".............................. XXXX ........", +"............................. XXXX ........", +"............................ XXXX ........", +"............................ XXXX ........", +"........................... XXXX ........", +"........................... XXXX ........", +".......................... XXXX ........", +".......................... XXXX ........", +"......................... XXXX ........", +"......................... XXXX ........", +"......................... XXX ........", +"......................... X ........", +"......................... ........", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/ndl87.xpm b/pixmaps/ndl87.xpm new file mode 100644 index 0000000..959803d --- /dev/null +++ b/pixmaps/ndl87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *ndl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"........................ .............. .............................................", +"....................... ............ .............................................", +"....................... .......... ............................................", +"....................... ........ ............................................", +"....................... ...... ...........................................", +"....................... .... ...........................................", +"....................... ... ..........................................", +"....................... . ..........................................", +"........................ ....................................", +"........................ .................................", +"........................ ...............................", +"........................ XXXX XXXXXX .............................", +"....................... XXXXXXX XXXXXXXX ............................", +"...................... XXXXXXXX XXXXXXXX ..........................", +"..................... XXXX XXXXXX .........................", +".................... X XXXXX ........................", +".................... XXXXX .......................", +"................... XXX XXXXX ......................", +"................... XXXXX XXXXX .....................", +"................... XXXXX XXXXX .....................", +".................. XXXXXX XXXXX ....................", +".................. XXXXXX XXXXX ...................", +".................. XXXXXX XXXX ..................", +".................. XX XX XXXXX ..................", +".................. XX XXXXX .................", +"................. XXXX .................", +"................. XXXXX ................", +"................. XXXX ................", +"................ XXXXX ...............", +"................ XX XXXX ...............", +"............... XX XXXXX ..............", +".............. XX XXXXX ..............", +".............. XX XXXXX ..............", +"............. XX XXXXX .............", +"............ X XXXXX .............", +"............ XXXXX .............", +"........... XXXXX ............", +"........... . XXXXX ............", +".......... .. XXXXX ............", +".......... .... XXXXX ............", +"......... ...... XXXXX ...........", +"......... XX ........ XXXXX ...........", +"......... XXXX ......... XXXXX ...........", +"........ XXXXX .......... XXXXX ...........", +"........ XXXXX ........... XXXXX ..........", +"........ XXXX ............ XXXXXX ..........", +"........ XX ............ XXXXX ..........", +"........ XX ............. XXXXX ..........", +"........ XX ............. XXXXX ..........", +"......... XX ............. XXXXX .........", +"......... XX ............. XXXXX .........", +".......... ............. XXXXXX .........", +"........... ............. XXXXXX .........", +"............. . ............. XXXXXX .........", +"................... ............. XXXXX .........", +".................................. XXXXX .........", +".................................. XXXXX .........", +"................................. XXXXX .........", +"................................ XXXXX ........", +"............................... XXXXX ........", +".............................. XXXXX ........", +".............................. XXXXX ........", +"............................. XXXXXX ........", +"............................. XXXXXX ........", +"............................ XXXXXX ........", +"............................ XXXXXX ........", +"............................ XXXXXX ........", +"........................... XXXXX ........", +"........................... XXXX ........", +"........................... ........", +"........................... ........", +"............................ ........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/ndl95.xpm b/pixmaps/ndl95.xpm new file mode 100644 index 0000000..76be064 --- /dev/null +++ b/pixmaps/ndl95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *ndl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".......................... ............... ..................................................", +"......................... ............. .................................................", +".......................... ........... ................................................", +".......................... ......... ................................................", +".......................... ....... ...............................................", +".......................... ...... ...............................................", +".......................... .... ..............................................", +".......................... ... ..............................................", +".......................... .........................................", +".......................... .....................................", +".......................... ...................................", +"........................... XXX XXXX .................................", +".......................... XXXXXX XXXXXXX ...............................", +"......................... XXXXXXXXX XXXXXXXX ..............................", +"........................ XXXXX XXXXXXX ............................", +"....................... XXX XXXXXX ...........................", +"...................... XXXXX ..........................", +"...................... XXXXX .........................", +"..................... XXXXX ........................", +"..................... XXX XXXXX .......................", +"..................... XXXXX XXXXX .......................", +".................... XXXXX XXXXX ......................", +".................... XXXXXX XXXXX .....................", +".................... XXXXX XXXX ....................", +".................... XXXXXX XXXXX ....................", +".................... XXXX XXXXX ...................", +"................... XX XXXX ...................", +"................... XXXXX ..................", +"................... XXXX ..................", +".................. XXXXX .................", +".................. XXXX .................", +"................. X XXXXX ................", +"................. X XXXX ................", +"................ XX XXXXX ................", +"................ XX XXXXX ...............", +"............... X XXXXX ...............", +".............. XX XXXXX ...............", +".............. XXXXX ..............", +"............. XXXXX ..............", +"............ XXXXX ..............", +"............ . XXXXX .............", +"........... ... XXXXX .............", +"........... .... XXXXX .............", +".......... ...... XXXXX ............", +".......... XX ........ XXXXXX ............", +".......... XXXX ......... XXXXX ............", +"......... XXXXX ........... XXXXX ............", +"......... XXXXX ............ XXXXX ............", +"......... XXXX ............. XXXXX ...........", +"......... XX .............. XXXXXX ...........", +"......... X .............. XXXXX ...........", +"......... XX .............. XXXXX ...........", +"......... XX ............... XXXXX ...........", +".......... XX ............... XXXXX ...........", +".......... XX ............... XXXXX ..........", +"........... .............. XXXXXX ..........", +"............. .............. XXXXXX ..........", +"............... .............. XXXXXX ..........", +".................... .............. XXXXX ..........", +"..................... .............. XXXXX ..........", +"...................................... XXXXX ..........", +"..................................... XXXXX ..........", +".................................... XXXXX ..........", +"................................... XXXXX .........", +".................................. XXXXX .........", +".................................. XXXXXX .........", +"................................. XXXXXX .........", +"................................. XXXXXX .........", +"................................ XXXXXX .........", +"................................ XXXXXX .........", +"............................... XXXXXX .........", +"............................... XXXXXX .........", +"............................... XXXXXX .........", +".............................. XXXXX .........", +".............................. XXXX .........", +".............................. .........", +".............................. .........", +"............................... .........", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/nld108.xpm b/pixmaps/nld108.xpm new file mode 100644 index 0000000..d72df7e --- /dev/null +++ b/pixmaps/nld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *nld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................. ................. .........................................................", +"............................ ................ ........................................................", +"............................ .............. ........................................................", +"............................ ........... .......................................................", +"............................ .......... X .......................................................", +"............................. X ....... XXX ......................................................", +"............................. XX ...... XXX ......................................................", +"............................. XXXX .... XXXXX .....................................................", +"............................. XXXXX ... XXXXX .....................................................", +"............................. XXXXXX . XXXXXX .................................................", +"............................. XXXXXXX XXXXXXX ............................................", +"............................. XXXXXXX XXXXXXX .........................................", +".............................. XXXXX X XXXXXXX XXX .......................................", +"............................. XXXX XX XXXXXXXX XXXXXXXX .....................................", +"............................ XX XXXXXXXXXXXXX XXXXXXXXXXX ...................................", +"........................... XXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXX .................................", +".......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"....................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"....................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"....................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"...................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXX XXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXX XXXXXXXXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXX XXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXX XXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXX XXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXX XXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXX XXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXX XXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXX XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".............. XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................ XX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. .........", +"................................. .........", +".................................. ...........", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/nld116.xpm b/pixmaps/nld116.xpm new file mode 100644 index 0000000..feb5883 --- /dev/null +++ b/pixmaps/nld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *nld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ..............................................................", +"................................ .................. .............................................................", +"............................... ................ ............................................................", +"............................... ............... ............................................................", +"............................... ............ X ...........................................................", +"............................... .......... X ...........................................................", +"............................... XX ........ XXX ..........................................................", +"............................... XXX ...... XXXX ..........................................................", +"............................... XXXXX ..... XXXXX .........................................................", +"............................... XXXXXX ... XXXXXX .........................................................", +"................................ XXXXXX .. XXXXXX .........................................................", +"................................ XXXXXXX XXXXXXX .................................................", +"................................ XXXXXXX XXXXXXXX ..............................................", +"................................ XXXXXX XXXXXXXX X ...........................................", +"................................. XXXX XX XXXXXXXX XXXXXXX .........................................", +"................................ XXX XXXXXXXXXXXXXX XXXXXXXXXX .......................................", +"............................... XXX XXXXXXXXXXXXXXX XXXXXXXXXXXXX .....................................", +".............................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"............................. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".......................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".......................... XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XXXX XXXXXXXXXXXXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XXX XXXXXXXXXXXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XX XXXXXXXXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XXX XXXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXX XXXXXXXXXXXXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXX XXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXX XXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXX XXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXX XXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXX XXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXX XXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXX XXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXX XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"................ XXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".................. . XX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... ...........", +".................................... ...........", +"..................................... .............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/nld129.xpm b/pixmaps/nld129.xpm new file mode 100644 index 0000000..4b19578 --- /dev/null +++ b/pixmaps/nld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *nld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................. ...................... .....................................................................", +"................................. ................... ....................................................................", +"................................. .................. ....................................................................", +"................................. ................ ...................................................................", +"................................. ............. ...................................................................", +"................................. ............ ..................................................................", +"................................. ......... X .................................................................", +"................................. X ....... XXX .................................................................", +"................................. XXX ...... XXXX ................................................................", +"................................. XXXX .... XXXXX ................................................................", +"................................. XXXXXX ... XXXXXX ................................................................", +"................................. XXXXXXX . XXXXXX .. .............................................................", +"................................. XXXXXX XXXXXX .......................................................", +".................................. XXXXXXX XXXXXXXX ...................................................", +".................................. XXXXXXX XXXXXXXX .................................................", +".................................. XXXXX XXXXXXXX XX ...............................................", +".................................. XXXX XXX XXXXXXXX XXXXXXX .............................................", +"................................. XXX XXXXX XXXXXXXXX XXXXXXXXXX ...........................................", +"................................ XXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................................", +"............................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"............................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +".............................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"........................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXX XXXXXXXXXXXXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XX XXXXXXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XX XXXXXXXXXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXX XXXXXXXX XXXXXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXX XXXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXX XXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXX XXXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXX XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXX XXXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXX XXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXX XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"................ XX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".................. ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".................................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"................................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"................................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... ...........", +"....................................... ...........", +"....................................... ...........", +"........................................ ..............", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/nld21.xpm b/pixmaps/nld21.xpm new file mode 100644 index 0000000..fe6035b --- /dev/null +++ b/pixmaps/nld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *nld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"..... .. ...........", +"..... ..........", +"..... X X .......", +"..... X XX XX .....", +"..... XXXXXX ....", +".... X XXXXXXX ...", +".... XXXXX XXXX ...", +"... XXXXXX XXXXX ..", +"... XXXXXX XXXXX ..", +".. XXXXX X XXXXX ..", +".. XXXX . XXXXXX ..", +".. X .. XXXXXXX .", +".. X .. XXXXXXX .", +".. .. XXXXXXXX .", +"....... XXXXXXXXX .", +"...... XXXXXXXXXX .", +"...... XXXXXXXXXXX .", +"...... .", +".....................", +"....................." +}; diff --git a/pixmaps/nld25.xpm b/pixmaps/nld25.xpm new file mode 100644 index 0000000..82e6181 --- /dev/null +++ b/pixmaps/nld25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *nld25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +"....... ... .............", +"....... . X ............", +"....... X X .........", +"...... X XXX XXX .......", +"...... XXXXXXXX ......", +"..... X XXXXXXXXX .....", +"..... XXXXXXXXXXX .....", +".... XXXXXXXX XXXXX ....", +".... XXXXXXXX XXXXX ....", +"... XXXXXXXXX XXXXXX ...", +"... XXXXXXXX XXXXXX ...", +".. XXXX . XXXXXX ...", +".. XXXX .... XXXXXX ...", +".. XX X .... XXXXXXXX ..", +"... .... XXXXXXXXX ..", +"..... ... XXXXXXXXXX ..", +"......... XXXXXXXXXXX ..", +"......... XXXXXXXXXXX ..", +"........ XXXXXXXXXXXX ..", +"........ XXXXXXXXXXXX ..", +"........ ..", +".........................", +"........................." +}; diff --git a/pixmaps/nld29.xpm b/pixmaps/nld29.xpm new file mode 100644 index 0000000..f66c29e --- /dev/null +++ b/pixmaps/nld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *nld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +"....... .... ................", +"....... ... ...............", +"....... X . X ...............", +"....... XX X ...........", +"....... XXXXXXXX .........", +"...... XXXXXXXXXXXX ........", +"...... X XXXXXXXXXX .......", +"..... X XXXXXXXXXXXXX .......", +"..... X XXXXXX XXXXXX ......", +".... XXXXXXXXX XXXXXXX .....", +".... XXXXXXXXX XXXXXXX .....", +"... XXXXXXXXX XXXXXXX .....", +"... XXXXXXX . XXXXXXXX ....", +".. XXXXXXX ... XXXXXXXX ....", +".. XXXX .... XXXXXXXX ....", +".. XXXX .... XXXXXXXXX ....", +".. XX X .... XXXXXXXXXXX ....", +"... ..... XXXXXXXXXXX ...", +"........... XXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXX ...", +"......... XXXXXXXXXXXXXX ...", +"........ XXXXXXXXXXXXXXX ...", +"........ XXXXXXXXXXXXXXX ...", +"........ ...", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/nld33.xpm b/pixmaps/nld33.xpm new file mode 100644 index 0000000..ebf3a75 --- /dev/null +++ b/pixmaps/nld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *nld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +"......... ... .................", +"......... X . XX ................", +"......... XX XX ..............", +"......... X XX XX ............", +"......... X XXXXXXXXX ..........", +"........ XXXXXXXXXXXXX .........", +"........ X XXXXXXXXXXX ........", +"....... X XXXXXXXXXXXXXX .......", +"....... X XXXXXXXX XXXXX .......", +"...... XXXXXXXXXXX XXXXXX ......", +"...... XXXXXXXXXXX XXXXXX ......", +"..... XXXXXXXXXXXX XXXXXXX .....", +"..... XXXXXXXXXXX XXXXXXXX .....", +".... XXXXXXXXXX XXXXXXXX .....", +".... XXXXXXXXX .. XXXXXXXXX ....", +"... X XXXXXX ... XXXXXXXXX ....", +"... X XXXXX .... XXXXXXXXXX ....", +"... XXX XX ..... XXXXXXXXXX ....", +"... XXX X ..... XXXXXXXXXXXX ....", +".... ..... XXXXXXXXXXXXX ...", +"............. XXXXXXXXXXXXXX ...", +"............ XXXXXXXXXXXXXXX ...", +"........... XXXXXXXXXXXXXXXX ...", +"........... XXXXXXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXXXXXX ...", +".......... ...", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/nld37.xpm b/pixmaps/nld37.xpm new file mode 100644 index 0000000..bc49463 --- /dev/null +++ b/pixmaps/nld37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *nld37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"......... ...... ....................", +"......... ... X ...................", +"......... XX . XX ...................", +"......... XXX XX ................", +"......... XX X XX XXX ..............", +"........ XX XXXXXXXXXXX ............", +"........ XXXXXXXXXXXXXXX ...........", +"....... XXX XXXXXXXXXXXXX ..........", +"....... XX XXXXXXXXXXXXXX .........", +"....... X XXXXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXX XXXXXXX ........", +"...... XXXXXXXXXXXX XXXXXXXX ........", +"...... XXXXXXXXXXXX XXXXXXXX .......", +"..... XXXXXXXXXXXXX XXXXXXXXX .......", +"..... XXXXXXXXXXXX XXXXXXXXXX ......", +".... XXXXXXXXXXXX XXXXXXXXXX ......", +"... XXXXXXXXXXX . XXXXXXXXXXX ......", +"... XXXXXXX ... XXXXXXXXXXX .....", +"... XXXXXXX .... XXXXXXXXXXXX .....", +"... XXXXXXX ..... XXXXXXXXXXXX .....", +"... XXX XX ..... XXXXXXXXXXXXX .....", +".... X ..... XXXXXXXXXXXXXXX .....", +"........ ...... XXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXX ....", +"............. XXXXXXXXXXXXXXXXX ....", +"............ XXXXXXXXXXXXXXXXXX ....", +"............ XXXXXXXXXXXXXXXXXX ....", +"........... XXXXXXXXXXXXXXXXXXX ....", +"........... XXXXXXXXXXXXXXXXXXX ....", +"........... ....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/nld40.xpm b/pixmaps/nld40.xpm new file mode 100644 index 0000000..81c112b --- /dev/null +++ b/pixmaps/nld40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * nld40[] = { +"40 40 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . .. ", +" ... .. ", +" .XX. .XX. ", +" .XXX...XX. ", +" .XX.X.XX...... ", +" .XX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXX.. ", +" .XXX..XXXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXXXXXXXXXX.. ", +" .X..XXXXXXXXXXXXXXXXXX.. ", +" .X.XXXXXXXXXX.XXXXXXXXX.. ", +" .XXXXXXXXXXXXX.XXXXXXXXX.. ", +" .XXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX..XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXX.. .XXXXXXXXXXXXX. ", +" .X..XXXXXXXX.. .XXXXXXXXXXXXX.. ", +" .X..XXXXXX.. .XXXXXXXXXXXXX.. ", +" .X.XXXXXX. .XXXXXXXXXXXXXX.. ", +" .XXXX.XX. .XXXXXXXXXXXXXX.. ", +" .XXX.X. .XXXXXXXXXXXXXXX.. ", +" ...X. .XXXXXXXXXXXXXXXXX. ", +" . .XXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" ......................... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/nld45.xpm b/pixmaps/nld45.xpm new file mode 100644 index 0000000..21d58cb --- /dev/null +++ b/pixmaps/nld45.xpm @@ -0,0 +1,51 @@ +/* XPM */ +static char * nld45[] = { +"45 45 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . .. ", +" ... .X. ", +" .XX. .XX. ", +" .XXX...XXX. ", +" .XXX.X.XXX...... ", +" .XX.XXXXXX.XXXXX.. ", +" .XXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXX..XXXXXXXXXXXXXXXX.. ", +" .XXX.XXXXXXXXXXXXXXXXXXX.. ", +" .XXXX.XXXXXXXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXXXXXXXXXXXXX.. ", +" .XX.XXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX..XXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXX. .XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.. .XXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXX.. .XXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXX. .XXXXXXXXXXXXXXX. ", +" .XX.XXXXXXXX. .XXXXXXXXXXXXXXXX.. ", +" .XXXXXX.XXX. .XXXXXXXXXXXXXXXX.. ", +" .XXXXX.XXX. .XXXXXXXXXXXXXXXXX.. ", +" .XXXX.XX. .XXXXXXXXXXXXXXXXX.. ", +" .....X. .XXXXXXXXXXXXXXXXXX.. ", +" .. .XXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ............................ ", +" ", +" ", +" "}; diff --git a/pixmaps/nld49.xpm b/pixmaps/nld49.xpm new file mode 100644 index 0000000..848d3c6 --- /dev/null +++ b/pixmaps/nld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *nld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +"............ ........ ...........................", +"............ ..... X ..........................", +"............ XX .... XX .........................", +"............ XXX .. XXX .........................", +"............ XXXX XXX ......................", +"............. XX X XXX XXX ...................", +"............ XX XXXXXXXXXXXXXX .................", +"........... XXXXXXXXXXXXXXXXXXXX ................", +".......... XXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXXXX XXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXX XXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XX XXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXX .......", +".... XXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXX ......", +".... XXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ......", +"... XX XXXXXXXXX ...... XXXXXXXXXXXXXXX ......", +"... XX XXXXXXXXX ....... XXXXXXXXXXXXXXXXX ......", +"... XXXXXXXXXXX ........ XXXXXXXXXXXXXXXXX .....", +"... XXXXXX XXX ........ XXXXXXXXXXXXXXXXXX .....", +"... XXXXX XXX ........ XXXXXXXXXXXXXXXXXXX .....", +".... XXXX XX ........ XXXXXXXXXXXXXXXXXXXX .....", +"..... X ........ XXXXXXXXXXXXXXXXXXXXX .....", +".......... ....... XXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. .....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/nld54.xpm b/pixmaps/nld54.xpm new file mode 100644 index 0000000..311022c --- /dev/null +++ b/pixmaps/nld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *nld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".............. ....... ............................", +".............. ..... ...........................", +".............. .... ..........................", +".............. X .. X ..........................", +".............. X XX . ........................", +"............... XX XX .....................", +"............... X XX XX ..................", +".............. XXXXXX XXXXX ................", +"............. X XXXXXXXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XX XXXXXXXXXXXXXXXXXX ............", +"........... XX XXXXXXXXXXXXXXXXXXX ...........", +"........... XX XXXXXXXXXXXXXXXXXXXX ...........", +"........... XX XXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XX XXXXXXXXXXXX XXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXX XXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXX XXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXX XXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ... XXXXXXXXXXXXXX ......", +"..... X XXXXXXXX ..... XXXXXXXXXXXXXX ......", +"..... X XXXXXXX ...... XXXXXXXXXXXXXX ......", +"..... X XXXXXX ....... XXXXXXXXXXXXXXX .....", +"..... X XX XX ....... XXXXXXXXXXXXXXXX .....", +"..... XXXXX X ....... XXXXXXXXXXXXXXXXX .....", +"..... XXX ........ XXXXXXXXXXXXXXXXXX .....", +"...... X ........ XXXXXXXXXXXXXXXXXX .....", +"........ ....... XXXXXXXXXXXXXXXXXXX .....", +"............ ....... XXXXXXXXXXXXXXXXXXXX ....", +"..................... XXXXXXXXXXXXXXXXXXXXXX ....", +".................... XXXXXXXXXXXXXXXXXXXXXXX ....", +"................... XXXXXXXXXXXXXXXXXXXXXXXX ....", +"................... XXXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. ....", +"................. .....", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/nld58.xpm b/pixmaps/nld58.xpm new file mode 100644 index 0000000..15c8e32 --- /dev/null +++ b/pixmaps/nld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *nld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............... ......... ...............................", +".............. ....... ..............................", +".............. ..... ..............................", +"............... ... .............................", +"............... X . XX .............................", +"............... XX XXX .........................", +"............... XXX XXX ......................", +"............... XX XXX XXX ....................", +".............. X XXXXXXX XXXXX ..................", +"............. XX XXXXXXXXXXXXXXXXX .................", +"............ XXXXXXXXXXXXXXXXXXXXXXX ................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XX XXXXXXXXXXXXXXXXXXXX ..............", +"........... XX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XX XXXXXXXXXXXXXXXXXXXXXX ............", +"........... XX XXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XX XXXXXXXXXXXXXX XXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXXXX .... XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXX ..... XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXX ....... XXXXXXXXXXXXXXXXX .......", +".... X XXXXXXXX ....... XXXXXXXXXXXXXXXXX ......", +".... XXXXXX XX ........ XXXXXXXXXXXXXXXXXXX ......", +".... XXXXX X ........ XXXXXXXXXXXXXXXXXXX ......", +".... XXX ........ XXXXXXXXXXXXXXXXXXXX ......", +"..... X ........ XXXXXXXXXXXXXXXXXXXXX ......", +"....... ....... XXXXXXXXXXXXXXXXXXXXXX ......", +"............ ....... XXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. .....", +"................. .....", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/nld64.xpm b/pixmaps/nld64.xpm new file mode 100644 index 0000000..1867385 --- /dev/null +++ b/pixmaps/nld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *nld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................. ........ .................................", +"................. ....... ................................", +"................. .... ................................", +"................. XX .. X ...............................", +"................. XXX . XXX ...............................", +"................. XXX XXX ...........................", +".................. XXX XXX ........................", +".................. XX X XXX XXXX ......................", +"................. X XXXXXXX XXXXXXX ....................", +"................ XX XXXXXXXXXXXXXXXXXX ..................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXX XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XX XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. X XXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XX XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XX XXXXXXXXXXXXXXXX XXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXX .......", +"....... X XXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXX ...... XXXXXXXXXXXXXXXXXX .......", +"...... X XXXXXXXX ........ XXXXXXXXXXXXXXXXXXX .......", +"...... X XXXXXXXX ........ XXXXXXXXXXXXXXXXXXX .......", +"...... X XXX XXX ......... XXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXX XX ......... XXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXX X ......... XXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXX X .......... XXXXXXXXXXXXXXXXXXXXXXX ......", +"........ X ......... XXXXXXXXXXXXXXXXXXXXXXX ......", +".......... ......... XXXXXXXXXXXXXXXXXXXXXXXX ......", +".............. ......... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... .....", +".................... .....", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/nld72.xpm b/pixmaps/nld72.xpm new file mode 100644 index 0000000..aefbe5e --- /dev/null +++ b/pixmaps/nld72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *nld72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................ .......................................", +"................. ........... ......................................", +".................. ......... ......................................", +".................. ...... .....................................", +".................. X ..... XX .....................................", +".................. XX ... XX ....................................", +".................. XXX .. XXXX ....................................", +".................. XXXX XXXX ...............................", +".................. XXXXX XXXX ............................", +".................. XXX X XXXXX XXXX .........................", +".................. XX XXXXXXXXX XXXXXXX .......................", +"................. XX XXXXXXXXXXXXXXXXXXXXX .....................", +"................ XXX XXXXXXXXXXXXXXXXXXXXXXXX ....................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XX XXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XXXXXXXX XXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +".... XXXXXXXX XX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +".... XXXXXX XX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"..... XXXX XX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... X ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ . ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +".............. ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... .....", +"..................... .....", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/nld80.xpm b/pixmaps/nld80.xpm new file mode 100644 index 0000000..4beb19c --- /dev/null +++ b/pixmaps/nld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *nld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................... ............ ..........................................", +"...................... .......... .........................................", +"...................... ......... ........................................", +"...................... ...... X ........................................", +"...................... XX ..... XX .......................................", +"...................... XXX ... XXX .......................................", +"...................... XXXX .. XXXX .......................................", +"...................... XXXXX XXXX .................................", +"...................... XXXX XXXXX ..............................", +"....................... XXX X XXXXXX XXXX ............................", +"...................... XX XXXXXXXXXX XXXXXXX ..........................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XX XXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXX ..........", +"........ X XXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXX XXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXX XXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXX XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXX XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXX X ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......... XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............ ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"................. ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... .......", +"......................... .......", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/nld87.xpm b/pixmaps/nld87.xpm new file mode 100644 index 0000000..32e0e62 --- /dev/null +++ b/pixmaps/nld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *nld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"....................... .............. ..............................................", +"...................... ............ ..............................................", +"...................... .......... .............................................", +"...................... ........ .............................................", +"...................... ...... X ............................................", +"...................... X .... XX ............................................", +"...................... XXX ... XXX ...........................................", +"...................... XXXX . XXXX ...........................................", +"....................... XXXX XXXX .....................................", +"....................... XXXXX XXXXX ..................................", +"....................... XXXX XXXXX ................................", +"....................... X X XXXXXX XXXXX ..............................", +"...................... X XXXXXXXXXX XXXXXXXXX ............................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XX XXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ X XXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....... X XXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....... X XXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... X XXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XX XXXXX XXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XXXXXXXX XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XXXXXXXX X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXX XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXX X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... X ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............ . ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................. ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... ........", +".......................... ........", +".......................... .........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/nld95.xpm b/pixmaps/nld95.xpm new file mode 100644 index 0000000..e6debae --- /dev/null +++ b/pixmaps/nld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *nld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"......................... ............... ...................................................", +"........................ ............. ..................................................", +"......................... ........... .................................................", +"......................... ......... .................................................", +"......................... ....... XX ................................................", +"......................... X ...... XX ................................................", +"......................... XX .... XXXX ...............................................", +"......................... XXX ... XXXX ...............................................", +"......................... XXXX XXXXX ..........................................", +"......................... XXXXX XXXXXX .......................................", +"......................... XXXXX XXXXXX ....................................", +".......................... XXX X XXXXXX XXXX .................................", +"......................... XX XXX XXXXXXX XXXXXXXX ...............................", +"........................ XX XXXXXXXXXXXX XXXXXXXXXXX ..............................", +"....................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXXXXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXX XXXXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XX XXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXX XXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXXX XXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXX XXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXX XX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXX XXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXX XX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"............ X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".............. .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................... .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................... ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. .........", +"............................. .........", +"............................. ..........", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/nll108.xpm b/pixmaps/nll108.xpm new file mode 100644 index 0000000..02c3f88 --- /dev/null +++ b/pixmaps/nll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *nll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................. ................. .........................................................", +"............................ ................ ........................................................", +"............................ .............. ........................................................", +"............................ ........... .......................................................", +"............................ .......... X .......................................................", +"............................. X ....... XXX ......................................................", +"............................. XX ...... XXX ......................................................", +"............................. XXXX .... XXXXX .....................................................", +"............................. XXXXX ... XXXXX .....................................................", +"............................. XXXXXX . XXXXXX .................................................", +"............................. XXXXXXX XXXXXXX ............................................", +"............................. XXXXXXX XXXXXXX .........................................", +".............................. XXXXX X XXXXXXX XXX .......................................", +"............................. XXXX XX XXXXXXXX XXXXXXXX .....................................", +"............................ XX XXXXXXXXXXXXX XXXXXXXXXXX ...................................", +"........................... XXXX XXXXXXXXXXXXXXX XXXXXXXXXXXXXX .................................", +".......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"....................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"....................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"....................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"...................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXX XXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXX XXXXXXXXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXX XXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXX XXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXX XXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXXXXXX XXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXX XXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXX XXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXX XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".............. XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................ XX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....................... ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. .........", +"................................. .........", +".................................. ...........", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/nll116.xpm b/pixmaps/nll116.xpm new file mode 100644 index 0000000..0ba7d85 --- /dev/null +++ b/pixmaps/nll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *nll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ..............................................................", +"................................ .................. .............................................................", +"............................... ................ ............................................................", +"............................... ............... ............................................................", +"............................... ............ X ...........................................................", +"............................... .......... X ...........................................................", +"............................... XX ........ XXX ..........................................................", +"............................... XXX ...... XXXX ..........................................................", +"............................... XXXXX ..... XXXXX .........................................................", +"............................... XXXXXX ... XXXXXX .........................................................", +"................................ XXXXXX .. XXXXXX .........................................................", +"................................ XXXXXXX XXXXXXX .................................................", +"................................ XXXXXXX XXXXXXXX ..............................................", +"................................ XXXXXX XXXXXXXX X ...........................................", +"................................. XXXX XX XXXXXXXX XXXXXXX .........................................", +"................................ XXX XXXXXXXXXXXXXX XXXXXXXXXX .......................................", +"............................... XXX XXXXXXXXXXXXXXX XXXXXXXXXXXXX .....................................", +".............................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"............................. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".......................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".......................... XXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XXXX XXXXXXXXXXXXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XXX XXXXXXXXXXXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............ XX XXXXXXXXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XXX XXXXXXXXXXXXXXXXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXX XXXXXXXXXXXXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXX XXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXX XXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXX XXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXX XXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXX XXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXX XXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXX XXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXX XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"................ XXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".................. . XX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................... ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".................................... ...........", +".................................... ...........", +"..................................... .............", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/nll129.xpm b/pixmaps/nll129.xpm new file mode 100644 index 0000000..219458a --- /dev/null +++ b/pixmaps/nll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *nll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................. ...................... .....................................................................", +"................................. ................... ....................................................................", +"................................. .................. ....................................................................", +"................................. ................ ...................................................................", +"................................. ............. ...................................................................", +"................................. ............ ..................................................................", +"................................. ......... X .................................................................", +"................................. X ....... XXX .................................................................", +"................................. XXX ...... XXXX ................................................................", +"................................. XXXX .... XXXXX ................................................................", +"................................. XXXXXX ... XXXXXX ................................................................", +"................................. XXXXXXX . XXXXXX .. .............................................................", +"................................. XXXXXX XXXXXX .......................................................", +".................................. XXXXXXX XXXXXXXX ...................................................", +".................................. XXXXXXX XXXXXXXX .................................................", +".................................. XXXXX XXXXXXXX XX ...............................................", +".................................. XXXX XXX XXXXXXXX XXXXXXX .............................................", +"................................. XXX XXXXX XXXXXXXXX XXXXXXXXXX ...........................................", +"................................ XXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........................................", +"............................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"............................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +".............................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"........................... XXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".......................... XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXXX XXXXXXXXXXXXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"........... XXX XXXXXXXXXXXXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XX XXXXXXXXXXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XX XXXXXXXXXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXXX ................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXXX ................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".......... XXX XXXXXXXXXXXXXXXXX .................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXX XXXXXXXX XXXXXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXX XXXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXX XXXXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXX XXXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXX XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXX XXXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXX XXX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXX XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXX .................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"................ XX ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".................. ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".......................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........................... ................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".................................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"................................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"................................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....................................... ...........", +"....................................... ...........", +"....................................... ...........", +"........................................ ..............", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/nll21.xpm b/pixmaps/nll21.xpm new file mode 100644 index 0000000..b0d3b25 --- /dev/null +++ b/pixmaps/nll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *nll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"..... .. ...........", +"..... ..........", +"..... X X .......", +"..... X XX XX .....", +"..... XXXXXX ....", +".... X XXXXXXX ...", +".... XXXXX XXXX ...", +"... XXXXXX XXXXX ..", +"... XXXXXX XXXXX ..", +".. XXXXX X XXXXX ..", +".. XXXX . XXXXXX ..", +".. X .. XXXXXXX .", +".. X .. XXXXXXX .", +".. .. XXXXXXXX .", +"....... XXXXXXXXX .", +"...... XXXXXXXXXX .", +"...... XXXXXXXXXXX .", +"...... .", +".....................", +"....................." +}; diff --git a/pixmaps/nll25.xpm b/pixmaps/nll25.xpm new file mode 100644 index 0000000..ebae2a3 --- /dev/null +++ b/pixmaps/nll25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *nll25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +"....... ... .............", +"....... . X ............", +"....... X X .........", +"...... X XXX XXX .......", +"...... XXXXXXXX ......", +"..... X XXXXXXXXX .....", +"..... XXXXXXXXXXX .....", +".... XXXXXXXX XXXXX ....", +".... XXXXXXXX XXXXX ....", +"... XXXXXXXXX XXXXXX ...", +"... XXXXXXXX XXXXXX ...", +".. XXXX . XXXXXX ...", +".. XXXX .... XXXXXX ...", +".. XX X .... XXXXXXXX ..", +"... .... XXXXXXXXX ..", +"..... ... XXXXXXXXXX ..", +"......... XXXXXXXXXXX ..", +"......... XXXXXXXXXXX ..", +"........ XXXXXXXXXXXX ..", +"........ XXXXXXXXXXXX ..", +"........ ..", +".........................", +"........................." +}; diff --git a/pixmaps/nll29.xpm b/pixmaps/nll29.xpm new file mode 100644 index 0000000..0979be4 --- /dev/null +++ b/pixmaps/nll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *nll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +"....... .... ................", +"....... ... ...............", +"....... X . X ...............", +"....... XX X ...........", +"....... XXXXXXXX .........", +"...... XXXXXXXXXXXX ........", +"...... X XXXXXXXXXX .......", +"..... X XXXXXXXXXXXXX .......", +"..... X XXXXXX XXXXXX ......", +".... XXXXXXXXX XXXXXXX .....", +".... XXXXXXXXX XXXXXXX .....", +"... XXXXXXXXX XXXXXXX .....", +"... XXXXXXX . XXXXXXXX ....", +".. XXXXXXX ... XXXXXXXX ....", +".. XXXX .... XXXXXXXX ....", +".. XXXX .... XXXXXXXXX ....", +".. XX X .... XXXXXXXXXXX ....", +"... ..... XXXXXXXXXXX ...", +"........... XXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXX ...", +"......... XXXXXXXXXXXXXX ...", +"........ XXXXXXXXXXXXXXX ...", +"........ XXXXXXXXXXXXXXX ...", +"........ ...", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/nll33.xpm b/pixmaps/nll33.xpm new file mode 100644 index 0000000..5a246a7 --- /dev/null +++ b/pixmaps/nll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *nll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +"......... ... .................", +"......... X . XX ................", +"......... XX XX ..............", +"......... X XX XX ............", +"......... X XXXXXXXXX ..........", +"........ XXXXXXXXXXXXX .........", +"........ X XXXXXXXXXXX ........", +"....... X XXXXXXXXXXXXXX .......", +"....... X XXXXXXXX XXXXX .......", +"...... XXXXXXXXXXX XXXXXX ......", +"...... XXXXXXXXXXX XXXXXX ......", +"..... XXXXXXXXXXXX XXXXXXX .....", +"..... XXXXXXXXXXX XXXXXXXX .....", +".... XXXXXXXXXX XXXXXXXX .....", +".... XXXXXXXXX .. XXXXXXXXX ....", +"... X XXXXXX ... XXXXXXXXX ....", +"... X XXXXX .... XXXXXXXXXX ....", +"... XXX XX ..... XXXXXXXXXX ....", +"... XXX X ..... XXXXXXXXXXXX ....", +".... ..... XXXXXXXXXXXXX ...", +"............. XXXXXXXXXXXXXX ...", +"............ XXXXXXXXXXXXXXX ...", +"........... XXXXXXXXXXXXXXXX ...", +"........... XXXXXXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXXXXXX ...", +".......... XXXXXXXXXXXXXXXXX ...", +".......... ...", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/nll37.xpm b/pixmaps/nll37.xpm new file mode 100644 index 0000000..e850cb0 --- /dev/null +++ b/pixmaps/nll37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *nll37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"......... ...... ....................", +"......... ... X ...................", +"......... XX . XX ...................", +"......... XXX XX ................", +"......... XX X XX XXX ..............", +"........ XX XXXXXXXXXXX ............", +"........ XXXXXXXXXXXXXXX ...........", +"....... XXX XXXXXXXXXXXXX ..........", +"....... XX XXXXXXXXXXXXXX .........", +"....... X XXXXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXX XXXXXXX ........", +"...... XXXXXXXXXXXX XXXXXXXX ........", +"...... XXXXXXXXXXXX XXXXXXXX .......", +"..... XXXXXXXXXXXXX XXXXXXXXX .......", +"..... XXXXXXXXXXXX XXXXXXXXXX ......", +".... XXXXXXXXXXXX XXXXXXXXXX ......", +"... XXXXXXXXXXX . XXXXXXXXXXX ......", +"... XXXXXXX ... XXXXXXXXXXX .....", +"... XXXXXXX .... XXXXXXXXXXXX .....", +"... XXXXXXX ..... XXXXXXXXXXXX .....", +"... XXX XX ..... XXXXXXXXXXXXX .....", +".... X ..... XXXXXXXXXXXXXXX .....", +"........ ...... XXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXX ....", +"............. XXXXXXXXXXXXXXXXX ....", +"............ XXXXXXXXXXXXXXXXXX ....", +"............ XXXXXXXXXXXXXXXXXX ....", +"........... XXXXXXXXXXXXXXXXXXX ....", +"........... XXXXXXXXXXXXXXXXXXX ....", +"........... ....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/nll40.xpm b/pixmaps/nll40.xpm new file mode 100644 index 0000000..451e958 --- /dev/null +++ b/pixmaps/nll40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * nll40[] = { +"40 40 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . .. ", +" ... .. ", +" .XX. .XX. ", +" .XXX...XX. ", +" .XX.X.XX...... ", +" .XX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXX.. ", +" .XXX..XXXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXXXXXXXXXX.. ", +" .X..XXXXXXXXXXXXXXXXXX.. ", +" .X.XXXXXXXXXX.XXXXXXXXX.. ", +" .XXXXXXXXXXXXX.XXXXXXXXX.. ", +" .XXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX..XXXXXXXXXXXX.. ", +" .XXXXXXXXXXXX.. .XXXXXXXXXXXXX. ", +" .X..XXXXXXXX.. .XXXXXXXXXXXXX.. ", +" .X..XXXXXX.. .XXXXXXXXXXXXX.. ", +" .X.XXXXXX. .XXXXXXXXXXXXXX.. ", +" .XXXX.XX. .XXXXXXXXXXXXXX.. ", +" .XXX.X. .XXXXXXXXXXXXXXX.. ", +" ...X. .XXXXXXXXXXXXXXXXX. ", +" . .XXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" ......................... ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/nll45.xpm b/pixmaps/nll45.xpm new file mode 100644 index 0000000..0caedd4 --- /dev/null +++ b/pixmaps/nll45.xpm @@ -0,0 +1,51 @@ +/* XPM */ +static char * nll45[] = { +"45 45 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ", +" . .. ", +" ... .X. ", +" .XX. .XX. ", +" .XXX...XXX. ", +" .XXX.X.XXX...... ", +" .XX.XXXXXX.XXXXX.. ", +" .XXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXX.. ", +" .XXX..XXXXXXXXXXXXXXXX.. ", +" .XXX.XXXXXXXXXXXXXXXXXXX.. ", +" .XXXX.XXXXXXXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXXXXXXXXXXXXX.. ", +" .XX.XXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXX..XXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXX. .XXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXX.. .XXXXXXXXXXXXX.. ", +" .XX..XXXXXXXXX.. .XXXXXXXXXXXXXX.. ", +" .XX..XXXXXXXX. .XXXXXXXXXXXXXXX. ", +" .XX.XXXXXXXX. .XXXXXXXXXXXXXXXX.. ", +" .XXXXXX.XXX. .XXXXXXXXXXXXXXXX.. ", +" .XXXXX.XXX. .XXXXXXXXXXXXXXXXX.. ", +" .XXXX.XX. .XXXXXXXXXXXXXXXXX.. ", +" .....X. .XXXXXXXXXXXXXXXXXX.. ", +" .. .XXXXXXXXXXXXXXXXXXXX. ", +" .XXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .XXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ............................ ", +" ", +" ", +" "}; diff --git a/pixmaps/nll49.xpm b/pixmaps/nll49.xpm new file mode 100644 index 0000000..3b688ff --- /dev/null +++ b/pixmaps/nll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *nll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +"............ ........ ...........................", +"............ ..... X ..........................", +"............ XX .... XX .........................", +"............ XXX .. XXX .........................", +"............ XXXX XXX ......................", +"............. XX X XXX XXX ...................", +"............ XX XXXXXXXXXXXXXX .................", +"........... XXXXXXXXXXXXXXXXXXXX ................", +".......... XXXXXXXXXXXXXXXXXXXXXX ..............", +".......... XXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXXXX XXXXXXXXXXXXXXXXXXX ............", +"......... XXX XXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXX XXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XX XXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXX .......", +"..... XXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXX .......", +".... XXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXX ......", +".... XXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXX ......", +"... XX XXXXXXXXX ...... XXXXXXXXXXXXXXX ......", +"... XX XXXXXXXXX ....... XXXXXXXXXXXXXXXXX ......", +"... XXXXXXXXXXX ........ XXXXXXXXXXXXXXXXX .....", +"... XXXXXX XXX ........ XXXXXXXXXXXXXXXXXX .....", +"... XXXXX XXX ........ XXXXXXXXXXXXXXXXXXX .....", +".... XXXX XX ........ XXXXXXXXXXXXXXXXXXXX .....", +"..... X ........ XXXXXXXXXXXXXXXXXXXXX .....", +".......... ....... XXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +".............. .....", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/nll54.xpm b/pixmaps/nll54.xpm new file mode 100644 index 0000000..186c270 --- /dev/null +++ b/pixmaps/nll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *nll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".............. ....... ............................", +".............. ..... ...........................", +".............. .... ..........................", +".............. X .. X ..........................", +".............. X XX . ........................", +"............... XX XX .....................", +"............... X XX XX ..................", +".............. XXXXXX XXXXX ................", +"............. X XXXXXXXXXXXXXXXX ...............", +"............ XXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXX .............", +"........... XX XXXXXXXXXXXXXXXXXX ............", +"........... XX XXXXXXXXXXXXXXXXXXX ...........", +"........... XX XXXXXXXXXXXXXXXXXXXX ...........", +"........... XX XXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XX XXXXXXXXXXXX XXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXX XXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXX XXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXX XXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXX XXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXX XXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXX . XXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ... XXXXXXXXXXXXXX ......", +"..... X XXXXXXXX ..... XXXXXXXXXXXXXX ......", +"..... X XXXXXXX ...... XXXXXXXXXXXXXX ......", +"..... X XXXXXX ....... XXXXXXXXXXXXXXX .....", +"..... X XX XX ....... XXXXXXXXXXXXXXXX .....", +"..... XXXXX X ....... XXXXXXXXXXXXXXXXX .....", +"..... XXX ........ XXXXXXXXXXXXXXXXXX .....", +"...... X ........ XXXXXXXXXXXXXXXXXX .....", +"........ ....... XXXXXXXXXXXXXXXXXXX .....", +"............ ....... XXXXXXXXXXXXXXXXXXXX ....", +"..................... XXXXXXXXXXXXXXXXXXXXXX ....", +".................... XXXXXXXXXXXXXXXXXXXXXXX ....", +"................... XXXXXXXXXXXXXXXXXXXXXXXX ....", +"................... XXXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXX ....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXX ....", +"................. ....", +"................. .....", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/nll58.xpm b/pixmaps/nll58.xpm new file mode 100644 index 0000000..335faaa --- /dev/null +++ b/pixmaps/nll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *nll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............... ......... ...............................", +".............. ....... ..............................", +".............. ..... ..............................", +"............... ... .............................", +"............... X . XX .............................", +"............... XX XXX .........................", +"............... XXX XXX ......................", +"............... XX XXX XXX ....................", +".............. X XXXXXXX XXXXX ..................", +"............. XX XXXXXXXXXXXXXXXXX .................", +"............ XXXXXXXXXXXXXXXXXXXXXXX ................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"........... XX XXXXXXXXXXXXXXXXXXXX ..............", +"........... XX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XX XXXXXXXXXXXXXXXXXXXXXX ............", +"........... XX XXXXXXXXXXXXXXXXXXXXXXXX ............", +".......... XX XXXXXXXXXXXXXX XXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXXXX .... XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXX ..... XXXXXXXXXXXXXXXX .......", +".... X XXXXXXXX ....... XXXXXXXXXXXXXXXXX .......", +".... X XXXXXXXX ....... XXXXXXXXXXXXXXXXX ......", +".... XXXXXX XX ........ XXXXXXXXXXXXXXXXXXX ......", +".... XXXXX X ........ XXXXXXXXXXXXXXXXXXX ......", +".... XXX ........ XXXXXXXXXXXXXXXXXXXX ......", +"..... X ........ XXXXXXXXXXXXXXXXXXXXX ......", +"....... ....... XXXXXXXXXXXXXXXXXXXXXX ......", +"............ ....... XXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"................. .....", +"................. .....", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/nll64.xpm b/pixmaps/nll64.xpm new file mode 100644 index 0000000..1bfba28 --- /dev/null +++ b/pixmaps/nll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *nll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................. ........ .................................", +"................. ....... ................................", +"................. .... ................................", +"................. XX .. X ...............................", +"................. XXX . XXX ...............................", +"................. XXX XXX ...........................", +".................. XXX XXX ........................", +".................. XX X XXX XXXX ......................", +"................. X XXXXXXX XXXXXXX ....................", +"................ XX XXXXXXXXXXXXXXXXXX ..................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +".............. XXXX XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XX XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. X XXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XX XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XX XXXXXXXXXXXXXXXX XXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXX .......", +"....... X XXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXX .......", +"...... XXXXXXXXX ...... XXXXXXXXXXXXXXXXXX .......", +"...... X XXXXXXXX ........ XXXXXXXXXXXXXXXXXXX .......", +"...... X XXXXXXXX ........ XXXXXXXXXXXXXXXXXXX .......", +"...... X XXX XXX ......... XXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXX XX ......... XXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXX X ......... XXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXX X .......... XXXXXXXXXXXXXXXXXXXXXXX ......", +"........ X ......... XXXXXXXXXXXXXXXXXXXXXXX ......", +".......... ......... XXXXXXXXXXXXXXXXXXXXXXXX ......", +".............. ......... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".................... .....", +".................... .....", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/nll72.xpm b/pixmaps/nll72.xpm new file mode 100644 index 0000000..8f885b1 --- /dev/null +++ b/pixmaps/nll72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *nll72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................ .......................................", +"................. ........... ......................................", +".................. ......... ......................................", +".................. ...... .....................................", +".................. X ..... XX .....................................", +".................. XX ... XX ....................................", +".................. XXX .. XXXX ....................................", +".................. XXXX XXXX ...............................", +".................. XXXXX XXXX ............................", +".................. XXX X XXXXX XXXX .........................", +".................. XX XXXXXXXXX XXXXXXX .......................", +"................. XX XXXXXXXXXXXXXXXXXXXXX .....................", +"................ XXX XXXXXXXXXXXXXXXXXXXXXXXX ....................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"............. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............. XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .........", +"....... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .........", +"...... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ........", +"...... XXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXX ........", +"..... XX XXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXX .......", +".... X XXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XX XXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX .......", +".... XXXXXXXX XXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +".... XXXXXXXX XX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +".... XXXXXX XX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"..... XXXX XX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... X ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ . ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +".............. ........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..................... .....", +"..................... .....", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/nll80.xpm b/pixmaps/nll80.xpm new file mode 100644 index 0000000..88b6c9b --- /dev/null +++ b/pixmaps/nll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *nll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................... ............ ..........................................", +"...................... .......... .........................................", +"...................... ......... ........................................", +"...................... ...... X ........................................", +"...................... XX ..... XX .......................................", +"...................... XXX ... XXX .......................................", +"...................... XXXX .. XXXX .......................................", +"...................... XXXXX XXXX .................................", +"...................... XXXX XXXXX ..............................", +"....................... XXX X XXXXXX XXXX ............................", +"...................... XX XXXXXXXXXX XXXXXXX ..........................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXX XXXXXXXXXXXXXXXXXXXXXXXX .......................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXX XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XX XXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXX ..........", +"........ X XXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XX XXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXX XXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXX XXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXX XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXX XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXX X ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......... XX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............ ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"................. ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"......................... .......", +"......................... .......", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/nll87.xpm b/pixmaps/nll87.xpm new file mode 100644 index 0000000..e9cdc3a --- /dev/null +++ b/pixmaps/nll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *nll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"....................... .............. ..............................................", +"...................... ............ ..............................................", +"...................... .......... .............................................", +"...................... ........ .............................................", +"...................... ...... X ............................................", +"...................... X .... XX ............................................", +"...................... XXX ... XXX ...........................................", +"...................... XXXX . XXXX ...........................................", +"....................... XXXX XXXX .....................................", +"....................... XXXXX XXXXX ..................................", +"....................... XXXX XXXXX ................................", +"....................... X X XXXXXX XXXXX ..............................", +"...................... X XXXXXXXXXX XXXXXXXXX ............................", +"..................... XX XXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +".................. XXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................. XX X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XX XXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ............", +".......... XXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXXXX ... XXXXXXXXXXXXXXXXXXXXXX ............", +"......... XXXXXXXXXXXXXXXXXXXXX ..... XXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XXXXXXXXXXXXXXXXXXXX ....... XXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XX XXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ X XXXXXXXXXXXX .......... XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....... X XXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"....... X XXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... X XXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XX XXXXX XXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XXXXXXXX XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... XXXXXXXX X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXXXX XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........ XXXX X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... X ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............ . ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".................. ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......................... ........", +".......................... ........", +".......................... .........", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/nll95.xpm b/pixmaps/nll95.xpm new file mode 100644 index 0000000..e665800 --- /dev/null +++ b/pixmaps/nll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *nll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"......................... ............... ...................................................", +"........................ ............. ..................................................", +"......................... ........... .................................................", +"......................... ......... .................................................", +"......................... ....... XX ................................................", +"......................... X ...... XX ................................................", +"......................... XX .... XXXX ...............................................", +"......................... XXX ... XXXX ...............................................", +"......................... XXXX XXXXX ..........................................", +"......................... XXXXX XXXXXX .......................................", +"......................... XXXXX XXXXXX ....................................", +".......................... XXX X XXXXXX XXXX .................................", +"......................... XX XXX XXXXXXX XXXXXXXX ...............................", +"........................ XX XXXXXXXXXXXX XXXXXXXXXXX ..............................", +"....................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +".................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"................... XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXX XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX . XXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .. XXXXXXXXXXXXXXXXXXXXXXXXX .............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX .... XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXXXXXXXXXXXXXXXXXXXXXXX ...... XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"......... XXX XXXXXXXXXXXXXXXXX ........ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"......... XX XXXXXXXXXXXXXXX ......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXXX ........... XXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXX ............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ XX XXXXXXXXXXXX ............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXX XXXXXXXXXXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXXX XXXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXX XXX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ XXXXXXXXX XX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXXXXX XXX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"......... XXXX XX ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XX .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"............ X .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".............. .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................... .............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................... ............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"............................. .........", +"............................. .........", +"............................. ..........", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/pdd108.xpm b/pixmaps/pdd108.xpm new file mode 100644 index 0000000..5b50e27 --- /dev/null +++ b/pixmaps/pdd108.xpm @@ -0,0 +1,116 @@ +/* XPM */ +static char *pdd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................. ...................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"............................................ .............................................", +"........................................... ............................................", +"........................................... ............................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"........................................... ............................................", +"........................................... ............................................", +"............................................ .............................................", +"............................................ .............................................", +"............................................. ..............................................", +"........................................... ............................................", +"......................................... ..........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +".................................... .....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................... .....................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"....................................... ........................................", +"........................................ .........................................", +"...................................... .......................................", +".................................... .....................................", +"................................... ....................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"...................... ......................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/pdd116.xpm b/pixmaps/pdd116.xpm new file mode 100644 index 0000000..37084af --- /dev/null +++ b/pixmaps/pdd116.xpm @@ -0,0 +1,124 @@ +/* XPM */ +static char *pdd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................... ................................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................... ................................................", +"............................................... ................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................. ..............................................", +"........................................... ............................................", +".......................................... ...........................................", +"......................................... ..........................................", +"........................................ .........................................", +"........................................ .........................................", +"....................................... ........................................", +"....................................... ........................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"....................................... ........................................", +"....................................... ........................................", +"........................................ .........................................", +"........................................ .........................................", +"......................................... ..........................................", +".......................................... ...........................................", +"........................................... ............................................", +"............................................ .............................................", +".......................................... ...........................................", +"........................................ .........................................", +"....................................... ........................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +"............................... ................................", +".............................. ...............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ ........................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/pdd129.xpm b/pixmaps/pdd129.xpm new file mode 100644 index 0000000..1f8962d --- /dev/null +++ b/pixmaps/pdd129.xpm @@ -0,0 +1,137 @@ +/* XPM */ +static char *pdd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"........................................................... ............................................................", +"......................................................... ..........................................................", +"....................................................... ........................................................", +"...................................................... .......................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................... ....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................ .................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"............................................ .............................................", +"........................................... ............................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"........................................... ...........................................", +"........................................... ............................................", +"............................................ .............................................", +"............................................ .............................................", +"............................................. ..............................................", +".............................................. ...............................................", +"............................................... ................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................ .............................................", +"........................................... ............................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +".............................. ...............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/pdd21.xpm b/pixmaps/pdd21.xpm new file mode 100644 index 0000000..909a287 --- /dev/null +++ b/pixmaps/pdd21.xpm @@ -0,0 +1,29 @@ +/* XPM */ +static char *pdd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".....................", +".....................", +".....................", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"....... .......", +"...... ......", +"..... .....", +"..... .....", +".... ....", +".... ....", +".... ....", +".....................", +"....................." +}; diff --git a/pixmaps/pdd25.xpm b/pixmaps/pdd25.xpm new file mode 100644 index 0000000..e7cd6cf --- /dev/null +++ b/pixmaps/pdd25.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char *pdd25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".........................", +".........................", +".........................", +".........................", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +"........ ........", +"....... .......", +"...... ......", +"...... ......", +"..... .....", +"..... .....", +"..... .....", +"..... .....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/pdd29.xpm b/pixmaps/pdd29.xpm new file mode 100644 index 0000000..14412d5 --- /dev/null +++ b/pixmaps/pdd29.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char *pdd29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".............................", +".............................", +".............................", +"............. .............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/pdd33.xpm b/pixmaps/pdd33.xpm new file mode 100644 index 0000000..ccbcb0c --- /dev/null +++ b/pixmaps/pdd33.xpm @@ -0,0 +1,41 @@ +/* XPM */ +static char *pdd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"............... ...............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +"............. ............", +"............ ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"........ ........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/pdd37.xpm b/pixmaps/pdd37.xpm new file mode 100644 index 0000000..63f331d --- /dev/null +++ b/pixmaps/pdd37.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char *pdd37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"................. .................", +"................ ................", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. ..............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +".............. ..............", +"............ ............", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"........ ........", +"........ ........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/pdd40.xpm b/pixmaps/pdd40.xpm new file mode 100644 index 0000000..266e18e --- /dev/null +++ b/pixmaps/pdd40.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char *pdd40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"........................................", +"........................................", +"........................................", +"........................................", +".................. .................", +"................. ................", +"................ ...............", +"................ ...............", +"................ ...............", +"................ ................", +"................. ................", +"............... ..............", +".............. .............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +".............. .............", +"............... ..............", +"................ ...............", +".............. .............", +"............. ............", +"............ ...........", +"........... ..........", +"........... ..........", +".......... .........", +".......... .........", +".......... .........", +"......... ........", +"......... ........", +"......... ........", +"......... ........", +"......... ........", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/pdd45.xpm b/pixmaps/pdd45.xpm new file mode 100644 index 0000000..f3bd40c --- /dev/null +++ b/pixmaps/pdd45.xpm @@ -0,0 +1,53 @@ +/* XPM */ +static char *pdd45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +".................... ....................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"................... ...................", +".................. ..................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... ...............", +"................ ................", +".................. ..................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/pdd49.xpm b/pixmaps/pdd49.xpm new file mode 100644 index 0000000..48f17e5 --- /dev/null +++ b/pixmaps/pdd49.xpm @@ -0,0 +1,57 @@ +/* XPM */ +static char *pdd49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................. .................", +"................. .................", +".................. ..................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/pdd54.xpm b/pixmaps/pdd54.xpm new file mode 100644 index 0000000..ccd0e47 --- /dev/null +++ b/pixmaps/pdd54.xpm @@ -0,0 +1,62 @@ +/* XPM */ +static char *pdd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +".................... ....................", +"................... ...................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. ..................", +".................. ..................", +"................... ...................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/pdd58.xpm b/pixmaps/pdd58.xpm new file mode 100644 index 0000000..67ad3b5 --- /dev/null +++ b/pixmaps/pdd58.xpm @@ -0,0 +1,66 @@ +/* XPM */ +static char *pdd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/pdd64.xpm b/pixmaps/pdd64.xpm new file mode 100644 index 0000000..2dbc9fe --- /dev/null +++ b/pixmaps/pdd64.xpm @@ -0,0 +1,72 @@ +/* XPM */ +static char *pdd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................. .............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................ ..........................", +"....................... ........................", +"...................... .......................", +"...................... ......................", +"..................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +"...................... ......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +".................... ....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/pdd72.xpm b/pixmaps/pdd72.xpm new file mode 100644 index 0000000..073d343 --- /dev/null +++ b/pixmaps/pdd72.xpm @@ -0,0 +1,80 @@ +/* XPM */ +static char *pdd72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. .................................", +"............................... ...............................", +".............................. ..............................", +"............................. .............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... .........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"......................... .........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +".................. ..................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/pdd80.xpm b/pixmaps/pdd80.xpm new file mode 100644 index 0000000..fd1f7ac --- /dev/null +++ b/pixmaps/pdd80.xpm @@ -0,0 +1,88 @@ +/* XPM */ +static char *pdd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................. .................................", +"................................. .................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................. .................................", +"................................. .................................", +".................................. ..................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +"........................... ...........................", +"........................... ...........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"........................... ...........................", +"............................ ............................", +"............................. .............................", +".............................. ..............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/pdd87.xpm b/pixmaps/pdd87.xpm new file mode 100644 index 0000000..903996c --- /dev/null +++ b/pixmaps/pdd87.xpm @@ -0,0 +1,95 @@ +/* XPM */ +static char *pdd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"...................................... ......................................", +"..................................... .....................................", +".................................... ....................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +"................................... ...................................", +"................................... ...................................", +".................................... ....................................", +"................................... ..................................", +"................................. ................................", +"................................ ...............................", +"............................... ..............................", +".............................. ..............................", +".............................. .............................", +"............................. .............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +"............................. .............................", +"............................. ..............................", +".............................. ..............................", +".............................. ...............................", +"............................... ................................", +"................................ ................................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. .................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/pdd95.xpm b/pixmaps/pdd95.xpm new file mode 100644 index 0000000..77aa297 --- /dev/null +++ b/pixmaps/pdd95.xpm @@ -0,0 +1,103 @@ +/* XPM */ +static char *pdd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 2 1", +" c black s dark_piece", +". c green s dark_square", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................ ............................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"...................................... ......................................", +"...................................... ......................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"...................................... ......................................", +"...................................... ......................................", +"....................................... .......................................", +"....................................... .......................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................. .................................", +"................................ ................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"................................ ................................", +"................................ ................................", +"................................. .................................", +".................................. ..................................", +"................................... ...................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ...................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/pdl108.xpm b/pixmaps/pdl108.xpm new file mode 100644 index 0000000..a81d7b4 --- /dev/null +++ b/pixmaps/pdl108.xpm @@ -0,0 +1,116 @@ +/* XPM */ +static char *pdl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................. ...................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"............................................ .............................................", +"........................................... ............................................", +"........................................... ............................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"........................................... ............................................", +"........................................... ............................................", +"............................................ .............................................", +"............................................ .............................................", +"............................................. ..............................................", +"........................................... ............................................", +"......................................... ..........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +".................................... .....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +".................................. ...................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................... .....................................", +".................................... .....................................", +"..................................... ......................................", +"...................................... .......................................", +"....................................... ........................................", +"........................................ .........................................", +"...................................... .......................................", +".................................... .....................................", +"................................... ....................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"..................... ......................", +"...................... ......................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/pdl116.xpm b/pixmaps/pdl116.xpm new file mode 100644 index 0000000..6e75a7b --- /dev/null +++ b/pixmaps/pdl116.xpm @@ -0,0 +1,124 @@ +/* XPM */ +static char *pdl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................... ................................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +"............................................. ..............................................", +".............................................. ...............................................", +".............................................. ...............................................", +"............................................... ................................................", +"............................................... ................................................", +"................................................ .................................................", +"............................................... ................................................", +"............................................. ..............................................", +"........................................... ............................................", +".......................................... ...........................................", +"......................................... ..........................................", +"........................................ .........................................", +"........................................ .........................................", +"....................................... ........................................", +"....................................... ........................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"..................................... ......................................", +"...................................... .......................................", +"...................................... .......................................", +"...................................... .......................................", +"....................................... ........................................", +"....................................... ........................................", +"........................................ .........................................", +"........................................ .........................................", +"......................................... ..........................................", +".......................................... ...........................................", +"........................................... ............................................", +"............................................ .............................................", +".......................................... ...........................................", +"........................................ .........................................", +"....................................... ........................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +"............................... ................................", +".............................. ...............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ ........................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/pdl129.xpm b/pixmaps/pdl129.xpm new file mode 100644 index 0000000..d75a9b2 --- /dev/null +++ b/pixmaps/pdl129.xpm @@ -0,0 +1,137 @@ +/* XPM */ +static char *pdl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"........................................................... ............................................................", +"......................................................... ..........................................................", +"....................................................... ........................................................", +"...................................................... .......................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +".................................................. ...................................................", +"................................................... ....................................................", +"................................................... ....................................................", +"................................................... ....................................................", +".................................................... .....................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +".................................................. ...................................................", +"................................................ .................................................", +"............................................... ................................................", +".............................................. ...............................................", +"............................................. ..............................................", +"............................................ .............................................", +"............................................ .............................................", +"........................................... ............................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +"......................................... ..........................................", +".......................................... ...........................................", +".......................................... ...........................................", +".......................................... ...........................................", +"........................................... ...........................................", +"........................................... ............................................", +"............................................ .............................................", +"............................................ .............................................", +"............................................. ..............................................", +".............................................. ...............................................", +"............................................... ................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................ .............................................", +"........................................... ............................................", +"......................................... ..........................................", +"........................................ .........................................", +"....................................... ........................................", +"...................................... .......................................", +"..................................... ......................................", +".................................... .....................................", +"................................... ....................................", +".................................. ...................................", +".................................. ...................................", +"................................. ..................................", +"................................ .................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +".............................. ...............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"............................ .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/pdl21.xpm b/pixmaps/pdl21.xpm new file mode 100644 index 0000000..f31fea5 --- /dev/null +++ b/pixmaps/pdl21.xpm @@ -0,0 +1,29 @@ +/* XPM */ +static char *pdl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".....................", +".....................", +".....................", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"....... .......", +"...... ......", +"..... .....", +"..... .....", +".... ....", +".... ....", +".... ....", +".....................", +"....................." +}; diff --git a/pixmaps/pdl25.xpm b/pixmaps/pdl25.xpm new file mode 100644 index 0000000..8f5319a --- /dev/null +++ b/pixmaps/pdl25.xpm @@ -0,0 +1,33 @@ +/* XPM */ +static char *pdl25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".........................", +".........................", +".........................", +".........................", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +"........ ........", +"....... .......", +"...... ......", +"...... ......", +"..... .....", +"..... .....", +"..... .....", +"..... .....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/pdl29.xpm b/pixmaps/pdl29.xpm new file mode 100644 index 0000000..0b70ec2 --- /dev/null +++ b/pixmaps/pdl29.xpm @@ -0,0 +1,37 @@ +/* XPM */ +static char *pdl29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".............................", +".............................", +".............................", +"............. .............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/pdl33.xpm b/pixmaps/pdl33.xpm new file mode 100644 index 0000000..6088827 --- /dev/null +++ b/pixmaps/pdl33.xpm @@ -0,0 +1,41 @@ +/* XPM */ +static char *pdl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"............... ...............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +"............. ............", +"............ ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............ ............", +"............ ............", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"........ ........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/pdl37.xpm b/pixmaps/pdl37.xpm new file mode 100644 index 0000000..bb2daf5 --- /dev/null +++ b/pixmaps/pdl37.xpm @@ -0,0 +1,45 @@ +/* XPM */ +static char *pdl37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"................. .................", +"................ ................", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. ..............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +".............. ..............", +"............ ............", +"........... ...........", +".......... ..........", +"......... .........", +"......... .........", +"........ ........", +"........ ........", +"........ ........", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/pdl40.xpm b/pixmaps/pdl40.xpm new file mode 100644 index 0000000..7e06d47 --- /dev/null +++ b/pixmaps/pdl40.xpm @@ -0,0 +1,48 @@ +/* XPM */ +static char *pdl40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"........................................", +"........................................", +"........................................", +"........................................", +".................. .................", +"................. ................", +"................ ...............", +"................ ...............", +"................ ...............", +"................ ................", +"................. ................", +"............... ..............", +".............. .............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +"............. ............", +".............. .............", +"............... ..............", +"................ ...............", +".............. .............", +"............. ............", +"............ ...........", +"........... ..........", +"........... ..........", +".......... .........", +".......... .........", +".......... .........", +"......... ........", +"......... ........", +"......... ........", +"......... ........", +"......... ........", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/pdl45.xpm b/pixmaps/pdl45.xpm new file mode 100644 index 0000000..eef55fb --- /dev/null +++ b/pixmaps/pdl45.xpm @@ -0,0 +1,53 @@ +/* XPM */ +static char *pdl45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +".................... ....................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"................... ...................", +".................. ..................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... ...............", +"................ ................", +".................. ..................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/pdl49.xpm b/pixmaps/pdl49.xpm new file mode 100644 index 0000000..d53c0b2 --- /dev/null +++ b/pixmaps/pdl49.xpm @@ -0,0 +1,57 @@ +/* XPM */ +static char *pdl49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................. .................", +"................. .................", +".................. ..................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/pdl54.xpm b/pixmaps/pdl54.xpm new file mode 100644 index 0000000..8d2dd4e --- /dev/null +++ b/pixmaps/pdl54.xpm @@ -0,0 +1,62 @@ +/* XPM */ +static char *pdl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +".................... ....................", +"................... ...................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. ..................", +".................. ..................", +"................... ...................", +"................... ...................", +"................. .................", +"................ ................", +"............... ...............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/pdl58.xpm b/pixmaps/pdl58.xpm new file mode 100644 index 0000000..4765652 --- /dev/null +++ b/pixmaps/pdl58.xpm @@ -0,0 +1,66 @@ +/* XPM */ +static char *pdl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"...................... ......................", +"..................... .....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/pdl64.xpm b/pixmaps/pdl64.xpm new file mode 100644 index 0000000..4509abb --- /dev/null +++ b/pixmaps/pdl64.xpm @@ -0,0 +1,72 @@ +/* XPM */ +static char *pdl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................. .............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +"......................... .........................", +".......................... ..........................", +"........................ ..........................", +"....................... ........................", +"...................... .......................", +"...................... ......................", +"..................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +"...................... ......................", +"...................... ......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"...................... ......................", +".................... ....................", +"................... ...................", +".................. ..................", +"................. .................", +"................ ................", +"................ ................", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/pdl72.xpm b/pixmaps/pdl72.xpm new file mode 100644 index 0000000..66b9542 --- /dev/null +++ b/pixmaps/pdl72.xpm @@ -0,0 +1,80 @@ +/* XPM */ +static char *pdl72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. .................................", +"............................... ...............................", +".............................. ..............................", +"............................. .............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +"............................. .............................", +".............................. ..............................", +"............................ ............................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"....................... .......................", +"........................ ........................", +"........................ ........................", +"......................... .........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"......................... .........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +".................. ..................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/pdl80.xpm b/pixmaps/pdl80.xpm new file mode 100644 index 0000000..119b400 --- /dev/null +++ b/pixmaps/pdl80.xpm @@ -0,0 +1,88 @@ +/* XPM */ +static char *pdl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................. .................................", +"................................. .................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................ ................................", +"................................. .................................", +"................................. .................................", +".................................. ..................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +"........................... ...........................", +"........................... ...........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +"........................... ...........................", +"........................... ...........................", +"........................... ...........................", +"............................ ............................", +"............................. .............................", +".............................. ..............................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/pdl87.xpm b/pixmaps/pdl87.xpm new file mode 100644 index 0000000..9bc4010 --- /dev/null +++ b/pixmaps/pdl87.xpm @@ -0,0 +1,95 @@ +/* XPM */ +static char *pdl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"...................................... ......................................", +"..................................... .....................................", +".................................... ....................................", +"................................... ...................................", +"................................... ...................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +".................................. ..................................", +"................................... ...................................", +"................................... ...................................", +".................................... ....................................", +"................................... ..................................", +"................................. ................................", +"................................ ...............................", +"............................... ..............................", +".............................. ..............................", +".............................. .............................", +"............................. .............................", +"............................. .............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................ ............................", +"............................. .............................", +"............................. .............................", +"............................. ..............................", +".............................. ..............................", +".............................. ...............................", +"............................... ................................", +"................................ ................................", +".............................. ..............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. .................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/pdl95.xpm b/pixmaps/pdl95.xpm new file mode 100644 index 0000000..618cb86 --- /dev/null +++ b/pixmaps/pdl95.xpm @@ -0,0 +1,103 @@ +/* XPM */ +static char *pdl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 2 1", +" c black s dark_piece", +". c gray s light_square", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................ ............................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"...................................... ......................................", +"...................................... ......................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"..................................... .....................................", +"...................................... ......................................", +"...................................... ......................................", +"....................................... .......................................", +"....................................... .......................................", +"..................................... .....................................", +"................................... ...................................", +".................................. ..................................", +"................................. .................................", +"................................ ................................", +"................................ ................................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +".............................. ..............................", +"............................... ...............................", +"............................... ...............................", +"............................... ...............................", +"................................ ................................", +"................................ ................................", +"................................. .................................", +".................................. ..................................", +"................................... ...................................", +"................................... ...................................", +"................................. .................................", +"................................ ................................", +".............................. ..............................", +"............................. .............................", +"............................ ............................", +"........................... ...........................", +".......................... ..........................", +"......................... .........................", +"......................... .........................", +"........................ ........................", +"........................ ........................", +"....................... .......................", +"....................... .......................", +"...................... ......................", +"...................... ......................", +"..................... .....................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +".................... ...................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/pixmaps.h b/pixmaps/pixmaps.h new file mode 100644 index 0000000..a7bd9aa --- /dev/null +++ b/pixmaps/pixmaps.h @@ -0,0 +1,659 @@ +/* + * pixmaps.h - Include xpm pixmap files for pieces + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-2000 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "pll129.xpm" +#include "pld129.xpm" +#include "pdl129.xpm" +#include "pdd129.xpm" +#include "nll129.xpm" +#include "nld129.xpm" +#include "ndl129.xpm" +#include "ndd129.xpm" +#include "bll129.xpm" +#include "bld129.xpm" +#include "bdl129.xpm" +#include "bdd129.xpm" +#include "rll129.xpm" +#include "rld129.xpm" +#include "rdl129.xpm" +#include "rdd129.xpm" +#include "qll129.xpm" +#include "qld129.xpm" +#include "qdl129.xpm" +#include "qdd129.xpm" +#include "kll129.xpm" +#include "kld129.xpm" +#include "kdl129.xpm" +#include "kdd129.xpm" + +#include "pll116.xpm" +#include "pld116.xpm" +#include "pdl116.xpm" +#include "pdd116.xpm" +#include "nll116.xpm" +#include "nld116.xpm" +#include "ndl116.xpm" +#include "ndd116.xpm" +#include "bll116.xpm" +#include "bld116.xpm" +#include "bdl116.xpm" +#include "bdd116.xpm" +#include "rll116.xpm" +#include "rld116.xpm" +#include "rdl116.xpm" +#include "rdd116.xpm" +#include "qll116.xpm" +#include "qld116.xpm" +#include "qdl116.xpm" +#include "qdd116.xpm" +#include "kll116.xpm" +#include "kld116.xpm" +#include "kdl116.xpm" +#include "kdd116.xpm" + +#include "pll108.xpm" +#include "pld108.xpm" +#include "pdl108.xpm" +#include "pdd108.xpm" +#include "nll108.xpm" +#include "nld108.xpm" +#include "ndl108.xpm" +#include "ndd108.xpm" +#include "bll108.xpm" +#include "bld108.xpm" +#include "bdl108.xpm" +#include "bdd108.xpm" +#include "rll108.xpm" +#include "rld108.xpm" +#include "rdl108.xpm" +#include "rdd108.xpm" +#include "qll108.xpm" +#include "qld108.xpm" +#include "qdl108.xpm" +#include "qdd108.xpm" +#include "kll108.xpm" +#include "kld108.xpm" +#include "kdl108.xpm" +#include "kdd108.xpm" + +#include "pll95.xpm" +#include "pld95.xpm" +#include "pdl95.xpm" +#include "pdd95.xpm" +#include "nll95.xpm" +#include "nld95.xpm" +#include "ndl95.xpm" +#include "ndd95.xpm" +#include "bll95.xpm" +#include "bld95.xpm" +#include "bdl95.xpm" +#include "bdd95.xpm" +#include "rll95.xpm" +#include "rld95.xpm" +#include "rdl95.xpm" +#include "rdd95.xpm" +#include "qll95.xpm" +#include "qld95.xpm" +#include "qdl95.xpm" +#include "qdd95.xpm" +#include "kll95.xpm" +#include "kld95.xpm" +#include "kdl95.xpm" +#include "kdd95.xpm" + +#include "pll87.xpm" +#include "pld87.xpm" +#include "pdl87.xpm" +#include "pdd87.xpm" +#include "nll87.xpm" +#include "nld87.xpm" +#include "ndl87.xpm" +#include "ndd87.xpm" +#include "bll87.xpm" +#include "bld87.xpm" +#include "bdl87.xpm" +#include "bdd87.xpm" +#include "rll87.xpm" +#include "rld87.xpm" +#include "rdl87.xpm" +#include "rdd87.xpm" +#include "qll87.xpm" +#include "qld87.xpm" +#include "qdl87.xpm" +#include "qdd87.xpm" +#include "kll87.xpm" +#include "kld87.xpm" +#include "kdl87.xpm" +#include "kdd87.xpm" + +#include "pll80.xpm" +#include "pld80.xpm" +#include "pdl80.xpm" +#include "pdd80.xpm" +#include "nll80.xpm" +#include "nld80.xpm" +#include "ndl80.xpm" +#include "ndd80.xpm" +#include "bll80.xpm" +#include "bld80.xpm" +#include "bdl80.xpm" +#include "bdd80.xpm" +#include "rll80.xpm" +#include "rld80.xpm" +#include "rdl80.xpm" +#include "rdd80.xpm" +#include "qll80.xpm" +#include "qld80.xpm" +#include "qdl80.xpm" +#include "qdd80.xpm" +#include "kll80.xpm" +#include "kld80.xpm" +#include "kdl80.xpm" +#include "kdd80.xpm" + +#include "pll72.xpm" +#include "pld72.xpm" +#include "pdl72.xpm" +#include "pdd72.xpm" +#include "nll72.xpm" +#include "nld72.xpm" +#include "ndl72.xpm" +#include "ndd72.xpm" +#include "bll72.xpm" +#include "bld72.xpm" +#include "bdl72.xpm" +#include "bdd72.xpm" +#include "rll72.xpm" +#include "rld72.xpm" +#include "rdl72.xpm" +#include "rdd72.xpm" +#include "qll72.xpm" +#include "qld72.xpm" +#include "qdl72.xpm" +#include "qdd72.xpm" +#include "kll72.xpm" +#include "kld72.xpm" +#include "kdl72.xpm" +#include "kdd72.xpm" + +#include "pll64.xpm" +#include "pld64.xpm" +#include "pdl64.xpm" +#include "pdd64.xpm" +#include "nll64.xpm" +#include "nld64.xpm" +#include "ndl64.xpm" +#include "ndd64.xpm" +#include "bll64.xpm" +#include "bld64.xpm" +#include "bdl64.xpm" +#include "bdd64.xpm" +#include "rll64.xpm" +#include "rld64.xpm" +#include "rdl64.xpm" +#include "rdd64.xpm" +#include "qll64.xpm" +#include "qld64.xpm" +#include "qdl64.xpm" +#include "qdd64.xpm" +#include "kll64.xpm" +#include "kld64.xpm" +#include "kdl64.xpm" +#include "kdd64.xpm" + +#include "pll58.xpm" +#include "pld58.xpm" +#include "pdl58.xpm" +#include "pdd58.xpm" +#include "nll58.xpm" +#include "nld58.xpm" +#include "ndl58.xpm" +#include "ndd58.xpm" +#include "bll58.xpm" +#include "bld58.xpm" +#include "bdl58.xpm" +#include "bdd58.xpm" +#include "rll58.xpm" +#include "rld58.xpm" +#include "rdl58.xpm" +#include "rdd58.xpm" +#include "qll58.xpm" +#include "qld58.xpm" +#include "qdl58.xpm" +#include "qdd58.xpm" +#include "kll58.xpm" +#include "kld58.xpm" +#include "kdl58.xpm" +#include "kdd58.xpm" + +#include "pll54.xpm" +#include "pld54.xpm" +#include "pdl54.xpm" +#include "pdd54.xpm" +#include "nll54.xpm" +#include "nld54.xpm" +#include "ndl54.xpm" +#include "ndd54.xpm" +#include "bll54.xpm" +#include "bld54.xpm" +#include "bdl54.xpm" +#include "bdd54.xpm" +#include "rll54.xpm" +#include "rld54.xpm" +#include "rdl54.xpm" +#include "rdd54.xpm" +#include "qll54.xpm" +#include "qld54.xpm" +#include "qdl54.xpm" +#include "qdd54.xpm" +#include "kll54.xpm" +#include "kld54.xpm" +#include "kdl54.xpm" +#include "kdd54.xpm" + +#include "pll49.xpm" +#include "pld49.xpm" +#include "pdl49.xpm" +#include "pdd49.xpm" +#include "nll49.xpm" +#include "nld49.xpm" +#include "ndl49.xpm" +#include "ndd49.xpm" +#include "bll49.xpm" +#include "bld49.xpm" +#include "bdl49.xpm" +#include "bdd49.xpm" +#include "rll49.xpm" +#include "rld49.xpm" +#include "rdl49.xpm" +#include "rdd49.xpm" +#include "qll49.xpm" +#include "qld49.xpm" +#include "qdl49.xpm" +#include "qdd49.xpm" +#include "kll49.xpm" +#include "kld49.xpm" +#include "kdl49.xpm" +#include "kdd49.xpm" + +#include "pll45.xpm" +#include "pld45.xpm" +#include "pdl45.xpm" +#include "pdd45.xpm" +#include "nll45.xpm" +#include "nld45.xpm" +#include "ndl45.xpm" +#include "ndd45.xpm" +#include "bll45.xpm" +#include "bld45.xpm" +#include "bdl45.xpm" +#include "bdd45.xpm" +#include "rll45.xpm" +#include "rld45.xpm" +#include "rdl45.xpm" +#include "rdd45.xpm" +#include "qll45.xpm" +#include "qld45.xpm" +#include "qdl45.xpm" +#include "qdd45.xpm" +#include "kll45.xpm" +#include "kld45.xpm" +#include "kdl45.xpm" +#include "kdd45.xpm" + +#include "pll40.xpm" +#include "pld40.xpm" +#include "pdl40.xpm" +#include "pdd40.xpm" +#include "nll40.xpm" +#include "nld40.xpm" +#include "ndl40.xpm" +#include "ndd40.xpm" +#include "bll40.xpm" +#include "bld40.xpm" +#include "bdl40.xpm" +#include "bdd40.xpm" +#include "rll40.xpm" +#include "rld40.xpm" +#include "rdl40.xpm" +#include "rdd40.xpm" +#include "qll40.xpm" +#include "qld40.xpm" +#include "qdl40.xpm" +#include "qdd40.xpm" +#include "kll40.xpm" +#include "kld40.xpm" +#include "kdl40.xpm" +#include "kdd40.xpm" + +#include "pll37.xpm" +#include "pld37.xpm" +#include "pdl37.xpm" +#include "pdd37.xpm" +#include "nll37.xpm" +#include "nld37.xpm" +#include "ndl37.xpm" +#include "ndd37.xpm" +#include "bll37.xpm" +#include "bld37.xpm" +#include "bdl37.xpm" +#include "bdd37.xpm" +#include "rll37.xpm" +#include "rld37.xpm" +#include "rdl37.xpm" +#include "rdd37.xpm" +#include "qll37.xpm" +#include "qld37.xpm" +#include "qdl37.xpm" +#include "qdd37.xpm" +#include "kll37.xpm" +#include "kld37.xpm" +#include "kdl37.xpm" +#include "kdd37.xpm" + +#include "pll33.xpm" +#include "pld33.xpm" +#include "pdl33.xpm" +#include "pdd33.xpm" +#include "nll33.xpm" +#include "nld33.xpm" +#include "ndl33.xpm" +#include "ndd33.xpm" +#include "bll33.xpm" +#include "bld33.xpm" +#include "bdl33.xpm" +#include "bdd33.xpm" +#include "rll33.xpm" +#include "rld33.xpm" +#include "rdl33.xpm" +#include "rdd33.xpm" +#include "qll33.xpm" +#include "qld33.xpm" +#include "qdl33.xpm" +#include "qdd33.xpm" +#include "kll33.xpm" +#include "kld33.xpm" +#include "kdl33.xpm" +#include "kdd33.xpm" + +#include "pll29.xpm" +#include "pld29.xpm" +#include "pdl29.xpm" +#include "pdd29.xpm" +#include "nll29.xpm" +#include "nld29.xpm" +#include "ndl29.xpm" +#include "ndd29.xpm" +#include "bll29.xpm" +#include "bld29.xpm" +#include "bdl29.xpm" +#include "bdd29.xpm" +#include "rll29.xpm" +#include "rld29.xpm" +#include "rdl29.xpm" +#include "rdd29.xpm" +#include "qll29.xpm" +#include "qld29.xpm" +#include "qdl29.xpm" +#include "qdd29.xpm" +#include "kll29.xpm" +#include "kld29.xpm" +#include "kdl29.xpm" +#include "kdd29.xpm" + +#include "pll25.xpm" +#include "pld25.xpm" +#include "pdl25.xpm" +#include "pdd25.xpm" +#include "nll25.xpm" +#include "nld25.xpm" +#include "ndl25.xpm" +#include "ndd25.xpm" +#include "bll25.xpm" +#include "bld25.xpm" +#include "bdl25.xpm" +#include "bdd25.xpm" +#include "rll25.xpm" +#include "rld25.xpm" +#include "rdl25.xpm" +#include "rdd25.xpm" +#include "qll25.xpm" +#include "qld25.xpm" +#include "qdl25.xpm" +#include "qdd25.xpm" +#include "kll25.xpm" +#include "kld25.xpm" +#include "kdl25.xpm" +#include "kdd25.xpm" + +#include "pll21.xpm" +#include "pld21.xpm" +#include "pdl21.xpm" +#include "pdd21.xpm" +#include "nll21.xpm" +#include "nld21.xpm" +#include "ndl21.xpm" +#include "ndd21.xpm" +#include "bll21.xpm" +#include "bld21.xpm" +#include "bdl21.xpm" +#include "bdd21.xpm" +#include "rll21.xpm" +#include "rld21.xpm" +#include "rdl21.xpm" +#include "rdd21.xpm" +#include "qll21.xpm" +#include "qld21.xpm" +#include "qdl21.xpm" +#include "qdd21.xpm" +#include "kll21.xpm" +#include "kld21.xpm" +#include "kdl21.xpm" +#include "kdd21.xpm" + +typedef struct { + int size; + char **xpm[6][4]; +} XpmPieces; + +XpmPieces builtInXpms[] = {\ + { 129, {\ + { pll129, pld129, pdl129, pdd129, },\ + { nll129, nld129, ndl129, ndd129, },\ + { bll129, bld129, bdl129, bdd129, },\ + { rll129, rld129, rdl129, rdd129, },\ + { qll129, qld129, qdl129, qdd129, },\ + { kll129, kld129, kdl129, kdd129, },\ + } },\ + { 116, {\ + { pll116, pld116, pdl116, pdd116, },\ + { nll116, nld116, ndl116, ndd116, },\ + { bll116, bld116, bdl116, bdd116, },\ + { rll116, rld116, rdl116, rdd116, },\ + { qll116, qld116, qdl116, qdd116, },\ + { kll116, kld116, kdl116, kdd116, },\ + } },\ + { 108, {\ + { pll108, pld108, pdl108, pdd108, },\ + { nll108, nld108, ndl108, ndd108, },\ + { bll108, bld108, bdl108, bdd108, },\ + { rll108, rld108, rdl108, rdd108, },\ + { qll108, qld108, qdl108, qdd108, },\ + { kll108, kld108, kdl108, kdd108, },\ + } },\ + { 95, {\ + { pll95, pld95, pdl95, pdd95, },\ + { nll95, nld95, ndl95, ndd95, },\ + { bll95, bld95, bdl95, bdd95, },\ + { rll95, rld95, rdl95, rdd95, },\ + { qll95, qld95, qdl95, qdd95, },\ + { kll95, kld95, kdl95, kdd95, },\ + } },\ + { 87, {\ + { pll87, pld87, pdl87, pdd87, },\ + { nll87, nld87, ndl87, ndd87, },\ + { bll87, bld87, bdl87, bdd87, },\ + { rll87, rld87, rdl87, rdd87, },\ + { qll87, qld87, qdl87, qdd87, },\ + { kll87, kld87, kdl87, kdd87, },\ + } },\ + { 80, {\ + { pll80, pld80, pdl80, pdd80, },\ + { nll80, nld80, ndl80, ndd80, },\ + { bll80, bld80, bdl80, bdd80, },\ + { rll80, rld80, rdl80, rdd80, },\ + { qll80, qld80, qdl80, qdd80, },\ + { kll80, kld80, kdl80, kdd80, },\ + } },\ + { 72, {\ + { pll72, pld72, pdl72, pdd72, },\ + { nll72, nld72, ndl72, ndd72, },\ + { bll72, bld72, bdl72, bdd72, },\ + { rll72, rld72, rdl72, rdd72, },\ + { qll72, qld72, qdl72, qdd72, },\ + { kll72, kld72, kdl72, kdd72, },\ + } },\ + { 64, {\ + { pll64, pld64, pdl64, pdd64, },\ + { nll64, nld64, ndl64, ndd64, },\ + { bll64, bld64, bdl64, bdd64, },\ + { rll64, rld64, rdl64, rdd64, },\ + { qll64, qld64, qdl64, qdd64, },\ + { kll64, kld64, kdl64, kdd64, },\ + } },\ + { 58, {\ + { pll58, pld58, pdl58, pdd58, },\ + { nll58, nld58, ndl58, ndd58, },\ + { bll58, bld58, bdl58, bdd58, },\ + { rll58, rld58, rdl58, rdd58, },\ + { qll58, qld58, qdl58, qdd58, },\ + { kll58, kld58, kdl58, kdd58, },\ + } },\ + { 54, {\ + { pll54, pld54, pdl54, pdd54, },\ + { nll54, nld54, ndl54, ndd54, },\ + { bll54, bld54, bdl54, bdd54, },\ + { rll54, rld54, rdl54, rdd54, },\ + { qll54, qld54, qdl54, qdd54, },\ + { kll54, kld54, kdl54, kdd54, },\ + } },\ + { 49, {\ + { pll49, pld49, pdl49, pdd49, },\ + { nll49, nld49, ndl49, ndd49, },\ + { bll49, bld49, bdl49, bdd49, },\ + { rll49, rld49, rdl49, rdd49, },\ + { qll49, qld49, qdl49, qdd49, },\ + { kll49, kld49, kdl49, kdd49, },\ + } },\ + { 45, {\ + { pll45, pld45, pdl45, pdd45, },\ + { nll45, nld45, ndl45, ndd45, },\ + { bll45, bld45, bdl45, bdd45, },\ + { rll45, rld45, rdl45, rdd45, },\ + { qll45, qld45, qdl45, qdd45, },\ + { kll45, kld45, kdl45, kdd45, },\ + } },\ + { 40, {\ + { pll40, pld40, pdl40, pdd40, },\ + { nll40, nld40, ndl40, ndd40, },\ + { bll40, bld40, bdl40, bdd40, },\ + { rll40, rld40, rdl40, rdd40, },\ + { qll40, qld40, qdl40, qdd40, },\ + { kll40, kld40, kdl40, kdd40, },\ + } },\ + { 37, {\ + { pll37, pld37, pdl37, pdd37, },\ + { nll37, nld37, ndl37, ndd37, },\ + { bll37, bld37, bdl37, bdd37, },\ + { rll37, rld37, rdl37, rdd37, },\ + { qll37, qld37, qdl37, qdd37, },\ + { kll37, kld37, kdl37, kdd37, },\ + } },\ + { 33, {\ + { pll33, pld33, pdl33, pdd33, },\ + { nll33, nld33, ndl33, ndd33, },\ + { bll33, bld33, bdl33, bdd33, },\ + { rll33, rld33, rdl33, rdd33, },\ + { qll33, qld33, qdl33, qdd33, },\ + { kll33, kld33, kdl33, kdd33, },\ + } },\ + { 29, {\ + { pll29, pld29, pdl29, pdd29, },\ + { nll29, nld29, ndl29, ndd29, },\ + { bll29, bld29, bdl29, bdd29, },\ + { rll29, rld29, rdl29, rdd29, },\ + { qll29, qld29, qdl29, qdd29, },\ + { kll29, kld29, kdl29, kdd29, },\ + } },\ + { 25, {\ + { pll25, pld25, pdl25, pdd25, },\ + { nll25, nld25, ndl25, ndd25, },\ + { bll25, bld25, bdl25, bdd25, },\ + { rll25, rld25, rdl25, rdd25, },\ + { qll25, qld25, qdl25, qdd25, },\ + { kll25, kld25, kdl25, kdd25, },\ + } },\ + { 21, {\ + { pll21, pld21, pdl21, pdd21, },\ + { nll21, nld21, ndl21, ndd21, },\ + { bll21, bld21, bdl21, bdd21, },\ + { rll21, rld21, rdl21, rdd21, },\ + { qll21, qld21, qdl21, qdd21, },\ + { kll21, kld21, kdl21, kdd21, },\ + } },\ + { 0, {\ + { NULL, NULL, NULL, NULL, },\ + { NULL, NULL, NULL, NULL, },\ + { NULL, NULL, NULL, NULL, },\ + { NULL, NULL, NULL, NULL, },\ + { NULL, NULL, NULL, NULL, },\ + { NULL, NULL, NULL, NULL, },\ + } },\ +}; diff --git a/pixmaps/pld108.xpm b/pixmaps/pld108.xpm new file mode 100644 index 0000000..32d93a2 --- /dev/null +++ b/pixmaps/pld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *pld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................. ...................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. XXXXXXX ..............................................", +"............................................ XXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXX .............................................", +"............................................. XXXXXXXX ..............................................", +"........................................... XXXXXXX ............................................", +"......................................... XXXXXXXX ..........................................", +"....................................... XXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXXXXXXXXXXXX .........................................", +"...................................... XXXXXXXXXXXXXXXX .......................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... ......................", +"..................... ......................", +"...................... ......................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/pld116.xpm b/pixmaps/pld116.xpm new file mode 100644 index 0000000..65324eb --- /dev/null +++ b/pixmaps/pld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *pld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ XXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXX ................................................", +"................................................ XXXXXXXX .................................................", +"............................................... XXXXXXX ................................................", +"............................................. XXXXXXXX ..............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXXXX .............................................", +".......................................... XXXXXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... ........................", +"....................... ........................", +"........................ ........................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/pld129.xpm b/pixmaps/pld129.xpm new file mode 100644 index 0000000..a8798b1 --- /dev/null +++ b/pixmaps/pld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *pld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"........................................................... ............................................................", +"......................................................... ..........................................................", +"....................................................... ........................................................", +"...................................................... .......................................................", +"..................................................... XXXXXXXX ......................................................", +".................................................... XXXXXXXXXXXX .....................................................", +"................................................... XXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXXX ....................................................", +".................................................. XXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXX ...................................................", +"................................................... XXXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXX ....................................................", +".................................................... XXXXXXXXXXXX .....................................................", +"..................................................... XXXXXXXXXX ......................................................", +".................................................... XXXXXXXX .....................................................", +".................................................. XXXXXXXX ...................................................", +"................................................ XXXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................... XXXXXXXXXXXXXXXXXXXX ................................................", +"................................................ XXXXXXXXXXXXXXXXXX .................................................", +".............................................. XXXXXXXXXXXXXXXXXX ...............................................", +"............................................ XXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXX ............................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/pld21.xpm b/pixmaps/pld21.xpm new file mode 100644 index 0000000..12b6bad --- /dev/null +++ b/pixmaps/pld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *pld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".....................", +"........ ........", +"....... XXXXX .......", +"....... XXXXX .......", +"....... XXX .......", +"........ XXX ........", +"....... XXXXX .......", +"....... XXXXX .......", +"........ XXX ........", +"........ XXX ........", +"...... XXXXX ......", +"..... XXXXXXX .....", +"..... XXXXXXXXX .....", +".... XXXXXXXXX ....", +".... XXXXXXXXXXX ....", +".... XXXXXXXXXXX ....", +".... ....", +".....................", +"....................." +}; diff --git a/pixmaps/pld25.xpm b/pixmaps/pld25.xpm new file mode 100644 index 0000000..0f8674e --- /dev/null +++ b/pixmaps/pld25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *pld25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +".........................", +"........... ...........", +".......... XXX ..........", +".......... XXX ..........", +".......... X ..........", +"......... XXX .........", +"........ XXXXXXX ........", +"........ XXXXXXX ........", +"........ XXXXXXX ........", +"......... XXXXX .........", +"......... XXX .........", +"........ XXXXXXX ........", +"....... XXXXXXXXX .......", +"...... XXXXXXXXXXX ......", +"...... XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXX .....", +"..... .....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/pld29.xpm b/pixmaps/pld29.xpm new file mode 100644 index 0000000..83604a3 --- /dev/null +++ b/pixmaps/pld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *pld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"............. .............", +"............ XXX ............", +"........... XXXXX ...........", +"........... XXXXX ...........", +"........... XXXXX ...........", +"........... X ...........", +".......... XXXXXXX ..........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +".......... XXXXXXX ..........", +".......... XXXXX ..........", +"......... XXXXXXXXX .........", +"........ XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... ......", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/pld33.xpm b/pixmaps/pld33.xpm new file mode 100644 index 0000000..1296982 --- /dev/null +++ b/pixmaps/pld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *pld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"............... ...............", +".............. XXX ..............", +"............. XXXXX .............", +"............. XXXXX .............", +"............. XXXXX .............", +".............. XXX ..............", +"............. XXXXX .............", +"............ XXXXXXX ............", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"............ XXXXXXX ............", +"............ XXXXX ............", +"........... XXXXXXXXX ...........", +".......... XXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... .......", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/pld37.xpm b/pixmaps/pld37.xpm new file mode 100644 index 0000000..ef761a7 --- /dev/null +++ b/pixmaps/pld37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *pld37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"................. .................", +"................ XXX ................", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXX ...............", +".............. XXXXXXX ..............", +"............. XXXXXXXXX .............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............. XXXXXXXXX .............", +".............. XXXXX ..............", +"............ XXXXXXXXX ............", +"........... XXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/pld40.xpm b/pixmaps/pld40.xpm new file mode 100644 index 0000000..734600c --- /dev/null +++ b/pixmaps/pld40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *pld40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"........................................", +"........................................", +".................. .................", +"................. XXXXX ................", +"................ XXXXXXX ...............", +"................ XXXXXXX ...............", +"................ XXXXXXX ...............", +"................ XXXXXX ................", +"................. XXXX ................", +"............... XXXXX ..............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +".............. XXXXXXXXXXX .............", +"............... XXXXXXXXX ..............", +"................ XXXXX ...............", +".............. XXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/pld45.xpm b/pixmaps/pld45.xpm new file mode 100644 index 0000000..ab23fb7 --- /dev/null +++ b/pixmaps/pld45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *pld45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +".................... ....................", +"................... XXXXX ...................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +"................... XXXXX ...................", +".................. XXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXX ...............", +"................ XXXXXXXXX ................", +".................. XXXXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/pld49.xpm b/pixmaps/pld49.xpm new file mode 100644 index 0000000..849de67 --- /dev/null +++ b/pixmaps/pld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *pld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"...................... ......................", +"..................... XXXXX .....................", +".................... XXXXXXX ....................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +".................... XXXXXXX ....................", +"..................... XXX .....................", +"................... XXXXXXX ...................", +".................. XXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX .................", +".................. XXXXXXXXXXX ..................", +"................... XXXXXXX ...................", +"................. XXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/pld54.xpm b/pixmaps/pld54.xpm new file mode 100644 index 0000000..96631f5 --- /dev/null +++ b/pixmaps/pld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *pld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"........................ ........................", +"...................... ......................", +"..................... XXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXX .....................", +"...................... XXXX ......................", +".................... XXXX ....................", +"................... XXXXXXXXXX ...................", +".................. XXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXX ..................", +"................... XXXXXXXX ...................", +"................... XXXXXXXX ...................", +"................. XXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/pld58.xpm b/pixmaps/pld58.xpm new file mode 100644 index 0000000..afc8fd6 --- /dev/null +++ b/pixmaps/pld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *pld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........................... ...........................", +"......................... .........................", +"........................ XXXX ........................", +"....................... XXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXX .......................", +"........................ XXXX ........................", +"...................... XXXX ......................", +"..................... XXXXXXXXXX .....................", +".................... XXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXX ....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"................... XXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/pld64.xpm b/pixmaps/pld64.xpm new file mode 100644 index 0000000..725d9c0 --- /dev/null +++ b/pixmaps/pld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *pld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................. .............................", +"........................... ...........................", +".......................... XXXXXX ..........................", +"......................... XXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXX .........................", +".......................... XXXXX ..........................", +"........................ XXXX ..........................", +"....................... XXXXXXXXX ........................", +"...................... XXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXX .......................", +"........................ XXXXXXXX ........................", +"........................ XXXXXXXX ........................", +"...................... XXXXXXXXXXXX ......................", +".................... XXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/pld72.xpm b/pixmaps/pld72.xpm new file mode 100644 index 0000000..bcab021 --- /dev/null +++ b/pixmaps/pld72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *pld72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. .................................", +"............................... ...............................", +".............................. XXXXXX ..............................", +"............................. XXXXXXXX .............................", +"............................. XXXXXXXXXX .............................", +"............................ XXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXX ............................", +"............................. XXXXXXXXXX .............................", +"............................. XXXXXXXX .............................", +".............................. XXXX ..............................", +"............................ XXXX ............................", +".......................... XXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXX ...........................", +"........................... XXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/pld80.xpm b/pixmaps/pld80.xpm new file mode 100644 index 0000000..a75dad1 --- /dev/null +++ b/pixmaps/pld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *pld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"..................................... .....................................", +"................................... ...................................", +".................................. XXXXXX ..................................", +"................................. XXXXXXXX .................................", +"................................. XXXXXXXXXX .................................", +"................................ XXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXX ................................", +"................................. XXXXXXXXXX .................................", +"................................. XXXXXXXX .................................", +".................................. XXXX ..................................", +"................................ XXXX ................................", +".............................. XXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXX ..............................", +".............................. XXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/pld87.xpm b/pixmaps/pld87.xpm new file mode 100644 index 0000000..d8553d9 --- /dev/null +++ b/pixmaps/pld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *pld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"...................................... ......................................", +"..................................... .....................................", +".................................... XXXXX ....................................", +"................................... XXXXXXXXX ...................................", +"................................... XXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXX ...................................", +"................................... XXXXXXXXX ...................................", +".................................... XXXXX ....................................", +"................................... XXXXX ..................................", +"................................. XXXXXX ................................", +"................................ XXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +".................. .................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/pld95.xpm b/pixmaps/pld95.xpm new file mode 100644 index 0000000..8680a7b --- /dev/null +++ b/pixmaps/pld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *pld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................ ............................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... XXXXXXX .......................................", +"...................................... XXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"...................................... XXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXX ......................................", +"....................................... XXXXXX .......................................", +"....................................... XXXXX .......................................", +"..................................... XXXXXX .....................................", +"................................... XXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................. XXXXXXXXXXXXXXXXXXXXX .................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................... ...................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/pll108.xpm b/pixmaps/pll108.xpm new file mode 100644 index 0000000..aa1803b --- /dev/null +++ b/pixmaps/pll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *pll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +".................................................. ...................................................", +"................................................ .................................................", +".............................................. ...............................................", +"............................................. XXXXXXX ..............................................", +"............................................ XXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXX .............................................", +"............................................. XXXXXXXX ..............................................", +"........................................... XXXXXXX ............................................", +"......................................... XXXXXXXX ..........................................", +"....................................... XXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXXXXXXXXXXXX .........................................", +"...................................... XXXXXXXXXXXXXXXX .......................................", +".................................... XXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... ......................", +"..................... ......................", +"...................... ......................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/pll116.xpm b/pixmaps/pll116.xpm new file mode 100644 index 0000000..6547ecd --- /dev/null +++ b/pixmaps/pll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *pll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"..................................................... ......................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ XXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +"............................................. XXXXXXXXXXXXXXXXXXX ..............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +".............................................. XXXXXXXXXXXXXXXXX ...............................................", +"............................................... XXXXXXXXXXXXXXX ................................................", +"............................................... XXXXXXXXXXXXX ................................................", +"................................................ XXXXXXXX .................................................", +"............................................... XXXXXXX ................................................", +"............................................. XXXXXXXX ..............................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXXXX .............................................", +".......................................... XXXXXXXXXXXXXXXX ...........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... ........................", +"....................... ........................", +"........................ ........................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/pll129.xpm b/pixmaps/pll129.xpm new file mode 100644 index 0000000..778a350 --- /dev/null +++ b/pixmaps/pll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *pll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"........................................................... ............................................................", +"......................................................... ..........................................................", +"....................................................... ........................................................", +"...................................................... .......................................................", +"..................................................... XXXXXXXX ......................................................", +".................................................... XXXXXXXXXXXX .....................................................", +"................................................... XXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXXX ....................................................", +".................................................. XXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXXXX ...................................................", +".................................................. XXXXXXXXXXXXXXXXXX ...................................................", +"................................................... XXXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXXX ....................................................", +"................................................... XXXXXXXXXXXXXXXX ....................................................", +".................................................... XXXXXXXXXXXX .....................................................", +"..................................................... XXXXXXXXXX ......................................................", +".................................................... XXXXXXXX .....................................................", +".................................................. XXXXXXXX ...................................................", +"................................................ XXXXXXXXXX .................................................", +"............................................... XXXXXXXXXXXXXXXX ................................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +".......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................................", +"............................................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............................................", +".............................................. XXXXXXXXXXXXXXXXXXXXXXXX ...............................................", +"............................................... XXXXXXXXXXXXXXXXXXXX ................................................", +"................................................ XXXXXXXXXXXXXXXXXX .................................................", +".............................................. XXXXXXXXXXXXXXXXXX ...............................................", +"............................................ XXXXXXXXXXXXXXXXXXXX .............................................", +"........................................... XXXXXXXXXXXXXXXXXXXXXXXX ............................................", +"......................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................................", +"........................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................................", +"....................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................................", +"...................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................................", +"..................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................................", +".................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/pll21.xpm b/pixmaps/pll21.xpm new file mode 100644 index 0000000..f2b60a7 --- /dev/null +++ b/pixmaps/pll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *pll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".....................", +"........ ........", +"....... XXXXX .......", +"....... XXXXX .......", +"....... XXX .......", +"........ XXX ........", +"....... XXXXX .......", +"....... XXXXX .......", +"........ XXX ........", +"........ XXX ........", +"...... XXXXX ......", +"..... XXXXXXX .....", +"..... XXXXXXXXX .....", +".... XXXXXXXXX ....", +".... XXXXXXXXXXX ....", +".... XXXXXXXXXXX ....", +".... ....", +".....................", +"....................." +}; diff --git a/pixmaps/pll25.xpm b/pixmaps/pll25.xpm new file mode 100644 index 0000000..3e18f09 --- /dev/null +++ b/pixmaps/pll25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *pll25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +".........................", +"........... ...........", +".......... XXX ..........", +".......... XXX ..........", +".......... X ..........", +"......... XXX .........", +"........ XXXXXXX ........", +"........ XXXXXXX ........", +"........ XXXXXXX ........", +"......... XXXXX .........", +"......... XXX .........", +"........ XXXXXXX ........", +"....... XXXXXXXXX .......", +"...... XXXXXXXXXXX ......", +"...... XXXXXXXXXXX ......", +"..... XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXX .....", +"..... .....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/pll29.xpm b/pixmaps/pll29.xpm new file mode 100644 index 0000000..4eac27d --- /dev/null +++ b/pixmaps/pll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *pll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"............. .............", +"............ XXX ............", +"........... XXXXX ...........", +"........... XXXXX ...........", +"........... XXXXX ...........", +"........... X ...........", +".......... XXXXXXX ..........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +"......... XXXXXXXXX .........", +".......... XXXXXXX ..........", +".......... XXXXX ..........", +"......... XXXXXXXXX .........", +"........ XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXX .......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... ......", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/pll33.xpm b/pixmaps/pll33.xpm new file mode 100644 index 0000000..9dab2a7 --- /dev/null +++ b/pixmaps/pll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *pll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"............... ...............", +".............. XXX ..............", +"............. XXXXX .............", +"............. XXXXX .............", +"............. XXXXX .............", +".............. XXX ..............", +"............. XXXXX .............", +"............ XXXXXXX ............", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"........... XXXXXXXXX ...........", +"............ XXXXXXX ............", +"............ XXXXX ............", +"........... XXXXXXXXX ...........", +".......... XXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... .......", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/pll37.xpm b/pixmaps/pll37.xpm new file mode 100644 index 0000000..58ce832 --- /dev/null +++ b/pixmaps/pll37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *pll37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +"................. .................", +"................ XXX ................", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXXXX ...............", +"............... XXX ...............", +".............. XXXXXXX ..............", +"............. XXXXXXXXX .............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............ XXXXXXXXXXX ............", +"............. XXXXXXXXX .............", +".............. XXXXX ..............", +"............ XXXXXXXXX ............", +"........... XXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/pll40.xpm b/pixmaps/pll40.xpm new file mode 100644 index 0000000..04cbea0 --- /dev/null +++ b/pixmaps/pll40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *pll40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"........................................", +"........................................", +".................. .................", +"................. XXXXX ................", +"................ XXXXXXX ...............", +"................ XXXXXXX ...............", +"................ XXXXXXX ...............", +"................ XXXXXX ................", +"................. XXXX ................", +"............... XXXXX ..............", +".............. XXXXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +".............. XXXXXXXXXXX .............", +"............... XXXXXXXXX ..............", +"................ XXXXX ...............", +".............. XXXXXXXXX .............", +"............. XXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/pll45.xpm b/pixmaps/pll45.xpm new file mode 100644 index 0000000..0340d19 --- /dev/null +++ b/pixmaps/pll45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *pll45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +".................... ....................", +"................... XXXXX ...................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +".................. XXXXXXX ..................", +"................... XXXXX ...................", +".................. XXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXX ...............", +"................ XXXXXXXXX ................", +".................. XXXXX ..................", +"................ XXXXXXXXX ................", +"............... XXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/pll49.xpm b/pixmaps/pll49.xpm new file mode 100644 index 0000000..f1668ed --- /dev/null +++ b/pixmaps/pll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *pll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"...................... ......................", +"..................... XXXXX .....................", +".................... XXXXXXX ....................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +"................... XXXXXXXXX ...................", +".................... XXXXXXX ....................", +"..................... XXX .....................", +"................... XXXXXXX ...................", +".................. XXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXX .................", +".................. XXXXXXXXXXX ..................", +"................... XXXXXXX ...................", +"................. XXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/pll54.xpm b/pixmaps/pll54.xpm new file mode 100644 index 0000000..1fc83b1 --- /dev/null +++ b/pixmaps/pll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *pll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"........................ ........................", +"...................... ......................", +"..................... XXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXX .....................", +"...................... XXXX ......................", +".................... XXXX ....................", +"................... XXXXXXXXXX ...................", +".................. XXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXX ..................", +"................... XXXXXXXX ...................", +"................... XXXXXXXX ...................", +"................. XXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/pll58.xpm b/pixmaps/pll58.xpm new file mode 100644 index 0000000..35cad6b --- /dev/null +++ b/pixmaps/pll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *pll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........................... ...........................", +"......................... .........................", +"........................ XXXX ........................", +"....................... XXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXXXX .......................", +"....................... XXXXXX .......................", +"........................ XXXX ........................", +"...................... XXXX ......................", +"..................... XXXXXXXXXX .....................", +".................... XXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXX ....................", +"..................... XXXXXXXX .....................", +"..................... XXXXXXXX .....................", +"................... XXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/pll64.xpm b/pixmaps/pll64.xpm new file mode 100644 index 0000000..796d0e0 --- /dev/null +++ b/pixmaps/pll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *pll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................. .............................", +"........................... ...........................", +".......................... XXXXXX ..........................", +"......................... XXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXXXX .........................", +"......................... XXXXXXXX .........................", +".......................... XXXXX ..........................", +"........................ XXXX ..........................", +"....................... XXXXXXXXX ........................", +"...................... XXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXX .......................", +"........................ XXXXXXXX ........................", +"........................ XXXXXXXX ........................", +"...................... XXXXXXXXXXXX ......................", +".................... XXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/pll72.xpm b/pixmaps/pll72.xpm new file mode 100644 index 0000000..47a3c6e --- /dev/null +++ b/pixmaps/pll72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *pll72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"................................. .................................", +"............................... ...............................", +".............................. XXXXXX ..............................", +"............................. XXXXXXXX .............................", +"............................. XXXXXXXXXX .............................", +"............................ XXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXX ............................", +"............................ XXXXXXXXXX ............................", +"............................. XXXXXXXXXX .............................", +"............................. XXXXXXXX .............................", +".............................. XXXX ..............................", +"............................ XXXX ............................", +".......................... XXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXX ........................", +"......................... XXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXX ...........................", +"........................... XXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/pll80.xpm b/pixmaps/pll80.xpm new file mode 100644 index 0000000..ef59f2e --- /dev/null +++ b/pixmaps/pll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *pll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"..................................... .....................................", +"................................... ...................................", +".................................. XXXXXX ..................................", +"................................. XXXXXXXX .................................", +"................................. XXXXXXXXXX .................................", +"................................ XXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXX ................................", +"................................ XXXXXXXXXX ................................", +"................................. XXXXXXXXXX .................................", +"................................. XXXXXXXX .................................", +".................................. XXXX ..................................", +"................................ XXXX ................................", +".............................. XXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"............................ XXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXX ..............................", +".............................. XXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/pll87.xpm b/pixmaps/pll87.xpm new file mode 100644 index 0000000..0b2abd7 --- /dev/null +++ b/pixmaps/pll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *pll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................... .........................................", +"...................................... ......................................", +"..................................... .....................................", +".................................... XXXXX ....................................", +"................................... XXXXXXXXX ...................................", +"................................... XXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXX ...................................", +"................................... XXXXXXXXX ...................................", +".................................... XXXXX ....................................", +"................................... XXXXX ..................................", +"................................. XXXXXX ................................", +"................................ XXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +".................. .................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/pll95.xpm b/pixmaps/pll95.xpm new file mode 100644 index 0000000..e250e1a --- /dev/null +++ b/pixmaps/pll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *pll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"............................................ ............................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... XXXXXXX .......................................", +"...................................... XXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXXXX ......................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"..................................... XXXXXXXXXXXXXXX .....................................", +"...................................... XXXXXXXXXXXXX ......................................", +"...................................... XXXXXXXXXXX ......................................", +"....................................... XXXXXX .......................................", +"....................................... XXXXX .......................................", +"..................................... XXXXXX .....................................", +"................................... XXXXXXXXXXXXX ...................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................. XXXXXXXXXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................. XXXXXXXXXXXXXXXXXXXXX .................................", +".................................. XXXXXXXXXXXXXXXXX ..................................", +"................................... XXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXX ...................................", +"................................. XXXXXXXXXXXXXX .................................", +"................................ XXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +".................... ...................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/qdd108.xpm b/pixmaps/qdd108.xpm new file mode 100644 index 0000000..a4d6298 --- /dev/null +++ b/pixmaps/qdd108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *qdd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"................................................ .................................................", +"........................... ............... ............... ............................", +"......................... ............. ............. ..........................", +"........................ ............ ............ .........................", +"........................ ............ ............ .........................", +"....................... ........... ........... ........................", +"....................... ............ ............ ........................", +"....................... ............ ............ ........................", +"....................... ............. ............. ........................", +"........................ ............... ............... .........................", +"...... ............. ................ ................ ............. .......", +".... ............ ................ ................ ............ .....", +"... ............ ................. ................. ............ ....", +"... .............. .................. .................. .............. ....", +".. .............. .................. .................. .............. ...", +".. .............. ................. ................. .............. ...", +".. .............. ................ ................ .............. ...", +".. .............. ................ ................ .............. ...", +".. .............. ................ ................ .............. ...", +"... .............. ............... ............... .............. ....", +"... .............. .............. .............. .............. ....", +".... ............... .............. .............. ............... .....", +"...... ............... ............. ............. ............... .......", +"......... .............. ............. ............. .............. ..........", +"......... .............. ........... ........... .............. ..........", +"......... ............. ........... ........... ............. ..........", +".......... ............. ........... ........... ............. ...........", +".......... ............ .......... .......... ............ ...........", +".......... ............ .......... .......... ............ ...........", +".......... ........... ......... ......... ........... ...........", +".......... .......... ........ ........ .......... ...........", +"........... .......... ........ ........ .......... ............", +"........... ......... ........ ........ ......... ............", +"........... ......... ....... ....... ......... ............", +"........... ........ ...... ...... ........ ............", +"........... ........ ..... ..... ........ ............", +"........... ....... ..... ..... ....... ............", +"............ ....... ..... ..... ....... .............", +"............ ...... ... ... ...... .............", +"............ ..... ... ... ..... .............", +"............ .... ... ... .... .............", +"............ ... .. .. ... .............", +"............. ... .. .. ... ..............", +"............. .. . . .. ..............", +"............. .. .. ..............", +"............. . . ..............", +"............. ..............", +"............. ..............", +".............. ...............", +".............. ...............", +".............. ...............", +".............. ...............", +".............. ...............", +"............... ................", +"............... ................", +"............... ................", +"................ .................", +"................. ..................", +"................. ..................", +".................. ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXX XXXXXXX .......................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"....................... ........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"..................... X ......................", +"..................... XXX ......................", +".................... XXX .....................", +"................... ....................", +"................... ....................", +"................... ....................", +"................... ....................", +".................... .....................", +"...................... .......................", +".......................... ...........................", +"................................. ..................................", +".......................................... ...........................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/qdd116.xpm b/pixmaps/qdd116.xpm new file mode 100644 index 0000000..7bc7e45 --- /dev/null +++ b/pixmaps/qdd116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *qdd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"...................................................... .......................................................", +"..................................................... ......................................................", +"............................... ................. ................. ................................", +"............................. ............... ............... ..............................", +"............................ ............. ............. .............................", +"........................... ............ ............ ............................", +"........................... ............ ............ ............................", +".......................... ........... ........... ...........................", +".......................... ............ ............ ...........................", +".......................... ............ ............ ...........................", +".......................... ............. ............. ...........................", +"......... .............. ............... ............... .............. ..........", +"....... ............ ................ ................ ............ ........", +"...... ............ ................. ................. ............ .......", +"..... ............ .................. .................. ............ ......", +"..... .............. ................... ................... .............. ......", +".... .............. ................... ................... .............. .....", +".... .............. .................. .................. .............. .....", +".... .............. ................. ................. .............. .....", +".... .............. ................. ................. .............. .....", +"..... ............... ................. ................. ............... ......", +"..... ............... ............... ............... ............... ......", +"...... ............... ............... ............... ............... .......", +"....... ................ ............... ............... ................ ........", +"......... ................ .............. .............. ................ ..........", +"........... ............... .............. .............. ............... ............", +"........... ............... ............. ............. ............... ............", +"............ .............. ............ ............ .............. .............", +"............ .............. ............ ............ .............. .............", +"............ ............. ............ ............ ............. .............", +"............ ............ .......... .......... ............ .............", +"............ ............ .......... .......... ............ .............", +"............ ........... .......... .......... ........... .............", +"............. ........... ......... ......... ........... ..............", +"............. .......... ......... ......... .......... ..............", +"............. .......... ........ ........ .......... ..............", +"............. ......... ....... ....... ......... ..............", +"............. ......... ....... ....... ......... ..............", +"............. ........ ...... ...... ........ ..............", +".............. ........ ..... ..... ........ ...............", +".............. ....... ..... ..... ....... ...............", +".............. ...... .... .... ...... ...............", +".............. ...... .... .... ...... ...............", +".............. .... ... ... .... ...............", +".............. .... .. .. .... ...............", +"............... ... .. .. ... ................", +"............... ... .. .. ... ................", +"............... .. . . .. ................", +"............... .. .. ................", +"............... . . ................", +"............... ................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. ..................", +"................. ..................", +"................. ..................", +".................. ...................", +".................. ...................", +"................... ....................", +".................... .....................", +"..................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXX XXXXXXX ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXX XXXXXXXX ............................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"....................... X ........................", +"...................... XXX .......................", +"...................... XXX .......................", +"..................... ......................", +".................... .....................", +".................... .....................", +".................... .....................", +"..................... ......................", +"...................... .......................", +"......................... ..........................", +"............................... ................................", +"..................................... ......................................", +".............................................. ...............................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/qdd129.xpm b/pixmaps/qdd129.xpm new file mode 100644 index 0000000..b0469c3 --- /dev/null +++ b/pixmaps/qdd129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *qdd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"................................. ................... ................... ..................................", +"................................ ................. ................. .................................", +"............................... ............... ............... ................................", +".............................. .............. .............. ...............................", +"............................. ............. ............. ..............................", +"............................. ............. ............. ..............................", +"............................ ............ ............ .............................", +"............................ ............. ............. .............................", +"............................ ............. ............. .............................", +"............................ .............. .............. .............................", +"........ ............... ............... ............... ............... .........", +"....... .............. ................. ................. .............. ........", +"...... ............. .................. .................. ............. .......", +"..... ............. ................... ................... ............. ......", +".... ............. .................... .................... ............. .....", +".... .............. .................... .................... .............. .....", +"... ................ .................... .................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................. ................. ................ ....", +".... ................ ................. ................. ................ .....", +".... ................ ................. ................. ................ .....", +"..... ................. ................ ................ ................. ......", +"...... .................. ................ ................ .................. .......", +"....... ................. ............... ............... ................. ........", +".......... ................. .............. .............. ................. ...........", +"........... ................ .............. .............. ................ ............", +"............ ................ .............. .............. ................ .............", +"............ ............... ............ ............ ............... .............", +"............ ............... ............ ............ ............... .............", +"............ .............. ............ ............ .............. .............", +"............ ............. ........... ........... ............. .............", +"............ ............. ........... ........... ............. .............", +"............. ............ .......... .......... ............ ..............", +"............. ............ ......... ......... ............ ..............", +"............. ........... ......... ......... ........... ..............", +"............. ........... ......... ......... ........... ..............", +"............. .......... ........ ........ .......... ..............", +"............. ......... ....... ....... ......... ..............", +".............. ......... ....... ....... ......... ...............", +".............. ........ ...... ...... ........ ...............", +".............. ........ ...... ...... ........ ...............", +".............. ....... ..... ..... ....... ...............", +".............. ....... .... .... ....... ...............", +".............. ..... .... .... ..... ...............", +"............... .... .... .... .... ................", +"............... .... ... ... .... ................", +"............... ... .. .. ... ................", +"............... ... .. .. ... ................", +"............... .. . . .. ................", +"............... .. . . .. ................", +"................ . . .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. ..................", +"................. ..................", +"................. ..................", +"................. ..................", +"................. ..................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +"................... ....................", +".................... .....................", +"..................... ......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...........................", +"........................... XXXXX XXXXX ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"............................ .............................", +"............................ .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXX XXXXXXXXXXX ..............................", +"............................ XXX XXX .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +"......................... XX ..........................", +"......................... XXXX ..........................", +"........................ XXXX .........................", +"........................ XX .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ .........................", +"......................... ..........................", +".......................... ...........................", +"............................ .............................", +"................................... ....................................", +".......................................... ...........................................", +"................................................... ....................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/qdd21.xpm b/pixmaps/qdd21.xpm new file mode 100644 index 0000000..df30ae3 --- /dev/null +++ b/pixmaps/qdd21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *qdd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"..... . . .....", +"..... . . .....", +". .. .. .. .. .", +". .. .. .. .. .", +". .. . . .. .", +".. . . . . ..", +".. . . . . ..", +"... ...", +"... ...", +"... ...", +"... ...", +".... XXXXXXXXX ....", +".... XX XX ....", +".... XXXXXXX ....", +"..... X X .....", +".... ....", +".... ....", +"..... .....", +"....................." +}; diff --git a/pixmaps/qdd25.xpm b/pixmaps/qdd25.xpm new file mode 100644 index 0000000..7cb877a --- /dev/null +++ b/pixmaps/qdd25.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * qdd25[] = { +"25 25 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ... . ", +" ... ... ... ", +" .. ... . ... .. ", +".... . . . ....", +".... .. ... .. ....", +" ... .. ... .. ... ", +" .. .. ... .. .. ", +" ... ... ... ... ... ", +" ... ... ... ... ... ", +" ... ........... ... ", +" ................... ", +" ................. ", +" ................. ", +" ................. ", +" ..XXXXXXXXXXX.. ", +" ............... ", +" .XXXXXXXXXXX. ", +" ..X.........X.. ", +" ..X............ ", +" ............... ", +" ............. ", +" ", +" "}; diff --git a/pixmaps/qdd29.xpm b/pixmaps/qdd29.xpm new file mode 100644 index 0000000..ece1533 --- /dev/null +++ b/pixmaps/qdd29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *qdd29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"....... .... .... .......", +"...... .. .. ......", +".. .. ... ... .. ..", +". .. ..... ..... .. .", +". ... ... ... ... .", +".. .... ... ... .... ..", +"... ... ... ... ... ...", +"... .. .. .. ... ...", +"... . .. .. . ...", +"... . . . . ...", +"... ...", +".... ....", +".... ....", +".... ....", +".... ....", +"..... XXXXXXXXX .....", +"..... XXX XXX .....", +"...... ......", +"...... XXXXXXXXXXX ......", +"....... X X .......", +"...... X ......", +"...... ......", +"...... ......", +"........ ........", +".............................", +"............................." +}; diff --git a/pixmaps/qdd33.xpm b/pixmaps/qdd33.xpm new file mode 100644 index 0000000..b7a8e82 --- /dev/null +++ b/pixmaps/qdd33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *qdd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. ..............", +"........ .... .... ........", +"....... .... .... .......", +".. ... ..... ..... ... ..", +". ... ..... ..... ... .", +". .... ..... ..... .... .", +".. ..... .... .... ..... ..", +"... .... .... .... .... ...", +"... .... ... ... .... ...", +".... ... .. .. ... ....", +".... .. .. .. .. ....", +".... .. . . .. ....", +".... . . . . ....", +".... . . ....", +"..... .....", +"..... .....", +"..... .....", +"..... .....", +"...... XXXXXXXXXXXXX ......", +"...... XX XX ......", +"....... .......", +"....... XXXXXXXXXXXXX .......", +"........ XX XX ........", +"....... .......", +"........ .......", +"...... ......", +"...... ......", +".......... ..........", +".................................", +"................................." +}; diff --git a/pixmaps/qdd37.xpm b/pixmaps/qdd37.xpm new file mode 100644 index 0000000..4d45c12 --- /dev/null +++ b/pixmaps/qdd37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *qdd37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +"................. .................", +".......... ... ... ..........", +"......... .. .. .........", +"......... ... ... .........", +"... ..... ..... ..... ..... ...", +".. ..... ...... ...... ..... ..", +".. ..... .... .... ..... ..", +".. ..... .... .... ..... ..", +"... ..... .... .... ..... ...", +".... .... .... .... .... ....", +".... .... ... ... .... ....", +".... ... .. .. ... ....", +".... ... .. .. ... ....", +".... .. .. .. .. ....", +"..... .. . . .. .....", +"..... . . . . .....", +"..... .....", +"..... .....", +"..... .....", +"...... ......", +"...... ......", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXX .......", +"........ ........", +"........ ........", +"......... XXXXXXXXXXXXXXX .........", +"........ XX XX ........", +"........ ........", +"....... X .......", +"....... .......", +"........ ........", +"............. .............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/qdd40.xpm b/pixmaps/qdd40.xpm new file mode 100644 index 0000000..a5400f4 --- /dev/null +++ b/pixmaps/qdd40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *qdd40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"................... ..................", +"........... .... .... ..........", +".......... ... ... .........", +".......... ... ... .........", +".. ..... .... .... ..... .", +". ..... ...... ...... ..... ", +". ...... ....... ....... ...... ", +". ...... ..... ..... ...... ", +".. ....... ..... ..... ....... .", +".... ...... .... .... ...... ...", +".... ...... .... .... ...... ...", +".... ..... .... .... ..... ...", +".... ... .. .. ... ...", +"..... ... .. .. ... ....", +"..... .. .. .. .. ....", +"..... .. . . .. ....", +"..... . . . . ....", +"..... ....", +"..... ....", +"..... .....", +"...... .....", +"...... .....", +"....... ......", +"........ XXXXXXXXXXXXX .......", +"........ XXXXX XXXXX .......", +"......... ........", +"......... ........", +"......... XXXXXXXXXXXXX ........", +".......... XXX XXX .........", +"......... ........", +"........ .......", +"......... .......", +"....... ......", +"........ .......", +".............. .............", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/qdd45.xpm b/pixmaps/qdd45.xpm new file mode 100644 index 0000000..96029a2 --- /dev/null +++ b/pixmaps/qdd45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *qdd45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +"..................... .....................", +"........... ...... ...... ...........", +".......... ..... ..... ..........", +".......... ..... ..... ..........", +".......... ...... ...... ..........", +".. ..... ........ ........ ..... ..", +". ..... ......... ......... ..... .", +". ..... ....... ....... ..... .", +". ..... ....... ....... ..... .", +".. ...... ....... ....... ...... ..", +"... ....... ...... ...... ....... ...", +".... ...... ..... ..... ...... ....", +".... ...... ..... ..... ...... ....", +".... ..... .... .... ..... ....", +".... .... .... .... .... ....", +"..... ... .... .... ... .....", +"..... ... .. .. ... .....", +"..... .. .. .. .. .....", +"..... .. .. .. .. .....", +"..... . . . . .....", +"..... . . . . .....", +"..... .....", +"..... .....", +"...... ......", +"...... ......", +"...... ......", +"....... .......", +"........ XXXXXXXXXXXXXXX ........", +"......... XXXXX XXXXX .........", +"......... .........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXX XXX ..........", +"......... .........", +"......... .........", +"......... ........", +"....... .......", +"....... .......", +"........ ........", +"............... ...............", +".............................................", +"............................................." +}; diff --git a/pixmaps/qdd49.xpm b/pixmaps/qdd49.xpm new file mode 100644 index 0000000..f56991c --- /dev/null +++ b/pixmaps/qdd49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *qdd49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"........... ....... ....... ...........", +".......... ...... ...... ..........", +".......... ...... ...... ..........", +".......... ....... ....... ..........", +".. ..... ......... ......... ..... ..", +". ..... .......... .......... ..... .", +". ...... ........ ........ ...... .", +". ...... ........ ........ ...... .", +".. ....... ........ ........ ....... ..", +"... ........ ....... ....... ........ ...", +".... ....... ....... ....... ....... ....", +"..... ...... ..... ..... ...... .....", +"..... ...... ..... ..... ...... .....", +"..... ..... ..... ..... ..... .....", +"..... ..... .... .... ..... .....", +"..... .... .... .... .... .....", +"..... ... .. .. ... .....", +"...... ... .. .. ... ......", +"...... .. .. .. .. ......", +"...... .. . . .. ......", +"...... . . ......", +"...... ......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"......... .........", +"......... XXXXXXXXXXXXXXXXX .........", +".......... XXXXXX XXXXXX ..........", +".......... ..........", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXX XXX ...........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"........ ........", +".......... ..........", +"................ ................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/qdd54.xpm b/pixmaps/qdd54.xpm new file mode 100644 index 0000000..06760c6 --- /dev/null +++ b/pixmaps/qdd54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *qdd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"............. ..... ..... .............", +"............ .... .... ............", +"............ .... .... ............", +"............ ..... ..... ............", +"... .... ...... ...... .... ...", +".. ... ....... ....... ... ..", +".. .... ....... ....... .... ..", +".. ...... ....... ....... ...... ..", +".. ...... ....... ....... ...... ..", +".. ....... ...... ...... ....... ..", +"... ....... ...... ...... ....... ...", +"..... ....... ..... ..... ....... .....", +"..... ...... .... .... ...... .....", +"...... ..... .... .... ..... ......", +"...... .... .... .... .... ......", +"...... ... ... ... ... ......", +"...... ... .. .. ... ......", +"...... .. . . .. ......", +"....... .. . . .. .......", +"....... . . . . .......", +"....... . . .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +".......... XXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXX XXXXXXX ...........", +"........... ...........", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXX XXXXXX ............", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"........... ...........", +".................. ..................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/qdd58.xpm b/pixmaps/qdd58.xpm new file mode 100644 index 0000000..7f80547 --- /dev/null +++ b/pixmaps/qdd58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *qdd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +".............. ....... ....... ..............", +"............. ...... ...... .............", +"............. ..... ..... .............", +"............. ..... ..... .............", +".... ....... ...... ...... ....... ....", +".. ..... ....... ....... ..... ..", +". ..... ........ ........ ..... .", +". ....... ........ ........ ....... .", +". ....... ........ ........ ....... .", +". ....... ........ ........ ....... .", +".. ........ ...... ...... ........ ..", +"..... ........ ...... ...... ........ .....", +"..... ....... ..... ..... ....... .....", +"..... ....... ..... ..... ....... .....", +"..... ..... .... .... ..... .....", +"..... .... ... ... .... .....", +"...... .... ... ... .... ......", +"...... ... ... ... ... ......", +"...... ... . . ... ......", +"...... .. . . .. ......", +"...... . . . . ......", +"....... . . .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +".......... XXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXX XXXXXXX ............", +"............ ............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXX XXXXXXX .............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............. .............", +".................... ....................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/qdd64.xpm b/pixmaps/qdd64.xpm new file mode 100644 index 0000000..c7e16ce --- /dev/null +++ b/pixmaps/qdd64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *qdd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +".................. ........ ........ ..................", +"................ ...... ...... ................", +"............... ..... ..... ...............", +"............... ..... ..... ...............", +"............... ...... ...... ...............", +"..... ........ ........ ........ ........ .....", +"... ....... ........ ........ ....... ...", +".. ....... ......... ......... ....... ..", +".. ........ ......... ......... ........ ..", +".. ........ ......... ......... ........ ..", +".. ........ ........ ........ ........ ..", +"... ........ ....... ....... ........ ...", +".... ........ ....... ....... ........ ....", +"...... ........ ...... ...... ........ ......", +"...... ....... ...... ...... ....... ......", +"...... ....... ...... ...... ....... ......", +"...... ...... .... .... ...... ......", +"....... ...... .... .... ...... .......", +"....... ..... .... .... ..... .......", +"....... ..... ... ... ..... .......", +"....... .... ... ... .... .......", +"....... .... .. .. .... .......", +"....... ... . . ... .......", +"....... .. . . .. .......", +"........ . . . . ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +"......... .........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXX XXXXXXX .............", +"............. .............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXX XXXXXX ...............", +".............. ..............", +".............. ..............", +"............. XXX .............", +"............. XXX .............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"................. ................", +"........................ ........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/qdd72.xpm b/pixmaps/qdd72.xpm new file mode 100644 index 0000000..de9b43e --- /dev/null +++ b/pixmaps/qdd72.xpm @@ -0,0 +1,78 @@ +/* XPM */ +static char * qdd72[] = { +"72 72 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" .... ", +" ........ ", +" ... .......... ... ", +" ....... .......... ....... ", +" ......... .......... ......... ", +" ......... .......... ......... ", +" ......... .......... ......... ", +" ......... ........ ......... ", +" ... ......... .... ......... ... ", +" ....... ....... .... ....... ....... ", +"......... ..... .... ..... .........", +"......... ... .... ... .........", +"......... ... .... ... .........", +"......... .... .... .... .........", +"......... .... ...... .... .........", +" ....... .... ...... .... ....... ", +" ...... ..... ...... ..... ...... ", +" ... ..... ...... ..... ... ", +" .... ..... ...... ..... .... ", +" .... ...... ........ ...... .... ", +" ..... ...... ........ ...... ..... ", +" ..... ........ ........ ........ ..... ", +" ..... ........ ........ ........ ..... ", +" ...... ........ ........ ........ ...... ", +" ...... ......... .......... ......... ...... ", +" ....... ......... .......... ......... ....... ", +" ....... ......... .......... ......... ....... ", +" ....... .......... .......... .......... ....... ", +" ........ .......... .......... .......... ........ ", +" ........ ........... ............ ........... ........ ", +" ......... ........... ............ ........... ......... ", +" ......... ........... ............ ........... ......... ", +" .......... .................................... .......... ", +" ......... .................................... ......... ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" .................................................... ", +" .................................................. ", +" ............XXXXXXXXXXXXXXXXXXXXXXXX............ ", +" ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.... ", +" ..XXXXXXXXXX....................XXXXXXXXXX.. ", +" ...X....................................X... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .........XXXXXXXXXXXXXXXXXXXXXXXX......... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXX....................XXXXXXXX.. ", +" .......................................... ", +" .......................................... ", +" ............................................ ", +" .............................................. ", +" .XX........................................... ", +" ................................................ ", +" ................................................ ", +" ................................................ ", +" ................................................ ", +" ............................................ ", +" .................................. ", +" .................... ", +" ", +" ", +" "}; diff --git a/pixmaps/qdd80.xpm b/pixmaps/qdd80.xpm new file mode 100644 index 0000000..a81bd79 --- /dev/null +++ b/pixmaps/qdd80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *qdd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"..................... ........... ........... .....................", +"................... ......... ......... ...................", +".................. ........ ........ ..................", +".................. ........ ........ ..................", +".................. ......... ......... ..................", +".................. .......... .......... ..................", +"...... ........ ............ ............ ........ ......", +".... ....... ............ ............ ....... ....", +"... ........ ............. ............. ........ ...", +"... ......... ............. ............. ......... ...", +"... ......... ............. ............. ......... ...", +"... ......... ............ ............ ......... ...", +"... ......... ........... ........... ......... ...", +".... .......... ........... ........... .......... ....", +"..... ........... ........... ........... ........... .....", +"........ ........... .......... .......... ........... ........", +"........ .......... ......... ......... .......... ........", +"........ .......... ........ ........ .......... ........", +"........ ......... ........ ........ ......... ........", +"......... ........ ........ ........ ........ .........", +"......... ....... ...... ...... ....... .........", +"......... ....... ...... ...... ....... .........", +"......... ...... ...... ...... ...... .........", +"......... ..... ..... ..... ..... .........", +"......... ..... ..... ..... ..... .........", +".......... .... .... .... .... ..........", +".......... .... ... ... .... ..........", +".......... ... ... ... ... ..........", +".......... ... ... ... ... ..........", +".......... .. . . .. ..........", +".......... .. . . .. ..........", +"........... . . . . ...........", +"........... . . ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"............. .............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXX XXXXXXXXXXXX ................", +"................. XXXXX XXXXX .................", +"................. .................", +"................. .................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. ..................", +"................. .................", +"................ ................", +"................ ................", +"............... XX ...............", +".............. X ..............", +".............. ..............", +".............. ..............", +"............... ...............", +".................. .................", +"........................ ........................", +"............................... ...............................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/qdd87.xpm b/pixmaps/qdd87.xpm new file mode 100644 index 0000000..baaab6b --- /dev/null +++ b/pixmaps/qdd87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *qdd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................... ............. ............. .......................", +"..................... .......... .......... .....................", +".................... ......... ......... ....................", +".................... ......... ......... ....................", +"................... ......... ......... ...................", +"................... ......... ......... ...................", +"................... .......... .......... ...................", +"....... .......... ............. ............. .......... .......", +"..... ........ ............ ............ ........ .....", +".... ........ ............. ............. ........ ....", +".... .......... ............. ............. .......... ....", +"... .......... ............. ............. .......... ...", +"... .......... ............. ............. .......... ...", +"... .......... ........... ........... .......... ...", +".... ........... ........... ........... ........... ....", +".... ........... ........... ........... ........... ....", +"..... ............ .......... .......... ............ .....", +"....... ............ .......... .......... ............ .......", +"......... ........... ......... ......... ........... .........", +"......... ........... ........ ........ ........... .........", +"......... .......... ........ ........ .......... .........", +"......... ......... ........ ........ ......... .........", +"......... ........ ....... ....... ........ .........", +"......... ........ ...... ...... ........ .........", +".......... ....... ...... ...... ....... ..........", +".......... ...... ..... ..... ...... ..........", +".......... ...... ..... ..... ...... ..........", +".......... ..... ..... ..... ..... ..........", +".......... ..... ... ... ..... ..........", +"........... .... ... ... .... ...........", +"........... ... .. .. ... ...........", +"........... ... .. .. ... ...........", +"........... .. .. .. .. ...........", +"........... .. .. ...........", +"........... . . ...........", +"............ . . ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXX XXXXX ..................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXX XXXXX ....................", +"................... ...................", +"................... ...................", +"................... X ...................", +".................. XXX ..................", +".................. XXX ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. ..................", +".................... ....................", +"......................... .........................", +"................................. .................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/qdd95.xpm b/pixmaps/qdd95.xpm new file mode 100644 index 0000000..86edc0a --- /dev/null +++ b/pixmaps/qdd95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *qdd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +"............................................ ............................................", +"........................................... ...........................................", +"......................... .............. .............. .........................", +"....................... ........... ........... .......................", +"...................... .......... .......... ......................", +"...................... .......... .......... ......................", +"..................... ......... ......... .....................", +"..................... .......... .......... .....................", +"..................... .......... .......... .....................", +"..................... ........... ........... .....................", +"....... ........... .............. .............. ........... .......", +"..... ......... ............. ............. ......... .....", +".... ......... .............. .............. ......... ....", +".... ........... ............... ............... ........... ....", +"... ........... ............... ............... ........... ...", +"... ........... .............. .............. ........... ...", +"... ........... ............. ............. ........... ...", +"... ........... ............. ............. ........... ...", +".... ............ ............. ............. ............ ....", +".... ............ ............ ............ ............ ....", +"..... ............. ........... ........... ............. .....", +"....... ............. ........... ........... ............. .......", +"......... ............ .......... .......... ............ .........", +"......... ............ .......... .......... ............ .........", +".......... .......... ......... ......... .......... ..........", +".......... ......... ........ ........ ......... ..........", +".......... ......... ........ ........ ......... ..........", +".......... ........ ....... ....... ........ ..........", +".......... ........ ....... ....... ........ ..........", +".......... ....... ...... ...... ....... ..........", +"........... ....... ..... ..... ....... ...........", +"........... ...... ..... ..... ...... ...........", +"........... ..... ..... ..... ..... ...........", +"........... ..... .... .... ..... ...........", +"........... .... ... ... .... ...........", +"............ .... ... ... .... ............", +"............ ... .. .. ... ............", +"............ .. .. .. .. ............", +"............ .. . . .. ............", +"............ . . ............", +"............ . . ............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... ...............", +"................ ................", +"................ ................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ....................", +".................... XX XX ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ......................", +"...................... XXXXX XXXXX ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... XX ....................", +"................... XXX ...................", +"................... XX ...................", +".................. ..................", +".................. ..................", +".................. ..................", +"................... ...................", +".................... ....................", +"...................... ......................", +".............................. ..............................", +"..................................... .....................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/qdl108.xpm b/pixmaps/qdl108.xpm new file mode 100644 index 0000000..ff3204f --- /dev/null +++ b/pixmaps/qdl108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *qdl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"................................................ .................................................", +"........................... ............... ............... ............................", +"......................... ............. ............. ..........................", +"........................ ............ ............ .........................", +"........................ ............ ............ .........................", +"....................... ........... ........... ........................", +"....................... ............ ............ ........................", +"....................... ............ ............ ........................", +"....................... ............. ............. ........................", +"........................ ............... ............... .........................", +"...... ............. ................ ................ ............. .......", +".... ............ ................ ................ ............ .....", +"... ............ ................. ................. ............ ....", +"... .............. .................. .................. .............. ....", +".. .............. .................. .................. .............. ...", +".. .............. ................. ................. .............. ...", +".. .............. ................ ................ .............. ...", +".. .............. ................ ................ .............. ...", +".. .............. ................ ................ .............. ...", +"... .............. ............... ............... .............. ....", +"... .............. .............. .............. .............. ....", +".... ............... .............. .............. ............... .....", +"...... ............... ............. ............. ............... .......", +"......... .............. ............. ............. .............. ..........", +"......... .............. ........... ........... .............. ..........", +"......... ............. ........... ........... ............. ..........", +".......... ............. ........... ........... ............. ...........", +".......... ............ .......... .......... ............ ...........", +".......... ............ .......... .......... ............ ...........", +".......... ........... ......... ......... ........... ...........", +".......... .......... ........ ........ .......... ...........", +"........... .......... ........ ........ .......... ............", +"........... ......... ........ ........ ......... ............", +"........... ......... ....... ....... ......... ............", +"........... ........ ...... ...... ........ ............", +"........... ........ ..... ..... ........ ............", +"........... ....... ..... ..... ....... ............", +"............ ....... ..... ..... ....... .............", +"............ ...... ... ... ...... .............", +"............ ..... ... ... ..... .............", +"............ .... ... ... .... .............", +"............ ... .. .. ... .............", +"............. ... .. .. ... ..............", +"............. .. . . .. ..............", +"............. .. .. ..............", +"............. . . ..............", +"............. ..............", +"............. ..............", +".............. ...............", +".............. ...............", +".............. ...............", +".............. ...............", +".............. ...............", +"............... ................", +"............... ................", +"............... ................", +"................ .................", +"................. ..................", +"................. ..................", +".................. ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXX XXXXXXX .......................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"....................... ........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"..................... X ......................", +"..................... XXX ......................", +".................... XXX .....................", +"................... ....................", +"................... ....................", +"................... ....................", +"................... ....................", +".................... .....................", +"...................... .......................", +".......................... ...........................", +"................................. ..................................", +".......................................... ...........................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/qdl116.xpm b/pixmaps/qdl116.xpm new file mode 100644 index 0000000..c284021 --- /dev/null +++ b/pixmaps/qdl116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *qdl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"........................................................ .........................................................", +"...................................................... .......................................................", +"..................................................... ......................................................", +"............................... ................. ................. ................................", +"............................. ............... ............... ..............................", +"............................ ............. ............. .............................", +"........................... ............ ............ ............................", +"........................... ............ ............ ............................", +".......................... ........... ........... ...........................", +".......................... ............ ............ ...........................", +".......................... ............ ............ ...........................", +".......................... ............. ............. ...........................", +"......... .............. ............... ............... .............. ..........", +"....... ............ ................ ................ ............ ........", +"...... ............ ................. ................. ............ .......", +"..... ............ .................. .................. ............ ......", +"..... .............. ................... ................... .............. ......", +".... .............. ................... ................... .............. .....", +".... .............. .................. .................. .............. .....", +".... .............. ................. ................. .............. .....", +".... .............. ................. ................. .............. .....", +"..... ............... ................. ................. ............... ......", +"..... ............... ............... ............... ............... ......", +"...... ............... ............... ............... ............... .......", +"....... ................ ............... ............... ................ ........", +"......... ................ .............. .............. ................ ..........", +"........... ............... .............. .............. ............... ............", +"........... ............... ............. ............. ............... ............", +"............ .............. ............ ............ .............. .............", +"............ .............. ............ ............ .............. .............", +"............ ............. ............ ............ ............. .............", +"............ ............ .......... .......... ............ .............", +"............ ............ .......... .......... ............ .............", +"............ ........... .......... .......... ........... .............", +"............. ........... ......... ......... ........... ..............", +"............. .......... ......... ......... .......... ..............", +"............. .......... ........ ........ .......... ..............", +"............. ......... ....... ....... ......... ..............", +"............. ......... ....... ....... ......... ..............", +"............. ........ ...... ...... ........ ..............", +".............. ........ ..... ..... ........ ...............", +".............. ....... ..... ..... ....... ...............", +".............. ...... .... .... ...... ...............", +".............. ...... .... .... ...... ...............", +".............. .... ... ... .... ...............", +".............. .... .. .. .... ...............", +"............... ... .. .. ... ................", +"............... ... .. .. ... ................", +"............... .. . . .. ................", +"............... .. .. ................", +"............... . . ................", +"............... ................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. ..................", +"................. ..................", +"................. ..................", +".................. ...................", +".................. ...................", +"................... ....................", +".................... .....................", +"..................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXX XXXXXXX ..........................", +"......................... ..........................", +"......................... ..........................", +".......................... ...........................", +".......................... ...........................", +".......................... ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXX XXXXXXXX ............................", +".......................... ...........................", +".......................... ...........................", +"......................... ..........................", +"........................ .........................", +"........................ .........................", +"....................... X ........................", +"...................... XXX .......................", +"...................... XXX .......................", +"..................... ......................", +".................... .....................", +".................... .....................", +".................... .....................", +"..................... ......................", +"...................... .......................", +"......................... ..........................", +"............................... ................................", +"..................................... ......................................", +".............................................. ...............................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/qdl129.xpm b/pixmaps/qdl129.xpm new file mode 100644 index 0000000..d54da4e --- /dev/null +++ b/pixmaps/qdl129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *qdl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".............................................................. ...............................................................", +"............................................................ .............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"................................. ................... ................... ..................................", +"................................ ................. ................. .................................", +"............................... ............... ............... ................................", +".............................. .............. .............. ...............................", +"............................. ............. ............. ..............................", +"............................. ............. ............. ..............................", +"............................ ............ ............ .............................", +"............................ ............. ............. .............................", +"............................ ............. ............. .............................", +"............................ .............. .............. .............................", +"........ ............... ............... ............... ............... .........", +"....... .............. ................. ................. .............. ........", +"...... ............. .................. .................. ............. .......", +"..... ............. ................... ................... ............. ......", +".... ............. .................... .................... ............. .....", +".... .............. .................... .................... .............. .....", +"... ................ .................... .................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................... ................... ................ ....", +"... ................ ................. ................. ................ ....", +".... ................ ................. ................. ................ .....", +".... ................ ................. ................. ................ .....", +"..... ................. ................ ................ ................. ......", +"...... .................. ................ ................ .................. .......", +"....... ................. ............... ............... ................. ........", +".......... ................. .............. .............. ................. ...........", +"........... ................ .............. .............. ................ ............", +"............ ................ .............. .............. ................ .............", +"............ ............... ............ ............ ............... .............", +"............ ............... ............ ............ ............... .............", +"............ .............. ............ ............ .............. .............", +"............ ............. ........... ........... ............. .............", +"............ ............. ........... ........... ............. .............", +"............. ............ .......... .......... ............ ..............", +"............. ............ ......... ......... ............ ..............", +"............. ........... ......... ......... ........... ..............", +"............. ........... ......... ......... ........... ..............", +"............. .......... ........ ........ .......... ..............", +"............. ......... ....... ....... ......... ..............", +".............. ......... ....... ....... ......... ...............", +".............. ........ ...... ...... ........ ...............", +".............. ........ ...... ...... ........ ...............", +".............. ....... ..... ..... ....... ...............", +".............. ....... .... .... ....... ...............", +".............. ..... .... .... ..... ...............", +"............... .... .... .... .... ................", +"............... .... ... ... .... ................", +"............... ... .. .. ... ................", +"............... ... .. .. ... ................", +"............... .. . . .. ................", +"............... .. . . .. ................", +"................ . . .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. ..................", +"................. ..................", +"................. ..................", +"................. ..................", +"................. ..................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +"................... ....................", +".................... .....................", +"..................... ......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXX XXXXXXXXXXXXX ...........................", +"........................... XXXXX XXXXX ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"............................ .............................", +"............................ .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXX XXXXXXXXXXX ..............................", +"............................ XXX XXX .............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +".......................... ...........................", +"......................... XX ..........................", +"......................... XXXX ..........................", +"........................ XXXX .........................", +"........................ XX .........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"....................... ........................", +"........................ .........................", +"......................... ..........................", +".......................... ...........................", +"............................ .............................", +"................................... ....................................", +".......................................... ...........................................", +"................................................... ....................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/qdl21.xpm b/pixmaps/qdl21.xpm new file mode 100644 index 0000000..277a01a --- /dev/null +++ b/pixmaps/qdl21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *qdl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"..... . . .....", +"..... . . .....", +". .. .. .. .. .", +". .. .. .. .. .", +". .. . . .. .", +".. . . . . ..", +".. . . . . ..", +"... ...", +"... ...", +"... ...", +"... ...", +".... XXXXXXXXX ....", +".... XX XX ....", +".... XXXXXXX ....", +"..... X X .....", +".... ....", +".... ....", +"..... .....", +"....................." +}; diff --git a/pixmaps/qdl25.xpm b/pixmaps/qdl25.xpm new file mode 100644 index 0000000..5fc2368 --- /dev/null +++ b/pixmaps/qdl25.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * qdl25[] = { +"25 25 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" . ", +" . ... . ", +" ... ... ... ", +" .. ... . ... .. ", +".... . . . ....", +".... .. ... .. ....", +" ... .. ... .. ... ", +" .. .. ... .. .. ", +" ... ... ... ... ... ", +" ... ... ... ... ... ", +" ... ........... ... ", +" ................... ", +" ................. ", +" ................. ", +" ................. ", +" ..XXXXXXXXXXX.. ", +" ............... ", +" .XXXXXXXXXXX. ", +" ..X.........X.. ", +" ..X............ ", +" ............... ", +" ............. ", +" ", +" "}; diff --git a/pixmaps/qdl29.xpm b/pixmaps/qdl29.xpm new file mode 100644 index 0000000..4b4f0d1 --- /dev/null +++ b/pixmaps/qdl29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *qdl29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"....... .... .... .......", +"...... .. .. ......", +".. .. ... ... .. ..", +". .. ..... ..... .. .", +". ... ... ... ... .", +".. .... ... ... .... ..", +"... ... ... ... ... ...", +"... .. .. .. ... ...", +"... . .. .. . ...", +"... . . . . ...", +"... ...", +".... ....", +".... ....", +".... ....", +".... ....", +"..... XXXXXXXXX .....", +"..... XXX XXX .....", +"...... ......", +"...... XXXXXXXXXXX ......", +"....... X X .......", +"...... X ......", +"...... ......", +"...... ......", +"........ ........", +".............................", +"............................." +}; diff --git a/pixmaps/qdl33.xpm b/pixmaps/qdl33.xpm new file mode 100644 index 0000000..5563618 --- /dev/null +++ b/pixmaps/qdl33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *qdl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"............... ...............", +".............. ..............", +"........ .... .... ........", +"....... .... .... .......", +".. ... ..... ..... ... ..", +". ... ..... ..... ... .", +". .... ..... ..... .... .", +".. ..... .... .... ..... ..", +"... .... .... .... .... ...", +"... .... ... ... .... ...", +".... ... .. .. ... ....", +".... .. .. .. .. ....", +".... .. . . .. ....", +".... . . . . ....", +".... . . ....", +"..... .....", +"..... .....", +"..... .....", +"..... .....", +"...... XXXXXXXXXXXXX ......", +"...... XX XX ......", +"....... .......", +"....... XXXXXXXXXXXXX .......", +"........ XX XX ........", +"....... .......", +"........ .......", +"...... ......", +"...... ......", +".......... ..........", +".................................", +"................................." +}; diff --git a/pixmaps/qdl37.xpm b/pixmaps/qdl37.xpm new file mode 100644 index 0000000..080137c --- /dev/null +++ b/pixmaps/qdl37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *qdl37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +"................. .................", +".......... ... ... ..........", +"......... .. .. .........", +"......... ... ... .........", +"... ..... ..... ..... ..... ...", +".. ..... ...... ...... ..... ..", +".. ..... .... .... ..... ..", +".. ..... .... .... ..... ..", +"... ..... .... .... ..... ...", +".... .... .... .... .... ....", +".... .... ... ... .... ....", +".... ... .. .. ... ....", +".... ... .. .. ... ....", +".... .. .. .. .. ....", +"..... .. . . .. .....", +"..... . . . . .....", +"..... .....", +"..... .....", +"..... .....", +"...... ......", +"...... ......", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXX .......", +"........ ........", +"........ ........", +"......... XXXXXXXXXXXXXXX .........", +"........ XX XX ........", +"........ ........", +"....... X .......", +"....... .......", +"........ ........", +"............. .............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/qdl40.xpm b/pixmaps/qdl40.xpm new file mode 100644 index 0000000..5502adc --- /dev/null +++ b/pixmaps/qdl40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *qdl40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"................... ..................", +"........... .... .... ..........", +".......... ... ... .........", +".......... ... ... .........", +".. ..... .... .... ..... .", +". ..... ...... ...... ..... ", +". ...... ....... ....... ...... ", +". ...... ..... ..... ...... ", +".. ....... ..... ..... ....... .", +".... ...... .... .... ...... ...", +".... ...... .... .... ...... ...", +".... ..... .... .... ..... ...", +".... ... .. .. ... ...", +"..... ... .. .. ... ....", +"..... .. .. .. .. ....", +"..... .. . . .. ....", +"..... . . . . ....", +"..... ....", +"..... ....", +"..... .....", +"...... .....", +"...... .....", +"....... ......", +"........ XXXXXXXXXXXXX .......", +"........ XXXXX XXXXX .......", +"......... ........", +"......... ........", +"......... XXXXXXXXXXXXX ........", +".......... XXX XXX .........", +"......... ........", +"........ .......", +"......... .......", +"....... ......", +"........ .......", +".............. .............", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/qdl45.xpm b/pixmaps/qdl45.xpm new file mode 100644 index 0000000..785fcec --- /dev/null +++ b/pixmaps/qdl45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *qdl45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +"..................... .....................", +"........... ...... ...... ...........", +".......... ..... ..... ..........", +".......... ..... ..... ..........", +".......... ...... ...... ..........", +".. ..... ........ ........ ..... ..", +". ..... ......... ......... ..... .", +". ..... ....... ....... ..... .", +". ..... ....... ....... ..... .", +".. ...... ....... ....... ...... ..", +"... ....... ...... ...... ....... ...", +".... ...... ..... ..... ...... ....", +".... ...... ..... ..... ...... ....", +".... ..... .... .... ..... ....", +".... .... .... .... .... ....", +"..... ... .... .... ... .....", +"..... ... .. .. ... .....", +"..... .. .. .. .. .....", +"..... .. .. .. .. .....", +"..... . . . . .....", +"..... . . . . .....", +"..... .....", +"..... .....", +"...... ......", +"...... ......", +"...... ......", +"....... .......", +"........ XXXXXXXXXXXXXXX ........", +"......... XXXXX XXXXX .........", +"......... .........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXX XXX ..........", +"......... .........", +"......... .........", +"......... ........", +"....... .......", +"....... .......", +"........ ........", +"............... ...............", +".............................................", +"............................................." +}; diff --git a/pixmaps/qdl49.xpm b/pixmaps/qdl49.xpm new file mode 100644 index 0000000..bfe713f --- /dev/null +++ b/pixmaps/qdl49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *qdl49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"........... ....... ....... ...........", +".......... ...... ...... ..........", +".......... ...... ...... ..........", +".......... ....... ....... ..........", +".. ..... ......... ......... ..... ..", +". ..... .......... .......... ..... .", +". ...... ........ ........ ...... .", +". ...... ........ ........ ...... .", +".. ....... ........ ........ ....... ..", +"... ........ ....... ....... ........ ...", +".... ....... ....... ....... ....... ....", +"..... ...... ..... ..... ...... .....", +"..... ...... ..... ..... ...... .....", +"..... ..... ..... ..... ..... .....", +"..... ..... .... .... ..... .....", +"..... .... .... .... .... .....", +"..... ... .. .. ... .....", +"...... ... .. .. ... ......", +"...... .. .. .. .. ......", +"...... .. . . .. ......", +"...... . . ......", +"...... ......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"......... .........", +"......... XXXXXXXXXXXXXXXXX .........", +".......... XXXXXX XXXXXX ..........", +".......... ..........", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXX XXX ...........", +".......... ..........", +".......... ..........", +"......... .........", +"........ ........", +"........ ........", +".......... ..........", +"................ ................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/qdl54.xpm b/pixmaps/qdl54.xpm new file mode 100644 index 0000000..8aa9632 --- /dev/null +++ b/pixmaps/qdl54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *qdl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +".......................... ..........................", +"........................ ........................", +"............. ..... ..... .............", +"............ .... .... ............", +"............ .... .... ............", +"............ ..... ..... ............", +"... .... ...... ...... .... ...", +".. ... ....... ....... ... ..", +".. .... ....... ....... .... ..", +".. ...... ....... ....... ...... ..", +".. ...... ....... ....... ...... ..", +".. ....... ...... ...... ....... ..", +"... ....... ...... ...... ....... ...", +"..... ....... ..... ..... ....... .....", +"..... ...... .... .... ...... .....", +"...... ..... .... .... ..... ......", +"...... .... .... .... .... ......", +"...... ... ... ... ... ......", +"...... ... .. .. ... ......", +"...... .. . . .. ......", +"....... .. . . .. .......", +"....... . . . . .......", +"....... . . .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +".......... XXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXX XXXXXXX ...........", +"........... ...........", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXX XXXXXX ............", +"........... ...........", +"........... ...........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"........... ...........", +".................. ..................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/qdl58.xpm b/pixmaps/qdl58.xpm new file mode 100644 index 0000000..56ef0b2 --- /dev/null +++ b/pixmaps/qdl58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *qdl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +".............. ....... ....... ..............", +"............. ...... ...... .............", +"............. ..... ..... .............", +"............. ..... ..... .............", +".... ....... ...... ...... ....... ....", +".. ..... ....... ....... ..... ..", +". ..... ........ ........ ..... .", +". ....... ........ ........ ....... .", +". ....... ........ ........ ....... .", +". ....... ........ ........ ....... .", +".. ........ ...... ...... ........ ..", +"..... ........ ...... ...... ........ .....", +"..... ....... ..... ..... ....... .....", +"..... ....... ..... ..... ....... .....", +"..... ..... .... .... ..... .....", +"..... .... ... ... .... .....", +"...... .... ... ... .... ......", +"...... ... ... ... ... ......", +"...... ... . . ... ......", +"...... .. . . .. ......", +"...... . . . . ......", +"....... . . .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +".......... XXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXX XXXXXXX ............", +"............ ............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXX XXXXXXX .............", +"............. .............", +"............ ............", +"............ ............", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............. .............", +".................... ....................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/qdl64.xpm b/pixmaps/qdl64.xpm new file mode 100644 index 0000000..c3276cd --- /dev/null +++ b/pixmaps/qdl64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *qdl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +".................. ........ ........ ..................", +"................ ...... ...... ................", +"............... ..... ..... ...............", +"............... ..... ..... ...............", +"............... ...... ...... ...............", +"..... ........ ........ ........ ........ .....", +"... ....... ........ ........ ....... ...", +".. ....... ......... ......... ....... ..", +".. ........ ......... ......... ........ ..", +".. ........ ......... ......... ........ ..", +".. ........ ........ ........ ........ ..", +"... ........ ....... ....... ........ ...", +".... ........ ....... ....... ........ ....", +"...... ........ ...... ...... ........ ......", +"...... ....... ...... ...... ....... ......", +"...... ....... ...... ...... ....... ......", +"...... ...... .... .... ...... ......", +"....... ...... .... .... ...... .......", +"....... ..... .... .... ..... .......", +"....... ..... ... ... ..... .......", +"....... .... ... ... .... .......", +"....... .... .. .. .... .......", +"....... ... . . ... .......", +"....... .. . . .. .......", +"........ . . . . ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......... .........", +"......... .........", +"......... .........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXX XXXXXXX .............", +"............. .............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXX XXXXXX ...............", +".............. ..............", +".............. ..............", +"............. XXX .............", +"............. XXX .............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"................. ................", +"........................ ........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/qdl72.xpm b/pixmaps/qdl72.xpm new file mode 100644 index 0000000..46307bd --- /dev/null +++ b/pixmaps/qdl72.xpm @@ -0,0 +1,78 @@ +/* XPM */ +static char * qdl72[] = { +"72 72 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" .... ", +" ........ ", +" ... .......... ... ", +" ....... .......... ....... ", +" ......... .......... ......... ", +" ......... .......... ......... ", +" ......... .......... ......... ", +" ......... ........ ......... ", +" ... ......... .... ......... ... ", +" ....... ....... .... ....... ....... ", +"......... ..... .... ..... .........", +"......... ... .... ... .........", +"......... ... .... ... .........", +"......... .... .... .... .........", +"......... .... ...... .... .........", +" ....... .... ...... .... ....... ", +" ...... ..... ...... ..... ...... ", +" ... ..... ...... ..... ... ", +" .... ..... ...... ..... .... ", +" .... ...... ........ ...... .... ", +" ..... ...... ........ ...... ..... ", +" ..... ........ ........ ........ ..... ", +" ..... ........ ........ ........ ..... ", +" ...... ........ ........ ........ ...... ", +" ...... ......... .......... ......... ...... ", +" ....... ......... .......... ......... ....... ", +" ....... ......... .......... ......... ....... ", +" ....... .......... .......... .......... ....... ", +" ........ .......... .......... .......... ........ ", +" ........ ........... ............ ........... ........ ", +" ......... ........... ............ ........... ......... ", +" ......... ........... ............ ........... ......... ", +" .......... .................................... .......... ", +" ......... .................................... ......... ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ........................................................ ", +" ...................................................... ", +" ...................................................... ", +" ...................................................... ", +" .................................................... ", +" .................................................. ", +" ............XXXXXXXXXXXXXXXXXXXXXXXX............ ", +" ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.... ", +" ..XXXXXXXXXX....................XXXXXXXXXX.. ", +" ...X....................................X... ", +" .......................................... ", +" .......................................... ", +" .......................................... ", +" .........XXXXXXXXXXXXXXXXXXXXXXXX......... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXX....................XXXXXXXX.. ", +" .......................................... ", +" .......................................... ", +" ............................................ ", +" .............................................. ", +" .XX........................................... ", +" ................................................ ", +" ................................................ ", +" ................................................ ", +" ................................................ ", +" ............................................ ", +" .................................. ", +" .................... ", +" ", +" ", +" "}; diff --git a/pixmaps/qdl80.xpm b/pixmaps/qdl80.xpm new file mode 100644 index 0000000..86370d3 --- /dev/null +++ b/pixmaps/qdl80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *qdl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... ...................................", +"..................... ........... ........... .....................", +"................... ......... ......... ...................", +".................. ........ ........ ..................", +".................. ........ ........ ..................", +".................. ......... ......... ..................", +".................. .......... .......... ..................", +"...... ........ ............ ............ ........ ......", +".... ....... ............ ............ ....... ....", +"... ........ ............. ............. ........ ...", +"... ......... ............. ............. ......... ...", +"... ......... ............. ............. ......... ...", +"... ......... ............ ............ ......... ...", +"... ......... ........... ........... ......... ...", +".... .......... ........... ........... .......... ....", +"..... ........... ........... ........... ........... .....", +"........ ........... .......... .......... ........... ........", +"........ .......... ......... ......... .......... ........", +"........ .......... ........ ........ .......... ........", +"........ ......... ........ ........ ......... ........", +"......... ........ ........ ........ ........ .........", +"......... ....... ...... ...... ....... .........", +"......... ....... ...... ...... ....... .........", +"......... ...... ...... ...... ...... .........", +"......... ..... ..... ..... ..... .........", +"......... ..... ..... ..... ..... .........", +".......... .... .... .... .... ..........", +".......... .... ... ... .... ..........", +".......... ... ... ... ... ..........", +".......... ... ... ... ... ..........", +".......... .. . . .. ..........", +".......... .. . . .. ..........", +"........... . . . . ...........", +"........... . . ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"............. .............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXX XXXXXXXXXXXX ................", +"................. XXXXX XXXXX .................", +"................. .................", +"................. .................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXX XXXXXXXXX ..................", +".................. ..................", +"................. .................", +"................ ................", +"................ ................", +"............... XX ...............", +".............. X ..............", +".............. ..............", +".............. ..............", +"............... ...............", +".................. .................", +"........................ ........................", +"............................... ...............................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/qdl87.xpm b/pixmaps/qdl87.xpm new file mode 100644 index 0000000..1cbf07e --- /dev/null +++ b/pixmaps/qdl87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *qdl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................... ............. ............. .......................", +"..................... .......... .......... .....................", +".................... ......... ......... ....................", +".................... ......... ......... ....................", +"................... ......... ......... ...................", +"................... ......... ......... ...................", +"................... .......... .......... ...................", +"....... .......... ............. ............. .......... .......", +"..... ........ ............ ............ ........ .....", +".... ........ ............. ............. ........ ....", +".... .......... ............. ............. .......... ....", +"... .......... ............. ............. .......... ...", +"... .......... ............. ............. .......... ...", +"... .......... ........... ........... .......... ...", +".... ........... ........... ........... ........... ....", +".... ........... ........... ........... ........... ....", +"..... ............ .......... .......... ............ .....", +"....... ............ .......... .......... ............ .......", +"......... ........... ......... ......... ........... .........", +"......... ........... ........ ........ ........... .........", +"......... .......... ........ ........ .......... .........", +"......... ......... ........ ........ ......... .........", +"......... ........ ....... ....... ........ .........", +"......... ........ ...... ...... ........ .........", +".......... ....... ...... ...... ....... ..........", +".......... ...... ..... ..... ...... ..........", +".......... ...... ..... ..... ...... ..........", +".......... ..... ..... ..... ..... ..........", +".......... ..... ... ... ..... ..........", +"........... .... ... ... .... ...........", +"........... ... .. .. ... ...........", +"........... ... .. .. ... ...........", +"........... .. .. .. .. ...........", +"........... .. .. ...........", +"........... . . ...........", +"............ . . ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +".................. XXXXX XXXXX ..................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXX XXXXXXXXXXXX ....................", +".................... XXXXX XXXXX ....................", +"................... ...................", +"................... ...................", +"................... X ...................", +".................. XXX ..................", +".................. XXX ..................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +".................. ..................", +".................... ....................", +"......................... .........................", +"................................. .................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/qdl95.xpm b/pixmaps/qdl95.xpm new file mode 100644 index 0000000..b06603b --- /dev/null +++ b/pixmaps/qdl95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *qdl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +"............................................ ............................................", +"........................................... ...........................................", +"......................... .............. .............. .........................", +"....................... ........... ........... .......................", +"...................... .......... .......... ......................", +"...................... .......... .......... ......................", +"..................... ......... ......... .....................", +"..................... .......... .......... .....................", +"..................... .......... .......... .....................", +"..................... ........... ........... .....................", +"....... ........... .............. .............. ........... .......", +"..... ......... ............. ............. ......... .....", +".... ......... .............. .............. ......... ....", +".... ........... ............... ............... ........... ....", +"... ........... ............... ............... ........... ...", +"... ........... .............. .............. ........... ...", +"... ........... ............. ............. ........... ...", +"... ........... ............. ............. ........... ...", +".... ............ ............. ............. ............ ....", +".... ............ ............ ............ ............ ....", +"..... ............. ........... ........... ............. .....", +"....... ............. ........... ........... ............. .......", +"......... ............ .......... .......... ............ .........", +"......... ............ .......... .......... ............ .........", +".......... .......... ......... ......... .......... ..........", +".......... ......... ........ ........ ......... ..........", +".......... ......... ........ ........ ......... ..........", +".......... ........ ....... ....... ........ ..........", +".......... ........ ....... ....... ........ ..........", +".......... ....... ...... ...... ....... ..........", +"........... ....... ..... ..... ....... ...........", +"........... ...... ..... ..... ...... ...........", +"........... ..... ..... ..... ..... ...........", +"........... ..... .... .... ..... ...........", +"........... .... ... ... .... ...........", +"............ .... ... ... .... ............", +"............ ... .. .. ... ............", +"............ .. .. .. .. ............", +"............ .. . . .. ............", +"............ . . ............", +"............ . . ............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. ..............", +".............. ..............", +".............. ..............", +"............... ...............", +"................ ................", +"................ ................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ....................", +".................... XX XX ....................", +".................... ....................", +"..................... .....................", +"..................... .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXX XXXXXXXXXXXXXX ......................", +"...................... XXXXX XXXXX ......................", +"..................... .....................", +"..................... .....................", +".................... ....................", +".................... XX ....................", +"................... XXX ...................", +"................... XX ...................", +".................. ..................", +".................. ..................", +".................. ..................", +"................... ...................", +".................... ....................", +"...................... ......................", +".............................. ..............................", +"..................................... .....................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/qld108.xpm b/pixmaps/qld108.xpm new file mode 100644 index 0000000..c607f2a --- /dev/null +++ b/pixmaps/qld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *qld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"................................................ XXXXX .................................................", +"........................... ............... XXXXXXX ............... ............................", +"......................... ............. XXXXXXX ............. ..........................", +"........................ ............ XXXXXXX ............ .........................", +"........................ XXXXX ............ XXXXXXX ............ XXXXX .........................", +"....................... XXXXXXX ............ XXXXX ............ XXXXXXX ........................", +"....................... XXXXXXX ............ XXX ............ XXXXXXX ........................", +"....................... XXXXXXX ............. ............. XXXXXXX ........................", +"....................... XXXXXXX .............. .............. XXXXXXX ........................", +"........................ XXXXX ................. ................. XXXXX .........................", +"...... ............. XX ................. ................. XX ............. .......", +".... ............ ................. ................. ............ .....", +"... ............ .................. .................. ............ ....", +"... XXXXX ............... ................... ................... ............... XXXXX ....", +".. XXXXXXX .............. .................. .................. .............. XXXXXXX ...", +".. XXXXXXX .............. ................. X ................. .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +"... XXXXX ............... ............... X ............... ............... XXXXX ....", +"... ............... .............. XXX .............. ............... ....", +".... ................ .............. XXX .............. ................ .....", +"...... ............... XX ............. XXX ............. XX ............... .......", +"......... ............... XX ............. XXX ............. XX ............... ..........", +"......... .............. XX ............. XXX ............. XX .............. ..........", +".......... ............. XXX ........... XXXXX ........... XXX ............. ...........", +".......... ............. XXX ........... XXXXX ........... XXX ............. ...........", +".......... ............ XXXX .......... XXXXX .......... XXXX ............ ...........", +".......... ............ XXXX .......... XXXXX .......... XXXX ............ ...........", +".......... X ........... XXXX .......... XXXXX .......... XXXX ........... X ...........", +".......... X ........... XXXXX ........ XXXXXXX ........ XXXXX ........... X ...........", +"........... X .......... XXXXX ........ XXXXXXX ........ XXXXX .......... X ............", +"........... X ......... XXXXX ........ XXXXXXX ........ XXXXX ......... X ............", +"........... XX ......... XXXXXX ....... XXXXXXX ....... XXXXXX ......... XX ............", +"........... XXX ........ XXXXXX ...... XXXXXXXXX ...... XXXXXX ........ XXX ............", +"........... XXX ........ XXXXXX ...... XXXXXXXXX ...... XXXXXX ........ XXX ............", +"............ XXX ....... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ....... XXX .............", +"............ XXX ....... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ....... XXX .............", +"............ XXXX ...... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ...... XXXX .............", +"............ XXXX ...... XXXXXXXX ... XXXXXXXXXXX ... XXXXXXXX ...... XXXX .............", +"............ XXXXX ..... XXXXXXXX ... XXXXXXXXXXX ... XXXXXXXX ..... XXXXX .............", +"............ XXXXX .... XXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXX .... XXXXX .............", +"............. XXXXX .... XXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXX .... XXXXX ..............", +"............. XXXXXX .. XXXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXXX .. XXXXXX ..............", +"............. XXXXXX .. XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX .. XXXXXX ..............", +"............. XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX ..............", +"............. XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX ..............", +"............. XXXXXXXX XXXXXXXXXXXX XXXXX XXXXX XXXXXXXXXXXX XXXXXXXX ..............", +".............. XXXXXXX XXXXX XXXXX XXXX XXXX XXXXX XXXXX XXXXXXX ...............", +".............. XXXXXXXX XXXX XXX XX XX XXX XXXX XXXXXXXX ...............", +".............. XXXXXXXXX XXX X XXX XXXXXXXXX ...............", +".............. XXXX XX X XXXXX X XX XXXX ...............", +".............. XXX XXXX XXXXXXXXXXX XXXX XXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXX XXXXXXXX .....................", +"..................... X X ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"........................ .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXX XXXXXXXXX .......................", +"...................... XXXX XXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................... ............................", +"................................. ..................................", +".......................................... ...........................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/qld116.xpm b/pixmaps/qld116.xpm new file mode 100644 index 0000000..0c0939d --- /dev/null +++ b/pixmaps/qld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *qld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"............................... ................. XXXXX ................. ................................", +"............................. .............. XXXXXXX .............. ..............................", +"............................ ............. XXXXXXX ............. .............................", +"........................... XXXX ............. XXXXXXX ............. XXXX ............................", +"........................... XXXXXX ............ XXXXXXX ............ XXXXXX ............................", +".......................... XXXXXXX ............ XXXXXXX ............ XXXXXXX ...........................", +".......................... XXXXXXX ............. XXXXX ............. XXXXXXX ...........................", +".......................... XXXXXXX ............. ............. XXXXXXX ...........................", +".......................... XXXXXXX .............. .............. XXXXXXX ...........................", +"......... .............. XXXXX ................. ................. XXXXX .............. ..........", +"....... ............ X .................. .................. X ............ ........", +"...... ............ .................. .................. ............ .......", +"..... XXXX ............. ................... ................... ............. XXXX ......", +"..... XXXXXX ............... ................... ................... ............... XXXXXX ......", +".... XXXXXXX ............... ................... ................... ............... XXXXXXX .....", +".... XXXXXXX ............... .................. X .................. ............... XXXXXXX .....", +".... XXXXXXX ............... ................. X ................. ............... XXXXXXX .....", +".... XXXXXXX ............... ................. X ................. ............... XXXXXXX .....", +"..... XXXXX ................ ................. X ................. ................ XXXXX ......", +"..... XXX ................ ................ X ................ ................ XXX ......", +"...... ................. ............... XXX ............... ................. .......", +"....... ................. ............... XXX ............... ................. ........", +"......... ................. X .............. XXX .............. X ................. ..........", +"........... ............... XX .............. XXX .............. XX ............... ............", +"............ ............... XX ............. XXXXX ............. XX ............... .............", +"............ .............. XXX ............ XXXXX ............ XXX .............. .............", +"............ .............. XXX ............ XXXXX ............ XXX .............. .............", +"............ ............. XXX ............ XXXXX ............ XXX ............. .............", +"............ ............. XXXX ........... XXXXX ........... XXXX ............. .............", +"............ X ............ XXXX .......... XXXXXXX .......... XXXX ............ X .............", +"............. ........... XXXX .......... XXXXXXX .......... XXXX ........... ..............", +"............. X ........... XXXXX ......... XXXXXXX ......... XXXXX ........... X ..............", +"............. XX .......... XXXXX ......... XXXXXXX ......... XXXXX .......... XX ..............", +"............. XX .......... XXXXX ........ XXXXXXXXX ........ XXXXX .......... XX ..............", +"............. XXX ......... XXXXXX ....... XXXXXXXXX ....... XXXXXX ......... XXX ..............", +"............. XXX ......... XXXXXX ....... XXXXXXXXX ....... XXXXXX ......... XXX ..............", +".............. XXX ........ XXXXXX ....... XXXXXXXXX ....... XXXXXX ........ XXX ...............", +".............. XXX ........ XXXXXXX ...... XXXXXXXXX ...... XXXXXXX ........ XXX ...............", +".............. XXXX ....... XXXXXXX ..... XXXXXXXXXXX ..... XXXXXXX ....... XXXX ...............", +".............. XXXX ....... XXXXXXX ..... XXXXXXXXXXX ..... XXXXXXX ....... XXXX ...............", +".............. XXXXX ...... XXXXXXXX .... XXXXXXXXXXX .... XXXXXXXX ...... XXXXX ...............", +".............. XXXXX ..... XXXXXXXX .... XXXXXXXXXXX .... XXXXXXXX ..... XXXXX ...............", +"............... XXXXX ..... XXXXXXXX ... XXXXXXXXXXXXX ... XXXXXXXX ..... XXXXX ................", +"............... XXXXXX .... XXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXX .... XXXXXX ................", +"............... XXXXXX ... XXXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXXX ... XXXXXX ................", +"............... XXXXXXX .. XXXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXXX .. XXXXXXX ................", +"............... XXXXXXX .. XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX .. XXXXXXX ................", +"............... XXXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXXX ................", +"................ XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX .................", +"................ XXXXXXXX XXXXXXXXXXXX XXXXXX XXXXXX XXXXXXXXXXXX XXXXXXXX .................", +"................ XXXXXXXX XXXXX XXXXX XXXX XXXX XXXXX XXXXX XXXXXXXX .................", +"................ XXXXXXXXX XXXX XXX XX XX XXX XXXX XXXXXXXXX .................", +"................ XXXXXXXXXX XXX XXX XXX XXXXXXXXXX .................", +"................ XXXX XX X XXXXXXX X XX XXXX .................", +"................. XX XXXX XXXXXXXXXXXXX XXXX XX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXX XXXXXXXX ........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXX XXXXXXX ............................", +"........................... X X ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXX XXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".............................. ...............................", +".................................... .....................................", +"............................................. ..............................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/qld129.xpm b/pixmaps/qld129.xpm new file mode 100644 index 0000000..8e70950 --- /dev/null +++ b/pixmaps/qld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *qld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +".................................. .................. XXXX .................. ...................................", +"................................ ............... XXXXXX ............... .................................", +"............................... .............. XXXXXXXX .............. ................................", +".............................. ............. XXXXXXXX ............. ...............................", +"............................. XXX ............. XXXXXXXX ............. XXX ..............................", +"............................. XXXXXX ............ XXXXXX ............ XXXXXX ..............................", +"............................ XXXXXXX ............. XXXXXX ............. XXXXXXX .............................", +"............................ XXXXXXXX ............. XX ............. XXXXXXXX .............................", +"............................ XXXXXXXX .............. .............. XXXXXXXX .............................", +"............................ XXXXXX ............... ............... XXXXXX .............................", +"............................. XXXXXX ................. ................. XXXXXX ..............................", +"........ ............... XX ................... ................... XX ............... .........", +"...... .............. ................... ................... .............. .......", +"..... .............. .................... .................... .............. ......", +".... .............. ..................... ..................... .............. .....", +"... XXXX ................ ..................... ..................... ................ XXXX ....", +"... XXXXXXX ................ .................... .................... ................ XXXXXXX ....", +"... XXXXXXXX ................ .................... .................... ................ XXXXXXXX ....", +"... XXXXXXXX ................ ................... ................... ................ XXXXXXXX ....", +"... XXXXXXXX ................ ................... ................... ................ XXXXXXXX ....", +"... XXXXXXX ................ ................... ................... ................ XXXXXXX ....", +"... XXXXX ................. ................. ................. ................. XXXXX ....", +".... ................. ................. XX ................. ................. .....", +"..... .................. ................. XX ................. .................. ......", +"...... ................... ................ XX ................ ................... .......", +"........ .................. ................ XX ................ ................... .........", +"........... ................. X ............... XX ............... ................. ............", +"........... ................. X .............. XXXX .............. X ................. ............", +"............ ................ XX .............. XXXX .............. XX ................ .............", +"............ ................ XX ............. XXXX ............. XX ................ .............", +"............ ............... XXX ............ XXXX ............ XXX ............... .............", +"............ .............. XXX ............ XXXXXX ............ XXX .............. .............", +"............ .............. XXX ........... XXXXXX ........... XXX .............. .............", +"............ ............. XXXX ........... XXXXXX ........... XXXX ............. .............", +"............. ............. XXXX ........... XXXXXX ........... XXXX ............. ..............", +"............. ............ XXXX ......... XXXXXX ......... XXXX ............ ..............", +"............. X ............ XXXXX ......... XXXXXXXX ......... XXXXX ............ X ..............", +"............. X ........... XXXXX ......... XXXXXXXX ......... XXXXX ........... X ..............", +"............. XX .......... XXXXX ........ XXXXXXXX ........ XXXXX .......... XX ..............", +"............. XX .......... XXXXXX ........ XXXXXXXX ........ XXXXXX .......... XX ..............", +".............. XX ......... XXXXXX ....... XXXXXXXX ....... XXXXXX ......... XX ...............", +".............. XXX ......... XXXXXX ...... XXXXXXXXXX ...... XXXXXX ......... XXX ...............", +".............. XXX ........ XXXXXXX ...... XXXXXXXXXX ...... XXXXXXX ........ XXX ...............", +".............. XXXX ....... XXXXXXX ...... XXXXXXXXXX ...... XXXXXXX ....... XXXX ...............", +".............. XXXX ....... XXXXXXX .... XXXXXXXXXX .... XXXXXXX ....... XXXX ...............", +"............... XXXX ...... XXXXXXXX .... XXXXXXXXXXXX .... XXXXXXXX ...... XXXX ................", +"............... XXXXX ...... XXXXXXXX .... XXXXXXXXXXXX .... XXXXXXXX ...... XXXXX ................", +"............... XXXXX ..... XXXXXXXX ... XXXXXXXXXXXX ... XXXXXXXX ..... XXXXX ................", +"............... XXXXXX ..... XXXXXXXXX ... XXXXXXXXXXXX ... XXXXXXXXX ..... XXXXXX ................", +"............... XXXXXX ... XXXXXXXXX .. XXXXXXXXXXXX .. XXXXXXXXX .... XXXXXX ................", +"............... XXXXXX .. XXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXX .. XXXXXX ................", +"................ XXXXXXX .. XXXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXXXX .. XXXXXXX .................", +"................ XXXXXXX . XXXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXXXX . XXXXXXX .................", +"................ XXXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXXX .................", +"................ XXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXXXXX XXXXXX XXXXXX XXXXXXXXXXXX XXXXXXXXX .................", +"................. XXXXXXXXX XXXXX XXXX XXXX XXXX XXXX XXXXX XXXXXXXXX ..................", +"................. XXXXXXXXXX XXX XX XX XXX XXXXXXXXXX ..................", +"................. XXXXX XXX XXX XXXXX ..................", +"................. XXXX XX XXXX ..................", +"................. XX XX XXXXXX XX XX ..................", +"................. XXXXXX XXXXXXXXXXXXXX XXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX ........................", +"........................ XXXXX XXXXX .........................", +"......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXX XXXXXXXX .............................", +"............................. XX XX ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXX XXXXXXXXXX ............................", +".......................... XX XX ...........................", +".......................... ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ...........................", +".................................. ...................................", +"......................................... ..........................................", +".................................................. ...................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/qld21.xpm b/pixmaps/qld21.xpm new file mode 100644 index 0000000..0de41ca --- /dev/null +++ b/pixmaps/qld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *qld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"..... . X . .....", +"..... X . X . X .....", +". . X .. .. X . .", +". X .. .. X .. .. X .", +". X . X . X . X . X .", +". X . X . X . X . X .", +". X . X . X . X . X .", +".. X XXX XXX XXX X ..", +".. XXXXXXXXXXXXXXX ..", +"... XXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX ...", +".... XXXXXXXXXXX ....", +".... X X ....", +".... XXXXXXXXXXX ....", +".... X X ....", +".... XXXXXXXXXXX ....", +".... XXXXXXXXX ....", +"..... .....", +"....................." +}; diff --git a/pixmaps/qld25.xpm b/pixmaps/qld25.xpm new file mode 100644 index 0000000..7504b90 --- /dev/null +++ b/pixmaps/qld25.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * qld25[] = { +"25 25 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . . . ", +" .X. .X. .X. ", +" .. ... ... ... .. ", +".XX. . . . .XX.", +".X.. .. . .. ..X.", +" ... .. .X. .. ... ", +" .. .. .X. .. .. ", +" .X. .X. .X. .X. .X. ", +" .X. .X. .X. .X. .X. ", +" .X. .X. .X. .X. .X. ", +" .XX..XX.XXX.XX..XX. ", +" .XX...........XX. ", +" ....XX.XXXXXXX... ", +" .XXXXXXXXXXXXXXX. ", +" ............... ", +" .XXXXXXXXXXXXX. ", +" ............. ", +" .XXXXXXXXXXX. ", +" ............... ", +" .XXXXXXXXXXXXX. ", +" ............. ", +" ", +" "}; diff --git a/pixmaps/qld29.xpm b/pixmaps/qld29.xpm new file mode 100644 index 0000000..2ecf237 --- /dev/null +++ b/pixmaps/qld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *qld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"........ .... X .... ........", +"....... X ... X ... X .......", +".. ... X .... .... X ... ..", +". XX ... ..... ..... ... XX .", +". XX ... .... .... ... XX .", +".. .... ... X ... .... ..", +"... ... ... X ... ... ...", +"... ... X .. X .. X ... ...", +"... X . XX .. X .. XX . X ...", +"... X . XXX . X . XXX . X ...", +"... XX XXX XXX XXX XX ...", +".... X XXX XXX XXX X ....", +".... XX X X X X XX ....", +".... XXX X XXXX ....", +".... XXXXXXXXXXXXXXXXXXX ....", +"..... XXXX XXXX .....", +"...... XXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"....... X X .......", +"....... XXXXXXXXXXX .......", +"...... X X ......", +"...... XXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ......", +"........ ........", +".............................", +"............................." +}; diff --git a/pixmaps/qld33.xpm b/pixmaps/qld33.xpm new file mode 100644 index 0000000..4046c8a --- /dev/null +++ b/pixmaps/qld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *qld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"............... X ...............", +"........ ..... X ..... ........", +"....... XX ..... ..... XX .......", +".. ... X ..... ..... X ... ..", +". XX .... ...... ...... .... XX .", +". XX .... ..... X ..... .... XX .", +".. ..... .... X .... ..... ..", +"... .... .... X .... .... ...", +"... .... X ... X ... X .... ...", +".... ... X .. XXX .. X ... ....", +".... X .. X .. XXX .. X .. X ....", +".... X .. XX . XXX . XX .. X ....", +".... XX . XX . XXX . XX . XX ....", +".... XX . XX XXXXX XX . XX ....", +"..... XX X X X X XX .....", +"..... X X X XXXXXX X X X .....", +"..... X XXXXXXXXXXXXXX X .....", +"..... XXXXXXXXXXXXXXXXXXXXX .....", +"...... XXX XXX ......", +"...... XXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XX XX .......", +"........ XXXXXXXXXXXXX ........", +"....... XX XX .......", +"...... XXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ......", +".......... ..........", +".................................", +"................................." +}; diff --git a/pixmaps/qld37.xpm b/pixmaps/qld37.xpm new file mode 100644 index 0000000..7e4cc0b --- /dev/null +++ b/pixmaps/qld37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *qld37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +"................. .................", +".......... ... XXX ... ..........", +"......... XXX .. XXX .. XXX .........", +"......... XXX ... ... XXX .........", +"... ..... ..... ..... ..... ...", +".. XX ..... ...... ...... ..... XX ..", +".. XX ..... ..... X ..... ..... XX ..", +".. X ..... .... X .... ..... X ..", +"... ..... X .... X .... ...... ...", +".... .... X .... X .... X .... ....", +".... .... XX ... X ... XX .... ....", +".... X ... XX .. XXX .. XX ... X ....", +".... X ... XX .. XXX .. XX ... X ....", +"..... X .. XX .. XXX .. XX .. X .....", +"..... X .. XXX . XXX . XXX .. X .....", +"..... X . XXXX . XXX . XXX .. X .....", +"..... XX XXXX XXXXX XXXX XX .....", +"..... XX XXXXX XXXXX XXXXX XX .....", +"..... X X X X X X X X .....", +"...... X XXXX XXX XXXXX X .....", +"...... XXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XX XX .......", +"........ XXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"......... XX XX .........", +"......... XXXXXXXXXXXXX .........", +"........ XXXX XXXX ........", +"........ XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXX ........", +"............ ............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/qld40.xpm b/pixmaps/qld40.xpm new file mode 100644 index 0000000..5f9b1e6 --- /dev/null +++ b/pixmaps/qld40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *qld40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"................... ..................", +"........... .... XXX .... ..........", +".......... XXX ... XXX ... XXX .........", +".......... XXX ... XXX ... XXX .........", +"... ...... X ..... ..... X ...... ..", +".. XX ...... ....... ....... ...... XX .", +".. XX ...... ....... ....... ...... XX .", +".. XX ...... ..... X ..... ...... XX .", +"... ....... ..... X ..... ....... ..", +"..... ...... ..... X ..... ...... ....", +"..... ...... X .... X .... X ...... ....", +"..... ..... X .... X .... X ..... ....", +"..... X ... XX ... XXX ... X .... X ....", +"..... X ... XXX .. XXX .. XXX ... X ....", +"..... XX .. XXX .. XXX .. XXX .. XX ....", +"..... XX .. XXX .. XXX .. XXX .. XX ....", +"...... XX . XXXX . XXX . XXXX . XX .....", +"...... XXX XXXX XXXXX XXXX XXX .....", +"...... XXX XXXX XXXXX XXXX XXX .....", +"...... XX X X X X X X XX .....", +"...... X XXXX XXX XXXXX X .....", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ XXXXX XXXXX .......", +"........ X XXXXXXXXXXXXX X .......", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXX XXXX ........", +".......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXX XXXX .......", +"........ XXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ XXXXXXXXXXXXX .......", +".............. .............", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/qld45.xpm b/pixmaps/qld45.xpm new file mode 100644 index 0000000..0b957cb --- /dev/null +++ b/pixmaps/qld45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *qld45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +"..................... .....................", +"........... ...... XXX ...... ...........", +".......... XXX ..... XXX ..... XXX ..........", +".......... XXX ..... XXX ..... XXX ..........", +".......... XXX ...... ...... XXX ..........", +".. ...... ........ ........ ...... ..", +". XXX ...... ......... ......... ...... XXX .", +". XXX ...... ....... X ....... ...... XXX .", +". XXX ...... ....... X ....... ...... XXX .", +".. X ....... ....... X ....... ....... X ..", +"... ....... X ...... X ...... X ....... ...", +".... ...... X ...... X ...... X ...... ....", +".... ...... X ..... XXX ..... X ...... ....", +".... X ..... XX .... XXX .... XX ..... X ....", +".... X ..... XX .... XXX .... XX ..... X ....", +"..... X ... XXX .... XXX .... XXX ... X .....", +"..... X ... XXXX .. XXXXX .. XXXX ... X .....", +"..... XX .. XXXX .. XXXXX .. XXXX .. XX .....", +"..... XX .. XXXX .. XXXXX .. XXXX .. XX .....", +"..... XXX . XXXXX . XXXXX . XXXXX . XXX .....", +"..... XXX . XXXXX . XXXXX . XXXXX . XXX .....", +"..... XXXX XXXXX XXX XXX XXXXX XXXX .....", +"...... XXX XX XX XX X XX XX XX XXX ......", +"...... XX X XX XXX XX X XX ......", +"...... X XXXXXXXXXXXXXXXXXXXXXX X ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXX XXXXXXX ........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XX XX ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXX XXXX .........", +"........ XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXX ........", +"............... ...............", +".............................................", +"............................................." +}; diff --git a/pixmaps/qld49.xpm b/pixmaps/qld49.xpm new file mode 100644 index 0000000..d02280d --- /dev/null +++ b/pixmaps/qld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *qld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"........... ....... XXX ....... ...........", +".......... XXXX ...... XXX ...... XXXX ..........", +".......... XXXX ...... XXX ...... XXXX ..........", +".......... XXXX ....... X ....... XXXX ..........", +".. ...... X ......... ......... X ...... ..", +". XXX ....... .......... .......... ....... XXX .", +". XXX ....... ........ X ........ ....... XXX .", +". XXX ....... ........ X ........ ....... XXX .", +".. X ........ ........ X ........ ........ X ..", +"... ........ X ....... X ....... X ........ ...", +".... ....... X ....... X ....... X ....... ....", +"..... ...... XX ..... XXX ..... XX ...... .....", +"..... ...... XX ..... XXX ..... XX ...... .....", +"..... X ..... XX ..... XXX ..... XX ..... X .....", +"..... X ..... XXX .... XXX .... XXX ..... X .....", +"..... XX .... XXX .... XXX .... XXX .... XX .....", +"..... XXX ... XXX ... XXXXX ... XXX ... XXX .....", +"...... XX ... XXXX .. XXXXX .. XXXX ... XX ......", +"...... XXX .. XXXX .. XXXXX .. XXXX .. XXX ......", +"...... XXX .. XXXXX . XXXXX . XXXXX .. XXX ......", +"...... XXXX . XXXXX . XXXXX . XXXXX . XXXX ......", +"...... XXXXX XXXXX XXX XXX XXXXX XXXXX ......", +"....... XXXX XX XX XX X XX XX XX XXXX .......", +"....... XX XX X XX XXX XX X XX XX .......", +"....... X XXXXXXXXXXXXXXXXXXX X .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXX XXXXXX .........", +".......... XXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXX XXX ...........", +"........... XXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXX XXXXX ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXXXXXXXXX ..........", +"................ ................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/qld54.xpm b/pixmaps/qld54.xpm new file mode 100644 index 0000000..dad7fc3 --- /dev/null +++ b/pixmaps/qld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *qld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................... .........................", +"........................ ........................", +"............. ...... XX ...... .............", +"............ ..... XX ..... ............", +"............ XXX ..... XX ..... XXX ............", +"............ XXX ..... ..... XXX ............", +"... .... XX ...... ...... XX .... ...", +".. ... ........ ........ ... ..", +".. XXX .... ........ ........ .... XXX ..", +".. XXX ...... ....... ....... ...... XXX ..", +".. XX ...... ....... ....... ...... XX ..", +".. ....... ...... ...... ....... ..", +"... ....... ...... ...... ....... ...", +"..... ....... ..... ..... ....... .....", +"...... ...... .... XX .... ...... ......", +"...... ...... X .... XX .... X ...... ......", +"...... ..... X .... XX .... X ..... ......", +"...... .... X ... XX ... X ..... ......", +"...... ... XXX ... XX ... XX ... ......", +"...... .. XXX .. XX .. XXX .. ......", +"....... X .. XXX . XXXX . XXX .. X .......", +"....... X . XXXX . XXXX . XXXX . X .......", +"....... XX . XXXX XXXX XXXX . XX .......", +"....... XX XXXXX XXXX XXXXX XX .......", +"....... XXX XXXXX XXXX XXXXX XXX .......", +"....... XX XX XX XX XX XX XX XX .......", +"........ XXX X X XXX ........", +"........ XX ........", +"........ XXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +".......... X X ..........", +"........... XXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXX XXXXX ............", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXX XXXXX ............", +"........... ...........", +"........... XXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXX ...........", +"............ ............", +"................... ...................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/qld58.xpm b/pixmaps/qld58.xpm new file mode 100644 index 0000000..86d1581 --- /dev/null +++ b/pixmaps/qld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *qld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +".............. ...... XX ...... ..............", +"............. ..... XXXX ..... .............", +"............. XXX ..... XXXX ..... XXX .............", +"............. XXX ..... ..... XXX .............", +".... ....... XXX ...... ...... XXX ....... ....", +".. ..... ........ ........ ..... ..", +". XX ..... ........ ........ ..... XX .", +". XXXX ....... ........ ........ ....... XXXX .", +". XXX ....... ........ ........ ....... XXX .", +".. ....... ........ ........ ....... ..", +"... ........ ...... ...... ........ ...", +"..... ........ ...... XX ...... ........ .....", +"..... ....... ...... XX ...... ....... .....", +"..... ....... ..... XX ..... ....... .....", +"..... ...... X ..... XX ..... X ...... .....", +"...... ..... X .... XX .... X ..... ......", +"...... X .... X ... XXXX ... X .... X ......", +"...... X ... XXX ... XXXX ... XXX ... X ......", +"...... XX ... XXX .. XXXX .. XXX ... XX ......", +"...... XX .. XXXX . XXXX . XXXX .. XX ......", +"...... XX .. XXXX . XXXXXX . XXXX .. XX ......", +"....... XX . XXXX XXXXXX XXXX . XX .......", +"....... XXX XXXXX XXXXXX XXXXX XXX .......", +"....... XXXX XXXXX XXXXXX XXXXX XXXX .......", +"....... XXXX XX XX XX XX XX XX XXXX .......", +"....... XXXX X X XXXX .......", +"........ X XXXX X ........", +"........ XXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXX XXXXXX .............", +"............. .............", +"............. XXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXX XXXXX ............", +"............ ............", +"........... XXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXX ...........", +"............. .............", +".................... ....................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/qld64.xpm b/pixmaps/qld64.xpm new file mode 100644 index 0000000..9347fe1 --- /dev/null +++ b/pixmaps/qld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *qld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +".................. ........ XX ........ ..................", +"................ ...... XXXX ...... ................", +"............... XX ..... XXXX ..... XX ...............", +"............... XXXX ..... XX ..... XXXX ...............", +"............... XXXX ...... ...... XXXX ...............", +"..... ........ XX ........ ........ XX ........ .....", +"... ....... ......... ......... ....... ...", +".. XX ....... .......... .......... ....... XX ..", +".. XXXX ........ ......... ......... ........ XXXX ..", +".. XXXX ........ ......... ......... ........ XXXX ..", +".. XX ........ ......... ......... ........ XX ..", +"... ......... ........ ........ ......... ...", +".... ........ ....... ....... ......... ....", +"...... ........ X ....... XX ....... ........ ......", +"...... ....... X ...... XX ...... X ....... ......", +"...... ....... XX ...... XX ...... XX ....... ......", +"...... ...... XX ..... XX ..... XX ...... ......", +"....... ...... XXX .... XX .... XXX ...... .......", +"....... ..... XXX .... XXXX .... XXX ..... .......", +"....... X ..... XXX ... XXXX ... XXX ..... X .......", +"....... X .... XXXX ... XXXX ... XXXX .... X .......", +"....... XX .... XXXX ... XXXX ... XXXX .... XX .......", +"....... X ... XXXX . XXXX . XXXX ... X .......", +"........ XX ... XXXXX . XXXXXX . XXXXX ... XX ........", +"........ XX . XXXXX . XXXXXX . XXXXX .. XX ........", +"........ XXX . XXXXXX XXXXXX XXXXX . XXX ........", +"........ XXX XXXXXXX XXXXXX XXXXXXX XXX ........", +"........ XXXX XXXXXXX XXXXXX XXXXXXX XXXX ........", +"........ XXXX XXX XX XX XX XX XXX XXXX ........", +"........ XXXX X X XXXX ........", +"......... X XX XXXX XX X .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ...........", +"............ ............", +"............. XXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXX XXXXX ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXX .............", +"................. ................", +"........................ ........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/qld72.xpm b/pixmaps/qld72.xpm new file mode 100644 index 0000000..54c93b5 --- /dev/null +++ b/pixmaps/qld72.xpm @@ -0,0 +1,78 @@ +/* XPM */ +static char * qld72[] = { +"72 72 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" .... ", +" ...... ", +" ... ...XX... ... ", +" ....... ..XXXX.. ....... ", +" ...XXX... ..XXXX.. ...XXX... ", +" ..XXXXX.. ..XXXX.. ..XXXXX.. ", +" ..XXXXX.. ...XX... ..XXXXX.. ", +" ..XXXXX.. ...... ..XXXXX.. ", +" ... ...XXX... .. ...XXX... ... ", +" ....... ....... .. ....... ....... ", +"...XXX... ... .... ... ...XXX...", +"..XXXXX.. ... .... ... ..XXXXX..", +"..XXXXX.. ... .... ... ..XXXXX..", +"..XXXXX.. .... .... .... ..XXXXX..", +"...XXX... .... .... .... ...XXX...", +" ....... .... ...... .... ....... ", +" ..... ..... ..XX.. ..... ..... ", +" ... ..X.. ..XX.. ..X.. ... ", +" .... ..X.. ..XX.. ..X.. .... ", +" .... ..X... ...XX... ...X.. .... ", +" ..... ..XX.. ..XXXX.. ..XX.. ..... ", +" ..... ..XX.. ..XXXX.. ..XX.. ..... ", +" ..X.. ..XX... ..XXXX.. ...XX.. ..X.. ", +" ..X... ..XXX.. ..XXXX.. ..XXX.. ...X.. ", +" ..XX.. ...XXX... ...XXXX... ...XXX... ..XX.. ", +" ..XX... ..XXXXX.. ..XXXXXX.. ..XXXXX.. ...XX.. ", +" ...XX.. ..XXXXX.. ..XXXXXX.. ..XXXXX.. ..XX... ", +" ..XX... ..XXXXX... ..XXXXXX.. ...XXXXX.. ...XX.. ", +" ..XXX.. ..XXXXXX.. ..XXXXXX.. ..XXXXXX.. ..XXX.. ", +" ..XXX... ..XXXXXX.. ...XXXXXX... ..XXXXXX.. ...XXX.. ", +" ..XXXX... ..XXXXXX... ..XXXXXXXX.. ...XXXXXX.. ...XXXX.. ", +" ..XXXXX.. ..XXXXXXX.. ..XXXXXXXX.. ..XXXXXXX.. ..XXXXX.. ", +" ...XXXX... ..XXXXXXX.....XXXXXXXX.....XXXXXXX.. ...XXXX... ", +" ..XXXXX.. ..XXXXXXXX....XXXXXXXX....XXXXXXXX.. ..XXXXX.. ", +" ..XXXXX.....XXXXXXXX....XXX..XXX....XXXXXXXX.....XXXXX.. ", +" ..XXXXXX....XXXX.XXX...XX......XX...XXX.XXXX....XXXXXX.. ", +" ..XXXXXX....XX............................XX....XXXXXX.. ", +" ..XXXX.XX...X...X........XXXXXX........X...X...XX.XXXX.. ", +" ...X...........XXXXXXXXXXXXXXXXXXXXXXXXXX...........X... ", +" .....X......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......X..... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXX......................XXXXXXXXXX... ", +" ...XX....................................XX... ", +" ...........XXXXXXXXXXXXXXXXXXXXXX........... ", +" ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.... ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXX....................XXXXXXXXX.. ", +" .......................................... ", +" ..........XXXXXXXXXXXXXXXXXXXX.......... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXX..................XXXXXXXXXX.. ", +" ...XXXX..............................XXXX... ", +" .............XXXXXXXXXXXXXXXXXX............. ", +" ........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX........ ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....... ", +" .............XXXXXXXXXXXXXXXXXXXX............. ", +" .................................. ", +" .................... ", +" ", +" ", +" "}; diff --git a/pixmaps/qld80.xpm b/pixmaps/qld80.xpm new file mode 100644 index 0000000..b4a7ed8 --- /dev/null +++ b/pixmaps/qld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *qld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +"..................... ........... XXXXXX ........... .....................", +"................... ......... XXXXXX ......... ...................", +".................. XXX ........ XXXXXX ........ XXX ..................", +".................. XXXXX ........ XXXX ........ XXXXX ..................", +".................. XXXXX ......... ......... XXXXX ..................", +".................. XXXXX .......... .......... XXXXX ..................", +"...... ......... XXX ............ ............ XXX ......... ......", +".... ........ ............ ............ ........ ....", +"... XXX ......... ............. ............. ......... XXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXX .......... ........... ........... .......... XXX ...", +".... ........... ........... XX ........... ........... ....", +"...... ........... ........... XX ........... ........... ......", +"........ ........... .......... XX .......... ........... ........", +"........ .......... X ......... XX ......... X .......... ........", +"........ .......... X ......... XXXX ......... X .......... ........", +"........ ......... X ........ XXXX ........ X ......... ........", +"......... ......... XX ........ XXXX ........ XX ......... .........", +"......... ........ XX ........ XXXX ........ XX ........ .........", +"......... X ........ XX ...... XXXX ...... XX ........ X .........", +"......... X ...... XXX ...... XXXXXX ...... XXX ....... X .........", +"......... XX ...... XXXX ...... XXXXXX ...... XXX ...... XX .........", +"......... X ..... XXXX ..... XXXXXX ..... XXXX ..... X .........", +".......... XX ..... XXXXX .... XXXXXX .... XXXXX ..... XX ..........", +".......... XX .... XXXXX ... XXXXXXXX ... XXXXX .... XX ..........", +".......... XXX ... XXXXXX ... XXXXXXXX ... XXXXXX ... XXX ..........", +".......... XXXX ... XXXXXX ... XXXXXXXX ... XXXXXX ... XXXX ..........", +".......... XXXX .. XXXXXX .. XXXXXXXX .. XXXXXX .. XXXX ..........", +".......... XXXX .. XXXXXXX . XXXXXXXX . XXXXXXX .. XXXX ..........", +"........... XXXX . XXXXXXX . XXXXXXXXXX . XXXXXXX . XXXX ...........", +"........... XXXXX . XXXXXXX XXXXXXXXXX XXXXXXX . XXXXX ...........", +"........... XXXXX XXXXXXXX XXXXXXXXXX XXXXXXXX XXXXX ...........", +"........... XXXXXX XXXXXXXX XXXX XXXX XXXXXXXX XXXXXX ...........", +"........... XXXXXX XXX XX XX XX XX XXX XXXXXX ...........", +"........... XXX XX X XX X XX XXX ...........", +"............ X XXX XXXXXXXX XXX X ............", +"............ X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXX XXXXXXXXXXXX ...............", +"................ XXXXX XXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXX XXXXXXXX ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX .................", +"................ XX XX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".................. XXXXXXXXXXXXXXXXXX .................", +"........................ ........................", +"............................... ...............................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/qld87.xpm b/pixmaps/qld87.xpm new file mode 100644 index 0000000..0a52f3a --- /dev/null +++ b/pixmaps/qld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *qld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................... ............. XXX ............. .......................", +"..................... .......... XXXXX .......... .....................", +".................... ......... XXXXX ......... ....................", +".................... XXX ......... XXXXX ......... XXX ....................", +"................... XXXXX ......... XXX ......... XXXXX ...................", +"................... XXXXX ......... ......... XXXXX ...................", +"................... XXXXX .......... .......... XXXXX ...................", +"....... .......... XX ............. ............. XX .......... .......", +"..... ........ ............. ............. ........ .....", +".... ........ ............. ............. ........ ....", +".... XXX ........... .............. .............. ........... XXX ....", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +".... XXX ........... ........... X ........... ........... XXX ....", +".... ........... ........... X ........... ........... ....", +"..... ............ .......... X .......... ............ .....", +"....... ............ .......... X .......... ............ .......", +"......... ............ .......... X .......... ............ .........", +"......... ........... X ........ XXX ........ X ........... .........", +"......... .......... X ........ XXX ........ X .......... .........", +"......... .......... X ........ XXX ........ X .......... .........", +"......... ......... XX ....... XXX ....... XX ......... .........", +".......... ......... XX ....... XXX ....... XX ......... ..........", +".......... ........ XX ...... XXXXX ...... XX ........ ..........", +".......... ...... XXXX ..... XXXXX ..... XXX ....... ..........", +".......... X ...... XXXX ..... XXXXX ..... XXXX ...... X ..........", +".......... XX ..... XXXX ..... XXXXX ..... XXXX ..... XX ..........", +".......... XX ..... XXXXX .... XXXXX .... XXXXX ..... XX ..........", +"........... XX .... XXXXX ... XXXXXXX ... XXXXX .... XX ...........", +"........... XX .... XXXXX ... XXXXXXX ... XXXXX .... XX ...........", +"........... XXX ... XXXXXX .. XXXXXXX .. XXXXXX ... XXX ...........", +"........... XXX .. XXXXXX .. XXXXXXX .. XXXXXX .. XXX ...........", +"........... XXXX .. XXXXXX .. XXXXXXX .. XXXXXX .. XXXX ...........", +"........... XXXXX . XXXXXXX XXXXXXXXX XXXXXXX . XXXXX ...........", +"............ XXXX . XXXXXXX XXXXXXXXX XXXXXXX . XXXX ............", +"............ XXXXX XXXXXXX XXXXXXXXX XXXXXXX XXXXX ............", +"............ XXXXX XXXXXXXX XXXX XXXX XXXXXXXX XXXXX ............", +"............ XXXXXX XXXX XXX XXX XXX XXX XXXX XXXXXX ............", +"............ XXXXXX XX X X X X XX XXXXXX ............", +"............ XXX XX XX XXX ............", +"............. X X XXX X X .............", +"............. XXXXX XXXXXXXXX XXXXX .............", +"............. X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX ................", +"................ XXXXXX XXXXXX ................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXX XXXXXXXXXXXX ...................", +".................... XXX XXX ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXX XXXXXXXXXXX ...................", +"................... XX XX ...................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +".................... ....................", +"......................... .........................", +"................................. .................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/qld95.xpm b/pixmaps/qld95.xpm new file mode 100644 index 0000000..4fa4981 --- /dev/null +++ b/pixmaps/qld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *qld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +"............................................ ............................................", +"........................................... ...........................................", +"......................... .............. XXX .............. .........................", +"....................... ........... XXXXX ........... .......................", +"...................... .......... XXXXX .......... ......................", +"...................... XXXX .......... XXXXX .......... XXXX ......................", +"..................... XXXXXX ......... XXXXX ......... XXXXXX .....................", +"..................... XXXXXX .......... X .......... XXXXXX .....................", +"..................... XXXXXX .......... .......... XXXXXX .....................", +"..................... XXXXX ............ ............ XXXXX .....................", +"....... ........... X .............. .............. X ........... .......", +"..... ......... .............. .............. ......... .....", +".... ......... ............... ............... ......... ....", +".... XXXX ............ ............... ............... ............ XXXX ....", +"... XXXXXX ........... ............... ............... ........... XXXXXX ...", +"... XXXXXX ........... ............... ............... ........... XXXXXX ...", +"... XXXXXX ........... ............. X ............. ........... XXXXXX ...", +"... XXXXX ............ ............. X ............. ............ XXXXX ...", +".... XXX ............ ............. X ............. ............ XXX ....", +".... ............. ............ X ............ ............. ....", +"..... .............. ............ X ............ .............. .....", +"....... ............. ........... XXX ........... ............. .......", +"......... ............ X .......... XXX .......... X ............ .........", +"......... ............ X .......... XXX .......... X ............ .........", +".......... ........... X .......... XXX .......... X ........... ..........", +".......... ........... XX ........ XXXXX ........ XX ........... ..........", +".......... .......... XX ........ XXXXX ........ XX .......... ..........", +".......... ......... XX ........ XXXXX ........ XX ......... ..........", +".......... X ......... XXX ....... XXXXX ....... XXX ......... X ..........", +"........... X ....... XXXX ....... XXXXX ....... XXX ........ X ...........", +"........... X ....... XXXXX ..... XXXXXXX ..... XXXXX ....... X ...........", +"........... XX ...... XXXXX ..... XXXXXXX ..... XXXXX ...... XX ...........", +"........... XX ..... XXXXX ..... XXXXXXX ..... XXXXX ..... XX ...........", +"........... XXX ..... XXXXXX .... XXXXXXX .... XXXXXX ..... XXX ...........", +"........... XXXX .... XXXXXX ... XXXXXXXXX ... XXXXXX .... XXXX ...........", +"............ XXX .... XXXXXX ... XXXXXXXXX ... XXXXXX .... XXX ............", +"............ XXXX ... XXXXXXX .. XXXXXXXXX .. XXXXXXX ... XXXX ............", +"............ XXXX ... XXXXXXX .. XXXXXXXXX .. XXXXXXX ... XXXX ............", +"............ XXXXX .. XXXXXXX .. XXXXXXXXX .. XXXXXXX .. XXXXX ............", +"............ XXXXX . XXXXXXXX XXXXXXXXXXX XXXXXXXX . XXXXX ............", +"............ XXXXXX . XXXXXXXX XXXXXXXXXXX XXXXXXXX . XXXXXX ............", +"............. XXXXXX XXXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXX .............", +"............. XXXXXX XXXXXXXXX XXXXX XXXXX XXXXXXXXX XXXXXX .............", +"............. XXXXXXX XXXX XXX XXX XXX XXX XXXX XXXXXXX .............", +"............. XXXXXXX XXX X XX XX X XXX XXXXXXX .............", +"............. XXXX XX X XX XXXX .............", +"............. X XXXXX X .............", +".............. XXXXX XXXXXXXXX XXXXX ..............", +".............. XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +"................... XXXX XXXX ...................", +"................... ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXX XXXXXXXXXXXXX .....................", +"...................... XXXX XXXX ......................", +"...................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXX XXXXXXXXXXXX .....................", +".................... XXXXX XXXXX ....................", +".................... ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... .....................", +"............................ ............................", +".................................... ....................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/qll108.xpm b/pixmaps/qll108.xpm new file mode 100644 index 0000000..5743068 --- /dev/null +++ b/pixmaps/qll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *qll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"................................................... ....................................................", +"................................................. ..................................................", +"................................................ .................................................", +"................................................ XXXXX .................................................", +"........................... ............... XXXXXXX ............... ............................", +"......................... ............. XXXXXXX ............. ..........................", +"........................ ............ XXXXXXX ............ .........................", +"........................ XXXXX ............ XXXXXXX ............ XXXXX .........................", +"....................... XXXXXXX ............ XXXXX ............ XXXXXXX ........................", +"....................... XXXXXXX ............ XXX ............ XXXXXXX ........................", +"....................... XXXXXXX ............. ............. XXXXXXX ........................", +"....................... XXXXXXX .............. .............. XXXXXXX ........................", +"........................ XXXXX ................. ................. XXXXX .........................", +"...... ............. XX ................. ................. XX ............. .......", +".... ............ ................. ................. ............ .....", +"... ............ .................. .................. ............ ....", +"... XXXXX ............... ................... ................... ............... XXXXX ....", +".. XXXXXXX .............. .................. .................. .............. XXXXXXX ...", +".. XXXXXXX .............. ................. X ................. .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +".. XXXXXXX .............. ................ X ................ .............. XXXXXXX ...", +"... XXXXX ............... ............... X ............... ............... XXXXX ....", +"... ............... .............. XXX .............. ............... ....", +".... ................ .............. XXX .............. ................ .....", +"...... ............... XX ............. XXX ............. XX ............... .......", +"......... ............... XX ............. XXX ............. XX ............... ..........", +"......... .............. XX ............. XXX ............. XX .............. ..........", +".......... ............. XXX ........... XXXXX ........... XXX ............. ...........", +".......... ............. XXX ........... XXXXX ........... XXX ............. ...........", +".......... ............ XXXX .......... XXXXX .......... XXXX ............ ...........", +".......... ............ XXXX .......... XXXXX .......... XXXX ............ ...........", +".......... X ........... XXXX .......... XXXXX .......... XXXX ........... X ...........", +".......... X ........... XXXXX ........ XXXXXXX ........ XXXXX ........... X ...........", +"........... X .......... XXXXX ........ XXXXXXX ........ XXXXX .......... X ............", +"........... X ......... XXXXX ........ XXXXXXX ........ XXXXX ......... X ............", +"........... XX ......... XXXXXX ....... XXXXXXX ....... XXXXXX ......... XX ............", +"........... XXX ........ XXXXXX ...... XXXXXXXXX ...... XXXXXX ........ XXX ............", +"........... XXX ........ XXXXXX ...... XXXXXXXXX ...... XXXXXX ........ XXX ............", +"............ XXX ....... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ....... XXX .............", +"............ XXX ....... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ....... XXX .............", +"............ XXXX ...... XXXXXXX ..... XXXXXXXXX ..... XXXXXXX ...... XXXX .............", +"............ XXXX ...... XXXXXXXX ... XXXXXXXXXXX ... XXXXXXXX ...... XXXX .............", +"............ XXXXX ..... XXXXXXXX ... XXXXXXXXXXX ... XXXXXXXX ..... XXXXX .............", +"............ XXXXX .... XXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXX .... XXXXX .............", +"............. XXXXX .... XXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXX .... XXXXX ..............", +"............. XXXXXX .. XXXXXXXXXX .. XXXXXXXXXXX .. XXXXXXXXXX .. XXXXXX ..............", +"............. XXXXXX .. XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX .. XXXXXX ..............", +"............. XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX ..............", +"............. XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX ..............", +"............. XXXXXXXX XXXXXXXXXXXX XXXXX XXXXX XXXXXXXXXXXX XXXXXXXX ..............", +".............. XXXXXXX XXXXX XXXXX XXXX XXXX XXXXX XXXXX XXXXXXX ...............", +".............. XXXXXXXX XXXX XXX XX XX XXX XXXX XXXXXXXX ...............", +".............. XXXXXXXXX XXX X XXX XXXXXXXXX ...............", +".............. XXXX XX X XXXXX X XX XXXX ...............", +".............. XXX XXXX XXXXXXXXXXX XXXX XXX ...............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXX XXXXXXXX .....................", +"..................... X X ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"........................ .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXX XXXXXXXXX .......................", +"...................... XXXX XXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................... ............................", +"................................. ..................................", +".......................................... ...........................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/qll116.xpm b/pixmaps/qll116.xpm new file mode 100644 index 0000000..21bff02 --- /dev/null +++ b/pixmaps/qll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *qll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................... ........................................................", +"..................................................... ......................................................", +".................................................... .....................................................", +"............................... ................. XXXXX ................. ................................", +"............................. .............. XXXXXXX .............. ..............................", +"............................ ............. XXXXXXX ............. .............................", +"........................... XXXX ............. XXXXXXX ............. XXXX ............................", +"........................... XXXXXX ............ XXXXXXX ............ XXXXXX ............................", +".......................... XXXXXXX ............ XXXXXXX ............ XXXXXXX ...........................", +".......................... XXXXXXX ............. XXXXX ............. XXXXXXX ...........................", +".......................... XXXXXXX ............. ............. XXXXXXX ...........................", +".......................... XXXXXXX .............. .............. XXXXXXX ...........................", +"......... .............. XXXXX ................. ................. XXXXX .............. ..........", +"....... ............ X .................. .................. X ............ ........", +"...... ............ .................. .................. ............ .......", +"..... XXXX ............. ................... ................... ............. XXXX ......", +"..... XXXXXX ............... ................... ................... ............... XXXXXX ......", +".... XXXXXXX ............... ................... ................... ............... XXXXXXX .....", +".... XXXXXXX ............... .................. X .................. ............... XXXXXXX .....", +".... XXXXXXX ............... ................. X ................. ............... XXXXXXX .....", +".... XXXXXXX ............... ................. X ................. ............... XXXXXXX .....", +"..... XXXXX ................ ................. X ................. ................ XXXXX ......", +"..... XXX ................ ................ X ................ ................ XXX ......", +"...... ................. ............... XXX ............... ................. .......", +"....... ................. ............... XXX ............... ................. ........", +"......... ................. X .............. XXX .............. X ................. ..........", +"........... ............... XX .............. XXX .............. XX ............... ............", +"............ ............... XX ............. XXXXX ............. XX ............... .............", +"............ .............. XXX ............ XXXXX ............ XXX .............. .............", +"............ .............. XXX ............ XXXXX ............ XXX .............. .............", +"............ ............. XXX ............ XXXXX ............ XXX ............. .............", +"............ ............. XXXX ........... XXXXX ........... XXXX ............. .............", +"............ X ............ XXXX .......... XXXXXXX .......... XXXX ............ X .............", +"............. ........... XXXX .......... XXXXXXX .......... XXXX ........... ..............", +"............. X ........... XXXXX ......... XXXXXXX ......... XXXXX ........... X ..............", +"............. XX .......... XXXXX ......... XXXXXXX ......... XXXXX .......... XX ..............", +"............. XX .......... XXXXX ........ XXXXXXXXX ........ XXXXX .......... XX ..............", +"............. XXX ......... XXXXXX ....... XXXXXXXXX ....... XXXXXX ......... XXX ..............", +"............. XXX ......... XXXXXX ....... XXXXXXXXX ....... XXXXXX ......... XXX ..............", +".............. XXX ........ XXXXXX ....... XXXXXXXXX ....... XXXXXX ........ XXX ...............", +".............. XXX ........ XXXXXXX ...... XXXXXXXXX ...... XXXXXXX ........ XXX ...............", +".............. XXXX ....... XXXXXXX ..... XXXXXXXXXXX ..... XXXXXXX ....... XXXX ...............", +".............. XXXX ....... XXXXXXX ..... XXXXXXXXXXX ..... XXXXXXX ....... XXXX ...............", +".............. XXXXX ...... XXXXXXXX .... XXXXXXXXXXX .... XXXXXXXX ...... XXXXX ...............", +".............. XXXXX ..... XXXXXXXX .... XXXXXXXXXXX .... XXXXXXXX ..... XXXXX ...............", +"............... XXXXX ..... XXXXXXXX ... XXXXXXXXXXXXX ... XXXXXXXX ..... XXXXX ................", +"............... XXXXXX .... XXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXX .... XXXXXX ................", +"............... XXXXXX ... XXXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXXX ... XXXXXX ................", +"............... XXXXXXX .. XXXXXXXXXX .. XXXXXXXXXXXXX .. XXXXXXXXXX .. XXXXXXX ................", +"............... XXXXXXX .. XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX .. XXXXXXX ................", +"............... XXXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXXX ................", +"................ XXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXX .................", +"................ XXXXXXXX XXXXXXXXXXXX XXXXXX XXXXXX XXXXXXXXXXXX XXXXXXXX .................", +"................ XXXXXXXX XXXXX XXXXX XXXX XXXX XXXXX XXXXX XXXXXXXX .................", +"................ XXXXXXXXX XXXX XXX XX XX XXX XXXX XXXXXXXXX .................", +"................ XXXXXXXXXX XXX XXX XXX XXXXXXXXXX .................", +"................ XXXX XX X XXXXXXX X XX XXXX .................", +"................. XX XXXX XXXXXXXXXXXXX XXXX XX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXX XXXXXXXX ........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXX XXXXXXX ............................", +"........................... X X ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXX XXXXXXXXXX .........................", +"........................ XXXXX XXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".............................. ...............................", +".................................... .....................................", +"............................................. ..............................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/qll129.xpm b/pixmaps/qll129.xpm new file mode 100644 index 0000000..133ba43 --- /dev/null +++ b/pixmaps/qll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *qll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"............................................................. ..............................................................", +"........................................................... ............................................................", +".......................................................... ...........................................................", +"......................................................... ..........................................................", +".................................. .................. XXXX .................. ...................................", +"................................ ............... XXXXXX ............... .................................", +"............................... .............. XXXXXXXX .............. ................................", +".............................. ............. XXXXXXXX ............. ...............................", +"............................. XXX ............. XXXXXXXX ............. XXX ..............................", +"............................. XXXXXX ............ XXXXXX ............ XXXXXX ..............................", +"............................ XXXXXXX ............. XXXXXX ............. XXXXXXX .............................", +"............................ XXXXXXXX ............. XX ............. XXXXXXXX .............................", +"............................ XXXXXXXX .............. .............. XXXXXXXX .............................", +"............................ XXXXXX ............... ............... XXXXXX .............................", +"............................. XXXXXX ................. ................. XXXXXX ..............................", +"........ ............... XX ................... ................... XX ............... .........", +"...... .............. ................... ................... .............. .......", +"..... .............. .................... .................... .............. ......", +".... .............. ..................... ..................... .............. .....", +"... XXXX ................ ..................... ..................... ................ XXXX ....", +"... XXXXXXX ................ .................... .................... ................ XXXXXXX ....", +"... XXXXXXXX ................ .................... .................... ................ XXXXXXXX ....", +"... XXXXXXXX ................ ................... ................... ................ XXXXXXXX ....", +"... XXXXXXXX ................ ................... ................... ................ XXXXXXXX ....", +"... XXXXXXX ................ ................... ................... ................ XXXXXXX ....", +"... XXXXX ................. ................. ................. ................. XXXXX ....", +".... ................. ................. XX ................. ................. .....", +"..... .................. ................. XX ................. .................. ......", +"...... ................... ................ XX ................ ................... .......", +"........ .................. ................ XX ................ ................... .........", +"........... ................. X ............... XX ............... ................. ............", +"........... ................. X .............. XXXX .............. X ................. ............", +"............ ................ XX .............. XXXX .............. XX ................ .............", +"............ ................ XX ............. XXXX ............. XX ................ .............", +"............ ............... XXX ............ XXXX ............ XXX ............... .............", +"............ .............. XXX ............ XXXXXX ............ XXX .............. .............", +"............ .............. XXX ........... XXXXXX ........... XXX .............. .............", +"............ ............. XXXX ........... XXXXXX ........... XXXX ............. .............", +"............. ............. XXXX ........... XXXXXX ........... XXXX ............. ..............", +"............. ............ XXXX ......... XXXXXX ......... XXXX ............ ..............", +"............. X ............ XXXXX ......... XXXXXXXX ......... XXXXX ............ X ..............", +"............. X ........... XXXXX ......... XXXXXXXX ......... XXXXX ........... X ..............", +"............. XX .......... XXXXX ........ XXXXXXXX ........ XXXXX .......... XX ..............", +"............. XX .......... XXXXXX ........ XXXXXXXX ........ XXXXXX .......... XX ..............", +".............. XX ......... XXXXXX ....... XXXXXXXX ....... XXXXXX ......... XX ...............", +".............. XXX ......... XXXXXX ...... XXXXXXXXXX ...... XXXXXX ......... XXX ...............", +".............. XXX ........ XXXXXXX ...... XXXXXXXXXX ...... XXXXXXX ........ XXX ...............", +".............. XXXX ....... XXXXXXX ...... XXXXXXXXXX ...... XXXXXXX ....... XXXX ...............", +".............. XXXX ....... XXXXXXX .... XXXXXXXXXX .... XXXXXXX ....... XXXX ...............", +"............... XXXX ...... XXXXXXXX .... XXXXXXXXXXXX .... XXXXXXXX ...... XXXX ................", +"............... XXXXX ...... XXXXXXXX .... XXXXXXXXXXXX .... XXXXXXXX ...... XXXXX ................", +"............... XXXXX ..... XXXXXXXX ... XXXXXXXXXXXX ... XXXXXXXX ..... XXXXX ................", +"............... XXXXXX ..... XXXXXXXXX ... XXXXXXXXXXXX ... XXXXXXXXX ..... XXXXXX ................", +"............... XXXXXX ... XXXXXXXXX .. XXXXXXXXXXXX .. XXXXXXXXX .... XXXXXX ................", +"............... XXXXXX .. XXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXX .. XXXXXX ................", +"................ XXXXXXX .. XXXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXXXX .. XXXXXXX .................", +"................ XXXXXXX . XXXXXXXXXXX . XXXXXXXXXXXXXX . XXXXXXXXXXX . XXXXXXX .................", +"................ XXXXXXXX . XXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXX . XXXXXXXX .................", +"................ XXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXX .................", +"................ XXXXXXXXX XXXXXXXXXXXX XXXXXX XXXXXX XXXXXXXXXXXX XXXXXXXXX .................", +"................. XXXXXXXXX XXXXX XXXX XXXX XXXX XXXX XXXXX XXXXXXXXX ..................", +"................. XXXXXXXXXX XXX XX XX XXX XXXXXXXXXX ..................", +"................. XXXXX XXX XXX XXXXX ..................", +"................. XXXX XX XXXX ..................", +"................. XX XX XXXXXX XX XX ..................", +"................. XXXXXX XXXXXXXXXXXXXX XXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXX XXXXXXXXXXXXX ........................", +"........................ XXXXX XXXXX .........................", +"......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXX XXXXXXXX .............................", +"............................. XX XX ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXX XXXXXXXXXX ............................", +".......................... XX XX ...........................", +".......................... ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ...........................", +".................................. ...................................", +"......................................... ..........................................", +".................................................. ...................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/qll21.xpm b/pixmaps/qll21.xpm new file mode 100644 index 0000000..ac6e1ba --- /dev/null +++ b/pixmaps/qll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *qll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +"......... .........", +"..... . X . .....", +"..... X . X . X .....", +". . X .. .. X . .", +". X .. .. X .. .. X .", +". X . X . X . X . X .", +". X . X . X . X . X .", +". X . X . X . X . X .", +".. X XXX XXX XXX X ..", +".. XXXXXXXXXXXXXXX ..", +"... XXXXXXXXXXXXX ...", +"... XXXXXXXXXXXXX ...", +".... XXXXXXXXXXX ....", +".... X X ....", +".... XXXXXXXXXXX ....", +".... X X ....", +".... XXXXXXXXXXX ....", +".... XXXXXXXXX ....", +"..... .....", +"....................." +}; diff --git a/pixmaps/qll25.xpm b/pixmaps/qll25.xpm new file mode 100644 index 0000000..bff80c8 --- /dev/null +++ b/pixmaps/qll25.xpm @@ -0,0 +1,31 @@ +/* XPM */ +static char * qll25[] = { +"25 25 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" . . . ", +" .X. .X. .X. ", +" .. ... ... ... .. ", +".XX. . . . .XX.", +".X.. .. . .. ..X.", +" ... .. .X. .. ... ", +" .. .. .X. .. .. ", +" .X. .X. .X. .X. .X. ", +" .X. .X. .X. .X. .X. ", +" .X. .X. .X. .X. .X. ", +" .XX..XX.XXX.XX..XX. ", +" .XX...........XX. ", +" ....XX.XXXXXXX... ", +" .XXXXXXXXXXXXXXX. ", +" ............... ", +" .XXXXXXXXXXXXX. ", +" ............. ", +" .XXXXXXXXXXX. ", +" ............... ", +" .XXXXXXXXXXXXX. ", +" ............. ", +" ", +" "}; diff --git a/pixmaps/qll29.xpm b/pixmaps/qll29.xpm new file mode 100644 index 0000000..5307ca3 --- /dev/null +++ b/pixmaps/qll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *qll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............. ..............", +"........ .... X .... ........", +"....... X ... X ... X .......", +".. ... X .... .... X ... ..", +". XX ... ..... ..... ... XX .", +". XX ... .... .... ... XX .", +".. .... ... X ... .... ..", +"... ... ... X ... ... ...", +"... ... X .. X .. X ... ...", +"... X . XX .. X .. XX . X ...", +"... X . XXX . X . XXX . X ...", +"... XX XXX XXX XXX XX ...", +".... X XXX XXX XXX X ....", +".... XX X X X X XX ....", +".... XXX X XXXX ....", +".... XXXXXXXXXXXXXXXXXXX ....", +"..... XXXX XXXX .....", +"...... XXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +"....... X X .......", +"....... XXXXXXXXXXX .......", +"...... X X ......", +"...... XXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ......", +"........ ........", +".............................", +"............................." +}; diff --git a/pixmaps/qll33.xpm b/pixmaps/qll33.xpm new file mode 100644 index 0000000..811d40d --- /dev/null +++ b/pixmaps/qll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *qll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +"................ ................", +"............... X ...............", +"........ ..... X ..... ........", +"....... XX ..... ..... XX .......", +".. ... X ..... ..... X ... ..", +". XX .... ...... ...... .... XX .", +". XX .... ..... X ..... .... XX .", +".. ..... .... X .... ..... ..", +"... .... .... X .... .... ...", +"... .... X ... X ... X .... ...", +".... ... X .. XXX .. X ... ....", +".... X .. X .. XXX .. X .. X ....", +".... X .. XX . XXX . XX .. X ....", +".... XX . XX . XXX . XX . XX ....", +".... XX . XX XXXXX XX . XX ....", +"..... XX X X X X XX .....", +"..... X X X XXXXXX X X X .....", +"..... X XXXXXXXXXXXXXX X .....", +"..... XXXXXXXXXXXXXXXXXXXXX .....", +"...... XXX XXX ......", +"...... XXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XX XX .......", +"........ XXXXXXXXXXXXX ........", +"....... XX XX .......", +"...... XXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXX ......", +".......... ..........", +".................................", +"................................." +}; diff --git a/pixmaps/qll37.xpm b/pixmaps/qll37.xpm new file mode 100644 index 0000000..b690ea1 --- /dev/null +++ b/pixmaps/qll37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *qll37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +"................. .................", +".......... ... XXX ... ..........", +"......... XXX .. XXX .. XXX .........", +"......... XXX ... ... XXX .........", +"... ..... ..... ..... ..... ...", +".. XX ..... ...... ...... ..... XX ..", +".. XX ..... ..... X ..... ..... XX ..", +".. X ..... .... X .... ..... X ..", +"... ..... X .... X .... ...... ...", +".... .... X .... X .... X .... ....", +".... .... XX ... X ... XX .... ....", +".... X ... XX .. XXX .. XX ... X ....", +".... X ... XX .. XXX .. XX ... X ....", +"..... X .. XX .. XXX .. XX .. X .....", +"..... X .. XXX . XXX . XXX .. X .....", +"..... X . XXXX . XXX . XXX .. X .....", +"..... XX XXXX XXXXX XXXX XX .....", +"..... XX XXXXX XXXXX XXXXX XX .....", +"..... X X X X X X X X .....", +"...... X XXXX XXX XXXXX X .....", +"...... XXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... XX XX .......", +"........ XXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"......... XX XX .........", +"......... XXXXXXXXXXXXX .........", +"........ XXXX XXXX ........", +"........ XXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXX ........", +"............ ............", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/qll40.xpm b/pixmaps/qll40.xpm new file mode 100644 index 0000000..d4d3547 --- /dev/null +++ b/pixmaps/qll40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *qll40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"................... ..................", +"........... .... XXX .... ..........", +".......... XXX ... XXX ... XXX .........", +".......... XXX ... XXX ... XXX .........", +"... ...... X ..... ..... X ...... ..", +".. XX ...... ....... ....... ...... XX .", +".. XX ...... ....... ....... ...... XX .", +".. XX ...... ..... X ..... ...... XX .", +"... ....... ..... X ..... ....... ..", +"..... ...... ..... X ..... ...... ....", +"..... ...... X .... X .... X ...... ....", +"..... ..... X .... X .... X ..... ....", +"..... X ... XX ... XXX ... X .... X ....", +"..... X ... XXX .. XXX .. XXX ... X ....", +"..... XX .. XXX .. XXX .. XXX .. XX ....", +"..... XX .. XXX .. XXX .. XXX .. XX ....", +"...... XX . XXXX . XXX . XXXX . XX .....", +"...... XXX XXXX XXXXX XXXX XXX .....", +"...... XXX XXXX XXXXX XXXX XXX .....", +"...... XX X X X X X X XX .....", +"...... X XXXX XXX XXXXX X .....", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ XXXXX XXXXX .......", +"........ X XXXXXXXXXXXXX X .......", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXX XXXX ........", +".......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXX XXXX .......", +"........ XXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"........ XXXXXXXXXXXXX .......", +".............. .............", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/qll45.xpm b/pixmaps/qll45.xpm new file mode 100644 index 0000000..acbed8c --- /dev/null +++ b/pixmaps/qll45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *qll45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +"..................... .....................", +"........... ...... XXX ...... ...........", +".......... XXX ..... XXX ..... XXX ..........", +".......... XXX ..... XXX ..... XXX ..........", +".......... XXX ...... ...... XXX ..........", +".. ...... ........ ........ ...... ..", +". XXX ...... ......... ......... ...... XXX .", +". XXX ...... ....... X ....... ...... XXX .", +". XXX ...... ....... X ....... ...... XXX .", +".. X ....... ....... X ....... ....... X ..", +"... ....... X ...... X ...... X ....... ...", +".... ...... X ...... X ...... X ...... ....", +".... ...... X ..... XXX ..... X ...... ....", +".... X ..... XX .... XXX .... XX ..... X ....", +".... X ..... XX .... XXX .... XX ..... X ....", +"..... X ... XXX .... XXX .... XXX ... X .....", +"..... X ... XXXX .. XXXXX .. XXXX ... X .....", +"..... XX .. XXXX .. XXXXX .. XXXX .. XX .....", +"..... XX .. XXXX .. XXXXX .. XXXX .. XX .....", +"..... XXX . XXXXX . XXXXX . XXXXX . XXX .....", +"..... XXX . XXXXX . XXXXX . XXXXX . XXX .....", +"..... XXXX XXXXX XXX XXX XXXXX XXXX .....", +"...... XXX XX XX XX X XX XX XX XXX ......", +"...... XX X XX XXX XX X XX ......", +"...... X XXXXXXXXXXXXXXXXXXXXXX X ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXX XXXXXXX ........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XX XX ..........", +".......... XXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"......... XXXX XXXX .........", +"........ XXXXXXXXXXXXXXXXX ........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXX ........", +"............... ...............", +".............................................", +"............................................." +}; diff --git a/pixmaps/qll49.xpm b/pixmaps/qll49.xpm new file mode 100644 index 0000000..73ae7ed --- /dev/null +++ b/pixmaps/qll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *qll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +"....................... .......................", +"........... ....... XXX ....... ...........", +".......... XXXX ...... XXX ...... XXXX ..........", +".......... XXXX ...... XXX ...... XXXX ..........", +".......... XXXX ....... X ....... XXXX ..........", +".. ...... X ......... ......... X ...... ..", +". XXX ....... .......... .......... ....... XXX .", +". XXX ....... ........ X ........ ....... XXX .", +". XXX ....... ........ X ........ ....... XXX .", +".. X ........ ........ X ........ ........ X ..", +"... ........ X ....... X ....... X ........ ...", +".... ....... X ....... X ....... X ....... ....", +"..... ...... XX ..... XXX ..... XX ...... .....", +"..... ...... XX ..... XXX ..... XX ...... .....", +"..... X ..... XX ..... XXX ..... XX ..... X .....", +"..... X ..... XXX .... XXX .... XXX ..... X .....", +"..... XX .... XXX .... XXX .... XXX .... XX .....", +"..... XXX ... XXX ... XXXXX ... XXX ... XXX .....", +"...... XX ... XXXX .. XXXXX .. XXXX ... XX ......", +"...... XXX .. XXXX .. XXXXX .. XXXX .. XXX ......", +"...... XXX .. XXXXX . XXXXX . XXXXX .. XXX ......", +"...... XXXX . XXXXX . XXXXX . XXXXX . XXXX ......", +"...... XXXXX XXXXX XXX XXX XXXXX XXXXX ......", +"....... XXXX XX XX XX X XX XX XX XXXX .......", +"....... XX XX X XX XXX XX X XX XX .......", +"....... X XXXXXXXXXXXXXXXXXXX X .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXX XXXXXX .........", +".......... XXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXX XXX ...........", +"........... XXXXXXXXXXXXXXXXXXX ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXX XXXXX ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXXXXXXXXX ..........", +"................ ................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/qll54.xpm b/pixmaps/qll54.xpm new file mode 100644 index 0000000..6713512 --- /dev/null +++ b/pixmaps/qll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *qll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................... .........................", +"........................ ........................", +"............. ...... XX ...... .............", +"............ ..... XX ..... ............", +"............ XXX ..... XX ..... XXX ............", +"............ XXX ..... ..... XXX ............", +"... .... XX ...... ...... XX .... ...", +".. ... ........ ........ ... ..", +".. XXX .... ........ ........ .... XXX ..", +".. XXX ...... ....... ....... ...... XXX ..", +".. XX ...... ....... ....... ...... XX ..", +".. ....... ...... ...... ....... ..", +"... ....... ...... ...... ....... ...", +"..... ....... ..... ..... ....... .....", +"...... ...... .... XX .... ...... ......", +"...... ...... X .... XX .... X ...... ......", +"...... ..... X .... XX .... X ..... ......", +"...... .... X ... XX ... X ..... ......", +"...... ... XXX ... XX ... XX ... ......", +"...... .. XXX .. XX .. XXX .. ......", +"....... X .. XXX . XXXX . XXX .. X .......", +"....... X . XXXX . XXXX . XXXX . X .......", +"....... XX . XXXX XXXX XXXX . XX .......", +"....... XX XXXXX XXXX XXXXX XX .......", +"....... XXX XXXXX XXXX XXXXX XXX .......", +"....... XX XX XX XX XX XX XX XX .......", +"........ XXX X X XXX ........", +"........ XX ........", +"........ XXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +".......... X X ..........", +"........... XXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXX XXXXX ............", +"............ ............", +"............ XXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXX XXXXX ............", +"........... ...........", +"........... XXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXX ...........", +"............ ............", +"................... ...................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/qll58.xpm b/pixmaps/qll58.xpm new file mode 100644 index 0000000..f494d43 --- /dev/null +++ b/pixmaps/qll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *qll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"............................ ............................", +".......................... ..........................", +".............. ...... XX ...... ..............", +"............. ..... XXXX ..... .............", +"............. XXX ..... XXXX ..... XXX .............", +"............. XXX ..... ..... XXX .............", +".... ....... XXX ...... ...... XXX ....... ....", +".. ..... ........ ........ ..... ..", +". XX ..... ........ ........ ..... XX .", +". XXXX ....... ........ ........ ....... XXXX .", +". XXX ....... ........ ........ ....... XXX .", +".. ....... ........ ........ ....... ..", +"... ........ ...... ...... ........ ...", +"..... ........ ...... XX ...... ........ .....", +"..... ....... ...... XX ...... ....... .....", +"..... ....... ..... XX ..... ....... .....", +"..... ...... X ..... XX ..... X ...... .....", +"...... ..... X .... XX .... X ..... ......", +"...... X .... X ... XXXX ... X .... X ......", +"...... X ... XXX ... XXXX ... XXX ... X ......", +"...... XX ... XXX .. XXXX .. XXX ... XX ......", +"...... XX .. XXXX . XXXX . XXXX .. XX ......", +"...... XX .. XXXX . XXXXXX . XXXX .. XX ......", +"....... XX . XXXX XXXXXX XXXX . XX .......", +"....... XXX XXXXX XXXXXX XXXXX XXX .......", +"....... XXXX XXXXX XXXXXX XXXXX XXXX .......", +"....... XXXX XX XX XX XX XX XX XXXX .......", +"....... XXXX X X XXXX .......", +"........ X XXXX X ........", +"........ XXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXX XXXXXXX ..........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXX XXXXXX .............", +"............. .............", +"............. XXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXX XXXXX ............", +"............ ............", +"........... XXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXX ...........", +"............. .............", +".................... ....................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/qll64.xpm b/pixmaps/qll64.xpm new file mode 100644 index 0000000..89e7af5 --- /dev/null +++ b/pixmaps/qll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *qll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"............................... ...............................", +"............................. .............................", +".................. ........ XX ........ ..................", +"................ ...... XXXX ...... ................", +"............... XX ..... XXXX ..... XX ...............", +"............... XXXX ..... XX ..... XXXX ...............", +"............... XXXX ...... ...... XXXX ...............", +"..... ........ XX ........ ........ XX ........ .....", +"... ....... ......... ......... ....... ...", +".. XX ....... .......... .......... ....... XX ..", +".. XXXX ........ ......... ......... ........ XXXX ..", +".. XXXX ........ ......... ......... ........ XXXX ..", +".. XX ........ ......... ......... ........ XX ..", +"... ......... ........ ........ ......... ...", +".... ........ ....... ....... ......... ....", +"...... ........ X ....... XX ....... ........ ......", +"...... ....... X ...... XX ...... X ....... ......", +"...... ....... XX ...... XX ...... XX ....... ......", +"...... ...... XX ..... XX ..... XX ...... ......", +"....... ...... XXX .... XX .... XXX ...... .......", +"....... ..... XXX .... XXXX .... XXX ..... .......", +"....... X ..... XXX ... XXXX ... XXX ..... X .......", +"....... X .... XXXX ... XXXX ... XXXX .... X .......", +"....... XX .... XXXX ... XXXX ... XXXX .... XX .......", +"....... X ... XXXX . XXXX . XXXX ... X .......", +"........ XX ... XXXXX . XXXXXX . XXXXX ... XX ........", +"........ XX . XXXXX . XXXXXX . XXXXX .. XX ........", +"........ XXX . XXXXXX XXXXXX XXXXX . XXX ........", +"........ XXX XXXXXXX XXXXXX XXXXXXX XXX ........", +"........ XXXX XXXXXXX XXXXXX XXXXXXX XXXX ........", +"........ XXXX XXX XX XX XX XX XXX XXXX ........", +"........ XXXX X X XXXX ........", +"......... X XX XXXX XX X .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXX XXXXXXXX ...........", +"............ ............", +"............. XXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXX XXXXX ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXX XXXXXX ..............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXX .............", +"................. ................", +"........................ ........................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/qll72.xpm b/pixmaps/qll72.xpm new file mode 100644 index 0000000..6622a1e --- /dev/null +++ b/pixmaps/qll72.xpm @@ -0,0 +1,78 @@ +/* XPM */ +static char * qll72[] = { +"72 72 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" .... ", +" ...... ", +" ... ...XX... ... ", +" ....... ..XXXX.. ....... ", +" ...XXX... ..XXXX.. ...XXX... ", +" ..XXXXX.. ..XXXX.. ..XXXXX.. ", +" ..XXXXX.. ...XX... ..XXXXX.. ", +" ..XXXXX.. ...... ..XXXXX.. ", +" ... ...XXX... .. ...XXX... ... ", +" ....... ....... .. ....... ....... ", +"...XXX... ... .... ... ...XXX...", +"..XXXXX.. ... .... ... ..XXXXX..", +"..XXXXX.. ... .... ... ..XXXXX..", +"..XXXXX.. .... .... .... ..XXXXX..", +"...XXX... .... .... .... ...XXX...", +" ....... .... ...... .... ....... ", +" ..... ..... ..XX.. ..... ..... ", +" ... ..X.. ..XX.. ..X.. ... ", +" .... ..X.. ..XX.. ..X.. .... ", +" .... ..X... ...XX... ...X.. .... ", +" ..... ..XX.. ..XXXX.. ..XX.. ..... ", +" ..... ..XX.. ..XXXX.. ..XX.. ..... ", +" ..X.. ..XX... ..XXXX.. ...XX.. ..X.. ", +" ..X... ..XXX.. ..XXXX.. ..XXX.. ...X.. ", +" ..XX.. ...XXX... ...XXXX... ...XXX... ..XX.. ", +" ..XX... ..XXXXX.. ..XXXXXX.. ..XXXXX.. ...XX.. ", +" ...XX.. ..XXXXX.. ..XXXXXX.. ..XXXXX.. ..XX... ", +" ..XX... ..XXXXX... ..XXXXXX.. ...XXXXX.. ...XX.. ", +" ..XXX.. ..XXXXXX.. ..XXXXXX.. ..XXXXXX.. ..XXX.. ", +" ..XXX... ..XXXXXX.. ...XXXXXX... ..XXXXXX.. ...XXX.. ", +" ..XXXX... ..XXXXXX... ..XXXXXXXX.. ...XXXXXX.. ...XXXX.. ", +" ..XXXXX.. ..XXXXXXX.. ..XXXXXXXX.. ..XXXXXXX.. ..XXXXX.. ", +" ...XXXX... ..XXXXXXX.....XXXXXXXX.....XXXXXXX.. ...XXXX... ", +" ..XXXXX.. ..XXXXXXXX....XXXXXXXX....XXXXXXXX.. ..XXXXX.. ", +" ..XXXXX.....XXXXXXXX....XXX..XXX....XXXXXXXX.....XXXXX.. ", +" ..XXXXXX....XXXX.XXX...XX......XX...XXX.XXXX....XXXXXX.. ", +" ..XXXXXX....XX............................XX....XXXXXX.. ", +" ..XXXX.XX...X...X........XXXXXX........X...X...XX.XXXX.. ", +" ...X...........XXXXXXXXXXXXXXXXXXXXXXXXXX...........X... ", +" .....X......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX......X..... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ...XXXXXXXXXX......................XXXXXXXXXX... ", +" ...XX....................................XX... ", +" ...........XXXXXXXXXXXXXXXXXXXXXX........... ", +" ....XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.... ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXX....................XXXXXXXXX.. ", +" .......................................... ", +" ..........XXXXXXXXXXXXXXXXXXXX.......... ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXX..................XXXXXXXXXX.. ", +" ...XXXX..............................XXXX... ", +" .............XXXXXXXXXXXXXXXXXX............. ", +" ........XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX........ ", +" ...XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX... ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" ..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.. ", +" .......XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....... ", +" .............XXXXXXXXXXXXXXXXXXXX............. ", +" .................................. ", +" .................... ", +" ", +" ", +" "}; diff --git a/pixmaps/qll80.xpm b/pixmaps/qll80.xpm new file mode 100644 index 0000000..9115192 --- /dev/null +++ b/pixmaps/qll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *qll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"...................................... ......................................", +".................................... ....................................", +"................................... XXXX ...................................", +"..................... ........... XXXXXX ........... .....................", +"................... ......... XXXXXX ......... ...................", +".................. XXX ........ XXXXXX ........ XXX ..................", +".................. XXXXX ........ XXXX ........ XXXXX ..................", +".................. XXXXX ......... ......... XXXXX ..................", +".................. XXXXX .......... .......... XXXXX ..................", +"...... ......... XXX ............ ............ XXX ......... ......", +".... ........ ............ ............ ........ ....", +"... XXX ......... ............. ............. ......... XXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXX .......... ........... ........... .......... XXX ...", +".... ........... ........... XX ........... ........... ....", +"...... ........... ........... XX ........... ........... ......", +"........ ........... .......... XX .......... ........... ........", +"........ .......... X ......... XX ......... X .......... ........", +"........ .......... X ......... XXXX ......... X .......... ........", +"........ ......... X ........ XXXX ........ X ......... ........", +"......... ......... XX ........ XXXX ........ XX ......... .........", +"......... ........ XX ........ XXXX ........ XX ........ .........", +"......... X ........ XX ...... XXXX ...... XX ........ X .........", +"......... X ...... XXX ...... XXXXXX ...... XXX ....... X .........", +"......... XX ...... XXXX ...... XXXXXX ...... XXX ...... XX .........", +"......... X ..... XXXX ..... XXXXXX ..... XXXX ..... X .........", +".......... XX ..... XXXXX .... XXXXXX .... XXXXX ..... XX ..........", +".......... XX .... XXXXX ... XXXXXXXX ... XXXXX .... XX ..........", +".......... XXX ... XXXXXX ... XXXXXXXX ... XXXXXX ... XXX ..........", +".......... XXXX ... XXXXXX ... XXXXXXXX ... XXXXXX ... XXXX ..........", +".......... XXXX .. XXXXXX .. XXXXXXXX .. XXXXXX .. XXXX ..........", +".......... XXXX .. XXXXXXX . XXXXXXXX . XXXXXXX .. XXXX ..........", +"........... XXXX . XXXXXXX . XXXXXXXXXX . XXXXXXX . XXXX ...........", +"........... XXXXX . XXXXXXX XXXXXXXXXX XXXXXXX . XXXXX ...........", +"........... XXXXX XXXXXXXX XXXXXXXXXX XXXXXXXX XXXXX ...........", +"........... XXXXXX XXXXXXXX XXXX XXXX XXXXXXXX XXXXXX ...........", +"........... XXXXXX XXX XX XX XX XX XXX XXXXXX ...........", +"........... XXX XX X XX X XX XXX ...........", +"............ X XXX XXXXXXXX XXX X ............", +"............ X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXX XXXXXXXXXXXX ...............", +"................ XXXXX XXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXX XXXXXXXX ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXX XXXXXXXXXX .................", +"................ XX XX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".................. XXXXXXXXXXXXXXXXXX .................", +"........................ ........................", +"............................... ...............................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/qll87.xpm b/pixmaps/qll87.xpm new file mode 100644 index 0000000..6728b82 --- /dev/null +++ b/pixmaps/qll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *qll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................... ..........................................", +"........................................ ........................................", +"....................................... .......................................", +"....................... ............. XXX ............. .......................", +"..................... .......... XXXXX .......... .....................", +".................... ......... XXXXX ......... ....................", +".................... XXX ......... XXXXX ......... XXX ....................", +"................... XXXXX ......... XXX ......... XXXXX ...................", +"................... XXXXX ......... ......... XXXXX ...................", +"................... XXXXX .......... .......... XXXXX ...................", +"....... .......... XX ............. ............. XX .......... .......", +"..... ........ ............. ............. ........ .....", +".... ........ ............. ............. ........ ....", +".... XXX ........... .............. .............. ........... XXX ....", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +"... XXXXX .......... ............. ............. .......... XXXXX ...", +".... XXX ........... ........... X ........... ........... XXX ....", +".... ........... ........... X ........... ........... ....", +"..... ............ .......... X .......... ............ .....", +"....... ............ .......... X .......... ............ .......", +"......... ............ .......... X .......... ............ .........", +"......... ........... X ........ XXX ........ X ........... .........", +"......... .......... X ........ XXX ........ X .......... .........", +"......... .......... X ........ XXX ........ X .......... .........", +"......... ......... XX ....... XXX ....... XX ......... .........", +".......... ......... XX ....... XXX ....... XX ......... ..........", +".......... ........ XX ...... XXXXX ...... XX ........ ..........", +".......... ...... XXXX ..... XXXXX ..... XXX ....... ..........", +".......... X ...... XXXX ..... XXXXX ..... XXXX ...... X ..........", +".......... XX ..... XXXX ..... XXXXX ..... XXXX ..... XX ..........", +".......... XX ..... XXXXX .... XXXXX .... XXXXX ..... XX ..........", +"........... XX .... XXXXX ... XXXXXXX ... XXXXX .... XX ...........", +"........... XX .... XXXXX ... XXXXXXX ... XXXXX .... XX ...........", +"........... XXX ... XXXXXX .. XXXXXXX .. XXXXXX ... XXX ...........", +"........... XXX .. XXXXXX .. XXXXXXX .. XXXXXX .. XXX ...........", +"........... XXXX .. XXXXXX .. XXXXXXX .. XXXXXX .. XXXX ...........", +"........... XXXXX . XXXXXXX XXXXXXXXX XXXXXXX . XXXXX ...........", +"............ XXXX . XXXXXXX XXXXXXXXX XXXXXXX . XXXX ............", +"............ XXXXX XXXXXXX XXXXXXXXX XXXXXXX XXXXX ............", +"............ XXXXX XXXXXXXX XXXX XXXX XXXXXXXX XXXXX ............", +"............ XXXXXX XXXX XXX XXX XXX XXX XXXX XXXXXX ............", +"............ XXXXXX XX X X X X XX XXXXXX ............", +"............ XXX XX XX XXX ............", +"............. X X XXX X X .............", +"............. XXXXX XXXXXXXXX XXXXX .............", +"............. X XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXX XXXXXXXXXXXXXX ................", +"................ XXXXXX XXXXXX ................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXX XXXXXXXXXXXX ...................", +".................... XXX XXX ....................", +".................... ....................", +".................... XXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"................... XXXXXXXXXXX XXXXXXXXXXX ...................", +"................... XX XX ...................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXXXXXXXXX ..................", +".................... ....................", +"......................... .........................", +"................................. .................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/qll95.xpm b/pixmaps/qll95.xpm new file mode 100644 index 0000000..db5e55b --- /dev/null +++ b/pixmaps/qll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *qll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".............................................. ..............................................", +"............................................ ............................................", +"........................................... ...........................................", +"......................... .............. XXX .............. .........................", +"....................... ........... XXXXX ........... .......................", +"...................... .......... XXXXX .......... ......................", +"...................... XXXX .......... XXXXX .......... XXXX ......................", +"..................... XXXXXX ......... XXXXX ......... XXXXXX .....................", +"..................... XXXXXX .......... X .......... XXXXXX .....................", +"..................... XXXXXX .......... .......... XXXXXX .....................", +"..................... XXXXX ............ ............ XXXXX .....................", +"....... ........... X .............. .............. X ........... .......", +"..... ......... .............. .............. ......... .....", +".... ......... ............... ............... ......... ....", +".... XXXX ............ ............... ............... ............ XXXX ....", +"... XXXXXX ........... ............... ............... ........... XXXXXX ...", +"... XXXXXX ........... ............... ............... ........... XXXXXX ...", +"... XXXXXX ........... ............. X ............. ........... XXXXXX ...", +"... XXXXX ............ ............. X ............. ............ XXXXX ...", +".... XXX ............ ............. X ............. ............ XXX ....", +".... ............. ............ X ............ ............. ....", +"..... .............. ............ X ............ .............. .....", +"....... ............. ........... XXX ........... ............. .......", +"......... ............ X .......... XXX .......... X ............ .........", +"......... ............ X .......... XXX .......... X ............ .........", +".......... ........... X .......... XXX .......... X ........... ..........", +".......... ........... XX ........ XXXXX ........ XX ........... ..........", +".......... .......... XX ........ XXXXX ........ XX .......... ..........", +".......... ......... XX ........ XXXXX ........ XX ......... ..........", +".......... X ......... XXX ....... XXXXX ....... XXX ......... X ..........", +"........... X ....... XXXX ....... XXXXX ....... XXX ........ X ...........", +"........... X ....... XXXXX ..... XXXXXXX ..... XXXXX ....... X ...........", +"........... XX ...... XXXXX ..... XXXXXXX ..... XXXXX ...... XX ...........", +"........... XX ..... XXXXX ..... XXXXXXX ..... XXXXX ..... XX ...........", +"........... XXX ..... XXXXXX .... XXXXXXX .... XXXXXX ..... XXX ...........", +"........... XXXX .... XXXXXX ... XXXXXXXXX ... XXXXXX .... XXXX ...........", +"............ XXX .... XXXXXX ... XXXXXXXXX ... XXXXXX .... XXX ............", +"............ XXXX ... XXXXXXX .. XXXXXXXXX .. XXXXXXX ... XXXX ............", +"............ XXXX ... XXXXXXX .. XXXXXXXXX .. XXXXXXX ... XXXX ............", +"............ XXXXX .. XXXXXXX .. XXXXXXXXX .. XXXXXXX .. XXXXX ............", +"............ XXXXX . XXXXXXXX XXXXXXXXXXX XXXXXXXX . XXXXX ............", +"............ XXXXXX . XXXXXXXX XXXXXXXXXXX XXXXXXXX . XXXXXX ............", +"............. XXXXXX XXXXXXXX XXXXXXXXXXX XXXXXXXX XXXXXX .............", +"............. XXXXXX XXXXXXXXX XXXXX XXXXX XXXXXXXXX XXXXXX .............", +"............. XXXXXXX XXXX XXX XXX XXX XXX XXXX XXXXXXX .............", +"............. XXXXXXX XXX X XX XX X XXX XXXXXXX .............", +"............. XXXX XX X XX XXXX .............", +"............. X XXXXX X .............", +".............. XXXXX XXXXXXXXX XXXXX ..............", +".............. XX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. XXXXXXXXXXXXXX XXXXXXXXXXXXXX ..................", +"................... XXXX XXXX ...................", +"................... ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXX XXXXXXXXXXXXX .....................", +"...................... XXXX XXXX ......................", +"...................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXX ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXX XXXXXXXXXXXX .....................", +".................... XXXXX XXXXX ....................", +".................... ....................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... .....................", +"............................ ............................", +".................................... ....................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/rdd108.xpm b/pixmaps/rdd108.xpm new file mode 100644 index 0000000..339fedd --- /dev/null +++ b/pixmaps/rdd108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *rdd108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"..................... .......... ........... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... .......................", +"....................... ........................", +"........................ .........................", +"......................... ..........................", +".......................... ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... ............................", +".......................... ...........................", +"......................... ..........................", +"........................ .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"................ ................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/rdd116.xpm b/pixmaps/rdd116.xpm new file mode 100644 index 0000000..061a76b --- /dev/null +++ b/pixmaps/rdd116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *rdd116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................... ............ ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... ........................", +"........................ .........................", +"......................... ...........................", +"........................... ............................", +"............................ .............................", +"............................. ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................ .............................", +"........................... ............................", +".......................... ...........................", +"......................... ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. .................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/rdd129.xpm b/pixmaps/rdd129.xpm new file mode 100644 index 0000000..eb964ef --- /dev/null +++ b/pixmaps/rdd129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *rdd129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"......................... .............. ............. ..........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ...........................", +"........................... ............................", +"............................ .............................", +".............................. ..............................", +"............................... ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/rdd21.xpm b/pixmaps/rdd21.xpm new file mode 100644 index 0000000..eda793f --- /dev/null +++ b/pixmaps/rdd21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *rdd21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".... .. .. ....", +".... ....", +".... ....", +".... XXXXXXXXX ....", +"...... ......", +"...... XXXXXXX ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"..... XXXXXXX .....", +".... ....", +"... XXXXXXXXXXX ...", +"... ...", +".....................", +"....................." +}; diff --git a/pixmaps/rdd25.xpm b/pixmaps/rdd25.xpm new file mode 100644 index 0000000..29395a6 --- /dev/null +++ b/pixmaps/rdd25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *rdd25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +"..... .. .. .....", +"..... .....", +"..... .....", +"..... XXXXXXXXXXXXX .....", +"...... XXXXXXXXX ......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... XXXXXXXXX .......", +"...... ......", +"...... XXXXXXXXXXX .....", +"...... .....", +".... XXXXXXXXXXXXX ....", +".... ....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/rdd29.xpm b/pixmaps/rdd29.xpm new file mode 100644 index 0000000..2d6f705 --- /dev/null +++ b/pixmaps/rdd29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *rdd29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"...... ... .. ......", +"...... ... .. ......", +"...... ......", +"...... ......", +"...... XXXXXXXXXXXXXXX ......", +"....... .......", +"........ XXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXX ........", +"........ .......", +"....... XXXXXXXXXXXXX ......", +"...... ......", +"...... ......", +".... XXXXXXXXXXXXXXX ....", +".... ....", +".... ....", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/rdd33.xpm b/pixmaps/rdd33.xpm new file mode 100644 index 0000000..74dc90a --- /dev/null +++ b/pixmaps/rdd33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *rdd33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"...... ... ... ......", +"...... ... ... ......", +"...... ......", +"...... ......", +"...... XXXXXXXXXXXXXXXXX ......", +"....... .......", +"........ XXXXXXXXXXXXX ........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXX .........", +"........ ........", +"....... XXXXXXXXXXXXXXXXX .......", +"....... .......", +"....... .......", +"..... XXXXXXXXXXXXXXXXX .....", +"..... .....", +"..... .....", +".................................", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/rdd37.xpm b/pixmaps/rdd37.xpm new file mode 100644 index 0000000..9319c58 --- /dev/null +++ b/pixmaps/rdd37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *rdd37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +".....................................", +"....... .... .... .......", +"....... .... .... .......", +"....... .... .... .......", +"....... .......", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"........ ........", +"......... .........", +".......... XXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +"......... .........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"..... XXXXXXXXXXXXXXXXXXX .....", +"..... .....", +"..... .....", +"..... .....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/rdd40.xpm b/pixmaps/rdd40.xpm new file mode 100644 index 0000000..eaac584 --- /dev/null +++ b/pixmaps/rdd40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * rdd40[] = { +"40 40 3 1", +" c green s dark_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ..... ..... ..... ", +" ..... ..... ..... ", +" ..... ..... ..... ", +" ....................... ", +" ....................... ", +" ....................... ", +" .XXXXXXXXXXXXXXXXXXX. ", +" ................... ", +" ................ ", +" .XXXXXXXXXXXXX. ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ..XXXXXXXXXXXXX.. ", +" .................... ", +" ...................... ", +" .XXXXXXXXXXXXXXXXXXX.. ", +" ...................... ", +" ...................... ", +" ...XXXXXXXXXXXXXXXXXXXXX... ", +" ........................... ", +" ........................... ", +" ........................... ", +" ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/rdd45.xpm b/pixmaps/rdd45.xpm new file mode 100644 index 0000000..d653155 --- /dev/null +++ b/pixmaps/rdd45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *rdd45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +"........ ..... ..... ........", +"........ ..... ..... ........", +"........ ..... ..... ........", +"........ ........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... .........", +".......... ..........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ...........", +"........... ..........", +".......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/rdd49.xpm b/pixmaps/rdd49.xpm new file mode 100644 index 0000000..cb19259 --- /dev/null +++ b/pixmaps/rdd49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *rdd49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... ..........", +"........... ...........", +"............ ............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............ ............", +"............ ...........", +"........... ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/rdd54.xpm b/pixmaps/rdd54.xpm new file mode 100644 index 0000000..29d07f0 --- /dev/null +++ b/pixmaps/rdd54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *rdd54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... ...........", +"............ ............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXX .............", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/rdd58.xpm b/pixmaps/rdd58.xpm new file mode 100644 index 0000000..2ba426e --- /dev/null +++ b/pixmaps/rdd58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *rdd58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ ............", +"............. .............", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/rdd64.xpm b/pixmaps/rdd64.xpm new file mode 100644 index 0000000..294dc1d --- /dev/null +++ b/pixmaps/rdd64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *rdd64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... ...............", +"................ ................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................ ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/rdd72.xpm b/pixmaps/rdd72.xpm new file mode 100644 index 0000000..0bd8bba --- /dev/null +++ b/pixmaps/rdd72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *rdd72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. ..............", +"............... ...............", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................ ................", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/rdd80.xpm b/pixmaps/rdd80.xpm new file mode 100644 index 0000000..607d4fc --- /dev/null +++ b/pixmaps/rdd80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *rdd80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +".................... ....................", +"..................... .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... .....................", +".................... ....................", +".................. ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/rdd87.xpm b/pixmaps/rdd87.xpm new file mode 100644 index 0000000..0cfa1b6 --- /dev/null +++ b/pixmaps/rdd87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *rdd87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".................. ........ ........ .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +".................... .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... .....................", +"..................... ....................", +".................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/rdd95.xpm b/pixmaps/rdd95.xpm new file mode 100644 index 0000000..b543c98 --- /dev/null +++ b/pixmaps/rdd95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *rdd95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"................... ......... ......... ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... ...................", +".................... ....................", +"..................... .....................", +"...................... ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. .............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/rdl108.xpm b/pixmaps/rdl108.xpm new file mode 100644 index 0000000..5a1e377 --- /dev/null +++ b/pixmaps/rdl108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *rdl108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"..................... .......... ........... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... .......................", +"....................... ........................", +"........................ .........................", +"......................... ..........................", +".......................... ...........................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... ............................", +".......................... ...........................", +"......................... ..........................", +"........................ .........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"............... ................", +"................ ................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/rdl116.xpm b/pixmaps/rdl116.xpm new file mode 100644 index 0000000..5ae037a --- /dev/null +++ b/pixmaps/rdl116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *rdl116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................... ............ ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... ........................", +"........................ .........................", +"......................... ...........................", +"........................... ............................", +"............................ .............................", +"............................. ..............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................ .............................", +"........................... ............................", +".......................... ...........................", +"......................... ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................ .................", +"................. .................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/rdl129.xpm b/pixmaps/rdl129.xpm new file mode 100644 index 0000000..d8d9d4f --- /dev/null +++ b/pixmaps/rdl129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *rdl129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"......................... .............. ............. ..........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ...........................", +"........................... ............................", +"............................ .............................", +".............................. ..............................", +"............................... ................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +".................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................................", +"................................. ..................................", +"................................ .................................", +"............................... ................................", +".............................. ...............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/rdl21.xpm b/pixmaps/rdl21.xpm new file mode 100644 index 0000000..ef8844a --- /dev/null +++ b/pixmaps/rdl21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *rdl21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".... .. .. ....", +".... ....", +".... ....", +".... XXXXXXXXX ....", +"...... ......", +"...... XXXXXXX ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +"..... XXXXXXX .....", +".... ....", +"... XXXXXXXXXXX ...", +"... ...", +".....................", +"....................." +}; diff --git a/pixmaps/rdl25.xpm b/pixmaps/rdl25.xpm new file mode 100644 index 0000000..fc96afe --- /dev/null +++ b/pixmaps/rdl25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *rdl25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +"..... .. .. .....", +"..... .....", +"..... .....", +"..... XXXXXXXXXXXXX .....", +"...... XXXXXXXXX ......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +"....... XXXXXXXXX .......", +"...... ......", +"...... XXXXXXXXXXX .....", +"...... .....", +".... XXXXXXXXXXXXX ....", +".... ....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/rdl29.xpm b/pixmaps/rdl29.xpm new file mode 100644 index 0000000..4faccad --- /dev/null +++ b/pixmaps/rdl29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *rdl29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"...... ... .. ......", +"...... ... .. ......", +"...... ......", +"...... ......", +"...... XXXXXXXXXXXXXXX ......", +"....... .......", +"........ XXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXX ........", +"........ .......", +"....... XXXXXXXXXXXXX ......", +"...... ......", +"...... ......", +".... XXXXXXXXXXXXXXX ....", +".... ....", +".... ....", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/rdl33.xpm b/pixmaps/rdl33.xpm new file mode 100644 index 0000000..12e7a0f --- /dev/null +++ b/pixmaps/rdl33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *rdl33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"...... ... ... ......", +"...... ... ... ......", +"...... ......", +"...... ......", +"...... XXXXXXXXXXXXXXXXX ......", +"....... .......", +"........ XXXXXXXXXXXXX ........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXX .........", +"........ ........", +"....... XXXXXXXXXXXXXXXXX .......", +"....... .......", +"....... .......", +"..... XXXXXXXXXXXXXXXXX .....", +"..... .....", +"..... .....", +".................................", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/rdl37.xpm b/pixmaps/rdl37.xpm new file mode 100644 index 0000000..6401f07 --- /dev/null +++ b/pixmaps/rdl37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *rdl37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +".....................................", +"....... .... .... .......", +"....... .... .... .......", +"....... .... .... .......", +"....... .......", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"........ ........", +"......... .........", +".......... XXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +"......... .........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"..... XXXXXXXXXXXXXXXXXXX .....", +"..... .....", +"..... .....", +"..... .....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/rdl40.xpm b/pixmaps/rdl40.xpm new file mode 100644 index 0000000..463866a --- /dev/null +++ b/pixmaps/rdl40.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char * rdl40[] = { +"40 40 3 1", +" c gray s light_square", +". c black s dark_piece", +"X c white s light_piece", +" ", +" ", +" ", +" ..... ..... ..... ", +" ..... ..... ..... ", +" ..... ..... ..... ", +" ....................... ", +" ....................... ", +" ....................... ", +" .XXXXXXXXXXXXXXXXXXX. ", +" ................... ", +" ................ ", +" .XXXXXXXXXXXXX. ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ............... ", +" ..XXXXXXXXXXXXX.. ", +" .................... ", +" ...................... ", +" .XXXXXXXXXXXXXXXXXXX.. ", +" ...................... ", +" ...................... ", +" ...XXXXXXXXXXXXXXXXXXXXX... ", +" ........................... ", +" ........................... ", +" ........................... ", +" ", +" ", +" ", +" ", +" "}; diff --git a/pixmaps/rdl45.xpm b/pixmaps/rdl45.xpm new file mode 100644 index 0000000..1d50563 --- /dev/null +++ b/pixmaps/rdl45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *rdl45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +"........ ..... ..... ........", +"........ ..... ..... ........", +"........ ..... ..... ........", +"........ ........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXX ........", +"......... .........", +".......... ..........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ...........", +"........... ..........", +".......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... ......", +"...... ......", +"...... ......", +"...... ......", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/rdl49.xpm b/pixmaps/rdl49.xpm new file mode 100644 index 0000000..ce74f97 --- /dev/null +++ b/pixmaps/rdl49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *rdl49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... ..... ..... .........", +"......... .........", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... ..........", +"........... ...........", +"............ ............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............ ............", +"............ ...........", +"........... ...........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +"....... .......", +"....... .......", +"....... .......", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/rdl54.xpm b/pixmaps/rdl54.xpm new file mode 100644 index 0000000..e958aef --- /dev/null +++ b/pixmaps/rdl54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *rdl54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... ...........", +"............ ............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXX ..............", +"............. XXXXXXXXXXXXXXXXXXXX .............", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"........ ........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/rdl58.xpm b/pixmaps/rdl58.xpm new file mode 100644 index 0000000..726280f --- /dev/null +++ b/pixmaps/rdl58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *rdl58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... ...........", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ ............", +"............. .............", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"........ ........", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/rdl64.xpm b/pixmaps/rdl64.xpm new file mode 100644 index 0000000..56eff52 --- /dev/null +++ b/pixmaps/rdl64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *rdl64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... ...............", +"................ ................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................ ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +".......... ..........", +".......... ..........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/rdl72.xpm b/pixmaps/rdl72.xpm new file mode 100644 index 0000000..f2e3b26 --- /dev/null +++ b/pixmaps/rdl72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *rdl72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +".............. ..............", +"............... ...............", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................. .................", +"................ ................", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +".............. ..............", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"......... .........", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/rdl80.xpm b/pixmaps/rdl80.xpm new file mode 100644 index 0000000..87ec2db --- /dev/null +++ b/pixmaps/rdl80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *rdl80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +".................... ....................", +"..................... .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"..................... .....................", +".................... ....................", +".................. ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/rdl87.xpm b/pixmaps/rdl87.xpm new file mode 100644 index 0000000..a8fed9e --- /dev/null +++ b/pixmaps/rdl87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *rdl87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".................. ........ ........ .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +".................... .....................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"...................... .....................", +"..................... ....................", +".................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............ ............", +"............. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/rdl95.xpm b/pixmaps/rdl95.xpm new file mode 100644 index 0000000..6f001dc --- /dev/null +++ b/pixmaps/rdl95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *rdl95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"................... ......... ......... ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ......... ........ ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... ...................", +".................... ....................", +"..................... .....................", +"...................... ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ ........................", +"....................... .......................", +"...................... ......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".................... ....................", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +"............. .............", +".............. .............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/rld108.xpm b/pixmaps/rld108.xpm new file mode 100644 index 0000000..3c76982 --- /dev/null +++ b/pixmaps/rld108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *rld108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"..................... .......... ........... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... .....................", +".................... .....................", +"..................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ .............................", +"............................. ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"............... ................", +"............... ................", +"............... ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... ................", +"............... ................", +"................ ................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/rld116.xpm b/pixmaps/rld116.xpm new file mode 100644 index 0000000..715b85e --- /dev/null +++ b/pixmaps/rld116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *rld116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................... ............ ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .......................", +"...................... XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .......................", +"...................... XXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. ...............................", +"............................... ................................", +"............................... ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... ................................", +".............................. ...............................", +".............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"................. .................", +"................ .................", +"................ .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ .................", +"................ .................", +"................. .................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/rld129.xpm b/pixmaps/rld129.xpm new file mode 100644 index 0000000..ccad05d --- /dev/null +++ b/pixmaps/rld129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *rld129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"......................... .............. ............. ..........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ .................................", +"................................. ..................................", +".................................. ...................................", +"................................... ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"................... ....................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/rld21.xpm b/pixmaps/rld21.xpm new file mode 100644 index 0000000..097c4f0 --- /dev/null +++ b/pixmaps/rld21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *rld21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".... .. .. ....", +".... X X X ....", +".... XXXXXXXXXXX ....", +".... ....", +"...... XXXXXXX ......", +"...... ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... ......", +"..... XXXXXXX .....", +".... ....", +"... XXXXXXXXXXX ...", +"... ...", +".....................", +"....................." +}; diff --git a/pixmaps/rld25.xpm b/pixmaps/rld25.xpm new file mode 100644 index 0000000..6adc2b3 --- /dev/null +++ b/pixmaps/rld25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *rld25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +"..... .. .. .....", +"..... XX X XX .....", +"..... XXXXXXXXXXXXX .....", +"..... .....", +"...... ......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... .......", +"...... XXXXXXXXX ......", +"..... .....", +"..... XXXXXXXXXXXXX .....", +".... ....", +".... ....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/rld29.xpm b/pixmaps/rld29.xpm new file mode 100644 index 0000000..a29b485 --- /dev/null +++ b/pixmaps/rld29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *rld29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"...... ... .. ......", +"...... XX ... XX .. XX ......", +"...... XX XX XX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... ......", +"....... XXXXXXXXXXXXX .......", +"........ ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ ........", +"........ XXXXXXXXXXX .......", +"...... ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +".... ....", +".... XXXXXXXXXXXXXXXXXXX ....", +".... ....", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/rld33.xpm b/pixmaps/rld33.xpm new file mode 100644 index 0000000..8f795cf --- /dev/null +++ b/pixmaps/rld33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *rld33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"...... ... ... ......", +"...... XXX ... XXX ... XXX ......", +"...... XXX XXX XXX ......", +"...... XXXXXXXXXXXXXXXXXXX ......", +"...... ......", +"....... XXXXXXXXXXXXXXXXX .......", +"........ ........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... .........", +"........ XXXXXXXXXXXXXXX ........", +"....... .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"..... .....", +"..... XXXXXXXXXXXXXXXXXXXXX .....", +"..... .....", +".................................", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/rld37.xpm b/pixmaps/rld37.xpm new file mode 100644 index 0000000..2c70444 --- /dev/null +++ b/pixmaps/rld37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *rld37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +".....................................", +"....... .... .... .......", +"....... XXX .... XXX .... XXX .......", +"....... XXX .... XXX .... XXX .......", +"....... XXX XXX XXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +"........ XXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXX .........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"..... .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... .....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/rld40.xpm b/pixmaps/rld40.xpm new file mode 100644 index 0000000..79c49cb --- /dev/null +++ b/pixmaps/rld40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *rld40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"........................................", +"......... .... .... ........", +"......... XXX .... XXX .... XXX ........", +"......... XXX .... XXX .... XXX ........", +"......... XXX XXX XXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +"........... XXXXXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXX ............", +"............. ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............ ...........", +"........... XXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +"....... ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... ......", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/rld45.xpm b/pixmaps/rld45.xpm new file mode 100644 index 0000000..01bb580 --- /dev/null +++ b/pixmaps/rld45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *rld45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +"........ ..... ..... ........", +"........ XXXXX ..... XXXX ..... XXXX ........", +"........ XXXXX ..... XXXX ..... XXXX ........", +"........ XXXXX XXXX XXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... ......", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/rld49.xpm b/pixmaps/rld49.xpm new file mode 100644 index 0000000..53ab2ab --- /dev/null +++ b/pixmaps/rld49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *rld49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"......... ..... ..... .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX XXXXX XXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/rld54.xpm b/pixmaps/rld54.xpm new file mode 100644 index 0000000..68b9dbf --- /dev/null +++ b/pixmaps/rld54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *rld54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... XXXX ..... XXXX .... XXXXX ..........", +".......... XXXX XXXX XXXXX ..........", +".......... XXXX XXXX XXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/rld58.xpm b/pixmaps/rld58.xpm new file mode 100644 index 0000000..915ad5b --- /dev/null +++ b/pixmaps/rld58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *rld58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... XXXXX ..... XXXX ..... XXXXX ...........", +"........... XXXXX ..... XXXX ..... XXXXX ...........", +"........... XXXXX XXXX XXXXX ...........", +"........... XXXXX XXXX XXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............... ...............", +"................ ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/rld64.xpm b/pixmaps/rld64.xpm new file mode 100644 index 0000000..ffc3f87 --- /dev/null +++ b/pixmaps/rld64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *rld64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. XXXXX ..... XXXX ..... XXXXX ..............", +".............. XXXXX ..... XXXX ..... XXXXX ..............", +".............. XXXXX XXXX XXXXX ..............", +".............. XXXXX XXXX XXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXX ................", +".................. ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +".................. ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/rld72.xpm b/pixmaps/rld72.xpm new file mode 100644 index 0000000..492b0c1 --- /dev/null +++ b/pixmaps/rld72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *rld72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX XXXXXX XXXXXXX .............", +"............. XXXXXXX XXXXXX XXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +".................. ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/rld80.xpm b/pixmaps/rld80.xpm new file mode 100644 index 0000000..8269148 --- /dev/null +++ b/pixmaps/rld80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *rld80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX XXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... ......................", +"........................ .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... ........................", +"...................... .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/rld87.xpm b/pixmaps/rld87.xpm new file mode 100644 index 0000000..eb6fc68 --- /dev/null +++ b/pixmaps/rld87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *rld87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".................. ........ ........ .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. XXXXXXX ....... XXXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXXX ....... XXXXXXX .................", +"................. XXXXXXX XXXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXXX XXXXXXX .................", +"................. XXXXXXXX XXXXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... ......................", +"....................... .......................", +"........................ ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ ........................", +"........................ .......................", +"....................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/rld95.xpm b/pixmaps/rld95.xpm new file mode 100644 index 0000000..32ae81c --- /dev/null +++ b/pixmaps/rld95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *rld95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c green s dark_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".................... ......... ......... .................", +"................... ......... ........ .................", +"................... ......... ........ .................", +"................... XXXXXXXX ......... XXXXXXXX ........ XXXXXXXX .................", +"................... XXXXXXXX ......... XXXXXXXX ........ XXXXXXXX .................", +"................... XXXXXXXX XXXXXXXX XXXXXXXX .................", +"................... XXXXXXXX XXXXXXXX XXXXXXXX .................", +"................... XXXXXXXXX XXXXXXXXXX XXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... .................", +"................... .................", +"................... .................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"........................ ......................", +".......................... ........................", +"........................... .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... .........................", +"........................... .........................", +".......................... ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... ...................", +"..................... ...................", +"..................... ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"............... ............", +".............. ............", +".............. ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. ............", +".............. ............", +"............... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pixmaps/rll108.xpm b/pixmaps/rll108.xpm new file mode 100644 index 0000000..c54e035 --- /dev/null +++ b/pixmaps/rll108.xpm @@ -0,0 +1,117 @@ +/* XPM */ +static char *rll108[] = { +/* columns rows colors chars-per-pixel */ +"108 108 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"..................... .......... ........... .....................", +".................... .......... .......... .....................", +".................... .......... .......... .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX .......... XXXXXXXXX .......... XXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXX XXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... .....................", +".................... .....................", +"..................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"............................ .............................", +"............................. ..............................", +"............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................. ..............................", +"............................. ..............................", +"............................ .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"....................... ........................", +"...................... .......................", +"...................... .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"............... ................", +"............... ................", +"............... ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... ................", +"............... ................", +"................ ................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................", +"............................................................................................................" +}; diff --git a/pixmaps/rll116.xpm b/pixmaps/rll116.xpm new file mode 100644 index 0000000..1a8983f --- /dev/null +++ b/pixmaps/rll116.xpm @@ -0,0 +1,125 @@ +/* XPM */ +static char *rll116[] = { +/* columns rows colors chars-per-pixel */ +"116 116 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................... ............ ........... .......................", +"...................... ........... ........... .......................", +"...................... ........... ........... .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX ........... XXXXXXXXXXX ........... XXXXXXXXXX .......................", +"...................... XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .......................", +"...................... XXXXXXXXXX XXXXXXXXXXX XXXXXXXXXX .......................", +"...................... XXXXXXXXXXX XXXXXXXXXXXX XXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"...................... .......................", +"...................... .......................", +"...................... .......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +".............................. ...............................", +"............................... ................................", +"............................... ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"............................... ................................", +".............................. ...............................", +".............................. ..............................", +"............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"................. .................", +"................ .................", +"................ .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ .................", +"................ .................", +"................. .................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"....................................................................................................................", +"...................................................................................................................." +}; diff --git a/pixmaps/rll129.xpm b/pixmaps/rll129.xpm new file mode 100644 index 0000000..4224fc8 --- /dev/null +++ b/pixmaps/rll129.xpm @@ -0,0 +1,138 @@ +/* XPM */ +static char *rll129[] = { +/* columns rows colors chars-per-pixel */ +"129 129 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"......................... .............. ............. ..........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ ............ ........... .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX ............ XXXXXXXXXXX ........... XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXX XXXXXXXXXXX XXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXX XXXXXXXXXXXXX XXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................ .........................", +"........................ .........................", +"........................ .........................", +"......................... ..........................", +".......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"............................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +"................................ .................................", +"................................. ..................................", +".................................. ...................................", +"................................... ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................................", +"................................... ....................................", +"................................... ....................................", +"................................... ....................................", +".................................. ...................................", +"................................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................................", +"................................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................", +"............................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................................", +".............................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............................", +"............................ .............................", +"........................... ............................", +"........................... ............................", +"........................... ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............................", +"................... ....................", +".................. ...................", +".................. ...................", +".................. ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ...................", +".................. ...................", +".................. ...................", +"................... ....................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +".................................................................................................................................", +"................................................................................................................................." +}; diff --git a/pixmaps/rll21.xpm b/pixmaps/rll21.xpm new file mode 100644 index 0000000..9ce1413 --- /dev/null +++ b/pixmaps/rll21.xpm @@ -0,0 +1,30 @@ +/* XPM */ +static char *rll21[] = { +/* columns rows colors chars-per-pixel */ +"21 21 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................", +".....................", +".... .. .. ....", +".... X X X ....", +".... XXXXXXXXXXX ....", +".... ....", +"...... XXXXXXX ......", +"...... ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... XXXXXXX ......", +"...... ......", +"..... XXXXXXX .....", +".... ....", +"... XXXXXXXXXXX ...", +"... ...", +".....................", +"....................." +}; diff --git a/pixmaps/rll25.xpm b/pixmaps/rll25.xpm new file mode 100644 index 0000000..455d52e --- /dev/null +++ b/pixmaps/rll25.xpm @@ -0,0 +1,34 @@ +/* XPM */ +static char *rll25[] = { +/* columns rows colors chars-per-pixel */ +"25 25 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".........................", +".........................", +".........................", +"..... .. .. .....", +"..... XX X XX .....", +"..... XXXXXXXXXXXXX .....", +"..... .....", +"...... ......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... XXXXXXXXX .......", +"....... .......", +"...... XXXXXXXXX ......", +"..... .....", +"..... XXXXXXXXXXXXX .....", +".... ....", +".... ....", +".........................", +".........................", +"........................." +}; diff --git a/pixmaps/rll29.xpm b/pixmaps/rll29.xpm new file mode 100644 index 0000000..5c72956 --- /dev/null +++ b/pixmaps/rll29.xpm @@ -0,0 +1,38 @@ +/* XPM */ +static char *rll29[] = { +/* columns rows colors chars-per-pixel */ +"29 29 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................", +".............................", +".............................", +"...... ... .. ......", +"...... XX ... XX .. XX ......", +"...... XX XX XX ......", +"...... XXXXXXXXXXXXXXX ......", +"...... ......", +"....... XXXXXXXXXXXXX .......", +"........ ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ XXXXXXXXXXX ........", +"........ ........", +"........ XXXXXXXXXXX .......", +"...... ......", +"...... XXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXX ......", +".... ....", +".... XXXXXXXXXXXXXXXXXXX ....", +".... ....", +".............................", +".............................", +"............................." +}; diff --git a/pixmaps/rll33.xpm b/pixmaps/rll33.xpm new file mode 100644 index 0000000..43fe974 --- /dev/null +++ b/pixmaps/rll33.xpm @@ -0,0 +1,42 @@ +/* XPM */ +static char *rll33[] = { +/* columns rows colors chars-per-pixel */ +"33 33 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................", +".................................", +".................................", +".................................", +"...... ... ... ......", +"...... XXX ... XXX ... XXX ......", +"...... XXX XXX XXX ......", +"...... XXXXXXXXXXXXXXXXXXX ......", +"...... ......", +"....... XXXXXXXXXXXXXXXXX .......", +"........ ........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXX .........", +"......... .........", +"........ XXXXXXXXXXXXXXX ........", +"....... .......", +"....... XXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXX .......", +"..... .....", +"..... XXXXXXXXXXXXXXXXXXXXX .....", +"..... .....", +".................................", +".................................", +".................................", +"................................." +}; diff --git a/pixmaps/rll37.xpm b/pixmaps/rll37.xpm new file mode 100644 index 0000000..d15e3a7 --- /dev/null +++ b/pixmaps/rll37.xpm @@ -0,0 +1,46 @@ +/* XPM */ +static char *rll37[] = { +/* columns rows colors chars-per-pixel */ +"37 37 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".....................................", +".....................................", +".....................................", +".....................................", +".....................................", +"....... .... .... .......", +"....... XXX .... XXX .... XXX .......", +"....... XXX .... XXX .... XXX .......", +"....... XXX XXX XXX .......", +"....... XXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +"........ XXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXX .........", +".......... ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXX ..........", +".......... ..........", +"......... XXXXXXXXXXXXXXXXX .........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXX ........", +"..... .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... XXXXXXXXXXXXXXXXXXXXXXXXX .....", +"..... .....", +".....................................", +".....................................", +"....................................." +}; diff --git a/pixmaps/rll40.xpm b/pixmaps/rll40.xpm new file mode 100644 index 0000000..3855ac0 --- /dev/null +++ b/pixmaps/rll40.xpm @@ -0,0 +1,49 @@ +/* XPM */ +static char *rll40[] = { +/* columns rows colors chars-per-pixel */ +"40 40 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................", +"........................................", +"........................................", +"......... .... .... ........", +"......... XXX .... XXX .... XXX ........", +"......... XXX .... XXX .... XXX ........", +"......... XXX XXX XXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... XXXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +"........... XXXXXXXXXXXXXXXX ..........", +"............ XXXXXXXXXXXXX ............", +"............. ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXX ............", +"............ ...........", +"........... XXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +"......... ........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +".......... XXXXXXXXXXXXXXXXXXXX ........", +"....... ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXX ......", +"....... ......", +"........................................", +"........................................", +"........................................", +"........................................", +"........................................" +}; diff --git a/pixmaps/rll45.xpm b/pixmaps/rll45.xpm new file mode 100644 index 0000000..53ab67d --- /dev/null +++ b/pixmaps/rll45.xpm @@ -0,0 +1,54 @@ +/* XPM */ +static char *rll45[] = { +/* columns rows colors chars-per-pixel */ +"45 45 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".............................................", +".............................................", +".............................................", +".............................................", +"........ ..... ..... ........", +"........ XXXXX ..... XXXX ..... XXXX ........", +"........ XXXXX ..... XXXX ..... XXXX ........", +"........ XXXXX XXXX XXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +".......... XXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXX ...........", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......", +"...... ......", +".............................................", +".............................................", +".............................................", +"............................................." +}; diff --git a/pixmaps/rll49.xpm b/pixmaps/rll49.xpm new file mode 100644 index 0000000..f2cb435 --- /dev/null +++ b/pixmaps/rll49.xpm @@ -0,0 +1,58 @@ +/* XPM */ +static char *rll49[] = { +/* columns rows colors chars-per-pixel */ +"49 49 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".................................................", +".................................................", +".................................................", +".................................................", +".................................................", +"......... ..... ..... .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX ..... XXXXX ..... XXXXX .........", +"......... XXXXX XXXXX XXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............. .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXX ...........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +"....... .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......", +"....... .......", +".................................................", +".................................................", +".................................................", +"................................................." +}; diff --git a/pixmaps/rll54.xpm b/pixmaps/rll54.xpm new file mode 100644 index 0000000..819eec7 --- /dev/null +++ b/pixmaps/rll54.xpm @@ -0,0 +1,63 @@ +/* XPM */ +static char *rll54[] = { +/* columns rows colors chars-per-pixel */ +"54 54 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +".......... ..... .... ..........", +".......... ..... .... ..........", +".......... XXXX ..... XXXX .... XXXXX ..........", +".......... XXXX XXXX XXXXX ..........", +".......... XXXX XXXX XXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"............ XXXXXXXXXXXXXXXXXXXXXX ............", +".............. ..............", +"............... ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +"............... XXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +"............. .............", +"............ XXXXXXXXXXXXXXXXXXXXXXXX ............", +"........... ...........", +"........... ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................", +"......................................................" +}; diff --git a/pixmaps/rll58.xpm b/pixmaps/rll58.xpm new file mode 100644 index 0000000..33847b9 --- /dev/null +++ b/pixmaps/rll58.xpm @@ -0,0 +1,67 @@ +/* XPM */ +static char *rll58[] = { +/* columns rows colors chars-per-pixel */ +"58 58 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"........... ..... ..... ...........", +"........... ..... ..... ...........", +"........... XXXXX ..... XXXX ..... XXXXX ...........", +"........... XXXXX ..... XXXX ..... XXXXX ...........", +"........... XXXXX XXXX XXXXX ...........", +"........... XXXXX XXXX XXXXX ...........", +"........... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...........", +"........... ...........", +"........... ...........", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............. XXXXXXXXXXXXXXXXXXXXXXXX .............", +"............... ...............", +"................ ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ XXXXXXXXXXXXXXXXXXXXXX ................", +"................ ................", +"............... ...............", +".............. XXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"........ ........", +"........ ........", +"........ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........", +"........ ........", +"........ ........", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +"..........................................................", +".........................................................." +}; diff --git a/pixmaps/rll64.xpm b/pixmaps/rll64.xpm new file mode 100644 index 0000000..eca4d6b --- /dev/null +++ b/pixmaps/rll64.xpm @@ -0,0 +1,73 @@ +/* XPM */ +static char *rll64[] = { +/* columns rows colors chars-per-pixel */ +"64 64 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +".............. ..... ..... ..............", +".............. ..... ..... ..............", +".............. XXXXX ..... XXXX ..... XXXXX ..............", +".............. XXXXX ..... XXXX ..... XXXXX ..............", +".............. XXXXX XXXX XXXXX ..............", +".............. XXXXX XXXX XXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. ..............", +".............. ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................ XXXXXXXXXXXXXXXXXXXXXXXX ................", +".................. ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +".................. ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".......... ..........", +".......... ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..........", +".......... ..........", +".......... ..........", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................", +"................................................................" +}; diff --git a/pixmaps/rll72.xpm b/pixmaps/rll72.xpm new file mode 100644 index 0000000..247fb4f --- /dev/null +++ b/pixmaps/rll72.xpm @@ -0,0 +1,81 @@ +/* XPM */ +static char *rll72[] = { +/* columns rows colors chars-per-pixel */ +"72 72 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"............. ....... ....... .............", +"............. ....... ....... .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX ....... XXXXXX ....... XXXXXXX .............", +"............. XXXXXXX XXXXXX XXXXXXX .............", +"............. XXXXXXX XXXXXX XXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .............", +"............. .............", +"............. .............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +".................. ..................", +"................... ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ...................", +".................. ..................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ................", +"............... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...............", +".............. ..............", +".............. ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..............", +"......... .........", +"......... .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........", +"......... .........", +"......... .........", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................", +"........................................................................" +}; diff --git a/pixmaps/rll80.xpm b/pixmaps/rll80.xpm new file mode 100644 index 0000000..3d20036 --- /dev/null +++ b/pixmaps/rll80.xpm @@ -0,0 +1,89 @@ +/* XPM */ +static char *rll80[] = { +/* columns rows colors chars-per-pixel */ +"80 80 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXX ....... XXXXXXX .................", +"................. XXXXXXX XXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... ......................", +"........................ .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"....................... ........................", +"...................... .......................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................", +"................................................................................" +}; diff --git a/pixmaps/rll87.xpm b/pixmaps/rll87.xpm new file mode 100644 index 0000000..2a622c6 --- /dev/null +++ b/pixmaps/rll87.xpm @@ -0,0 +1,96 @@ +/* XPM */ +static char *rll87[] = { +/* columns rows colors chars-per-pixel */ +"87 87 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".................. ........ ........ .................", +"................. ....... ....... .................", +"................. ....... ....... .................", +"................. XXXXXXX ....... XXXXXXX ....... XXXXXXX .................", +"................. XXXXXXX ....... XXXXXXX ....... XXXXXXX .................", +"................. XXXXXXX XXXXXXX XXXXXXX .................", +"................. XXXXXXX XXXXXXX XXXXXXX .................", +"................. XXXXXXXX XXXXXXXX XXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................. .................", +"................. .................", +"................. .................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"...................... ......................", +"....................... .......................", +"........................ ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ........................", +"........................ ........................", +"........................ .......................", +"....................... ......................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"................... ..................", +".................. ..................", +".................. ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +".................. ............", +"............ ............", +"............ ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +"............ ............", +"............ ............", +"............. ............", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +".......................................................................................", +"......................................................................................." +}; diff --git a/pixmaps/rll95.xpm b/pixmaps/rll95.xpm new file mode 100644 index 0000000..1007971 --- /dev/null +++ b/pixmaps/rll95.xpm @@ -0,0 +1,104 @@ +/* XPM */ +static char *rll95[] = { +/* columns rows colors chars-per-pixel */ +"95 95 3 1", +" c black s dark_piece", +". c gray s light_square", +"X c white s light_piece", +/* pixels */ +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +".................... ......... ......... .................", +"................... ......... ........ .................", +"................... ......... ........ .................", +"................... XXXXXXXX ......... XXXXXXXX ........ XXXXXXXX .................", +"................... XXXXXXXX ......... XXXXXXXX ........ XXXXXXXX .................", +"................... XXXXXXXX XXXXXXXX XXXXXXXX .................", +"................... XXXXXXXX XXXXXXXX XXXXXXXX .................", +"................... XXXXXXXXX XXXXXXXXXX XXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................", +"................... .................", +"................... .................", +"................... .................", +".................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ..................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"...................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ....................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"........................ ......................", +".......................... ........................", +"........................... .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .........................", +"........................... .........................", +"........................... .........................", +".......................... ........................", +"......................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .......................", +"........................ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ......................", +"....................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .....................", +"..................... ...................", +"..................... ...................", +"..................... ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"..................... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...................", +"............... ............", +".............. ............", +".............. ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ............", +".............. ............", +".............. ............", +"............... ............", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"...............................................................................................", +"..............................................................................................." +}; diff --git a/pxboard b/pxboard new file mode 100755 index 0000000..ff7f196 --- /dev/null +++ b/pxboard @@ -0,0 +1,21 @@ +#! /bin/sh +# +# pxboard +# Usage: cat game |pxboard [xboard-options] +# or (in rn or xrn) save an article to: |pxboard [xboard-options] +# +# This script saves its standard input to a temporary file and invokes +# "xboard -loadGameFile file &" on the file. Although it is possible +# to pipe games directly into xboard using "xboard -lgf -", this +# script is nicer in two ways: (1) xboard can seek on the temporary +# file, so the popup game list, Load Previous Game, and Reload Same +# Game all work. (2) The script runs xboard in the background and +# exits. So if you save a news article by piping it into this script, +# you immediately get back control of your news reader. +# +# The script turns on -noChessProgram mode by default. If you want a +# chess program started, give the -xncp option. +# +tmp=/tmp/pxboard$$ +cat > $tmp +(xboard -ncp -lgf $tmp $* ; rm $tmp) & diff --git a/sounds/alarm.wav b/sounds/alarm.wav new file mode 100644 index 0000000000000000000000000000000000000000..d8b2908b9e710604921a7783f9baa87f85089fda GIT binary patch literal 10234 zcmbVySCbr9mLB&_kE_@St)3LxSnX0v4#$#13l2eeG+`U)ZnUi~+g;veRaSainOWYO z_P!f!;9Y|t3DC|^B!^}=jG2{U6`_66tA2sLn+1?Ficy3@7wE3)s?0CXJ@?#WzH`r? zIC}JdJ^j>Eg9itWctgqm_}5Q8_0(VC-@kqKDf{QIp87XWxhIp8U*H-^l*IqvA&9~c z<1c~;!sCy>e-eL4Q9o8HVLJUJzwP)%2`knwDkd za`$Rx>QAvS@g0S>)n~|!d$(a6KRH_IRWzVQnpxaH0zaextK3n3P&fCbcT~8 zK~fam%9(~La13Ui0cawgOaVU;2?eJ8(_W8fa$?do6{U^Y<%RXFxzw`Xd~ z>j}ov#?sFE`ep}Kq8r&vJP{7@g<5xUu2n6UO2wSUVydiybv865n=e<(Ihmo;j36tr zh{?frRW22eghG*Uz~`D6cQ`%Mey`i*o=WJ;*Y-BIXLT)a=vgin2?V%OXL)_OQ?~Ls z)6{6(l~T*CP9-bzVy;##n|v}si`kr|iwwi7x+b&nU@#Pk$HP;u@zDvF$LsSJAoOVx6jE+t?oi5*WC{^0LcIDR1 zt|s%z6pWuvrlnkad24sQSR4(TYg_xtL=vfULiWe1CmW50z9*;$%VeA=~%j5HT zy{@s5QHLv0UE8_w=+0cVz{e?uWyxmXw8G5B=Eg?H;HYpg&WMt#%aWGOmFv}#rLgdE zyh6OB$iXX0vV@Hl3k8FL=_!wE(lOzfbixR|!K5*>vAe&&*{!OHXgozTk}Anrv(#Bw zT3c%7C4fgMMlmg@H%k^UpVLL&){K_Ts*1=lEb%N{Iv$?(xUh_Fs2xvmOuGDRWntsi z!<(yfRX&kOP$^E41Vzyb4Vd}TY|UVzp-3bl>YAB1^{kb%^2MC42(S>Acp+Sk9ZOsu zor(p$PR9hcyW4}|a(RPHerD~)gBx4R4LO~N#S*M6$-1fxpejR)$R3;!KY*4SeoT! zP19f;wf4;1Y`dJ5=vXw7qy?4udD9@#DQ{*~k@ysvAu)h>6*^5NVpvhAW^$4!$LpI8 zGe&KG_ty0*J4+Rvr=rm$%}Vg+mX$A6>&;fPn$HU9WIUR{8X5>s1vo4d?iUJyi$!1r zI{X)xNmKDiI5_Qt8DcnH9*@tT5Oa;Cy{kKy*IGG+rQ(S+!$HPep-`$+>-BoAXsJBV zW62aFC|T&7ggz67NE|IZEkYv(OgNQ@hJ%4ApU>lV!&uyIk1s&U`PS;r_T|lms;RK4 zRE85Y$PI`Beu~9hR)d161VwYAW|G)y0U80-j+hA1h@nLC6w!(wk`rI(@sR)Ssic%^ zu5GQaEj28K&!jm?v#O0ot5GS!K6D-XkcV*g9<;|6rCG!~?QkPrZPN!LgZm~}kQNU~fEocTblDD#|3@s1` zt|QyP1@Pw?csA(U#)i&4ZY=8fs3Rig=k~7eY%P{VY_g2ywxjYXvV+>P5ioAXv0&y8#4_R99= z>SD8)g){WETofBgt7l)!|XYbL2tr^WfGU`iOYgeybzuYOAqNEwRA~RH)7mZq@R?;)! zKqw~U>#bH<7cy`>IxGbj#3RvIERH1%1~8_*ZpY}QON0FrQhWWuC)Yaq^w5RLw6%Qa z=H6z@v~;bIH$<9>QA)8sJ5y5AL4PPE=c=`$Au$XmWi1QNmL^_10nl(b5+^cy9ggvl z;jz(yKzV-WgNI8cYHZ+A#OPeRx4S-X8AYR5F=QIcmTk_=v~vt{3QEk^8dX!wq|!V* zRvwuN_6Tx@Kp+@FVv>pl;IBu<98O4_Xe{0Q^}VLwqR5%3YUy? zdVO)enWF>2AeF7Q+m&nvVT;q@UQNy39np~AABrZBwZ;N&$JiJWhsn{4)0Nemzka`? zcuo&Y@C$qQ-d?MhM6Fh=*2Gji%I7<4i&ZV*4J7z-ccz&asdx%zm$$HWfJ#OEKA%5A zWiqMAv}14<^F*=4M#6326YP@`T|I1Gr^ytw+Z+7qQ z?K`vCoSd7hmvTveG-)oZuD7MA*Bw_1-EOU*AQKc66`Re-`kYZjJGA%lt2)Gb8d{eH`{=VZU;(PDB|M}(M z=()jkapUG%r)^YLm$w(isCO)q?`&Y| zuGVbi`D8pL<*SvPoC*hF@G%nJTwb^=$H;}#eaGT^`*%NB_l-FNN_T6u4&S}Bw|Au; zn{qk%`piNbYn8Ri>Wdq*6*Je^ymEcV4EenQ4at33W9$S4Gv<^c64@+|G)Bo4;2^m)6@y2e@=arS z9HWEh&zwCmP`kCecSju!rTNNAtC};K>sR)!w3$#W&J-(F){sOU$%n*dIGIEO*%uU9yvYLaOJOw&w5 zL{`d(Dz*!Z8_6}vK;T3LCWUklVG7QEVszxvx#LHJ^PBUVvp%1kD=oD1y4qOVy>hu@ zvMlCfh;hy^a|N9wcmi@hn=260lCy@ zSBsk5+T7Z`+_5A%SICltS~D#JsWvZR!YEpltYK)PfFezkxl|0fJy{DUa+mRup|itm zu~;q3u>NKXaZJxOW*6tX?P|VQ$!jS8B_xF+hscKAhUG^N|<;5@DZY zw%#a$2eLvoi_lfBRI9air`@R6s#W}|VEITPt{~6hkdPq4lbW+vYN9qqWr+*|k$B4I znH+ZpLLnrW88|sBSE|(O%}%RPt2G+UR;^U93uTieIG`DL&;h7J?Gl@_D@|ZQFp?R2 zP(!%_;Rwl9Srv*d)tb##t68rhacVVdWm2zN1`J1`N z1&Xq{59q1K5P%=B2O&^wmIH|d$$m&ko(^E6QfXFDbhB7%wmaP}5*`RfL;?^g=ShZ* z8%Y^#GcTyF2%gOfAoh?dJ`xV03PgA!B@LhoWz^M}8I(kfpoClr>h6{QP>Ee2Q6!Z@ zmfb_M5ea7R8Tc6M(c?(4H;^`y6c>XK4Nv$N*b)SLEZGw%tRjzzKcRU@no5REF+F~< z-xFi*4MeEk=#fq2>K{m~$M498Jq-I&dn*uf${zNY|My>i8LW5x6Nn#P?aysy>Iov5 z%AbhzqtZ~|2nAI@I*9d2Bq^O3(>lx(bEH2Q%=4BL4k{LZ^2&|Dt zb*i9%pbcIH5~K25meX_|_j0V7Q6vV>fU6TV4!4Semd+yoWJxW7VnxkJGOhB0!m8;k z!x@xpg$rp>X0!})D4j*NN$?d~6plXxwq z@w|o^3&fwvQpTXcCg4&=5ow)cvn-pXWrgRBj3mg6tUw!r&T|^isS<5Tti_57RIDXc zJz)yG!I1^vwX_TsqjbQMppX_s6}scNEDbqS0mYFbVh!+>%#o_dE{!xnkp&T9jltK7 z000G73c4WbxF{oIH;FPRJYJPBVWMmSaX}Xt1t}vQfErohc$pJ{3M1l)=MiO;TmojQ zA{yZ;unTx2KrXB~_7^UM?Qr-+fm)u)5Y--JM(Am}!X9X+^HgFRrc4&MkHu zB^fN9RWv2gV+^7{6j`+M`{ zj6a&e@xAK<4M7&byxQ8lxwn3KXC2SW zgu!x_JFQ9{@lcb~U}Gj7V;7Dcc@X^2z2BQbvE;g_G^sEes2 zCsv!)=3Kj41y>lSIK5mmqoe0f96NR9=&xS*8Ta|WesPN*I(=vxOJDJsZtjhi2T_3o?? z^@QkbV{UD0YpDzhG|tFIpd}EW3hCM7aBJ{`tqF_ zHs}a2+0N4DHkcm-#m2ijbFZ1{NN8?+=!fb>BuB4i>khG>+?^q z7Nf(LVrpaa#+CKOCLan!(%DA0UQnXr{e6cIA3Av8mC*L@zWcOx{=f@o16j?|%Ioia z@$QP`Jm<`mm+#))UYyfOi7wR^W~yd-^5W^^hmRb74rGtS8TbNsF=V|AK)5nh-J9hYmL)izv|MpSh&F5aYz?Lfw zt+e*u`}gKDm(Ka5*?pKxE1N>5kTp%boM{Iwbal+TE=OsyEI=Hy%$i4oIH8>mpJpS6xr+0t<$FHl$pZ*UA zgUyAFieBEhbMHzucy2IUx%=72yOoUJ7iHCQ7td1s11J#BoH~BsCyv#x|J!%7egFC2 zzv^wRY&SG({`$R}oy3I;Q^wWL|I5u5KkW)JYGr0=zM)5k&-9%<+kfiV&kv~Y{MSEx z82H7%d-}AtvAba?`L!GSyLs1{;aL0OHy>=}qYigMDs;d-6*%v}xijZ34)neG?7`f} z|NXmt$1{KZ+)#1%#)>Lft2giO<{fVh#oO9-yEnHjL7Bbw_N`9n)LC!-`j@}E-(uWDUa{C&UZ`e;q<3O; zXkg&NvDcq{!}#!z-|V}d{hOZ-6tCS{H3W6>+WqS_&s*oFYx`gQ?rtsN8k$mSo%y+v zCeeY(vBCcSfm4Tm`isQ%Z@>Nx|I*(+eS+P)eYGlc&CT1l7ZT^sy7cW&zIb;*3Qf9F zM!7xT%4>WSwc@3rk)ghW&%H?B`SzQS;=lacAH9{marat9WE!itZq8Ff10MbIqeuHo zT5Q@IhNKI#B{?1Pg14I(zWCPR=YQ;8`{Jvw>c{@>?+!(G?%bbIlKR}<{VT=E3((9v zpFCJKV^aZ;Nwrq9Z14%2Xq`mGd*bEi#%DkI;*0L7fBH{-vEAEu>P%E#y8ix+s^i?n zSnJM*cbBw;Ka^3x#-r>KQiP=Sx*TJp{YQWHDz)|5XCKms{_&MD>-yDAF-ju6iqRW^gR&|p${_L_sWki)!zH;)8(NTemWRm++NS6 zXlwiK!yRL!Zy-_My|q#lXhzFvBF9O&a>*1@B;%)|Xj+ZDb>PS63%5T0@UrvZ^Fxsa zoKT9fc5lDEp^u#zqnn$1a|RL-bjVnW)ytsBK#_0)n+#6-!+yu97ysc*>FrNHULSk) z`BAE~+*RXr>H7ZuiZXV=qqLTnN+M_0TV*X7&Y1OfEepyV{|5ROHshYr8+On>X) z2X{JyFTXk^cV>&3h|qoKy<4sHrGZFgd1Y2lQn|(Dh8A^2b2AIw937>RouoqkI4jV; zbFcjP@84>@`|jS%_>mI{qf!DlVy=GlaHo`Zxw+1K)yPm>_u5u56LiF?a9MI9CY5qx z((jGRx)2^d^wKYXerfT+wS|i7%!q_ApGvUR%a86YSxh{xHmeE?W@Pc|q68X{X)KgQ zHbrO4MmiJ-GgglCU+Oz_!~&(@W87o!^DpvFyaw0H-rYYk(uoNum*oX`ms>zAr{4DRsq?Y+tW1do(9Vez zZ?(bc7H8KM>!@Tw1qq@Fs!I}OkVztoGC{&LKzsp$CjHN8pL67V-}%%`i%+SQvV=53 zEi~F?tG2W@Te6DfJPIPYP%j|;Rte1l3P|Rl33MjWwno<=8uU-OhR>fFOf@S^+N_oM zNL(;L2N&~=rR8oZUj_$=wJerRR1=1d>J05t^mkEK5h)lplR((@JBKfv8;n;g45d{| zLNqR#`4XBg_4&n48EARb8d|<&NRo~oD@p6o!^mJ+m^3Ou;ECyg~wAt@YP!16lBMux$+<|U9G8m@%6xkjr} zEH}EdVAFJ2BgatCWFf2$DNY32%Iy{!Ij%t^qQNN-xgPj=r-brK@JVHVx?BCR6tOX#xBSgf*B#r>ENO?(*7pyC^ zT0-}ZfIu;i55$l{_zB2kb_*SO8zdZ!0|ayx0U@Fg5ONx*2SRj0C{7LSc`_TKksd8Y z*fN_R1CkSAF75i-IV z;=q)Bh|D%M-2WKj$xMii+FOp8`kxFU7om=A$`KeiWdene=@66seqBLHz&KzUL>oOp zz6T-pMz~($?+5^CRAawmJ}?Pl6n5L%-uylLBJ41Um-Y*O6RPd;z^;Uo_+k8Sgox1> literal 0 HcmV?d00001 diff --git a/sounds/challenge.wav b/sounds/challenge.wav new file mode 100644 index 0000000000000000000000000000000000000000..62a0e0996fa095c7189036f53ac147f388dcce4e GIT binary patch literal 7244 zcmcgx-E-SkcK5#Zv3>8uzV{#4PTPmghi!T7M7Cwgl0~il^=t~L!dTgZF-zUw@2*#nP>`^;00bKm1w;Rwj#o}+BxNY|CN z^jzWD&I2YLCosIY5%^l@IEry)a>blLk9FY++fm#MI13%E-*N(%30o*bO6G*j$PA$2 zTp2>Sx{8{1W@(vg3L!0!TGH2*;0&vku%zT#tTYkY5Doo=9hh$Hm=LRcCOl~belrxV z9XTxU9B2;2_^&XpE9F8}CuT7MeFWEsU6M8Pf7nX*WQ+ILvaHVKHXvre)w$Z#DJiT4QZ(wcH#GnbSKw=yo@=tP^K} z8>W$T!+siPo&KQPiTwZ^nL|4k;-rLaz|qh(O=~qb8XIeCjascytFEq8N=u8g3wQSq zbhi8IMJMWIX&j`=@;hm$veB@c#%UV(hyp~IYs-|pk*(<+=tIq5~p1i>^yz4m2|iJzS%S^1b{2E zen+{mE@xc&aRdYVh!=)%F!g2=%CA-`mF3Fv^3qai_V%rJO6@1V?zTTVIvOz3RZ-gO zhMj|>r-LBQLblP+Z5c&jly+0e7`$n7KT1=u^&`nl%jFh~+H9=Cn9HkcwQ6~3X<>fm zojL21R|jFd_jFt8rt4>e%}!_c==pXCZ!!3*qZ;W8U3+mTHD!N1F%3xOecylL+C(&6aMfbbBXq zy)YGe%MOw#NeHX7ksP>X+K#E!tJRg&TCG}LUS6%v-Iytruikw8Z?EHa=jnc+8O#dy zk9L#n$(Q@SX}h*%*&-f}`aa@Ud5FreiTA_fiBw+(*QNRCYd3FA zum0*kpG(<096C)+x4JK1j*{Nf&o`YGo{&$1?r5junl|Sb$#yo2Vei!3*~ipyR4<_tpE4l9CWk&=N+fD(KJ=u>36%`h?_bx zunN-tpqD~zSJ3`KEEo+a45wFDYV}%W?&_5*)6+A<|NiGq;ST%AF|C?-^}D~@iiZ2c z&~8;%obKLs5=N1-jh5jCNt$6G%Nw@veFb;f+G=^RR9&rBmRH^@-JH5~>B^l4|MZ8y zjhRSPjm%Sw*(J_4vbkx`jj+#!(<$sJgJYw6s`SoSVM#=3o6a`}+IWyGG^b#^WvD zupWK(`~Ucdfw{rLEaLixI{M~WrY|nk{nSH@=^k9zk#|M81|{lm*htG7gNkT@*cJJ|2E7E3K3LF~DHZ}_Nv zcm1xHK8`)}gS#8`%G~sg`MK%KKmExi{?)&HchH!gx-CBHB@d#Hzx@7p&-{9&#(O)% zI7oVr{^lst%4H+jIT-cRFiDlMR%?0bWx65|Av)k`)KY8`)uwyJOYyRlj)7^{;5KC`aBJTHMiR6R?jbIHzX|0uKrr)`C z?aH;8_3pE;zTGkB-@IJ5I(xg@Tig3bNBbSCw$cz=&tDw&kVrI(A;yC^Nqom>HZ-@G_5RjpU;ipIZeO|n-o3}49PEvT+q?U_J!#a}oOJu}a2VN|mPa*C z4PS5@$sAi0`NCW)O<#QDt*PtpKNvpy>a(s>y){?);KRY_m!qwZcMtZqQeiZ8C+u%; z4^!!wCdxk~GCJgN(BjC#`DJOf(v7LNFWp=hy-z@`3ke--nST+KV+rMaSY&2>sOY=8xF4c{&lVu@yKpw_%wt%C*&Z?jPE0?DI)kmz)@CQd zo-Qmv$2n4ukBS!lMePD6wq>+%?v{aMaYd6!mWCdVdrtW!K~jyf-sW(#-$}yUkhBDl zpb_GX$}6y>`Uhz_=d-jpH?vS}x?!AzbjEu)y}&4rY;Y6M8L)a0gN028*U8;-59Y(d?;su6BR|d-2~YTkw}$6 z+qN08)S8X@Dvp-Y{OruFpBo>JK7F>=_4M_1t(|-f|L=_kU8oH?%z)ETT_s7VTodQA zZi^7PI|(5U{OK@2IRyJ@nr@ijo%^G-c&AjZRJCyQ?D@e!G^@)ScC`KM`IFsE_#&^S zOx%^*b(-~hIO&t!li1P3I}V+v6Z)uE0Z zrt4a>*=)7Qg)7x+?fvzpb}t$3?BX~uG~J1k?$)5+>-0B!sqb09?F4ZI9T?)8;)#k= z+6Sn>1Qd#}Ay9xJR8Y3UJ!E~zfF#4jfNxQiG@2Sc8O-kvw|kMW42wr;)=82Sao0gU zL)D6{5h6K~Eszc9B+lzRl*_n*)!=ecBUgw55}w8`VI;+(`j^btYGL=|4^Bm;DPo+! zh-UysSrZ~-bh@1sMLpHH0`)cyKPq(@bFlF!5l}4AS&b{qNtHSz5gn=}R9Lx46tMK4 z^dwV~Eg=%Q%f$vreBwdARes!s9T8UK3^E_Sa~0AM!qAVa5C<=C(3YnpL}dcW^4#{l zdkAvcHV{RLJ|B=tgX{|n(}2-rl)x3JuaO85t06K3wlkFVk&CbxP60~{at`er43xKs zP`Hn*Kohx+5EKG=KA?R{n+hAO0E10dsCSw-al+*y$m z(YQ{O8DCGmISKjW$@6&5SZQphB8|aP6EOMpG@>yDF)KKq(tEPGjz#`&iWBPm9kGE3 z5^xUAA936m*BL~|$@du3IRNJ$Pe4rW#uNmnh}3g?xR7_oC}$o{;~BpwculNy9s-Ov zw%_?Tr=JTR6G^9q;C?dwf4xosor82TeRB6h*iPQULTBUS1cCTtFHT6#-ks(;zAp@L z4&`L>2k6gCo#kFU!BmB{3QC%sIJqF0Jmpua^G}acyDZ;t#iqk2j8xFkeepmO`5y@= z{-Z65{yM6p+-TGnMYV)B>+ywp@kC1>m<3ck&;-H6M1GJ_pPx8@3~Na&T!0FPTAw+C zoGIR;F-vIB73FB;V*+(1DoXGHEj5Heh@L3=wYU;7UQm-1ty2e8Va{Bj!a_3#lrEaE z;7L7J1sdW{KR4hdHRSWP+;LGIbLrs=F!fZ>n^pMsr|{j41n0e3T0=cu3L9X_%|-yx zC=6_iy67+x_>*`vhp~o$adhV}2@MDXBy+sM6WZ9Y40YQH7@F6lGBvEJZ;bA@LNANj z%o1%=iQad<%!76|+Q_IsmFKN~*=;HL@TLdTIB$q)%uVMel)qtNNc zZyVIL$0L3+fNOJ=AOj?j03gJSbU>>gZFvcP{B{8| zQFk0)$^Z@%oE4q~3eo@_UDBLZ10V$xjGhNl9-cWyil(uT0U7+-6zRm1X6XsjMI4NS w0Y71R?RKuJ6z#UaAE;@T=*UL&0p_^LKj?`be_#~!;}=A7{CD;SPdTsu0sI&Ic>n+a literal 0 HcmV?d00001 diff --git a/sounds/channel.wav b/sounds/channel.wav new file mode 100644 index 0000000000000000000000000000000000000000..27285963862a820bd8c5da1c85a15cd51160203f GIT binary patch literal 4400 zcmcgv$C4b!5d|Z3&{6yY9TlOk&_RsQfl`PhKyU%9!+JA2u6x>)H*KfKtOXWJE&+lB zDFGx%@gjYlUiK`Een5qtneH-aUcSsMeDar%KKjFlw{Cs@r#pY%IvoD~ceifc`T+kv z{Nt_m^TDm(-r86juKfmkFuqQOt;Tk4dD3OpTKoCt1e0fq2C&Bx>zofM8r} z#+^)r!<;u-O9#nJsnn(d^V%}abDmhMc#^A>c{?&BQZbwm+`$^-!py{0F`U*yU|C3) zh&+|jM@BJaQlo?rHUSzoG>$W#rSyuO?E%g#=ZQcC;5|7}>EGW~I@F15Yyf8@-I=qGBFppu24SYUy@I~ve5Po32PQ#fBS*c=aRh%It zz6At|t&OZnoK#V6V#AAmR_)h-&B9}86AgC6RXVCepJb8YBJWplM<%KcquO;!L?Q49 zgjPP{9<&lhr1e1ilp)Fr@THzXl1w%DhBa+NYg6eYV^t!GUS9OP5j=qsSB!|rHeuBW zh!wJ5`%tR!K$#*oBC|0!S(GR%5o7o+bRLK@2BRT3E)!v6U5~;Fk>JM1QIYkGaS+9v z9mP{NC;&zZ>I&^6=}jmrHY$)8N*Eb~EGD%|uw0BB&qEDrbFX6I1-IZ4Faffbu?*7T zni9ZXf=W68SB*@JW2wiQL9jq%Bm~GNJx>*}5tJ32(p57gnBbrrGr&UuXXF{^%0MO9 z3c|N32Rai)kif`BN;RY`&e1GTrc7=>Z8GDTvJn%M*6@cG7c;bgL4w-sCn+RIA&+Si zwrH@Fp4-v>BC1$2h=#$i?H_Uk8!-hjg0VDB;v^o8qA&#!l{iDN!{r%nT z?Vat-_0`qGYGzG&aXEI*`MjQv^XB5oqxtk?URjtUEey0p>5z;FE&}I0thEqJxN=xK z3Woh&uXl8KxWBuzwY|N$w!GXseVpmy;&Fv-I-i|Q%juJ^pUkRpm8mp}WnSgRQx#9>d}j5C*#wr%ZX0HSb3}cc-mxa6rl=+4IK+WPwX(w))EpU!Ng5OOi>>#Ki$cUDc#&L<`sMiv~)%W+eQVUSu_ z>GG;BV7Z2&h_2JD^?v{i1`xWv`EX@reQoJ>{PVAuZiG63PSICauU}o(WixMF+z<44 zIxezeT&BGtvqg?k*11e#>GKRsL$(hPr2)v=>vnb@t~^*?S-$t_!4LobrXCHYMTP4o zr!Rl~cJ8yf&Ui53)$wudEb2!XCZ?$C!jr>kB0T8f(R!2NQKvfy20i$_y}okq?%ms; z7ytR?LJuN<<3@dV{mbj?23CzBFjQl3)uU0yam-y=*AyVc4kZ$4;zSY!AX2wC=pF2A zK3se7#ht(3wm-eT_PwK6l_ejl$3On-`OGR;)#z%xI6j>gDheW$Cr6a>5XP9aK(n+g z=ykhbd#7`Fu(z@N#qCc%UOjvL>OviLBUNQ-R9ye^>+`vjCan%J{rb;c6L&GU(}^Zf|1DT(o=GB1P_5EiUr-y!7f<8 zwsQZoyTg+gFCOvDyZ5@;@w};;voF8>?y63QFlc@}K{?7ZE8>`GpE<=LhpN3oRY7io znlNa4V|``mv*qaI*|Srzzp{R0$CKG)dVGHM^;ajEh!dUFP~E6`Q!sHQAcD{}1`DJL13oVX$`Kr+&N~bSG=^a!v#Ko7Lq;L~ z6OfOm69l}>Nggo{Mw55AFD@e8vWSFA5DWewY|u~0Az0AY0)Sxb{ccTzac@n0vqJW??k`*+ q9|+lZZws9Z=jb>oqp^^9^YljA;&L@=ihzjoyFgrI(6mm zF8^|CNBQf&Jay{SFYxcL{`Qpo{^HbMoVvTNtn2tr=l|n!Iu6z1gClGCl)qU$+W!}8 zCG5{U|L=%*oWQpo*ETK7G;Pzsv&COQ$0J`lrs-Om#!AG{`I!1oMa6F*6__hZu$Mj4qfUHo**La6%$BLd9T43M;MA@cm+McEP zj#CT5x@-DS$#ZldKz?9Q7F2)|wr5zlL}7;M13>em%^=b1ZeW;>ZKT^lRI?&eb6wn| z`JQS8HY7rhMWuaR3FB>RXw{rV!wrF^`@X6TH9c_ZUZA+4w;kgKHFO-+vt3hnJ-d>4 zB{!>h5tMWkCn-3oqItlCxsG8+HOCGWJ=PuDQ3G)1_>~ZM>v0|S>#ko)9L4rc8#MWv z6*x6NzB6>nPNr|p4b4@epzbI`dozvKkCpqFY=WYI=t4ySP~sI9?-+ zrI9O_4u+~~WZ8xXU)ipX&k-5$y&bB!--H18%LJb4IgSGDT-Xp;V1=K$su422TnkPx zY}jrDfCNrxs)3{9R`}cuOyFA%Le4Yw&{9H6cU%>~h%&?vG^FG3v4JpxMz%{I(wB$@ zga9=KokUzTBF>AGR)x@H)fZt9wj*Zk2`O;Z&O z=@JA^n59veBw-MRK@f&v6vauB#7P_lf$zC4+`nAJM?M2l!~LqNDD@gvrCctRO2uMn zd#g~~-dx-8pC$F+>5F-sWl@-oLf1(rX%r8~SsVwzvJJ#9mg{+*4{y32WVn9lJA5lL zOy~#!z{gJot6VCUN`*qHw7p#_7mGDT3lD})G+j(W--p_96#CI*l0|VE`(Tn1KqX9Y z9hv|_$P{G3Cemn;2(d(rQLt*|GUZe%rAob4+%73frBI5WPb_adpGHvD@zN}I{mFbB zLnPwX&@{sdJjacafc^yWa11N~Z?MEPP-Ex-unxi%{Hh8VtJliKa)s2DwhCocEpHdx z7tcL27|k+NDceb>U@cuNMq~%!1`j$A==mYUzyqYu^`j^d|A@OmD}$55Xjtx}dZk>c z6pLjnI0z40h2)Dv(~L%wKxZu(FJRc{@E}2XhHrswxp9nCa9s;9OejdDAUaG;gdm33 z(lD_r_Y}B8Ab`DM88K1N79S5yCrAY+HM%Y$F`jw9Zf?o&SHlib^?SP z;=nUiMYmjro8t#S$M+++5az*+Ix|n4XB%o=QIQ{9s!}eN$~8qP7m5`~DyXv;GY|fO zjxH+7{Mq5i2RjHjLo@v}^`&^2x~khj9I>GR9#t_)6Q3E49s}QbKH3YoH8n+14M^AO zwK{?g#33kvF72k!k;t1bi zFk;~vbVn^334|N8v2=JuW>zW&i*S4?R<(%I)`X@7M)$Hv>4za z{=k*%%L?E{h6Cm2oq~A_lhAsQy=)c`g7Sw4)^r5AVkeWyFbk05ZX8DFI$@lRMp-OK z)R$@LvfQH0Yn&301E|EI>q*IFU8hly#D+)mWPwT8hN4TkthES3j)FD_a{VO9hS@NQ z(UL~9vW3B`ov!e{xXj6R4$J!Tt)m|Q^K2jL`yIH`mv9a)1m3hsT-H$)?h zA~e-BOVACa-oZE0S_#R(X12jF_9j})2ew-29+b7RhFK&XQADY3HXe<}5fUDCdN`eo zhQlllkC&L5M&APOJ?CP{fNI*P>kXoA8PYjtcqa{nakh#t84OXkg)77v@9l!KL?r&j;-oRo(BQye-nNQrDpS;>Y1ZJONNwK_SGM~?8S>6DU znM2giDcvr5(*u%&j4$eq?wT9Iuo4NxmrP`@5h1z$n5-(Q=|*6F1`8kn&ICyiFr8rR zrNf1M`Z%W_@4<-pJrAhd2T-2TM0jQ)GhJr4LRqo=bb7E@9E=mVmTUljGMmpPLyS07 zkzk-G&pfJ3|4P7;qC6V}I#-^^q^7XFT_`Gckj@s1#T=9RpQ0m>7=HqvrvlOsS8|Ia z8+?&lU%HFoJMDL@AXLNAF6K zF7;%DA0taHv1+a+U@$J#On~9dQVm5doy-q`Jq87E7v>mIdq~$pYibO7u>gAv&i8q5 zUO^v|l51Up*4X4g?fHC;tdC?5<)f8lL(~ANVAMNjWaZ7Ab6zDSvRIe%BEalnh~u}W z=r)Qm(gpd#>4F6vtYEJjW1}lAh0ut^Rnia|YZ)bgR^L+2;cUr_fOED(MV!uOtnV=k zAu|y*krf^>NzUJ*0~S7!YEQzX8$#vWox;8pNlAV*UrdbXip-Z8n^YwAP#~};%`4(D zyl5|q%Y($BIFtqV#G+$~kBu}oBzeLxtR)m_c8&oZp*t5tL%7eqnqSQ0efdG|bUOO& zk}r#`#|E#WZHbUSy^X*V@ISfu=idATVx`f~FP^-0^{uzpmSH30H&vz4P_&li1^sMy zG~OExcL)6*M;Ykvb-gZr@PH@J?R4Je5zcaR1DW?NO=~urIoW(}Fh8pe&Fn_W-u`5| zKSn_JBm%oZFY5QvpwT=5>H@NDw%cvXmQ&)qS#&J3r9(AEX|Oe5)$7%A>3*@Q7~OO< zT|9g+-5Z2m$7**l?hUftVK#^ncU;agdno&E^mG(bBqde(mCs71r-^Uz-Cvowk8JQoUNKR*`T!#qF&-w{G68 zw&TYyfAh(UiQg)3->=*K>67Ol9z7U_tZbcbFX&;!0!#Ez_MQ=M{64>hft-@LP#$C$}M+cKZ)KWVA z6pFMk1zGWK7MjKNTX#xL+q2c;ovY{1o_+tkvH0ZMfB(!ZU3vFxBYpbYKfFFjy-qiq z&QjlQG=tr}*{IXNk%KoF#+}C2+Ipd`o2^E1bM40UD;Lh(%bvadG+h@)dlSf~E z{ncX7?M8cx#a_2vt2rEZ19hj2v-sWEuHReVC^g${y}Gr2^Tv&9m(Feto__Viw@LNZ z=?gpAlQ&<#ei*xMfA8?oB(RmbhskX0DV2K5&vrwzys^GjX<2RfVeR(KTOV9Hy%9Zn z_5C-|&dt*oYon)c-hBR`?{$;C0~~5vdb77b*-NczrD;dQU0>VTxKpUL+J>^TwXv~& z`}&1nU$hQi{o{|*(#`kI6n39{_2#pKup8{|A3PY^*eLkZ`Ce*QchpXQI0{>p?X6P7 zXt$Kg{X*g1-P>2*f9GoO;hTT@hu-G3_pTZTFJ8YqO1r&ub}%0XP4t7^`F<8?)w&T3 zvbdvGOXUVo8@0+#rMk0q`^xEG{eAht=ihvHRJwKfYI*O;M=$21AR0bAoTXl~;r4dt zv&3uF8U{9S1K(`cYm$kmUQJEexqIWn>C>k-(iflq?o$&felL75e=-}Tqy5F>Nn|S( ztDnse$AP6*RWIxhu(@rc^RzUzt{QEtjR3fD@%+WhSL@@)zxnd9TE4ed>HKy)KH4h2q-d4iUu)gSOqOm$o-I?yP-q?aI|^y#M&) ziP9+D*9MqZ2H9xw?4w6Rw^^>Wy$}Z|p5KEOcB|FyplJ0__c$P+`dK*Xu3`q?xP9w` zYu9f#`osBArs=h63rE@M?qquS?CCVN)mqc;$_@*a)Avy5ET`9(?PHglVgR;{CJ#pM z-!E*guiw0WtK#&s*}!%?Z7=Y8K{S4N`1EKp2s>>Xd_oVL`bS-|f?Z>`+l!(;CZR6c z9NG}hFqH-l(~8^oHaFJSZr)M3J;PbM8^kEx-FQ5mKbj5GzVCOys?qU4F>UJNaMSK! zCZXz~6JF$0Dwz zZS#-3SZw3~Y!Q(IXO= z5smuA7*J?0dE^K|Jb8qtmlK7s2V*%^K)tG1E94;rz#ia4IdDji15d^iaSGwc9?V|8 zf@V-{g;oQa+QcCU(hlU&#R7)u?5dZ8%n3 z!M}IqctGPcCZ?W5gC~h2i&#L*M?8*XD>MYZI08Y3umfU}TS_##B4&=DS;hoap@r-(I}fB71vUsd<$_RCgd)n5GG#|Dof*N z9jl;dMJ!rI+m<@z#ci2Kxc!78fMH&NBBm=ACwMI0$t6eke6ie1=7IGVipt2QL|~Rc zOC;G&iDs*6diB23GF3RSc!^6C%9&bWk^etk@>%{}-bG__u>8#uWKIPqFaINtvhhNby`yiVNo-w^y3e)XS^ Zj#VJg&k=ZKb<^^ze0zLt_1S;%{GW67j5q)Q literal 0 HcmV?d00001 diff --git a/sounds/ching.wav b/sounds/ching.wav new file mode 100644 index 0000000000000000000000000000000000000000..20c9bc4ff35c712f8313d60bd6cb544d79cad0c1 GIT binary patch literal 5625 zcmXw7S#(s_l_h^!z4{~h=yV)AD{05e!N%ak#$h(tOp*}@u);iPLP#ampqk!v@4NTC z`-U1-rP3@R34|mIftfL*84NO>fZzpo9Jjq3r-yj0^zhODy>AiArmEh1_uO;NKKtx* zt2S4zS@XaDG;7w@*S4(Q-xmAjk7mu9^#lC(<2kd+|9&v*hqD@LW3``P4Pz!}+~g+y z=kl}s!<)q|N^D`ORJfYT(=4H-eJ#cdsaV)8*pYZ4pKKRJyCqueitjfD3(c*$gLb1j z+SRhpALDPf9U2X7w~l9aH1>?E+svb-y4ud8v5nf)NbS1ZSyoj)ekQQKbgRGOjmh@| zF9)ul-?D7*LwEVMb62)6a&PsnSa;$^+lu7P$;yh6t7Lie)nhw0vq|sfP3^gErPdtIG}l|BozZrur%Q<>RmZc;1no)3R3hv+<L4<@5-1 z96MpAsZLbKVJTfNWX(up>JVv+c1|c;?6F+)?yh(An#k~2Lxn$yO}me^@32REYWEyD znb_PoestTq!r8vf)yFQ@FK@qgrh5I+n|#I2E7R+%O7C_o+jn(*>w51_VNuJ)WBcbT z_xqP@ocut2F8J}phGji}^5^Zpb$Q$D>>u+ltvh>v?=RGc$5*~G{dH(|WSCD?;b^ zj(F*V;H$6F@wuz3>hIA<~5^dG9f zyuRca_uI**U+5SMzUKbV@Y?D7`tP1Q`px#)+DCt``$_NT+1GwO@}DhB&66Lt{JiH; z*X~!`dwZU5?L9-bp1IMsuPxWLaM`I#Y|Hj@=PNgL939>mcywaJYvu>N&+NSWA6-vu z|7L2z?6zBj3tF$8@iwb7?y9~1cxaw-qo=vXzoo6#N5(_zrtU^pY@NQn`I(`=y8fM5cUE3_(7S!Zkz-YhjiW=GHccLD-)l?{HJFpmu8qo(y7}zFIku_u%Hfr&(=P=zIEN$Ux%OFaOu*nXO%Ces&^cDPnp|vainHt$1Q(N=*Zz@AxYp1=EY>y4Wy=RS4u z^xV41Kb(4+|G9O^Oa8w#ywE#6ES_cG)~z=~XM2|&KHuJ1^ZPrA)m8&?*v&qbhZb@%l0 z*tmCMmj-hb@nqUU1)iwEH)APgOp@?#qi$Zn^sI zTZ^8*d#7S?;K3(LYG)=>D}Q(M!>X-h`r`5z5BJCS2WCz#ie4RvEou6!^vc%!d-qEW%j;NIKKYPBX4K7 zY7d8gyC^lI{<8HCXZOvgUyd$Z?cSVN^ybXfaAoU*i>s{qerK&CTzO)u>1M z_&#=C+hTS12PzLwrMeg2IXyRNG*S6#iocWM5?nU#xAd>mb}f96tkRrl%K+D&Iq zHf&bk?pwEad{7IdPNjZt^ydPV^jdbquA$rdoQBI28|Qmp_ATCZ;ZyCo$o=uERs9e7 zlF0Fi`sJzHVnf5&vE3`P)1tw+aClqG;hu(NZSM?KZz_G%Gk^1mbD_npA5E-T-!s#> zVDGg{@ui`g2iI)Kp2%-cPV~i_`8e4`j$|8mcfB3j?4Iu1TJzSa=9R5y->O=Bcqae) zmeUvZtWYmcRaYIl$g3JoPVKAlCbL@`2fL!J;!rVU7Tnf7?r?mYHa-@vaZhG;*Y{1w zHYpPWjT`c3{2dJgQ|;@5qy5c03TMRr3Au4 zAUEY~4|eq>_9jPr!T~XqX$fXJv;$hf3nofM8gYm0ruKYibT>az3^W&}&6?Q3-oQ?A zBy%8;8)0>7A=}B$7b`95|)?e7j9NR7C4!BTgkQSZ+NgMNv%YS~n>-OgJ{!xIMbFcgtCLrO<3 z5$2_IB;t2kfmps%4;VegSil+Z1L5MJQm6LjLQQU;XpQGOv>@rQ6LBv?kRkE3mkp%_w0fPeX}pCW_;L(;m-tYHhTX zjfc~nRxp{*#zL&%grn&K#g5rT!pmzRk`vLSpEo0<=(UHPB5BnNxp>4XIpIXMV1&$0 zHx~2rG)!_HP8l7nUC*TTq{#4?k@6A=C&Qyg-ix)10&UYJSa!(?C9@qyh!y>4%oodjz`s0iYDx|qw7w}NSF@S6yfO!mJtaxm0@uso7SQ{FQPF&N5Xo>PbTcFP}Ovr zBv{r?Xr8Al%;l=)xSGOKR#JCUredZXRS_u?H+)Y?SZO;BMmWO%NjQio~O z;lvOrs#8y>n&mQuq1HO{xT4#5A+F6-?wW?_;JC#d3r7)`8B|!r;G7z!z#ZY58g&K1 z6*GvixXv7l8eEtQ_3xi z8;n!aG%2$Lqb6Q-c%+00uAAJZ8h5yXK;hPLDdH2l%3Ne)3u+*K#3pnN_#i$T#~qg? ziRTz9_bt_MJ(@HlJ&T*3zukA*hthdb<<&nCIr>tLnDr-!`@O=H*G33&jtB3~TT39K*-?pg-5r4tAFp%}O=Oq7Qix@A*> zU`)%gG-4wL>RGxhAqplaSP6_QU@R#}n1vEaW}#MwB`k%)qhfltrdvKiEzt{B%2ss` zU=Sp$GKa!7C#GeASPmnmT`qH(=2RiDP`R{lWwM?m4JZI+gR2rJ%Vv}bn8`eB3&a*S z1!uWIY?~ojp%b|+t|-WA5sF+W=dj}3q!zxyFpJ?X`hv;kffWL>3E}7&6PzJnJ2kmw zQWL)9R~=Y9-oljom=}@ji7S0T&%o*Rb5No+(W!(|*_r9Q3h+L8g+aoDr z0grNlP21LWOK^NaLx^YqUA0n{hI%p;#Lx{>HYu9JKyLz2$pV=gcNvrrorn@b7tlDe zl{78GeZ| z;059gUtfu2fGN?mIPhWMgbfQWp_2@fI|4{aa8c$H#89qAJHQO2kUTJLiXFifE~`o{ z@IkIY!pIzP!WrNdRQ8s{3I%jrNhsM{3~J!8)j=gM!+K1Ec_LptesbJ?aW>S!d0Xj*A zx4{yhBmpxN1HcghDoax=LL4A4zFmVnn8^h54r^>2VxYx_=R>1X5F@lnnF6L|#B|wB zwhi@gpobstimXV1X)gj0jl)IVXS| z-WfELVd4|pv%p_VssNTDTvW`!c}%hbV+YpdIfi;-yg}8`OL7>Y9tZ^*3O{llV$Psw zawMZ=QJ%-R;34XahvkWfm4FB~rnJRCmFwjXg3^x!4|5XFQF>gKE#%OZvlIK^y}Ykn zCvPJII4*CAXYx5Vk!gcj;xit`#_sh?vh$2C`Od=sS!|oE7vKC^0C>H{hhH}%#@3@c%0hh8{=>{+$8|eTr zVM~sAEe*=Qk4mQi2sxKG_9Acri;C5Nyi1cs)!X&Pf3BZLs55JCtcgfPZ5P16iv zScWA(Gvt-r?&)P`U=Lx-Hj?V&)srlhe*5Lk8~1v(`s2snf7<`0zWHjkTD`*a^|!0~ zy;{9q?cS+(f5OLF=PWs8RSMSWK`Q0T_8+%?Z$+P`?fuTCun~_TH*Hcy7~lEQ`{XGb z8#S5ijnB>)YqT?(v?UVG7cGM_K9Gx^GXMnekuq%B!znw8o^0?$Y(|tf&Km1Tx%B<7 z|9T>3lk$Psj7= za5zoFVJM{}Ov7WQqzsYKqL-opzYbs9_I)S%w&$K;y1=y7hu}Qklo4KljtpfSO2#;s zK-iZ+K~vE%LI<1}81IcdC8)ic_oBl@u5wKWww$lZ6}~F2zI;Av-r9k> zX0CZFi5tgiWXlB+4X+0e`Iy~$LRE(!DXRu_XUB?j19b(Rf6;<)i@NkH#DcRZpKBR& zp4=6khj6XLK4teD$jiDbXzf(LXV&cH_|LXnR`av{UvRAC{wJ&#Qha&!^=~ezL$`_Ab#r%yYgEBmCUGJh39+yik0;nOWSd}F%Eoq~Zp_!D5$qKiR ztryuhGA3;!Y{CR|wD-|D)OuW1xP>TKPkh^jXh=K71txIua^4ygQbbt^Dhm9_Y3mIe z309nDs)rf1Y$+zJtA7m<-s0rItyT*ziHN8#hZ7qyH$IU3UXJ~|ChS!e%ORc5__APg zwx`}|eT$rATxjE_=>*_xe CM;c@R literal 0 HcmV?d00001 diff --git a/sounds/cymbal.wav b/sounds/cymbal.wav new file mode 100644 index 0000000000000000000000000000000000000000..b55bac461a23065ffff3559e4a40ad3e273ab8f5 GIT binary patch literal 12124 zcmXYXNs}CDa$WPLqx27S*Fn1LL`kG1lSt0eGu@2_8dX45R^^_tM|}Gpdt^kewWAt9 zFEc$uQllYhCYjMp#*2QIJV6yuKvq^pe4G38_nyZu{_CIr`RD)kv(LWx(_jDDXdeFS zfBD&GpZy8^`B(quvrpfD^4Y)m?BYB;|99{iS~9xHaGe;-C#nicnkrjXb+Q!c`k33R zt7&4YA0KM;W;BgCZ%TK2U*-m-bP-N}vAUA?&F%NC+#f0$kEiH7>(i!Tg_wCk7NL@{ zczq{-{K+=)=vbtiy4`OcTsvHyHaj&n1l=OHi>?iB!Axortq%B zG`2~;L9`E#xAJ~Jp9_C1Ww`Oq%c^a6n_+(4Ud;-x2*;$q4c~vfUT3rQq$@A`^H=+A z#j6e8l*Y z{Gax<4F-HBx2qt!dG^%dw{*O{_Vs18y*|5_{9#_QahYQ$MKnxbfB)7#UTkc1$Z1h> zzQZFCC&PRbyYGJ9RbS`ZWRyr=b7$hR>!?V>hK&c6J;a@v9>chK*##p1(~o@l*QT54 zzn>h|XK9?gt?j7WPgm@rQJ^e40*v_Y3=*&+~6_x*Kw?q+egW zNhl6}KZS&_BK^ zKfc%&f7#?`rdkF!A-`eiexTe-qQXOKvRSf+#X-yH{NuUz<9PJD-LF3upFdZxt-8Qn zJmWWS)NjQ*dB46a$Ct;qUo`=>{^lv(9inaW`d#rt7AtD_!;Y8jrOHPbCtsDj>yNei zw!ukjC)WGo;IDSC`ZjnrA>XeS!)5w?hD$A)$BR;b^#eNZr+q!TLCeGVIsUv~zQ36L z@#Xj1&;Rf0&G%fLm3(>|T<_?V*88vZ-SutI?!G?EtV@Q;@5a$T{S3dqa&#r-;VSy} zi~9H%@0XKr<=t1!{Wtg1@p@EiUQd7j?H6mA_Se-aX-4g4_2%JkmPy?fa}ne1W%kqT z#p7*uc1Pd78)e%_s=LtN;M;Nburk~at4Vs$^Yjm~|2(bHbiItqF1%I2Q-pY0g{h?i z6>ZAw^tSlfABHm$)nk>ao7Y3_?mW9&pQpX&ZQ|LtFXKOwY$sGb%5FVxh^8FrjxFvU zUTmeeUZhXq<(>CPXFq*?o4$U&WD{Jx{%EuRZATwg=PtO2QoLQ%8y&2IGWL$FxB2rT&&R`bmDSbjPLIevj}EAPEJpb0?P5ZTuO1I!StQ59 zE4QPekBDDrBI2fLnb~CtTYn=4|F{2{|4p2x-!F#Q>}lq$KJYhde7jrNCc@^+XZIie z0loOJsPnWj8(*i2zq&~$>Vp#dsdLEJvHxx=`mwu_Svw@|_) zr(M{5QF`l-|M90yd<^vlL6-TU;>Sf?=R;8QK8TB}Iwk1wa{fQZ9ZLFG5#wXqn6YsC zWOihu$9lSnp#aR5%?<@^bPW09(#YFuyt%x=mmRsth9cAt*ih4=e9W^bD7u;L9PUx{ zZ05LM&3}B8tkdrntu7S>-wzTpS{CZ_7Kg6n0o!=>x#4Ym+6|CP}LW!Cmr#yeGqfr&&>UD z35BX&F84*mvOC|~=h^uaQoEmR+o{TiZL2ej ztYO8szZ&rB{a+oI%ijv0-dyW876GXmt!A6!mwElB(q0=KGIRU7L$~DoIZ)T-?$sj; z2Qhxv{MEyX*7F^S{l{{&mg5iXm-j*3Mxs!wAEGawtHhdQn1%cG<<;N%EuDNw$2}c) zOE-vseVDA1pkMLjhS1zqxW$`DSMvf1h%Ce>MaR5Hl-{P9b!R__t8#LmCXnCN%@>;@ zY}P?k8tmV_#kXhH#6#%r&kl0&;mTwUT^-VXR+PS$4z-@x+0@&`HoLsHUQQz-i?~|m zw;_uj&hYQP$@)Bgze-Dg_~lR2%lFakS$U8$#>-=N@$7!tzQ>qu>1G+;eQ6n~0@7?e zm)=ECQ}k$PGK_oU7R}uy*=2O_oV~uKiL7w6yDYb_H`S!|RhhM;GmowCcElY?JCXI;luUnho9|=@w^%1T zw$e&o-Cq|b`S|sHakfvhxDIFQmaiJMPRf3IIHMoVeEaUz)&F_9>3;rq7xTMWpU%l} zyi$*2v%dHaaxr1U=%zhSza!^Ah#(*D@VrSYCPluPdr$uCag^MKGHB zI$~X9F>{z|o+_$!)(Lxvy{7YcV)YEwIIGd^HGLRCIP9-Q*6?K)+Jld`8HS)haW(k# z(JSPrt|oRnU)*K>_b-d%;QKm4c1-HXRWm$9A?`9zOf5#mX`G&E057w&``5)!)b`n#cT*t%@S{ z9jV2#Y<&MQ&Y%cFNL8@1`Ljn_Y=ua7UXXX`;<#$6V2>B~VRk>Vmaf$L>X3)oT4Zf(;$VV);%ajJoTL^>-Ch@xkn|yC$xZ(1d%fyO61NlokJHfy48+s) zqsn8)w}<#4`_q3~{_+Qu77RbdoPHTX+u6iyG6EiG^qP@<$m$hbD+R6BKik@e1IDz+m zoIGDa6?|Q9wJwaHCQ5$urT_6#RaUR=#jpPU^6P(iT`bdwS54*LXy8p|qPC-&TPq)y zd>wGHa-7;mE}jh2=HzijAEyuHn?H%VNt8r=4;9^huIp0L(O+Nh`^e81Qhvzvw4T*bAT zciTl@Ox76L>vxmj(}`=mWIrpatGm!P{jIVO4GfVJ_raC9LO$6*4Nv7d>a~wTAw<$=B&FM z^s1RRF{FVsdy&dE3)jnRouF=pw@FsPa$Ft?X+Sl7)Ax(IR+oFVT+v>R{oyaF{o8JK4+VM3 zO0Ssh_1QZV9!XBJhgWw0^Y0RGKY9OFJ$?R6le;%V^>SkurO@$XaQ)k>)^ zOYLkbd9vlRr&W6Q)eQntu{k@i%O6u>ZAS7`U+vK)D1@%L-tK4G85$Ha>BnodeD~^k z`^8f+s}rekeX*%t*Pva5p{1W|;66c4uo7LYUD$C-gvhcAv@)W)57OI(s&TO@ffN@} zA=*^my%=sT7mv~9(T}`?I1`;50kck@tx0x*&Scl*kN4H4=nm&=I%aR-K79Tz2%i?6S-pddn6yczInP)ph(HG%9EwqJ6C{T>oeGLz z8z9J@S>28A(u==dW}V5;)_0c`^IPsBy*pDM=g}rBiI>B3JQIc^p|yHvuooAlPOO1$XIam-`aot(OgXj2^$)sV{$+ z(?(W{O3L=K?mfe;4r__?@z#Q*6T;$BX2~u_?Lvt<60j%5tc|OB*@^jDW$jXAYj*vP zrFFLPg1gJQnTkPQb#Ap*NT;OWsm82H=tJiBQDLrnnhc((2}|#i$paA*xHc}P`R3AW zux~ryik`59lg^y2`!m z%eas3eB8#R9o6e|avw*%B^0o_aY=gMqjtEg_9L=c8KblLhpX_gDn+w>v#s7d(hRN~ zRqG3PToI$0Z4o1}#m!>%lo4KN+zKH;K9O?HA0o{AZ1ymtH(%|m>HgK>_|<)NQMtnB z&7!kWZb+<(nDL4Q2g-Nn#V}Vy`{_ECyAVYEjtGu#zLE8EKehS%ZUu#euhVK;4Ws)w z-A-gJYF1QR$XuEIl&b`a9YQ) zBUBsYG9(7Pd^op_KMJ$Sau(6_$^e?)DnWLpQ;j#WqP=pUwc`LLL{VeG;ti~&Mi0Hb!#G26&8(^f(2b~uIL}$I)?67&j9WoOgblqsgpzo- z-oV3MoDsQk*yXljoYCjy{1ue!8@skJf6z8$yB5TZJlyaMGkShtCKCMkU~jzk6Go@jZyS zdy?F(gd~i5x|_(_-`fa~iuKvDUnT=!eL}WSEy7N$fPw>ntfBP0^OxPy>}DDyAe{O_ z-_CFw3@PqCIEw9+I-o^IWEr|#Br;b^1+3VUyEv_+7C|q34NSR!Ay`q(dkI2?jPV#7NGru&PkosyU zXGYJr?Kd|fZPO+rN)iqLXk1w3fgDg=Bz=O4rDntwkph;-0XMoCcq@mHZRUlGC3VxC z1122X;bLEn2a<=>w%PP4*2>%1bh^%0jv*j88x={$4>Q=es1(WVdGf=X){;)?ajTcg zc)D8jE+}eHI*_=zO1R1-pbxMsv_0$VtCnTNz$8(bRAS~1el#GaDQ?x=?t`=tg^#PO zkYUw9p`272Ffa7WL@83_Ja?0$yE>+mr}^SzA$jW;&n(B5k7AbF>CmO@(!R-Bzsd z0W6ddI2NsvD7y*0o{6NPSv3Qj!=`;ga8b`IhcbxX%2$;jXrItr^0+{yomU8mwPYQ5 zzkZd2R8QlQHwm(!G~F=k5Ox@de-gswsD#Z;bHIO{3qoszoDf05Snib$NxaUyfuzzh zX)<2&6nIky>>z8z0!SdEszOqf)kyC=k+MFC%NA!U&oaz5Q+_~D>?}oj9>Ou_D^eA6 zw6$49>+;g%lFh;6r)>wSBH{IsMDP?!IMm>2#_1(6ln$0RUB8TCNw2CmaK2VxxOn@kCGLX$4@BNbccnv(< zVF;m9n0Hwi_SNgYoR{%hhAQrw2|ZwJ$}rq|#b%0+8Zz!=xR^{hBQ#}Il)wx@X4x2R zKp>Nfm9rs>cGKL<2b=67vhl$iLTtT^HyOG2VHpfGmq{uLbt~LjVmP?t^Fx0TS-@Y)heM+RaHbITA1& zoWvVX=G?^wWNctcq`-?`l?nu=TOLqy3(_M2)gnm&5gM%3yv#}vc{W;K_v_1>NVv;w zN+GsU(r96mN{#V4S{=i@oNtiI{fA^;qdbnGt5SHqNw+eCVoPC*i&)lSNlKU4NJD!B z0GGM#kfmJ4GhPWt4?QoK+&s~P{?rDAfipAfqG5*+y^f$1-@GV{+Tv{!qq0I z0tXv!rXA4epwKCJ=Ytp=$s{kS2wc089Y(6a)LWxewu+0~Ukr zjVbiT>p1JU03_hs>)uT_JQ$+nW`Qbf7-W~t8QAg?Hh#4et1Ve>fy-u6p#mgzDge^` zjZBKTfTl}kapqh~DkT6~K^DnC)hj;4uF5JI>V&ls(K?lNP`D`XmZD!)DQV{}Ckj|; zEpfUj zOO41Wi8^eGaG>*zoXHCOWlnkNF6IM==rA@AeXP?Q1A+w| zc(S+wnAMwL*<;3W9}0&n2G*JxLAiu}K}>2!!BMu7rN(lcIsIF$U4uQ}UYO1WZQDFlH z92M?eG6Rrva)+n3oVQSKFwHAy+mV_>`)VfgB?N5){Db9oWo!W5!&PM?FnUyO0h373 z;=mz7G*%m;lySbzGo0J0a;rf{TgELl(0OEXY6`eh)>zPc3T3sQF{#3hhH_^Nb1PO} z;wI#E1Fhr`8Y&E{2yjnPWkETnH$H0nw`W1;h;xY3vmj%NdZ_v&0QHCs8Y&Ci6#W(E5_Nd zfbB3`>&m3GOcPG5M~BRnOgD1Yv00fA1vR7+tj%;0lu&D9XlNtaFjb)1LP-)l!xG%% z1_F))O9LRbvqJhXc48}9fo(=~1Q4Doh}@pW8({S@r_zO*Gs9smIjB>_aaNE-X#u0wiwSbzghx&@Ci2wQagH+(CD45% zjhC0apiqEG&X+o;4!nd4vm8{eMbHNkrp9mw(V&FEd0+?m1_nuufGNc}Gz@vR3C$Xe z1|lqj#98(NCLRi;6e8!U)~rhd53(gDIct_V3fi*Sh03RwrtFe-E)>cE0F0yLscY*fY> z<+SFITn!{Q^pGJ71(y}Htf1dd>i|e>Kj9NjVO#JDI6rIG${UY4t*D}7@dJetFa(_h>c1c0F{Lf6y<N}=R*n#`g`i4SP?q8J;AacgYh5?Cg*o~^>B2C4{~4Hrq+IV3C;7?*nmjLj%6Gf;^f@&gnvJO{u8 zoQMgb=LB=cIe1nSO9N8|gAR5Wke(Na)&>kDzl297AXe$8MQ2)pBgh$8>?Ok`P&Kgm zGzRejrW*%V!GW2kM#l=csZCR`7a{v0hfa@f7^+hPty572Ae@?5l$dZJ{q96Iw2LX= zT;w33g@F@N?$k$6iIza$ts<;oDz?=Wy!ASR)lm>BxQwmHpa#QZeNcxqw4EfE6v(WU zppc!0`U!%}!s4Yib0I)2tuMvpp#_a2@S9u7}c;SnOccX{vm`foGB1@=wW4W=&;%>10|Pd z2KLiHVsiqCVie3=P_TpyMh57ifvX@n!Owv8afh{)@-&D|3?M9g6t-Bvp-5;Tf}wND z6APdmO9lf2F<}BQ9Ujhv^Wa>=WI5!NicbWdO76gS$zTt#1QG!thk+q+*muzJTBcw+ z7=so7c~0h5JnglLB3 zg;NB8z_2QaFt`c=4vr7X$)~u18$boh-rV+JX!B!j8J zjNuGUNeXZW3zI-fPGiH<8n9k?Ll9tp5Jjg@hV%iv5L`nrLQcb!Bvf4jo+5`kL%b^r zC0+x3Vwf{bKrsV%#tK8hg1GO1RDj>2sH(Ugh+%`g}MQ74|9T}13MUA!A`(m*aL_vfNFRLk{VFj!247~+ZdlN z0IKjQ=wM|K2d9mMK!Dkvh7gb_Fip7kX=bM&gnfi4gV=z#PvLS(OE^Bb2ChGy1mGPk zm!CcXKf;AD0xTC^pFR&CI=v5T06zu>gRli?_~-vm5qkQ9DSz6XQx3x{U@!*Xa5=pD zX+@_wz)3^u!)8J7oMHj4I=%Q5GcXxATv!;qI7P@m-}W@p>BQhRpN4^5IhDrKeNHDB)O?oXf7 literal 0 HcmV?d00001 diff --git a/sounds/ding1.wav b/sounds/ding1.wav new file mode 100644 index 0000000000000000000000000000000000000000..bea01ef1e703933ebd08c589829ec3a84e5d3f74 GIT binary patch literal 10214 zcmW-H1$Y$6^LCH#tZO`k1WRxTgkVQ-?tpMeaCi6xxH~Mk9sv%x0}cu9hdUhZa##pK z5+ormo88UY?D+J5zweo6o@aZyYNxuoy85l2chHZ$dKESTU|83oJ*Uo^SJwytK!R7? zPyl+I1poy`FnPkf3AchWDqs!XDu4xV?f;h|0fb1fWdv042^N$_fdB!B03pBt)WN49 z*!Tag=HM$F18zYEoF}s?)9MrX%@R_Hg4bxMqilPUw_qB+&#=9uY3J+r+gHw-)bi$d z?fM2t*oQl_-k$8>Eo@7-ZrdZfS?hOI^IuNukX1Eb7gqFZ*BFC;+v|aID=TxOT5YV^ z)4fIYR{JQvLj)T;jL+wF8+U4mzc`C3?5?A=1q^vOBnZfc7uz5&|)t)jduBv6no zwQ+1##&+vaHp2GRR&;j}<#J>KLqr?Px#%ljd+Ohn?s^v8f#aU)jy1nn_12gB{UbQ< zJf~XQZPWKEONsvQ^?2RAz)s8)zB=TyZRnehx;m9BK2&sV?{yh^G>R=w@ZbDCOSR5B zNmrg?{j%34fEhQ-%@p59^EGmhDa$~7y4Gob^a$t@N*%ZpN3L zsy;L_Jr$`(ts`0r_w}XW$=cxr`r?~8+U_fv*pv0L8kc@Z$??FW$||FpUuxDRZGTs& z3uRwC+ZLloW}6iAZ&V-T{(li6V;p|x{w~Gth5BM`)R%jnuC-^v4hWAztj(Lh+@qc6 zy_&P4{#bmxHAFKDo6Y&(fQa!9L=mdDWHv_`J^X zV^j-`b*PP~+x;|~if-p&!K*I&%BqP%;QiQ0XazIsR)|AFXGh+6V5GnK(u>=+Y^<88 zwV@A%@S5g%m+FOhMRH6hed$zjwDc|C2N*($8z645nDvkDcQ&32@D)8;eo$r6zlaLU z*xMHzZy3U6s*!f5^Uq7u1Y2QmTvnfmTgeVGHlvasUN!GwKe$p73$c1cHy&e(t6P>f zY1V?vQd?W}`q*3|xDRF1Rm1dbTvuO9?H922VQSc5;U?3zbrM>r_`LI&jgBz8zLkc( zrcF-JW?vP$3a_f}=*OA=iHUU0RVNCwA7751E3X&kCYmIc`=vIK;hi@;d)uk~v}R?! zr_b)mWx`w6IO{b_e&oLDGJ^4+eZH*$0@lb;t!Mf-`1d>Rvzt6|!qaw5JuB3?;r~5R zgMCsmQy4bi`oh+~q!)3?Gdw%AX$q2vOleAN@zB*%NWlrJayCta`1Ctj*QJ&9E*_+um| zyvk^&dVc;J|K`sAHoRRUq!Btb##Ywd8B@E2m@Hq_q$I8`p)d*G{Opv@sLsM;!G4bx$K_6ar229jOJ>1*=Sx;Gc0@awTn!t1S`2=LL*CwuIBT3iwKJc^hWVF&T&2(C zj`+Ba-`OxRPN(~F%!4Y~RtEiO8c_E|&KS5sY4EX8Y#Z}2a;$E)QdL`-XSQ?_@AHKn zn|Lw;3shB~KQR;Wg<&nQQO0Ru#Oq!_QEI-nYV@Od1@=&t#3wnfd|e(MuWVB`Cl9R& z_-K5{*JnaCy*T0!qSGHTs$Pu727|29KN}~Ru7PjJ0Vcg>Tya93C-5TbNnBkv!NVX4 z-@CvC1};)i%<3kz=D+deSJYZFqghv-Q>r6p`D*N|DreLiiG<+mnnx5`+~MGd((S}a zOP9!dLI$}R{q#IlD-k2yKQ!-159MOH7_Z;)#n~l(88QX0YE+%q!`&Q_D`#nnY_{-M z%tCCR{O|>3Uad-I!kVk_Gro8JSKj2>a(``;8BmY6h;8|PvL_Z>>Kth78S1xncJ~5j zcr3er*lu-u{zKCP@_W}K?^%D9_q7O{mr17(ZG`>pQ{PIWix08c!tNTc+H>T>!1>%Z zG10m=;{JFQx7R+xvxWVYy^sFhqBGYN9<{{3k=QKyCg%%j8nQxNP(EGCXI|y28)oW` zi4E%6JwvN(-mBsPsTVb(`E1`c3Fub8j+ZNRo8@MqM=bq_(?v_AgMrRP-y5&eZkDdr z0X0J^PWc-kS7EkhMAK5|6h2xtJ9{u@HMK@|hDI2EkmnZ$l#yKhih(U6HC6nPuuT<} z6))Kwg2fUIXB)1r9L+W+X66{wb!`gT-F8O(j-B}J9vC8)JDshzQM=d-b5hB)s%&YQ zW;NN=m=(LUcys_@pFi+MDReB>$UKrb>3#BzAW-GDA5VOOHt_$W+f+2UW-NNq@Fyi3 z#z%s0CCn6b`Iq$}!@_T%A9dlN#8pz*Mtu|X<~y}sDQCF%&})l^)$XCrn;TKT=v z=gEPoSi$#KkrTpy0HL%bzNy($T*sioFUV0X*Rh?Qg+%9KgTI}w(%OgoMI-Chejxb0 z#GCSnx&y;LODXtaHrk$CaoT#2dvR&&{Xv_ZOQ zpKrcc?TvJldj40ZC0zna;|7=2sXTz6w!4Xh@CTN?;v9HJ9`T+bwip)s(;EJyz3xin zI(kRe{>(j%Yo^jbCaV7Trd1JCg{!Y-MZ`Q~X<&$WS#W(EuKm|MmDMz8LyFal13KSk zAFd2<@Qhe2bqU?|rL%ppI?cx!I!1KTUiI|j+VNvQcd=Ah|K_yya$%>6a;7Kqm`lap zHav>z`E1i4c?Vq2^*7ii7I)|aGRe6raGp;r92S1d_L#dE!*VA|^8!z}T=@jmwc!SN z8B?yi^YMc3gZZpzv)!{Ih`-9kvLc~5Er|>oy2p`TdRu&lyd(>>wXt_Rqif$&@p;{l z58<6awsnpAPGDeZ9)AElaV5mBH1ywNpsruMVDI^Q~f*MUsI!buQ?dzDLd+XOa8Ag!|+#h4Vr=`Nrn{mICTu^cGc}-6TQVO={>_UE9^yHvCWhHl=!dbHf$AO?c1F71O_Tqej}caE`j^Dy{ukpov#xo+vl!ZdWf5Zd<;8?^ktJy@z?G zpBa8hz2858Q3>@6U+cz(E*BQp$wgLHd}C_;&4jynqqrMnI-8~MQebur)h7xWrozxU zL{aTP{~JE0^sA*~*lYobJSVOx%?h}LTI@F@#{Zm-{-*crFhlv9xym{T9;gv~ zsX|Qk#c)1U=6(y=#(XP|>voXdsBDs@YJ|g&&Ct{XJ>sU|x62z6R8?Z_S92@9 zS946|CZbA{oxADj&ic0dF*$5GzMn0w)VNb=tziOE7_&q^U-CD8zv>U>U1*_x0zCmw zKw1=CcHh>m_QZxiiW=ujLK^r(t8@KwaBogP^wC=aPm87!-D=uMiIL0o-N`$!gPi#N z6SKyIF<8{Xur;pFvex^e<}6=s>1Ha2)^Mgasi-rx$Q6gSkAAN$MmmW}!j$jl#CV&? zqS4pQ+0`w?t)3CJ01gkc8r#VGtugii#SiFTybmc=ooxEEw2QTI_lkO6QhSseJoe$U@Sitv?$uLxHMdg?R%<%JKF3+N_dqG?vxQLe~Q zi3}^%@Kd7o*h>8by~n{q~@yrHMuNh-iR82?5)@V zd(_oohczSUKO6_EZU`f=new7Kznb5;;)yM;q|()@g&K)IWc;6go6}@3LNNXjY)5USdQRLmkX#y|QPVz>EWgGQW3DH1qUe>fWQj^P_H1Dc2oGB7lu^lT{1={L= zHYN}cZ108XMG73_-OOE%bQoNi5vkxVl^*h?8P-TH>$-@h?v>mDCche$&Y1~QDmK}4 z&0qT6h<<0bE7j3QbYI|l=^pb-SqeYG5(bahO07TFlrt&JU(QuXN=O~!3UE-{uJ(OV z6@Hh0gsrI4R-G%H;DCQY#iZa4{u11?9@VQWcl!qiV!e?38g^3GSbjsr)Qm1IS4ArY z)Rt(O$Y%NQz+DTy}#k$T>{&!5g zf0Ridk*)lrJ|@x`6%WN1^jzjJLBiv}%WEXvi08ji!lp4Kvz)l)1!R;t$() zggp?;2qU-ldz{1)rC7MNiS;S}Q|%sMyZszHC89`mj{eo4bDOIhb3-IE>=E|Cc9va> zeDaG$$;j{Owd4%za>Ee6;@B&MyKc!RqDQOVlIiLZHIu6`=_GiEEeMY`hxo3_Mcxmk zx#UEBIn~nQqes_T9SKr@??S8~rZ*XjZ4Kt84mAV8dwd&JFFaK@&=o0;@ZPDsqg`N% z4OXxN@ZV~Fb`&Xkc7bYLT^E`Fs{mQC!Zn4+Q{~VTLf=tU)vNh>zEh5Lv)62-E^99- z6RILzN6`b~pW2$3u8Ki4%7@FZd8et>+I{MY)?B1rMFy{8LcAS9+gr}zja3i$eH8`n zdek{M(J(xk;_I@_h2s@p*#?HX`oHO|#s}iD(!&DB?qMHA)S5aXEwD38r;1wtHBBzc z8Z*M@`Eq>MIcs$vxu@l;z5^Ae?GTt>Ldpw7R`Nz=8p@=lN{P2crA=sTv=O1EbZZCK z@1DJ!#u-GgAxU}`n??=td?`5!*1!^Ef3!tg&Hg3~_WWA?3I;6o$Ond9`u)`n-KG3m z&t0l{_*V^tcJ#F~ugs2L#tsn|qE1jQ?>}rGk2Z*9FNYY(A-dZtdwDDOHECHOUOOP7 zm+GFlU0GH$u<8W8hw@OnBDSK5E=ypCcbVsbrbie??4woKu+k%*lVF;dAB?w^*eX^f zR@sXkOZ1%jh-!GKNuF(|0*wE7;JL9!*a@^A5s<5kXZnW{C*g4OozPCo8QzyU!S4Rit7_;<*`naw_tSlcCP{e+` zC3J>uA8dp~2e8UL%ucmP9?{!F7PGTzQ}_dpL*iCzW5Xh<1)UYRP}YvO!-YzG_*=78 z+%4_&O{m%{G%+|;WAzquoOh^m8=v8pfirZFz7(5=ckrsqBV`%;gkA_Y8o~pG+&XWG zy*FrJc}}0#uGbEBHg%+kZof#-5pK;M=!R4+Ubzpcqr%DiVZ+o-J^Dbt_fJ2)0skd{s{W$5>6i|PLgc8>sFa6W~THifQYUnl!AWbd_>M7aoy?JqjSa#hK&E)&N5z)d))#v{oCLhHMl!*|;K9_Ifvz6D#WLslPt;liiz`4q2LM!7QYKcK($nx!S zPGzh7_m#P!y9@$2M5KGxRiw+|*nZ-w?N>u0`-0I2w%EIX>y}=s;ks9Jv)V6?-F$C; zF4iEN(0Qdc$P3rCDi87_m8N=TEl@A=X8M){CcB;xtwR2#TB|qX*){)jN>YKmnfg7v z1AUa+D{pbObetzE)SKxg<~u}p*KTh;uEhI9of29?^dtAd)72wujR=MgQ%?!ok1zA* z3Fn-P+!Hh>b?LOuumM23&G$ygVk`AjXgTUc(!^&~gT0x=MnbLi+ZI5^oxr!L&0wAy zOa_jM)I1gKRR(6D@|&bJAG9UIdvY5tqk2}LuR2|INV~&4T^Q;5#_7F>h2fSlhIHaR z`3Kvrsvg%8eG1-Mc(Yz4g!Dj4O&xKao~LhXCg_hcA003GYs`5FLI&#f=q@zLUs8oj z9mx)OgJ8_w2-pL~Or)zDaF`~lZ__8~49`?YsaVUK@bpkzODboS3eN}oH1LUDMVc+w z)C;}W{VM`TJPO|4I-b5l=HN|S(avloM)`yKC3LCk7C%=kbANGi_($zl>X9*zxa!LF z_2Vux1L@wj&XgW&0iqp9?H{Nb4bWjBN%-#!!9(|D&vY6wjG~t6T;NkpvR^A21d}et z)-zZ&O_Ju+$eyj_Xkwt|p=Bd%;&riWyIqRCQxtm(Eckz2%!W(T@;aI5Jq{iCXr z>Wuf6v%Ax&eYzJNad_g=NJc8(htb##w~Os|2A+hfU5O(R^`gW7Gb zkqQFNlKZW#=mIWEEb|t-F5$zqe^AMK9dXgE^}XePXV+1?t%t}wBpbeV_I8&e>DVV# zip4TB)N`z-v4KjulgPy@Ye#b}ShwIZ zaQd-W2#)e5hlv}EZAP>7ca6zX6?=f2QQKC;bsqYqYKc0X>+1T4Zz<@Y)x1}i3Z{aw zfh&%Y;v3SApVd#))#d(T+HyIb@$j6%OK&B&kl*~}&T?^${4d(TlB9Vm+2s5F<*uGk ztDaBZ(e0pT`hW0qoSyj|+iBueU$Nt8TkjcHp;8DA5PD0rsu#am=;&|b>5tvhGGwV{ zHPP2o?Ykm8;kr`u%^KgsfnW{o-|A1L7V2k^9qC_?O4mVu zJ9&lFN!`ml6dx#0k|Nw=d?Dm5@{sC-VK`{xYsjSsx^b`6$p#l5MxK;^a}EzA0|)G( z^%$MNEDR7sDyi@okw9ex!f3 zl4ck{k0x;PSLRafOYwrjplQbOnwHXbX?Nha+W+7xx((S`>!6|oTECs|&$dPxV>{I& zbU7+}_qx|8{~_~;y2jb6Jg%3}K2YY_g5B4wB1fqs@NT}xz8zwwFpaokYDPYSBjH}p zZ{Ekqe!L#V>Q%%?#={8#!QYGOsH-BXsb4@J&j!C%DU)f{dQ&F$Tq>7Zcv>@!2_lGW zw7LwWw{JPOoSVVzQ@_(K#6yXCa!+@QKq>Hm_w;DvK;YpUi6=eFxt~-ARA;C(b(uWP z!*b_@9I>%(m@XAHpzVYv?(H0cZ^!;okJf*Zve+L5v#-7sqM1e?COcDih4Jq3LYi!b zyxy(Jf=z;cW84`cL(U=Qs&{He@#RcEA)a{y<8*E4vv@g%aB=Q*$qI6j`-X$`K53uy zEpX9$T-iZSC#TVKRnY;Oi58!+J+V3ZHmY9eb)YcW?mF->T8r&B+$HbvCxpzPj1xJc zSxz3L8WIb9I_A7|QRqeH>*tayp(NM(r+Is!or&SZN&PG=njOb?WCN^*Aapm0RH6`B z>S2QCFMhbP-w6Jm&|N8_d*}j4Bv>q^xDx~pyMtD$tJP`B zEA}yeFmO)@(Y#U}#7|P|`7-Z1p^e-W>8UYle}?_x9{jGb*jpFuQKbi3>bXtY8;0OK-svq&aeL|7RA*w~#l; zQq@zWAEV|ciL|gsHCOW+)(fkYI{N=+3DiEpz|A>vb5HLo4nVN>(MWTgaz9Z5sHs>Gn=4G>XA3AEt8Pzx zL?e*COc%BQ+LcVQvBr(Y%D2U@>>c(TCXwCnPY?B zA~j$arB)vTZN$4m24@gThyv;uB0YcVtc5r;kviv{dU~VVkRFz}t#4cnUm&)ZxV_`YkLEVAaDO;e2J;mNb z&S8Uz-zXPaKj^ieq#nXeYy;g4dyCD3b65kvLK%W2;`#Jg?4kHdX4$3uGpq_Toi#SAxcsKlt@|4vJc4e4S zMC$34palq#+OyxpM6@SfmzYh}hc(=DX)k|MHd9Xs3?GYnr3q}jxDC_;=Yl!)jj~B; zAbQwyay1r3Ji@OBGipoDCac7cFitgtxPmSRnc{l(fRu!8LdvK)Bq_I)?+S7J8JI>) zCEVCIY`W-R^W_uLMdX}n7hV^6shkknbEB01uwCe%)G2(T*hi`m&Ip^3(PTs7U(}5l zg|-|4Cn;UAtE!3EDmYc{CXD10Kro$Qx5$4{hW{XL5GP3;F*`XQAAmFiZFmPa25@jF z-az#UDV0Y_lY~5hK^%k$TT9#nrQ8Q`os^*bjR(lF*n4M=Xo6uBro6F$h5a30#3l(1GxrjjZ)5n3YvTZ;wo&A~Ue6eq~> zGK<_Km!Wr&Coo=^Dq3Iyl7f9EPN6`4D9;vu5jUb&u-QQy3}BWxL`+iFDHd!uxf{s< zn-zxdE%gV@(fyc}NJe;Zs9YoFOaEd!WQjX$AyeB#v*(*O0PDmp`8R(4nC&t3QN*npPa7EdLP7mhOa`Z3d zy>M8*Dj$Yji0jxWq!V~AVd6P?HgX$D!BgSr^-{X zI2bR3L2Ecl+9GBvlhG8^kLj^^*(7(6PfBqJgLT24B8$NjNhKPBHlIdD5eeu(I8x~> zjgVY07E4DbU>|~hb4pj`XL1bM9KVU?fCX@{v_n+jzn}|Ri#I?fDX-*tQmPD)16W`5 zFZ2j_D2B+RlwzeAHQ^#s1piUmNE0MC$Urut-S8-IQr;|kq>+jfd56^?*O7y8iMU>F z0xRJN>|ZPn!C<&DQA(3@5izJS6{`>H$-CtP@_4upy^9S&-h$`KDzT{oz-_P*i^e*D zp33Lot}ttp{jLy2lCV7VI~)KDgPG<&{2y`_v0|CXVP&-(q9iEEU;?HfEs!jb zEZ30*1qBWLa7f+=-tCt-c71%6xg5QlU7(ENmOH0Te)$yk0&IPlG(< zH98W>RF*1U`H9>bX^x&iDiI$%Cm)xIV5HAOx?(h9hkc<<4paJp1jLS{p;^G9Ojdda zb5d~bgZjzHK$s~*ISVF(M@TU`8;pWAN}7B_DF6$Rm&kpj0=|)#DmRp#(1OOGZmRfwL{64ad-%b z!FRj}_McT=D(w^x+=Hw|>LJ^JTgj25;I$xED+&D#fp8~Wp)^+hgaC;|)*!7BkFs6y zD)*IX;5yP5xfEo1T~Z9n8W;=C02L~MoiG*trR-5Ckc?Q7rpQrnRynLB!LINjIE~1l zH@FOsDAN@?oCk8jP2_jb8z#W}iVjW%eGw;k0h)pBO0KdVUV#Cy3^^XG66V2M$~)x; za2k97!;mNt7R0F}TmnymPRK>@KadCaDK?k~F@PXRNPiGK#|wI{9b5tKfa|~q-as|% z4TlCLUH}V{4x+%};OtI>A)pg*gVG>xZ512?o5LOOD7XwZfbC!pjDic`VQ2&Yfsa9p zD&S^_!!xiONCQuTe$Ryq;i8~KQE>LRgJHo@Wx}5D94v4-PFoQpXDCi3$L07O03S8$!jb*A6)n7rgAGf5;zvMgD}mSc5MG{q*65(o+)0HU|sd-;3sw-?}|H=+>mji+PFymciSq4#0gxQaNt{V$viIKq?!V>iIeYfh zZQ8SQ=gJ*hwjA8nvSTQe{L4SyvSrJs@cEPbwz$7fZTX`u1HH*!9b=^bqKN1hQ6yAI z{r^jmWl5@k{|_;e|EmHVfW$f?Zq==mHn*qV3n+M7FE?v$19>HL+#ep|`j0?ZFJ$)# z5AYDchnqzZM6{4!z1v+=RuoxQ6%{bGLCH-nj-Q7&oi7R@rq@tre#~2 zsVi84WdNIIc}@`UhDEU;OQn*Dcq9~wMuL%OA{I;Yq9B;Vc`IM5779*2tEw7L3nD}F zGSD}3StpyrN~WO;f+8@S4EnU3sbsUJW*C|($P&we43HvVN642fOQ#ZvXe1H}1f!u~ zBo>LrqKwF>qZMUjwl-eHYKCSC49`)t!c(?wvIcbUKxahC_i+z~}S%L*Y;;8jmD+(VQsjV~evB!b;P(!C{l1}oX4XzkP1RQB$EGLB6BS0c zXkJLfR8=-~vsfvV^Z82A1}`j4kQ7nVWCh1V*Ki0l6$gx^lL?%wI6moQB9%&0iFhgz zi$o&PkS`GQdj@+w`Y^*(Cg$g+CZ=bmri*$$qe&o{6L^MJZNs*#T&a|^?LyJfa41v> zn=gX^38!4a=@NOG!iJ>*83m-!G)>XuOw%ALL6NpZN|aSebF#%ew!c&=W*nR<9YUfI zp-{mBA}A0KB9J(&uDXMipoT+54mpnlhAPp7c(_tqmtI%kiMZB9mDF7McPnH#8I3_i zHX)fCy5Q!&JFqUwT{FSsze`z4@%SZotOdCItj>m$EvL zbt>J~_2HyWIyYvM{|%DdNt=&bN8E}G=57Gl9Q(-?g7B?9b%?jLeDV^v&ADYXs<%$K zz2^^p6D2{FIh9v<89EWCaHISIkbtQu617iG$t`G$GFnL?6*6e!-Q7Ao$PS7MR0k@G zpb82ZFN-RwWFqMz(}0&Eii#*HyebMRt8ua*;Jtmk9)SJ%ux9lhGvBiRaUb z$|^Ff4eP}6Dano&W0sUE1q*3aBbiB?bSAA@ z$qZ%C27oYgm5j!pLCZ&`8 zR6(UGaXLdbn#TTv7o02$APVzAINHf^P&iFy!3S9f)-rT1>!eLl(s-S=X;Tt_GY|R| z)&dAo$3BWWugap%>VmA2E=km2UKxv*z&sxM6m2SNF}kE-H9=80v}xpI!fuObAz0uL z0t*R{$RWUqk_=V{YM4?#da}$BE{htiiX1d1tR5{gEYHFRAm*9F=_1YvG_3_=XWOvr zPR4dDxD%#jz{u*FAuBi&67g%GaA}rFF{u<>6B>?561FuM4EUn)xWH4oWme0j(UJ04 zty0bb3RJfMH7$x9sMG+=vN9Ri4nsGfpU^G{a1&s)iNgaAfl9-~CS&nPG#v1G1_lG+ z7;K1aJJm|DRvR80uNDE;)_@JX9!R^Wz~sU6f$Nj8OxQe~xKc7OB|=1OL)~(x)39`j z6aWXq06Y|qBv_h)J5{X|Mn;Dx#>=IACTr^uKUfpuNl3&1X(o^**utq&B=D739f;%x zU>D^y3}`Bmj6~ybIlP`=ES99xwB}f_^_Ah_(UD52R4xHMSYJgFIUF-UfPyA=Q-k#c zZ0JB&t>QRBR!~=1QRP?_yCZWHC$SWq4y;2Z;1s6dgD@O)32_}P@GFzaX0tG!;2+R6 z3EKdg_>^Q1z_fZHSl3tCRNCMv8Nk7Pa(Mvf#x>ONs2G;821LUS8-|Hpwk*58fQcnw znu*&=tg^cww=Ur>;_Ax!gJ@xQ%P@#IhFGj#i2WvXz-g#^#6X>tb>El}LHN1BO0oul zL&zY<@%B>hsXy!3xX=19OcZvS0WZ$i8UeJtphmTW^{MFbYCpsFGZ)eFgo9@HgHF+`eIRe^{D7yxajh>RjDESIqv43TUx2_=ap zSzvh)>{ofXloUYA2&gQP5hOzb2Th5FK2~@^gJBg#Q-sY!bfQ8MHCYp(WEDfu$N@lz zKy0lBRjk3)g}+Jz69_GovH@213d75Wn&fnwW(=9w6bQP^ z!cfZ)cQ^wwBbW*>(jnSVLk2tm5t;!y9S(zz3RZ;VKo?200$%_+1TzIoWjVpncos?v zjs;8zb_Uoe3KS&SdAPYGj3uZbNlM6={Y9<4{ z4^Rw6v1+b5T(A^bGc+L;_IbTNpLejYySulqx3lfV1D!GF@Y=E2(c0YV$s<)hIMDBp zrP2sf`0UJy(z?*&P>c6Il55h13m3sLs6C(!s6`O`Ex5ZTPE>dJQ9hs_VCoyXu&dw(PZP{ za18q&5Bfa5U?lACZ$Gea&#veDq?rq^pIMq1pIe%*vO{f6%{?LBE>$Zdv#V!cUL95A zeqS(}NVBqCtW8dhmrRj^ndE3N1Myxg96}Ho@DFt#+_&SIU0urZo8P>CVzN{k9V>E! zFFv>TP|TS*dUSqrYGL*GLXjRkbZ8(ZIF-?fiSeG`rL z^K>HU^@h2^^s$r6qmF=pl7U54R2>c&x;%sfA#YFfbI&~X=p%YR8!wFs$Org6 z-EA$0;+3@<@7-7%*Al^CGzmY3vnE#0otbx1o}nt>+kLN1mPt4dk^m2_SmDl0u$GM`cL0GGaPT--`wSo#A1{+d*=TFTqg*)s%mqTbH^yPkRCv4;5ESAO>M@4Qs@H|%IQ z=!w(3UOn>i)i+fW!(#Vy+g}*qCtiB>%(3aJ!NwvnMl?&c zs>6kP+uC}=oUXCKw(Sr7)twLbOuqZk#~;2{@oam1M~jb(K62S9W#*s}G3yYBvS`qcM-^~-Oq@O%II$%gKfmMxV> z4xhPv`FJsMVB7YC%=E>pmrhQoDSsf&D!JkDv9dw?JDQq0{gh(J@k84lyyK3i)2Dy< zo8Nx-2(#;<#~ZpCr&ukOXVzYM<#;9DyzR@a?EIDY-aI`n_`147yfZp`c)F~{2U;OR zVOG?;pKc>wEZtr}jtkW7DIB()7_&C+8jCzGrs#*(cxn`n98l zWPf{aLMcwp&W`9Qe`j-Zr$2>gBi6m=k$dlYI)3uIzx?gr9*sY7*XOr&8&ivmwQ_B0 zVR^oqZfj^b#LT?*wQDCvncmi(m{yrPvN)n8z3m5Dx`ULYD~ays9=-3=PehJ=^It#y z`!#OsU7vgOpf-K%*mP~AHa#~}r8*n;wbOG~zJBA>c)IO{wun+)KDjb#q`htXo4fr9 zK^LQ4&prCtPj5}E{ovm|{_%;}BX{2Or9;-@spGTb)$-WncrJEme`Bw@_}aVIPZWI3 zjcrk9X7%Vykq`E?wRL&oj4UTT&D$To_rCr5#rJ>vFYitDeEu`{e>qS-cIMdJXt4-s z)t`aq8Ua!g#4TTq*G0uC^X#^4yy@PLu-8ja{kA@~LAJR$`#zP}g7tW=z2ueeS6* zKJc_>^sS%#<|mh}{hzz%p$2Mf?cDK&v0|Z^&oI8;jsfBD#jm`2RPWgLLZ38#^8C>e zIoRFO+UrXxh+1NU&AT3Z9en%9G83@2U>dqjBZ#;yuZ0&>*J3<)uvzg&d>k(8;jn@?z;C&J=xVu z=hqgi$i*6B*wf!1DV(@^{pZKRgo zeg79fyuk1J%-#3zhgtJ$Gw0v9zUmA#HndT-Qx{H7D89Dl_Q9y+ zWGp#3c(C#LJ-Zur?+uRK_~EZVyq?*2_g{Q^YijQDjY}_0JH(bJ{6oF{RQ2UIzj|RV zv47`2UuOB@E6e#r&%u_y2xsPU78mJnZF;_8&z?QodxzipyWjlk-RizO|Mbrv4$fS8 z=k;@kZNxTw!s{6vq{r8;U3+;n-L|_eU@x6JyOc@vwY2xgBr996#Z<8O;Qr_LKEJnV zUw7`(cYgMZug!Ga|7UkT)H`zitt)31v&2JZp>KULd+OBHi%V9#^+hi~cI?>FFdOLa z^F??Ak&z)LhB}(}H@?``*51@A9DVzHAANT<_~adTe(r#C^7AKco%imR zSFT*UaIDOv;6-p$BH&4ywdK?2m$S*h;1HD^AFpPWbb{hU87Wecr=p(T?ylYeudlzo zar;4O_1aHAygt(P=-u}}%O1Y;#)TvKR5VG!Eo0+RK0mQ?;>d&rR<-;q7YZe^} zLxY+bN0->Rf1s~_C=ibL`dS;e?V}bhfBS=L!<~=c^U$-@%9VGnoUBs*NRm}`c&}1! zcSUL2X48P?L#KwK_QPLG$2bU2uxq-?Q}!CLWHEFMp|31v^$ z!Nz^N+T|mc-uuCsT*uZ2AKlB&pTBnLxtS~zp#z2i>zvtN9=k)Jz%_2TM?1Q&`$1{xWU zT&Xr%R8x^qQp(rHE0%zGoRaKpso-b=d`)DAS%#(((V%~zyQ8gTf4?&S(v7#4^v>;% z?dY(MymIB-LY{$3D(Z%*C}y@)t>&aeB%Dx6W0S)+9|^@MIa@5|9YaKXpGJb8p%|bS z@bq?ecDA<$?U|L=UKv;V_U$?_n4Mocdu+mCkQ|VZMbP1VK`p3oO(@B!jFcUfjwcwP zT>w0I9`J`VHKMpDIcZ+%FHhC?zUj%0oa0Q>to2iWY$@~N7W z?mO7!m4>Gm=SLh|Iw+=NXo#XTGmF%|fV&+vQ_NdB@;icRB9nmoA_y|PZjMc-k^mSE zc!vi1dIDUgx^$#$Q-fUtA-Oa@H(kx*hD5b&-Ec26Y|GRTeQ25iQ9xP?krC1-xU52W zh6n=z2Eaw(Cc_gQ>8iTex!1ACyG zxFnDTB(RW8K&Sz~KNgLI{65c6l-D!kHAiDY!6;?qE46CY1adlJ2%Frp;JS@uVQ|BM z2u34eB(5OPBojK3^8ho*gClF_xHABZWIo6q zYM_u@L~&3}$iE=jMe;Jhj^t)iX>1^nOoH*6ZGlg`i0h;*tdXXurkzEc1}t%T0$?QL zEUO6Cka$8S4&)+2BZV*mH#E4CA@^qh3RjrN)&d5}Dq@dGzK0}yY#WIsWR`H{d2!hck#Z9kAOO0=o$2oXda|gV$iYe^X|RzmT2Flu4C_g-dfv$01ro?_rX)zD zOc1SSYY2&TNF-7wg^byydYdexn^(R%wRbk!+x$Nb)hyAbJJU(ubj{`Pw({bwDwC8lm2xPjj9wrvpL_P8&b gV+ir&i?TuUC&AeqzX@W!#hrJ1?|<)&taoeq4+|2oKmY&$ literal 0 HcmV?d00001 diff --git a/sounds/drip.wav b/sounds/drip.wav new file mode 100644 index 0000000000000000000000000000000000000000..7b3696f30b4318db423ff04e19264b660f3b2ab6 GIT binary patch literal 800 zcmV+*1K<2oNk&E(0{{S5K~_a(ZFC?I000010098_DgXfZDgXch00;nNVRT{i0ssJ9 zH$z-%eVMARuBf4!k%xV7YOeuNKI5;YkG>9sKe&@_w3-*z^$KpQ)5g8Ap^$uCIwdPQMN?*Yj;zVj$-T3pkbY=LEh#reQ)YUSvCGcHxvrm&eqlT( zEIUV6Ykrxy%*wv9rIdeRKQTH-Q(|_Crp3;}wW^qdXh<|UM^IgIj<3hczq6*6fnq!@ zIYm!ibdk8x&Aqaxm4RI`AuvHpTy&Me+RweWs+4(4CMG&YQfGpz(bU4XubhEcF)BPt zRBDQ^%gVd6sFHL|Ffv9^U3i(e#J#Yjk#kl=MO0*cow2d0pp9-%KtxYlZH=?X!?vrL zcu_byNmXTru*t`_sFZC)H9=2YccH|}ysn;oQ8PA4R%wvA%E7UqgjhE?OI&xMzrV4g zi)27JMp$o_y27)fhhRfRR%(i`zO$o^XG1(qVSK2>yr_|AKRZunjJ(dgtC?#!Dn3_s zsLR5vlVvzHPG^z9%(R|P91%VR;j!Fn2T>a{oY+2t<>)U0k@6;lM za2&@8f+R>bn<8OfoQry^`lj+IBf~?kC9`RBjycBv|Kp$b+yDL3PrttZd~_WMIcw>^=R?R>dfF50F{ zg=?r2RsL<9#F4y-?RbHR;wTEa3Ex_#VSfBwoRv+xST5(&A`Jsie$e-Q$J8bhRWltw z%8NWtxd`J)Qf{3lk^G9~wL&5IsG;eO9|SxD|K=h1$F+2IGSMB8)onX%>gjy3nAP0D zw^Zd$QFV&}=S7x;zOAdO#+_WAEUW7Idbi)M=S66Z`@NxRi-a2rpMlw?VKF+sk@jm)_4EOj(e3@#Vzu6ER?GGN@nO@JX&e~iet)EBhGm&L zL-*rEIJPU8B%VL6mb-_ihuxwOjDTm=4BPctSrH|PFejtIV5~Y(nuL4_Tj}@pux0_) z`}>E(dOj^9&oV5gBk*ipnOITNmcmd~RT*@9Bi)UP>3aY0{QUTEI2;zy==hhPe>=Sy zX--%z*1N-D+eFMhaWNc^hy9Tz>iIMi%yt%wsNTQ4y&g7;x+=2BGsfMkv*V-Vi*b+@ zS)A01)x3&*%MwLXmldB0J)+aKHAT@~<|VGz`~AB1$JdvgJKbe5$GvWUtmE>+_lr_LR%x-#-0za^4v#MmRe>Jv}`hcDr?xMd@@=MXnnbWfl?CLccjVJ|7dR zMJ`-F&QrU0)3@@~W-)Eo+wHo|qBsfk@t}8Sxwc`2?QWHtgWEpQm8O9)F+3vHwBu%$ z*_s^|Rb9^x@88}ZmhH5PUA1%i`Pbtc#nA31Zjv&W)ndP`Lt8UMUY2=W?Vo1G<)xNn zo+=lNP_L%*CKiEqb$oPsb$i~z|s zo?*wC(>Xmo@7dG)ZI$G+&HjGBUMv?)tlwUARl+G@kB5<~j!hv<gR!xyrP3GQpZia@KE}QA$^>tUo<#M+a zowL)kE0s`A8SgB&`<=1nS(=vyN`LI8iLLroTPI<;nwNRKdH?;}A$PsN>|dUJxgI-= zsC%ts>#02$+DSE=Mh2N6oV~tn>*galSxlT9sP7wt-Z0odmt1(%aY$-z} z*&Y^U-aLH$dT5F~iPBv7X*51PzPjsO4#aHPRMS~424`Px$C_@LVSjqpZ@LBmpeZU{J7n3a!dDOUk$2+QC<)FJw1$>r*=OVPP8QE-ro*|XRBi`bGz3g zQMzZJKKGMF!_J9?Z5gAn7khU3_3z(TXRb+O-&Vc-kFT{pQHNKTBUA16 zowA9P?$BhO*H8O8bc3{gc-(C_+vnGnH#k2!Iz7EHyl6I0{2-0BtE)*=ipj7ya*F-e zA3wf7KD;iR&gY*#-Nx&6;t*!dVzWrX$nJi*xIX)Q)G=+pSgu>)Ceu}=PqL@4Z%+^F z#GKg8!@d^k*a`Z-{p-J;Wv{RM{b6pLo}68)mNrqNm-qcZAWDW}Ibz0Sy+-#6^>By^o1 zd-{*RZSwf;%gOP0_r5Oc*}M|tvy*d{FpZqi*ih{GGPJy8b*N0{^VeSW?av=yzyJMz z{9aF2_QmPh&~fz3U;cX3kLSzHc6)fbPj8QY{dBCSBLDXH7ty_o%cR+DcCU|(b#~I3 z1Z2rYGCKZzrF1Tx^}}JiSma8tdwxTHQ$-f~)n++g%PIJ;|M5qC{nLN{_meMYr=9fu z+kG4BL&emzXi>St%j?cnKdA5j`1|*7ZADYKM-;Eoqs|c*WxJ zZKZv=vZnjzLy|nc-%qtK=jYea*KfPc%DTBZJMFpD^OQn9zUV2FaF)jNhsEu0R}()N zI}d;U*FXOJG3%Xm{mkiKoG1)$DbCJJihTY2ZFBjrf4vZuaMR^(GmYKR=}r6g^!($G z=V)-zQ7tdZ<8)D~SHJ!I`HqCME6i~H_AvhW(~XzJ$$Y;uk4}@XzrXEYzrQSF%hY? z&cCA|LyJ1e|)93zSV=%-#!n@ZS9FV?woe=Z(sf66D7&@ljA|WtljM4p)tE` z^eXVzfBbDL02D&FZnY}L$ERcC`j=lv&BHV0XW`zS-E_a4>xp-B={5Hcq1e3q@sIbW zN?oIWMgj?auidA{$XLvVM_-bcwRP2XtnSH?-nNU??&)=D-ihab{9`lfdX>07`t3xI zU9;F88c!c+>24vaRK5N5)3tW~`7*ix_P0OY9-iO!{_W|Y*_Ezg&mY{g?(}azg7d38 z*Sr0E+%XF=s((DYXBSp6b;sHJk7e&Nd;9v3>)y+choF1Y({KOfzh5NJ52AS4C!_x2 z#Xq}rGV|o<%m@d4H+}o_k3YXI8}h#+)=$m2rw)wJ(XG3y$@H*K#=1WmjEC7W*88ey z`cd3$9-p^|=N2I6=(;-6v;EFLI<+0g3)}ts;`a39wuz7a{U~{;yr6x1O#8j^@buiy z_nCe-H0s?fue0hQx#^BZy-%N<)pFD7r)MT8%nGJuk?TWocx#iSetp|bli1UHM<)|8 z%O@i0UX7;T_r}$D@xJQ)^6OB)IX(5?o;S~{=Fqy?a=L!qSca{NXsl$JYA4xYV+^lP z6hP`YtS6nDPPz?^;^l#e5^?5F^m3F2b=^{vs= z=4oAe*5S<^oc`Nc5PE7fjhltA!)W;Hk(p)Ir8=EviOAQp&BMGd5(hXGgk_wqUtSvh z=DI)ZPa@BsC92XJ*Qu`GHP3}N9>-SKY3}!%!{hxr)-6TL5)cVEPj!HS;!=NnYPDZa z&B>ROTW`KBMe_L8+CyXa)@EtAe{_07cM;#Z`+cF3pob&X^P*blBCuw8_jVkycQ@0v6jTfKlxWP4S+EJj~0wBqHh z@xuMnZsm_W@6Hj1u8xDmvt4DR7vJBD{*hKrzH|(@QBvQ(uWTz>KQA1^%UX9rAnd*I z{;90(i|d=yR72^RL$XSRi@GU zG0@}rYdakGhHZ9pdeyn{rfnOG`BQq`hi!JhWbN>_KVJU%A{;gU{(ZNi8l9b4`-6RB z)c4QHZ7+Xa+@5qrGx=@w{HXl=FP*pVJFAzxzXy|S|NUF3kG-O9&7SXGTx;HZ7k9v5 zfU9IxL-1}jD3a@I$vkzU`)~7JS1h;lJe$uv%NO&x(V6&VHtNNzQ164>#eC)iP>E-M zwF+$0pUq~gIw^N^o;FK`etAANpdY(eadqBLHy8D5%Q5WHb@2MoteU2_MDzF> z41;o-jR(mlySOe_ZFt+8zX+1Fm4@jV)>pEKwVtUHGtyzV-h9{oOx4t^eciv-4wTyRiHI!<2dM=z6>m4!QK| zI)2%WKA#RmHho@=S@}P|FH~nar4)h|`{mc?{=fgCK}k|`tPacX8>@3Y9CR#UdTHv5 zVzz*-&0k6*h_|o7$tjy@q7o=M@3j~vtWI{e=W84 zwQ!p2leibd9~tNXfZt#&Kttm8Eg!R_?>Tdf<_ zp}bZWsRseH^`y2&e%-j&a(cPQ|sb85e>dnc2kRE9|v+?+WN&sqP%$O>l=KF8`a{P6yLdGo2?Jj_NH#`ZDnTZ^iH6GTC#pN*X8^-=lsi}CiyP8+9>D>r!g z>Yf?uV{QQ3IIoYgsds?cWT&VHV`uSIoftc7YU(0%`kHTh~kJav_vwV5T0t#bV z$AfEQ+9ck@o?Jw)3;pEtWb-<^Js#%whe8_#yZ60u+MRxTFQe%uI37NKt1tihv$eF& z4Kx$S-#@3OGH}ame0I^ZSId0W7GT}{$NT8h?f$(Cke!Hk&sBnTxnk#s#hn* z(|g$Sn$0dT2ZQ!`(I!zFD2qS7rYApNB=@V%UysB-4yLKd0y}eunm!hla`q*CXg70o z9_S5<$%K0sfT(fw^!ns~`qiE1_QVbCk-B~q+TgT5-}@sN#^Wk*+~ptd=H2TL(NV+J z{B#sP?bF*+eSM#JkuZ!zbUV~L+o--hT%Tkw_i4}E-%pVmL}*Tm)Qod6F_)V{sDo-Z zJQ}#syb->b+zgd4yX~)ED=S^^Hq6x1+;Nj1# znw3#pLia{T#_Rhkw3|HuJO7#;9UIf#V=+|X#=b)zDDTCn)AbrLvgYear+HbqTDIFj ztcv@UJ<6-JR=)(>_0l`~qaUnyx3jNPZ#+%?2HgWlSD{q+#2UG@39ae6sgel3S?(S+gD z?+%k}cpiS;+Kz2!qb8Vt=vO9^w6EYCCd_R~rI*z`_1 zVQM%T@tV4h$f5J_^7zUsHsZ?3vd70c32c=qsueGq za=%hyO{!o@OOeQ%$GHi9zU&v?v{%b==rB z!ey!%+2g`;i{)Vxi_CGOaVOhk&ftXN^wMg*WL-=y`}*L@wy(7)f2_Ou;{CxNg!j9o zJFZJroo{ltqwZV9P1N|c8Vt2!oBP9?IMMBKCrWi+Gxx7?XOc``Ui9v4E9S5MjTN;! zanZH2O>i@Gis$C^Wa1@aY$bY-o>~9#t{REu6>+#EPmRM}m3V#k_doK%mtOobA5pea zVD-4!FcD|U{gW79kD{>N2y6F1xf5c2Kd-Ix%ly5%?&#y>y*@dM=j-&+1PxnP=jM9a zKQpVh=O8J(Xt@xI-$uZ1!>_{G#zTYLF2=*4p5C1g?Zr+x)7(3wcFx6NwO$L|&tJZ^ zN@r5M&3nl7o3%O84S}$7rB4s}*@Y;ZV(|IIdwHRV``>@BL$i~;Z|yO1c)g6vOtE4g zjaihfKNf8p7z1w=4!>NPvxo5LxA6J5+jX~xDldAU2km`%do(D*QNQP`9@CySMOC-Y z?fb)gt)Dt`e-s8fxvWUMbUuql?s9v`PJZi}n^*s0tU&#vo^yCU6sFV6gpLAOmyVxV z_G0Z`PO8VXdND$-2`ojAlBO83{oeOC$G7c&ej6W;^M{=`Ao;FJ9l1UV-J!GIq=|E7 z+`km|<-*9?y~&=_VXtc~9-{MO@%{Jr{EUUzI>(er=f1@k%E`02e-5&8F7|3*#sP5;ZNczK;G zznnb(*H`!YM!dG;&N&j&I_~vEvnwo;cz$>7?+)AO#IPP zpVr$&7My*ltKMC?F6fGR1^t{b4kvmuAD+q`ppD{4m(O`5Fc!bl#s;}az< z&6CrK8Bb|-hF(&Zi5F!1;^r)Rn%0Hd?M&)f71QX;4r@~vj_)JLS3((S;UXV*hE`bQ z4sF2oOEYoq-zrn>jm!I{cYLX(a#+=>j9tr8`Wn3^Tlkur&eroysRr}-t~+TqeotTQ zLe)(?#R!u1{Z#0EZN5z%WgJe8TP>T1qe;|c+E{E3sU{w(o+u6aXnS#a8$90+PSoQ5 zvGQmS(s#8T&27X)q>ION7*^Kpl}nQ?uZoAM71T{0N5=WJ%Pv)u?YGsJQ*XIaue7kL zggOy*5xd>nVEM37I%%5oE1}fKt_N3o~rahS`hK<^`*-SO7ZAISr9!=#;yLR#{Fk!1p zU`m$7L7pjtC{l0E<9(z!UUEpzyXpP+-T0Qxw98Z@UA3cAo&L4jDIS`MMuBzoe2-Q+ zn8bOUhnil@=b1k0CmUZ07Kc@&@T_fe*D>>OV$$|XJ6BQaMq;Qp%WQaj>n6*&>#{Y= z`tfO+00K+*^2<1y`ImRo=a)v%3V75$>#Z0fkVW%C9k`<1_}c30AsO7-<g{AYqfZ}~>*TDzC?nF@%3Qdf#5u!WGpbpO~vgv79?wn5uQx zGekgOtl}Wc3;3N78X-bkva3Xk$12Ty*T7Mb9}eDVXl0dgazjfr7hzpjiD>V4jemV* zhEY-4I+g%$xlh!gF@0Pcm)GjzG3?$9gUmKjXdkG2RhFdD7S8t-JN%W^+WjO zi(Wl!X(;>J*j+3lt9RThqKQdga<$(ti!!}a+;EwO`6eTkck>$A>aRflmNXu4O;GpBboiWe)$zYzAwIy_~TGe68?(m`tVY#zhD>4)v1)q70bOKT2B zmNl56lfQ0|gx zB4Rq|wWZrxEAD82CdFbA40@^`$9Wk?v8}Ppw$@YI)|rTD;f1sHB6CewZdmWGNAB3N z&W>)l%h#&c^AdX!&^%xs&8)N^z-e_nM? zX&dCKRuzLT&CSv@?uJfOCB3VO=O@c;2?(v$PwB)db7hn)TmPmLx6?v6o`Y)KCX>GI zyHTw6`dzh{Z)YN^d?Q=0?OWB&r>--tO~}RzwHocA0C`mjo2F=K0e8=baT(|?xzlaG z{n!sbo!3trXW)dY+TLfXo4V-ZyL>n_)6$I|xAy4bB3t+(9(M-j?#J>JRqc;w->Sup zZ1GureKMSQPe0c7*jj(x=gHmC=M(p3rVJFRfF6E-zPpTANm0g~Ykzh~zTApX)OEcQ z=a**tbz?eWaN(|&Veg_FWNu6c+p(t4c`z?sy=$%Si{8W z_ci}=G_1B&j>$(GiWPmxLErG|*M+M1d7)b`_j>Qk&GKy(T=!{x$Il0CY^%!HTCE3P zjAZ?gi`1YEvj5wm`}qtp-F6L2?TCk``>Bf>Y%O2&&dI4-*V!WL->S*`w_rjiEUcej z-OF3LN;^07`U4}_zxX3JFf@u)tlW52HlN}M=-cfk)Xc!Q)8)(N^mF|9+T196@ufGJ zzq7xt^{m;wY)41V`$K531UKhy5@$l{~Xu4U3cI2F&c&}^i;%u1B+NbRV z*f4GKRPlGYecc9M`sLQx?cuTcbSz=AF;0zG2Rg&rtg(fmc#QicfT;s zPlmg%^Na{qz15HPP_u@rC>B#~fUpuS(x{2hIMQHp-tnwEv{ls%gSJi|^6NV%cz7f& zS?!XY>yLY2m@*QnKCbuso!1M5YE9fjJ2<|~Hf=$1u+@0GN{EHfi)X1qqT8(|dRazn zhQpLNaoR;u2A8L(hEHOMu#QJ&)B0tuI^M?PlzL8wQUn;cy=Ao z5ia^sG%deKJ;_hsa(JOaV-3;)kSmz_xO7?5(?6b06)|nN} zLnp7=O`%>)FzTQ~boy4kS!OXcd%9ZWj@myP*A*71j_ST=(T-$Xq59& zv>^wG&Xtigv)FLVfj!3tG|=iQuM1&gj}x8^Jq$G~%{=UIw5Yao_wuZltlCt+*5^&R z5R))6G?V^GF&Sy)J{yX5blz9QdWj2$DPL}4LnXf$!vO{%XLq1+<70^9R)K1l6?ZZ^ zXP3(CbrFTW3dY?Q<1>vCP1Dc5vu(Y7bVpU|2NgPyn^gF%#zP~BQmHd|=n+-5NN;aN zlSfH_5zkya2+cGt;AYY=_zCW{+;t>i6F$WaV-H@Gz?GG)7HAxLxvdzUUQHqK%E+?I z*L`TJx?yC?j3UW?0LLV*DpqYhCC-AvQSngNV0B@R)UaMZELt_j z-cWVhheD;2xkVmuQ&f)7ck+^Y@70?qu9FmJkT&)M&6~znS-UPSi`MPnVyrh+I6gC) zqAr|?X4(1u3-v-%i%pvu1JwxfKyfI?C9D#E1kTH%;K$@;6^9<4x^(w2jlF2Ks!L3V z<1QkXFvbHya^LVsA}mWMTEwB>>Efj<)LSdh@rO9Grr19o#xa?nkR7K2qBn553S8KFYV4KP&^s zgitJ^$Qy!{QgVwUosH~=NYPCj+$kbkl#%Vmd4jMKG->zNOseT3vXd0cXy92RGo`=k zTal&4O_>1Y48L8qd^@nDozyewU@z{cfu%x_>MYQqM$>gMzO>tQso$X(yGffT({$W( ztF};(Fy4VFM35z6!jtdJQBf4%@}PM1&+ zi;|Ky^T>veCvmwFI7G#qj`9edW;Tyvp{YDY<_(9gAI(Yuj9NV4SW>#s_IYUDo=h?b zR2t#hi`KJD46ph|u`eeYS$4V1^9plf>e7WbCZ<8jH4Ve5;T@K$iOoLN2VFa+8DiO< zrr1%rT!jW;|NeRE*`^L2jpAU^Rf4+47wARN>g(1wH9VZ5bq7GjYRF<`Wt6qMS@%4c zHjoEr(1%1E9%`@K4VsE-KN;J8g#S?JW;P9sfG)4*)9A!08|G-yfu^Qyj1zU@*P9v? zWmkolZRe?aF$7$b67VRbv$iP^oSkA<381*IJLNP~x)Wr4{|><{E?H$Hf7&nV)$LG| zSGJwBi1OWiF&X=zSI&b`cVs3_Xro={feo@u-AP>1AmeGWIx(yi2jML9bOYN?%-AtM zCSKUYo~B1-+eGYM58rQ)mEK^WikwCE^JN`kTUh#f82XWMJ+SN`m*gf{ty3>3W-$(6 z&*~3cA6qZ!Gk{a?YM(X0N2qnY)gshk7`549!V?!@IE_*5%MkCgF`AfmvYaLQB;UxQkw);*ATkR z($qC}m(KIpAlPJOT0Es>bxBplP6 z&Jy$X%5JJ6jaU0{!X61br)Hh|qrU5DqQXp3@vJzq6K^;O>%UgKa6Q%Q8!R&1))K!HtBJQdWuU*7F!C1I5fLa^61HC&aL>4Pfrlh_y=Y3`x2fvC-D+fX*WvJuws>?WZ2jogGlDBFGG zvt=z@5Ey%Gze=zRifoaHB+iS}CGq%o69OYl(^QydIG_6iHQ(%}lUoRJ$kuBLqoX3u zd8%}R2}rN>+~cW;DEMC6Li0l>z$6?@?sQM<+;Q@NrNV6}m6>XR!+ESI%2*L437{JTl4Vr{mq2xO*!^0I*_18QzL~n-c>iA zbIQQgp#nu>nO;#$jOjG-4bA5EWW=TrSU7q(orX3iOVY?TkWL(9Y-MS+ne*&~^tu_HO$a~EasVtB`@BRxS1G-V zTJI<}#`?tOlmTI8V6F(vc;4ntcMvwYp=Gh^`ihuQkHmZ%`5a9FFchUa;Cl1cMs$)j zA4r)PB#}Vx-4&addY6zBgOVcy*wI7f&cjEhd3(%6anFoV!d?nyoyppH*sK zEHL+`E7#5JaoM&O06^YR&(IUZSjvm!nf+IJ~ z7yBAxicu{R?aoOuR<#H?twR%tG>rrhV%x7R1B&9Ns2nqsis zmGJ=YKjI+k-%c|SY#>~Y>*%8){)1wf)5wzui3cSAXNjiUiXw`d^dtcSb7gmjQe6x= zk41bCrJPLRloQG&+qezYpo|=CB4yAbcg1{-9dkgOvhJZaa%3*iTx=@2JiH+^ndMj- zFU+be#EM^s0Scn8-HlK}04`q9(lv`hEKOlEb0&@~Uj&mI$n>oZN%+&5t3_2(u( zb#W5T^I&jeXB>qHJkWPrqT9KOg5@rDY#+N0T}4(2lqf8l|Kvy*UirW$ZenMw*m;ws zzAD3rf2x5rf~X&-vydfHP6DqGJM6MHDN%=slp1IcC(71Wj5s(q^_I!ZV}2MAd{Gk zp3?_j-H?lu={%Fb${eDe<|r@8?0%a_f5O}!_WJ!hFV329q~)8}LxQlP5>gVP7|Aq` zLOTFbVrpiH%!hA_hBPH$AG!e>C6$>3e?4F1f$PO(9_m-u7B?*`^z~-F!m{GAH%0>$ zCju!V%bIC9okliH$Tc)<8U^*9u2fed4F5b1`lX**=nyNr&K;PmJ<$$B{@aGFdbbnX>LWLYGO8cg;9#1}wPkAQDafrT`Fn%98u(Q_*3$X5VXexF z>}`&RLnEc2dC_!*l;fev2-;(=eP>lIpp)blf^l-nx9-GAgag#^Q+X>}!7ChK&kiKZ z%^-JhWZVlfYsInW##y%5(s+hN+w3?{Fc{d4XRX|GWU09LxK!*|@_QDKkI6M)7jT#{ zC&n$2hPH{<25B9$cDrieZpa2Mr><;^np@C5lVeGIMdR+iPOF8ATF@onkwTg=9zA4N zc2P9L4a=I2qQj|5A6Vi6>RYm@D_l^UeK*$2-6D%z-3PPgU=(OG_8}rPYUi<=Rs!=3 zXWATSOlV?42)NUnY{?+;Q}M0r`82uTp+Qmy^dMwk92Q}SdRhf+Y0fB_8jaH$8!h#R z+kz`N?&eG;ZUKIdQ8EDfvDWX63`@f!UeG>BiWI98Wki*0D21^NN`tnVPFkgTg&ie|vy?!mLC31$ z3r+%3HcSqrfFiP(C;G@ntRLYCj4g*0XFBhk77@(yHN1NX4lA4JHXIxgalmsDKVBLm9+Z-AJ1leP z0-YL+qc&9wJr9N!rX&SFND}u$(sH>#3~mAO{46s#2JlL<=DiA{m)MDGJFR zC4D*(u#q`m?O^`kgsbPnhTDu&$`o|DeQC*YgcrEXs_HPEG$%X(emUlIM;ApNS;TL` z-Xx|e7bGqY0F|ljaU9rH6(?gA4d7Er^&ml$;L*moggjm>^B~Uvn_}-qmKne|e4A2+ z(-cS}7m&jg8Cjaka_l((T~i1ms!_@#SPm>YQVXP~h zIpGXLyPA>PiI&h)U^*N~hjJ6Z848GiHFGzi!!4_dG|JfwJ}Z+cmBI5wGvj+dT{LLD zHd==YfdRTPOY*ck0VHV&-5C#~mWKdC3FCAOf@39**@L-!$PfoJi<(6sjT4y!Kgp6= za#R>c?P=^djy&Vl9B7;^pi0x8_p=3iS59ok`OJyQye3RPCu!!nhkl#Db2&SVikET{ zm~dzKl9r$~Qb#%YO6Z_$k=U?EkW3M?h)m>$Fek%gG;*mHh(t`4U9?Etjy&7QsK83{ zAzXc|a0Ch#8`2P&Z<>gqu=QNe8uV>;4L{5qPVh;SaZ{o*dgh&x$E_m zhYRwG9V`K+Mn6EKk2ovjjAHx13rk_(lu;EaJq`KFR-j3w{%V$4$m2~C*ak30lHJG| z>oHvd=CehCHgK)*Irf4!4%%gAPmq^AjqRSp(>VSw%d2(VC&x`oqu44q;@Aenhcu*rf!8qVqn z|2&k8Q6pXw`?9`;@wDO4gO=vbgf!s|M;Mf;;XY73^gsqEWxjO zV6+7FPu1C5()1JqNU?l@2T)yebL7MxPWw0$L56+-_#kbBHhDioSeLFp-dNysh&v1J zdUj56ON96gZAR#A0{ zLk>!evEMnoKcn>S)Mz6Q(ORTKvMviC9J#2hKJp~5K;e{747ify1EYg$V*8FL$;cxf zq^zXl0vLl2@jXH$^`1A6NCk$spvYuq+~LAxHl!T|sDf-8+QPn44s&mk}-~> zXgu+$DHF`95kDZpbE#D!fsj6dS{%egy&|ezJ6%aZ6uT34F*A79kmft%!bQIyud!(1IA$iFS*XLzZbcB_oeAz^kHI5pxY00ekUD;w39mdpt(R zB?@)Pcq+Du4gV?=deqzkV1&4fY|cWZNrv&8Y2+<2fYc&HrVV%>#s?bn*zo9aOf%bu zP~%b*AV?w04oF2L#xa|fvnJ+EAB8&^(RmkmgGhBmCENh|=W*DF)QV3H{WeA80B^Fq z1R9izv<#4BzePC>A6*{1C8M(T9z+PWh&oPLmT#;mQXg4|Xh;b^6f2@HuOxItJogQq z9U&i!9Z&2R(-@;V#hu4SE1@$4$3zs7n?w>-4>F41FDfazGIq&ZKo=T{fFb$X8>F!W zv6kKifr-72lTuJ*Bp@1|@)sZ+P^UEXY%3@W0zvAS83-_+&l5_jm)D68eKb`(E1s?rFbPsiySp(o^0O+L>nS2yuT7z6B=dd)_ za!FP)`}u)nOqQPmMI_~*fd!S*8Ib48Tm#ZWz>^7yhvg|{>W^iCmehl%W4Xaq$hmGh zN48f-3LPQ|mUvDyL)xiif!x>V1CnG}7xFHv$@`dO+4|yqv z1t6_crqTRJSyh|Eet2Ad{=p!qbLhHpS}!?!2`wVBQN%D5z&WXcA6bMeF;f0d?3lDE zV)7s{N({0*vNG{1EZ#lE(*+*Qun&I6uV&Mh<;IZ7M9UXQ(Kv%jQdXFBp<7s*nKBLu zvcjrtm~tiZ1Z#=uN0rKSZ$j)zil)RpXI^edWEc!MqqmZLU@AM2Bf9K%jPjPAgcs?6kLD{$@qgB@;K~P=1hc)D=*N$ z(Z8q&EP|wgVO%h+AFFK=*F^=eB{oSnH1eTM|GYAS7;h1Pd0_vQ?2l2BF-oc2lKwzp z3Ah`~=9=`Z=$yI*QhD}QI)})Sy=oo7ywK@kb&ixR^w}wGyBb4+d0WRdJE% z9uJ8aQN^|uf+}=~s6U=S%;bBl>d3?*JB9ARjgXZwqoOh(^M*8cFxp}A0(Y?-Bn|pb z%r;Ua*i%LXBcN#evY5%<885BCQmaL1&n!_DL#voRa887tLUjO2GvE9Y`zd0tW){eR z>;m6G1z}bgAPxCIW}yHJx%49$qMAadVot(qPMkV4&^}g{fuqz4xQZ4L5(FgVd^CFGb(2OHQSOu5CQ8sW zQkufzAU_P<;SDztxB&WN5Q_ng8Vo35RP%By_8rAl*Hl$v7q&r8MaRk|wGvW0rVN=O zWFk+fkP@845GPnau6)m?OAxAeCPb1fD77;|uQ7^>nsMXAahRbG7C=Byw|N>~YDVx| zP*0g25vD+#>}OxTv4ACNZv8n39~QRmsyrMj?n;j!O<)h`IqWUCW7CQMezHeXJaoS zPCqgiUf{GF22mUA zCz-7YOfCiVlKO{40SrF^I)Y0CS7K-^K}L1sfiTr#$hXOb5hV^eROTYCNwxB+Bp*{G zU%qGKW|VOWI$~bfUYsG|O>5{M=set(oeV3Z?4qMl85yE1cd}Q`P6Q;Q*7(fo6j2{Fq9#soFe|_hUM$Ceq!5w&33c3prVJ}Likzf?Uhsb^-3Z;~VIv`)zB9+6qg2?a~aNZB( zBbgvl|A)Fwot5HhhFnbV0kA_6^EHW*<%=+7tnlT57w0YBFMtr^ihMecQm>YDlAbmY z8rv2^99=y|DSKYBLoOvXiE%)lv@?;a$rjv0zIf7smwbdR3)oC~AlYQbJ3#MIf($l4 zRf?BxB}k0&5>nP?%fN4VKPGER9%TB62(mgWMj-K9qz?&?Bs9kJl(hvy55ERyAZ8&9 zR2tca0{luOMRkCC5K#CJrB2F}GF51k^mBo%RAM=ivhjg53OJGVlr{?eDMSKE$YjzW zCS(vW-vCy`7xtLsU*JD^FQ4~1l5QybQVv9j{difVEJ)OB5IE%&`5@=iJAnvIm#EQ( z#QZMGjGxPQfdXwlmX~E9sCZ2B0>w^_ zoLnilM?e&RJdwO#z`B9J~qhLlp$xE;yBw)q6HC6h2&gNfs%tnyN%6;e7= zz;8&5BcTD$$?`Jiph2RDA5ijneBx66K7Yf9d7+4G4agcmIVQyt50IM=#0CV0lJa3* zQza(`hRRyWG$S(uo0~t;JY-3bc!lOZg@UM~E}(c!GvGgyM-AW#WR4i=DVFoYkmNAs z1IWrHt(x-Hxw4S3OW|FpqjZSKS?meI3?-WHWy4DzG~iSP8(Q{E(B>p7#6Tc<2lGI* z$b81i^TaS~S*p1mb%Nc2LlfdG^%N;BfWbaCvYa5fZ{#2RuH2Zi>A^1%I5PhcKEA}% zLBP2>IZp_3Y$&`%d{8!+$vvc2S=Z#GO3KWk1EejAfkEsd2eA)uZb}YJ%4UDEBiOZa z0%BN)EY##1R*Z<@v$A(82Tl4VaA9Eo6HPJa$P7})k!dHRw-Ne#1Hbs$0>Ev zR%8IDv40caTusiTOgJ*{lTql)QMPnQ1KI%*`;kRSD$KI%tYFlgVQ(Z6N&ZNEVjs#q zM~WiHk;8eqL|WB|J^qttU}rPoa$v-*1n=_E2q1kA9V4J0mLcYfds{z9f!85jJ9tYESX!+m8RRZch9nOr56 z3ppdm5qK&h6LA5T2-}~>VZJ1Xk*NU`&#%b~kYxCS%^}5lDD204a1+2Ag@@wa2$N@SUNS`dmY<$SR^157*S9Ejso!OV{M(!UOwo+uH7~m<8 zqvRP_W0p-;J2}@f<1yjPg!JR_!0;0AFAK)!SROJob@?MUB@X2`BzFSqNCGBDBSTuw zH{0$5D9FV9&(!qc>X3-wqmawr`1m{%_&))g%l1VBnN5^mpZmPe` z6!KfdM;Vi{xdc3yFO-*Qg@~7^g7P5uFHbAger^JA@nnOJD>KC(0moDl7Ob`mWl6et zj*r|dLte&#OhS?}OLXy3_Q?#COv#y8bIEfV276j251bE_Md{*@b1X${#wnMBJj+r` z4N%U$`~?fC{3HEv*-&a~fKW8oe<&NN5|9@ZSy6ie`oxx|$AD7EcQZ73lyYkfO?hhcPeP+UB zBobKn8x}zAWAF&N3M)T+OATX*e$PgLMDaJ!N^kJ9X@n_NuW`5*AVzSWWUEAI;s{OZ zK_3k4fH~+k5s{vj(B9OH)(6E6fr1qF*!J2E!Nk%;B4rZh@rFTUi8e%#!)1cvVgW#5 zmwdQ`hDWh{&S5j}FB@7)SfY@o#n?uHd+LS%WOazDX$z|ST6$6N{Na54rnNLCpO0IE{QgqG&>w#`Dj=>V1pD(5X80^ z6-KN;ps|=6jn#p_(+@GHz6!VU49?$J;CDVxW8eY0rgL}0Ho;eX#UHPrShHBlF%fka zXCQ=a64}}Mfvq@VCS~cU=?(syUxxZ!ZnKhj!T_k&<2B-M`~&SQJG7|wIj-h&E6%{$ zFl2S7eYELh8G;9|Ejg#O44|ifgq0?o*e(4!j&bF6XW<-1)2aR={BHbcP+7?M1qt~K zIYOK2(vs&+$5WA(OVzy88p1L*qf0mHa~En zQP)~H)RhM(${%0-+ zJzI6No&Z(kxFWqyg|y!13<0^RN}R&{opTD_v#?CCCT1zuMWh<_j-4k;6b?E$8=EF)^cP zn%Stjx%>x4qZk_gzD>dFxJX~JTi&+uuV%8YCK}mQQy)nTh)^#$vEW>UxLajp`-jE- zg)jdejSDkTicKx@)&bfA9LyBCtf%n1MXZ3L6uWWQrIPs6gJ?uUUyeNg)3>K|$}Uz# zYM`8)@$)C&68Qeh5+2iv7;@XHbHs-A5s-RJjUmpnT*1oUtNt%%iBxl3U|iVJ@P$~~ zv2KKMxDs+gv}k!&!3LZ*pD1+;;+YVxQ#8x6Eh3G%tGut#XmUtCjKnN2*xe;nHu*cL zKmEs_T1i}=+#K=-o1M1jT`ahkB~UXqiDdmk5r_Q8s$ z-fsF_!3kgXeCSL6gw&QR%RE1edjBet z5lDk-h;c&c|F{kd5YD0~wWYwx=7fRM#uYBsGz@bpaRz30;{uGCXrwjN38UcvHx>hK|F7V#u z^cYnQV>B8ru~s&VIm_&C#Bzn1ctAbeOf^L$b{WJ2N)Q|#f1xhQ)wj4+CbIZ7q-!lA68K-KlLke|UqTc@0fn@CUSPr41Y4jah$& zEmbV(FPofd2Wf`uM*|AstO_=99l;Ta{vg{`iB#o(Xa!V)54%vY$Sd7xp!=&4il)(z zmW;aOcvK2&ekStgKci-dwF^e;+A_St35dNKI#73NdT=++qpfPWKx4eeA2HBfne*=d z6_?h_5an-p$Ten=#0Ci`(`IPF3W&~L0W@I@Vh`H!oPSkso4<2@f3QYSn$!G*rZ;M& zu7?mLqTH|mMU9`Bumf^$<5I~HJ{w!!McCd`!ttVwp?@l@e8^;of{kdXKv22f+hXDY zf{n9TBJekkja+1G*_8oC9G_AQq`|%GW(xoq6j`bT%1M&N(RPnWGgJKqgnl7JY@Jy| zXSqUNv808S77<3oGD#O~R7UTvj-7i;g{0*c9*JJ?@ z%PBp`ZG}|Q0^k`1M{xW=#(Zv1y5ms5fQO%dysPhUE_UQ1eEMcCX|aMqPe@}f1W^`J zu(cHMUcLz9@^0d)G&XcOvixF`c1`v-z9#m49a~Gt*tUbFD?Ig-wPjg&wbdx~;}ky^ zXhbD&IlA=#R%NLGT;@Zl8QHaViK=%iNxHyR*`@+OVKqdJ4Qn7mZp)+QE<;IVn`9E8 z6w#zu#se#L#ZMZrt2twXa8@1KPVHnIvFhXymRr)FqevL~>Qv*RIran4WygluGHX%r ze6~!as8&re2bM7=v0(MiqKZ1IN~hpaBHJf><2+_Oc_}NRB(uAwLJcMraqP%UfRq~- z*EJaxbnOBzigub|@pB0f0pePka-#}#o4c1gw_! zcdN#yk5X7V0?mU`Osjz^7|#TCXh!4ozAd^BmxN`gQO5vKiRntTm)z>^+^QD zq@*}V$z*kg8@EmrK@V6+x_;nB70;4(!B5| z5yu?}j>JZ-&YGi6-(5tYIAzu@cU7nauAV4i&Iywz1hryx84C*^JcOu3)^-ria%|)o z32YaK{sV?QNhjS&5#tY1h9p0n`ZwhTISF|zZ7Np-FpIU+{53yjJlPo;WcDdY)?1L2StHW@ou`ZG!kJH8bXi_!vGY>UeS|ln6Mry0ybr3(NC;8$j@@+ zdAUoTO_r^qq1YLPts1Fi$jQv&>}vh^2L~ugv$o_^Y`b$piP8uWQwr@^p$uB}Cao-; z+24ZUnHP>Vy$;#d=dzts*Ir1&m7L)8fWAZGdexem5qxLF5izn&j_Qh!8WM=yJWF|A zDKblqM=OX1T;kptEH1w%)EKKZ0OSs`xm$Dg@DtWQ)+jvhQ_-i@SXl zZzMQ8s~}-RT8&9XpWU15obOVL2TxG)g{X>wAgm<(kc;zOBe5~0wqLfCY-ef347u!fr=f-p{CW_UbO|Sf^5aH!C-=bKp$w@ z))B$TOf@&~Y+HzK%w+JCVWy_a^JMw+5AZDU^!U6b$sOonr4oocKG8T!pY?0ml7y;- zIm|G-JH(VN1at@Qm$e|^RgeymalCqHDdb(!VG36Jj;~#c5)Qs*692W9NHBp+Svo&< zxC`GB+rTE&3ckY2n1-jXFHsMF^A^0SR*Qi|RB%>n%tSk7jG&nkqo~b)swwlm$8e=Q zF0_xp?7li+%g8TeIVZphrqeE)l%(Qg3mV<97S{vbU@3cf_ROSD0jic#Wtf8_4_pXu z0^8s@(ku&74)IWfA0G6R0c5QpRx3Su;h$fjuTk6+iK^>r6|3qUmMO>d4O3fq?SYWj zf6q8kv9OgIaV-&iyW`=>Le1wyX%+(@C{@}b!kJHj<2zIIE?3R;3}_~zEV#y)2~&KP zWg4fLa4pqY6l#s&#x%R(WkYw(4b5Hc4k63$80hwnsmWCWrL#*G0VtT$C&-2q26M?Pw7=0%qwhXyS{viAemu* z#406WS=c>cf5SVvu3C0A%0sqd0;RTL%2bl&a#(M8$pw$QBg-!6Xeiqp(>{AB)3RnA zR}ICYT-bZ@G;$h<%(Bet2?~m0`6k4Z5qpaQ&p1IQbEaH6#d)Duwa%=FUc}Tsl~8J< z{al)D@Lggk{dHm}YlC3mqEHnO=>gFYDyo4hw%wqxHB!(m8bB;m_+n6_DsCV%nekHn zfnGfa6`tULpSI12Ali~@QN+P+Ni}+{c(6r?V7Xmy(pfD}N(c*f_GV0GHb!kbP@|&5 zbWX+O(n$EYiCy)Cwh=;F_|C$1Q*YSs@VhUYl?VW(vJ)ix>TA^X7>kb8XcIz_NC8g+ zp~PC%rL0`eoeN=N@1tm4k9l2rHHOARZoQ#Ji5+g!k6{8=aiGa4kL!oY&)NdbP+2g7 zNHqlXpks{8Bo#G;)pv2PMo}aPGPvhPhV0PhH!V#77`Uz08VCS&5WSp}Nyh-dp<0{1 zbdda_$0DpiN-q}5APP@`t#^7B~gnG+@ra6Bb#PI+_GIvLAOos(v@#?Xp5V!;&avFqp=hssKJ| zM?Pw?2gf*&)M7CXJmGae70DqrDx`QyB*!%aGg?(W%Ad+?B8GZQk2$OBV$BQDg#>1z z(rbZB@A?U~9Csm7J+GMxRO4ILUVIs2s?{U@;y!iFY5gOJQkvvC8w$*eZq}%#w-ewb zluV9mXLwXfVG^Z_TdkRMR8;% zWO<7~60We}H`o8i#?55q2?3yUj9i$5IV&7IAtq}&E$kR%m@GUYr`Ze-tpT)77rkL_ zvOdGyQtpmnA>eoyI8o|Zb2$q1oll0W(}&9M>74+6!i;=kd~i6VG&AZN+Sm zWuE#^g!G=p77&3t9Hgwc#5iS;;ZfK`l?d9&0|f!k)4|Mfk-@^64xmF;2oa~QK?!ot z`TxWI2?Jb8v5&1T%1Cvh#&^3pK$7JYc<+1wK_$#8GqZ zTvtd%ITxHkG;A4ANRW_fdMc#Um`YHWSV5ksh(}#h(JeBUy!mw5K*@w}B!QR$?81$; z6(ho;8J=8A7w^2@nv%g2((!<+K4DFGB@myzf-qydxbIn3uR#?}fgX$PUe(gR9wA>y z>T%I34GfYNl84WPhlbE2>_%?0cqmG$OPf@iKaoB@734ZRDV&q6V)r!6mIdl!>>--T_04AVVWc&RqIsPGSq~EfA%a_msm+&muTjfck2Q+h zNtshOabr*7;ub$k+9K(W=XNP8lcwFobuLd6a}s7>op0>{10A=%iFGdxH?59xo51Ip zF-Awr3^59qH^3=#sl7A|gDI11GE8@ZCVj#d4o}@+>ZLH5^MthKRWQZp5utl{M8R$= zC|7$xGMKTP>}on`Ku#hz+KDg@S}3B%okGUS_b$}qBC(j+ z6j6pM!EGkn(4hojuY?ic=p7?Pyf@cA1HaN9Jf&kolBtzq>0N!X*&gR04vD}&2moPM zeGGPi!c6ufq7w?O2{7BaARMbZ@=R?0DC>g>kx9Pb1A~|P9^5BKnG<1npQF>35zQ9e z$b5dpDPbL*lzhIrT)VwU%uO-f;WXD|S|A+@J8I!R)3fjaAI5m2W~)t*!iz7D4TR5! znA(17{4$ApB97#-Q(`u<&^)AaR)WXn8WfUNW3N%SY7}mFr!J58LhfV|d|H+*3(#mx z80m?%55pkdNl{nis$znUG+^3SZ5TKTeUKB+vN|}4=B>zOw9EAhHA3;fQy?LPN8Glt z?lb|8-SubE9-4_Uk0VeRhvxV(KbigXy0DElay~LaIvJ}6PS(R4(=voXUowEu`Ut>7 z^a4lo8GZdJwHQISJ(hr~ve8GBgjWh?`V4Q>J?q#aBsHCJ(2Ov7mWXQ*fS42`bO4j$ z2^XeD{cQSfgvA<+Q`Ro-z8A$ZnS>dpl;fF86TY!GoUc#0%BkpAfGGvc(V8K}8aZh( z6U|XRlR+4?m#s`Lh21V(A3_4$YYbe5?nQrg!@Abzj-PJ@n5qmU-~*rlOz%KCWu7)_pYyQBZ0bCvvJB9GDLbRv-(E!y^CQpsqZQx<7K0TLsXHWcTugHT&_sJQbjMG1JPZJxE{*ys!&ZPGdFRkpBHF6=(N zI|l96r+cGP>ehb;_Xu?bYV;P>;D#KSW)b<=LTbNWKgW(#$J~;|i81_NXZo4?kHY%m;%boX`hDHAVcwe<>-^;Vdo+jzyfWX9U-dhkAf=c%L)SeSSG7 zS!(>g<)+`Imy{D`h?gJ$uM6J6wam&zK(VAHj({)Ok<0;4z8(!#9F*fx?V!4s#;ngX z>;!u}_X32OT@D&kfX;cBPz*+Zp@;?j#>61+=dC*r=OgV?6%XMlhQL!pSzz4`CkR=7 zU$0q$4G{<)e!0Y*!crfT7t*nVBA2Z)mka}v_v=coWEWf4d`ygtxR1O%q|!7yeD(#W z+vH3CcrIQa1Qx0fJ$aw&(^psC2^WBng-(JS9Ur*r@QdJ&9mIDwj0bIWUQTi8@!IqO zl~d$ro|S^&RrF|TqUwxe@jDurl#YHg-zZ+Y#+8X>^c88cJovxF!c@9SUG=Ysa)_;> zA6cKT?~$wL9o@48p6jLH-RORMK;)q?&W(2XqwB>4u;Q?Ix`Ko^gMUbIZyyQdC?{B7 zio#q&2P28Q|F7@$^36BNZ<_l10WD+*x?vV@U{iw)YTj^@-w?d<9FOB)+ox zaPL0|Z0JP{=gi+PXTJ<}C+_#98{8c{-|=1; z^beoMYz6{ovKlFF}ffe&WzuwLttE9NeZb?aUKz4 zdrcC=KJ?-pe&qWhUI2i95*FkK=8N@BG00HeTn@a5WIq` literal 0 HcmV?d00001 diff --git a/sounds/honkhonk.wav b/sounds/honkhonk.wav new file mode 100644 index 0000000000000000000000000000000000000000..b1073299bd91333911ddeaf1b15f1f8a6f31a698 GIT binary patch literal 5104 zcmd5=*^(PacICYJ(GLHB-~9m|Kls6(kvtxWBaTRM>Af2bGTmC@%P;Qz#l6FQYyZChBmTc$TyO#3yU*Q?|DUU9`$@jO{Un6O zpRe_EF+eF969FeY5ZG4|`+*=VU_^wH;3%UmPa{IYi29sM>iLShG!=#%(uP{dCO-~4 zbPyRVRfq~IiAy-eEMXSUghl$&P$Sw7rlRgol*N^h)WI^qUfM$%O9|l~%Vgb}cAL$? zShKn@mYL`DyAByfjxTL5MKv*XpL$o(v)b9LW(;y$Oo^FKEay1ySh?!>g3!ROhy~j* zF4CHtWu8h1&HB1H7Zth+j!?Ico3@|EopQKvIwXyB856i!!(+P>&H~MqL%(8#15$2{ zdJRqVb$jaLAY){i>a?GG1{(~kdumQ=hRTp(2hc1r3u7-n=9XIKO?Ud-eL~LS!=_4* zW1ESuE11(%;z`$L!(&p;Zj!yD#Z0RjY2;X)NLECQa1^5POte;2c;a){Y9T}U{Zlq3=VJ?^-&!sNMC)VETmTw=a}A8s_#rPZ{pF)Cp%2$1WZ4)=_cSLl=c zyKHOo=Db{?i%2sXy?)hoQR18Sa#gF3F1ruR_oM3L!RtoJ8~1dp9u0uTO@*TkUzmI8 zi<7PDn{(%}{|+5k*~E35&fIpX-U~f5d=>7~^Q-F9)h&M1dD|^@k|{zB{nTw@J&K7% z&hv^rd*wbn{!%_GznyH?#gsZ`J?9Oq2e5Sbd~(zty$L=IzZq;ieR;7}5>sxuwIr^Y zHt*85d%9}Z($|a6jUQH94_0p~8*Cn$ZbRlR%_aj`x98{XLHhFe@zMM1!;kYn7+*NE zT-S6z({$4sW?E->>u-i{t`9a|zioX)zGY9_`3b7QhPQOr9L!p!?pOR_@b<;w#>+RY ze|EmfwyN<3*)~LKnYf;x>D$S7@(c3%>R|Kgo&Kr)X1sOKy>@q~wW6H^?%npE^mxa9vZi-6pfqV((W&s#^O@D-+$eD z)cvZwbKcwBKZ_ov3*8;t^~-4!jsYuP;GKAEwzJ``bB1@F=hi{aoZR21ufpbVO#C!A z>%G`9vS9-a;r~9wF7XHIpniM0?Oyd;2o8YGFmBU@zZaZ4TfO6YBaEqQp;1VBp)dL= zYoW7vn_RO}atFBVtlcG1n=;Xxr z7IV#;M4A=^n(jG{XSFc*5LF@@A#}P#e3`q!2%B+e8k`x1WqZg*gixMPyFXX%;Edao z8E!{2zh)+~-cdxiFmpV~5b7mPJniCOkvg>BbFCl(VIb|6o#6(O$jPJ`&wL|4W@eTX z97iq=9Jk9GUgkGY1p6Tzn1SR1+(Il(IGTM6Q6@QIX@o>i*?vEC zdFaa!d`99LN;$Sv7LFJW66PjdM1qi#2o7s531v17e2)ec$$&EvOB#gC7XjrVMO+b^ zgPGJ9aPY`fd9)i@{vfnaHzP<$j2U(*#R$gc;5cQj93-CCA0S)i${>-lZAD$=W7p&0 zM3ThEDhp}UlUykoFjvIblBrpZN6k_^u-kG(T5=XP$-M76>5#iJWj=rd$7TVLVNa>H z-tTo9lUdsyXI|8G_$ai*B(WVT1T0n*x65JfRM0$VqHc4~r>VWRR*Ey#JNL*f86S>MExrizGsD6q(T8U|;!=Yfd^ zS6rE`IJOZi8mA&l!D$Xzqrc+2rNyjP#WBooE$tdE4MXtLT}7!F4m%9 zN&qK8yEP&m%kC@R<%?9ex)*XI|2BQJaeG_Z^-qFUr`;EI*9yBZkTDm5Nq;8#_cG}5mzE^v7-T93F7<^G1uk6NAIBgrIKMu57{}tY* zSC@y|FTTVN+TY~+b#)@GL-W*XQ!h`vHoh6{c1~XDzaM{{JSe?e?AF;L(d(_bYC3v< zf?M{*X}y)d%pS3?2Tz{f-0bfA^Q5V1{YZ0~a>m=%Q_lZGWmd-gtp){QRwoAgKP6K%QDN=BNrT-}>Sb$#+&HSpO@b?5SJ^VjkZ z?01#Xg|*)fx*gXrCTUX}UWpo-ztW#A-#fo@e@yRJhZkr^m#`mO?fIlx@1ChTUc7QQ zW?!R^?H>mB%cJMszUwpOcPfjE`cD6aIz;EMt!KyI+rKt{82$Ee`J%ZQf(INnp3Yxc zoBi8vr?Yx*JUspr{-ycH(XUD`R-5}%vg53ppUrP-JEJq|+Vl6;=d=H`|IYsJ!7p1s zPJd(EXpe)-y~i(3H(RTegm(VMeLVXQ?;rS|$lv>aL?7kP51!2jpLy40KOHs(%X;*$ zXnXRV@lV6=>-R_R_qNZ(v(B0OXfZ9Jx!JrOZl^De(&BaV!QyPUc0KvrzOc5$>0x>0 zSBL2)c`Hh@b5kEKJ4e&F!A{XuGU@DzegjKzIMwadMagE&y7-d&^S!H zy5+EeDB<(K985Xy=Cs+Jw(Fy1wbqNOt%P{QQC+{D%(0xsD9Z!QoP|f|QtXM?IEwtE zURrOB;-h51^9;wsm^PxNd6b>k4!eHY8J5b&S*ddz=t+=`I2n$pj*itXzK);y)6Q<% z+olVr!eYBOw38X7qY14i&+STjWj&3%)mGOj55roNG{|+h+rMF*^xWUgRz`C;Xt+Jn zH|lcoJcy%+a`_i-gWi^}YjwDYA_ z&Ig?aldfhY-PUe;rI#nijyD^-)%;4|8QhwsURJh;ZrzD_OQXl#UGH{r)Odb#w0(VZ zxHDNbk1|nVz53B$-l(P{VFV{V?02U@)jdlO>;W^dQAQJOOU<2Hl1GZA^J(D4E54sx z*qd_PYVu|&$u{<9vxe5s<3J2gW1O50TIe{c82zATkeVi&`>5~Kqby3e%+Gq};4-rE z37mV_kgVRI=%5{wmdT3K8X|ENoX&VOkKkMcR|0=()alq5xuzMWj+TymJQ&JkoZ=++ z!KGo>aVYDwf~Z*zN6p4y?CANNvGI`LeizQz&^Bf0>EOvUOA1}jGE?h~O=mhZobkZ3 z)5OEztvyJjh)X$~^vdwE&_r2ayJ_m-P%$`Qc@$zC1=tm-?~2HGIJhzD5h|D`65$7# zq9TYR-wnFN4r0$vVoi%e!&21Y2}csQ!7zdE`^?XzG0-N<9`bZUK;M^r8K4sKHfpT#K zDW-~q#Rt-$eP#JQVTqKwDlFs(itocvh#O?Y3c9YDbRozI9FanRq6k+I&IrsTAVbd! zl|{OcS9T$E0T;%o3}9P?n1DkrhU7w!;Y-M9BaS)D7?FX5fk3WHAU;8{gx~>U0a%z& zx-61p4ImI1c|7J8%b3Ly>d7K6hD1vWh@m8mM}-iD1k{7sf*g<$sVD(bDwPibp(02^ z*aMN4M`G#uvBa=A06@^$2NYD0bFTq@0zNwy9)qw)DeM=rLJxu+13i_4lfWYpfB*oA zGlofk0%2F6AUp~p^* z5E4Qb3uB`a3a1nR4Dv}}fbf9AMk|I>a54xW8S{Mx*(7I_6|WK)hsgjI2K%yTq0k>- z@JJb40=Afh^@mpsQZW#%+Y256MMAhIAcBMqJjddKo7j<0RFWRMH>`Aaj|ZrATN4DGguD2fUda1Z_o*4jaoB^LMy0PYbX$R zGzGYzfPt+gA8aTz7tD7&ca&f`bov=_*Kw_^&|3WbV0!UX{04X-y0c|1FRC?cT^GFo zx2|CD@U(7TTe*HNh6;i;{aVEbNWlVE@$-(MFm;VB)WJjXy{kY{Pyi095BK%+8ue$@ z9a{k`#CK)g_LHK5sDKxeg741mHT+KFTJc&|fYuy$3-W>BP6O0G(f^EsrVky8dr=C= N`updSLgl*e{{l;X&A$Ku literal 0 HcmV?d00001 diff --git a/sounds/kibitz.wav b/sounds/kibitz.wav new file mode 100644 index 0000000000000000000000000000000000000000..58fa03ae65a22956465e9cc364cd323ed08af968 GIT binary patch literal 6710 zcmeHL-)kGm9rwMJKDDoXYG1EEo-RipjzCHide9tq$Hlcn65=2WOGsiRq-AHBo$e2I zmz9u&WGrI~TO`Idwn>iU$Q|u*fj;zJ3imhl^ZAZsJHhR>90y0~Xtg`@ote+~^ZhZi z(tP~>ty{nO+0xRVZYid_$CfChy?iL zX%ME738K*VP2g#eQ+cdS5*a^?w67zrb%-mLwl;yr812WAZ!jfJ@-$835E5;)3X{M! zkspq7lN5>NCD;sQ5*#(G9ZOf@?{6A;;Ybv7zH_R zywHv!NKuzTv<6~~!V^j$HsE6-u_Fqp7gBf%`cVy0a6fLr_&um26B?YFh1pBA}C`MVA37I zWcZ0QAP|bSlg8PxGFS8q2eE_NU>8tW7Agp`fD##akqzyVuRvKF(a+IVJ6Om(ga;wV z$5YC4-L~tsT5hL}%X1+@Z;Fs0RO z)T@>CQt9E{)qBey-M+P)#^uKL*~$LS(^seav+eO_?x}W1c@1QDzrQ(svb#N*j0ahu zy^d3>G@6dna>2&;mFsM*KU}?Y`__&3uB-0a{mqvzPWPXF^VRIhbU5tRYt@R=DpyP~ z8gK1AJ$<~lvo-4KPP6G$OB>BrtL^$xsKKhSet#JtzkPeP-&*!g|MKPO!Qa0*J9*qo z`|kSsy;93rYbE39Z2#!l>CxV(+fTfDrS8-=>R^IIfb%-_jnc}8H{ZMV_B(F((Y^5( zuf9Av`^T$;<4vrbYU%Esvfru&gW2)P;n~^g;dU0q#;vT^;E=YfBQ7iLJEgmy-2VN$ zzxu`XID1sy`Qq!pefr|-7bj=KR@19(tbF)Lxn4ZjJA3~0?BL0h-CTQ~+uQ&P1@D?9 zOLV8zSYP?z=6mn_`r1RkQOgfM`|9)0UVVOWG)r5J%0_8TZ9A3q2P+@nc~q@6I?Cju$#l9i-J9-ik9v8GoyAw4 z!se9aMYlH?^osGBAOcK?DFDK!BU(1_UA~ zfDs_5w@^%YWIRByI0b+Ra|{3wgCPDnh(Mf!fDKKNMI#tAgvEk@i4;#D1Ovth4cy=o zDHekM;0oq8HAf*28bcB+MB#oR4xwL@L;x&KnovRv?k8dnEwa|YvG6Fof{6RrqvJI1 z_WKBBH_y8{BM~QnNmKeZw=TgZBI_0$kf_)O9;~dE>h-FlqkOnM-JMMKXA|TC_X@9B zZwFD5_xi}4y`9l;*h?e7gHSe|TD^sJoVY zJf~V_skYMb)@1+a_~>wN1fzmxrBZ7&T@|GL&B>_W>&Cvbet-3o5B~7G>o;y!<2aq3 zz4+@_&krZvJgTfLudJ?BntnPy{Pgtr>~uEinHILca;fa7D1&L+J6pp7FIB&dHRv>I zwR+ugDy2to%>4~lnc>d%-r*B0(>!r&HEuX6%zBgk>F)0CxSt!Z*>IXpOGjyUINlr$ z2i+{f@}zl1cF<@{z{;Il$ipSoDa@`r3mB z_wJV*U5v+Dv%}f$xJWcM{f)BYnM9(zGZ|pRXxA&{DqI=F`Cz;`9`rB{VQaRr@S~zP z7!Hw1h&a;~iyx^V*%aelWK$Qanb&v=03N=nH{G!47DIXgKS+>4Em+`(3HTx}izErP z=W-Xo%RfrFP?H!xrqp5?#08v{r+8Tb6x%w6ac#+dVAmkBmrKsB2Ci;R4rtn!I^X)3 zEpKivf36tbF$7b9Abd;t!1?WN_hH7kgc+FxFVL!6GzyVtg^~pv<9{fQD6o8VM zl=Ib%Uv2V>#qJpa10tF&UEHN*xnF&^zay^hyDWvRwpmiRf87_=VTVm|MY1+_bn#8LFnILFGgN4g`?!U=(%e8MK2xu|MG1fxa_ZgRks-I zWxl?S$e>)5*ZaP=)`h}1YGfxDHiAw8&Matu9E#Q?Y+eGQuT+) z)v~%w)7EA2om0Nte=huCRJimmuf2pXVN#>mKBdOhCj#E3DwV|ortrMZ*+C?S2}D?w zi?ckfltQ{~0myUgL3Dt@g z7(^*OCK9n(s#J&$&ejXR(N1c{-{q8t24O6U%AArm=|fwp!WeEq>WCSUf*?|vn<~x(S-3ewJBJZ6AyGIf&D;!d z9EL+wK!b+07w~WmHVkncTne2yCe?|;$h6(>U|txY1?@C9r9AeE4ohQ z84^UzFes?PYAgXXB$F8+rU4p^ED|5&;2a4#22p@T0113RS_}tb#(2;)*cf62oFp)u zM%OS+j7~k|IEFJlU@{DXJLxl0WK)PRyP2(!G3%HYR4FOKwhv{2qiK3g#5q} zw437}JiHA=W&%t@`Xlq;)6`83f{-AVbSF1C!BI>`AVEE2AiD?h5&}?WIFLc|rGQq8 zNt|Wv3*bhiOTzq;JcLz5#AYRl4-83m$y1)s+I|K>(gTNP=UWKfgAsrcKcWi1Fkp-e z8{{qo7)K)GiTu&iV1d$v8E-uLzI$$oNJt8JsNmXl|70Vnu i5zJX=g1{3EJrvEKeDI=b=|J7~(I{5!_{9`E-24-F_~aP? literal 0 HcmV?d00001 diff --git a/sounds/laser.wav b/sounds/laser.wav new file mode 100644 index 0000000000000000000000000000000000000000..28893844ea66173e549dedfca0ef07b2785a715c GIT binary patch literal 1924 zcmW-fSx_1V0zmEl?0)RW&g|K#ZQPh@Vp^k#F)<-TqZ|?szymK3&{X$vXJ? znXeC4oS)Sc|K;C1=*+T4IK`0o>HPy(9i{1RO<(xuA9VC#1~4B)FrWQn!)%fuv-9Cp zQQ+B8U~ZBM0oUQ^!y=u-c5 zxC)G}1mU;>l~Jhn#sbq0|17(*6b!xx!}d&iT?|b!!4nRX^e?M7s0g zM-RF%w|v;W7nih_g5}YKPl~H)5zKfV@~hxft=l|88?x#Z%C4FwmOWw@p)0Vm;2g8H zbIj;KbMuGG^?7MMWz?=p;Dsn zA*lrGN-3|yJg>h2uaDvma(+f`Px9T< zpcr!gvm*09-^ORz*yh~NTGzgNlMs=5n$G94^os|{X~jhQjq6o-b?R+Yrxf8pcS`Dp zgQ+#w;+neR3JilK_D}hvYwpE>08{`VNl9e{&)N3@g(G1o`}3uiK4ueoYI}Vt?w89Z z`MvbJ=LwXv$3BH=WqOEFTLggIt6(`30pGWqCYeelL>Cr9N-^C8&GDO~$1ywi z{?)8F3i`sqhK3M+}W+|Id1iZye{Yd z*=l$7trA`!5f!6Ks{3tT_e3|guGbav%CS`yAE%P>_&S}z%!HP=PxY9fF>T>uRChj<^nm5YNd-RBd#+70&eqdker*M@~F~AMw}a4WxEOMHP-X zrx^Lov9%a5`!od-$1-3V{ zWp~V{k=8E|;X`FHaA+gWtEv}!Ju(7z*koWgwT(NiGAdp$V;b)#Q@VzxT~Y#OEV?@d z%flOe7ET*mqLQmdXl;Dws*O<&>(&}H4^*r+k|Yw70`f>pDH{zzCKGt5+JmO%%b$ngx0^^nxB$Nxxl{y5tz>Q;l%rcu+6CJ zFTW0~Bja$!9r4C~J(l36MGyD4GFQ>dq=PtJ`#%+3GQ)QcQ;nktOIxD+g9y)vx z=HAV&kolG^%yt54aAwgXCRC%RVlF`kor2?=Rf0aAdd8tZmEmMwhi;rnWKHM=6nKMt zJt8Ky^y&0MCW|G|YI-Ov@$%yb$b5)6WaH2VZ9xmC@#A0izIvQ$b&f^mD11I104kmr z<0<-BXtbqKvM`6fMPAsn5a0t=6#*++nCHOg{d-C*u@9e}b literal 0 HcmV?d00001 diff --git a/sounds/lose.wav b/sounds/lose.wav new file mode 100644 index 0000000000000000000000000000000000000000..7d4ef932348a2d1a2a0e96af04d9ae8c5c885def GIT binary patch literal 10281 zcmai3S&ti6cGkS*G5H6{Qv&40c^L%b5yloI3z7xPik9?(UeY8(vcLso6>32(s0Fp4 zibRnF7ZgcwL6Z%3H@aJpT99Pe5@ZQp;29&C{}UkJxz#OsW-v)fWEX2W%XgN0&bj|~ z>$A`P;h(Nt`S(vB-T2S4@b`av<;s;`;osl=^A+~_)s?@wlKl_iKmO+*uUs*3m=_;9 z|C7VKIE>4a_kY`ugSd|NHy{w^Rov z!FwU!pZqxy;zH~`Tz`Mc-my%J4*T-3Z1$Udy(fy3^nDUr*XU3+l@0~}6;+WHMWzpa zs+tB4CMY_t>v}#Np69u)zFH@QH1uqD}Gy)su7$g{-lXpl^O_abUDvy^H5JSR5SFPsNIaa z-A=dHZO5&+5fUlFMpk4I0x?zw_&9)%1qV|cn&TO$1i08i_|ZXE$SruDuj8ok&`j4Q zJ@W0a-H4M;vzv6|xYdY42WHn46^YYiW)XOx7BO6p;52biQ_m5J=<~&SysUV&Wbn5e{48~=OgAR8ptVt zJtIpF#~8t+DI@rwNT}6owOX}WhinEsz?yv05Gay z85YdLQVaPXtVB)&lrGrd8E_%igeTsU_!=)%t9-p&6@|KNo1)!nxM8o?>vns|pcA)R zq3=6zY>mP~LSO(y)c|FO=>wg}U%-b9L=@@6G9E<+Ov~gGV4+&IR+Mk_!Tf(oj{3j)QRjG#dn1tD@tBOrBL+d$qxID!eZ zN&OC}DGJmf&*q^DG^tifu9vq`cv|EO;ox;3*N@pgEE^T!K7TRi@Iy6ev-6X{mFbX z=qBTSBZz#<(1;88)anXe)`3^xH)7<%h?KEd6oUf+hS*7&U|9e!g~Wp^1Fdq2jtVas zwys4iIy09&okQexB%EcqYH;@D20Z0WF(IY*`E)p?eODbJOh!UH6 z4Qf=%<#MH5sY|+J>s~MEw)^ARBLe*sMwC?qkc$;6Y(NzN zMk#;-hA|)(pwCu6mgvY-6fV$#*pM!~iu~&|I$c0D8YaVJ(2ZeU+XQ0FE`&N31bA2w zM5G95g7pc(PbNV?u{6W`YxI2NNi?Rnu|2 z0BaIfCae|YUj~H=X~JBX^uQ$wNvLOgxfa6M=6+OiHd4 zk+OkYNlG-D&2;HQR)(6S2Kh0Ai^2p(r;H==HAEq-&it!Vsq(t#TV4ll1$zwp{gj18 z=^rUvf?Uu7K?2tW7t+wRSz<{OJuNdxT&ilAWEV?0R7a1+yo8#S9DOidAyRxYU<0e*xX zY(P=X^ANkl6+t_fFL33$W;>?W>i0&-9i#Dd0`Mb*f~8AP5hVbYJH^2AL@5f{mP$1$ z!B{rNO+uV96uD>WpXD;gae2@#)fD)y6UFVp7;=xNvvJbzkO5tjUMCL+GFUK>%u#fa z=O6%RH3!si8H#CEF@OgSM!$|M4zH~8;H~Nw{4Q>_Q3DOIkhf6;h0Jtmk;sTJ*Tx!) zHI?EOsIza4iW3G3@nX`aYZ2Bus7-Pa@kWel1f;tiB2ERA>p&^2a?E_GjD#-5C}I^U z=i*3dGj}9kq~wEj2cBpe9%SzH2Fak`?}2Q@GFV!=Uvx-RezK@146sn9qT&ZYWA4XR zfMPM9$>z&-L3Vv78X%KR5I-ntB2;~bqGLr=4c8A){)RDPDuo7XHIEnpo)Q%=v@#1q zyFpmMpByizV-zlq#F86gRWiJ0yW3AjFlh&2YUv6Oiy&vz zu_6+xz*4A{@_SorYxnQmx%=f>LH6Q)cYgl-{OjjOGrSfkWv-CT6}e(r#jW9ZzF02y zC&*o>z^Y|L6zUBCMSg)emup;ZZ|mW`JGXA${QOZ)cALY=;`!@WuU?)mrlZ)E3Yp!V zy}ewqtOxD!Y_U2zI#^CyzM~11QX!M$D!ibel|YFFP{m4qZ{z;m&u`wie*Na7n%C-% zX6J9-y?yg!F_|WTT-@8<-pypP1;J}46G(P=v>3Kf9!ga%yO%3fs&y2hSQ%WHNUjz^ z?8`51U;p&l?FVJQ*Bj1X{_w;1@6HdVvr!~uwzoF7w|91PeAt^zmnUbBpB&A)p=U_t zd}e#E$dxOC20!zuz)@<2-SvBSZhZR5)!$s-(p$~;v#lh5mohSxuQ z`}?2&@Y7dE$LEVc$Y-JE#`;D^^rCJuJ9_&3@xd(Vbv(722b8(JOuj6lPoZv4mukhG zjfZz{Uj6v$)w^CxjSXRCdLdZ5;d zxokGGvzz4*u1JAsr~v=&#{JvZe+Oc_ejqrb7eD>}yPw`YIs4{CU$0lVz3sI}Ynxfc zvZG|NI(dA0us<1fU8z>dXW^i``3l+vh1Pd~pWAu(`L$1P{PvSdY}TyVw?Djo`{S## zr*EFNq`Fw$+gx9Jv{_bFGZ?H6kKoMn#k^(8e5H`fZf|bqu?E#qm&kIxnBQCf^44e9 zuilXw0%t8>zk2@W?fKbP-<~$Gg!0*~&9z6{HARrU0bF%;xDQG(;*009nZ51Ze3>g& z(Fh{B=J$5i@7}n1<5nTE%2Myeo0l(Nzj*TO&DSGSHuY+DXLEDAh_qldC;R)0<^Fs& zPkfY}buORT*~^#9MXpM;_uU|huJAd=`z!pujUI6AB zSxFT{e>9&j4)$mB{c%H=WgdjKx3gS{v&KF_ilL)$!`9pWhBO&6aDG+{3%;WkunoU@$v8IUG+`htsC1 z2(=2ASzphVSc<4iA|%?{dUWS^|MKf>>}5*90gU$ceD(OppHF?&zzSB_{PICY(k0&P zPL{_f`=j~sK_8VrQdVJSZM#^Z0=g#1d~pwG-@omu{L`u%Sdh_np>FULQ|1i;2 z%1XJldk>4c&I`d{a&UGy9xYDx;Q$hr>fFZKE?35C4N6iix3jyqdGF@GestUH3%g?S zXck+1=iFc!WH zkAXn7l(~OrLq__w;_>S2>EU=VTa81lPQnzRVMU+1T{=?(xSz6Vh(Zv@NV2FluIN{oWUM@7}uhh1hGzW^(rOt2f_0o6XO^KJaMSELTc9 z_qRlh2i&MVJUCqq8m(T-H$^VT)%j93UzIe=F;(61U0tjpPvo{AJ-~7A*7e(!PR9-6 z#Y-stY?d58Sw;ff2*qD+W25Gx$ctKo`RZWQ2;x?tA+V8T5S29zOPOPuUKCgoDuHS_ zzq7HqgT(Xb!Tm2clum3q@$%`@$LGi6WO+Idu;NoqU)t6~gPE9bU1H#aucAKbh9#hneM-FEHn$+PD#U!IJU{o|=ytDp@n zA(Hm$9?F;|R?^jK!p0n?P%aiqRp4DyuvntC@h~=0kRMUjBCG6WGnqYP^X<(Y-s?1M zf4n+6Jv*B8$BX^0h3-V)B_!pViE=iId&zV$=}-sbYOr#-&euw1OmeW+VT^`yQs#j| zwN%XI@*G#p6YjfhYWTQV{96dgs_J@n3iH}}H5*4wW<76-L9lzO0=Cd9;yvR2M zk`^W{)u?Ggi{ZdcSc8Cz#e9Kk=Iq`cNUv=a^*A=|WdGpg$;mt!&JU&`YFVK!38j32 zx1-1lTHRziMI(Uj(GpSrq54BhMx@!{IRRpg7n7x)_CbQ)!N!^z+DuLY?KdESkieh_y?i}@hNtiZQWmQYr$RWS#^tP^8dI0y0!HP&1nfE0lU{$Tao z-ppH_hKgJ`KRi304|?;H{idd9vZTtjLat^vLdT8b{&Y4(s~Sd*QpdQ2m&7_+dm2}w zH+SL7)FZ;_iYW4npq|U-vU@w*nX23I)eyzp@#%6p94-zLSJto^DDZ`{;xz&{Y;^{c zafezs3I^2iqAc*DN^>@J@s5Yqm3k|92?&?4f)(>Q=zxW>>h>c&8qb#}kB|08$^L2_ zplw6RDb~1>=pa^tCMFY;9*T76k2D1002st+P>At40EdC#CKay0m>@!bBp%GXbWFS8D;QK;8hY*; z>#k72Qfo`{=Q5d0fe*T_(Vi|2&(01PlgV;1aDX~53e{4fBwCop_|5iUlwd*tVJ#Jz z2jnpzlBn|{;Ti1IGy@rGt!Q4tVTsS@vU!dV2Z0e!P%Ry==EGz(=dl^SYU`xP6P3g{)&Ynawer5Xo039&k14A zw@|nr93L&FgZ^mTHZdEnqH@7XDA*DCO&jw@^whu_rUg18Z7L|#+@N^^I*28f0_YW* zSJJo#SfPLB>Sn9$dj0A0@bCcLc`{By1<)fUVm!bb7*+alrfEwJj`gD0AQnRmF{bWbt-y zIB22kcWezq;%Xg}LXo;xHt)6JIv9$um_p5lm6jAhfN_O9SJN6T$LS2G2S>}k*BFk-~8C>n7@g1QT#K;A;0D`}YaW$6Y0DW(--K43MLnxrHN4Zb4 zeYBSNIBevHNT759geZK052P=YB_|3TALRF8*WqwHNtzBD%o8@E2FSAyt(fI7HY<#X4{Tz#KBw*wE$FLF@qDTB@ka2s-X?W-dd|W7+{jo z?{(0NvW6W(VQ4}7cQ$R!Vy;80DUC5{kOA@+<5~Jm9BE=lz_D*kiqipMU4RSYbtGPz z?qCz8)1py{$xx-aC2bKR__5?6u+rTbB1!WcQh`P^^ow8vZ4w>A6Zs3E5P}BQ_%O!& zh_;+)fW#)_Br4l~#0Vl?t&t*W_Mh%0<0hTcfQAe}8W00yR8oNr_6elAsA@PCJAVt*sFI+V&4TLScsGFclvSO3c!b}sb zC5cTO5IBx*fs+OfrfSPJ(z=385qxRbn6qi_jZrPUh2GFW6QThr3;5sjE5N4{;zjINB-+3qg?LU{quc@<8?j55TEl7CZzw0j@*fI*OCNh(CaXTmg~F zc;Gs{?#Mp&VijNVKvs9fP{fI0I8sy(CFE64@@1F!f-_!pRnw9^+0lsz;uAE$6x-YI zaEL~p;i#^P2GLU-+=CS%uqS&e9tAJZwpCvWa1#zn(SVomwvM>RYvgjw@WhFTYc6A{ zxl$?F5M=Fr6YA>3t(ZJjzR}2P*9UQlAmaR77@temU%l2MFztK7Su=*bl_n; zMW$qbQfI-W0?%FQ%M6{mA9)*iGy7At(J6T$y$#;@NtpzH(pwi8F;VH92}i$JJf?5Z zMWTm`ObL9Yn6pdtC<#b8jlS8x4`1w6e5HRW{E5^B9fF8u12AS%G3+26rI8O{r>GOQ z>>op(9(oTnPC@;_Jix%jYitet7HR?8DQ4@yIWD|HW(n j{{=?wPiQhkFHwE}TW|KF{-gKA-P%&OH9$0}oud*Rr1K z(y#l-aT(2OT9#$&xS^kAb=zWDKC7lRVra(Dk5p%^yUbnfX1g2ocZr*&tBtx^<*wJU z&RwDVH7Z}>E>^w8?i_c%yU;u5x{KUQU30fUHRih0b(N{BC91hnPnWpMb*%8t#a<6H z+?gt0s`?9bzgBJMc)eu0GgO-C&Qr@3`d#nlXe?T1>DSz^lpO1Hu25Nyepl;mwQ8)> zSWESrt&{eQPyegEo|fqu_wzKuZ2es#&wWy7Klfp`k4pOL$-{a!NY@X$59w~8`=Hy|?do=P+q!q?Z&$ae z8*@%NU7YMlMtOs(1qtug-_W$Uabf+(8*Hh5&z1P0s_YpHtl1CEUG<+HpFb7v(riMf zd3{Is`?7t%c(bntA3J%X@2R@y>(rdsIp-gpM(%pH=-J@l6+Ktq@=40&yt}_B{IL7~ zHtoCPRAFR&+nP_W99cYYP?w1eCSkzuP*)a(xu6H zxtBi3?-{FJ`&!F6?Yp%5{pN-Z-bp+WdB3pp<$9OyyJlBfR(WVl%8rzJp%&35g>5d6 zy8Q9gt=D`76$Sp{zGb=L^!T0jnLw+gpHmm6)vt9pH7)R6<+OqyuXN9Ut2j5D?ToZ9 z_-+o&3Vs{>%)iUs5iP1}A5C@h{B06PB;S(KyV}&$gw)dHTa$JrPEPET@JX;)@T1@z zp#}cNPQUPwvge9>6h2kBrm#lg$$~daYD7EvZu4i_^XzY|`A(a7rZddtgW|L65f z8my~Zz4oQFJJYsQ|0=0^V1zp{c1!fJ*fnRTHP~wCBuB=Uy;<-m4j|9IAwDH%mKX9IiJsM6bnL0v=~#ArM?5dKJL*>X!e`5$E!$W2Va4vMCh@8E zAnR)QjpDCzSAO^DN9Fq$e9`4xtZYzZdttS6!!A@W-(Imicf_S{e=Gj7;+N9}??!t0 z?+@OQvcFDN-RJ6N*ZODmkq!FXT6E`;HmSGmZj*KAsJ4q*U*GzkmVIv8&|=$P&bId7 zeP73+9mjQSdtbZuci-}E^Ue)#uJ?YO!*zSsf4=_O21QLyx0reJfaaSUZm+YeT6yUG zz~$hwgma;V!FPh|LvurEffucivoC%=z9$xpJ{$S5>T>w*aKmt$@T1`e!vC&(yK-Ro zKt;UdT+y3F3k&DuZ@PR_?i&|JUmS9=-NmOaj=9v}O3Kyoc>{BQJm2VC;qQM@ z&n926a+5FZ%e^kQUGBo%R=IO8e0J``bMIZ4dFhe7H?C~B+AhB!|FMEk3)>eDD*d@U zr}F0TKf?XO{|$GD{2D)OUkDCyUWmO{Z%fnZY5z#>R{KQD`_hUlA87W#-E|suOzm6m zTJyCxRW!V}L9@np-WG1%z483I_cp2am(QENU%T0LeVg0$UQhfcxvX}bx;LcWmoO`7 zcxum->b{o6i!UCycp>k-Yqymhiq~?7RQ0ahQ9S814n&+H>2vgie2URls{9sBwjD^r&`_X`D(36K4m9Y1_fq~`FNvujMKzPVZ`WoYv0q?3uu6K)Ab{GF_MvHZx2NT4VyH1pxN8azqz5$ zO+8v%xv9mCyPLn)yy*=u+;IMe(i>(qAJ}wElg>@nHGaEM{YI}gJayfO`k&Q3Q)fo) zoU~|-Zq++fD@>Z3Fe*6Af5GbMT!>z-N(oOYZ(q{AaD4tvdEZ=o^L)v<&F5QQ9G3ga zr3sh+@A8aGR_?$H{_}0m-E!`|b0^NlNq`+#MVrT9)v7;?qg< zla?gyN}82am6)A)N77TtEmNkYypz%=<-z3YNxvoZ3VjrK({K6r`zjR40{*qWWM7uu z*zWJnh$Tnkkq4v2RrSL8mF=r`hVQK`sk|$)HhLiXP;^eTMQloJXKZr(8Ruu`cc;>6 zWo@!o`o8tQ7MvV>+QS2 zpB7jiI1wla6bF6`yc6gbaQu1x&5Gr1f@y(K{?GhJ0?UGfL!%Q~Ck{@0GVx^MwxssS z-I7-%HA(!xP`%*){H=Uh)-&!nr&rvKPK&Gy&#Gu$_Caxj!bABhu0D44i>tBxg$1t^ z4laDRVCuEptFK=)6oZ_GorO(yJF{KKPqyMj>V!S(OY6&V<%$0;;+QNh_VbJ5#{%L+ccmUeAl{`UNr^ZV#nHqOyT*$)s0+E(lOd5_FF6??sHyqN}Mk4E_bk%Z11%v`BMEa`>*we~169 zzuez2usBdNxFF~T?+)D`Y8~nj>KS?=G%NJ4(7!`-LNA6gLu*2-Lm!9gC)}?&oe3=q z^$z_OoE&T$ObdnshXXqT=L3a-{{`L%%nl3-^bZUTEDPiX+6MaspB3hXgSUiQh3bWF z2;CI&g)Rg?4W_Hz-oWI*{ejw&B@n3ef8_7)|IT-tZ<_tB_7FqdTxX5*q;reYM79n( zzs0|dzaL)~9~!?W-ZEYz{(J26SdDnE`1A3xDm@wB9iJWV60aBkF7|S)m%MOd?A6$^ z*c-9eUqjEsr=D{>{$J31!1 zKAI>`9v9mZb7E~I=Lhk7oMqzHZQU#GyVhVkW-s&I&(k=P)yabkzWDT#*?k0#Dn^k|z{p0F(;J)uWJk?heclpOjf zI521jj|AQh%n5W2T=oy}@Aakn#@cafr}e1yxp;m}_X}sDQ^PqP|9gC4>_oIibWFq_ zSzk4}>Vc}>Rn4l7gx7>8i*57>cM;OUclbiMPu0n)R*^>|1GH{4 zBGWa?<&g`K=FtVw!e|fa^iZrKcDv>{FTO_e3^?gptF^Va`QEK#wX+6UORSHr0xMwO zXt%QOwFld;+Hc#L_P^wV-`iL0BwrWb6Ta5IM!u$s@!#9;+Hcv5?V!Mrcmb!P$ea}+&h+E;-wC=UitwYuYtK3QwT6DJu z*wgGi_J?-1JyHEVX8+A@Y1h;i^@KITYHD4PjK|!q?)&O*R@3u8ePx$E}Kw5;JKh&nk^wjKyNf@#J`|cw*eAqfqw^^>jddWPE1)t@!ux z(s+@y5sz2IEvL5A-Fe0NRra6f{_Hll23Y^HKCvpTHuejW@3?)@ZtUyod)}ArJL7BP ze_A$t)Zf9M>ObS#<6Grh>s#$x=3C%vLh4#<(*Rt~|d#T;gv*Z@*Md|)A>k;cdc}HiRw^}W% zYO?J~_Y3!H_cyo5t!4@OtvXg+%W?B{l&b8ko}JL~z3T1N&U}SzzDQn{uDP$%UVW8z z`AfA&U#z}4LVjh zlbw;y5T}RJ!RhGq(bZIyz2$6It%J@FPMH&QZ*XsOyQ$A-bk0@=VV^wjtQ)d!w%S{d zTN(299P0z?l=ZE3RdKeNJpONXFMFWf(|$l_N4talu-#inN4texLu>S!>YcK-TUpi{ z)@*Bv{CA2q)0$>IZ;iAj=`P(GWsOzI>((CYQ|k-sjP~Z!?`z5WZW%e7g+q?D_o&U3U==z`bXuFeLPo7j;XF$?K ztzWFStbwvhEi0t_jU)RXmUgFVU9@#m-3oE4!_E%rD$~i3c1AmYcX~PloH5Qo>8qFX zkd7yvXH@bJ`Os!*c8@fD*!e{I`@lKooN>B^mu$62G* z_=9U%&7{k8Yog*;XPuAfe8lQyJ>eY#q>%wCZ>d^-t>NR6FWcSh?sgBl-|9H7wLDk0 z@8TxAzbfW_BssP?-#d;|*X>$+7=l~e5GI_HIo^;LJE*hP-oex-AtyG_1? z|DX1k*{yO5)5Bb@vXcQU#*ayeh{`UQ;YtZS9kYz%`u`;59-+D ztkmkCrX#}{F5NsNopo^Tk&oRkoehw_hCBasCg}X9wDy{GJ70g-%k#E4UpvXl(~OpP zZd9Z_h@A`Qhe}R2}032vS*pr z*AXw)O;Yr{-)$^SIMTrxdG`;_H`3M-MQ=W zthsHJ?&hi0lV1L6kXF~jZacS?+enrw@+@`HIj!T2Y<5kSyi1n6O&P0JvRyaL!&@Yd);)^S8)#wk#U?N&Gz>0 z`>RG<>EwP-hkev$ke*s?mUW$n*N60+C)w(2hH|W9<$Ks+xx8<-N+xLz-6c^w z&FDH|<8`uNV=mc-!9d|}HX z&$q^ValvGcb7b+gk}TWv;mxu)d}5RCH_5Np>+gD9lW8W~y+q!*+{;a`_Ay_9Y=Lfi-Xd3jwk5`Ns3iAO4~~%EqQtJ-;`pL13I^A zh8r~ADviEKl24H|qow^xlF-OBQxcN3o}iLU^{_?~k|)pBC|jka?K*er?=DHSUFQMW znW*rU;>2-xzo*B&(&77(aldM=(`abYtS@9fANuk_U#tD3H;11*OMb0ZNU+P(4Hnp=wg*&pNTo(k`*pWhCzd@TnZc^Po*$xr z-Yd+JHKyu7rt$Kibp1}!Fh(L^bAk(VI1F zSRCse|5>Hq)$+Pcy3SS$w71pM!Cv*SSHAPPWI7`qek&`VlxBz~)Y_(cJJn{jWXjRZ zR!OEDZ@i`6c%WdqbTD2P%h1($Z*7fHR2v{Xds2V(Tl< zLiL`}fxp8vC;j0GMCRf0hIG#-(C$Lb1&re@(bPXIGT(cfwM^xivc@z$n=OA?pp})W z8bmc#I?;Bno@S`_Jk_Jm4Ata0YYsb3)g6&xh~~f>qPd>mVF%VQZ`*jUm80KP(k^es zvh|A}&r{^#jhcx;yct`dC%l21>q#?BzjJhCs&tWey;vi%#z9;D&er`j9WzvGrqF>k zFh-i=%~M|;4@q}Jy!h3}!vHXOoa$t#ZMx<(TjzB3oar4z9upN8cs&yH@vId(R%tnT|)%lVT3n1+@^^_q=rl|}qqt`JyM(Y<0 zL5FzlV)e<~7pXN@OFe(Yv(`(WaF=b;<{J4J?+8~&{*@XJuSc4ho>r#o?|k(-Q~eq% z@+K3Dvog%w>3NlU%hB4)k-xJt@Y~HgHtN`Kg5`vm;)vmz=9L&!wu3 zSF)?)eQdU7o8@U>jrVu0);P0d-?vkT!HG@M7ZDbo4l06q#B(C)pAqcjrL6L8t4iJ{ZpbLF5GW8EB;uD{Zlp7>BUI=bs8@zI-Bp@p9 z)VWp9SP{E)ke}J@$+}0P2}pvqu2y zKqjz`7VFgqD`lNG9xMxM@r41hA{%8O860M#?$H+-W}Wgq0^_ryuq_c{skgd`)O=mA zSYFF2CSJ0(@lW%ff3faZVZ>Bsj=s_TDxJ)6tK>i*jBNC>LC=w8kEB>DdAEDg;~(HH zafIIRqpiAItJ)h?2hYRL=!M@6Ug;q{p;v>?=*RFEvol2lSPBWS5MMK_Qtj=MjQEdV zF>j*OO4Zt{*7y@P#Wz=Jw)iQ#aSjlKxn*kZ=!LoSbp@+=u~(0nxJ)&OkAJ$7rwD>6+JgjWSLW^X&^e>hWF~GJ($N z`pb7MU<+ED;>kQswK8PCdHRd~VM_)T&=-0&x`QXO7D1y0Du;K#2H1mOTV{bh7#DrA zUjpgJds>;{&5<3}IF-ZVkaU7tgU2uzI5Bgj{wPl?e0zh9KtR6a!DeGUUI;%!erAdn z%+>W2uNOETR)kkhmA2>u38(58re^r&cxh~$ryDfOw?Jc6f*xR!CKoYUQo>QtJocQb z6FuS`pfvo6=d2)@6kY{R!!`MC3Y=w~uu}MXX@-0rRHlyM9LseN+Hyx!BoZ22A_DT1 z60n{=!FKon5rI`^I1E0|Y6ATk6Lv_nWYxk*S*?cqz~ES;umdy+H)5@_Hz9Y#&X$=l z1K0xn5;#K)R0os;J;5)7b#Nl`UTail_y~Gnw)70Duh%nb zfIHb<+YKsNqbKM9tc15Q4y*&6?A0@H)7---_Id0KUT{pT<$%}=3;~{TNOxpn$q{i4 zvw?5z6xW0Ek+C?a5||jfWNbj*fnB#@SZD!@z!LYXHhhtNKP-cOk;Y^v(WhyN_PJsP zFiFGrz+UiqyGDXFAwOEgiXb%^YQ_Pp;Q;U(=1VQu05-w`uyuZEW0(@Mz`^)MQ(M&+ ze3ZUHcDx6k3L{0AWWI= z-!Z!jcsQKaa5&Z^%mpT7b}M)-xfIqazp!3vuaPXsjbCw3FYK614R$kG-YR27;VsON zXGA6rybq1At2et^qm3;2BmHLU7k;)>SLB{HYQ@7)OkM){%-5oZ@y*v07!k~cSOUvI z0<+%X9Yjvz4Ec-I>KEx?Djf54O&*&F$zFwBGZ;-wBYv@00>g-SFaTJ=G{qP8UPM0_ z0%c$u*u_4|;GD_s5lLZM#5MA5vo!`R6=p*@J(!&sJ(*YuHWITLjXI`ZYG$ZD5f>Q@ zqu>hs0^L9)vIy+U!8h_7l#f;kI8Bz1OxIWs`GPW9IhI)93yN3KS5S@ zmoN~6uK8`FoIqx<*JMUOV=^Kj z?pXa|kLi*MlmvsR1%o4h0^IPILr-XOzGeurncgP-ac|fj_|4b9?7ER@g0x502=+nl2iZ-oZi=pX0`AfV z8Q@r01g0=XqZt-S9dvGZ2lbGH{1l85t1`3sDm79WEf_9~@4-m%UfwmJ3FL-xaA&eU zFln?6w>8{tzSj!Q1_Lm85^QNW2c8U51LavWT=DHTnu68QJ70Cf4yXgmH5n1ZlJNyt zEj|mcAb$coF#X}z_&&bGDmRFaPcbHFZ#X{OhmysT2G3$m!H#B2;>GG4e!zYNro_5t z6(I#X1$ZaC6xryH@m8n|j>ruSd(+$xv5D{#7A(N zeJ}X}7!)nxdf)~U(<{G=bVbA_*R)1;kmFCjW6+2GkcV*S+Iq7WuP4>XLtx)1yq8oP?x^BLSpgqFk#<6c^-IqF8Tr2qFb|$h4LC7&g~J(EN1n>yKhmHha2c)# z)5DLj7P6Qe7k-M>(2~hp!6C@vVNYWbywzkc$=$FjxFcUc<{zXsIZb3S*$J|TIi61O zJ{Se3;qv4&@Lt}D;Wx|}e_Wy(FbKRI?gdjZeE3gWF%M)SOKP$)SQlo7Z;&&=_mSD~ zVOTI%WOeXzemCnc*Q^6p7ILx1`D>7Swd_Egfj}myao9)P7>LOQ~ciw zu>sU4hd|DrIz$ql5M#`KnYc-|nh3<+jEKg8&fpE^Z3@u_eG;FDF~lk?O+8w(*W($I z(++7SelQIS~A9Eq4jRk9=O3qfv>hUg8}nD=6^l7+%5qBwD!_{)xe zoUY7w1E4!-2Ks@b?1sTC++h~(3~xlLC; zWKlo~cFwe67f*bL85zt0@5vK^eddause#;N_t~*BB6CGS`(jes`X`P}_F^>~`TeAR%oGZX2ElhavmI zJb7kz*(PIPw1%eU=n3-iHVmB`{s8;o9U&Y8P60;?OJkQ*jx*ow&;fcWet7>m_JYo3sOz^>#HC^PGeZvj~2aB`vz ztAn*dIjhL5qb#)`zGZ3su*UxUZ#Twe4GZ|rJK{+Q>y z1tQ|IE2Izd(qI?$;eF=)46%vv(Cu1D0n;+MU3R6!yiB#u@@7CQGSZar1{N*DT?~IA z*M#)6GC0UvCU6>*Stb*~G+_ZVuh91byv#(yJ6FyZK{&X_%CEgy-+co?BU7-jrr%vj{y%rIywy!HGSNdb*L#tYvu3P>Ex3yNe9X91I5 zf68?nl)tz1plo(RO4f1D|FooTi> z2AeI#8=U^~O3bXMnek$=m}9D8&;GIa{nQg^96cW%*n-%9G0`6Z^2g-t!q4AMeY10L zacWcPbOD)iY3zv=03Ypxl;12`O!tTl2;{&3jGAlL86sHE0Ltm$J6gm0@IG=d} z?+y-v!#IeZ>4irRS2Fs^*^3CR{Q3HKTTE+z>~huIRw1*R;WQoVCZ>y3mZ~5!Iqf$& zL6Dl|nn@%QOn?5VM`bew@_DiN=a6UA!MnxceIzqde|8j@bj6HkUJj6d%S=AZM9Ar? za&kUI*^LZqIj!C0oA+{xjjP4o!miRghVhT7v)e=>Fis@T{+{(14+ z`y*S#LFDz~$R7^$()z~o3yz~K3{sWk`ah$SVY__)>(?d2dAfm zuF(y|)g_{|oapthZ`J%(hK+&qpFNhhXI~bJcY#Pt!O@`K<^^vO4%uPn_9|x zZ_ffY^Q4HqHlO?3?ML;th03L39*~EjgWdSB?>d%rrSlSRM$-s0yCr3K{`=yWH$y{l zhoL_h^?C!3+kW_Pt2H@)`3$FTrtYS9S$iBHx|G|^JzTHoHnAOz-L3LWUFsZP48=Ob z3W()Rv!(jui_3^kuV=*9!1;4j;X5Y~e@0k_9FC)|%Bh2w2h6Qh>Sigrc%whLaeWz` zTpWr!8(H2mnXP-bmrEq5bp1oJQy>C#p<3ze%A9e%_L#jzD$kLEMXHGy-6 z!Y)?a!P~E|T02|Y>~lbVifc{x`0L`A7gmGOhqIw8QLHyT!Yhed$mw}V-A*m#{P}CQ zy0KAIT!Y!Zduxq02`Ux;;5_nF_vk2eT^BPnOP8Utp3O!kTPn4}`Paoyr$bYAqQDD> zy>93V*|mphVKkpbdj9Ux{jD8aViQ${Y;&Z||3Bk?> zegD9zZ#-CDt&h%*2YCIjsT&UptU5^4vX$9h*O>XFdn`=}dh{l4u?>btl|5`p zAi48jCR}DCgA%pOWCn+@h0hbc(d;L&qmzifkxKn}cX;udY{C{A(~Bc1^Y966 zxpL{jjXOEq(dm4?P?Uo(0y`WX$G+VmJXNcf3RTH_KJ!s|hq9(WEfyCq_HlbK*zX+; zdr@TUtu3$ax@TvTE_?s_%?H_Xvp2SRx|rKp`ytbEEYmVul|mJ2RDbqP^RyCyCwJ1g|AxG3Os5>Tc?0ruXjDqMmG& zG*{VO`R2Q{*y}6#jZB{L27RxMy_5OGgM3ySB3&%AIGDyhrZT&F4888%#1`ak*bCyr zAPV)}M-NtV_UYNQ$NqTpFL%-u+CQ||YA&5wTh2)q(M?lfN;FH=mClP(9|=4s@)Tzi z$?Suj2bHbOd}8NcLXOc6KP-NK_e^11-NeqBD%iR66p-KHXBRUG1iy+;<{_6}%LoqP za(8bmQ>KHfd9Yv{1X154@ypS^;}S&Ebh*Uf{i7ofQTZBq{(15BeCoLxuQC{SS&ui@R8(4L4P>v_YMg4cx7cx?J{a_HuXiSP%r%vtY&^Rdn%ZN;>MKRKTU^5)Xg@^+CXqo9>|%j3Ii z;9aB*&A&jg6eW4DJ`NDe!kEi&x`wbn`}s@EX45(CBd8^oI6VgM`e{N0xx#hQulR?`6vPn4V9}KQI&*0gcNuWGgy1BensF|Y(v*ki5eeW^rcCB_>0nRy^ z;>q)iSYqfJ%QtvcZz5~-;p;KVtgX`t@)KMaywkR|HB*BVN69M%2`=auT@ zr!#Zodg^X{_9<>=9N$Zc)rXqH2y=eC&g_Et%NLs!skm5K%0J^%gp-{xxJDTTw?By>~>@q#Gq z<*L@v%NcYyj+dhM@8fs%!kj>;dNx~gC>g3ZuET?GnOdLIf;FE3^|_b5|q+1<7TiLS5+@pVRO zyN)UGvUM<<1;px)4xuWrq)wLY2;>uQrk{w4ZtUoT1QICK6aP29h5(7&- z*F;T8)h*vOOiM$8WO^P^0emwG8|AHy94&x8_mCCF!;VPvhU+@I$drqW(GNOOb&n^}H3NY@|(CfKh6N4NRKeC%R`+a~6zot-knH=7(?E^|0x3zPl9Y#LcuF}+^jQ>sg~hO`EX^kEEAQlR%p?3Fju2R($*A75+&33I|M7bW!rFKal5V#UrQL!AeiYW91MDG z87ZU}Pli5Gtzb9|I=b$_e55m_VwvWVj8#=vWl>;}s$)r!5lbca5~{=t*z#<(r8wiW zwh4#II7GlW(Ot_`(XS6?glKU24FwtU}#zz8@o1-e#al9&j@t?RHa2m|lYdlU-~ zI;|=I?{+PW?dW)ZIt?w2_~9^ulSzXYv8kbInHJ#^f@hJwKN!M=lCBxVfs?R^E!V=3 zlTw)$ga!+_YKc5uVOmDV(XpaPSThV$*GzZ60}9kTzMp^w_95>GArWH{TC1cJ6R2$= zq?oo%R0YE!)>e6jZSXBcmQb^W4IK*F244`_YN_17?T)2z33$gc z7KXjbzy^k%tq@yBbyji)hX;TOW6f*>G#xl-PlP$wBSb~c7l0{&~H&o@{@FhtjM1?L>sj-5rsS+G) zTT%-!VrUDAC1FT*;5(+4U{-Llwq(NmC@`!<{GJarWa|WqQ0|V~hVgPjAk`-A@cB-n0wAAElQ&&~61qhxbMo&H} zRCuy=306=MQ?0T|KLTPCYQXB7DqKele8?Vd`yp_Tu_6ir7$j;YG5{~&MIE^CJg8As zxBcLtpNJEQAQ7b{!ZR{ZE;L~eiHI1k2{{%;Pz<;c;8ls2qzlU!ohGF6S(B#FxcD0l_VD$t#{1_#yzpg_aK_JA83_O2#j z69;Ylk@>5LI&obayrA6y$pRBCMYC*3u?R-l1|}2l1cq9`C74SKn7Ps_*ogrucT8w2 zR}nPOJ%CEK{GX?cglH33CRW=__%|T$$u2-$W>UBCKM=^mJs-Mqgr+DqxrQJECHvVv(pzpiTbb%URLV~c6*u>ZWz@!>i+k@>~ fX-hYfi11i~SAis7)pJ4_c!bEaAe987rfUBJ$4x|) literal 0 HcmV?d00001 diff --git a/sounds/phone.wav b/sounds/phone.wav new file mode 100644 index 0000000000000000000000000000000000000000..e5158a4b6ed3f9d783013b7c23599ddb81786ddb GIT binary patch literal 14102 zcmXYY*Ro{kl~&IkR|Jp1H4gx{aKQu&2uZE(E^|zJv%UA;dvDTb9#_>RwWKi`hIir# zxSVwqL`QW-Rqoum^EYdK?*IP3|Lx!Y+yC_4cOU-CPycmI@c;hbefQmWe*^#hzyI*v zU;q5gcmL+Q<&2;G-~agCcZRN*o+cWu?S{4@YhD_ts;N7PFNV{EZ zNUE2Fx+tnn>Bn$G#qu0e<|WJbEx5u7;6-!d zB(OBq3X{N84L5}AB-M=qQ&9}hcT_>tUC+{F)$}||ku)a^Y)vu!D0EEAi(=nUG|LZM zLxT?owkoTZ=NU5G-g9(WFzWnBk!$FdANrQ|{;9uS;W#FIrRBMBIo!iF zRCp`&Ox^UN$TfA#{p*L}PM)d46`rlbSHeT7@Z!1fZ@S~Vrly+jpVD;O_Z?mR|1YK& z`X&sb>%Tvt6Tnx(Tkt7G{_BgTnI60aUkNYp^lp(j5-o?3mqnteYi1Z)Iy|0f*l}X= zg6dUWZqhhsCQYjIoB+cZ$Bt=8l9Q#r!4j;Q^^GrLq?N~EB5rwIvdh3US=NiZ;bilQ zpfqD>b1TXU(#)}4eC_OpRK-Y!3H!wHH6e^#PomvIC3r!}2Xi?g@^8Nk2C|UbG13$x ztTSCw{U#wFrbKwE`G@b<*~?QYAVNA0k;oc>Z;Gtd4hcV5So^oDx1LeKe(%!=ZI_j= z>!xin2;=pKn3ycY{-u}a_e65&JQm@TIt|>gsx5MjyT?mH&(_ZAxm9M5Y}_^;OB-Gg zm{#5wF0;VAVTkF+rPf|MdA&fjJW@GEFfEbSqjm@>ln>5dS`nk%>(8e|#DuuY15I&b zOXdZqOcmtwgWfg)_35*a^|gs1yx|9$Y=@pDb9Qswr#!;Pr?=4{FsZzbAq>2mIfeoA zDsC~>>IN5|FV*o}s+*Zmv~|GIy63`bh^tVg5V1b@E;b>e-KpZ&gcjF{Dl4jG2$G)_ zvADs_`m#6C4HsQ5sk}vkF11)xtz#!PIXhJuN!F577bx62wkAu6)oBRm73p@Tg4uAI zlLdmFd%Xl4MtXIih@#sSB1S0fb4gF`$oke>=p$RSrAMJ! z=-P_l_i)`7%fG&5*drD9W2J4jR$sdsY>`Nw-%<57r#}9GWM59)$Ei}kUTu;zhI6b0 z<#6l7t&lu@O^E3uzkd$U&mXyF2xSa+bDKp`qs^qvBVNB9eEfkdpI;ho!TR;CP^B=- zd>S*#w$i2xy}2CC*(2_rPA)~zW}T{{Y8SbPQcAinn8ku^UiKcdz_VQ)h=iKPz9nc? zA{GF!;mesEbzG(*o0i>kCq z!s@O^2brwx>uV*iCuCd&8cRr)F6&+~=KN}g=RcoaYPLI0!FDb?->3(-b)3XVtAoKW?1sx4~pKczUUINjL1kGYqdxnaPs# z+FE-2;Zdo(SVT#?ISdJO9N)EcukB+ALG)_B^EdZ|TedDX-*9f?sG4cJhG>?@bFC4K zJ-m!MvKESC=LNrVo#s3^9hD?D!{vCScDGVTj;O?v&Q zH5pP0tHgZo!3JEA!Vbm=z1UUCcCyl|(h*1+8k!9-#WO`-4*FfD(Oh(XIfOJKCruT| ztn5XOtVNNGVI&WbNnAf}t-6l*HR%w6X(i$$g#0pM-?E+ntY+DilI0iCK zvSwYIEQO0<b6au>$Fk#jSJHw#kW1|4Bqa0o5IzAe^|SzAG+I# zKAs03zq{v8zw`=@&|X(*Tc#*AR?w4O>k?D><)6Ov;-^*i{8Tb?(k^Nn*(kQnKR(LU zz7v1EQ-*I(`s9Jgz8(#h;lnX^JvXWC^@=i1Uvpx%P|t6zw)o7{hb~oUJ#-A2vim~b zJ}&&*H6wp|bPi9W{4f=QuCqkIbg(_uVi-eY!WYlK^wbLc;_Hps<$%#V5?{UwZ+^sAz~y0Ohu-xNZt7lP9^| z&y|dPoJ3DMpPg^rJckX%IG*pRMv~YvO?t;eBCqd>^7)+bs1Odl#lV9WJ|{(a9*b)X z>UY6CPGGMU3W4)Motm-=Xw{TttKMfaNhtmE2)K`p+REn;#tM9c;he}|P)w;#m9$3G z=F*wSoGH#@tO`cnC6W-g7Dn5F>!&d@<)R=cEkZOcoo3?B<*3z4>tWSy{QYrXs-&C) zri$AlD;!?SszgE8m{yeX?0&1Jl`pfb5&Mz=Bq7iR(W>^f$@4~WJ!kM&J4*vokZs2R zwC@45C2*~*Lyg=pZkF0Ksn|j4Yi1O~;&HO3^aYIZsy5dsMhWszW;xypTnk{lYs#|W zC7Hw1oRRf~r%85Rgr-0Xx(OG+_nV3++i7A6IBjKR3|rHViqwX^13lh>)fYm;(A+q+ zIYu(m$`e^AxPc+^oNSwlszIv&TBN#ZWGhg|>pC$dJ<8rIF1+R2ism@B0R`L(0aTCx zd~%E9WN15@09`ur-Z@elX;2BWI#LB*&&oiP1S5)UT^1})Q&srl$kZjt&l6u~1rGp> z&dI)SJGKd&$kL>+D;<@C3g7x7PN+!^oRQ`2B=jRsRb*ZcVHK*-V7#XFL|%~7E;a>{ z(QGe)*;H6j58K+}poFANV(~cVWNquqs-gfv41lTftd=#oFB4o)m7zjnlp3W#v3MRh zWEwf9Nb70S*A54>+ts=r@iTt>dW$Gp!uh&}VdlgTz!RWrYlA9wR646q%<)ezF|*uA zS!W}-8AdRS(dng?H$?IRfbYi-%JJT;j8#>EFqtULX=ksdw7)+^EJ>?rYMZVXcra9PJ4D0+*ZZed*)HjH5AcKFya=Ed z>@kIAr1aQX#BAg4_PIEp3jt6xmREG>E-ows6-UkXuyeOdAvrx2Jci3z6PmgxTPm*w zaT&84QY+4#hAt3y*9X!T)srOlG&{6pS@m~EpF&v|>J$eHW_<1B#hgozdkUwfmJpZ4bR(@Y+oI)_||)qZR( zO44NO9qU>QfeGcgG4Ux89S*sSpmI<_DG+6rkkeFAo3p#3nln&6BJNc?(& z60_Ynoku9Ur&3}7!tImAfBWD(z4p@QkK%Bx*(E6hMFd8@JErv3Jpb|c#p?UnJLcu? zKl9@`kttkq41ihbG28s^16hB2au)yVF8um!RA*~%ciDv+464bI+TpceKmLZ;|MC(% z{Av~6z7*))Qci1E(Bm}GR$KS@IzP*+Tis&)4A~&u*e2wU*o45J& zfjzwS;^z;f>5oU7WF;;2?fnzX5o15U3<0)~vS!~%1Va*L9Az#(TdkNhHzi_8hgn$~ z6vOh#t{-w9VfEt6a|+1N9>y-0F^W^tE(!GQ9DaINs2skPpaH}J!YEdAOkE8gDNOc_ z%+QqCANm-&mf#)6C~;OeK$o%NF?1`XRh5ySQ8hTcL_Ck6PLcPO$N~1Q$GTSMq>~-a z4nZMo-b7Ua!$|Q(<2uw&OU;ED+Ypq}U+dH(n81qzL#y=l*>h2+XX?<-&0TZ`4A{lj-UYXAqUwZgnI~>pXa^@!G z(L;G#@gtm$V=rbu3)T3#BOe*9{C&>>Vs9^|pwepPqO#-cduB;8(YH>d7pwG^dd3V( zQ!B9uzffhJF`ssxM=k7ASGo(_)q|&wW~r5xN>U)OnTiFuYC0P>maX2#+<*>;^7QOW zv99b|MYB1(we(Qtd~GQ@Vvv#x24}lmkom2-^Q?#^f>@4IA>Mmxpy{`r73!#cioJwD zqtwh}L=K>jaCn}np}y6-z)O*Z>9~EeW(+RBxPr~nT|@apP#5@suG>TeNlqm33PZ&yyhIvyJx0<-kpTO%kE{DL9~S-u*8FVLa| zijrY8vF^!)*V(G}@JTS#I3`vbes{GPLx7s>2VT_oepI9s>cRCNDyIs)T??JhZ(0FSjqoL3JkD0`DHQn`n&q;t zY_wcvby2cz@MkkDUN15w;PJOn7uFMR1UYkydnzV@1ZLoZy5ib035iFws-AZ|?>ph`-1IRg zdun)!MN@$auX-^#r;v3v*tYUG_kwt5EGUHyM%yh7F$tvhR+I_8a+3U(;{?w{w^%c= zwdwOgE~?gc4s!0bBQc)xzl^R&FRU@n8j*Gl#?SP;Q}B1Fdhi|gfhdcz6K1pmTApSm z>?Vq+IH$FOWxhNGg?i8Q&A21xsw$5M&`&XKjFeoS$^2Z~M`nagDAqpj0Y~EDQzrQ` zmXC&2`EC~&&`Yb)Fw6z+>%6CK-AwafpU0MxDJwZLf}Fx##~)JGPk6g96i^cikCtIn zGM-Qr?>MNc!H11!`}D>!`MA`q(y}rhF9r^yCVX4P89%d&XsqxBL;F{kGKFo>;E1kg z=KukMb^CM1fhhm-9GMd8USmna(WHXm{m8Tt%WhWXt%|f6Qoy3(rfQRvIl;9m zcZN!da=|W5IkAOM+3KMl*6h}h#4H6Oj42_{M;7CoB*<=IEkZfc+Y-zN)~Fn(jl?Kc zi_x5AvcQux-Px332tlo?K1Z9XkXD9mAfz9`J6lH5o1-hsTQ&=g$Pp z&rCOLvbVW_S{5xS9n#|4V1wv-`NvG>ez=RzjXn9v+*M_~e$;@Atcm(*?DUVb^m@vW z-%hpWsoCDqcJowlqMz<+5;2SO*JQTf{M$`m%%<}5#g*`_U8|yqs(nJ@I5)i3CN-Dd zzU@=&6H_&PL6Kn=1j5>=6OVsbrTaeH{OUn1ES2Q0{PL%e z*sk2yYbbAKZXen526Hun-eU3ICYGPs-MO+C-!t`it{KdU%X6kgU7p1Z2aq;rKd&v2 zDd>kKVI3=xB`_nFILq=1YmF-Y@#^3}r*6-wNdhr!%2JWyP`529>KuVtq1l*t_)jY@ zZ+l@*YyQw`Mr43u%*IXDcq_zAhMT+IqRJjR5w{VG5O}=k`!uU+2?#;-mK|TJ&|0po zs2>cmC_zl8ltZV9vk%tOkc5k0V^Mz_xD7#SiDy@ttbux5?)D8cp^V`lzG&;^!nmBv zP(no42-?h#*!v}IA20fRGL@fxIeN&CYrh&tn-FCNbh`c&N!*&T`_Eea0$0vg zbkT!YN)w8x6;W_H5}ybq|HBJ+KSA4n{`0|q{5ve$Jr(3~OL)Db_1DIy?~$-Sct8B- zJ7fP(FZ{=!HrZ><6DX53s+f#F|FPICh3a4aC7%8EN9~XQFsPq?!}e8RVVJ3-D8&zN z;pV5`Y!83`5>5VY8eV>R5$C+$+(y%ftEBlnd3_rBU;Ucj{plC`mtgW4b8c?|wVk7$E82l+o69@i@6O)j!<;|;xz~vqUY&sK zu(Bh{MFHK9L>RIAHdw^RduKn6*5r|tqFpTOJfXTqb_CURy|BmQb2hs}mG1X@Q`l^S zAx{&I)>zujk~ZGVP&RuVB6bSQ4ZI!gT1e zg0PjEU6-K0TdVoov%W&8=<93ak~1!F^FB{gVZnOkZ7)6k_(8s16aMZ8Dj%Olkzgqy zDbm&_kS&>h`_h@y&(iM8*K+%5#^kT3$Yi#H1|n2y$I~?fQTLhsqUKbN%K2{N)6)5mx`> zAEWKV16AHe6+A0I!%k2n?C0ODn!o%ZXTJZ9_WE2H?N>ua!`t@yHb9mfgO=|{{OZsF|5sq*sAM|m-kp8j~wg*6{R^|hiy&djG& z|I1!~{MD-a{ViSp>Ru}cpjM)0IE0_3$)!%;EkspxY=`UY>d`)Mk!Zswu(=pD9 zTG)R-A=$SU`Sf9xyo`}FU3>YvT|JyVP}%!``MraDUetg2r4c?py8B%r%@9eJcv>xT z9s6+aTy8c0<41Y;`Wh^kytg~N*AFW)IHw)^aC6T@=eGj8pHS^vr(u(oor93YYhaG6 zMtW)$Y)chiZ#h3%dLYT!Tj=I-rpulSD2;T-#-l$!sNMNs&1bZ?za|1j$XOA_i5JHT zZ^q3oKxa#Fe5=Lv0|6qrL(WLsc3jO&L!KhI@;2DSl&D|dMtP39-F0ViA_zsU>VbyA z&Xy*?RQlr`lU|R;W`;Q90CtA}PN?pMW$)r!CVYC!nAz00zP0-5k;~e`W?0wLWlqX= zskpe~`j?Zp{D7y|mz-J^(>3EJGp#-h9!+o(=#W7g$TX;~Coqp5?)l<+i}Bf3E{{#1bHIV^v<5K`--yZK zso|#&cyc?(9H{GYRlln%EDsJ{Q>f^c@-DBPwt8fW+fxhbC*YPI_%lljir0cwzkNXb z@!HFid(=7HN)=lYZUIsg5K2-?#$%_iXQY3AZIl(1_2aoUwkwdv8t6_Og79v4snzWx z5}cpGy_=B!{;9WEj8NmMtz919(x6&2`r>YD?Oq0LJK5O7z6}5u3TDxlAy_J`*FW!# zEsW*qd9aZw;k3sAL{yx$l6uG$bg{K}7f{4LfLQcAXvi8fo34y?ie$uS+=D(2d4R*q zs4OR2=X7mcYK|EZ7=AjBAyNQRyuO)lt<%e3u0LA0MRIl#E~AYHj^MM*SY_1p=k)s%>JJT`Igj=fd<8 znO$y;xL8r%{#f}EiV1cNwgWqx!2I6|>VC?k&o}UW=QP+$ohJ}m%Q?CgQ5F6WAQm@&cWRvIvdX4b*r(%Y@xUk*9_Frz{D zOSt7d0sE)3&@Bnh*I4+(6!ht*r;JukFZ&x+He~p`fe)b*XN8~O^Eb#Z0*g0RMOKPmhvNJm#~MxRHn

dAua!;SEsW-R z^;eT66pno;ELL*R9BWG?7T_tIclu(o)-ONr9PHEFZce9wL~$w@J5VQ92n~y@wYDD? zuno@E{9z-uPi?3|GQtXX`$)wnXfR$*&T@k2`>#8Pny$^N-=zZmZUS^&EzRbbzI$s8 z^wZKCPkV2>g1UWZBbQmziqqeK4Lz>?!}Z|K?ooYw=?rGIHqrvJCLCm7;(pheAln(o zpGOUSTm^^Y;9?tA^tvWb6&ONu|5__h^dKFwGpCQV)m$rGBtS5Un!$%(iAKlcpg(@b z-NV;bLKhgo*DB;dnbyj_D%3fI6i#1CZgo#oPp3+mtsoS%1A@ULoay(cghM8yiA;==6+<>HE1flMqTO0qhN%!Yb znZoq<`vABc1HGl_Q%9JsoMykbpm4(+mNE{aWu0cBEJ5S&(rN^ehme}Ddz+jty~D0` zHfwP5YfzGGmIb178a#3JD37N@ytyas>e|W-3vn&q0b|hQH+)N<&?>f6QdqS7sVwt z%uFrx6^+NOzAv2R9T$(cl9=OSaj6ZNV5z%0vy9Yu|TD; z3EVD*y|Y*{{`n=QQK&74)Rss!wsp&J%8-C36IXMDVK^VR1EEUpV5Wq3wq7T8Sw0B=h3Q!_2W1C$uaRCTP@*|ZOrSRP7 z=?nn!N!D`=NL1!6^zy9<8nH6FQ~J}+SuaGl8ay!gfU(kQUKSn-=w}aF z+as#=uZ>I~Y}$d;BUzD73r4tW#MO!hLE0s!EC0MN^bKyuab$ptZ^$fZ9riIKl$7DT zbEfx9FrGq+7PU0h)G&!dW+fy5`A0H7-ZE^u zmD@`OMyDDDis8pqOfN{Qe`&edjH3WiIZS?EI9h@7DV6xsphf&k6|nfXymkpqAenW;UbSZ)X?3Uxo+B zkO4MvJx?>U++a~GxSUh&?oL0voUHkT15D;~f?@`aWM*Y~R@9J-707s+ME# z0*JLNQ!?IzEt?0ny`6%^4{P`E+OmtanC)^)2YVW5Nl@=9e!75yd9_yeYY>-mX}yM+ zTjat@0Fa`BmbAtQ4v^r5ESDzIfb5uP+&We=qmv&c+eN zhs+n`r9B=8K67i;*+-&!z9rcG+GtOe3h5{Z9Q2?7X?Tjb`nMyd*ytH>(lskf0kGPqx7QfGUzqz#1rQvnxotUd;Zj@N+&@>`<7c{iJNw%^K-#-h1`pMS zN)mT~trleZ1Yyh1upQqH=6X(fZRJ2B*|r20@(V2x2s(Ryj?ufhaeQeZb0;QM;^~I( zL3=aXb1BXrnda>hAfMOX{#1xt61-rD7(~EE(096&Qg<_L_jb_c6EZyRLa23iortZEGCw zwqwRm=intDjrkp5&r1Z6L$fGg6+_6KC&dtGJgi~!_|{49XdRG0gNj}Z)es^CkSUPs z>u9d;&=^)I4SBG3UjpF-;a`W4M(%Sf#2Rm%Gvk*lzQkkSHD zyH5o(dH10Q6J2sqmAeXDUmaTUPI)9Eh}vB{Z2@%h zatuIwa_Tma1yCn7$g>{J3+rGa@)&Q+Bxp zOp@vl$Os%wHli{TF-)z`tp=k25HzG$v{${SP7H|2OR`^A9=pQ4-3i=`1;pZ74a3Bs zN+96^(FlRnleRXH6`x*?9H*)#~FrA>!hF?*XQEvIq_fyiYMB zxpn7J8^Rt>8H8Jbe&rTJL)gYMR6Bv}EhR&a(j=D5d!mnBkyhEJ3iF-_HDu5x0tF|{ za;&xOR?HypO+%Hg3m1a^uCL2*3rOnWv^^XW0q)-ID~rOExJX?IF0eE~4y)9lHw>7P z5wpas3If6;t3iSl(yCryL0A*geqi5A$$kW5g>w5YP#D&NO`>ZMK9*P>>?6qPZlvni z*yNgvnmQC2$eKcU#fl*rNwI$0rQ!;Ck1uKnCIn4kitk4~EY%E>%w0SuY^7irpFquI5W;QiNTWE=ZQ%HY7uyoY=pa9+_(m$n4xWSeiv}#! z_p=+i0`#C$$Sx_j1l&t-ikAht;aH9dc1sS25w@5LnAOBl+8tUj+&BxY0>^YC zo97j$fgX%wY72doT(MzM#4;m8H*!>noaz$IhHaBbYZR74Zxa}A=C!B7K^50}Pj@9g zhly^v&jkeI<749pIB92)<&{;qK)1ZIg18lJ4ZBpwAco&IV6Z{n5zYY_u$v%P99OB! zZ6J$3)bOOD-$Se$NG6=uab3%^corPvE?_WPZ_c?!Bk$%3q=&(_gvbp%qQr4hJeCf> z!QHMeO$=B4yz(R!vbFYmTX!J%tY=LF@+~Bm_L;=cBGd@i(R3)dFq1iCgIG1&S1Pq7 z{2r`!f`pBbc!mShpld-}*&>cwZC~1;wfRK{HV_28LfeEBLApq5NnQl(hBhF1uah|K zwC@H559l5$LI_hN=ziD2j=>>-pIX$0_v0+qL`_pH$A;h@Sn3L}>X3y(RSvaE(jp}L zU08)G>^4Y?1tLPi`HRjVVAu6SXmGd;vAYm{pavk^D;k?6NoXXn%{P2hHMzz}5FP~M zG=!r|5KpXAm*2AR?4<&9#D-M9DzUN)!KMJd<~?8BHU>%X?zoR32d+T055zwW&Tsi{ zoM;Tq>Qxs&>XeV`Dv=0Y^NQTDECmh{IR*S)NNR%E29=7GAVcoT9IXVQ7dWb}u&~(k zOd}}K>jz(=P&tS5GBPC^W|(-M4^0EsVH>CnD&$?02wPeY>e5nVQSm(JnHCJPl9W{< zB9t2TEhNPOS7sr65<-bq4EaSUFJPVa4o_ezRJ%aH1j|n|TLTB!u)I9CAcCdAv5pV~ z3OnsfgBN%sh9|UTMG>7WOI!wlsP<4mfRM49DgqM^lC4n!^B}O0VQip65-_>IzX?nM PI2fyvB0)_LQ&0U@*=tX< literal 0 HcmV?d00001 diff --git a/sounds/pop.wav b/sounds/pop.wav new file mode 100644 index 0000000000000000000000000000000000000000..c089bed7075906d11976ee4bc8feed3e4f19b65f GIT binary patch literal 4044 zcmX|EYm8l06&?~ph#{enXk%leG5EvOA4CN~iw_$5Af-^KQ)r>>w6xQiJ9lR8`=0kX z`#kSs?sIP2>2sj1wX}68k4T!fR6(us@KGbd2S!Nr5Anf2f9dzFbK^O4&)#RRwZ8SO zwb$8u&tn_bu6^USk&&(69er?Lw)pvFBO@a>;l6#TOPdTn~ z9o(+xI*#YK9$Hsg+jCutJn2Xm56U6n)3afMAJi<@Q8K7JPvM3fH#K;ngNMUmViFWa zj%&L%ThAs?O2JOS#gM)TN&qFMc&2VJL{>0@8HZ?1O&K94VoFPMhQ$Z^bPkvDA{0s3 zRf137Ln@BI!-|F&#=}OixcNuc!cGDsDtRCn55r_aP+l&uhf;>iivu!F@310eumvbC zn_LM&hx9?*bQ~I#(VmppNZ{}SwG;}tG{h?g2t|1DOBl{sngkkC1S<@Q3sL5S0=AB$ z;8=PhbD0tT$s4t(19;x(${!u$1yv<#sUZ}^wL*=+0utPU#%YE=;($HVB`vyXtbjou zgA9i>DVA9kZ$QNW9kGWF6HF}tVT6f6jzkNHECyU`XwA&x2a_Qdf=%NdK8MWGY@*zV zn_>f)7yUpggDHqSft=2ZBzveL>=|sDZYWCiGYi5`IG~FgSz<8)mkoZbB)SGad@yKm zq10G0QZ*FtqAPNghj3+t!`Vs)k$-s~x`U8JfWu5tn+Ad-1H(*7le!Q?dn^LABu+z;6+T?s>LY8v@M7X%k!1zL)Q;{4`SsQoHE}JgD{BUpNo@a zo2DrX7Qb5Q5W!1V5HxV_`zlaj;5)vuEdh_}?ZI;wf{knLyL090%K5i`|K7Vd-oAcy z>1=Pus+G%^-L~R$n+8kQKm7OK-#Iq9Wy9((ulQo-#b5sE-_6~`S?b2>*|%Cykqmi#p@sZ=MQt+?)&s7?y}Bad+%Q#9Nqn` z&))nc{p^qb{LkMsw|?!`W#3zP>F0la|NQ>@m)~-?I(O}l@1ENG^-taL?dV50-oNIr z|HAEe6<_%Ehi?wX?p|@{=+R&N?zOpX-&nOKfBO1wU#@I=@bR4!7e0EczH{9@UtR0J z_Rgh))yy+vlM_!**+KWn>0|!puRL|^%GyQL@AuiZT1_Yby}sp95brxmzyqZxaJ z{X4epp7jr&I)CBZxy7!Xd2-Vu+h%KvKfHMH`D6WFZ!T8)^yK)i?K@|KgXgaN^k>7RisVRN#_z%vU9QcLt-Q&}4Z}Ifvp_ZB1vnNxH z2Zs;${p{0^ZhUN?J$Uxiz#iZF@TQ&B_K8!++h%TRDqA!ytuQ-NsJhWyGj^)8lbP&n zzG7NlG}rAmBRfC2FO%0C-!%=xasANKbJ@%|z;jyAUO4gW@dGtIvwQpYz0)N(ZV%?W zt-vUoDhQ}JTUE{epyicjG80o3+wtRijH^~_%r!zwFXsydGir3^TcKIX&CKMAh8xzJ z-EOzn=`@qT%1`bY+dWbCo1OlArxp4^6xHg9GKv%X_GYzsu=w1G`N*mi%WkbVf3RP3 zOIb{H$!i}tcBCB`rRkZ1oAeJa9OxvTUM>|8SJ-GZ=URzt>eaGlSSs+Nq|xqlJ9CLw z$z`Xr(d_xxm&dWz$dUk+QT>u~c>4AWrJF1fQu1DBH0d)Ao>(I98TftyC&H zzJ5PY{NSA+ijyP+NVzzh&sTMaaVAL|x|Xg%6|QD|$0e4(V-VXaoL$G&4!%9SeOiOF3z zs+#Q~w9qpvrLtxRwPp(yVF6t;Z8watf*}{0?u5_^JX<#n2kW7aunoiYqZ&*Ny$o$H zOlnD_9Lq3F%fj-F71Van1rGQpQN)OlWh}v5Xt_`#R79*?(=s%CBSC_KMl>#La1v5n ztR2^ z=8cdI+QWYk08NvR0MOtFV0;ct6L&%$!4M9JGwU|2;0URq5M@mnfMhGhoFL5zA)pMI z!#mF<+&XbEmVDY|2R?iSIZHND5=6FOBWX+X#zQIhS|klO$l#U}9yf1{%W(l4rf|US z3N)SyNq0$%hht1H z6fhBzFmzKep+{N*PIGpI=CGk?_^%~KBsm~KB~hSDp(RH2OMS4yyP(N{jHhP*f1(2n U8Vf+mLF{QeG^QJl;ezV_0KtgY(EtDd literal 0 HcmV?d00001 diff --git a/sounds/pop2.wav b/sounds/pop2.wav new file mode 100644 index 0000000000000000000000000000000000000000..524b8e225ca49e04d5938f41c7fc3ed134423d6d GIT binary patch literal 4486 zcmbVOYit}>6?T7A>JOkT2qDp`fP(}gL8t*WMWs?hsYOIYP|_x?6UW%j12=x`V|I6T zc6VlHXP>hVuN|+G)M;MrMoCa<>L7lANT~p|w2cs;7AX>q3IYKVND%dBBfjt4JL7R$ zM8!=!d-tAuUf=o7ncco+Xvn^EU|`qgosS%tHa>mFz`(#Q_&2z7K>ltSxNTtHm@zht zJ4Gyq4?LadvZG)A&wbGrn`=$4b@N{>|LND0cH`H#j>f&kb3gjUudlxS_8;E7a{1!% zhI#O@Ef0Qq{rU|X@BhY*3A26X($9Z;?XQ3P^ILDcdinV?i`8uG;P~k7k+B1ZlKI+P zcg`;tGt+ywZQitg@SeNx8Qk!|wtd;&4_0u3fo!EI@h3(m4khi{!m-o+^B2yaJ-xipu#=Nx!#j68`q-|K z@h6k{N@wZm)BS$`nUl-CPR&loCMUi-vS-ie_<^Z}S*$kak36-!{M3=d?RqJniO)_Q znwpLqS=+0%=eqOVPP1Ni3T8SHkHr%iGhg&-wPw?AHL9MI%NX&QnW?GinOHKNrKs7N zU+gXQdJA*Ss%sfDllv#e$M;XprtC_)w|x59{_Riik>6^!TTQ=S z^@?`ROdE+97R1@S<5m6ET(=A3NTgWELYRmrjFg#&X0_gEG(gmfS3>U>^7&joUnrnQ z6|sfWB@e5t7Pp?Ky2LKz5Mdh2G;_Iv5J67D`UZs~{xkFhyi&WhG?MD{!2!t3zXS!x);aR;$^lRZ335GSex;Fw%_O z^~x{?Q!2J(B9TA|a!!c_TwGdO>Mf%1^|D)F)_^%_Fmyr#Y%m;%GC;=417#Nj1BhW& zM8xP6qAK_zg0IyZO)MY5=-SdN%))D>-fVZ~I&Hwn!V+c_okT3xfH4?F_96*TDV<8C zG8sUEq~RAe1jTX$80KgXOi}FZ^$yQ>{94JjGDadEC&`#0ss{GaoG?t~p2_BH*Q?ga zKS)VH7tGBe57W$MEk!5WwhOZ4&4EFC^AaEckm3v2J3BKo8#gjJr(AD!7nhD6J-W0w z-)>Yiu)q~f0bGRC?IJU$ql4RkDtg5>r8CgcA5_Z&)u=Cx3_^?9K3nM^om_icB zfz(5%_$)&mWhhu_BOXJDq_kB)1Nx`~2;KGpPqBawBxQ_M-f9Y#OD?%)aR~!RKQ6vY zh!MLF#K5t19VP+U2|%Gkg(5lxFBbGHn;>W|3?@Uy4~o?4U`RAEoTSxPqvV+ITb(%s z*+i9`JO)9)&>Trmo?(Q9q{rkT$|$f1C3(d`bP&=@p(6q;2{WOT38Ki2NCjk+hFQz3 zkam?$W>d12l@OBzjNuAlQR#CMqB@*QdN8qJIhFK_T)@LOHJ3P;fFyv_3Pchz&Msw& z)FeX!^tDjr;!8oz@}TU{)(y(^Si7jWpni@>G%^vj=RB6k$ZE8`G`_fJDryPcKsdc5 z4SDc@zovwd@{r$F!Nt{2Io1!HLRo<#bPk*dkpvtf!{~*2Dtp~@65c9q61=p6Bqsb* zQL6?~r;3zfj5x_$K0kmSv#2^SFpS@qHrZo!4HL)uiQChQPQ z6ntx0r*h^f!SvOX6v8q!J$_ipptw?1)?OWI!mG=|ZN?T_(jcjd1aFoAzL54BS#cjW zP~cpRWr0hRkOT~=%E%PI1WTo*rGzgOQyEDJdqu93Q2Y!Cx+<3x#kO_}ktpLCa(b;# zl{#jmYCcJYWz!AFz6m@>Y^cDLZN`KZx)2i*xQ<(-VaB0En^oD;Ay!boRWLLfN=)Jr z4lx}1)Ht)+p@D) gA5qyFS8D{}b-h_5#Fv}oQSk>BMURvT1jgY{>Xg0Z)SRC zx_kQdbocbzxoN|OXK(4~*td4?`oTo*=0ES~=y(@?@Bes5`2VhsKkDf3$@MfaM^#k~ zC47*^Qfa}Lx~+z)VgCPHxsKTH?1Gymeij>K4fwlm>D6i1@~+%iR248hS`!zmYget* z3+b*P#U)0T7PTPghD(;fq(QjB;~H3NEA1V%hcr#s$$DKk3`1{~r3Sj85C}$DmLy3O z1%c;SmSq?^M`g2_EGZO~qZyVLL`hL~!*X2D_k(<^1Smc!sPlzFk(5FqANa0gnYyY- zA`gTN3f(F>AkL&yiFhl3(HN)`>G_jhPnOhOS{Jpvlq{mCb}yhKGg*385oL z4jQbZ`-+}u-h1!=%%@kazIV;WE&KS>Up&=Z_|98zymI!;g-cJ5uxVabIVvZ*&6(NR zV{>Ppeet=|lgA#PYdAPNc6NHK0rf55j6jt<&kLZ{m2$aKCMs=e ziYy8|FW@MWBH+i7KF@I+&r1S_lZb=Li?Tv=UBam(O0TFIIqBq}gW1+`H%Mg~UT2Q z*Ai|U)vM4pujFI{8{QRRpP&zG!WTwDS+~d%@sUFKMtiYp_m_m*f``w=v8$`XR{OCy zg-jxUZ(o*STv|hBw|O8y(py%R4_&wX8hu$tcUf~8qLrJW6jyx3WMpYg>-C^}RqEHb z$gwc+zkaMWPl>~ujs{)&&7*2v0(_|igk`)w9H#Akknde0nKG!sL$Wn!yvvh)8kafd$ zEM4Yc=XsEFUE6{~qFGMTOvkkiU53qoEAs-+GG&+yg2pxt6=*cew$X%tRu$bcZHu@~ zSq-fN*p&&7rmn$zOQM1qmhHfqBRl{;SU*!21rfMm2|?D-Fd$*E<3bQ{`!;r_Vzva1 ziJ38o)~m7%qXh#7!KiSffPz3+i0Zd&k|sm7LJ@*JFraA$*fVTR)n!;VV#$c;3=A16 z{%vCXVgBLwfe+S>@C-kVy%2hWz#{e_?}gqs_6=k@3;dkwy*S3m)}qrBuwr130!#A{Sx}V8nSu6cqSN zg0E;i8V7^;i$!8Fc+4ciG3-X*SfXo)%CZzx1wD}$BuExvTMls>d2#>HL@pLAW&g5tWUc}dMh~E$eqL8qV zLO95Ah|996WHOORgsg!V66Ik$g9#kozJjGZ57mIG;!tQZi3Q=k@MLnCG4vQ5hmmocu+HFV!m91Y{wSM`1r)s)bz~E%+Z%nyOnIHVul`B{N^LrO3Z8n`@70WABnzQF$ z{O-TM_2y5$bzxM^#8N^qe&W>0=|1sP#31>$flG z`yN~O;KqHs9_!K;zDGd6c#7Sz?vec|e{A~bnWw(=>bJjnHlIAWyH9GKnwv0^-3L0m z`v!Z!0rEr;O@4j7o5BK#P+vzIEKefjkte)qX4CNe}R#j(lJQrWYpfdhN@cSW;Q@77fxes75C{pqL3 zJN(y^M(2jxZn^nmk3~!0ME}2EU(maEKJ@6`0b%4z-~Y+?zj{I+?v87<@$t!{qt$|* z?A+Nokd$zDs($$yqC+FtRFU-1Z-tZB^tK1t$G?L98&4Key}Neo>9@w8c;)riE*=kG{k=0^y!_^s-@Y`; zbRXEUzh9X;bMdQx|KeO(Ob^B6>ajEDAD<}eY&@D4yh_cLq6fD=bk7}kefrK@p$YFx zzx2~9SAKmydT96d`)*&|S$_KRFRuLZQi&Su>FgX(#?M~*+RL9CF|w%?V>eIC&(9q% zX<3HK@lLrMsJXsfn>KCPyy5;kZov!u)5tSK885_pc5l1qlMnY+&b;!o|M}IW5-M#%i`!?Ty+h6}-N5`$| z^AP=iGzJfDf9S6Jwk1mE|LHfser;MDI=p9ZL=MKzz4DJ=KFanS8P2(rb92Y%PgME% zK!h#M%ubG!Z6Q6>+aJ$yOg7TB=aDscee8qS?ke{Z6zt{XfgKyyt=rxuPG9=jZ+>*% zi0GRKj`H2x>_+UR>96vfcHC}dAfz#d5#^lUo-IUohB|0!yS}s0}OBHSf zJ%@Hba>s}NxZ{0WCjSjbpqV|iYs0p~T~y`5PvEZVRCNa%+ZoW#d4fg z8k?OQt9Y6q+Frdf(rng?t_9zw`M6};rX;XbI?Hf$HaXnWbEI>}V_P@e`=Jlrb!hCR zA74ISpnDH=N0S+2;_Oow&Q7`_$4Q1A6zk1;H84aD_Q=l{^CPud#rI*TeGfP6Qn^&Z z)xj6x1wN~;RcytSv z7w*zAE#mJ90AYs?SEP~f$+kfRJ{#@`);+ws!vjhPKgh+0MN9#|hC2@nf6O7QA-M#a z$-;%hG0P(Sf=hy^(09V~6E8vH0}^u)t`&q(2pQn;Kn3PoBmt16gQ{(6=#juiRk1?D zC5k0ZlovTsWO<&+(kyXt86m@GGi-`ZGbt`BW<;8&;JIi%E2YF7Ex}>YVpe3hv=*__ z8oaWS(kOr>PLgPqr)A2?*@7YXtjF4tg3N*pNw^4FG)FcSNAYxDDar-Qw>&e@iW)+- zk{S4VjjtOeujG}TvRm*ALD_8NoiV-P`!%=FFdBZL?lsMZRCkjm256gd#Y+F zn#r3wnZO5hp7wM3oX_iuCi+Z1=ZLZ)8j2XCi;Sd;tdnsB!C*{IlQmK2RgH6*fGRMq zWFh3>9Z4}1#S|@saH7TNg2p;oKOJOjT9tEd%E@WGEOBPWOL=K0rz*6au^1~=?XRW~ z4&!Fa+G#(T&!`HkN-}TeOelk(Fb*x7tR^8elN4SPG(nd|gVjZavlvxp4O!GgRYV}D zh#)E|vd(&xmvb3lmn2<6BrNH?DQdDVV7r29@J`O{(H(QC;(gA1aY>@NmLZUfb zp%LktoJYBwE;^8ch(%10tRw>DYy@2dMolzXEY9UAS5zz}$dt0SnI7pMOE{|FWy@Jd z<$bD{4MfqSim7I#k#TgoIy^pH&jfUVwjH{}BC0o3i_f!`#riy6k)^803TP%*$d;)R zm1hc!FRCu<@g7%5jSh{Z3X<%JrecXUehANl)OgQ$GGK#jQ4)hpb!g`BOy6YBc)Z9M zCg;=|(CqTB_o*j;agAR3llC6pu3@HO^)8yk&|A zMWKJXs=1jeE0rUoSI=%8*&rl#6#E!w0!MGB}Q?Mre%1x!9uP6aAc%;qWVhn5S` zvF_ss$N1FIeJ8u?EK~29?HL~~3ru5RBxlL4}U!tRq>BrwBId(+=EVI|QkJM&R2h;5ZdZb4mP-;^!bVZjv8YfhRhU%Ori?(11nuSw}yOu}@JE9J5715Sa2dOfrz!1wWbc}Zd6%z&0^3B0_px2Q^(aaL>~e7zou8Y#0a)6?9zJWuom0u5+-J zvW1nHjQbx{Dfmf<3>AS>L|&3nNsP=hg2eIwAPpibJXs^__=6e66y$6) z*eaMJXnL50(n!9FM4?EqI4+WV4ifx`L6I7>N%F-*GQvg^NjDOz0t^5`*Dx~!0OD>W zJHjy!vmLA@$dGYDxNISvh-?>vRuhZR!QNFQ%8(IrOhmUB1YX3%XpwvvNjs9D7uoVK zB}Vi-)CZEuhd79KkhB^}#X)+Ijx3?VkN}xsr-;X~Z;{l<@slJTYLZ~XStfcJDrb1G zff3lr2LkdT5m7v{W_TB*7cK@4V&Cv_4GS?7D-9q}R7@so!ilmd;kyQMrznzy93!EO z?;K=82qmZq4}>{_n6Lw)z=IhCia|xiKSr?{CXM8AYhWBCmV&RP?JxLL~x#0!w?8x z?YF=!UKTNsy^vkBwuB008SS(0TjLmh`$9I+e(P^PYxziP)5{^t+Dj}gv2%6so!I!l&swG> JEAg#q{|n%tvR42A literal 0 HcmV?d00001 diff --git a/sounds/seek.wav b/sounds/seek.wav new file mode 100644 index 0000000000000000000000000000000000000000..e797921a99683991c022cb58069a15e8db535924 GIT binary patch literal 6424 zcmbVQU5ne;8J@lC<@T!WO<79s+R~d|6$(x1?ly#yFgs*Oh8bpzZ7ggfAqfc`afBq! z5fYM+v5g1MFdk-@2@{gAOA?Z0!|u|sS-O<6rM>Bo=#S|09@)+~B)egcZJn?8<9VO+ zo+HWYS3mgR-Jh+kZC<(ge!FkK_wL%-+B^9C_*ZM{_s-gn)|z|v-v55OwiblJcNKoA ze3#t!&V@g`1aD9c2>To0^B}uOC?tnyE-TegGBi9FBmtCK45Lxq zS3~HaTYtjZIC>nakslEpKcp+KuR%y%Ok-|gorloF@KT8;FcLH9hp2=fLq<7*tJsfg zpX4<5qtF+K2-6&rP$0)Ki+K=x!jIsXU?}TLa?m5Y5b$tC9lOF2EDU`5ge>$qSG5;; zA&b0-;mRUEpy3G8u^0I~WU(t9=>jJ@o^YfiTr?qo4os7ApFF{j03ra4DK4M_TJ@n0 zh#&^=QK2%35}hQ7CWQcbB@wE%gF@sBPkM-vIHO3^2PFCgQ*jKaM0v;n#K#!WVggt} zE>?!xFt8v3b3{4Gd8t*HnVkS@7%}N4Zfa+C<|H0q0VAP7g*5>($i%gblR*-)R$=8< zZl{nJFdD(XRPjfE6M51}9rP7xF{D#lfH4J`mIpM4yhi6Fc49-o!J=~EN|%rmF}`pU zM?w;|%p3yf!BTEzjs%-g;3rmYR(fFrGNgS9!-E1yj$8>%c`FbFiUGFvjxPa#O+ z1$glNco8ciD{auP`H^5#(>k0B9?eqeh6YY@Kp&eUE~FF2o@AjiVzk(N&5n<)6!8a zv;YE9^#(?+@`$`5nkeuRE44C9aO@3Vf>#O%y9U$(Vi3Bi69-H<5VFBmZe%W(#;`Ne zrBBB|5Iea(YLB~>8>GgtJ2VpHJ60O;_{a)^r(n>w10BLH97+3=HYZ>v4%P(Ogd+*( zP81Q(=z?I32n3iy56MEinvj7%5GpLBdTaK;sg_JrH!osVX1@yR2GL$ zi8XN(sM)ln*mi2ef^ZfCzMZ+Kkie0f_omJLek`rBH|z^x=D=c?z0wY)o-=FQ826zY zYln?2?(MfKN1CP0a~^=BBo9EPkMssh z*!>wcFwy{M6UMQ_umoUGZDZ_Qq(>~w!t<+c>3IcK5n)Ii4WJAV1Ie+ia4;~Qbt@+T z7fuXMK6bk^Y!56r!?~yrj8NimlL1y8y9mii``@X01#U74^P|{FU0xv2$Q3wmu&sR$ zd5k=yWQ&{>Eo2lV}j?Rv%BFj=_jE{5)!USeBSS->wihS2JOrz85_YK3+Y~AX0Tb84dGtE1UuG@6VD*freiw>w>} z)ogWo-Hz7nb~`(J+aF!O(irH!)-DE-NS=N+y!ZL!&e!L8ULKDdTE+~!YsFC_gVEWf znj9SN=V=nhtlKkttwyucX|~%fO=~ood$-ruuU*j(*MFIPnHci)pO4ZfU(Y`MW|*Fy z9I>rr+HaVqkPesC@i0C(pN`97m~-E;+}>`d-)=Tqy-q{ZT3X}w_N|SpSJ>=Nzqs?f ztxxa&{ZzjAX8P>896dfv?f#_LXhycj`eBg|rMz>Rmea`~<}$QQt!?zScM;@nv)gI5 zcDMJoZe06wW54&4*1reW#r3NHqu8(wRwYqZOplA~@Su`$ zmbto(h1+fE?VU!u)81>e8arDzH*S2WPuJhu|5m$s^5nBK@#Mc}cRw$Wo=;qvPQ*rc z=ygn2W`0}^_J{fYQJG_DL)-K8ZoA!YZ#OlN)@ZeMx3+HG{OkLj{jHxT-x}+)$Df>~ zAOGv({K;_kx1pI2OSWYWoTkM@;_-4cDDuf+nUrM`c#Iict=ntuw!5vpM!VhI+uhmO zym56Sk-z=Ri?eItqk9i0iP8U#r~6XJ3mRdsi$E>=PYo{ ztO`XwoaACWjD!pVS9dJRs&1>%)0!Qv)o$+WZf~xy^Wu+xc=pK^{l(c}fAZ|h(dnc8 z`}e)%-oUYW!FDa_+K!iIJgSDnG?|Qr$YjKbwmyp1>GddEd!1INxxKx0eXlToqkqNU zA3i!B%aecH89g{XeOh`a$Dw13RNLdBq1!$l3j`RG)i?>$GG=(7wG7KPb**n3?Vb%9 z`?}U>x3+F=>dwXSCnGjH<8CBkL*s#AIM~;&%tb`&An7M0 zj!GUlmgCqanKlg5)O$SuZS38?Z3j1Q98NaOyOVS@x_CG~cyN4nnvL!hewszha6_wW z+OB6hiR4jH6-hBFlPpUT+%E#paUIJr9kOfT46yVrwti!8Yo}*yZTf}Q9L{1nJvl#` zoL$Tg#>1mg5EU_Y6Suntw!i7n!$MLeaXu<#S`{KrQrre{=X99wT9)V8mIFc9H~KK% z+->WcrWrw?2ct?>)8pCr;QVB=KiwY}X_3(bgYRPB*_P`f4RN+daayFZ7-TZfaaxI( zGwyq?<9QB#p6fE^APy5b)@!$czia7zhL?scuSUaz+4Nv`FrAJD!$KywFF*mfEfmv6 z8%K8(%QQ`C6XjW&;Dn`@EXI6Brh$RJ9)m|(0TXeUpvrYzod2;%%RC=o{yb)9Z2Bc6W z79vIgL-eMo3O&8hV;mj}@UW>0Y}TcogAFRAhHnT}db}hF@~_<05cphip+>i^`iBOd z5~$RM0lUVIE=>>;lN?w&MVrl z6IqPCBKkI6MIG3C8`(F@EC9T&e!bR9$=A$m=2M>L?&`TlSmgy)_$&8p^4Jf4B zH9X=!3YEdCR|i3eAWy@1;|xN)rm81(TnHgfI69)}9SlEujff(8mXBc(2IxhXbjdCb z9ZV?KfUIh0)wt24Qvw(DW={?YB;N9&O-CRU2p^14U7LakP8>+lK}ctsYU2i{yr~PV zFWDu}0`H3gmS7hr9{v{a@plEHNK$ADyuSe|&S9E`UD5zx*n~QU=vXA4p+?pqtJoxK z$_a@Mn%oub&zvR)IhsdahaVLYI+#Tl4RwKYRS+>yD@1ge56-oTf~CgG z2F3^(VXH3)ZQjC|3Z|B*9nR$_jV{U6qcwx14O!(C4T#}_L6TRn6+R_{Q6hq5Ypg&( z?Zt(}L3}-;Y$~hDfRZEJi?YDC=r3y(4fW8V_M*(&v_8rsk%u`LCaP4*kQ3#NDkVnq z^Rl?9z8q27B&USQ7>(3b-BzTL2gUIU91>6&Sj(@d(U3Aaw?_7tmeE;2QuPAY%HX0? z8$b`~RhN2ZX^jjo3Z?61#_I8Ul%TE@nxuh+@~ib+cy$=g)d1Bs5Or12&inKB65w2; jwlkMrHF|lOS0FAsB>!4GuNqp)txU|0OO1Fj z&-IsHeDVC-D=V*k@5kS7?7jY-Z?3GYynw%NeRn1Nzp(O+mF?Q=H3J?^!_Z;Ed2vq< z=8_Pm77s)Q@8TTRX>GMyOyaUUz@dnXn5~vL=pj%vCKP6sp+j3q>w{2ftRg;XoPwM% zj}r+nPGSb@umC*xw@!2Cd7WD3OB-7Np6utAd=m|9t+{ZX{o#f-3B)8VW&017%P_DEH);XQC3q zlF>BfEH`8f=Aa*TDGRMwY=eF)ad8k#271e_am<=5wmEaclX+ffEELX|)LZCvh9feD zd4+{Gg>c1lrMQP}B9p=>&$XkAkRDu`=MuhquB=Zjyk(g*5@s4Gg`bu?7=uU)ksAh6 z^CS~t%g7#)Tc(|75_87p1Cv?COT)k~HLo~A<5FjAni-*G4s#$2A%wk%hZdG1>ZQmm z#4A#TKnm?Ov(`r*n~>&Ou|fbKj>$qtIUIFHNtmB0gqz&6f)z@54!;d#Xy)OXggnG? zIIzyAqSA@Wm;(S9*kL01nn$)|(gPa~p-~zP*bpIY89C?>K1&eW455J@jvYb3b0JKQ zJ%H&zq{^cV(UMja1DnHL>^Ske1gG$o7oHW&Ip!TRnPMeC!#rZ`Q@{%DdyN=o zlDRU`4gks+$<#&U5Fo(|7pqFDc*YoPmt?VtvvJffCP{y2IrbXJ0CJ?_C3e7@R9C66 zMT~d|@`rX3(4i#IDo+q4B!Oc&HwEIWszj-b;)ujh6$6k7$HIFRmp--`l1x~*rm@e+ zg8&9(g3#q4m%vHJ)Oeubodv2j5*=xzu~ZET0FjeR(!1E?fU;27<4#d=4qFM7LKP9B z6npq30a;}wkZ&@PRw}9-(_$!qG?%K(4{RmlLgBvfP*|kG=Pao_k0y4IA-ySGosUf^ zI9PhV(6PlXIHaJUwDUG`s2dQkSf-FGL#{YB4oL+&VXOks5H%?QOC=E*UI`Q!5OTq6 z#kd04vMhE~Dmj(IJYf}2E1M)^6PZFVU6=#_&p9`_O2}d{a~)kt;e-VKW#*ZJ0U9ZV z^aEbKU=9m?A-F{@0hpBoMv+KfVvB65N}K46+ymxh>T=0wJFs=gPfPY`lou+Us8Wim z7BUXi24w-6iqZmJs>vEppcB#w*_cK-Ly-st7Qli(RPaeK6k!@kfmL*-EdQB_ruLpofCrxv>cea;hVvwyIiW8`fFb0GEUT3$} zY}7WJX^tW`KfiZ4pOjVQWju%y>GGne?i?MAiyQ@%rO_ZEORCXyHX9eHOIC4gjL)Ip zArBBAQb!>X3*Vrk+i5rJo9nl3*S6~X;CQruetLXz0O$+`NdnJ?^Sk$t@5~P-jwf-y zp9q_k2;+EMW#m3#!DU4W6C46a;0`V=Jb@pBZfCc#wZ5^w4h^?k#l?FUhvS30bDy-g zn>|%cCey>yx6kLEr^%q#k5XOE4iD#Wz$uneDip)vuqrbY_As#DY7r>LILDf9r?tIx z`_|gpMt!@sm0o=Oi?hN{?zp&9-`tT$56=$wkI&wms%~Sa9lP;lG`o9tGBRm`J?6@l zlj#Um3Xns8My#AnqbP=KG;hU|ey7#g*{7J}H#VZOWsqo4vbFpFWt6N5jI2?oK0_o}C>{MnIGmgD%Ul2|yG2 z1roEIj0@x@5EMr-#9I+{cXvCTX6^RI=H|xD_4>|M@A031cRx+I=qH}nH|?VjpPo;> zLh;X7tEEmJo*s-dmfFgvu_~&fEFDkLJ8U)_<^WI%SR<{Fv@9O%HFp|Kgk)>|#*Ld> z8|{lvKYgTmI%p-OtZ$j~_ntj@Yo-RVH0fSX-??}G<{j1TG3!w{jLRWgaJ+dG*jpq& zwjUvlm*R)Bfe9Y22h?41+UZl?;>+xzO^-d*4&W^Ontk-2E1cnOdutA;4; zy>6Gp#=vLN-)+=xudQCc_R_W8xBl>#Up*N2)?RJ<3=x&%(Yo+iZGt zd^pQlA7Y0kI#G&uN(yzBm$^>5dwab>0;8jN(A{m;ZmquhqaR*d*FXL3?>{;(+N-ba z;UzCgM1J%Lm>Uk7tq!tfl-aBr&*rmSB&l>rbmRw`afW;kB^e+dAZt-!C5w9~Sk2n{ z>a`btusS$+@8e&8aGG^CYwZ}Q!Ry=c#glg*?yKGHW?vPfQJML?8c&9qOrlujR8nLT z<7EVyf_8%>2NV)CQDW$Tg+JF0J z??1Ue=G{iC8%t=AZgg~Zad8R|@6;Pz?uw$w^WkJV!HYs~x804TFNbCBE#6(d5490Z zC#UL<(t-|z=7O{VW@421K@WvxdmEvU<^10H>D@WrOZvS*%+Tc!^XdHPXn$yv?rx_S z;{yS$WMMwaMrbc4D??p`Cc-3jT}S;4+Li>;NK;fT8A2KL;30{V`2^ArXC<?!~D=M(VIhSA&H<+?ixluH^t1Oee1Y^KMno5daJAX4Cb{`8NOFuPFkJR{v-`WA$LQNuqG zzFd!)OZ}HCzbN_h&zD?ueQsu9R5(9(B8KN4|JS!)(UyN@`=z+x5k9V5_>u}_Jmbwjq~zjeDUbvN1tf?RkuelsOc34C??`kk zX973jlelRuancA+L|i;BDS_?p*%?$2Z8=CEjsC(pRa%OVE^~Z!B-9*-iz+NfgDx;@!$Xb&%gfm`9JJyKY#Vc+i!mB+t;tYa{vCj z-+BCl@76!O{qW}P+vGK`zW3`#pWOTLI^W)>>a9=tz4K)9@$P0@cNgq@H+=Wm7pHgJ zAD*w&b-KB1uP=6VeO`RDmS4!(7grl!UcVq0f4y`5_b1B_PrdzUbCI2V`QC0t|B_#Q z@~GIbPrv-hgU_pr^UNiiU0uHS=g(fRKL}&}dwGBP@no`O>iTfDnmpI)RS z!*)ItE}lfAkTEfcA2<5x%-f@5<;IE6htdsMn)`YAWOO>7H{yxqPnJpPZl2T+w)~en zMa*bjjIZ)r7nxRBJAGEq=CkMRoLK3$!>SsVT`>t~V&1IomAh0Ir_tf{Nv2E`&TPZe zOBu`U$=&2LduX0F_b)GF9VYg7iR&JA&s;&G&DKT5LgeaFjm|c~JqVYgaD~g4>#@`E zZ_Lq|o1HGA$$I0;r<>LE>L~tjPMd`#gmZv zEP@UWXZ+hax-v&M@_z59I|?)?bEOry@-#S&<#Z0iQ~crB^}TFTFN*t%Cq_H z)vB?Nnu54IRK~Djb(W>1)M7QG-c_-ruFV@ZSi0klI&>Fu>gTdu@K~hVazHyrnAFat z(u+)bN9o3oCM!E@&Aix+$E|THTACv(7U6EON{Mdmbl#PW8s@5FT}s7Wny*ci(Ups1 zcY2gvPbLc~w9AQhQk6*vx#m*l)gqHQSFVsY%Wbek2SPe!^1-Sc+qKS3P7AN|q9$4H zZ6k+mmGKJ1@Oh^uMK_aO4%S+ddFq^C+S`n`8Eu3YiKx0HEp<|QX1T^O$XLr_wJ!6q z_s6R$(|nm9Gk->zn>izDk{1fu<4OPq-I{2{PKUs1i)5plOp2y(kv*EEIaC8i_u&_cE2#v~#*FGA5IvCB#{o ziK5X753y;OF*8?jR#9CZ>WzqPmCIVk!rD5@76pa0a!n?+;murb=jk>fEpZjig6BmZ zc@)y1#VYBevQ<&Gl-yHoyqYfMxNKnkQshioX1%CWUZtVTi7g~?a$0&TVRTyQ08OXR%FBmndy#(?rbLjzy*$^s+{!6vucx%h^d{$WW-G@Mh7wT$B*P zQBR3&Sp=)tm{zr&unIxTxRJCLtO{c?`oLecRk`heGepE;_>2w3c%`1VEG-MOkHKuDxX1NZsq?Bq<52WbBH}SYni;tl%kb zF`&^-P^;i7%as-i>|2~`#<^ESc?zYyiT6}#ssE2u2&H>Auv}RKGSD#RVADDdL6x^u zdj^7S?Eov}06~rh5TX-o9u84lDfw=4$2Uob! z&<0d@h8pP%;9)!7S5y?1v_ilZT5#Y(BTx&wV`~hw2B*qWftFbh7igsh=$>_6AdY4+ zh5td!YYC7L5~^DR85IX&w2hU3fv&JspNwhT0SV~t?Fg;+sG$}5!UsoFTObtNVFn^Y zc`yt;tyQQ7Cjjo=%UXdA3t7=E3P{+fcQ7F7m0Ac(5ejglv;6y$Ig>@w4gl+J^6bkeVfIQ5DQzI^QcfLTmn6|xcUYX}(l<+A>{?_p14pMsqK0k(;&egFUf literal 0 HcmV?d00001 diff --git a/sounds/squeak.wav b/sounds/squeak.wav new file mode 100644 index 0000000000000000000000000000000000000000..aa7fa23ee3b1387eea00e1e257aa35a0500a6767 GIT binary patch literal 1652 zcmW+$S$EoY7I$Cf%;S87d7f|4lP1k1HO4?dz#pLvZAe1I7!%uL$2Ku`>VPqu0PPZ5 zSY+WnPTSLdt9dN#x#zy!dwj36AFsyZ<4X*;({-JRF&g&191=N{rU<^WJDyDp+Z=XVVm1o^ zOtAab%`$XVt-Fsy8JHm1T0^_`Eko{J9urvtL#U#7X1Rvv%ALz25+>mMiqfg&S)Qwo zT2%mYX_)19Mz?d{k$aswx{fd_I@{-7VCc$l@TCHSJR#7`sX1G%T=m-`1ml<>aA&S3 ztESXBF9Av*ak6@$nxnC)4eA`i@DxRg-HAF@M`LLpM@gJz=@ZS=Y~^zBGYzw3K@=;) z$8dQ5vAiNxY}$ruuJr#eli?6R;QMZ1*bC2YG08lV&E%@u!kJ7bdRs`NI7p#~nq%3E zxp9ONECR#$XJ76*E4)3N=TU+#cdfy2qIAzWw8*Wn+KxWb6zPIWQUZbrbuS$CEww4c zAeO@TLv`h$E`Qm|10!_%$;T_1F&q0YWSgHF0C^rg>vZ)suKpvc;=p?Nt6Ou zt>euN$M0?y~LfsAYymV5r#Bq_O8*ykD7!W5?aDp{lJdp~{n>YC4^^Vtve{3j)gx zmagZFPcsn!#S6{g?&f+faS*h=o;k8i@8Nm6lfsesTXYcmvv77!A*mRs^!3Tp)0J2% zLhFgsS*Le*-z$*<3DAbtmtCzcY>9bzR~@%ar^RC&g}fg*19jGAQVf-)+kquHN(}-m zPF&2)@l+|t5FS8BcVAWAJ59Zbr*fyu<^0*NZbZ_NcNgCtX7@quZ6v;q_HLJVzZz5| znTX)h<8t|R#2_FNJ@oy_eXtXW=dx`7>G|F{hNC~eM%%X!4^I*sefuhYGJkk@_V(j1 ze~b!)*2T89&f zH=uoYck|WXiM)-x2Cb*Zhu?j1Jr;YB89v_zPd@)Ty17nUzunz^8-rJ=#7lDV$0GQ} z$i2*Fe?X_d`_tbHVjU!35aw6M`Nb7}g5XW89nS60+=`{KH2OIV72Wxi+@P2oD?K@q zWgO-5EC9QjJ)8u?Jv@)2s4%#8tckUsMhGamx60f!l*BxhiKBax>H4;Hh60?*BA33V z`~DY(D#8%n&{f0olpUnNA*pR$?`sS9kf{i{c;UR)vpip~izJFC&~sJSy?d!d(^!0C zTUK@FdT~af2nsj(CnLG@m+>WM?_^lcfI+j zl6?mdh-gfLz;TUcIh81&fN6NQw(8kGQ*oHiz7yrpm!0MCJ;+j2n);;9?V+wT_pppu zA-P&_HvT-&`bP}ABVq(!S4NjZ(`uJ#o`C_mD>>4@cJ%|mY^CE6-LXgZ^ZFk4IfCQ%2DYjy?Sb|o zPQ0g!IC^TTvZm>Ja|u zTha-<31f`F*ZPZ48>+*z-4em^2v^^)wXM~wYn@$wE`ux~R<}RY<-i)WFHSz4@_z!6 C&^iYI literal 0 HcmV?d00001 diff --git a/sounds/sshout.wav b/sounds/sshout.wav new file mode 100644 index 0000000000000000000000000000000000000000..1eea0e78e62b79f726f952e545ce942f51f09311 GIT binary patch literal 9614 zcmb_h$&Y5&RqyOr!hgVq1!5b8kOZ5=v9T=^$Hu{S+fKWu>YBgdjdy%^eA749)YYTg zPPgYcHg*yMC@6|Rh(#hKhDF2{i5&~}h~Ir*ebv?Nb_R)8Rd2Y%x#ynqJHtKo>=TbY zR{q|pQ_p|(FCJalihuXFPn|mTIsE+2ADrs`K6mQ3PF*+~pFM{$MWOK9T}O|_$Nf$B zbr!$ml7*D``z0eD*kzrP%I{tsle`@3c*x4eDp%FDp=ri=7U#Bhg;Y+HXpp4QaM&M2 zz0H*iE32Ckm2T(ejor!ae#@gcP10Prc7El`!Ompbs&o*iS(^LZgUeTMUf&y6MHWRV zp}ZW8Ms4jR$p%}S+r43w*}<$ipFt5M74Y6+SS9ugR#o9oDi<6$#l||wxDTmqn~7PZG|iLdGgV(Km3P}^uGJg|M=b8fBAPGHD?}w{JHbJ zn2taA`7i$IgB#cO_4%j&?B!lj@80?3um9@fJ2ROLw^!Hma=yPipH@Y(wQ~Oa%Ej~N z&YpSxnJ2#f=)+(5@*jOZ|M&m>#qFzq`}2?T$G`Hmr&o$mJ^#Uf{?E_v%%>xI=9$x* z#o=4;y#3CHKYDMJ4oSgsUX;^`OE(e{e_TT;cpZ)mt`PfoIa_$drf9KZq!-L(Cp;Y;*G+MKG`_jcr zYipM-URXK%t*4%R?BR#L^v92U^~+m-^I!k=!P`Im$uwF&_v{PXyWhEb>qkHPhabFg zZBpd6lzRX6o3CHHvQzs~Q)cVhDUl5}E?qo-VRd6;<;>|9pMC0~FF*YFBM&|DX#c%` z{g)rV|N0wy4Y~Nzs@Q+?z4t%)(f8lEd9XigY&G6Hymn=OcQ&e>^`&=OP!eyio`3b+ z#kIAIufFo~^DmzM#+SbECl7u8_rDsy`4MJ*^!{7d+RY1OdT`~|+duf>#~;3XV{do2 z_07)Z!`<0@RF+P17zIE)*j&4C=A|=dUU~6_S5Cil`h};y{*^EN=@XA%7~gs8t@l3s z;oCP3XQn>5b^EQiKlteF*Kb_goA2P-Jvf**r4@{loaA{PZ?CUhJa^`$S6=$o3$I)_ z_v&-seCD~+FTe0ouR6GPxwG3I#DKrpzOd6Y?RB~^wcn8v7jm|l#feVXoFu>>lvxrWQWe+9*mji zb8p6MT9l2fotL&GQpHvGij4H_RJDbN+GMPQL4#X<~*ASS8}hdHOBE; zaWt09Ywp9X21m>#Wm3kY;W)NXqoNKZNkxFLN?0en(neS<+k8wg*@%ieP205Qjw#8E zWbI&_YMU3DXu(Wgr(PDI?~LL?nZnVESZNA_{mCk=F@ZS4Jl9S*#cJZE^xR5U=t6M~ zxffg$mluNA%ra&Lw?sp7SxHnOh0hyOD(T@Y^NQ)B(86+q6^YfN3p$4@s2ZLK7>%ahY0^`;H33G*w`)LV*+Mf+Q`qTo|eq^GpQ>G#8c_9y+8l z($G37u?MCdc3`BHB{v3~apU88?8>y^%F~KEp|mhin$Fs&lv%}ClX%H2Q;K?O3u&0q zv?g#7o=cZj3_%Hd(nVHhg(YDaacJb4DXNMvlR@ZiI39Sx4FhLdkb2l~0oECq6E3f# zO426vLYsUP*HqNe1h=%rE^3f-*cxr(QDX3&jALj{gx!&nYLiV8=ZCw)T1o>U01^;1 zHlhsXdS;XY#t{is-b6L$no2Dx7>JyRc2{SqVXA-%3hr{_2h+&d#247AVpUQHpd?l^ zi~Ru3mKj5=;_w0<#PZ3|)Zm6xnb%p#q|($Cv}7&-3)(31`Ji-JL$yzxOD382c`1yP zHm|5rqQI+RW$t951i+TINkgvL;i_pcPPzcElFK1_=PjSiFiyTsB#y^G1@I!jxOVDhLf4fYA!>snGzMhEy{r zSQ(sv^3h22_qOF|Yera=7gg+aUgyq|HmYSZB5bVk zCU+_w5n59+B778;HUZO>Ad|tE=sIc&MMp$7z$7@$bu}mr+=CV_n+z+Tj55dx=?#FX z1vcZrF7T{a3F~2)1|z8<8^WQ&I&oEhcVJvS3<{z2XKCgoR4k z_F9#IrAiSu&z(6o9pg@#Bu+lIV zr?U~Z4gsk)E!zH+@LJGPXHD)*)R^H!q+_18B13a6vPp_f0yUzc5DWD%%e)eBE7cGv z18j|n#x$KIFx_0c*uk;Ijf`8W;0IJtKmpe$fo7P4)S`gd`C)_9!^SNb)-ZSQ1%sz> z6=kYRfP}D}^(iObC-{X!E+8(6O(-XG?+6_ecpa=)XJs@e@m@+BU^kw?6$b`joTiK% zSZ#T-x7`R1muF;NBbrTno|l4%`KFlW(L6)KZCJcNq>W^VTbU2x&&mE(y1LV@+eyMI z#nM^PH?zDquU4im=f(*t$Fz67$4i^BF(XP>kp<{l*Z`t7Z3Y#_fRZtkpe$yN5jH2O8 zAXyj>WSdnnLF6pcwKLax$e(67Y&gWgNWgUJc25?X#15GC5v~> z>dYtF_^6TaUuEA+X@8gVDjH*g?v;~%QPgk;LbIS-N-9OUoW{AIY#TYsNh5#{3j+{> z)mp|StU`M#R13-bepO|{hNK~d@u-Fr0)7odG&~Wvv2SQnHjK&%q(o( zAsi@bM!g0u%fSol1fta7En|}yfdrPK+aVvhw6GP;YR3~`3F%Io6Eh*P9f5;VWuA=_ zcv9&UEunW$MC1CEfgm&Z@X5AtUI8Md?AtL<3e)6C*+$fXrVl>KQB~)nrigyQGHXre=xuWt@z$a5iZ- zAefT()MehwtKBs6Y=4uC$0>4<$uMr=6f#@4t7a@b9qz!R#A?>8$GfxPR>hv@x3?AXHhx(uKATm<5gl()P?g z9qkVnkH8i-vc#C{|m+E|Uq>TvJg493C_Ag2$>D*gmg zQX#+umpF1#_?|4IJWKKnWt1#U;sl4jew;=9!7$3J{hfAx^R;W2cTxDLthPADcpMMM zlM&8#4UU}n3I}PN@14Q2*4S_%SYmHDjAGl2ahz=lj-^S0%FbXg=x=RqZLME8fBxK= z)2ClPyXM~g-r@YMPu{yVQ#c2b;gFhkwzGTr=FO|Stwpw<42C(R;;UvlYq12#L)fk^ z%d)EKGVB$R1p*ggYw&4Uk#Ulu4n$Jahq4T3;xrlzB2*35w$?A6yRf>py0S^C*S>pa zXMW?_PMP;2oP1O{J-B}3%I<7j8JhB0A)f%ktiyrX zLcCxJF0i``o}*lZKgtCUhx%^&5btmh#lzlKZ!qj{Z}<8UDfZsJGcU)}){(&wv?ufV zeD7eVDi~D5nDRK-<7AJs6GI7#ni>XLLhx;Elr52W!r4LBkT_s~y-O4{!lKYD-Z|t> zIm^>Dr!es(NzyEihA3P`{oZyzj)&Xeq5jVM*GuU`tt^K-I=H+$hHlG(A|vrNmWOH; z=rXu413^mF;wS@`54c8Tf1J7k49q?vg(&0o8Q$t1@ ztO2PCOb}ucKoj_2cmk>{&!MUmMU^;$nG6Sglr__M7^R}Qa`Wo6G7=|o=Ug?J&F7N_ z2{UBwd3j9SsIR4Y2J;JG)b? z3J+$=svV7*x@nsVHV7OdY*lbaK`TN3*esZUmW)B*D3NdD#g#RN1i68WFeKcd9q1$I zB{+``ronaLLR}7?5zvJZXW#}h0W%4ax*W~s<4|J`&K~%0>Kdk5Vfo;R0#LF01wtU( z1uw3uf~y30pv}N2F7SkdS&&08;7%4nBtbf0DR4sqghOX1r%sW}PZ&DfGN!}aGMGCo zE#q#&Z zRLXl>8{3(g99(@ zcFO6N#YeD}Ah@HebLO2uAc{aCSk6&nXb$u`n02BJ0uEPz9jHohLqm5R32LE+@DUVn@3kCy|1&JpwJp~>$-?seh_ApkuF!f9r^{i-&rX)d zU!QuppNA9QsK_q&6{el&`Sj}%DuOQt$h&?_fk_=Lzu@r!oGu4^im_kSaNoqcEIo+P zj(u$5Q$#_f1I4F0PBtt=ecv4e!glV($;nya9V3=ny1(oH`}>%Y`}q8f&jn-4&Id4q zu>AmaJz(I8rl5oeN%_Q(U*k0ht^4W5S~zF08O{m8b%nqX;_Gof(IpfMw-_)Q?5&*o z!XcM3_^+z92u~d013?>Z8m<>ddDNy^s3L(dVln36=!F3s|1IDgXL2Mg!NVe|p)!lg z{eqz&vhY8O@UMz)qo|jI3aawm9p?*RALz%yEBs3WH3;ObSfX>8AwL59C}M;b{Guue z>hQ%O7eM?9JC+I=vKjLTFw0 zvM(qHi*@&ISU~9V>R!>=UH7(kI9ZOn`&^J%P6-QkeRwXeBWAk~^emfCc6R2s7;xNu zVkEkc$p-m%^aD5H<1+!epclrT*hcs~UZP|4Q_C)fg!{>%cPHWPsADl^aX)Gcte#k) z8;h2p*3V@0B$?y)!1D>dkC#6laN^}i;)|B!k-x?ZW-Ryez|qHR1n!sDJ$x-kEISv^ z!1;ptKz2E1@eCvGX$inxT+8O=_lf7S>(kHWTvKMEgbkwF1e1g1T8SELSPBckf;xs4 zkU`smi;k0fxj9~-YhG-p8+>wDx90K4&wA;0-tF!IBTnoM{wlbvyDbkG9-4xxj=Sy` z>$2mnH1E>8hj?hlVvF@oEP7)2Z}NJAr^U1-BlkY9N_$&MVy5gpxpumStztMC2_!LVSTya|*{(ISW9EY04kYt71iugcoGdYk49M-)kr zmTU}pcJ>i`e)Ze4 z55JGjes=ckJU##4&(F@35K2n;3ZdceG=zZ^QVA)HB?~JlLNMg%C_?7;u1QtR&b3Nx)7UDJWA`3o4xER2T!900gZ# zW7cSenbHnsVD} zgiqwk%9f>Jh?v@GidbEf;>0&Or7TM18mF_uG*zC~fg6+Lb{J?^yBw>w; zS-+!SrQ2gUuNs7{t#wk^z9y;k4%(SU)J3=o) z1Ns)PoRp13n6x`KBW)nCWpu$hld#rd&Uxjv%vXNj70=6KwFY4&=qYNYn) zy50L^NxK8SHXF@zG@8QHYC*e7mzbJR(+r1Q@nrozzi@-VmSfmW)DF{V?=i!ScHJVa z1?l}#)@c95S^|7wcnj zr8a<4A-oL}amZG?kfvdiug3PdJJRQ3FC3b!JEWQR3;9AVg~sj8@@lxrmu9P$%vPS2 zh4p+WW>weZv+)qEOv@@UZ7i3l_i;*Z#?=D9=&rP2hdlSh!|{YOHa4r}dRxY6x0NDE zUFWIcGvDFCF7vI*?)g`;ugj*K04IDun{OHNhC7)gVzF8rAiS=^H5Ae{7oVVQ-KBzu_ zcGyVvxcPRu(s>w*l;Qi~)8f@YpBDcyfAeqim32*)ZB;BfpAz0QF|(q^!~-vFd|mGe zL(nw&9L~c2V)4G1Ho7hgC2x{tUuhne*I(~qii*vVWT^?8`jYmd4m3~oH{0`t+TBG_ zZpOWQlG;~n(wa1_)t&vF+x5dEGt9&tU-TI1b%;=Dt2JY3_Ama(-HypK{wAdJ{I#D= z?zgF%3p4JPQ@-P+IN(R^&S8}m`Ea{LlDbmek_YuavsEAF%k@3Ging1pLx0ZgzA5J9 zXtE;kd^8v{uTfs_*-dWsG#=kv&q;XkyxjA+8277K(`_hZ9^D?6Gj&(SgOsb} zHk^gAG7Z(d$x#qlsdAK!>4 zS3mkED!%V8lH>jg)gesb>@`?6u@4GQ-ne2_H+pQXm$nobKyX zG0k1WrUr`0T4-)-a@eeX?y6ocgxynwd|eV>MXo25@9}KYk;qqh>x!f|X=~BS+>!*& zP`xFq>ZBxGk^7-qMMDe907O*9k*IB|0+JdusY0}^^SEgg`1Xv00P!UcScIGo6pKnF zwv{RCMQ$ol$WZ7y1GT3VK?8IRV*x}YC<{qJ>lk7cvDCQ?#0eM7S&#q@_ClQN*5`;< zymW0M)&z@PvD`Ol-YDAYNcOqyNP=JL$Y3pdI(5c@=*vhL*~AV41U6t71rIiZqX9Aj z8Jz20E%{(+u4;)b>`y{#U_6msNp+1-@f>SUB&b^9nG}#2XnqjZ!f;^;kmoZEk9y)xve%v792^JzZ!oAx z%QfgQkP^m~LZ7^WfCYv?|GSfv26+ey6yz-kL+Rj60p3GE@_vx;97Hg@Uwn9<;Z{>H Ilth{T1Bz~d^#A|> literal 0 HcmV?d00001 diff --git a/sounds/tell.wav b/sounds/tell.wav new file mode 100644 index 0000000000000000000000000000000000000000..c28c7774945ff6a34a8d940ffc6bb436e05a8153 GIT binary patch literal 5722 zcmd5=&uin#9nZV<*j{?>z0h0X!Q(BvJQ5O?EXfN=H-wm&m|$a9NJt0`Bc>xpNC+7j zBV%J65*$KILf9osNZ1hG^5FGQXb(O1)E@h1^z$7_jLWkJ0A) zwUw3cf4#KyhgUnxM}KsF^UI~BrLXYwtKTl^e_t*AVyRJg>c7Jt`KPBLXhlU&FkmXiCz7Xh5a6%PAkQgSJH!2Q5eJdA|$ zg<#l)H72ANauG0v&0PPw%4e|^!JHq^2Y$F>f%JM-=7xePp4pkt6I(F_djNM*Cjw63 z2NEcen>c_Ift#4A69Scm!0;nGwL;0iMt~ zpzMP9g_w*KVF3>i1>pONK^}?&HsD5Rc|i}Ff|}2<3ab)^W5z>IDhBZb3SHnU@F45j zWyBO9k(5fPkSoQN1_>1>LSUj(9A1HwP6na{o|F;#0;3>HHhme;nhJ;%7aZgi6%0a& zXDN%w843WNCUbBPv4vT(79dpGDs&`L@BmA&gNMM7VDJbmX+}X|8EybGz=sH;AW(r+ z*o#GoP@r-qef)ad=iK$Uhf}&U))^{)4;V|u=LYGo)1Rj z(RdgKNiT(xWG)QDI6^K!T$pmf&oE4@(`>bm4h{}#+Z!9NS2y|lhqK|y`}_06Gdi{h zKZ3#WWIR4O$rB~RBord*c9STK;!si0kSU()xi)-t9k^_?n~j6o{@bn1*Q+lNF8}gz zGMRmNKN8LTy6ZcZmrXA(PESrI{gBzna^F+^$vDrFI10JrQd%G*d}bRKD4Ok7t5MtC z*?9A2^~KlLU;lNNjov+6#>Vz~jY+%X9p8VvJ{^w+UEV%4L=^bZ;OuOGrW8oWa3uN5 z5L3r6UG5Bs>sMbpfB)yl{`l&{G_tlj;K#ywwpmW_odV2;Nh;RlyVLU)YFUARXDB6bK9iE&{hJ&7R3=4HagdmjJF~QjA zG!OT-UN66TRm<;hFA@7Zat_zm8$68j)9d$F=flA47)HnBQExPz4!g)#+j6;3NsLkz zI4r8WmBJa~*ysn$wT&DtTFmFcl?^8W5B zmsYD~Ni?GYohVR)y1Uiwhr4&Q72Z=8M5FQlxUimhd6;e5B8wG&pa17Y1uYfywN(`-`;rh z*6p2re7rpsR(-F2G;vzJfLKvoQhE?IM@(N#?Yqd zVB@fkHjk>Q?QU=Gw4(9tkB>K9x3RrS;JOk>`t)sI{>_pFbjW0EJ*YB$kg z;$DvKOf-?WHrh>^_0mX!F$mL{65;d<^&#K~m_s+DIOzjiM#a)@9v$KAYqedGOwMNK zdE&K>8Xeqa{XEAx3SzEhST>HSH0!1@)P}^i%gA8b(`g3hpqRiZhAxcw;-2C`0U_}i zy(!>?MsRF2FB7c?y{X;mI6N6lPA7xZchF-TKTNt=h7OM;LC!JK25Ca44^Wwh%EEgD z?i17--We!3C_7XP)g1<*P(wf=)1bozGv?B8FeodalkMQlP%&N=fQ1)7imycHq@a*3 zN(2mGk%V{~p<4d;#Hg%ukRY3bn8_57=B6=KbgE!ETm0EUAIzrfP zjIcO3WT-qbARHVby7baT!2^}TZAJ|W%95KnJdvTr%M1b0iuRcp6U)l`5?GVa-s83(dBWl%k7!NJ-X9bVAS&#X=ba;)i!aq?i_)b`u{Ow6DN@a=&6g*HRbK zinK#W7i^G6v{qP!EwZRpCK9Em#S-1ppdC+x(2GH9diF%7oKAk=|8-I01fjy7`}qv} z$#9{6;VjvD^1t+3uVDT&=!?*lhgyB~t2ugMv(lc*dM+$xC9C;Tsr|wxO=F=B7kN~n zuS!7|Ah1z?WxXLoC>?aU&#|?a1^8lsfP_WjM4zSm^UES`H7}hfcyvKRr{iIcu4|&G zKHY9~F!Zw;s_>nVXiWnVa5->aZv7eOtBz2iQ!_7mjqa+YQBt_@Ub|Xh&6WR5=>_zk zi#S+44|<_Kyr({fxC5w=55}Idj#MqhBoO+d0{iS*?pnBLA-?=rq)`NV?rmwjg4YNO z20ufrZi^jX0zCz&ssp`KZ=~766S#x55*Js9f=~Q+Q2)|@S81|1o^I(+0_9k+I7h)( zU(CyWr4rRs*s1X}Or=3}{S03(7kuUsSsreWw*t!@qy;6KdX!=2dC%vgZ=s}x`*#b4a zL|n9qYF`EM1qSWX^vD)X=~}^5h{alAQE$USF)I6W9(q~+NiP1u_vuf+dR+)C(1Ydr Jd{XU`{{e>{`AYx* literal 0 HcmV?d00001 diff --git a/sounds/thud.wav b/sounds/thud.wav new file mode 100644 index 0000000000000000000000000000000000000000..f5bc5545983ee80b220116547401281dcc2d0860 GIT binary patch literal 2524 zcmX|Cdr*|u703P&Z97h+t&Wq#n$$@%f(1l@LWqKiB+}4C9t#9~0J1DA3k&;V-@D(p zPxk!)miO|q0tEp<d(ZE8 z&fU#DmX-D3+fh-4nY^QXk@V$lQBhHwP@-d_xV9;3OVpV%Y1uez^jeKZ$5)(I>)8C#wd-jjNJo)l>5AJ-l zy0|nyJT}tb76>?Oj9kP&Q}k|5PEK}aW=cvz%-+}HckbHrotIvT-nM!3bCAu?ZTaq& ztv`s4-nnP*tNY>-($h2F$>H%zgmT6i47GI)4h@Y=O-?Ody?Jxx&g$*82Wy{w{^a*x zef8wCr+@w8@zXy)UjOYM9zS~gn@>Of=+=!}Hr!I^P4fXf-w)ngbi_XMqwQ8wQ zD5|NfEGsPH<>zG|$vFIa;=Y(YyLY|#!uIcP-}=4n(L1+3zkS<|7k0h4ef8iHVJg zjZ27&jgOB{Ja8~6B`Nv!Lm6+r^>%j7@!b64(v#)YRYH+OuGAY@o5SVt`I_6>d&1%V zq2b|?k+Jcq>5H=qR~D}=uiU!5x_bBC-Fx@eAAYj7_Hg~vwe^Sh?%)6T{@pvPzxwsf z8#k7&UYVJm9R20Ff!>Z#!0UmBTBTepMnua`m6jA09RGRld++6BzkT#*W=3XuT3Tvq zYI1T?(t!i}_b0^vBq2U7VSmE@#H5s;CZ(jMryb6GGwYq~pS}BjZXU0w=ww-W1;4sR zTqjjDYV-!yYIpejt?ivX;laW4BO?Zt&c|z(D^%Z@8zsqqC!}qa)PX(h>-Iy>7S5;jr6m7K@2x z7`#^t3WZD}X{ZxJYHLNcqUy6k0l$)8QCVJIcIx!$6DLbbi%N=-E<9dAVPPS! zAU{99ATJM!x`MoXEEE@iQ1U_PiBqS`Dk>@kf@)DseSL#W(Wp}Cv^vnwSS(hn-PY9P zbUIxwkK60^c)UK3H{kPo1O7lT&>Rf5G>1a1p-_8AM@MH@cNYTH)6?7A(;E)=h5LHK zfD`WR?I!8!>IAN~_O{kgOG|SQd;LDI*W+=yTn?w*-efhKO=gxg8tA2~)GCz{80Au_ zw7yLo zD;C!`NTo8FyiuuAYP4E|-pDW}li3WEHh^?E98Ra(>2?9D%k6P_ya4Qm_P|S@*T;$9 z@AvtAfq*aQ4+OwLAn5l8X#g+*ZprV3fzRXj(oVPA>2Nt6_9na4W(7dT%rHiyo`Q%+ ztx*G}QmJetkvGcaa+ypjry}EuL?)G?Nu?60L?Ue<0T=ak^$2=how$~0LHGfzu0h<; zAZ?JqOeT@b6>^0FM-quDwFW}*)awj-g8|pG49l8Xli6gkn5|~3-D0yLz3dR1qX`89 z9Ybqk%DicY_WD zfB|rTSR>jR;sU-Zp+JaItx%~H2$MpoXhfAaBHtB2B~wHQB2uKB0$VbfjFv#53YZ&J zO0`O(!pRVw2KRt&hyfSl=7<=L1|tbHV_@JHUKX5$qi`4*K{;V12#6XG5iH;$&5dYo z!GnYWAvKXb=tKppl*IteDLRpkWm%2^6K)~)8HNQLMi$qTKkyA+!c*cz14f7!N)N3@ zt=4i?gApRhDJ4c~wNeAVpz&jXIYO=FSi~G;Vho`ZB8_Gdq4Tx423O%mE-Ao`5!HZ7 zlrRRkhBN^y@Y865ukf1uNBR;&k;Zi_Yaw(TM23Yas*#0Y69MJGM!Nrx2|f`(8Nm&S ze_TiLz}>_M;-ohsUGY*3=qP$R6r>Hf;`+#UykQOl&;U<_KBAB?ay$Yvmtv6_G?x^V z7!h-w9uEUYXhFnA(GxKg4{pAp44i=;9eG2I3mhp1KO^+2Ko&(5@Cg=6Qv%6BBtq#6 zXTyyMI85=Gvoo4FyT~pwzyk7;3j-ZbwBQc3Z{nn9C}b2g%4|-EEeay#6SYW1M+IiI wtV2(X8tKkdOpI5)!g8IKd$~oWKd^a=3IqGz0T6Lk~2}KQa&V`R-DZ`(uXYJ~VW1 z+j6OD@3q%nd;R#Xwd=pWe);k*{^r4hy=S{G&I^^l_|pdu9{dSEfA*grn7==H@E;zW z{%z%N|Ie=;JaGTG=F$GR5&w>Q|9@8Id5-(#k>{p~Z8?E!*L<&5U)mL}z zTFvGek9ZbDw(a;e+j60Hp5mU3VasgMB;(La1D=i zQcp7_pIVE{B0QhIKL4}L=4SS*y_5#LHSSS=r)tVRhal6&*^ag`ox8H3w(j;d2M#u;vjN*h_X`>!TQ51-y8Z1Ite>T)B zolYPY#a`4^9iks_WLrz4qjKF&&R*!&W_wdcvt&d=0N&(0x#nmgP-*xTOPuSAz;-P=KTa`)r?cz!qQ zw_-nZE2T=cRX3Wmmm9pi+TRIrD`@=!ERgXiYTdAN5euRXY zt!A1gfm^E>uJlNmeT;EvR+{!i6v+y^c#`AZ-{%PEqjTun2YF4%8 zr=50pHXo0Ny-ouv>{p>&bN#5^YPK8~8hVcn}$Z4}9`cZS2sd^(x*(j;=Lv7;% zl~UpI;^OiWBD)?U9{-`R8LZvMmnzU$xo^vgVGO&ii#R2|AQ2+yX2 zGzz_Hu?T6zl&mPns0_MSlCl*G#d6`QD4vgZ5%k*n+UwV^*4J{A;ZgX%{(dmL`SfGm zAN9k)b&_VI*&QsdCnLm>VhYu(LfNux7eO~0jb(Trn@q>U@e~Qyn<*}XO+~_CfMv#zk7WIxF?rX8V|MZUGh>w$`@RpTFF=?0S3Ye|r}vvyV4kIA3(qW^XEnr_)gyG}}%IPg$+HF?1vL)$=1* z#ZTc}Wi6TgbXSYsT(??jXFeYcXN!3|ZuBCnW^^h{q9AUha(GGXdl4MF zfnUSbl`b*r9LBu2y|cBs{(58m>9?Dm=GxJ(f0H_$`%i6a@^08{wI<6k_O=+IZcWE_ zJ=r%x4eCvNe}YTG7X|X^4hoDTIy*Z)IN0Cb+S*v(Tz~oU)uV$!@Z9;I_jWY@;jJIu zzil;pz1e&?UQWmTwBCs=SF5zc&<*PeYJg}FFgAe*h!9p8zll^2_P4e+*VeG$=ifi} z#@kOn{Bu(3-G3UCC%;VVz20~^VezwZBW^a`Dv`8Yaw5+O>-8kWA|kj91BXb4pRX1# z&d+m)J3BiYFJG;_c>MI~xA}hV(cpjdEA^Y7XXWnCw~cOpay=c+uBYP`-rdV6+U$rI zrLphJ46>CI7_CYbah{$WVN~m{UcY?u_}Rl(b^povKfbg4$qzq7{)dl)&T#bRdNjFR zOuBK}Mw?uxa#g}Mp;!-`5Ct$huJ~%>1|WDueArlj_2R|jhu@#obI+RpFsLNAALriS z(|xZ$n%~aH^PAbY6W7~e)%M)VRoMd>5OQQl{9^xv9;>RThT&tI8!w+fee})KVr^@G zdf#wcHy=jz#Sgcb<>GERo6i^1G-@_IyXHFOLKPT59Ah8kNC+Hk2R^EhCk$XZn`gw2b0-sdAFF&Zr;9Kjz@!T1F^HDnw2>;Knq(5P5frHf~$bi z;qLb4t7nfNez#LDot2~Zu-|I;2Fo{aG{1RscfDLL6ujkZ5RAb@maWK-PE;*8LW3_+ zw;V2K2lainc3dRF+g{x03RB1u7W3J3I-gGmojO*vB9t)$J1oyYi7Jsvkw>Hy<#&(I z@_CSoDkpM7KR4X7OF|@a{dvr<|z9>|j zr~%4>%4~Uavz*T+qk*Wj&`bk&*mUBQ0+@*>hRS6|WoP&BlsKNhD%YZByW1ZON0a$A zG*E#-zuzZfqlt2rF07PFrLt%MwA66NCxp`7gWQ>+QSpfA-F|;Cnl4r(G8#>cm}Za< zaIIK~1I@;gaIXD3Yo#ijfZk#qd-EManL_Mim z$275^@gbfF?`D+52;(v@IqdHr3&}yC0MrI0G@I?-Xgp>|yI?k23#gg72>`SdK7+1B z@Xi@>JUl@sz=P*kRTPZz4Wk-{0niNNn_wIf&~9WVgD_#CU{n;9y1jvFj6s!0j;mJm;(~}ag0N_-o-E81F<=V3* zAtFWs=-Ki9_U6|9SqTjggi*$TrwDOv65^=WOnhdP_aM3x-etHbf+eFfijJn2uRvyd z`zKd+m@*NL6#Pg?jnh_tI2!h36pRl9qvJRxcoAgF6e|x zQKGUENx38&yF5KQE81bJgD9+G88-l#xY_Mt*(63a;FE~q!3+a1PntxcfYg-Ui5dRH zNg0EqRe{m6A(xH-=M)8%pp_3wLM%tpVDfSWnP&Jdf0{2lQ5#Pg)G8KiD&Vn)w0o{+0#yV4f+4Bpr^Pdgbyf*6gmD1|a0MY=7w2logQ zvSwl09@{EcY}b!bL-G_G5?~r+fFPA7L6fvh`kl!Z+0a9r$p0u^l+vz}H1WiyE9v4& zTS$|-uqbszOyE7p$tfF3hF|TaX*|}n8LBWsmk=a%d^J0Gl|Rkp@kR|4#wHaqtbx&u z_{hoGLBSJ=OTd?=1kcQ*EAAVaN)F^7axurbi?S1@X$;Io4y5jEVh7Wz$1EQ1kRpO% zm=R27r-r&@BnQkgF?Yk-@$vD=S-}P?U|7WTT7b!8qFp7O2orKxF#3Tmh@42km0{Pc z9R9@ECGpLKO5FG{5UJHp7y=5f8|M1Mp#m+57ReemNi{$lDie}97>t5eae?xJD=zco zS)ks7y`7!i-J^<^_J^tGl*_dwRbUv5h9j9E8CHS@W8<)=)dit+Nfv254`NWr$^yix zu*&Yv*4FmkRoI&^fM12O-y-wt<6NeM@DM1PG;wfBiG{y?>`USdm2?}s^@xE4^Yh&C zk@9#_lWoA`>s&fr-t_Iuk{$OID*DsK&GiVDouDCi7a}`^>AS4Au2KQ40-kYTE|J+p zKnNbe-|oiR+Vk(e+pk}L__(mnuIzX?@3*_t>-&%IC*-Sc+-cXvN)o#yXKqBUSFcND zpqMn6%Bjea=T69-1UR-fU%!0z=$nTZqYocH4)W)furV9AT7$dyKmGWo14lU5x*w1w zq(QYr(wnv#XnPPulxdW-PH(Ki!v)feq7nqtRJ@ z{Q1-SF&G|yU$1$JeGy(2Xkuc&%m^(f+l!n^5wJ(fctHMfu)Pk0&z^qwH@W49cR!3z zi=?2-UcJ@-@as=MyzRz~HWGBJexu!K2Gy#Mn@C(+JB-3(Pmxxv;EB4RFFTtX>#v_b zdGzpc`SyNx-8^?jqrt3QZ(o0e+`L01>84?&5<)h{p^<&Ye#Ij3QW3)qLcdlv>U@eW z@9u7IZM=N(>iOfx>%p7J_{KTy%$v*WB%NIU`03sKtlcI5ZU$C0WE*0;D(C3SqbN1R z7qRWODbh%r1-6vQZoYc)@*pA)>QpPkac?new#T#U+q=8jU^pK1Itjj65w@nO(ljnrcZ3oI-PiITK~L zHaH~XY-j5rk82RJZ1=i7a-Unl)A@9My_oddkV0k@Gk{_yM2RVp%D!ot2A2V9NP%`w z@iA8@C}p6|V6qU-ozG_T#aIXq1=@*gd&`RJj&V1{0~} zao*A4e|1P$~i)4hX#FfEGtndr1-J^4qMMwvi-W$!9(1NM?Vm=-A4AxQ{ z5jr5YWXy;ZbogpOMg|;(=l74!E-njY+Y7n)(^agHB^~co@Q$!G}s&v`*t6 z6{w6(NhdNDBQg{HF@vwo;DOamfeD2aB9y#!oU9s`kwUl$TfzsjB$^qfuiP;3(L6JS zW!?IJH1#t5b&fK2{HZZ~oO+dA%=BBz>))DPoUV8`_a%Mx zSbdt2>SDT?9_Ci|vAX&7j)tzt7#2fN$Vyhauh3$?LrxoExXi|Yn?=q1nWv_wdi~Cj zZ1{@EYA*d#Ta7mtd=WjSk_+zbVkH~jgbIwE=CYsYG#IH3lxjwQS|0}Ho2bY@#mr9gqohQ zJ^Y56F{z9P#TX?GB#9KM6%2sBryT5@4Kw#es4HzN8l5xnG~sqLy989 zemlVzaUy4u4#KCRihSk;x%>X^max^sZ~oJ_jhm}n|J|qGyuZEf_wR50vofh}rR>++ z^Xu{W_RVtCP8(?mG%M8{3*0VLi7!paR7qTOD(miotX{9beEj`iKdisAj@$R2ez}`1 z2ZQ^&=%U(aMvh${jF-2g!OhzljK*ec)dRkGpvpKTlZa{*(=PMJ`+NJ8bSad+c=Gh& zfBExQH?z&$&BtFp63Kgu9|whtxL0>9f4Epu-dx@gpYYKkffBPRFPUm}Pw?F;z(|B>$TYT)7 zt{1 z*W>AOJ|6f5r|y>v1!c_<8AK~o;z<(XxJeo)8LM2X8hCWDwYI(idVT_a{;Ox5*;Qq> zc=M(^9LI~F$4R4q{qBac;BefJtg0V5gk|t}NS3HG249tX5OhMdfsg zZcuQ3{^I$gZw?0Cyf+(6(7IuB@$<6T?oZ#mSx&l*KBsZmFG8$PZs3gABWjZ>B2uNB z?2b+eFcywd0VRMOP!5n9fWEe0tzA`J)U4I*b;mcivwnX#1^$k^EzX@s^nCR2#sIL=cHD>*^j>h?#AyPL^mwg7c5#?-R9O1V)PPQp3( z(Ah_+f*^Iw4$GT%0DOqrQ++>RqKg8j=4ppq5r#Q%1B71B24EoSwrPm+ zXuYa0QjVdnBxkjvtYU-!s>-@TeJVXtdlc!d&FxbTq6&yGAz|vzZa5-TGCH4+#Bw`T zc5Hwjq!~?V3d*V*D03EKLhK^1QWP}|$s|iO$X>LO$F^In24O-avC|nYmm|&$X5jf@ z8_iD>W$>I@m81=DYB)bY3e7#n_08j?=)ivWwV{qWzpielQ?5G8eIr6 z$$pE}0f!qBn4-w#d{pa3Vnz*6ead$#ZmW=rKAoN)?;joiq3-Y_8b(WNE8e@?S%3rJ14x%{;*S_iJ%&QoDrl7I(lsZte!jO zJT`Yq%bj0V>fOk1v7Q7^$4nsX!I<1jl~FTV1xKBs(6r@*HmGMF9P^}b;cy#5<nkBv= z#(DlS3b;>>xG9H?X_F=Wd(Q!{0z zKkSK=C=)A7Qk}%+(2@cSr}Yl;oD1$s{#5i>E*q;u_N)TuvwB}!ZsLp3r#65NS>ua@ zVR#cRbx;Lk0k)zD3TdId%&+_;!;^?i-c?d&Lc_Vhq~VXr1*vIfBk&k_E&w--af4y} zvW4cMVb@1I<_QlJtChn+UW0UB)i0(oJt*j#61<_!dsJ)zLuzg)(Lzi%L{IMM2A6uw z7(-O#aB)7R7~cJ=5qTsl)I=3qkTO|>75f~ihn8nNo@={&7hxkYsIiy&!YgAe!3oWT zjMs7i{aR_(R~ZOIVI7eK9%Venz%Lu2)kyz&3~MzMsFtn5@on~?W=8=GlfAG2aSWZ% zvw~2SUor$ca&14bC8msCm3KbCq&dQNoH4aL?%Ueo*s8{4T<&NnH zWjhGK)X?D|z+$1)g3ybKU8f`mZq}P}ya~aJbiBa=m}h5LK1?wSPbt#!>VeA(BUa#x zP8HEPg{WRF2XVFLa&7`$w`!+e37xcUtkYt7wJK&2+7{)t(BYb8J5{lZ!LSl$wS%Z? z;mCO5PDE9s3X^gb%dOf8rFf@at4h=`5n%!dm-xh+eQdn;8g^KAwTj3n`QV5oTV`iE+Dijs#)| zvF*0Ydp$ac3o5cx8?lhBBvGZDBt_=rc7PO#pzOIHa*$jhi$HbUIzwT^uJc-!RgcTn zAofd6-79-~%h2}gwTc}_B5gChRU;nbyc~-fIO1aqP#fE?z#V+VtUV@f#jHnK7h1J2 zs#Wl^t75eqP=&`_1ipwOtVw2xN}mBFeYD&x}++QeF* z!x0VZik*r)C*Hu8@oSgRJiWpx<;LvTI_wOpm{<0(@;2PST1|Ry2+MHkqXZxGk*3HK zX%v(U5q)GoTp8mv#{TtT_I3449T;dvs<#>ad6*t#y|Yf)_kYb#!^W2NmqQ;uW5?svP9YH z$^f(f`XY|#F2^sU%y=~SGc7TnU+x=vM%tgBGDgJo`{g40noX_=zK+ry*`3w@&t%j^ zw|=kbjs}?Cy3luXBfDO8Up@ay!0@sftI=kqpF6Mq>#^t=L78=Di}=j2d9-?*by|HI zaw4ksl@Igv@4hzA5m-8b*GUp`4|UAki#$nBXZ(MltfdM#8X_}hqNU3zK@yR*_qktxw@zCuD;Ld zp6;2RduMiMW-pSvz6XHT8_?w{`3)!Wu{G5{fe{U^J2?fQ;azWeg77vFbw{qe4eab*0zzPoD|$G#{# z6$=2z^DIpRK^7T;Vg-TYb_N()kOdkifSlF>eSYI2Gx_3eLc^uaHeEqk!t zcdm{7;`!CIWd^Jn_`_!+ma>*Vc(y2}AVgq6?MB_5ZOr7!5md*aa4gtOEaed2#Q3Gb zK)m*leDx5$to3%rhx?KQZ!H=@1k+T=A4=(sm78WFofjkyUA&!+3D+}$*+q;7nx)T_ zy7!P@{C4i#TjYbMSDEu?BOS~=&=YhU#=%u78i}rdGCh{nmsjPEz0j4p==9aqvB;h6>HU!_CK@FQ-)v5gMg~Kzr`1v8a%At@@*VT+>xc1c z_tvIgJv8_2J*;i8_4s;Uuie~Y+YmD}1*58(`TXO^p1+y=<-g*m1_Py^{ak$Gf^+xT z{DJSCptiO`{kcW5eg8Ym!#OB_{c^MGb@Q|3ME?j-tdC}=diOjpXlW9%a^K;*7A7=zl2vWoSwZr^W-sfFdW=B_32l+le;s|ixhd{m~pQ$Q($84 zR=vL+zxS|mZm+eJ2wvW-SSR;!ODo{ePlmSsd-cRi<6FPG+1A~ny3Ssx{$_RjJ+?_0 z(X)xhZ@1#&@Q)6O&%dzXrF)T6-FO2%g|C^l>!cLh{W|~kV-OhVh+n`o76Z!I`;j7z?$=6TT{_Xz2>C^4GsQ$^7^G9V{!6Vr#6?Wq2`O8mZ``)epbN&*4 zW47xZeLlNvPewZrXCKYw!q9TIcR)qxYZ-28Vl@|%0a9{1{Pp>=o?dEAzI4h0k@T%= zaI%D+nOc5mb_}xbuLn+sS6Z1{>!DZv?8LQing>pnX0C4~f_P`F#0+#Bw>Ou^_Kjcu zR2y<`)<%1gP*-Q}^BP(!_(qG(30Uh+RI3YgM>PBJAJcn&6s)J`w#Duar0K$OHZlaP zJds+fjdsK<^DYFfKQT`qjVfB6O)h<)b@c=ZRX15E^JL?~kFC2(ECzHiex{pSzt_a0 z_QqUnGBMUk>xoHgou+0D)puZeW~EigiJ@?_HQDDbqA4_U8`(Xwexu=b?LO1^Dcq+S z=?qp{6%(d>{Cw+H^wjv$7a1QLCmezGUxaGg=1_t+n%v+(V*bHRs$+;RXtS+}W4SXozKCWRrHsUvD4YrUO z?lhND$qdhMu`%)C?ZDX)>89HURSTk!TMWP4{;}s*>s|mAWS@ zhTr^Y9AMD5zKF-j*jX;Zxqyc@0hhDb^9~vbY*m~wPZ>f3A+YjBbS`}<+y(U zuWQ3YN~17+%GZ2+%fW}w#I`o1;3QYIagqQPVJJlKs$>@u-TEyasjC4(lyi7o0_kQI zKlTnvOYg54u@1jkGo}!eL%HSx(kIPCWBHPpn@4(liSh@n!4sjPAi6p4`i7;&20V~3a|#8>D3inbNw-*nI_afqahd82s#T4&bwW2W zB$><*-NCrL+F~Z*YMn@0E*T+IyKKUt;jmFEQjqTQAWaXAX1C^&y`AhvE8HHrwE_1= zoCZ4@$u>#~8ip*B2h&_RXUmDPxTzR=G8(3@UXd^kLrlRJOP8cnnuF|oXo#GfcewF> zV&;lGo?vO!O2sWpRykGUlVR(!F&t1aqB%>Cjj%IvL{teSYo*4*W`QQNS&Gr!0zW;0 zYZ8yr<%&QtILfM6kSUugKQzc?R6u7c7M;Kt*%ScJ>lqPGMiDj5n^@H-@G*3!0mei{j39}YC%C_hM zc3zs&%&E9w&Nyh2p>V;jJ21>i9PqXV&%?reLk$g$L!9NvTzPt!c*!(gYyOXw8jHEj-_3j$7m6TB-=6Zl+2(q z7GP{eR}w;wic-9k(dbMOnWR)e2oQ8p|%YL?BhHDk&%s%dHe+(`wZS zhb#wzDBF#OESDxE9%Bqsr3fLFRGqxwL+cCrWPq0;tWeC0laN(3>0n4H891gWxR_I? zdLhe|gq%&IhRa05kkN3^Krm@6R%k|+R0hIqJv^VT_QU#ikXU_G|tGmMR#gU$a_=b#5g46Ojb1MQK+z3MSA>lwW`Aq zqRqOo2~5{yAthNTCUZnQu2*aZ!zj0e`9s=5F$Iw{rnoXK@QDy#&5IO)d#N^Qgf(;! zBit;B;fR>$1JkN&iE*Z&aT35_M%GORW-OC{NtO|88Kp%{U}TwRP{9%7FvFP{I?h-k zL2;TU2#O56MaW1pgK>_^0vMzjT1-Vju}H^IlyO}Kqm?v+Bal$7JIQe}n#bOEMgiIOKB{OI%O#wVYQqS_p>e?rtN|R15r^K6r_1fG$l?Tl43!_D24$D zqGc7y))uqz^hpscBK43aX628~cM=Y>S1 zfuaB)D*_G!O<__gDW_uIj5PtUipC~VqQFalSICs0OPt8yJBeW!PBBz~lYr$!LDYDd zHgp9f3EN6dMFj5@kaZpn99M2d90SZS6tDq7o;1pCON*N-83c8(F<4H~s z0majdC}_IOqzFOeIEG|oO=N(`vZAPH-ZPv=36fD{Zs%Q3(wd_Zw4`|K7^mobDg`uy zV>J;+X`bf=j-+@_)I$OtZ2{Hmk{Oyp3C&5f2rQ%pi~yp@i?TpqKvftL2)qX`h%z8piQhpU1ewJ= zPg#;=B!wqwS@F(FMpH>lOe++@00!^^%Xky>4C0)~auSPEl9v;b+tJ|Z6D5xJc8n-` zumvwLIPHai#wf`f1}y7g8w>|%&LcflopJckn>FZp<~B^o%RdL!(?`({%^>mz5bo*h44=E4{*-^ I|GnV(UlpeT`~Uy| literal 0 HcmV?d00001 diff --git a/sounds/win.wav b/sounds/win.wav new file mode 100644 index 0000000000000000000000000000000000000000..0c134951b4f856a2de7ab8e6bc142cedfdc7c9d6 GIT binary patch literal 8544 zcmcIo+i%-wcF(@`vHcI)*Y;(xO)xW<8Ei60f+UD-*oN);0^2JKxnfftYjN$>)a z;02UG5xPJUB*C&_3%23Ja2Cm8ra&LIi`^-Tee0jo-ytPC$;@u|rC(x+qKuQB(y>#llB= zK{v@Q-Oqnb-br3dfBnm!nx?7RPkzReyNC0O^y}^^k=zNOi@QJ4V*ZcRNz|n8^fFN~ zd6qmNvN=zBbD;|V$luhoGe*UWLgrID2eo66ourIuCVX}UQ)rpFip$0 zZD+o0+cHhV(7_FYNFiDaI}$B%f5#lG1X1L9LEw3w<2aTU#|jcB8H#M%rsun1BWyGp z%|;Lep6h_W0Yw#AktJvdP6_|i7}!HbkeF0^NfZ*+;K?v-y;iT+@Wlz7Vn}M>m{H`% zoo1^ON3CWf1bfRcG;rj2nP;JxC<`(<&Cm@PiVw(9WmSd)62_!4!!Xray;`l5O4VwW zsk5>!YJuyvTFw5j(;xPG-MG~Xeb2TGRU+OJ&j|u2DuP7X!XWt2gk)3Kp*nmHkMQJ+ zTCH9ymn-FRAzvug*m6;Jc*zgER=YVk9`yU;aX)T#n!anpDHI`&ffE^)r(hwXD)`!l zNx$ldg(wqamSIWXa=BC}6*5Qp5>q*>hf39M`HfE8J(&*sle2L*?sXfU=a`ntOPWyU zM1f;@Sp{EsK?h^auncfjRf!iMxDGdzE0t2Qkk4fg4j5&B!;6dcPRs4~TjTTTpg%pE zG@HYYWBZn2ORT1IjG)LoC!3Olj4=&GcNCcz3W6-uS+))>tJPwmRLtd$jt&k*ZGCId z&9IZ6-|6;GPr-9?I(EHbM^ju=QFu;MIbKu^MKl6K^K9F-G}A#gND5zP_*w};Di`ym zVm6mQJUrUl5uEL%?rFI+Jc+yA(e>kU-OY^2JSp8a_VwBMpw+#7e>^@v8%~a0vmGmptm{l( zG?}U>%etXho`;kOLPNG}Mc@VSE0>Ff+)*}ruz#?-xw*AbcQ?N6+%iY4H6A8)MAAAh`Pk1l5;*J;?A4KBLLS4(Q3 z)S+NvRwSC_~m9kx(=OmFWWecUu&d&DM#@h1o>!m}rzLJSgx}JOb#~;Qg zAHIKgF&Ry|jfTT9s#ebz7?~^ARYNzCT#o0#@utRBu%B{=2YWkPo9oN3o-G}5#jPWI z*bDs0?|yfAadUffjSUb*9baHjQYyI$&(?WK)=by8btiCClrzM?QqCS69&D|zudTdT z%2W&4qSWlQ4OSLwaWqcel4U zSC?NcAEIznI4ACOh9?(qe|vj59PBS(G7GP;@gXK*%DLOSV?bWixv_ z+Z!uOFP8QS*?f&r8?DZ0a(r=n`(`$so=mz;Y+*x{1%?qML6pG3c0Gqmzb0|@N~w@L z+}+w(Uw!>zC6murS>A58htuN|81iOzJR0`ek*iV<5gCR<8AKa0ognmVswmj|C8%() zv$68>*^8}gu288-eycy39M9g~++3echTS;w4H2miHz3u)fNH3VwAE2OxO%m4NEWQV zc)GNk$yXUx^`g<~^kjB<4F#sdcB|s*VJVJ{+G~$R1$Al7Fq|%E@qJlo2##1E^i-XtGuAP zVek0#?DFz_HanY+x>4vFWTgPl$to0w>Xv2dipW+Q$ zb#ZZidOT=DZ*)FtYoJz>wgh@?RIXkw9PRI{ue^HkYHjc-At zk(CX{Z^XUf^n7+PJ3B^zn+=~b3QY|Cm(YolYFf;rq-`NNm)Eur3XEhpK{M_Sj?d07 zF37trWVh=ACV+AdJt!&_&>bG^A}3Z>*0&E!oMO5l?DR*+Cue7;(^0S0Kw)rD8>n4^ zk|2bbgcEc-$maFU?fq$P_O`b+w^BOGZ?s|%cDlWOf6(i;Be*7^gOvoM;1`6xgdRo$x3{-< z_Om5cHoZoRsA%wH9r%77#Q zhNx9bMI_Bp1`>C6_YbmVG+GyqNeDYw?RGnEMGXL^6zwGzqS{rcIfC$De{XO9Ad{~k zX+W3?OsHbeMZj@$N}W;^u7QaJN{DiIZ$FbOGm`H3O_JDyk|eGLvPKvNDPGua{|rj&3Gk&!%T8U{p|XiG+-3Ih!i76LIsvcGo#q2$*v0%1ZLlZ}W+ z;1gv^3%>%U0`t}DOua@$l)^%ma_Cx(2oj+zR;L4n39TZSjzh#$JOIJ!3@Q=@b)E}* z`$u_7JU?v0H|BBWjL~2IhIRJtg2xpg6#Kzz{?T5DvM!cbF|Ps6dS-M8~O% zTW}J#CF-5+`DC{Zlc^ffJOJadVaREP?BUMF=I&upFapZKRs)`b=H0jvqI9Zg7=9B7 z*|#;qyD~Zm5`@CV08rN|#iPBA*Uw*V99C6CD)Iy0je3LQ<3YE9=qNg<8)4u&CXgs} zp&Us{3@&7}Fu>4UW^ZHZ*{`2&W*H}nJCPeUn}f5HlX2wf0+0k0YC48#SYCjR3LAJy zhc`_`fo!2BbhNj%zWnmpx8JUmI3sR1TR}J+k7lRc5N%(x8*v;uu46b*gsLML=qRcx zjB^N)%ZNz1kUiL5fBpRF<1fG30CbMqZq)9cpJP{nFlYvTh|wnOv>hNq30zfCKvj2O zFBKznS%rr`%K4-H?X~6C&!2q#@TJ&Ltdg|^Wc9S=g=(G|;4xjKg$ zZ#bqIL=6`_XatbpS85TkX?6MKci(*Ra3^jQwN5;}=#4vCbbT6Gz=H8;)b^~XW6J;; zsM)}o7B&?N9}$Gd1nZk zp&+uNq8LEX7~)XY9S5yP7J#8E3EH5ty!`y}7f-BNeq;K6d>lIG{ou{HY7a+kHyE9E z9WT^WTVXf}7@spd2a};g9Riu8i3Eqrfa1_;ZFyz++2cpw7}rP7XTR_DedBWCy*;V> z7hTtjPR^QU*Z|wU;xURzFkaxt*{$TA$Zs5xl9g4c9yui3#Pikr+!idfC%D#iVj(etmrd|aLi zUq=5k^4sRgm4AND#6Lu8)IUG*ozOBvCCmD@%yM4K^xwx68v9eO#9(`+#*Y|(8^d_!->UQ4C?E9%T=nQX0QO7b`R=Fl?y2xsd7x|hS zIPkI#fLO1vY&n03hWPr)H(!16MPb6c?0pFP9Vu>w@1pGRI_M4Kv(x_2;^UaDA)O6L zl+C!M8$QaFDq;-cN|k!0klkHdUw`?{ul{+d*LhL69YqsGX?a)IMd?jHp2q#N@kyJ} zx(<)j)?MY|x}=;&-Lv*! z*gom9l0(=K)(_9G%dup??aC{?3 z!=U|U(v5@RK;kh;qfje)5ZW}W1(pifYpXnqV}ml<)86*#%WofkS$o^s^QP`-%=0z% z!=x6qt@E34&+$irqzYBh!9;7=UV!1l44{s#+m>9fRBP2@27}D%^KTx0CA@1Dnmy-a zEb>MD!$|En%!_xYebb6zW7 zSaV{;myT4;Pu_TgkrKaqdl4zNE!%n_FJciBLJ4#L~OtoIBv9;3C z*6JELwCFevLdOrdVHdXdgaUgROzdNcNLW&^My z)oUCNNDf@IzWns7uODY`|J`W~rTEO0vRmmj@wiHr_Yp2ru^R9% zFFRor(s*U+0-a6O2%zupZ>=mnfAVz6`u)rqIo!Cfse7gK>F7h(0N}oGm|7lt8F)?! z`;jh)I%=LF;k2n4qVQRcLHJ#gu#t+TJODqS-rB3zuMbZCIBLecJ@Fl3Q@fbny!E`^ z;Bunkm_cb+LanNV4Nt9b&3?<%B;Aifl~+u^>B%UsDAgqzl>j?4S@gf7-R+(A)s_79 zAKHyr^1EKltU9Niv#B2jotu$_g2_9MSY_-ExYcXu9EO0J)9iSPMU^>Ok#&rC461AMhNk^+56=l=0xsnn!Y^hvk z1XE`jUT^oHzo^@;DR7!i<18mqgO!ZAofjKI8PHPH`sa7Q!8@sDFB69jd5oaaes$}Eqp zsZ?=R2GdvuXLlHYaLQD|sN8N~Z+gCiLrkXu7#akPD3OeUP6HoKZfJ-B*Z@=lP{7^; zlyY3u6eT_N#7sp{h(?HH*utx{BoPn`03XMNgz~F|XN#o@BO^;Ox&ldgE|3;d1c#l? z5I`M>2xun3WY8SnG`iuSKvr-Bhn|jx>=KA0;7Rw%sViozFG*t=T8$>keN7w6cUq36u8lHaA@HIfcpf%Q!f%nVwo&Dpr8dn zN74u)B(Rx;C*Gz3GnIcY46;*g=#)HF2ZpEqNL(Q)FdnrDZY2EeW5Mf*JLe|NZJJN& zWIN7Bl5>LetRNAeT7Rc46j&@$U~xVFh8~GB_>c%?lKT@=<|p^_VUltDcMv+rV1=>P$1u(`_tP?M!jEOm|2q+>sL9ebN*15owaHiK@}4`K5}#JG3+5`#MSa8wmx&7L$0yA1mH1f3y=1!j z_?I~=a&h96RQx>oq0~Y+A_&Tb4j)OsyZl6rg^X0xLOfo%W3ga0CriFQl8{=M1U!lT zotV_`^!kG9!sNyMN8fk(xnMWX>baE^^)$7>exbn~IUd|gMfNUkk{9pgFT~^fj`ZGB zi_kwBiO_qN0fGWZK!DkFe)SU+wa+3$7+5O84c8L@5vDnNDw)p-2<@9PnlKhn3 zeEQ1ITlbkh(1r9^s4{1|P=n%dcm0tr3)u_Tli<%)An^-}KmSgD_*C7yJF=9RLEgRW zkFP!o@jd47YpO=pZpD1#PO5Fx)+iB^f`;4_x9&+{oH*TTKfDyWF{K?9EW>P f-~XDrJh}f{Rr}P!pWNN^{%cnt`)fb{fBp8q+mdjO literal 0 HcmV?d00001 diff --git a/winboard/READ_ME.txt b/winboard/READ_ME.txt new file mode 100644 index 0000000..420e42e --- /dev/null +++ b/winboard/READ_ME.txt @@ -0,0 +1,80 @@ +WinBoard is a graphical chessboard for 32-bit Microsoft +Windows systems. It can serve as a user interface for +GNU Chess or for internet chess servers, or it can be +used to play out games manually or from game files. +For full details, see the Help file (WinBoard.hlp). +For answers for frequently asked questions, see the +FAQ file (FAQ.html). + +WinBoard is free software. You can redistribute it +and/or modify it under the GPL, as described in the +files COPYRIGHT and COPYING. If your distribution +does not include the source code, you can get it from +the author's Web page: + + http://www.tim-mann.org/chess.html + +GNU CHESS + +A version of GNU Chess is included in the WinBoard +distribution. GNU Chess is free software released +under the GPL. Source code for GNU Chess is available +from the Free Software Foundation: + + http://www.gnu.org/ + +GNU Chess 5.02 was compiled with the Cygwin toolkit +and linked against the Cygwin1.dll library. Cygwin +is free software released under the GPL; source code +is available through: + + http://www.cygnus.com/ + +BUGS AND IMPROVEMENTS + +Report bugs in WinBoard or XBoard to the author, +Tim Mann . Report bugs in +GNU Chess to . Give full +details, including the program's version number +and the exact text of any error messages. If you +improve WinBoard or XBoard, please send a message +about your changes to . +Remember that these programs are released under +the GPL, so source code is freely available, but +if you distribute modified versions, you must +distribute the source code modifications under +the GPL as well. + +HISTORY + +WinBoard is a port of the Unix program XBoard to +Win32, the 32-bit Microsoft Windows API. +The graphical front end (WinBoard.c, etc.) is all +new, but the back end that understands chess rules, +chess notation, GNU Chess, the ICS, etc., is shared +with XBoard. See WinBoard.hlp for a list of +contributors to WinBoard and XBoard. + +MANUAL INSTALLATION + +For a minimal installation of WinBoard and its +companion version of GNU Chess, create a new +directory and copy the following files to it: + +WinBoard.exe (WinBoard program) +WinBoard.hlp (WinBoard documentation) +gnuchess.exe (GNU Chess 4 engine used by WinBoard) +gnuchesr.exe (Command-line GNU Chess 4 engine) +gnuchess.lan (GNU Chess 4 messages file) +gnuchess.dat (GNU Chess 4 opening book) +gnuchess.txt (GNU Chess 4 documentation) +gnuches5.exe (GNU Chess 5 engine) +book.dat (GNU Chess 5 opening book) +gnuches5.txt (GNU Chess 5 documentation) + +Use the Program Manager or the Explorer to create an +icon for WinBoard.exe, and set its working directory +to the directory you created. Besides looking for +its companion files in this directory, WinBoard also +loads and saves game, position, and setting files +there. diff --git a/winboard/bcc32.cfg b/winboard/bcc32.cfg new file mode 100644 index 0000000..20d4a38 --- /dev/null +++ b/winboard/bcc32.cfg @@ -0,0 +1,7 @@ +-Ic:\bc45\include +-Lc:\bc45\lib +-Ld:\lib +-w-ccc -w-eff -w-pia -w-par -w-stv -w-inl -w-aus -w-csu +-w-pro -w-rch +-tWE -tWM- -U_RTLDLL + diff --git a/winboard/bitmaps/README.bitmaps b/winboard/bitmaps/README.bitmaps new file mode 100644 index 0000000..573108d --- /dev/null +++ b/winboard/bitmaps/README.bitmaps @@ -0,0 +1,20 @@ +This directory provides bitmaps with the same size and naming +conventions as those distributed till xboard-3.** +These bitmaps are distributed under the GNU GENERAL PUBLIC LICENSE +coming with xboard. + +The bitmaps contained herein were converted from my MetaFont +version of chess font. These are designed very well to deliver +good rastered images on low resolution devices. The general +shape of these fonts are designed after very old typefaces +used in printing chess books. They are not as fancy as the +currently used bitmaps of xboard, but I like them in their +'san serif'-ness - may be others too. + The MetaFont source of this font may be obtained from me +under the GNU GENERAL PUBLIC LICENSE. + To convert the pk-Files to bitmaps I used the conversion tool +mftobdf to generate X11-bdf - fonts, and then used a small C +program, to write the xbm-files. + +5.Feb.1994 Elmar Bartel +bartel@informatik.tu-muenchen.de diff --git a/winboard/bitmaps/b108o.bmp b/winboard/bitmaps/b108o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a02c11f507617b4640fbdc0471d31de4a2fb341b GIT binary patch literal 1790 zcmcJPK~BRk5Jl4#(FIa_0VHoZ1(w)z6Rv<9i3RL>rBq$?8bMqjh)obthX2Q|?Yb&e zr4rSS-^}EDJhuDrI9^x!+@rrkdkSq*P1N4N|9s=y6c#oX@{9fs zikY8_*EEA3uwsou{8%l8EixBBWNg8*LJQv;GP}SUpK(n+oBTEB%lHjA&3KD^2bbcv z82-f{@b_rD`A>0YM6@6wU%Y&Q0=Hm2xPdn?^e*YYVmR2uERCKEAMcOI@p|b}gp2a= zCF@dzi}3!EKSh2-&<8(8{&$3-1V2^0-sPF+E7w28`}v&8zw~1!n6mmf@+PitP)_w7 zE$fxeYq>vC?4OkTOX+<7dAs$7`+7>}MAoo{`s&%B#*Rmvf6lRE!F@M5uT>)XTi4JX x5N-cqT z%y{NAfZyJyMHGhH6 zmEBwH&w$CK*HhmW4z$C4_P@m=^c*XHj^&ul`M_b|q=sd6t9q^0%k&05$-k|q?s%8& zEz8-H4bptK7+$C_PlWoTf4;^j2kb16`rn`T5o@mEU*}tTTRZ9j{XD>`zh%@D_EKMH z0WZ!o>Q#8Pe-72D_t%q$oG%74Fy-e)ZV3w7tmqEd7*w=Q^DaVn08z-^mO*T1pAMwMplGmp^N`uY~wh<#*-SC)bM* zc_;@FcAqZL=iv`_DPkPJqrPzj1Dzx%trwp4?Lo(5Wkm<3KN2l)GD-{J^=aWD1QVo8ey$@yEh>x1|&^^D-5eGj;!e%$dxU2j>>rfv}RS%zFD zK>HR)^+$o||KE5^zqQ+XShn@teSSw2Y_Y!q>}&l}1Phk)27!9PSYN%;*xq7?0KK5u zjtkN+?5q17^F1&Ad+&P+9^uRPnHd5Cg+-#NAu3xO&S zMD^J}pYKoZ;$B_fS1WxkAkQ&wr%|j5-Csk0ck0Ipb~yNm2*>QPf6qe-|0am)Qp}OU0n&n&g!6fPwg}CMdWUY*8pPXc zs4rMk(AWkIkPi>wi;y(8@+eY)y=M zf=y&(*2vICeieBZmpJdI#YvgKj zZ7VN49vA`Cec-Y7?gLBZ-A8_bhncP# V&*SI$<@rzLiSO&PP5J#Fe*h1O0Wtsp literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b116s.bmp b/winboard/bitmaps/b116s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..12d70e3426f820f938b2bc22c2cc228d6fd500dc GIT binary patch literal 1918 zcmd6nF>b^l5JhoZY>{G*;5Mg-SLt(`w26H*ABC;bI-Lv45Audw_@%NjgWPX;(Jh&R`Iz~at9 zjPO_IPTB?Mvy86SH?vRUnX$El?p#;%2>U$;;(TqUDLg@DG+7_T{mzrP=$5^7Oi%VL zUm5>g^bdB`qe$|c=)BYEXbftvF`QNdQ1li91whr-CympXu0LeeO@;{@$ zRQdDtuM>&$El-rI{8}C<>ww~V%aV1XQ8&!(TyTdGq;#^sftfDM=Z3ZZ7dYUzs_Y?G zbIr)rK|lJxHU1Fe=OOL+!F~#lvfuBzCXaJ~JFJySom9-GOnR4{YCyS+}>Wx9^A5?Rv|TvQ_N;l&yWsHa;8w RroXwwqhz3o_aoDP;7>8#2Ydhk literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b116w.bmp b/winboard/bitmaps/b116w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f11ec1145f35334db3a5e82ad22a541d1002f16f GIT binary patch literal 1918 zcmc(fJx;_h5QQC5q+^eemQ#=wJ-4AIk+_%-!2#0IrcAL~^X5(LEN>;O6%uR7i9gSb z=f^)UukT%8d&c(({cY<_XgGg_{PWTK17@sSODS2uXv_ceX?OpX;C~&;#0R;}ytc** z0>{*fUt>ID5XKbkSNL!?Bu5*xrVcgePc~?5l@Nx^;aE6w-Q|Y2o$}Vyj7Bug0^fGg7y&vHGhq zE5dE`^=r%$vtX`YV{Z0guZObQtACBZmVZRGeyi_9`B3VwOfgS@=O^rEH&{ZH-^xta zPaN&<&9}zC-Kak2f5lqQ$O4W-x$XpT>Xo@|1i%+fv_*caVPr D0rJpg literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b129o.bmp b/winboard/bitmaps/b129o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..243ef28e92edeef9ca2a500d28011134f968003f GIT binary patch literal 2642 zcmd6oJuz zTJa6|);O6X^GK#?MHPrK!aQZ%^)W=Yax~~vAKAJ$ovhu`%hHU!>D}lSD@Q)xjNSPz zGrU0V#@=+W_WHOPvw?RuWy}_ZN!e^{wvnRH8e2N#=0rQZ&j{A?=mgP0V$7Blc9jxq z5C>^$#taR0vN(^9W{uIK?^lc|Ckx#&Dau&NH`hb4-9=BGjtUQZeBquz60_K>s);c| zi|*9(x@>m&T0e5MJNC!gk)x9B#qKIxft^K>vOh^Y6(EHbNhVpd_%YA0sZ#D#_=hVt=V z;!!Xjqo)jpsHbL=Jvby&_kWM+9lZG9`Mdh9vB$NwJdpfLH9+#zgNd_#2#l<#J@$x9 z4`8YbZVOqlm)LW#a?ianCy=xjXD9#{takot=d^k+H3MXm`LLbUiNmj~6Hbh#aWedy zB>t;XeBvGMAR6Rg{1Dk^=w#C2`=@Fdn?>3yTc!Y2%3)77=e2q{^TXy;Ez_%h+go^1 zIqeDlIuC5MY;zw~z4&h|^tzZ@77Mu*@pRdsO2oS+K7cH!LM@?RimUL;+Q51kzp;ZFl1m$RIxlAs99R6Sj8ND^l_l% z$p-ABHOxYxV6;umyLvb=O9L-@VxFAGJR2_CNDfdyXp@a&FRT4l#*2)e?Hai(2|c#) zBBRno-ANxOQkVZ>N!00$M9iopVRFX4LU^9biSz;%MQ-Mw6Pvyvt)d7Iq~Kxm)E!ZAoh&w6WY7ACN#nyG5_(P?GA*EmUCvSEGoYpb{SSJ=P`@EbGNeNV64ff z0DcU8j>b+%CNxAfwS(7qmHK>AUDKaY6=ESWM%A#7Nq9_>dX%V~V=n}%Hqm|`|s*0`5 zSu1*m+K&tPOknd`lRcD79-XO~{jOnN438mO+E{AY%dFH~y5zQ-MTV{GBAe`CiEGOmadGt5_1G1&kQe z?;6HEU{b7z0rz7M`}ZtK8o#U6q-(3%d(3;59@~3fytC$=Q})O|Vb(DV;_D literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b21o.bmp b/winboard/bitmaps/b21o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4a5dc5fd09399a8ca06485dbcae0f12b5cd639b0 GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKIxgnSd$Od5$`2YVu5dUB}pdi68zyAcojDiyk z$CxD;{{H>J@P`qIfBs3_c=^bds}3}E~NN(1>Ib^n-uF#Kl+;(jOwng;;bH!yVo literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b21w.bmp b/winboard/bitmaps/b21w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0b8b1eed64a76d189e8fba918534c97322e56132 GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKy@If#WkPX5h@c;jRApXH{KtY0`fq?^zk1>mu65Tp(y|DPR*`=JsUAA~_{p!opT CjZgak literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b25s.bmp b/winboard/bitmaps/b25s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c9c41afe55b73f998e7e1793e6a0d7c0286c8aed GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2sga9t8RF}!Q60wff0=V zKmOnFpP|0tAA^0v|N43``@bE8|A#}q0gUaSG>{Kg2UP$6AW$DjFARSNvVrCU0B>AB A*8l(j literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b25w.bmp b/winboard/bitmaps/b25w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1d79b9d3b2b7384ecc341fc9beb6ab6c1d71efd0 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd*I@If#WkPX5h@c;jR5N>#HSKaV{gSp`V10xv! pfBe7UKSO=PKL&d+4PwLie;DK&&@o)yL7=|xKn&6k!XP%#d;o_@KZF1P literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b29o.bmp b/winboard/bitmaps/b29o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cb1ef888023542b811eae291de8d2e3a0427c12f GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>$@#NBm6|Z$H)Uxc~S6 zjR*V<7XLrh|M-7E{>Oj&=Rf{8@c;O~|NW2u_wWDszd--T|N8G>{O|AYA7K2U8chGM Z1&V{zouB{X|97B%5c~zje}OdAE&v$@#NBm6|511G%4lpoC zJYZn3`2V5)$NvNJKmIeY|M0#QzwWQ7~LBNF7K&GW-kVLG1zn>5WvS literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b33o.bmp b/winboard/bitmaps/b33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8a2779a6441e3bf97d52b5ea7652980323d50b82 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@u)*~A|Np;(_#c=b zu!HFLf9C%N)Bo$iG)(;epZO4d511kJ{l5_U{7(pdffYi({|%wh)xp&7{|AxZUx!NX nkwfL*uZ8eoG|b%Z-yz~Z&qL^c`=PWwg#LRUmHr16NAouThIWW~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b33s.bmp b/winboard/bitmaps/b33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1955f6b5dd7ec9d04dec3b6699da3051fcc81edd GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@u)*~A|Np;(_#c=b zu!HCa3=PZ>ngL9IU|;}?|NkQo(f5EELLXp+(D!U1^x=o7^6!76s)MO-V1S4>G@#P$ jA5i%R8ln23G|b))>=5xE{1Ez|Jt_@zCya*4qxl;EVK8{| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b33w.bmp b/winboard/bitmaps/b33w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3d34cbce1c6faba210597d9b311a62dfad81531c GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dur_#l`GC zU<^9VT0+<|NsB10P?>u z{9pvp@Bgd+-vOjQ9KI(3;{Uh#`TPfn{;v|`opPvvK=zcK&e?OEi$3es7QNsfkJ^=da BrSbp( literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b37s.bmp b/winboard/bitmaps/b37s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..de6f7c5b5563c5ef31cc09dadd1d1d0713241695 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VT0+<|NsB10P;UD z{9pjl4;T~}EWmsQF#o>|<8z35eu%yw3=sMOgFRRrMt}cb59WVhK&3zbL*>KN!{`GF t@?d@F^ua%<;tv$;QS5`+19Q(G#{XdX|Ljn@AB_(ahtV*3)bN0X4**fgjIICx literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b37w.bmp b/winboard/bitmaps/b37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..432212c9711a6bda0303a26cf7a4f9ea481e577d GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U|b_#l`GC=1oF7$Ecm279nLjQ+q-59Sl1Vd`P@0S0-nK0-81 hJ&cCg19Q(GMu@xqL*4nmAB_(ahtV*3)bN0X4*=2fiM9X$ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b40o.bmp b/winboard/bitmaps/b40o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bb0c4572c23e99130571d4f4a688682a1224e5ea GIT binary patch literal 382 zcmZY5u?hk)3Ryj z9%@fZ>G#B0Y|)5snurlz{NN^bIBK4@MLqCEsejgoDEmM6Wj+KuXAbY{agsi8wR(kW O@5kNtIX^Vl_20e#F1jiJ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b40s.bmp b/winboard/bitmaps/b40s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4664ff2c381f9457d15b220300c8b8bc4ccf4335 GIT binary patch literal 382 zcmZXQF%H5o3`KwG&`1mnJwR7ZQ4l*rA9-M6BXetRDwil-+j%lpY_`JPtSf7<}-$&^n3 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b40w.bmp b/winboard/bitmaps/b40w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..239e2fe4050158a903569456054c3552b1a69bee GIT binary patch literal 382 zcmaiwK@NgI3`IY(z?B|>EvG=^-YcP3^9~+>gag2mL}LB(OO4FNCckgmPCLz9u3Z6H zOW*vcfEUih^WfUCo|MeYlIV5b@Wu4V{Dc-2*<+7VF%&O6*Ob|P?HinLoHTDjwc(7T q;^2Z>aWL}1yuU}O`~R5t#k_bY_A}fx&mO+Ft^0o&`J8dj|Lp^fT#+{b literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b45o.bmp b/winboard/bitmaps/b45o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5cd37651409bff122ffc882599d187075bf454bf GIT binary patch literal 422 zcmZ{gu?@m75Jk@*M8ObgX&3<_(X$65&>)XO#|(7I28;k*8l;F&BtY!XozE^3iL<_6 z&i`K$dAmCs3bo;V$y!AjQe)3JE>sitL{b1mKo_0^U)=fw(Sx$mT!?Da1(;7Xw&!zC z>-)5m{Pm=BjaAY-umdmlzwm)Q-hqy0O1MDJ3CSh)WCnhkZviX0#M+^d{x8dH;I}T$ jN2d3>(SIPX!uN5zDXU!hfwGHit@dLke|VpAy^{X{C*k>f literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b45s.bmp b/winboard/bitmaps/b45s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..285e968c2b3856462cfa35ead7fa663e56f4905c GIT binary patch literal 422 zcmZ{gF%H5o3`KuhAqEDH(3ORqiAe0+gCnq@a2n3hqvQxdEE$@*wv!-IiAX;$&W|m} zm+Q+w*O~VN>sVxvjT_^!%j(z@$s!^VQPi{Y!{K}fJcbb`;r=NMlEwEk=k-zEk3-H2 zE)!d&c)v>6Xq+f1Cm7|7zTxEFjbCd7z{$DNcd!!wrS**;x{_a5>#qBt(*O5g-fBM- TbuPRW*8i?q{dS%*Ua7MH8EnR> literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b45w.bmp b/winboard/bitmaps/b45w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dec307a2169e751f26dc4e0c82e00778b8e0ebe2 GIT binary patch literal 422 zcma)&u?+$-3`Kvqf(}NwmWG~+ljzxl5$KL-nB#_EfQ%4{CIyP|cVYyoi1hQ~{Mbo+ zI^P3q9ChBQ_DuoRxF{Z*s+D>ahlo%j+1AFVhUE%Gj0+Cr_C_XV>3-3?A@lq)*1R-V zVr``NtrvpDJqrfgclN&5NWjdsGXfLif9ZKnuj}{u{nFn5`B$9meUhy&IyL%#d%FMI IPqvqJ-aMJYzyJUM literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b49o.bmp b/winboard/bitmaps/b49o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b643dc3c834d1cf8400d9a4e98edcfb45539d229 GIT binary patch literal 454 zcmZ{fJr2S!424}77#KK0S5_`SC3fz>Enq?E1{+7soWcHAx8ok{sy|OObCW)wF5o%tV!=PN_ln#Dn{3 zb0H@_)`Oq*z*iL5B||Lt9`M2e$O4Iy(C6T08F#9mmVsa2=(l;s7Os#ve_5_(>ph$o npV9X4t8{DC7hnK$JJyzC=G literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b49s.bmp b/winboard/bitmaps/b49s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1a7f30c26ec41c2bceb2b57188a86ddaa7320458 GIT binary patch literal 454 zcmZ{gI}XAy5JV?Qk%GcU2qi5SAQC-CisBA#1r_JW5nQ^6Y<9ffNc>isJk5GNTIYOu zHYjzH??H5|YM=)ct{-F9r`H6O+NS}YHc~SoFdvP~v-KUO?=OsF|@7!;5)y2;~J}iB= Fd;!ZZ;(`DG literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b54o.bmp b/winboard/bitmaps/b54o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5020224b8a3a9b949bdbda2e93e71bc3658d2549 GIT binary patch literal 494 zcmZvYF>V4u3`PGyks<|cib#}6xinOWmD1-FoC1kxxdAy!u7D`EoHHQ$D2QewP5iMv zJ5t1A$@66U?;p>;y?+OIEcJZVoc9@!2VaVh$DAXbSz3^^)JOx0wf_sDKU5 zlt5YFLPm0dqv_;X=VRL3#lieim3@CuyFXN+eVK6Yb~l&o&8t4$70AU&q+cU literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b54s.bmp b/winboard/bitmaps/b54s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cb770e5746d93e46cbfc94ba77674cd92e0ac9e4 GIT binary patch literal 494 zcmZ{hF%H5o3`Kv)z`y`EC?jJhCPXE6?!!=2ZqTc61h$S`0f`-TEK(F>yG=w8vGntl z*!lWt5672*)}Gf5YdgtcY+M=V#i$wgL{dZ~;&NH~#(4X7aKH(?4nPUiLarLUau@d= zE3A$9c{BRXaAE6Lz*u`j!&E;2Y>Tr_5(*`SH>Z{F(PC kHD_SV8FJmQ)I1Lq$^ng1-Y(*J3B&iuG0xwodw>7S2Nr(}*Z=?k literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b54w.bmp b/winboard/bitmaps/b54w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..011e8a9c0e356e7073201eeb3e50889fa3d4e16f GIT binary patch literal 494 zcmbV}y$!-Z427RbK?e&U(Na=TA&}_VC=!gs2y8&Z0GR-#OmW26zIzcO&|vA^7yrt+ zI~*T^u$`SN)22v}6BomMmNl`Q%S}~XW@*IU!_R~S>0xIFtbrPBbZ!SW;V(RIR>O(` z@p)8>eS8Cz(+cF>*AgFi#x(Ne74z^(#y|QvmrS;Y_x(%GAxHahp9ag=ufr+G|JEws R0ohCTf01>1D}7(zloQVR_obM@4Lt62_ z^<4P|48VnZGdQRYEIODzsP8lsf4xg&ni~^Q)cgm%affX5I*XIOACZl}xErr1vrp7m z?(}!}=`aTEZ!5z9%|~IYj03v2q)_V4s;hmdK4^#H@AG{A1+o*F+v8x&q5LmC>mE|H YI?iPusStcb)9p^nzDD03H;5-T(jq literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b58s.bmp b/winboard/bitmaps/b58s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f7c9220a0c175383fbf4419ff0ccecb34a35fc8b GIT binary patch literal 526 zcmaiwK@NgI3`IY>U?Gtsu=NZsBysPN%*@dy@c?=RjTgYUVL_O|VC4)9L}KSm$xV6{AAx}bzzr&~FjNh;^P>{f1xv4AZN0p@ zxm<@Gw9foIvQAkBM&~!ieMk~(wj;(UlA?rPEhMG6;r0NcF63epF864j~H6Y`Y+E?oKxGF-TooMrjct5;HSMPvQtd2yGnaslA}*v!irSqDvZvRR}aM4EZfQmTeE34w*CjdHw#~I)s_E_*`nVeTlBwV zCf&m51#l6;vwXNzRv_SKCdl zx1l4|z~hButYOITjK$~YV+pZVI{}dRPhM;p*+!fCIfvu3sx|Sndl^wiRd7VocWVa;4bSI@DMhCBUiSvpT@2bP|iMU-fg~CXQc^R zH<;4UF5RLHhsKS6s(Bit319!Q?U!%LaohX`^%3fQtoJl)`@m9cNEWKLzsKgwzW9HR EZ|B)}-2eap literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b64w.bmp b/winboard/bitmaps/b64w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..acf8351991d6246f892f7685fcdbe82815ad640d GIT binary patch literal 574 zcmbVJ!41P83^eT{zh(r!og%6F?@TaShUfr{kSC9bt8K6z(s4GEm?Z2lwB%o)j$JzF+?-Q~tf(+TN zQh|N$nDrF=r5+TXEDev=_sBOz;r~M8`*|CY3h|hS%zx3(EABm}$Mmv;tLO)fpD_GD XQ5(KK9i4_6p<(|0LgTg6`KR>*1yf$& literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b72o.bmp b/winboard/bitmaps/b72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e0010bbcd119fa33fc485b773324cad35dcc16b7 GIT binary patch literal 926 zcma))F;2rk5JktNNP&b~I=37mVkIgX?!Xba0CuP-a|5^v5`{}&A;?8qTWJ=_+RvZe zvDru|vhp}@zkgB z$b%#Mt*r1RMMWM5ky@nOk&nQ1>wr#m+TR$e`wBP!Uj0F2jlGEG=`^o$4>1oZwN$Ip=-JDyh^hLcRbJ~})mum6noaM>$AE?hg z^rY5m9m$>XNS^1MpOM1}&O8KeZC0E=j~08zJAM}KHNEMhrZm3fKH!^n^XK;@zdxaF U7SBbz`S<5JPiisaQuiGH0Tl%>eEkVTp={J8+RzvKQejATHt~q;wH^cwgq6f_s692lP0Sq0p@!&KgKWz8!XxcwU9vj$k!tvm{4Gm&t?B`_ z7Dkepr=FuzADh#1M4n!KUbv%f(H$dI?qR}w=A5<%+nZ&N{Ef!0@eT8=)#qbIKTE9T zm7E@W>8J1rz0A3=J>%Nk^fqx)#`RK#J@ZYDrEKn(gIt~JQO2*Ff8HF+e~{nk*8dxR Nsr4|m1n0W%_z5)wzzP5W literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b72w.bmp b/winboard/bitmaps/b72w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..76f2128e769f496fb544a92f0e1e13106e280bf5 GIT binary patch literal 926 zcmcJNy$!-Z422z1q$4d|TBaZp6%9Ku31JduiNp#FkP%W+pqOW$gC0^&LPA*b={uj# ze)qFKUQ2P?VcfzG;e`|)KVkj8PQF6K+)P!?lco70Po0OS4mr=-d2GQCky3k+20X&g z@H%)y4D>ki-7J3!wwgNlq*7zmhcp-yPtv_PiB0iQOo#ImV;gKLu;6iK>)b><$6SZm zlyVk?)5ZY2J_FG+?t#GpBjZ>w7Jx0tTRNW$F*T&)#kAE?W9GNF znUAZP^K2TaMB$Vlr5Or)?OJriDC}5KQ=2;os#Pt71LZ|&?aU^;X&Ch=X{G_&f!fr=eIoTwECm;YYicW zS{sR1-Z%OfRCoGEuK8Y`rl}8Y57|t<=6s$2{p_@MO!Aqd8z`9>y<`fv=j6m4YJ6}r ax94ZCt;*WN;XH2Fwwj}#bwpMF9R3ADU&0Fj literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b80s.bmp b/winboard/bitmaps/b80s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c9eef7ae119454ab1acdf41565ceff22a63c653b GIT binary patch literal 1022 zcmbu7OHRZv42B)Lm<0C~qcZak&WN)ekB$NKpZBQXGUO0pf)r)~2C*PIsM6Od^sX@yJ9JzB4|SglamE z(aklN_sk!SBeQFqdVQI?^;+>nv}y5gX?SgXV8){-iXoqCVjMZ@kbAD>pKC7C>pV~AEdHP~SYGWv;&yO7douf+%nnaP^0Ui+aA34j#)3j) f^;B!`$t1s``scB;y+1bQKWu9*zV{MpGhD-8N^3#^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b80w.bmp b/winboard/bitmaps/b80w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ecaf14720e0c45e3abc25b23f641a02a70ab0d64 GIT binary patch literal 1022 zcmcJNO^(7a429k4f*o@Nww!`Uvqzd6HJpGeg_(>O zvoT#mgbC&cWA6+kj)Og3e`SXH;{a24Kth2J1PjhdE-u!p_k8Tgi?Q?cJJc;nI r^ODdEzix~MQ)P`jI`eDqo?KQf#^0Zr$5nFQVPEqaT1`@|{|x^F2z)Ot literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b87o.bmp b/winboard/bitmaps/b87o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..202994b5d70d2e8a2fa5c349d3f2c533e0072b81 GIT binary patch literal 1106 zcmbu7u};G<5QZI!6eNarU?yVY5txX?&cedWgr-u5j(w#dhK_xOpbm_rTZYKTXZzxK zC{httF8Or+?>}FXr{|YTW=);)09|w?xE+F8e?JQky+K@3NXp zJCht<8IuXkX7ClyinxPsP2DYu!5pozr3e|3-kJfHwc};ry>iaet!8PQT_GLDR5e(; zCazb{h9yexCT%sRAn>rLBey2zT}7#y2BwSGukfEKZz%jw-ob>|kQ4Six6F%aV0=#T zu`@-Xnj^KRxM#mqOQg>6Cf}+iJrC!KXJ%gxs=-6(?a!I8>nW}`Ujg2o z;-Mzb&1ueK=8gK_c=EKr^pyh5bmob-ACL!z2AZy%=oP}Na$4yU!LXWEN*5M E06e`bumAu6 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b87s.bmp b/winboard/bitmaps/b87s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d5baa5c228d81e56cceb2f48cc55f33cd5631934 GIT binary patch literal 1106 zcmbu7Jx;_h5QQfMDM%FAfUB6j^Bz zBTe$@W&S+z!{gH>CA-J-4*sm(P?PiXjG4vN*1z+QrhXy!z^-TCau1$~ z8b*T-?C^epx5_(ZyplC5t%X6SSjr_sywp!7^#e_wx=14!7HGgT^GZ`?PkrHl+)-m@ zaHs6R?FQQz%b$V9ca8r>@ekz#7|qfQe&D6>g8GB%r#RfwRhey>IF@)1E_M9Kp|G9D zq5jtVknub6Jcje8vkuA2?8ojoKrg$+VK73DM>DKP*-1%db7ydpq3TgmH70f3U>jo@cc$i^ S!#3Bl?aOZ{sWS-umwy4}pPMrP literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b87w.bmp b/winboard/bitmaps/b87w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..540b4c9900bd0805ce496248f6198e2c4127c938 GIT binary patch literal 1106 zcmcJNJr2S!424sQ#6}s|Svdtr>?|x?20@QjCPo$x(2bRmp{jX~U3ddgK?qBZKDp07 zjk8*Bh9TMl=N!Iu&q5aCQ+&US%?F66tBHuZTl*Vdz04VPj#3s<=Q0A9A!LGPIar(S z;FobXe{iaA-1eK9^=0+$sD`H7 z3*RB%t^N!ihrN?{JI0Khp!3Mci50E2p2TqVmNV!I;UceO_FDwuL z$DT9`x~N1{&%BOjzQ>dH>E-L%OwS|iJ=SYkm8quq8}>hL^SVNWi;swK>5~-TFXtbv z{!B7DzYn7H{8&`)U4Qe;2kbM#hH!^Tcsf7!ZNr|E4 zV8$esWPPc!zND;A={E3?gisTk(T%3uWwk+V;axp5DrZJvRdT3gY|i%x&dmK1KZ4mV zXBDv6?!-{zTV$Q|PccHcCc%eU#|LEbs_}u@AkBr;g zn+NNA4DK`^&WYdIKleR77Js69<*f)lIldFAmHkwb)2=gXcy n@WS4nc=|7tc+aB>54gEtaUd#VqDnD-=6W`Gz-iwc(g zfg&G&te4mGqonnW_YwQ8>_(bof5-X9Q{E4-aC50Dx2Bl6DJT`=|pyBVN1AsZ=m5c{MQ_id@-~PCA3mY);5k19JUAq_4dQs<6JsePx7H zh7z6Fds1!x#>+|M)aBTvR}F;&8Jqf{MGj+jP&jpfbNXyCM`U&CLG`Qn2k=yMJagdE zWli7LL_1=b%kxM(CPe!d53<9PeYP0Cc3`2@xr^aj{kPa@Zsi^6Q|n)OqP_OJvY&~c z6|T?C|8h0|0iB^g_Q)YZJ~KpHV}B3*eba%V*~k&M LnwMlX`~zPA3%@T6 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/b95w.bmp b/winboard/bitmaps/b95w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..565deb04018fa33ede0d8015d9654495a5523152 GIT binary patch literal 1202 zcmcJN%}oO_5QS}mlp9-uuT;TG+^K;kxO+RHhg9GqD8MDG#3hHw!+YbMWFo~qVo5c{-|AGI%p1M82L*o(=nyqGl^Y{F1w?CWIyzWGnbeftJ zB+4gj`_5_YyznU4c1^JNQe$WS4zV>ob-QBKs~h@aBE)BCU8zY66SC$Swq8PHfxWM? zKQnTi8CNNyMkA&B`N*_$*N>P(2)S!UtSuuyYZx)xw>mw0y^lYtXVhb5ol~#DbD=gh{?qV~u^@G-GpKAL2VptCW8W@GX1 maABB!S1KwtUekrWzcAIN_w3``!~U*kpX)eZa*-_WAMg**YYW!^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/board.ico b/winboard/bitmaps/board.ico new file mode 100644 index 0000000000000000000000000000000000000000..62f071429350549ca7e9907a437db4e83c23b5c5 GIT binary patch literal 1086 zcmeH_F%p9y6ht2;b<7c{GAVO}+>3@=*>aqec9vwnWJaL1pvmIyU;pCZ=m*Dy_je4R z2_CB6%Lp$Aw+lS2C%#3;RSL0e*?lWfp*k^^B9#>*DJ2DYzsT8~sAVk^wxwkVP;=R! uW}Ss_?r9zWKY#G|w|_7W?VM})4Zl)u4z+omJFFeLc<$o$Y<|4W821H_qyvHg literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/galactic.bmp b/winboard/bitmaps/galactic.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7dc277e3997a4b1c0d0f9d39fca5506e7ff4e5b1 GIT binary patch literal 96142 zcmc${J*;e7m!4HWyQ+58-nHxJ)ZN^Dwm-Fyz_MgnSh{UHLBb+LLP8=Ta+7dUgb?Zs ze^F;RY;z(Uv?T&th(+n497;{zaeb4>AYvUHPs@9rw z%rXDocaAyd`l+@4-GBe@{qB6G`alvmZYFli3gd)&D&^ef+m(zx7xD%h~LQ zzdie{|KRTu|I68L|D#{cK7RZ-`Oi&mA)^kTsKXb^`pTAMv(J=MAHvk@Gv%Yj-tgBM+4Dn2ojz0OXA1aCojz0c zXCgn7$!E&`Oxf)CSvGRY|4jLxDW52Q=qslVpQ*!Va6p|hWI_Z!^J5DJU#PsK*!ULBlA9ANthg3w8NICB9G~Me{>W!Y?R&LGXpT@a0E7aPoz^ zd=Zb-#oizb$f(0t>hP61e5DRwsl!+5KoWlBNgcjYhp*J(3w0nHe&|z&uhiiyb@)mh z$eJH=>hP61e5DRwslZpt|3YS8N%$3|Pvr55@F(i=HF>M^Y4)$r{^9I*e&=^)zx%tt zJNv!g`@Pxk|NigK{^*bXX!eJH_=mGU{^LKM{mGyF$?Q-6^iOAh_Gf=K`_-?0HT&~F z|MS`Z^UuD{{@@?{gV`^C`Ag8Hv3$v_c5LzT`#O8jy}oA0=6QI2?*8W{_)U7mzfgtg7S?~M!_u+Tye{sPS{PRjj zs}=RVbe$r)kt-fD^%CfKqe>8Y{4f$>w%~jH+<2cQ;KgmyL?@X?XOu#~+`5#?C~>7) zYKq@{6Ee|zPp3+Tw~Z(kF0wnDp2u$iKC2>VxRq^H9 zv9}DEqCSH_B+2O2U8S@VCgM~3L?o0bgF`22r+5?Q*WwXmpWKox8x+(jcl8a)U)cVq zi!!Ev>_+IOB8qUmi|;B*Kkr!EN=&xwU)3r*U@)5Ej1Mf4RcPpSsB$5Ijig|6ZF_To zOvY7~nbo(1Qy>w>L^5p+-9(i_l)fk)ASXuFr zB3?BZ0aYlKXGR``_I!Q(9E#L+q-;hN@bUXv(4$T0?XXwrO4Z7nCcCjQY#tFC6@?Be zyiJi>4wWdDy2<_`-3$0QNBDc^ek2-`$!Jiu;a#fRYNOCP>|TTr<*}_`XnA=B=a*Mj z06>gC3z86n6g?tH35V{noeGbtu8=4$Vjkyev%)U zNf1AV5vn?@K4619(qNo?yI7*kyg_D9My8HL>6_{qNJ&!yE2NUe4>!E;8XCQ!^Dn)B zQ=fOaT%oIoQIXM#(NJS6pX!yRU2QIZM}x#@1Wk0*F(OH`&wx?V>g$t&3*DC|P%oOa zkC!KM2tTh9MzVZg9q}mJIEFkTDnk`4vqBU{Dzl%$?N5>T(>P)Y`}3od@eZcLC@azM zxyOwJ@ka7W{Zi=7MyH=a(gb%9P4BS>)e_G*&M3pXngB3fZc71YlQ$R}w&Xl74 zB=(KG@H_YzmMZfir2S-KA`lWnj&lvN6t6fRvPe#;-`J3YsvV4CLe^>$k5=C7 zZQIXvWd4(``pa$ft@U)u?6T=@G}>b=(^7YpNp@BD;WbgUG3xli$*tKqB(WRpfG=Tx z4Ea%sl_*eAgK-yQ!IOl59>NG1wzSH*_R5UXa;heiJYr=bW{6F1zo=m{Qkf;aF&(zG z1S(X1gY9m-(HiofzrW34r1}X9qqQ~ek|r%lYpP9^jdS}WEpg8<^pfLA0u9$z{|ZrM^t;Xo~G;~GSYHun2WtwTz^s-vrj1&XN-{=7Cs6! z7;zGX`)Gu&$PA9w>aA}Hjle}=+TD06`diydVz(F$+kp``gBWxe7X%nbT^Ku3U%VCS z`Xx3ST2l2(ylJY<;FLfjK^83mha7f6y0!_LM)05ENr0cU6B9i_Okxa%m!wZ#L6lfZ z#MDq$!A!yp>S3v?VJ60*=0~>ULu3tAO@r~MP|=ArLsdq6tJUs`1HN|2ZUo-$jrwU< zG)Tpuqjj(Rj2PRFvrdp@k7h)fXfvw%nJQT@v7bIBsSt^1Ya(0`KLH9q8Z7(-*qS#x zoV>90ha?1C9X-#nvhE=^-vZ-3MDIo_9yF_jH8?U(Gz>iLs+>~Ey>oDiE>{_ z?U>2K1o2gqY&*WOx!Eg?vXKB(yPw|vh=_Nr+@y3aEvLCu`50FgO&u|j`ZgERr4^|> zbqWZvI`h;cLqSk14M>0zVM9R!i4)^jEGE<-Bc}W)Q^*rVDPWmEU8ttNq@V(PLVz5O z4}wIf?=SKOFoc*qh}!1PR6R0=CB8{Hwf~LBJpWa=w`h(WC+XzL{6ckU=fuR&{$^bi zUYQ9oQek(71NxzG06m-_k4YfL4?!KYpC?L_8WGV!O;XGQlB5MEz;1=GO~JiE_VFdY zD^Up&6G>9FzO|C6B1WCWCa75&ntpn(?j|&Wca0t6&yD2jy(0Uqlvh1{Lu2f3V}Gs8 zUJJnKTpCAOqM?<&&}>mBhOSJX=lDE!AnZ?1WfNkqp%`H&H)tB-F)nu!f!Naps=Sz8 zx_S*aHW;43#2;c6%1yNoYKuapx!QGt!42K<`L@11{ zB%4kNol!9fk=m7g9~31{%~XcMWH74@4aga&v}6S(GQtW$(TKH2tI>m^>Gx>+?-F|nzobF_1xNCx|Z^TXeM9E4utR`PV^lV$4F)00? z)`0~F`bHKr>_STuARoGl6E!E@W22dB%n6+s*{gWM2kM4hb{9#AaM^F}Ps_AU=4|E8l?&FAqgdyiVhq!*jo&KuQizGX1)87b}i z(`g;wk(+^_(dy-J}r;u5Bt?- zwp<+m;Oy83_LwYVxdXQ24U5@upgG8cL{zuOm%$5}dtIm~T1pas^OUJZmYyURVgUP$ z?P3AP^X1_}wbuN$>*MZphktuKoKCBU#o@TyE+2LqYPX^19BW`(J49R_wTR93VSU-H zw-2lBdUv?2Ru^_OXie(FY56d_9M1cP^C_Cyi`r$oUeMyzc5%Ou^W~O)0ARKA$8Eo^pH<9Dx$^kPK(|@KI(V{=LjHR)yL{UMACCQeqo7@py-_ z^gavrWy5F-FSG4}@oNPyjAi0f7~VTx9SIBi0$Juf+D4yT&eESnd%pd!4zyrkO7x2X zQts#54a&fLPmCN4cMPxL<6t7o(H$-9xFyBaQH^i1^J9BCo@Y!kAWWB^?{}NK`ErX< zEC_68fXoJi+;7htXAUNz`5lricE#9rm%xdL#q4eijmy*Q?h#%X#^A&i6tFvJ#WfS) zDxir&Ly&u?vZ z#R(3LIY}04>Urmq%cBxnoT1#bh|`L$|#=EVLi3bv55^ zmt~lXETfcD~STd+x?0N=l(7EI**xy3%g5rS#Pmehe-@-4@b-OSsb+(vkxJ{qUh(i zBNHAY*X-eV^vlmJ?zrnPL#v@kqoGnXpbt;Qv`jgpgokhv0`}phKppVLU?K|2!-paC z5v8!_8-C!SjEJp##O&~4bvnAeP1w;xshOP~cUUuRv+mOCaB{d8$=zY+9&>hKcwCbR zRIx6sis<#i(QL;Wjw#_t2t@I(HG|zHYYKb|rgpVGfH^Vm2Ymp-Ji;)%ER8>wy^JZ> z6wS(y$@#GaURJKPO!hD9D%UA*k2S)JsL4xlGk|0PR)7k!P_uVY=GPRF)usfAf`yJ( zzX*!Qg`QZ8bWJ>famaR6ps2;zR-CIuK#i3#tBwhwBWw2?x5@c@=w69BAgz_+!*JqMSUZlHmOwCY!cEaW`?_7D^KE1AA2vq=P`O%R;z{8I-chh! z1v_X9 zysEMip$4R0oKYp$WXemlX2{8c7uW3QF>ZWZ0loD=Kb0|gS+2qg5Kko4&Pp?#nS(MN zNvV0atlMQaX<4nL93vAGt(wOiJ}=AF-u;3@TlWlM9Mc%TS`j9R&b;F9@Qu`E`;Ql8 zohn0SCq&QGwn1N}@{9|Flpt`Y!&A#I2kpS1G>8MKf`C$h3$X|_*acR@ZbaxXa_A|n zAuQ3A+FT5}_aKqdo}J-XXi&6K`jWH?FMEl=>UdWB$a$r>BXbU6TAvK%%_b>wV}R_l z$15oL3Bm4=Gg1sz_c?}Pe~`Q5?%wkY$QSpPV(y)^5*ybp@)7uneGGye)GcPx0nK#! zRINu*g!E2Tuck4Wg&6v+jm@U^!P_`Je50o~lMcHm2&})}h8HubH1V)0zNjiujh{HG z7>P9KB8*tSU+N_S)h0ahWGk+ zWZL{HM+8bErzm_Dp0j1_oX**DjV2J9E>1Ee#|M_X<}tIgp)Fk&J=6NlB}JH^j1V@%RpDB zhpes@cFW#hDU&{-5moW#pE43uo6qt7>qSljRDKEFF7SV&%-y0j-G#9b5Q@X+H%JD1Nfg$^Zk0`s`Yr}07Ce8thZnX{B|$}3Ktj0)YntS zo|1GqdStOov0TYRk;6=pJ}(cPFJEmI2hKUKSp)Al+Bt7mJ5Nb3FqGx_e&b?}QjZ1wIpM0|@ERuj1#2HBhi%T)w7T;!U6N9{~P zzw@dC&KOGe+|T2qKDAblZoCfRSqwF`h@8xCfQul&&bX4ntwo}5*KaoB4HqSiS8jE+ zm$C|RuAdWz1YSKpc;)cpo^IdMX%4sR-kB0H@+voWq&x;}R*ypszf7)|0 zigTZpN(OA8;7UOK+!>)c#XH4_d3|f&Gz@WgAtw8Y7PE#ISzd1KKz4_tygb}{yqMnh zvgUw>B>}KJcvdwfV=;Z!k(Den1hD2jOYuT_&#N81*yPzx4i3Hewc!LDR_URrIX5pk z(c(E$!sx*PC)wx_I}0>u=Rg+DJhetGDd1WHVS>^xh(+njckOs5RaGT>yBNj%mPrb0|0V$+@fE$niT zn20^Z)S0e!9e?EX3nJ{rZcZy;$Yqr$*g*rMT`!$s;sVL(dIq42AE;xr-cFfMj%*FGfobIRoa=6ZE(yf|x&J(+5hM_yYX#LJf z&M%>$coB_=lo5q%WZw`YW-XrxXetcXcZxy4SY=+Y!K^T^BW`$keOb(3KnP=6FNp`= zhdrbImQhUo=jX#|&E-YLD6cfqq|-+(A%jDBIqY}ym-7;QUyg?ZYK}^19=U)aiQ;?V zN;}+`X61;-@OJ*rsf07ll$7xe^e%TxW&xrp!^_uA$vdO@CNJszq>>ji0&U0FSax zu6=JJ6FAOO%yMfjPZwLCGug~D+5*-NI})??TnGb}xsoLP`IYhKc)z`Hbbh$3&y3vQ z&7`GqT^_l_NmG{R?K#cd(CK%Z#pcX8cO<*>`oc-M0I<1i_jK;nalzc~V1KzRU@;sl zPHS>TZ_TWqlRafGx7H%eSKBcZcWW>5LXP1@#O-<{Sx{qVj_oRz!>K-J7wz^9FS&kH zyiCRs80e&7$i5mo67zW6*C;hWFN=YXcv|W%?&{I^LcbN~)y``86<%^> zj4R9*`LLY>Vpa)Mh^!9_`zSI1avh*MYzT2L$8Pb;xX>q=bIpULgr`<^YcF^(Aw|9X zx%_d2CpdlBMGfZM2YP$Tt_QKBJteecgTip!k~pnyhin?h*4oSR16Lq<0?XawWxB0} zRpo5Hp51Z33|A>FA4^_tV;-y)?jGlia9p&V%|1TPz3?m&g9tEiBqFF!ONvtjve{}n zjdym#|CS+@OHJ)Um*pTiGBs}5aovh;$wYp6WH?^a?WyYel63~pmw`F$g-nsS9(&>z znXKtGZk&T6>jG{T0KU3=L5nMZgQ4p%4oyArTvS%CPu%^$bD&*u4yI-pm-&S(P^s9F z24i<3cJN(oj?N^6;9aSfvW` z_R1g&oFL&+Ko)4f$OvsVr8TG!_=exK1W2cz-?2$Z;q(1@Nihy8Wc$3itQY6~>+|6< z=fW^HvskWKA5#l%%77m)Wtxlj!G-eWobf2EH8Gz34o5itaXyf;$)c7^4t)r> zF?2*hJPZVMbjG5EBYOG1L>s@yvPq8?_(Fj0cP%`pg4e#a)LU@83Z-(VIlB^2l*(93?`CIeLH)g zqP(0A16bVi@hJW7QM4AjJp!6&*h+XY)2dc&qDvO$L!tn21b(hkVp2h~+3sc^F@|lH zS-Ea!e4*{uYg_bwuV}LNqX%(^g^RYRpupmVA}y8HR8`q}56tu}pUo|>16c{vmBn6; zbkT6z{uYSkki{20H`0J2!Q0!tH51q0j8#ta zqd*(m70h41MstEi;Zf+6KfoXe9-`MkiA!KFVoD?NMUUd4pk6`~_IfHWssqTC2C3rM zq|sEgN>gsoEp<|50`|HR;{okPNsxs*kh>3x6ZD>Qf9FbL2q(>f zzUNWmiW8GNwIyTg;41Wq8<299S#j<}wz__+>e<@^BT^<#fkb~`2q?kNV1hE6N8(#d*?r$vj;9Ia^a%#PP0AeC5Ey+{^jgNT^F;iU2Q?p zS?|J`K;c1*Q$eH=nZ}U#CT;*-hz8k2UF8BjL`i2(RN1Xxoedo>Kmkw376T#2F5ZYn8hqPy!1Bhu3EaqUz04_LCrnsP z`cr83PJAlXCi;P={Nj3Gp@vA)#Xk+T{?EzFv7>qm52W!H>`_M9}q0ZdG(j?tyUwy-km z;97KikCaq_uu^vj$@fZiCN0O_3=L-=Wx{czFcmB{TD2=HN@a&uM`V|XZZ0W>J!F)9!8~m%1A-KSo*P~7ryU;s)g7W>kgBDK!ry8{ zFD2=Zz}kq)Y9n zlP$3`q)Mr0s*gNtf(kTD6|n9Fl}$vJZ(3PM8cT56MBQL|GP^R4Xhi%P$&D0m5`~;n zx#nlqoi@A}PsL4=nA#dj^^8nrEm1Ds>id&`L{*mA%yS^S(4I> zg{ikDk~Q1=ga!eD0vC52@3L>>d^|vo15vO_8!ZdH7 zRuGY}+u!ICEQj(SNFT0-xr!xGOA~h!7#UE0>nJglO@xFL^tZd6;f@`WG$3+ekqC9l z8IrOdR`g0ikdh3do%gvCkF<=W;l+gM400a22Sdv7fh1#cq~ zVkNAF#9T7TP%#Yw0IEf6 zAzws=0tGT5F=twy1Y>&7m&}!aAJBVA{q)`cY>|8FtU`#^=;cm_ALzyw;K}{CGk~MDA68?K}^|> zOPR>1Z0cW?Q5Z?pJk8LAf>Gg3bXchoIxQ87;*6{c9=F4l#E`g;8206r$4NR(I73q~ zWAQ%TZ&Lqw;4qfi5x+6f5HYVe&wYGe9Y$J>)(vL@8{ZvR#c`JD^h#sn) zWXP^T;|wK_?}2zSnO*}VqO)=MN5QiG@i8F zjS9Ul3c%6Pt?0-WXhFFclA{C_wNp0+6B?Qu#yoF&F~(Vgn$+k;abl9HyT3YGPrzAT zR#fq$i!VvKVKrPNuJlS}=mwTfTS|#p8?*E~zz#f9P+jfp>N+)o=A=`XhOuVm{w-&n zL+7kYbP<~(C6vHsAoHt|vAvUooP<&>9g-l@z`{EY z5_~7~qKx*Ej5HVzR;-&u5VX3YoRY0d>YoNwO{y``Gew$Z`8fQ3b)8p@Aj%?Fr$(7l z%CXY%1V>M6o z+ov~Q2QYlu;mrZeps4n-0K9LErRV*~uoR+eYEh3&;H9fJbt0SOzZR%*RRTycDjFp% zk(F*WNwnf3G&A)hBZ8e{xg4Q7-!~H9DiR zil<+D5ZP{H+(!W-f`ns&;)=;Wp`e1a;P=_KU=(=SROfGdxn<^N!q3Vq_f^P}!=4}W zW}0VRmRi^*dXFJ~9;&cM7H7>k+DQd#9fmkmb%#QgJWXK_^jqoMU)h*nxydsGZ}*8d zkHUFGT9x6S_Cu1|R)S(EHHf$CVkw+!Kp+>NOS#ijj~*4e|(U1Sss z<`ADe;B!KcNyIp^Nz64Ed+CVjv29vMmzg7dD*)EkAl30GQooBef2C`ZRKUHStRW)J zppf+DfJ<_78J>oPUEw-F6;ITM6Fvk4S#-I76Lk~3%1dZCV~;y);LthEicJP_RvWnu zXf;J$b>h-8b)tzJRYw@)?9ys>aN@S@g^*-OjI7xA{mR6zah#Wl1v!F+#j+Ie&J`9a z;Of^)_Ws-nM}#&pwTA)r7#atpJ~$6MG*eIcl+TfpXY%ng2cOPorU907H~9GR2~=z+ z=ZI7hc*a0B#p)rc=~PR6rHG*9*YuMz1$SK6L3}HlZe2#G%3EDN*$I64uY2${Qc{Ap zK2VRn6#4|i1e5ke40xb%LreUVKt=#2@!ml}n1Y!)oKD8+E*c5$T8DMF3TdII1gwpY zRNOEaD!5zMCzHkTmka-w;m(IWWuFM2tYguVMN#lXmg&NHCWk*TUm?GZMeUZUcTrO& zw>m?Ju8qK@li4PjNZ3~D2-F^5HPW^sqnaI7D`U2tAP0T#Q(;dR4I45NPGTsUkYs29 zzsX$0Ci6bvf-6Y`$r|N^zh}y-hR8DGppFLBgOzYWDjyRE>fDs;rmjn`5$$xxV|Kga zE|e^dUMwz`^OomK@K>GrBafBypDXr-tR^VXGV_gBY`oXbXqa7j9HJa{!$HPhqoPp5+2BMS|Kg*RK`FxpXakp&fK3LjuwY+@6Ecw(L=uD* zu>C2QE*@SOfKaM~{4$O<8*3htJhBluzhi(}`J}!r&x6@67VCo~#0o@N##!LSim*h? z&!H0gpcsGNS+(Q&9v70|Z80aGO`s75GC{j_gBE2|%(rY|ijUT$I_0IrCMBCW{MLo$AZ;d4Zc7y;)Udk{8Um~0%9NXB4LPWwX4sV^%NLXfr>=M*G zEF~`GX+QkG7kNHq;A(IN=7 zLYaqF5iT?uf6~F;UqZ1LaZl8Hyspr-4+T4RP9|G9=4gucdWszwF(F4V)%VN!_I$oS z?6D2qYUMcQEV6y?dPZS7ksPvj_@jPQ)1F4}6Bi34h6VMJ`-vC+XORD&=3LM~`8tSI zM`!DFB%GuS%z>;}sHhu(no+8Fiz{Dmhah`5aaA{Yv9?uBwhmhP1tYu=gv6~)(;$ik ziSX0GqQqEbKk0%ovEf75GLW@tP%kgUPzWAcRcb34S!BS03u!o?H|P8No=Uvsv!1e) zLMwPYE_qnwBDMhHHCjmz%8 zp&n0nT2M+zBBkv?s|t=rl#_P1Np4reYC;QHG+wk2Rk(5a=b zS{pwbByP<^6D&`SS_HL*>O+DQy=bW*R=66k3_2p*SP3JV!O4p7{Fs+3dgY6mG_xRR z{){zj7%H3+-~>D2zfn94b$+?rZ5MNBafHHPSb_l`Mzdjg6$f8gWnn`uvv3+DS!QA3 zM27{z&jot+piYMf1Zi5~RUlH2<8E=@s^yxn;OyOX8Y$(#+)7a;Q!TA{NTS3lh^#lL z6{e*kx}|{Bh%tKEKSKbi^^9~Tt0l&FJ8r{9&Pm)yE4Qycf`j}yAeo<6Cz4lE4#1*99rljx}aUG*q z&?kj67^dQQR#*6m=3im{7pd=I25Fvw$9(S-S8@AtdMmRgcPgS*!V<)TAbc4{8kfG8 z0bqAHZ$8d72wM*}{R?O!N_+V~%6a<;eL_ck-1lnUy4#?c+{WGdJK|=iH@~LILIQMI zi(^8C6dR<5i`Jm5LF3d{!>J6hO)dLRWs# zK}+;aV9%~WOFEFD=VJymn8Mzz-&^-CNH)f@E+s7_nL1}=_P*%2L^SU>hR1Xx{|=D%Amvsh(SziVPtc@}s6lPwf{YY7(5=*iS=$0Oge zJ`2J(Q^!DD-CGK7S-bUzgyuAI3*|>X?%mcmLPUvY=NzI7H&>5*B_&ijj)f7)AjCH_ zHUNNZh9af>M34QCUCZdsWiRw>*2TB>~i)>Uj)w?Q`<}$hoI)x~dfU+0)F+#i1bi_3~<;H;V4KV~G>G|16Ee!*J6nrH2 zbm+~*LdRzW^O4A&1LFbEI2OXJwivKHua$F-45?KvTWV+rqJj)hn~y%o-0qilp+z)f z(g%)AGAdP*s#&|m-6OsrIHx5u&9r(YBqwM|Zy9Re(1^noV2v{JLg zH}sgVif(H9ux;YbuiHTYWfek25~2%qj$>d-;s7rXq`Nu!vXn&1b zHs@iz(KyoDG*|D_(~&n2OlK~Gm775e9v(5pJoLs93yIO06o&$J8L7>_3c1a&qD2@z zE14RRtZb$lQ_V_7=0_x3yS<~GPDw>*90HF(LgJT&$LtqwBC#+)WzzyxV;A z(8a;5fijtojJn1B2Fz0AEd&++c9KtI=Tz*}c9P?{N~#J`R~Vp;PR#>+s$M>~xN4QU z5&<9DnL&`Yol(JWSQmbzD2`qG+=HG73gy*>1`~7y0~k6CM0n`PJOv`G@UoP8<{W_E zax!IPO}r+^+#^xg^g;3bl5h=i9~47?qcCLNxNRJ^<= zVuY)JDkwOnhSq8nG2*fh&;Y5H1qb%RUlQ8xi<2QnCnyK&4mc0Q7T6SNwKxkuctcH@ z4j?A|Af)Mt$;gZ|5JP-V{7fzQwU<~4gxoL@5#v}5Ws>EYVAf=5mbGSijlHD)w#_Ek zN>({w%`+km=|mvz<#jnXe&8u2{CI?0X-u<9l&)IG?Z_c%iMYm@@ijKZ7_7>4l?+Wf zDRR^|VhtlIQ3LtJMz1%CAK3Q*rkcn2F&S(lt6UI;D!7QT6f-d##S-wwT?KuuvdqR2 z%{3V>OXGONkxLTdrg7|MEnpR@g4Ua(y@w@FzEqOhvkT5v|K(}PQ;x$&gbm8e9%-$| z0$}0ydYNFq!adC|=gK+8pb4sF|*@wYIz1s zYz0D^lh{ei;0zP9@>V?#1Df-$q$~Ep!SM~cdAH03EdeWl0v%7oy`V5)%pO#D-r*44 zAg{NB$Ma-*QJkXUxhcTHy2SXz+!_aBJm6WP0E=G*YoXVj@+i{`Qg!E3La;Tm&j)3bIbIF`fWD)CA#yDkPgOwvz_((7;c`i*_ zXakkzR5TYf@3y>OsF}*C5?e?o!6bQE*}i&eU?9T%%lxzq4uP&VBv^jvQ7o9V2^-hV z6K|U;;bcQZdiq7@agF)woP_jRmdC2bR1`itFpWlv3-X*6s-9mWc`=oM)hr!3&CbCE z0T9mpW5zlY(7Vev3S<$FX~>9kc*R3e)N;Bj_@j4q4qawOA)yRqt%nal-sgCq%Y?b! zH3lC2$m5+l`S8UdBEQMmOlQaCv=Qd8qU1^*b(E^9Xp#=HU71#n+3ie1Ror z>1Y;6WC$Qd=3c_o44OP-4o+;mAUVLIjmBsLD%i8lV4#{PH*v8QRGnwYR+>UsMYhtk zYgS|*H8w&?$@Cf?Ch8$S!Sb>rNbq?Qix#?hXS$bug7J z4{FDWdx)XEFE2c%-3RQp6$Nu5Ig9Osr^`eN{1A|MH?L1TQ`c+)Kb!U%3_X#TI`6UM zSj?r{>yFpj@uce~9y9v%?4y=_^5uGe;8DIjL;SM8=kcRFJCT>d(UaEq_daTuiw*>~ zp04F>qu#nmKjcB5o6ScqNZ7`ePXqNqh2H4!=rgb3s2}}V9ybdv4cUJ|FYogtQ(hOzvwJyd;&@bJm#~wm6AY@uWCk;$ zPETeNA2gtWrliPJ9sN_cHW?nzM}_)uCJ({%_9SjS?%^%AE#&DCw42Pmx9pBvHF(M- zS*BiaK>iLTm=L`c1A;-I7G*b#U?-n9IpNx#$pVPs)dQ<0^6d$-k?2k8!;JUiX0n18 z9Kga9@9GnIUZ=a}x*h$RH^s^eJ>Dm~ziXx zF1&X5nD>#|Gkw1swD4vClR!!y8f-d^1Q28+{T3ABlO1L1+&Xy4aF~@D(V+!+b00B^ zzP&PInMaw|nZL3KsZdaRa%x}Q?svD@E_@`dvmLcarWvYpt0s>+)2w8JuXAr~3)3o= z0`f#hLfQuAbaw13Vt#?=#;JZy5>w)Qj!#h5{9-Q*Q^(5-J)EOopT^I#VtHCPuSuNq zf@`0ZzT}zW4B@=pl75r-==m)1dU`b-?E_a?UwAk1*2lx!n$u|xXW9wN9^RlFh{Fr- z?#}x~IbS01enJZ>^h|leWn17Ue6z`-tkA<;GXA(9Hn!uH;ob~`t(N2I&E9P1%}2Mc z2R5R3lOxuYk!Y)|>$!%vU{?i7ppIME#%X}! z|v>v|sZ=HxxE8l!81mOUzOo_O``%5m%M z+Baa*lpSwh;zEVJQ?e%!GZNQWD{js&%pAfEPrmHJ$p=VyR|L%jCm!C9wfLlK9;pjF z+5zU~grkP&9UUx0lQNj=Rd5=vwVc{leoPRSU_8BsJtmS)%&;U@wH$O1RQ3LH_H8m* zknwVvyStCMjkN~0c;}VEu%RYyYFi)W{_Wfu|00G$+-7=pbnP+v2q%~WfOekV->NVpE0yau2Q>k+``%9 zVnjmp#gV72596A8EH$Ar*`VLHJ1PKACgW$PPuthj62$JgKTF_wAZ`YyJmTEP^&fmI z%=yC1N79#P-ZgQZQ{cwg#F>E{!IL_WN9>Bs$qZLpeQytc(!rsKWNexAF&G;(rkPF` zdyyONayh}vU)peI>@s(}`UkKZ2Q}VcmV#0oCGce+fHl@>F4S_*CItbvQ;Ki}`2-qR z_(T1CIMS#VxohMn{3DC>jfgz$`C_b>q9_NLEE0btM3n)7k%~#6W;_ZDwFyGe6%Q3` z5x(BX59)F1^D(*c8VprI#1?SjN2w__p~>|c07=dJ_GAo&4M$F%AWpZ@_(+=&NptEy zHp95-zf`6QOWjy2m<5Jr~&la&eazp%6a@q;zX@e@LVR{{V>MdCQ}WR=9x z(Gf8H;u`lW{P-#&*Iyv4uEUfnF~E@cur5E~V~TDhd+=g(5V#PQdBzqyRy3>uS5OIe zggC1}L!)S9KFyXRWC6}T>ByM9vxVTYNn#Pd0gG5dO7e5GXQVL!GYxh^=_Fvpsfi%r zOl+~41!mGG0T><*{$0|gz=FTRj9dEo-z4`k`RAB3p7D1K$20P>P6bZ&WT6u+LsSHV z<-E>%F^7^d!d2WDt!e^+lUss9N+iiAQIcS$W)4)@IbTJP(irrSdeT7!x6T8q;0e@# zd9x2&@IyQ3^F;ZbSRtW)ZNWZosML^25E6$m+2)EQaz_v0 zi#gcymDi~dnj-YX$5hZ(E1$5DPz62NLcVHdRfYkeq76 z!Y*qV33Nq^AWm)~V;Zg+bXb@uBI{1dAZmXjvygxT0Ys)M81o^?$xN%O23RkaZf z&&`@saI23`S=lPvH@N|*bn+ucV+t+8X|aawmXd9bDfpTJ$@rS3rXqE&mD$HYGJ;uk zYFcx1%|jC@H4sV;6OE&n2bvQ-0b$gaz1HWi@gP@v4rp2OYW1jn+-nNFX;M%M;8*bq~$ zuyQ*ouM;E6v(G|kU48F|)f8U()LUfH@V}ut$FVe8bw{ok8GfwBf{MjA>FpJAVU&R3 z2`#C&!*9Bk^)%qms^c=jm>6eYVWVTvS{~N-{MXW@0Ip65cyj%%^H1f|LYjY|E$;n4 zvvgRflnh!5^MQCmWhIJw7@Mp_LmGUH{nPriUamL%1%L|;GY-hl8()X^@^YAYCoOim z^3Fxip3)!JGZ@mcXv~H?cWBgh=8Ic6;c@5bG97*ZnR!2}0H=KyVLI0WEU^-yc(W0l{y*SrGs0Nx*ea>i9?TXZ>H=n@X3Ts-ilLo@|=fY|d+ z`@DvT!xMPnWF>CNOFo$~`2*V?U^E2)dpOF+`oy6#Z|CD>lFY2@Gp`7_BL;57h*kzl z3T0H+)HK)_#SJY`p@I3$P{w%Tl$;Oai^xYC>Ts!F%8NEb=yb-%IbzqP)Rm)V&x&1g;vO1!FIjk5^ov&P)r`cXvsEwQ#aF7y zzek`t&5R?^y*=H=i-ri0P-x0VRYcrQloG^4{lZ8X^6U%d5`%GL`rv03tZ~qUxOf$!-VLFzP#W}JX|2{Kn+UGNMoLm*NVs7@7k;gN-EPAEh8t& zbyV8it-+I(5VhcH7-#6=#d>o0q9?p`aB+9wLW(B9=(b((Hb_pubc;7_FP=FTIgv;= zq&G8+9kDKdxY(TV`Z~6}&oe{4Tu^?-eIn(^PSS|>jx=Mc$z(1u`NoJa1W?v!dN@nR zaCBrbJ_K@`8uo1b%!GRk|EX2FZ#@(8l|Q9s>+-?>zF__9LfPaG=(_ z@DB&?jF+0s$z^DcWAdUhSH#G#K3qF9Ic!jD%FoO)(z;-i7_*9AZ5&>tLzx4Z9u)P& zQr!BZpH-K3G<7kZdB6X)-JLzyHu3@z{Hs4Dq?v>-J>^Q$0d@oXf?qk35P(FlyQ^9P zO^kXS(_+IZ(ACV66Y-}Hw9M7Gi>$?VK;#5O1esRYDr5QI0d)|h1Ui1|Lp zki^!fppR}PX|4uiCVd*yPXbu{YI{0uk6iDvlO!s z1|?3Q%0JU20rRSHY<;(64Inf2a+``Nkip=EEB`PGys;T(tO{rqpn|TZV-klXkO^U# z=q)fz5#p;iTkJ*&CP9aChQUh63R59O7INV2EL3s~WHhruC)#f{J6i$-`BX@h^l|TG z1Okm`L}t&m(!cBQ}Flm~09yn*#}m(FdqxWhKQ;C0=Ve|cgq z+isTzZE&yS5P(PBqa2eNXpm4U1nHwWR$_T%gn zH}1;Po4ddV6`&cQlO{GokbS(hi;1v_DCo1PWkBze+2G~%%#~f2ky-$Ca=hl{y4()I zi_{!P%3g@rJ8J_AGfdumC$P*gkZ{LM3j7%^YqLYrodGk zwth7W#qHn)t%k4gbt|YX%#ajbN>pQ7`=v$Yq+#1>MzF#Zke=@dux3K1jaCv)d__I$ zWIAq-V-UnmhxY3uqZG^PbY@vN@;DBz$2q@nKuWCb=f7_pHG&t*Juo%Zm|wg?CZItY zD~pBDGtjeifM#!ZWlK*H`715O(U7nfVg7MmVI!;jz{uW3%gjbF*_av61hHnGG-_#s zLX3iUuF?*nd6ZU-XWh}wp%^JcK)obw7fBw4B!Gr6@r%qqs3MIdw5XTdOvU|R&aoiJ ze`#r@J#ls7sv^hxjzh%@{g9bno&bi$ZLgjA_d&)X+bb_xl&fdmkrjX|Y?6p;^I|Wr zH1fh2TIoUGtO2q%T8u81b4yIw26Z$~D~paJlpOdQX5u76&k=Db5>?w;E_Z&}_JHW_ zEeA@#%h=Dxe$dI3^Q29tjZsCi343Izvv|P}iaX*^3*?F{o$X%)@ZXjemRt8deo2&Lx z@LC`Y06t1(FVsv!A?%mcG+E0IN)X1hlGPbigI%Y07?Pw!xw8XtT}& zD~AFBj1GxjIHGGpAV`(7*_o-xr7!l;`58Xw%CVQ->~6n9$m18#cRf}^OMn_FtUPTElg$b1BDpaw+n7`^LXYz! zgO@U>A`pMZvD`E0dfJrsg^@FmYmzc1edS06{P-~XD zB1RN%d1w?A+PcZLw=q|IHH*S@Qf*Jbuk6*0x*U{;ea-u=aZO#CDKE|F8a1re+Hnkc z`724xMyvu@sVC?NA(GO-hqk!WX*LBg>hy4Kea`WVx0K5aUk9f?-Y1pVR{|r<)|^tJ zs*}l>QYN4TyOEh1=rZ&Pwfjw$NGYF+_!EwLGzGfbJ@&aPb-j)zTAy z4UCZYR76LPDa`$)-5NL9Mr~<}P@<;ZQNLLl1zTD5a*}diB`pINleYZfcTNgRALkmNqE09=ibCX=Df;vS8#1FJ*b! zg}i{N~&wRxgelz@5xnk~i?d&!>D;cEMJp@8|&0utJ;_`BvU=e7myrB-bX zobAwM*RqnZHJtMUEvb07t1O)2eJQOlTfvMv*vnkp&nOUIMWh#F0`?guAe3uL~z= z=l7%D1B(p9ol#SBZSf)x33-0;Z1>hWb44iVPKDpylbBNUTLAGh{=Y%{_nHX69O zi0k}fcEp&ySFeGSvp^tTbGQwa6b2=i2c*}8HL9!#Jo%QreBo!2xYC&qvChb!ex%&WWnif_>C8Vzg z+wfwVjAX{8@4^eskF|s_G_a?}IM`!!?8o>6FMtLc?BZi*3i*+t^qhgzE%?;VZbm{+ z#q_0_ZZLI`5Vm9s74Fi0%MQRO<0()pQShPgnG6nG#4!a2k=t#<~Hq4`@@N(3US z)75l`m4xNVc0%I1sv zao;8}>GbT&BepewNldsgCovC6H_><%+J+R9@YtA$|EqfIWn!&Ie#qTdz?!9g;>p0H zs`-HjpI!kdm`g(3s)>K_)~U#ZKzmlzZCi(|0OOEt$Px%q@; zU(~axe+*PDY8&(i3-0?oOhodaNXDY>mJ)1z!r~B@VvhWM%%Q}x6+}E#=caJplmOyz zL>8%_xtn#PXK}RNhne=kraq5BNQgu%tM=<$Eum9)bAClVx_5c@L3(sw? zyh*`w$~nAsKZt-qi-(fe+eV!D5jI?7*Cn#j;h$-F(MYNk(Af;^>zYi$rW|}s#9S*r zGG-4PI`9|Q4k~PIJi<`C*uhmXS{~F%WknMyAAt4<#R`J8^93S)27uN*j-4?LG8y5t zG3fIU6cVyxh7HFtP-lL@QiR_OAd~_uvs`?JQn#uf?1?l_S=jT?itUVlTJU}g92?NzuVv6`&WQRuJYRdCTyk(a6x2;if^+ht7ywH zpuKqVMw$@oa#$IENdjaxvR1C!lokn4;hPp#OBHEK65x2-rV|j#pSaE-xMz4XBSUf) zfi@BgK~*~;Ck=|PNKgdY8Rldq{19$?2{DHF*-?4~v%Z9?-ZUwo6))z`$n`Mis?v?~ z50^gH_nbfK)m`GbQJmElgBbVvxZ=ud6KtWaA}2Z)LrUKK=3~i&S>xv}C4$27z!T!R zM5?j45#$=j%0H4+M06Bc&qogJt$nwl@K3`4AtfY0Z%&`@_yA@-8Mj1_9PGQ+T5Awy z_X*;~U|QMhWcYzwB_d2-&NE_aY6j*n$F7ZCdX>xIMX%S2SVd`KgldYhHxsfVq_gB} zqX-e@c(`9*-*N#t4qyIP&-cJMXi*HNImS(w#d)8?qF%e_gMi9zDsQrt8{U_gH^HPl zH==Jf@Nn*Tec@jvLaucfmH8zm5>+|L&&YgvItK3-@DD7OLn$`Q`rE1;P796w*B)$y ztuDYlMz^gBX^t_#&CUTOcVnm9niX1LEnLNiX9AKZ8xK&DyDCas5MB~OmVwMwS?2f{ zjAvo80AQDHVZABY;@R;{NQu5k`74p_jgt^xos^+#>D!d}F^tvlB|YBB%<+|VvI8^U z`bQ?`bjUGRezw?H{=a}p)k9;igHukg05sQlp~f_A76HHfA*y*nLJYtCjQ_tZ*XNTj z!Qg2b)GMnMYDK$wR>G3oE(ic4ckfYkpGyy6SecWaw=l5HACdeUi$w6XveIdL2$8cO zM-V$AWQJg8963iZR^v3J(KI0`*h3X3nanEo18qeGQ>0g5IdY#~W7)X$uJ(<}U@U_b z>}0{z;zN~uYC%7_-?!;8be%p3zK4org8_#CH`bcozq$LktcM^IX%mfMruSVJG^jvV z*nW1dJ$X4#QC4Qt+=QJrr6T3&d+y-N-(0x-^-&t^NO#|PtE%*@@&=Xp-Um_Te@jMx z8!RgEmH2Yne#k+nECb ze0G1pPovC@cJS);9FDvjY7ocB1^;`gB{tQ zx#MU%yYOrfpLWAN;menYyAux(;C5q<{Jqe>esE8~Q(}k}0y~Y%I$Iw@AUz+pGk=p_^K>+eISCY6j{1&c$YI1$lX%II z5GbjQJt6}t`J-q<%TYRg?Pj_^oj&rWv2w1!>JOGEOS(4TNXt4tZyR~^aZ`ikYMbxk z;f^frv^#kf#4~B=xwsyZ0(7frGkNB95vIn?6`AmBOcrW2x_BS*p8vGi?1y`J;rN_e zVAnRA`^6}q|9Uxad4Q)~UDSk^Jsk0nEXH6ks|E#nDu#W4Og8p03!<%7*-;8XigrWa za1mD17C4g%m2^_5iZOs{W`2lql+&OnjjhX9XbYDvK*-(WCreCO!820L`o^7dvW3}x zxvPKi`{I$jD9L6db!FhlrEyquU1y61cU;MVNb)N=?c!k`j%E{I9iPO<%RG#Yzr2VWpj9Eb-}Xmk+r?!x2c_ z#gq*$Nb9o`w>+4OI@qZxMJCk6a%EfVAyDZF5$w@L%Q3MOrGsDDCCK|f3~=El z%)9-H8~$9F!I z9;)$&O1Lb&0OG6)^B;jHAfwv(EBba);u7^7teMb_P_XqM+ znq!vTM~+t%)dZ5r&M6O%HHu-sdH}p!Y%H%CCs>LA>MM0gv5{*Vz~oDskU0K}ec_-Q{Dq$IK=Cs;c6e3}Kc z5bHLoQW4t$RsEDow8)ktf#aIT``S>Z7OAnHboH!=g~V*0z9%hod;e`_Pj)2te7-fY zOjx$x#nw%0HoRAa^x`+6h9NC@<&G{`22E5Crx(#La4VkeVJp}eRwAUORTvSWtTMSt z^rj$c;a$TnA3aJ~oOsI_Pn#`X;AuvX$1Tt%>YYwbegK7K*`u|Wdj5igfKbSbDsDi* zM%qjh;lzdhFV={O_F{jmhXE5dqDyR@NI(g%wxxazV`0%LMthMCCYW9(paOk%kJt)H zEF={{&wj?z&J~Wy`J)cQucN3{gBTv8%5bYoLLTgwnHvCauzR@d1vk8u*j4#@mXlwO zY+`Q&-h)8GM@sZez;v$1scqz4~9ri*F-f~ttgO$!fssH_^ z@!YqcD~BvbI9}vmEgrvs13_qmm;4V|G|7WPpH2Fr`hlsMTT_bB zQa}`$Nh;VoxDW(2hA8JCa*Luk>ZC=p5=yx;jr2ImIfzYGVg=3D-1Wq9-0a^!To$uZ zAg7$ar%WF7%2k;4^}iS7yWD>0hqVW1G63D@6|-u?9>m#DivLRtx@Z+smiPU`i6IXn zrUilL_UmBfVT;vCRPkb#GLb$0g!mU~MvwfD(r!zC;vp6}t^^;<-cz>z%k`c^DA%Gy zXMV{j0xv!v`8!qtoQ`qT5FUgaTt!`Q3@Io7fEAc&5rOhj5T2~Ra+X=Cm=*^PP0)}D z+fmP0kM|vUsfEX#3Nzi)n3Tm9k)_g3(!VfgYx}c$?C5^^$k~3L2E*mB*=g%FJ9NXY z*Jb#Bwiyjl$OO0NFd`6&V0p-z$Fz)zDA*RtJQbX~Rs?w**x()ZvObwZ?z?zb#K@N^ zXybFKsW-P-@PB>ap)2u3>KyOea}6&Un?1ncU}eQAN(O5Fv4{8Ng|js*A9>CT*S~o# z69WZ#@e41)9yZ(tBS$LG)}fXaawZQ=LOUUuBbp?k6`_F zY3-c*nPHsed2Foh;y+3pw&*+u!?R1khtttSY}aTJV_ zOstGQ=yPY4{TSPzpK}I-|L0XN10Ft<6`ZD>ku{}Y769+kO&kMXagnuAX6CRWDN>_d zQ5R`(DQEwMU@e&)9!y0mN_MGpTB!t2w;wMjA=9zar)IOuYQ+`!I9kQOr0S|zh_$Aa zlBZU0?|dF_WfXkP9SE6(PV2p`DqMr9-iP^z3nwRya0clah8RM>c$i;&l5*jnNb?FY zMTs%GK4w{6W^2bFY6N)H3SR8n)eFTZn6iMixz78-YQL`}MAOUcXv8NUyvYDz=@=K- zv=_YM=$x&s*tNk~Atc~H#SByhc8Q6(;G;(TGOxs5oL-psWsJ(0v4&&S$--cq9*DUy znJr6zRo^-R;f!PXWo&dvW4z{MGpB1<_mCL$IxF(^JwDs>dXGFA6ac>HNTrll-w zn65y7T3sCWWTM!Rgd$~Ro;1jKVO(AP6!)a(N8(aCBon$l!)v{31jl|@->hz*RgOjfIAB^a`q z2;4$#x<-r4BUdf37_Jumr4=u6x#RLZ7w^4(A9vyYB(9TrnJmxgFODle5iAqhY+>-z2^cUs&&-I}ZXxmM;|UBcFjlckT)152>K?{4l@cCC4~GU31J|w_4HO+9NQ?x z#jwGwik-qj1>=}?&h$byB*UyU_$qtcV_#K3W_~24D6;D}knH!|s>0K%z3lSQ=fT(W zEM1%7oXy5vmn_qAcNq_}%v44jgQOcyS^LCf{`7u1JkuWwVvie}5>;H!Wnxk4uQ-V| zo8)6&<(+~-Ds3o{$a_W=S1r?r3tUQQ9xdhHd0td5omgA6jMpO;Nt0w6VbUPQCA@hnEqf6K|nzM{+uM8|%n+3Z}`^A(bC51F}chQnkiEE9tORfTAG|LB$ z6uD06WfyLz*la#(XTF=4f?S`J&al&X6wo>D7J zJsBIGpSei6S{;~7xOXh~hSdc!Z+eOIwk4Km+N9GM^&8!qPLj2n_h{bnZUydXuCgpD zlmvW>%L0MdL}B*@AX{lEEst!P!N`-`WXZ@P4cs{3YkRpCScnEf+e}2zj6Z?mgSY zrJgKgYYikMRS|xZB&xLBCOr1WO^zoe$%}HqTx0MJ#n72H2#E41lo)y z$;^$As&6MYIK|jv0*;l8CUT>FIK|W$=b)#VYAA4Gf$5tTh3H#uY9&Q!5AL{)7=vLn z<7&S*&t)w0LH&o_p_~CnHSIjp%NtlmIp1qhOXiy`*Q$3t-y|~F=X7#7fD8yOwR4jD~+nV+?*6(dwSdx?>!T z*yMHQGR?>u7JJdgWW&YA``pSvphMlceWlDy!OgiQyK+2eD>`BKrMaHu~1l`l_$Xd!9sE0W+-%vR2CteY{j5&l`s#9ZP7P z|Bu=8b2rYaIn%IWbIIm1At*QAWU8+@kcaT%*~#)7*RkVpW)PD~-vqiD-@k5pesM}m zydFWTX788VQ(qWBSI$^E*&x#V(%l2jXHC`!L1|0vvTtB0Mw73viY$(~ zi3=bo5<0`i`4MO}k$Hz0ygj5rvo~W3)flH+3{=TsaOamxalDXV8 zI9$J-S<(eGbi@zHEt%uR8J-{&2eUo{K%h^Q&xrAJ^hvkP-(GU}r{hSN(Fw@*!TUO4 z6wPbK4)kzGH%rp?8rw(qc(y8VsIwC6zl}?11(+(rlxC-tcIXKBif6u%Rq?^u)M&-$ zJrrB}*6C@xoTb$jGqwJioW$nRHV|@&{;VxbNf4a3AmHYZ83nBZ3?f%#mlFQC(20EVvY?*0oL2l&o<3_)1sjV%uG7MLWFQHo_~nB~%c>j&Ob43pz^sSJ92Q7X zLP*Ios8&sqV1{qn09mVBOYF^#^bIYaYWUx=VNR>OgXR0d&*| zQ{-Sp!Wu8`zZxWFt;d$WjV4tYnYZZFJzH?4`ptNm)s%Y@IkY*i)cZv9!f}N;D}tF)l$d?;WC;>9<}v0VMvvj}?!O^3jUm5D+en*8 zy3IiuFU!{}u=SGrrFGZfip*{*T&F2U0aZ{kX=W+c^@$5OK;t5zV?X1or-7Q4L8m_q zYrCKiD@@vO%EKh+rd&mlXD>nJuIHDoh_p>Bt@ou+wtgH8GGK1a>5ir-J91b+fS9@% zU=tVSF2oHH-&`_KU@%&^7P|PS))tMx?e})~a4GAQ3rs2hj>8;Hcm+N_HTRW^@jYk*#r&OMlZ*M{~)HlY3CuuB4 z#W3*pR}ftPgT!;?7T_}mbN!3g1GOq_G8l%%XnC9OZB1{63!`QvHDo%@o*vqroEZ<9 zbq?s`{z@!gjW3ZcE_xxirLBJ*4o+OE=T39~Bmp828BE9&IPAevXk@`kZHANB2wQ3~ zenp&c=>JU0o^D^zPOq^h8^7ET#^w6!uyDBpW+?_>>`9o2;QFEiz0oss6~UMfH3^_m z@+%t$&e-DXF%9h&Tg|J&@yJ`7e(H+py=PtOhFqkZnn-q(Kpam?AGiPUw~fu9#i&LB zRc-1jhKpu0%htNVm?$VMWc6~oiAh31fl*ksQxBzJ+2j#!GO2m>qUl_a#AAx(`y07- znyx{x^rnCL9=wpLaKfd(rLq;{-qQV-Wd$P zC$=cGLN-2eQpq{^M<3_sv2uK-1+DTjn_@3sM>bpp^l};13QKCOS7wr= zXqE|sNlbN=B$FJjiCm?Pk~388_u6dKMpvm#X&hwA@lmkOx`2s|E}J!a?q3)Rt}lj< zWI%|PL18F3B{2|Yx8;W~-txPYICU8-RvSmmj2R5L>GghO(u|j8TANvS=m18i8}^@_ zBMQSxCeI;|)5wg4sQYSTBoN^UfJE5=pm_yF6KR-WWtXQhb~9gPd7GdrdZy%tJXc7K zkUab(lD-H!Z<)u+k^QwiQY(Io=K4c048%*bUh!nG_3AQ=4Q~VJM=}nXb^zW~7DOjO zB>HIi82zOww$s^QdkfgNk5B9F^8<s*kwF0xE zj@p?(eN-vu-Y=GdGA^r14|YKdNG6T92L5OMi&rirjdA`OFfPSLd)`j=M>eG&n&IlI zq96_q2FHs5V|8N5pPQHK(;J0n#d>p(_NH^XkE-a%=^V&hhzuCHG2{cRV^(F zX^(+W(7IodAaxW(GG|dBjm05Cn>rJ@6i0nj*O(@G`^$l;G#NpStq>ixvvcE^z~Wb- zKoYw8NB~J327!RZ^hA-+?1=$=k<3*NqG+tRda&$6BtCvcM!2|pF;d7*CHK+2&H!HoDpUCH%(+jtisx@p!aacp}$cVI-EPjoXAbNM)2VXADZ+B=bfKbd-<`*cjY=IFQ6TS%Z2zS)AWA#tkHX z_eRDApTPJ*rckpHteuli6D*GdY|80-WHE@2ms}KoyfGY@%|GdlZ*(K?Av@rTno(&1 z8a)izaY8!MQYUSEZPSUC6^>OQ^@b9bnb<)X8MZYjt71U7*=}+Nht~zZ+!L)UFgFCF zqx+F(ya2QflTdOK495}T{H7vwY1~4db)OKiGb3yUrp4Z+U$n5;(&^yIhXDPp=RoUS zr_sw5({s?0<>-t#K9Dt?bXTDe3F99CeP9>u&308sUbrj-^joreAzH=kw~B{UPy~B{ z5{@e_`b;yp6VCM-OOS8oFSy#WSSV8v8dSD&>EfX3`kFMfQP#EDc^eiZ7-o#@f)8Phe4HNjJ;mjOk;+mhMLff!D3z zMk^CQX!uS(j%p|^eQhMNG9#PRDmqY9O0i~nEsUM0R_EXFri76PBa$8J3hC5~2(o00 zEKNM378bAb6B3~LgY5=7Mij#o&nS3b>DG)06%>l@VhUkvewEd-^Sg_>XwPi!)!*s8 z1UbI&YVFU{;y3TuOUO${Yo{e?^Da6D=*(AB1$;%u&P+!JSI3YlfTj%4li?eCkZHa0 z!eC0|nnf#O1hss_f1?2H@23;Mf=TyI2@ImcB?%5-nS>iLY36O%8anO5{8fw_wH6ll z$j)yK6_=aQFR#*RJGgzcn5MiDB0;UYa`We+({)uFJ|pYEfKO(g_y)t_5~#Reg%lvJsV}-e_opM!8pSEW@u2rK|FYBRHmx6TExT*1Z9lbyi6cRczXf+ zIBn!FbU7KxOd7J6G&nOL-t{{%lChwet6ONIwKm;g5dyg*?dN5H3=zVz-@vdlYjegt z<~SiN*g>3H?BuE3-i2;IPj~Arh+cqiu6M~RmLkU#ze`rEP(+5C(pxOtrAabKDxaB4 ztx2)xYP@Qg#HuzYO{|ks>!0b3vXCwr@Qsy{E`Kx7We)*rjN?a0F5QJo z1rcQ}B;##JeiQH4$bBrvQo~5;pHu`DF!M$5YxK1gPMf?y`Qw#;r@sYY9mZjTWu8!>!U-R<|##ztaMJqhCtMz!6%J! zBH>9)Hux|3==?&uK@24cPnsqI1tHXZ7%biv!)JZ(_b}e(cbDm{%X~b>8pGgOTl|+$ z-Dp2%BW(7*?2=b|X?h5!&QgpI5gyL*%Q|D?DKRT6K4Zs-__`d2O!fR47cCoo>NIvW zYwUrD!ZNVJHD)D1A^H-SQW*)8R{sW(Yx43OUk`IA2d=zj6PLZ9ajxg;#5@vf%HiT1 zRg_p;`aQoZeOoe7=PyT)fgw9hs0ZNn@TT>Gd1P3_C!an{T&Cl}UAlR~EKjbZ^^YE0 z|4v-QmyAirnPR!RkcFTY!#SyHwP8bSTQ(z4Wg37Z!`@_oSuW|imxa*N=iQ+hP9Z5>0G-e!RN^QpbH04Bb_7y0V57mqK+|`W-@Cd_TOUsd!llv>mpj_Bg7v zYdsYME+ToEijQPn3?7BRbDb}JWPZ(E_o3L0OL`WBkt+hTv1_fEK*eLWa?lWl)|Uo} z-;lWxVD-P&7X-4s?Y1h?IKXo7dR)(--S~D zu@R=J=Fst0hGGuOTqjwX#(|=wGPPNsv=OifJtUE##V~Vfs;Ve6O{ITHj1^pNjE?q% z$vJC62Ul0~=Wv;q5N~f__(Rr>nID1f~)Bj31S$7>x10@9LMG>xKQ1Bii*QbNWQQwqy1OoF{`BVq!Xvl$aeIF}orKISJd@ZB=^VRH8` zM2tnIz_}BjUTg#EVU5SwbR}RgE3m&^^QWWgzg^?gdEHqE%aR;?$s3p1C$AxVukE8L zb(!uQuEYQBcXDk@xG{Sj~yxDNcL(I0(em~lg6cs$GIp(VJ4jMyYyWc z92SN}cA0pqP2;EKg>V?5Ze^Uu3=%OTsD%!NU)vW(=7$2gyMB#~vxNz)i+kKCWt^tV zgy@%ETNlhwh#b?cgyRKdUX}27z`$_$NuWLe>;wx~lL8U|r3jZv7Z~M3P6V>}Dy-j? z4h%T6&y+(_;3O#%lS7d(ck)8;&UhJt88^qv1c<05F<V?&THRVu&?jk&XzUnsL%o{0FnCI6iET4B)Z=*VeW7N?ii zt7mF4Qg)NVngYqBZdc!m>HH<0fkuq#Ga{tT2vT^GUQ24B>LC|3-NooV>w382G^YO1d<&s)X<6=h1C`(@f%(ea)hclA$x>FVl z3U7aGL4b%4$*Ap*`I+ywd9U+3V$p4G#rWgYL<|Y68Z#~wMl6l`e389qYl|^JC|9SY zxPwQMS2(^0Zip&b15yEo=i4gKD7QhIs#xBHPpYEfZ?X`EN+DmHRdc9`Duo}{qr;b$ z-;bv+zMLVhg1U%;`P%r7gprtSTj5iIIg2smV$VIy#H74M-(5BFQO(ZK)@=i*r|8<; z=v3vQMfLgT$8SE8r4EkP=_4BXUVo?d_urhLhi#J@Q^W)$B6<^6)1BaPSmcc1!^l>L zhD|_TJx9dw(3fCiEA0uSX=94hiP|vjkf1!=NtLJf%UsqL<7vG=&W_wtAr#es@WPCP zM9`~0L0xT%N9oNAlUN^$nQ_3?#>JvfF%jkewha!qG-Ujzx2>c!To!-*m8?vD>h%0Q zas1$;Mk8Y4vFGQ^hFkaYPx-H$=yuNu(?-Uh-Q)z$)DqL#LmAINWVm88v~rwYqyb?# zw8pKWl2#Db_&Ac(F_j!PHG0A?EqpTzHOS8)eL7TXZqAi{I=?ALgXt~>$iaN&`$3f@ zHq23QF4d|UJtr}SOE;AT#8u{Z9u#1B?l{!(k@NE(@1EX2eg5N9PXOUzpB$_D$}yHt zcd#g49{>Kx3Edw#{_x|U|KXg@-|wIF_ZN;I{J^=BU+*}w7cnjTmqt+iGe=z9zYy4` z-(Q|yI6BfpF& zXTe*?3F-YED7ssg923Rd491tJ@Gywl`hF?0Y-d?akdK@)%>PsKd@?RG{&m{_ChD$L2&mTBm6{{R1_VmOPSnggqm)ucD zq&ac+%j^B0pFV!z5ipN`e}DPJW$^Wb!I(f4Al=8`Wrw_wuncufw9_|2yra}e%_2VBU51UO~skM|FbAdX(+;3!YS`uXF*r$jvR6t2&W zEf()59*yb|zh68Z6OTVU{0ARn@!@k%n5eqR(06s=F0v1ji2|dCvqU+ZmZu4P`brEw zy?^|~>9~!{yDvXqUpVXW_4)4E1G{)w%991>>=BdK_dK!2_t;&LtUI5{`CWl`$wKVMesg2?LEAE{OddM z*;xZv(M7L)^6m`RwBm}Y#m z&8gNndjIG~jPWwV#m_8_%j1XphfmBJ9PvDH!8S)n^HdJcbAGa^GR=e%6e|`7mCr4j1L2%mNcMkFS{H#@07drh+Kfe6Q z2>edhiOb9H@3;o;Il-7i86WmSrz<7>Kcrbn48^brLf&2+;;byP^Mw3Sbxie2L#8Za zKItoM_mOWL*~=ZgabZs7XuAJG|8&n)M0&nw2yn#E=g)WFd>jT- zxc~OT>G99+Jm`gI-7?ubcfH&_e89~=x$>FOn3cXDfwhk>uh;tG&Wv}1#gO!7)%S4+ zU+;Apvp&ZoKE8f@d3bnv$GOtKy?l7S2j+QOA1S}TdwqW45_XcjsCCe?0&G`R;e-5Z0c%FE4jFzHC?jrb>KHza7u{W)M%pMWZa9vK zjg5iJ3PAUY?-}~cS6&+|*3XP#rmsh@cgD+m=WYcdG50ey;qM>x&l?UVGM(xv667YPTU``R^^eSlz85^#CNDO|D?Q5pu9BN7ktooj#4FBsR0)Kt_>Y;E5 z{q>WBnAngzkA0=&NV8|oKW35TROwHx5!{y&mB1Mw-nW>O7*h+n125z{&`;+y=c?|65r}v-P=@2gW zKh8doxHI_i@r9AX#jn4e;21FMPC*}?vDgkVN}zqca|AZ<=wr=5+}p}N#g#zVBv_0p8thOMa{pNujma^ZHCNjl{N=p0l|w3 zvas-WbCBp)#+Fl35x}*o6@{PzGA7>4U3&rpf$SS!qeV+A+mfIViB)Pp;Ig*6knmU% zd&0jDA$el2hJ;53e{yT~gXb1(T>6xsK5+BEjQr)99TGB}>rK4aCb@&P9-fyMJKMY-+r3jfH1FStFX{Xg!1H!jW#ju_+lg`EpKr1w1X z$DI;SqT#6a_RPl1-}{}~tg;XJ-NId?r6J>Ozlq7vTT)G{mBR*{%QlAB_36Kz;cXBs z{j0Olf+D$C{g7qStK;o_k*CbGz;%@=Rl5vSIEuoh@nP*C8wItKG)@RilN1kCNIO(C z=EQ>n%;ZZv^M#i_E+=Bw4Ism#$G z#Fmq;iJFV`1nUBl;HE>y^8MjNWWvE#!CMwq4NGT2V#^i(N{pZ9L$c{^HG0EuT!_K# zfMFZJ{KbsulEw8ft(_|ly*g~eb%@@HBy8&P+bzT>qH53 z{$dO`m2QoG64Q9OjY=`{yD^!V`q>A_T+iB`F1WPN731PnzGPiwC(Wd7rmGfC(2=1f z7j7M#QaTE1Q-}7Z$hCRcI%SQjA}usyAxkMHR7|~+n4+SPz8%?P?v(J{kNq-O#Gnx_UpN0+ka^o{1CMK` z1E=u@sq3!Q!yY5o=gP zF&2p+=4(u-UCK9OW$Ro9Z9{Q`aD=TfQn98gdx@B>RK_4n^(6~r3ZcNklf7t)qqHWF-u0#0_eUc})f?lZaT@m`bdMyg#x+ZJ1FyJas9;E1b3s`Jmr57B?>XvefBinYXP|WPLd?*_q|A+h+Z8v298ZYh>979B=uuN3z zw~e$jg=d+muO^Ok=DfE-|;s zp<+~6`i;qsHvC^BG+~OXR!w3jWZ&>AP=^|f4 zLvCp;0J|Pp=`t*c-!J2(@EDX{{5lo|;-ZRr+h)57t;@L9N3abfuVc76!Xl5$nyQO# z4LIIXSD(jME<0Bg#*Z3}gqT(}UQISlC0<@P7m`4x_u|mcLo6$&j?Iqi17 z@oJQA|Asmaj2EMePToolFp<*}h7NN3tq-l+xY>at8Wi;#C zWYJ7!tNM$4GP|g>ueC9Xb0H~)L`9(Tw*HNBV2zJ(GO1Z-3M$Po9r`rnYENQFD$LtY zWGc+Bq)tu2BRA=GxXgapyz$~!1;nKPdsW94W})Wiqq=##y*?_`4}gv|BN7(0uNZkpDAk)k0QM(?+Q@{Z(Vkjn#T#4TiMWW*4kN8X48SQN|p3TB;9c z%&Tp~)7-pK^=mZVFvkoxmX4Q_m7+|mNi>?$Zck>u9-QvgN3-cG3NvEXO>xG~P?oT6 z&#Z35?3g%wtBf%s@ih)=i|jh^#AS43X=n5(A|q=D(t%mWrnVveD6$Caw#=?uFM^Jg zVL5pb)70T4pu)a}ll-*!@K!&Q!n*t|68{Tg@h?qvf~R3Nx$f4H93$Qpw_dPaq*?{3 zYG)Q&NzElekp)~cv@Bm&Jv_r>=!ML#*O0tiwrM$AVRam6iUt@nYf?pVpsN8jQgSWe z)2hQu!pvnNt(-sx4dSrM#cYL)VI6kVk%=9s&G}R8;s*b(UGgvS*}KZonhNRH=`W49 z^YgaI3*?d&TQ5uqZAe}k1skvYlvz=eG#25m1&xu8D5dbYdC1OpwXQhGvZ8d%!>0CF z;)tW8lCD&}>S_TI$gXo5e3C-V=qX;LSc7Tkh-Y$nabc{H8+0f~){?*Yd~^1HesaE| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_b.bmp b/winboard/bitmaps/icon_b.bmp new file mode 100644 index 0000000000000000000000000000000000000000..152809da7e0caa33439f66974ac071611c6be770 GIT binary patch literal 190 zcmXZVAr8Vo6a>)OmV}TB1OgPP#32wHOq<|21Kgk&fb`#lo0JAs#}U{gtgP7dGn?%s z@6UI0xpqjYSO+R+28JIXv?-E|e-xvtQHo%xf-PC?XO8V*-3Z%1aQswghCQv(xSW8S m2Yw#%8e!g42g%zYSsU&Pov_lWJgM%!T&mfeI@2>v#`^~#noSn~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_b.ico b/winboard/bitmaps/icon_b.ico new file mode 100644 index 0000000000000000000000000000000000000000..8555e722399adb9da78980d130124039bb93bd45 GIT binary patch literal 1086 zcmcJNzfQw25Ql$hkizDQDHCKuj9ppUJ_U0h1VkRqkCKtGV}}a!o$a_GEexPu^xfI# z`xnbnrG>g~A(K@lJz~3V8TTK!U+_Jd54KS8neCn^7U|9ph?8p$29pzd=eh_9z(yIw0p0zQ+Ud?b&<6q_c8t%c#4K+v)`^-Vw7)R+n z6FyZz&0jj$gwWFJ8QxM$)8FsQW=0tQvh@5LC;VatC;fQ#y4)(-ncQqmEZXneyP2W literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_o.ico b/winboard/bitmaps/icon_o.ico new file mode 100644 index 0000000000000000000000000000000000000000..e3051fd02f1164aa97f6d9a4726102cc669cb796 GIT binary patch literal 326 zcmchRu?@mN3`H*tL7kG44PYC#z?mc|>7Yjf7YvXJAt9kuC}oN(qEnQ6_y}Ekp7p*Z zyRez=YGpUK?WxKO$pym9>?hVy^H*u(PBjk+8m* zT@H{KO9$S}y_tDCyL$&XWGKrFYC{K{GnQq~_$Sl%%ndY0RD|QtEQLrmK7_C#)3Bl_ zr#PaAyz7x4b&;QC$giJ}-%e0G^raZ&Qj|`L9;EQ7d>2(;k)ax9RW)>DjNK4p2pYUN z!ObafaS7a2z(jy6BJGKLh$e7B(Im{^zUFWr3%F(pCy&H2I&y$c;|QQLBj&)tB4G&} zDptUWf~Ol1(;zN{_f81UqYz%FA-oZ*ICl5Gx-iRP*!KdSiI5oR`AG1fO~V4G>6P+c zEzs)~a}tw(o3C3F?e?w28@HjB`-Qgxtt*K#J`4XT$Fy?sTMb@Fwi?KpP?dHAHM}iJ zS>o0m7qxmSXjkM(+46OR)ioO%%$w>bj{?iqQKZjX+_t2ZG}LpOW{IbXy8CDn3+po1 n;wjfh(iVM@^}3tuT0;^uP}piU%f0OIn9|C=#jlP2pT6^NnbpSS literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_ow.ico b/winboard/bitmaps/icon_ow.ico new file mode 100644 index 0000000000000000000000000000000000000000..5ba56316a16a8f985b96904d30edc04e86a81312 GIT binary patch literal 1086 zcmc&yJ5Izf6dZ3>N@=K&DA=ul4r(N{oPsNG3*r-S1h_&@KwQvs0gBL3y0pY$2DMuUTykD6PYVCx_9OSMb&q%;9G_x!GO`;*WJh$hl8i-# z=iEx3Hh=mYF-$is9ZZ0o4BV>P4m5G?EF4y5G&}zrN~|Yd2d;k&q#i4ZEF%VQ)?&q(!W&F z+8RY8hh>@q<>pCSKdiHkz4}dC@v{%Dq*BH(6bi4t;x~@Ip5M}0pdQcCYk_S#xv87n el$d()d*8-WWUXB$MozW&w~twuW9#rw|M?#%VSXn7 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_w.bmp b/winboard/bitmaps/icon_w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c1a7c03faffdc10dcc9952e9f07504b53924a1ed GIT binary patch literal 190 zcmXZVu?@m76a>(3T%@3I!2nK4NkVX~gUBrUwP7Gs`vzwm_&47^*Xx<&B`1`L l0HuN375J^G({A+IeZ4+@MByds+Kb#5eAcn~=R$kR`2)z*JeIYnPPis8BKro7jQ{vH^?|8svh44G>i*sSpx@&ksUM!2q1~ z?w`)Z0Y)!`35F^SFjdYZNG-$vQ0dcu8_97Qc}L_$GO91Hbj-eBuGTy*c5LQnxw7%S okXuIv$G9x`s-?BDPc}Z2-8^7;gE<|5t_0XBb#5=K@$A2+H&$>wuK)l5 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/icon_whi.ico b/winboard/bitmaps/icon_whi.ico new file mode 100644 index 0000000000000000000000000000000000000000..fd7b2dbad95a0c12cb780e9ae290185b29967a7e GIT binary patch literal 1086 zcmc&yJ5Izf5Pc>qr8HDX6l^M>gBl4fr{D_Qg7^d+0d7KE&~pKb&{4Xy#A=5(9`7bw zP(Z_Mo;}a=dvO+UI6&7OK<&x_XWYB)u<%bF-|_51&xl*X@mH*FMy6FnCZgU-GL{vd zdnre@KmQ4=?hZEM`L z6s}6Dwiz!4g_khA`ZHc6X*VlpgZg?~ZWE`=_oi+eWqPa-gxhzff!~NU#SNhd<_|2pnIozn-9XuHCAiGEl6Uae|o4*f`KQ4vn`CufkF7bKM&Tg=s008`Bb6V`Is5P}YCdt%s+T zuZsW1E-*gnoPpy3i{{sK-Ckr|_bc(mm6LJwzioW0`I*%|J*fXpV?WWq?_BEFx%hvr z{*veRA|Ga}%LON*_0US=9Z@LOP)MeQO}NV zFP`JmZ~4(3>pxET+#c)pn6n*MUE@hkvuN?1a`ew!uR8Oa{T^euj^#~LqW!Rhanqmyti%Ovt$8K2v*$TC}8Xs*Xi*nn{-%X!OW zEEvP1{s^89~#l0O8kv}kY-kWZkOnDN2UJMKI!mp z@pO=U%|qUg2Hr;L=rZ%KoF@%Q@AG%GCr-Xg+&BwXM=Ly=5e1CuV1$F^-Fn9z=N|Jh zh#Z&&!Tw|Rw`XC3I{cc1pDDBQ!e7~?E-)SktbZ66zU#mzFcClY!Y%(xytVM-bhL>PH%z+Oyu~U|r&G~)=6~VOJPre&q3|Y^= z6Qw)!OTMiAVR%}t58Y|SGhQ|x%YKn_Tk+VfnFMS6<^SRt9~T}=J@`Id^Q}Mr>HI~l L>SrwZ{6+o&hV2#c literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k108w.bmp b/winboard/bitmaps/k108w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4fa8e67f49d26797206483bb68357201d2945ee4 GIT binary patch literal 1790 zcmd6n&27Ul427u{Xl`vc$hA|{K=0iohi+hxrXf0jMo4ct7-rw2L=#a97%0*pMCjln zEs1~D+xzk$Ca-wDKo3omB(rDuKOd{!!9t~|DmCP2w(Ijr?(NWa{*2gmG&If(c3hcm zk*Af5aawsYmZ7a*DsqACck5i!vji>POED^Xw%=d*)ar?r*?y%lM#(rkkCi9qp|Ydw zjlCUAnCm@VjsV$@6U+!1+9Vkl$LiCbbNENDpMrB~do%p; zCI(yt!Dbee_TvmWPmhv6f4$#0jV-PpFuvunax0zxg#7onHr`-{gCQau7ZLsw9$l}h zvYr`Y2Tm9#ir+Mzk>tqvMHi1<;jm_DTos;svW!En|DhbWm;U$%G2(Vr&!g#iSMt-WdhRR#rJf1R z5mnzUrqPJtO>e@pGI(OtA3x#(!&Z1sa#$Qz1lOI6PwV=hto~H zGS68&#^TAiBJ|RcQB`=SJXAiABhl)g$>>`6L_QN2ZE_|*H;&i%(DG?Oy>j}(S!H$4 zcJK@yB3)#x0((Bcs%tUyYx_@FIWA n`AS`MT(7#@^ki&)y;}Yk&A;P~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k116s.bmp b/winboard/bitmaps/k116s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5fce825b28bf656700ae1edd4f7b5e4ad5ad7ff6 GIT binary patch literal 1918 zcmd6nF^=0X5Jjm7SQZJS96+$z96^O)1?h8_4Uj^`CgQ?{n_zvNEoHdaGFOn{3&@=c zL6iT75^ci>QUpPE08)JXL-Lan_386>Ycy7`EEmze z5_YCkSCgLxW@~nM9%$a4nX*q%eN;5*oZoqlW^O!lM$LBnd297Pj{+ENAjr!rwdf(q}&AlLOzm{1eK|j zUEqTJLS>P%&gz*ny`jomRg@Pc^e6JtI@C$v;&{!KUp46Whvq8(q^`sG=+JRj%0JPF z_RsftEM`CP{+XxX{W)xZlP$qZ>RdUs84sWka)W_M!VOhquJn*37TtP2U2md3vvFtQ z1NHvF*e?_?tzcz=;M;m&=LG#c0+>1Qmp!JD3L2ts(>c<44kqw?-H1@|7TrXQ>0g$Q$#@eG&#v$Ah3fe_F5jyMeG~6RAHF;pOie*VuJud znjyxr=8=-9Ps!iD|M(EpzM}nt=T~{U&?)~6|Id&1yaVAw6A?a*jm95He z@?lVTu!-#4FpQ*W;D`>LbLd3I(6e8edFVLU79#(xx^#(KH2_-DRhdqNY59J|R>$U2 z0A0Am&9+ANY$>@ktmJ%l^DQa?_U4&P0d|sx6|EX3rm16dLjJIg3fBBiie&Q4YO(qJ zG(C=T^DQItKt7#kndyZPJ=4V?y<1~pdMx_OJ(ooUqocfHmS7wA&uq4l;&YjpD{Q3} zBeKHFN`yDhgE5G#VoiG5jBQT}fu2*1%W)2B=Nv0rhg!=Gi;ZyOIO%qE!{^GbSj{w$ zOJ(SwW{EA_HWmXa!!*iv-G#-igRw2%<8mr2-5H{FEPOB~I^K`W%o@A0jV}u@zT=Yzq8H7{ev+$>2+s;cg`|_~c;oNywV-5WLFpKH|s* zJL;b0VULXZD@%4IeB74o;5V$)$g}+nnbd4=+SNU<=hz6D)Et{wBAR36E;OvB;^Q8X my`c-ffP+fl_VyM#zP&E4e4ASR{{(mOU z+P7CCq#G$~=bQ0(JTuOI`TFfmBXYp+CpAT}577U3tIsPCK9rOapGqd>FM!QW zGiaDw%nO2VMu8i1WPQc3k|Kr^CRBQi5X1R|2}c4*Td;MhZaqN>U7!)g;$^~EGCIuc zGjx!T1@oh_rDEdIRBWJ^HqE6S_L~q~ELn&BAg*MZr&$gMFO1JOV(4ndH|$-l)%Ys5 zSGF(hMn~9HF^`hLRIx#0uFgR}kWl)Q0-yw}+yu`Uyaa&&E5@uxt?*_CdrEEhPnpA( z6w5SDm|$pSf+F2)Z0XY4lWxp*GsDsY4Vgvz6AkPW-+!^UC7+!p>Ih!s)^e zW@VBoU29kNC=Gtx(c0Xpow8_4_Tc%Ztbb5DWx-IB*)NBeHkb)R_gn4mO7>W=?om`- zX0k|GTeANC*27=T9%TE9ncI6FXJZa8=1z{Y?LlUH&s1b4F&~ViEXOR)&n7Un`E0^w z8(D(P=)8@)qn$4Kqw_8tPR4O7J#Rp37{A}M^h2)4h`Bo*I_PjS;h{-!@J*VIyB7Ct zUTZnq*(?oeG=?Gf0dMlmdJMR&qpnS8y6`@j*U-7NvI+C=!MuYGA1K))IlD9=7}Jb# z>r=$lks;=-#~CvjW6o<6=48;J`_*6aT_Q`47iwjgg@`s2DcEs$#o}>ipW4OK;hGId ziO9tt>v6?QxMEB1$ES8Ui=rZC`Hl;{?2#PO^pwdrlCZGDjZ}Hz?3uhQ`R}|q?{ns}D`_ee4CqYgVI9YU0eb>if?Un%(u6b^!34Ls zIAaD+W2v#<-bd{j|A0lj7Pa<}mlC02i4HnL(@0h0LHASqjcJrmL~& zWZ0Zw>bJ`cFETocHKvmSFt{*_K9-ez)O5+OUCH0M@1yoEYjxntxzvlEk`E!=GN!rK z1mpJ*@XtBaU&I6fb?8c+V&0O$hl4}l$}GT+3~iVh9x{-@clh2?%cHl;(VYkIDnnn^ zE--Amr^@TjWr$*nhJ*h{XqTqffz;u%>w`w CfG;rs literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k21w.bmp b/winboard/bitmaps/k21w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ea0ad5080dd86150a5802b768dec65ef492e7015 GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKy@If#WkPX5h@c;jRApQZye;9u-d|;?R!4DWL c7!EKE0A|6t&6`27EU!xItlh8H5-4HraM8!l);@QF~)hUZg0H+%?XZ}@)_XwG9G L{tm@3Hqd+kYK=!u literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k25w.bmp b/winboard/bitmaps/k25w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bcc798679ad53fba579ec0d743eac06d3b03a74f GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd*I@If#WkPX5h@c;jR5N-hDhW`zJ80>*qzTpQ0 oKMMW;*cN1N=Y!*?;`;$Nu4u zzXxRD^xyw~fBdk2@Z*cN1N=Y!F);r4b3pRP zANz+8y8h#jKR~gc2V{PHs{d5+gq6|a1S`Xg3mgp*7r1~}$RXlIs=+f`6g-1CS461MLF<9x+=C literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k29w.bmp b/winboard/bitmaps/k29w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9bea2c59d44221ba8a8644f82636e0a3b8781463 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q352d@If#WkPX5h@c;jR5dHzj2l#*dV_^L82Mhke t!0_V(14G3F1_p}*3=9&;7$gRg`(cpqt;y_b(KK#9(ZoeE?+dP%{7k literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k33o.bmp b/winboard/bitmaps/k33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ef6bd2a4db9b9e06bfe5cf7b5e0fc97e0ba5b902 GIT binary patch literal 326 zcmZwCy$!-J5C!0b6hWe301AtaDTqWt#|%t@%m$3WC>bS@(jqxsBKhaxyO#!(lb%2O z>??e^UCTo2oYzy%aYK{a8D3f}KPM>($gOwlutH?9|CSeeZ`s=fmM+WDedzjU7!5g%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@up#sZW(eKDP!ASo zV6X?%1?&)-{|AIlV2054|G@M=s5%(^=L7qEkiMV%Km0-TCq@T#5dDSGK^R28V07RH z(@YCcY1RNR|BIB4I7t5YBjxuX`j3>3Jc$1POaDKZ{(B!n|FehC|Ld{Sf8?=?qxl;E D_n&A} literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k33w.bmp b/winboard/bitmaps/k33w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..465875694daeefffbfeb0bbf0621e6b69c2ede76 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dur_#l`GCHj0a12*sf5B~ok{r~^SL+F3@ Q5c+>Tb{eJ*Lmt)N028%bYybcN literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k37o.bmp b/winboard/bitmaps/k37o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..34b1702c72ed1647b44fbf00ab5f1ba4261c86a7 GIT binary patch literal 358 zcmZ|Lp$@_@5C-5D!~_XQB#LBD0SRbc1C1+U1c5;EC|KTr$C#WX!L*}rKfUWEK*BEj z`|a-1i7i%ZYouoBEK{Z$Yx1H@>;^f#wBv9A;2`ApUxUs4l_s*EqY;-h7Axz;5su=< zIB}0WSE)ds=dZwzF%dPf9yPXK-f+ex^&g$~Dn;r2vz2@8{Za9EXc!MH(q4p9Pioy^ J(J}x3Ki=`+rHKFl literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k37s.bmp b/winboard/bitmaps/k37s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d5ac9acafb0b9eadb8b10c88dd18479f37ed0c7d GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZMN7$N)v4Dw)k z1_pL8ZNvB+Of&z3@C_K!!F>7u$5GTl)&Hwt_zV*N)BnE{ME_(6U;)ve7y_6ofbG)?BM|b@ydsW literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k37w.bmp b/winboard/bitmaps/k37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5be036f34fe3e480a4d744837e0359af35172f32 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U|b_#l`GCH9cnm^yTM?BM|bso8a@ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k40o.bmp b/winboard/bitmaps/k40o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..52b02a314a34756efe7c74ffb86fe811d04c0b7d GIT binary patch literal 382 zcmajbKMKMy6bA6r#lg{CS5HyJ-7B?&;OYg0Ucm!Mia0rWf?~zdp>9zc`}yT1Vg<#( z%P%i4e@LdYBvR61_M=ur$`>Z2-}BL7-GyraT(Fn%cN;a9`UyKRgB6#!iEAvxTqWWh zrMOW8Kab|aA#BR~8lIQa2hTs!8U__L)U>Q{LCyT_UUGvXtXqjS;?(W8cYVkxy87zw U0d#oR%Od3Gp!wtWN8SJ16St(fF#rGn literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k40s.bmp b/winboard/bitmaps/k40s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5965e8c0240d1cef03e1c72a1a4b8e91aec61b88 GIT binary patch literal 382 zcmZ?rtz%>W13Mt8frJ?uAQBEhN|+mhnSk;j3RG{=WfC&tZ@O)9wF1K*XWyVfqXh*y@4$|HU)Z+5_pojsFka2hzV7 zL>Tme^cNs44y6Aum@&u$=@$%23_zy?>1-(N38sHAOljZ;sb>^%0IC1Yreu&0r2qU} kbbdaN{?ESXLp_N8zX<9t7=0JYe+;F+6QB>`kcWgD04AG_kpKVy literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k40w.bmp b/winboard/bitmaps/k40w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..098cc61167a239bef48e837209f2785bdb3a2ce4 GIT binary patch literal 382 zcmbV|O$vY@5Jt5Y?dk|^J4HtOu2dea?$7~*F5s>f(e#Z!5E29l&!@~ciuS`Og&QsA z=7AKx&_QeI$xvr_5D|mft>1kKrz==BDD112wEF?M6@XfrY*h7ug- z+{-|4lfPfj`EQq2n==dgl=zwF6rQnQiXJmennbvh$RQ#LQK;WPRJPu8=SuGbIdKha z#HDid?7Mqy0CZ))fvtN*p(C>b-t>T)?EA`@vv;4uEPF!?QTD<{2Ed86UKW8J;tC5f z@ibjAb4GhYek%8msC)ALdF(Y(A#feF+6R`bpks>^bm`62#LU~Waqk*$^xt3izW>h$ D#D=_Z literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k45w.bmp b/winboard/bitmaps/k45w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f6ef58f7cd4c1fe6603a322c97c819f28cb4a8ba GIT binary patch literal 422 zcmaKoF%E+;3`KunU@I#VtX;ZyDpL2}gClf<)ASrUL=V6b7#S$$JEjsKAj;2+{hdVd z^Yw8ErI@BoXAQ8t_J{6r8%{p9B{ z^O>3HY^zn&ME-$z__S6jSP15wPz@0n*8}elQm@LY6 zL+*eJdCWpL_SZW03*eKUd0+PCRt290v$CqeTBES4269wZInupYv97JE5LWN>%TzZ7 y>2Tktxw;~2ILCbrb{Fms`RJNwa^E^^{(TpZDunWp*E#t9{cDBD`yL+e_qX5sAGC7U6aWAK literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k49w.bmp b/winboard/bitmaps/k49w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..985b67592f8437c3473c49f9803bf6313927d424 GIT binary patch literal 454 zcmb`DF%H5o3`KvaL^gVau8eR2kl1^sdhD^7H~|O95i)kDYW!;=q^gC5Fa12lcI?Qv z_7O1aV&~C(emlSuz2SLq?<_}Cs!E$=g(=MO5onlCKtoR9kyn9@vw?zv vtOc2jA12-_!7nb~m42oFgwvk$RB{wGYL32#C5PJMW8>8BJ4^j$-RizyJGR3W literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k54o.bmp b/winboard/bitmaps/k54o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f3e9047ab1f9a6d2ac62e28d805d13fcab7e0520 GIT binary patch literal 494 zcma*kF$%&!5CzbQ7AX`wLRwo9ti*u5_fd!>osD?FZvg<;44lPwff zTrzoV{?6_~=8Ib-&6wdmL`_0P(gu65?zPoH#^NwD7KZ-NN#5ilU8=Dav_e<?j9|m~f78g9iq>}Wa;!`_Wt)e+}D$by0@}NGG+H7Nf zDtBsccEfy3Yx5(ndzdcS=gcj0?4x<5slz!*q462#7JWU$u*}r)UR-a~uY#ji!~Xn^ Qd;F!3LVxgU-^c&*1czQf2><{9 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k54s.bmp b/winboard/bitmaps/k54s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..287d70bd503a58c58c0023403b3de8b1d1a56f55 GIT binary patch literal 494 zcma*ku}T9$5C-7?TyP5|zQDn?wjzWS!GOK*qTLCn*-Fd2N*-amG>g8%hV*ihW&`W3 z|Lm<@6c_&cIOb+%;co9fD&%v+=Or^OsW2ASys->54LVS`$FHwcHSW_y=wyZG{)&I_nLEO hHT9hfa<3E}Lx->8<7iUF_y0LmrN5Yd>pS{iz5x<`7LNb` literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k54w.bmp b/winboard/bitmaps/k54w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0923c9b68eeefe48899ca4f179d62342b2529efa GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nY3;e%i%pd1K;!2kdMK^O@B;Guso)Pv<27??ry zACN{M{Q*eZlR!TJs+R|Wg~uLmK6IYG#he(Hj$kI zU$XA$>z$l)b~W(iEd61>5m`6~slvyT582ZH$bF+<$QAv|+K}kaYFX(O&Cz@W1`g08Ah9r@nE#Uqsi;LTVCm;cvHkOv z)6i}t*AeFy+E+Po`Th)C+9HnDaWONBr3Fh&(&xSkhSd@bdhiN1f8YdP2VVsRjO3_B zNKihH0Q$)6^gg3k#zL^4S$ur;^DqA-jqLEA#ZC^)F$D?ChrbKu-{LqYd(`bqzVEN? J!7lrLm2jQgxjp zbt2d&dZ38kbf8H$Gb^{8&8uticr|7@00WG{2%J$oo`4mzR*;its1MgpEIE!N;c}yW z0hv=TGTlp7e8oq;^>2RDw`qUkFOqAqWB>pF literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k64s.bmp b/winboard/bitmaps/k64s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d257d779e3f64ee2b3c798b115c06baa7e4f091d GIT binary patch literal 574 zcmbV|u};J=42B&l(ScJtuvT%J5!;l;}#E81)&Ur}2#2dnC~ zU4rBPNIBqWRz(UIac`Ez1*k8s`N{Tbob1{S4FV;7&*DouWg;) NGwOq%>RY#$^#SAUE}Z}X literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k72o.bmp b/winboard/bitmaps/k72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1e0ad8f0d27a400752db3558308a8e9e666b7d81 GIT binary patch literal 926 zcmb`Fu}T9$5Qg`1MGC=dwYt`a2wAbR@f~~wTS2n~iVUjQZ&ipgX-Nn_ibb7}8K4V;36s}PHn)mldIR;cD1xJL463Ydj}^kY$Un2Y9ikpX~9-m_BI~0P&%JnvlhxedEOEzMQ8+o#%-G zEvh_c^4MSoouBtpembxg5AhU_{z-Z5Zn1PjeP literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k72s.bmp b/winboard/bitmaps/k72s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2df1e5dd2baeb18c149f02777e9f302f096d88a1 GIT binary patch literal 926 zcmb`FF-yZx6oqdLm_cY(gH{#`rwJocReTPT}Si&xx>G z^}8uI-fwj`(+=PA1g3rGX{2qT&XK=(Uj;ySpFh7$-#D} zJjjGA32 zdoKD6O+wlSJ!=z__Uy*d+RUq~93433vMjk~;ki93@3XaXMVIA*B4r!4<#Ofjjkz^T vT#@*h8PA=ZTW4PIqc$R`!@BrOh9Xpi9KYv_AoGnD; z#Q1-4#~Mo3@C~<&FBspD=j584kt=c{6EOpv-Xaza7xXm%z7aINlXm Mf6Z^@jCFqE2MZHo&j0`b literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k80o.bmp b/winboard/bitmaps/k80o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d9bc797b97838fc7144a2765cd935dd371d410e1 GIT binary patch literal 1022 zcmcJNL2AP=5Jlyt5K0$bX9SDIOW!ggj#t`KTG8md7`|vSTj@J85hkdGc`NqMqVrF3uAB2zflJh>%LRxM)`v} z&&r-Ud9T0F@!WgPf6uTe0<+MMcMFl>+L4DB)HCx1ImpVGiCFU4E%<;=IFSwW8|4GJ zQSQiAIgqK&0LQ`(>@*+212|ahS%5`ZGWQ;d%pGbJKJ7+6z(>kEk>gQylE>s#>oz#U zfLioZx9SHzW8FF&HTe%VSR57nDV^^dJix6ieZQ8P98B%|)})@`F8Ds(3G__FqvPmZ qV%93W!(T7FfuF+3b6(%pW1hV#Yj}pg=KXZkyyV~3qDt}h6Mq3eh`z%B literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k80s.bmp b/winboard/bitmaps/k80s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e5848e4a887f86ae335dc0bd6026a6c0107c6adc GIT binary patch literal 1022 zcmcK2F-yZh7zW@k2HL^W3@!}>yE@jbT@1Jj{sh54P|4CQDGpgg*9`qJ5y5WtFQhnR zjksh8Ip6p0YB~riXyDQ(*Sq)o(%$(+>x#b4a6iGgw8Ifc&*%95=+KM<%y95hN^#gr zKmWT;6@4#6`lv^@Y$rCZXwNvOUE?+VYK=vnb*>Ue*){oCsoF7X66DIKvDZ3f&ep6+ znPa_V&eHDvK~BOPo4M~}&M$OM8y0xSCgwXf5%V`8T^FHJO@B3kaz~>moz5wfbaDxu$ehB9xBiOZ`A@?gssIBL*m)3jX zvNT35=lL4FvesPO`oj zFv?;kjXD+vQ!kbu;MshF>$n(LJz2hkqdCB0X4qKa-AZXOBJWm~Xdv3l{{OvwKX3N^ zM`B^okE$ai3c}H5pQ#s4RNqOVQ8?Q>)Dt556$|!%IO@q*^WGDVRokERB&}YCm-D#4 PeO>RZwb0qx^EW>M1n}cd literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k87o.bmp b/winboard/bitmaps/k87o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..929fa117597c0d5604c106f985fcb9a8e869eef7 GIT binary patch literal 1106 zcmb`GzfQw25XK#Xlz|~2F|cK2WbA|`b`};MfY&HEh#?D7Uny0GyhckNfOPX<`S|X9 zO+$r*_+#nZUoM~TbI$I~?cK4FagF&Baj%h?O!DV=|9Fz(2pJ9@M8u&Z{woirL|v&F zU}cqCaGp3qF&HPB0Xb?*;We}rChV12Qzw4I+O=7TzUP{SGJ82?RIjKLP3yR3k+=Z2 z%1{g@aaUt)p7fmuTV*(vTBpNO`i5(k#9X{k8eWDuUWnI~0|$%pCJPqqop{9xJdk)% z3EqeiQ3GBnufUCR4_+v5!PNo3;MqqLEq)IgD-wq4lTv PAJ>1M?2U1^=U?&%V`D0_ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k87s.bmp b/winboard/bitmaps/k87s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a0131481cda40682f19b45d299c95a0a4d3ee8d8 GIT binary patch literal 1106 zcmb`_v2NQi5C-5=RDeSOGX*jl_L@h~V1z*SE?x2fc>#|aoY;YeECKRL)TGy7(cM)y z4hAp(9cjx$mIM(%;nRt{JCVBk_4^0ub&LBA#(fzTRT{s>`^U>XE)bC+7cEM^0y6$0%q640>O+1qZ&_+m<7R4hxN55E4>nA#_ z;0kWxhRFU5L{0YWYVxAN*_8OaS)aVxwCaRB?M7}n|F}oNwbre}-tGu>(VOW9FzbBsDbQVx@65s5(BxIwq76y@D1wGgJJdYM~Mo=Lt3LW zD14w~l6vCq{o@&GZ(O(Zy?cQ|)AHJ*2f#}W-So`1sk=i3}t$XM7?Rg1c$0^Vn{P-Akg(-Ykk zX6xJKd}>svbr#DpcA%cER{Q82jHk>Ct?A!&Xg8DbYU_HGW zw*%}`djLyNV51XwjxYv$+zA3MEu!FCW(lH)!rF?CmA9h%%6rib7=x?sM7Nbkf$x$( zeq+prar~qF%cG0sny$ivZlw*Va3)c6`GGwy;1Mh!+D(f8-T^b^yYYv_P z&sQ^(QM>HZ6WI$Vt=kpdD_5CWQNKWbP9bVDe^⁢hplXa2N3DRJfIXA*ry|5novA zOvNYCLZqKreJ*_C89R?Yi)Xy?j5nU~|DKKZ9J4+B#UZ~~W&J2fGGaA~8!mSLBB8@x&Nwk12VjH!zCwh8UPa>Njv!ze6E=mh;6nee}{ zN*|o_ZNMB7(b75iV?MZ68|R=1X4?}x$G8Z3MiwkSpM{7r0y?6;)4g!>eC5OW%6pvI ioa52X%mKG~=G0z!>fWAl=MkmPfAMSTs{8E!#{35=D;#YA literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/k95w.bmp b/winboard/bitmaps/k95w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..15a98c86a34c24998faa0ff5152dc4d80cf6d34c GIT binary patch literal 1202 zcmcJNu@S;B3`KtkM>-gRmMP$lo*7tzKADLLJOl$|1WF1{;!BRefukb$PT}QS$nuZ& zhw~i1wtQ|F#~~_IuAjJnS>~8gv9P787O^CNzdy5}vT|Oh1Db(vc5a*XWV~_~L;DBw zJq6fJ$ycwRYyOef*7H#RgZtcr>nU?%`CaDPI3tY^&6ZFg-v=G7ggrD!;wWG(+DFc6 z%qjFn;wYdVbEKe>Xn|ito-F{Aaan)FT{Q95TMC{1m)wWW`_l3Sz+L*l@!_a*m;Ueq zTY!qX&wLfQ&)0^m$-jkK+H+R5nA;I|^(&|3WTS2Mxq41>@NM_vdpkXsJ$&O|&b5x? HE)(+uFFB_8 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n108o.bmp b/winboard/bitmaps/n108o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..773c91b4be65c1ab31f037aeb1815e4aa7ceab9f GIT binary patch literal 1790 zcmd6nF^*F)5QblfL<)*`1Q#?M0>u&(RNR4%hGG|*6pPF%#dez`aFs-_$Tbq}1-zme zB;#S`AN%D!ORMb=mi*+;|Ja`S?d09Z{IWw^%lD1+FQqTK1?Kmne}85Dh0JKz#?0C; zEn@DU^B&oBT`1@ODD0l#on=T>e~yn${B!)!#JBv|=q*#DQ^3TSZ}P^z)R*0yxn(Ob z)_A@{{Dp@p%Wmf>r=H`CS8NHD_1(ahka6lB*b*|1-8FNs8^oabp6H4#ffIO0o4|0? z_?X{%hGWLNyej-6Qd-+3OUe6Oohkn{J@@1>kDXY$#P`myKSPx&YF z5`4gVP4&P|zPDgaHHJBpyRfF3SIS$&BlWHF5==7UbHh=21w92BlE1JH)$nXOyw1u} znEw8p=u^h!%cS0;>bQJmXAJKr4DV$T6@6rH@hCv_*m5wPSeodkmSu^aPrppx7f#=F zftqT1`WnEum9HFlTX|!=8o5_p>?rGRjOB~-@)|7V7WPYxS4&Ozs8Gr=hJi@GFqX^f zsrpVvdi#}OpxkEVK_|rR%I7oxVR9qKPfY4g)oJsYcp+HMOE<6SB-K==yrj-GtXSeH zy~leQnXYk1Bge-%9|#qX`gYE-Pam*-*+063Y-)TA^3>4apZ+_{__w{mF+Ypduf_jY F{1?dZGd%zR literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n108s.bmp b/winboard/bitmaps/n108s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..62691df6866501f1fb03d7e7598d616fa7a8da02 GIT binary patch literal 1790 zcmd7RKaSKe6bA6;jYJAS<^Zb=C5J!>qUR2C018TqMahbSk|S^xqb<0G5f?CBkfJf) z`(tNfA+Z(0l1KB)=W(9jB(L9`ACZg^pD!@q+H~aPdO-f+vCb=8;mITC%yS<}uKjZd zsfK8>`!5gkb+i6ujs0$H zhYc|OH(4*{_sV|~YcK!g&yw4pPc+D}t=CJn_8Pt!WWDw}5RGO;M6Vj3`0>;A0Wn=T zn%`S4#P3>9gX&DZU=JlXtdYzCwv3yznVAmeeu(UbN{i}NA}Pc_u?C0EftN` zo%nXJ{OrW*R7~7bmv&#nU7Rh~2KFHz?C+`*^PFK(Ic literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n108w.bmp b/winboard/bitmaps/n108w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..248dff02dde4fb986dbc3a1ee1590fea6f7a2b6d GIT binary patch literal 1790 zcmd6n%}vBG5QQBqksB$&SE?Y0JDqT#1E;hUK>;Zt#~?)+-u&ffq}5&!VkBGp`AwWR zV`tyqx5p&$g83Qa!$y-DSs$T)J?VJB3J(q<;&H?*Yk$t8xJjwn`v>FlOYHmme)o6^ z?~e>y624#LCFqe?(|fCL3rvv*UGRL0Jf8Kf&~)atBQvPauPvD&<&?<`39n!?Bs`}E z*F>VSU+hh0KzPKt5hjFlZw7>il-!WB8*+9-#QP&Zn?dKs3_7Q(hIj7OuwDNo2xm8TPzgQa&ZbC&0Y^TEEC2)U(?Xu!lsvl?k zt%*Ooys&FLax-wcSH|m2pF}S^YXj@fdINx#FAYF-&Z3vVjF!KoSDf9MKiM2Y{Vr*~ oaF9Y|C#8*-$X@Z)Acvcn*Xo(2U2H7CjbBd literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n116o.bmp b/winboard/bitmaps/n116o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..61e037de94f10cb9ddc8047ef8d14e10b9aa3353 GIT binary patch literal 1918 zcmdUuy^hmB6oqXfkpgKgI*L`MrChqLGKe1WEJ&2VBnna}R`?Nkl|+k_a$mu#6x%x8 zAgnpuKYPa(Qd)MTvF_({=la~4@w@k5=Y@)d^2$J6sDKVv`>Yd zMM)fm;V1-|L{yem$t0rZd_5cXXDqEUx2kgp_R|K*m$S*3L(v=6BQrl5T0->)-YIv% z^!$Xl;rzZd?1qTQ+6|DXL_wn?WLsc zd#c~D!iR2rkPg9BxPQCsbX$y%6v*itYdJbyW4-Lr^&CG_M0cp??wUi|P0LU8!~8@! zFzAP=JK7D?Q9loL;~v?q!uKL%ybCMc1Mv&D^D9YL|8O^6Q91dGF)y7P>DPYYAw%k= mtMFsQCBB7RpW)YtE5151biErhyj(Xc&25Czat6odg{L@8aFZAu*=SOw{Gha4hB3df?6BBigABgk-(Ysl~g&8TkmBmg*RvpOJA8gb|DJm#6@UMX_|JFVU*Q+))>PH{L7QHL zXD<&0dOg!K-EQ*dwX5Phe>LU!Q@->2FZo;FZ{l0)CjP*Q3CsLCxNmcPIzH-piTeia z?F-u53ogD=FR=I=$G}=~Qcd(V?|+FiF&tQ=_k!vhi(~E%-)QbxhNvvSJ;}H1!2C(t z#s-PFM`?o>6s~N(QI2abs937(zl^tbaFdO9|FD7vxLMpC`VmS6eSMb-k6Rr z>k>C|c+NLROD}$(neQiCV}7QWc!$3*o1HJ5$Ud!HY3doy`Lzx!jr#M<{ UoF7;JHqP|%1^6!c<)@eD|F4xpBLDyZ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n116w.bmp b/winboard/bitmaps/n116w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a6299b1bd8db2936ebfe298122d1e3e93d9c41a1 GIT binary patch literal 1918 zcmd6mK~4iP3`H|^F&ot32HCRY1Po%&U0ARt;bw!l0tc8QlwGAFjO}lyGp;H&EE*|Q z-h3zicGAbE*FNdE=ighNFE+c>>GucLKew1y{6(e=B9gfnyNlpG?4^$2XJ?$s|FEC$ z=l#XsA%Enbphu>lpK!GRtB)pQtN(=OpnHQn-V1Ve!{85cgWxxQ1{mN?- zN`+=+y&pb%Tr%g*e2xs&d6@}@oCks-DKxNYS$S8mV_!=aCWPeP29jc$@9(pS<@(}dM+4QPr zrCiO|8WOn#os1{!=W?+B40AcqXT-DJ6|+6CH8eY01B2Qs?y{ Nu%Y>P^7<~Be*r5q@5TTC literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n129o.bmp b/winboard/bitmaps/n129o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..857a82fe46a4ee18a38e641942c274623bf0925e GIT binary patch literal 2642 zcmds&&#Kih5XMsr7F0YN*T$twpTL59H@=9zfV8DTm-i9wtF(0CW7y)tZN!BIL&y1- zq`9ZUbteYW!};}_Nxqq;ee?F+Bg5l0USHzubQY#y{tWMbd@S<;5}GssfMzyY;r~7( z13WCW_)8n!1>m*(duG+LKg8abU9Mx{zN|Wl9Zpz(!sZh;ov`(UEho%10uMESP1#n( zn!;9#?#R5oX1f;Qr~@^eF*TPlHJ2E=P;-fm0BR($wgEK~*=Xvp>B!6z3%Y4{5pUi+ zwV<00Y%>qhg={)7_q;+NT?%YzdUPR10$X857qaQVCYTV&rURQ{Mc}xAi$2fD(1jRD z>^qiTsvp_sU+BWu6dYMkF2vk{K?%EMT`hj+4xm#uDw~jvjT9lU6&dE?ZbpXAu$DRd z2H*=R7IuNpB|A0EK6hbXPPU&ts|IqIP7!8i0k(j6n;yl(pG zYe&^fY+Anhy5*!%H@VWkGIge#x6(_N6w6G~#n|2zn}$XC?yTE3Qg_0!F0iYM#QN|aKj?-N_66XEa?uF+?&viTj;lY+t;<2%y{NHCB zs92K%-V(3^JnKJa&4F+Gb-$i37ze=C{Uz4RYTNaWSUk`jvB7jjZsQ}_WV)ix^DkH` zbSdjLEGXQt{(!|(Hl&mjS$$)daw041{fI_yRR4Co;F%UrZa^2{B_6UDQcF zlQTBbO_fs5x`hpN{DT-}_=%C0zQNu*kI zw|oWm3;}X{)oAN^%#3w;4`x2=G8>q+^1U97U4!X)TGD;Oc8`dIShvp)MaBJGWalvMX`La3r&@vhxkogoU-H(}bU**f=iPHy2^UmV~+G zS$D_+wq&c(Hq!+mC+xMt2JJ9iZ>--lF8!k8Qv~yOB@4=MpB9}Q3@zWvqUdIn)L3kk zO(@^OYGH0{3swoM2465IWvyeu2Kq#>rtemr+*5=cfNT$K5_N9J+{|g1P8(NE9I~-l z_GktU*;t|u+jgu)bQacl)#ka2~@}q>Zu;@lyIN5e(*y57fjc)|Q#(SpA zExtX=)U{wANOve=p^y0IPz!M3Up)Tc`HkMLHmh`@O!)xbVqzqp7_??uY44-ewDxwT&>|!=9V)52^(i+PO zvZS@2nYodQxsi&wk&5ljT*Y=~t}lN1j3!`d(8{T9f(|#sbHYt#%;nnKfHlg7N|y$X zVMDyC(~kdMv39{qpEZS1i7hNGn3WM<9@E+c2h`%GGsdMd~VM1?dAe zR7{H`$J!aPO7lUOVSx1`R%wv?;n6SQRFV%BB;T))(1`~sf~^4Odv{K8kdCSbec zR@WXScaG-sWZi#lS$`@QQ0s=1W<19p=)7SsL{f|TjMspD5WTU6hvib<%KYEiH)^(x AdjJ3c literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n21o.bmp b/winboard/bitmaps/n21o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8ae7a73d03627203538e50f939234607e25facfd GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKIxgnSd$Od5$`2YVu5dQ$Q68nwm-peasCO06ZcOr-1EP|aDM#^hWF=ZFg$-hgW>ag3x-esEEsG|c++etH0EiW5FdSgq!SFy3h=q4Bd||F&_`+7f@SEoc!_SF77=Ew=u{@ByA7T~& DC*vB5)20vBp4nrK=20!3kDGW!BD~Q3rPNC{=x7=9!T$pm<0eF&L`3U literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n25o.bmp b/winboard/bitmaps/n25o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ebffd697e5b9b1c4caa64fe94cfa0be5932f91c GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2seN+17pMg`kxTIA4mi7 z&-*_c9=`wCaO?ZehV#{*8;*B>Zg~G0h<|@>`2PDj82|YHzTs#6`G!CB^Bew_+c*51 Q@W0_-I1s;wnhP`^03J0{A^-pY literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n25s.bmp b/winboard/bitmaps/n25s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c4f4ab5e4b59f0e5985031d5295e13d010433bc6 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2seN+17pK~Fy?Le-vGo1 zcpH8`;B9#LfV1Ji2g!yD719kiB%~W2FbD&&al;1|^M(%$>J7gc@*93N_&5A*nBVZ{ UxP8MvhW`!!+=2K#)LfwX0Mcqd#sB~S literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n25w.bmp b/winboard/bitmaps/n25w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..493f9b581cec7fff8ee37b20f0e214cf3262fd08 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd*I@If#WkPX5h@c;jR5N-ft2F8Z}Fx&uS1M$xT zj13PTFg6_c0K^r{4F@=w8y+w~@COF=1`z(izz@cM7~~uNFxWTzWBA|j&mD;0L(K)6 F4*+$CJK+ET literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n29o.bmp b/winboard/bitmaps/n29o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5b787835eba6f2328fcd40f2a990c5094d0303ae GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>*a%1_q1&_5UGwKajo; z#P9!GJpBIO;@0>773Zt}RUF^@uj2mQe--ba0`bp3KfeEk;9q}#{`mF(_m98!pMU)Q b|NO^4`}05kov{D$Z}tBl|B8Y5JHj3S|7B*cN1_q1&4GcT}H!$w_ ze*lOd0PzRL9Up!$?s!zexZ{Nl>qm@7UofH2dKAB=22elW27_|w1(#GF6= eB?$lc$Dsb>zv1~G{~6?e{1*h8ZwSQI2zvloFi|xC literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n29w.bmp b/winboard/bitmaps/n29w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d075211ce38539aa501d533134fd6f4b8c526019 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q352d@If#WkPX5h@c;jR5dHzj3=9_kVYmUvJ^;iI z7%U!sV6ZswfuZ6+1rXZ+u?$1S0~R1=VEFL?ihnRL{`kSb{NoQ8v;X+Vzz@XsKmIBI N|M9OFh`%H30RVZ5N_hYP literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n33o.bmp b/winboard/bitmaps/n33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..267792296adf8ac2bf238babaed4d1d2fcf3de92 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@uu3es-{yB(#{T@nx-Vf$~{|lx6*`Ei=|Ng%pO5X?5 zfB)Z~4-$vb|MuUv2l4;y{|~1B`~Ry4@&DKV`46Vo|Af$s(;@U`c?i9_9zxH-;ZLal E0o2Wj3jhEB literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n33s.bmp b/winboard/bitmaps/n33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..85d2f83f9e83119f5d02bc4ed026d41f05c49896 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@up#sT24*lHK}&=A z4;WDC4^aLO2>qdkK^Ua&fgOW5n3iWS2hmUXp)`8~nE!#XK^-Lifq@|(ME`)(4*nqi z9|nf|PG;x^%*X(d-~dur_#l`GCypwZV3!JHM5vhiCXj^ODs5jB2 zqAd$U_uEm$ev&Gt`WwBw+{cl1SR_=}Kt~)8$p+}FGj&4xH8$)NE4GINTcBjGCTAaW Tc~@n`dn!J2@umLz2krj=;)i!^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n37w.bmp b/winboard/bitmaps/n37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..89d157e4370f4148bfed0a1ed62e15a1141ad396 GIT binary patch literal 358 zcmZ{gF%H5o3`K1ive6@Ss?<|Z#LhK10~5`_%$48}9H2+&$bbmn{*F|Ti1hRPZO2No zKO9wjZL#-I7gAxN2Ob-0g__A$DaBNtjK4XFoGky#Ir5b_?0v7`nVfMMlw@jyO{Pyl xz0=E1tq_hrnG`wl4k`j9)@kUL@Ze42{Q z=7O5;ySTuOtdm-NIJIh=ct5aXXS zBQ7z?nQu=1xg^sc&J<*HIk!Ga!3I4NRBaWQn=(UdZHlw3|C<9PlheAhW4r@jK3xBj zmr5Qj#CtPF$a8ruL7Qd+>($FJVSiIjOr_7!z{u=J87Io;oIVa*^BEOU{nneCeh2Fw kMP|?&_~Hr`F-G7Vi|KMJW(dV(ZU5oyOpms|IDh`@3Al=Qr2qf` literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n40w.bmp b/winboard/bitmaps/n40w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..84eeea199a6ed03ef7745b1066f50c92342c78a3 GIT binary patch literal 382 zcmZwDKMukm6bA4Q8Q5fX>*^7l)VO;k+pWiHZ{XqqYCM393{CO#MMP360x6X#|`pnYg%q)&DDK< E0CHb%8vpfj07U5u-fChi`=-6ObYZ=#zQa9}XTBX|J~BZClPNGJyA?|XgK zfK47Bf8QJ0E|$kYxizEjh-&OBP|{cv+rCtfdR)8!Z~>+J?^@Hql=d6yx3xZhg_i!$ ztIv^m%Ycni<;1{}Caj#<+52c*POX?=2U{wYV2_$Kh_zTbE7WLcpQiC{NypJSWje;s ym~#m2JOMY(7w;K3aJ~a`HiFe`MmJ`QCU=_EKpe{Z6sh=niYD*A8$FMk|MLTG0`=_x literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n45s.bmp b/winboard/bitmaps/n45s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..67752a18bcd01cdb4ab05ddf713efe9019ab4950 GIT binary patch literal 422 zcmZ|LF%E(-6b9hG5@m2;bTX_i#v7<{aqK*(jDv&c@ET$~fL9=L0SJQ(g!;d} z4r*e<>&N@sgwn<8V&KM<^N2O}WuOZivg>PgxF#jTS}SF3?cTp_xM9njnonEb(?D|j zYvS`%ePqr$DiH8H#jXPLg71!8rs_fy=|GFPig{dbQ(e*+9! Bq~ZVo literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n45w.bmp b/winboard/bitmaps/n45w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e200f895b5cfe06c313626fa2f7ec36fb0806d88 GIT binary patch literal 422 zcmZ|LyA8rH5C-7ixJZXLfR=`y3M6{=U<4}2G|Z6=Xc)kV1&k<2fjI7EM3As_{&GG$ zwr;&S2IyGwJmZ*q1Xy9qoW~X;u1UxsA_<~izlT0~!-Cg;effHoJpb6*IqJ+)26jN7 zidq`JjPo4bz!yl4>Yg`CK2ZxAH>zAh;7OkKtvpA5DbJ|NRn!92Y7rt%f;F+>Env%Mz}ixf7>5{}#{d*1Iq zv#StH7G^(YXP6sqI@|V)o-yw?#wbV6q{1he_fx#ECLsra1dn^RWy65)SC$Wd*yZ=T zu&EC|yZ>z&fZ)vey#Y#Rnq^eOnjc^ub{r&j97IpB7JFxoC_D=GBV;Qz;_Bg@iRe5g z&TxtqImN=NzN5?@wn(|U1TK=VfhewkO5AX5k?WV)Lge~ZtkLTKio-9pS-d7cpw@Nr N`zP7NByX+%;|+>;Dfs{Z literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n49s.bmp b/winboard/bitmaps/n49s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7a5200bb4e97caa7460ee2085bff7df371d144de GIT binary patch literal 454 zcmZwDu?_)25C-7??t(%>sio81sdR|mGk64rMkBYSx4I4DHR!ab+r)AH*&PXClezD9 zc6Kt^`QjA8uL-|H#z-SVIM|VGJ4DPg30ZYrOK_QApDbuG|LIujnE%q~{;k#hMJ#D zD^X*~bKew?KttREUGV_4MQhL#Iex01#S%#&I@|H@Rb^|h<8`0U^58~w;a%^K|L@DJ GuUB7a9>ezl literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n49w.bmp b/winboard/bitmaps/n49w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f3f731128578a8b37c0426f64d851d824ceb0c68 GIT binary patch literal 454 zcmZ|LJq`jP5Cz~titXGZ(As(dP3*mcH(5%LwUw=n2jB>7C5c9SZwBK(+2P9oJ51PY z4^DKfFfS0x7EWwq4^DH78TJ?)wN?g3{Pv0iJ=SUW!&_T_SX+)-dcKbD9+TE9eO7Z< z)Z}pi?nw@XsGyKKhy>=C@MSKlUM=FHtfQcc$~Kv^9T}doE#_){F^V|m(0|x5AJIlL e(1bD+?dy9L{APJDclM4so6}^TFD7O^_s2W*Z?)I} literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n54o.bmp b/winboard/bitmaps/n54o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..738c72b0da548dbc3e4f9bcf07fc654e04b742cd GIT binary patch literal 494 zcma*iF>1pw6b4|W1Uhu^&^=na7c!M7bT7F=?$9+w1rJ>cK7y~%BNQ@tXu(&gF~nPN z>O}>iKmU_7bSd<~?~kV^$>{#!I8(7!{N6CjoS904H}Z6qa>1EI3V?*=|KT%F?6^<7 zqcxBHw#t2*ZL&kQ&z`a_dGZ#H_o!gtcFND8MfYWE@#ouA(Oca_bv0n*x^8-mUb(uP zL=X2Ewc%O}79~1ruoq!4L^XQs*;kmNEiKtM^o1VirD%Xc)CfB1#lC0 z@4W~`5DdJ2{LM>9+S|Ji2OTY+*Q}dd4mR;jp3bdKI430|r6k1>|KY$DJN7L+%eh`U z0-ApeIZwZwEq_K6N1%;}>jZ2f=8Jw%t8P@s#tc4a4n@G0efMs{Bi8{B*|o^s0Pd}R z@qWMxX64?P2b{Wh%3~I<3lBiKXFiN5y%^vdv+ih^un~EkZ7*KAkm$TCU&L7ZLOf#S aP4xO6rGDpFdGj*cHkSKNmER%#fA|eTA;_`NGY)};vaT+qs2UW_+fAT*}?Mc-SVhDqAC+? z1v|-(5<2El8nfy(`#~*XMBib-h)d4qhH^D=FS#mnwtyWn?cXes2jp3Ax%#j{<}rfF j?}y_!ij5Q$8}Me(=ga(^VBvxYR=z_z+q4$4ibcwMguKdvV9NLg<~&H+Y_4#H zWk0`}+kll>nENq%JF|ao?k6Xej%$7|8CNAn)kx<*$kX`{va~F(07%I21ONHV$}!g+ zT(D%${9se^RdHGDihVH@BW1skoS3U@f!fD27%_OqhPCg%EF00@Y{k86I%H~>J+h%~ z5QB}6;t%qL$nGyl)+eA<9fHVR0;2QWC8`S~wV^xSfAz}N zqP$)B34|=XTUuwe%6=l)^6q`<8xNc1wG} zYyNX!erGQK94(j0M5ad>k@sr3OwwF+ee*mH2%MKdU!?TDn4qsx9`LAg)iq+Lu2ilL z#AI%gR6V}RzhIMv$8p#$N{0<(y2A5hn)mk~YW#yX_R(jO^GF#o-+4AMXRrBX27Ai30m8!T< znmAu*$ZDL`V0vsAG4D*ea*kaOCK1;1?yYeF-_gm>(25=8PxkY*bm4%n0g7hl6bExV?~M`e$_J?4&)v@JZy` zk-L%oFUBzJOMChumm672(J6*C^m_JfX6Z1FKAkogM;~u$jA2}32$wB}u-+!GKE$e5 z<|KMYo-Q?Oj9#loow0+Gvu3cd%R{<5eMod~jGwjyxy42+iD&-sEcKK7q_N zlX_}6DsqMniY@Z!np&WSXeTaW_R_J$5$Qe!j!UnLD{p+84xhA~;!Zp+LgvHEz}xqn NsxmjCwh#Dod;?tvv_1d; literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n64s.bmp b/winboard/bitmaps/n64s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e0a25e161bc3c309729de2efc6c320fda3408efc GIT binary patch literal 574 zcmbW!Jx;_x3r~c>y&^rmk40KM=^F^IoH`!=g4(wbs4F}PC%R#E4TZt1mFgd8}HCnF% zwg`_0egO^Ye;x5H5`a5(1}>}SGat8VKXR=eMxc446W8zQV?K7=>RKZ4f@`Q7U=qmYoEJOEx1IB) zKZse+^+X@sg9PqqJbxUk>s7xl0M!4qS(PL3jW0jnbMgGTBRs~)O~jH5nNZSXl&FQ$ zDp3W~BAv5ULB@>=l0li7R6%7@GTDuljZ;YefElc+#!QL?pg5;bHa_m2Ens7A>^$c8 sY~vb}#~HBkQOR=F2xYASKDP#vQ^Cflt{ie@sk}}W;x<>_pOwF@Z}Das_y7O^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n72o.bmp b/winboard/bitmaps/n72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..be3f303bb3fb7a182eeb8c135efa6dc99bb05f07 GIT binary patch literal 926 zcmb7?y-EW?6onJh2o_tUmTB$nU9ht89ef3`mO)aa5%LE5DhUDCLfl8tkYd|i(oA63 z>pAyMHq$70;f60K_vg$^u5Vu^BaJJ3ULbE$jz?qF@9_KMndJ!-CPPG+7WVz09CVJ; z-kkTG)0>`i$n^Ld`(tlk9$9jBnZC%l0!P~`O~zYtNuSYo1D}>Oq2^dgz!%=D}b`Sb2(2;vi+=zq C5jFY% literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n72s.bmp b/winboard/bitmaps/n72s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d641b8e9977394da3614da4b2d1e85ec07369d2a GIT binary patch literal 926 zcmb8tu}Z{15C-7M1>8a~mRDU`OG}HxfR&B!;3HU`aFT=*EPVs-Q4CmI=_>@TusyN4 zB4qq$W|M3@6bx+m@@IB;a(h=dFEQzLiTfGGwI2~hn&0C6!?BGC5*czavkbfJ`JZld zomA%@I9?CAJ9H~^eg2y{sNrI$AGt!F*!ohLPBt?~tHD%qMKsG%xW6OWxO3inK^dB`d_hU)=A0awn9E!=5Q$|&X=dRq%}fL1 z@m^|V;4&9u9}#_NO{HgSu8DB`z44#;&>H!5Mvga{qZ!P2AMBpZr^ww}-OS)5HK*`N zW=`N)Zg%k8J1X#HthpZb=iq2-mY4C9cZuZ_@3)GUnRnf|UEX=_N}MvLG1q7Nh z&C{>3Y0oB@!;$8~a5z@8nR{nYHRVP^WIZRwrAOtRYNj2}%5@;~W;3B2+Af{6CL6_- zI}grz$EIAj9G$yj9jq^AAzDzqZaGy?$n)7)rqm!uc{56?9~oC4o!8XzPv@^~X!-l; OY_r^Q0t1~C{O=z%fkK4< literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n80o.bmp b/winboard/bitmaps/n80o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..05b1a33626c2ccfc2b530843f6b9689e2764f2d2 GIT binary patch literal 1022 zcmcK2zfJ-{5C-r&DJ(1qvDRyC39Vrhd!z5*6WH0U2?dSeT1^yQ1%k;n#(M<_1?>@= zGr8ROeY3l;*2X1EemnbTW*4rm+fJfwi0=#ZTi??p)%YCqrzfr-A;QikBJ95D_`m(A ziLK^}J!9h9#bf7Dyo_8#-bUU;-bMb7Tt{v!29?X(nu8^yg>~lmcvl@^VvWxS!er{a zCrqZ!o`nh2=E*jDe;OuR@k~=@Otz*6I6ko1j(r>tX#XHUv*IcywzyQV@Y!8l H@n`=4{RPK9 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n80s.bmp b/winboard/bitmaps/n80s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..873c833d42b06d8e43079a0023c8c844cf2d024d GIT binary patch literal 1022 zcmcK2u};G<5C-5gM#=ypl~_^Jk+EZkfPo!}N9bdK7!p8&v5&y3cw^)hf*4qfx^$>& z?)TaCNo+`1a{J})Id`dYb-lF|*ExTl^1eyikcqkH-;WPu?{R{S6+*yHD_;M%dubed zMem2=6Xo`|J_C%CDurJ8Ip$6u% zcR2nd%5$m~$T9GQs#h2TPnAbhH^?zO+hr4tqxqWGxI->(#qo`6k%jPxnp^RcXMc+y z2KGm>`4oH3dHi_R&xop*WG=63F^-O#;+YfUA(x$a-BRWG{l*NN#ygw5wSL35k(}#Y hv0+MXsN320#g%f6yQg|L6nFekIS;FyBU1i%{{SWa@?ih~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n80w.bmp b/winboard/bitmaps/n80w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ff874d461b6eff528d6f9733a0dcc60ad60c100b GIT binary patch literal 1022 zcmcK1y=}uV5Cvc|EYw*esLd2%kUl^*A~(oN93lhI8yIktBJkzjJyN<9E?k5#rBBbt zA5m}bw-l_s==E9q$LKLc%bWiHbz*>vjn;YxhUG9Bx`S%_F zxcufUX1$7hO2q?wNz$fUl0IFd*kY*BpDjigTY%2a8y1VqSG`Ry&Jhcbny_25+(Jkg zt6rVcwBEyXSHFgUiMiono(}V2Y=oQFd10Q;A8*KcQo%bT*N*00TuxW3L9Os)ZQO8l z`EWyhVs2iXSGuESbI!EASfTkyot&3;kIAHi2yQB3J8L{ivp zDz_Nsdd{8w84xRRV8XX2v-jpsj!(}w2f8NsJixwab}~pb-^KU0+hK1Y;pP$%?q>P_ za;eQytsk8H@IrsYRP)%YDF4mt=uGT7%Iks;p}w=dy`g7e_Slci!*7=R&I@^IUCrd9 zb(u)j`fe!NjPK@KqRnVCFSJ?a2j0F~F?d1!W(3VVefXJo-bY*9gyti(?Y$J-gwIiP zC{+PFdQY6e^lF3GTBG)qHaG(>uSIGa_3EA8K55Kbp28MqI3NbDXw+a|HE$NrRe_wt z!b{pU7T8-9K_0oJ#c2KbWi3+A;Ap21ZS%*mF) zq?DpLhvdY3xB7z9;QCU_Ywkw!UYn5n;n|`r8jmyl_l+l6$=0mn$Jw22>~2nQ?;&?r jtKLT|)8*;9cV5{pHy8wqHJ#=4Hua@9GcKNK*WdgN)J8Y) literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n87s.bmp b/winboard/bitmaps/n87s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..59b715b4f886a1df118fdbadfb7c0c098e09cb60 GIT binary patch literal 1106 zcmcK3F;2rU6b9gDj2a{mUKqNWk&zQLf}MqhYcMhtC5WLTSK$aj9k@oSULb59qL}}G zcA5-`1!2k6*T1jt*-?9YcYiFpR(QR_e#qO1(fk6RKcA+3goK+b#>k!5@L%q9n9=_2 zul|~9OtOC0{_en@xn}NO^PTpbdzj^M?iz3GK0Sx#NAF`h=HVvta0TmIi5#qMq~b7j zeO+=`u|-Y2^c<#^rHeKEiCoT#*kmun9_++$m}8BrIYZngxx`@i25)NdqhHYjhtM3o z4eT9i&|98hpS{dRKRFRuF{iQA`ov+JTrY^<&YDI)S!DBqbcLL@B7x>*NAt39hY&wA zE|XlVcbcp1+*{2*_(75V4!cdtc?wsk8&39a^2)2*HS%?t%)dm)KIaiC&3Q@N#$?>k zy(9-GQrhI+b+#{(2OEmulcRL5DMzDGoQ$t(PhJ@1>On5iW%T3Bojc?vOx8)c-u3=a SUcRFu4ktw6rDzlCKznoEQ!ue|VYZvU*_1CT+h@3d!ZbWa*nZFOlOspva9+B46qp_eyV`-ST s;vC7nacth`iBIY0lwnuGIiJ?yd5z~hoQC6;dcN0T$z;fT_VG7=0gD6|-T(jq literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n95o.bmp b/winboard/bitmaps/n95o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f826a19cafe33136f091dbc9700ce79e7eaeb6ed GIT binary patch literal 1202 zcmcK2KTg9i6bA4>5k&&2D?^c2R(6CXcFw>h7`lL4RiX@4dxYMB6SV5U$Q6oufn+n1 z<;V9uJ54BJgGg?F{^Iz({JFh*Ju39L!S5x;eI5tJf#wf5|9G0lArcNABEnH0u?GJC z%RW`^a{uhk52rp--g0m{(fl_@+pK9@Op|}}yp>N{UaPfF`DnSMW6J%`l>}Gk8woZ$ z6fTQFUov7muqAXy1H87-Qzy9U6^t-fbL{7tCXi`Bqo&(7z)!enDWA7_vBfBKx#g{Zv66ewabUG@kqFPT0d#Ir{7`97xKPaqsZ(3++QU{ B)0qGO literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n95s.bmp b/winboard/bitmaps/n95s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6104c31e8acc4aa8adcbc75f3d2093fc005a0809 GIT binary patch literal 1202 zcmcK3F;2rU6b9hu8r1^`a{|oB*aM(iV&@ES2nL3tr0UR-yKn-d4vbtOh=Db18Bomo z-*cL*^4&f7??ZpE*XcN5D29P&;NBW^3XP`IZk z7vb3*gsA%cr2{Tcl)AxpL|w*x;Bldr z8?qqNaz6MAuDRxn%=>67PMj0j9dfl3H;Bn?k*mFWf!urK?G+r<5ncw#1AJ9nvsY1a z4|f&ZxkR{3v0>Xr%@yQc#ByN28NGDk9`)Z|oJ~uv4eE8Km@0LORNo00NmfdlK=n! literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/n95w.bmp b/winboard/bitmaps/n95w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..68f74889f616fc41041cc4a68c93315df60f672a GIT binary patch literal 1202 zcmcJOy-mbG5QWDW$r)|{$tgu3ERjwU9?O~+!1KTOOO+eXU%37) zAGDYLb36x6 zv~_M(3~bh5k94y-aHW%@$5c!_unBR;!ky=h|2Yg8$H0&T}~s=wKblF;~#p3*-|{5V30aB%*i}H?IG{t?QFKk-MPxXLxYE z492@4u1;7(*3`ufSzkj-*1$bkLk{BP&6T@00+Gh+a>y<)aM6*y@U?C({kMUi(d6Qp ZH-5>UU3+(d+q_%#*ZjURq4@utzX7K2eYgMs literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p108o.bmp b/winboard/bitmaps/p108o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..08fe7305f83ba01f3475f6743fe899c1241ba44e GIT binary patch literal 1790 zcmds#J8Hx*5QgO#k|ITppf;z7AboCUmnfFuW!q}iT1+JXZH8xo$2EK$ok^ulW{rJVl=) ze--uvHqM2E1Ai1=EcmG~J@7Kv$|qiWSNXzAc)E{fOVq76^b`;y>(rCCjF}hKab0HI zwLXu8k#5#e5X#AnQe)9lFQFl5Pu5#J@lmuppZ{yz%3tfcAG%+ZWjsZ{$#@E1WjsIfB;zRh-rTxh=d0`S?zE{lnE1Pve9732PUEoU NNVR_n>-Yah{|5Hwj9UNz literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p108s.bmp b/winboard/bitmaps/p108s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..099f9eea4449d475bca0a415c508a5ef7a24be63 GIT binary patch literal 1790 zcmds#L2AQ53`Ol0(nS|Jg10?I4Bhu8y+W{$Hb?Ohyv!n4(H}`O&JV?#fJ+8scq3W* zlIHtoIW+m4^!ugu>((}HzEA2uf117N4Gc#_VD-%TZfCxlxaM6X>$&XAq36T(JewEq z@96orSUkS-_y-;>pbtNDGXD^M=E?l}4D3BH>#d%)_?c~Cx<3Ek2Bzb4wg$CbXKSFV zJR*Nzc>*g&JPM+GFbW`jFcNkvMnRMdKgUBb#uzIKWj=)IeC2YWOP(E&Vyk2wTp_(f83eh~N)z(oYmz!Pcm zlhpUma%l27>GwnTyPf%B;+l7ntmnKlhn^4D^K4$c zzoX~hV)6LSGqCr-thajF;%Byn>H7SC8<>vI*&5V#ovnec z@`(I>t<8 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p116o.bmp b/winboard/bitmaps/p116o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d9950a32328fdc391cf06621ff2ff5f853bc0e87 GIT binary patch literal 1918 zcmds&F-`+95Jh*{A_YZ`;FeQhM9*z#!9f(1xl#}X*9hVQo6d#h;s3Fn^;!zs1c9(L zYrp+o&-d6-ZtosfowjQ{uMqb+`mWdaH_#t0Q(WK;gH1#jRU7{TCv#o57NMWG#5QkW zo9CaI#pLzTYkkhm@XZ!&UVn+-b-DzX=P&VRn(xu6|CSF)XQz70{1AO=46=rDer*jtRBCyq$PDEXwv z$W*+uvU3%WR-TC2pX{w{YDO;2S#%gyyM>w0RNr%4u@+=I=`9BbO;0iHcZofh;&J5s zzs*a2TRmD>|E3;dpfgU@x2=DBKJEGWAq-rutQQBb*Q2lu!OV1%?r70rSnU=LE*;k? w_W5{<{?okVCpP|ZS?Bv-&G#>x&ervieg0oa_Y*(PRL-(Loy$kj%ZvZdUq`i55dZ)H literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p116s.bmp b/winboard/bitmaps/p116s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7fcf7aac450e6a32e46bc1b17130e6285b770901 GIT binary patch literal 1918 zcmds&Jx;_h5QQBmwxHk$ZaD=;^xTFPlB4A)KEjq;taf{7=p4rW8rYL7$}vWVQ8QGF-HMw>ay4Y?aZt3eCBQp z^z*P{Xu83ckfs-GhH4*dhIQZ-&(8znKszquJ9L$kIevlO1|3-H@67oyTLHCv;kU(n z-%ImWzO3{8nSb<)>$_m1eb-A?@H}t_D`x*tAbUNMVQ8;MG7Re&&pI#o>1V12}Vi8+gZ zpr3~oL(>hmgfzWiGgSLvGpqxzczzxj2ikEN-=V9V%<&8KHt4`oe`d~y*$SxT3%@Pq z`(B&3@@1Xx&-|@lT;By7?W@43`2W8l3`fKc-EP5A!}DY&&+;* k&Fs(2`7`tV@kO?=9@68#kpG9Xmox8gvAU$58~>j_0Y<#q!vFvP literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p129o.bmp b/winboard/bitmaps/p129o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5a3713a05ae205d274f4920c70176111f5d08629 GIT binary patch literal 2642 zcmeH|Jx;_h5QP)AK!Rc$dbgYcOY}6{2PKGNueGbaNVtJZ7g2^c&vxu&Eq){xfy78o zvR~eK#?OxS{^9YeVcg+*i}4&s+qC32c>i=A#s!ED4H40?h(7SY$o6QRu|fAep5l$H z{W{wv6JB%fPq3F%_mJxz6Vr#dw(n+Ij-d_28oG3bF8m!fM44P>ol9){0qcTrDs(|@oGX1NGVw)b115BwATzfS z*#{?5FES#pw>n+cX_1~Nvq^J1!knu$?2>sSq60DObSL7jWTuK$FEnt~^Q-D;bDr-| zVMk@WWL=GMDo&7fJI!UG-^pq{*Vgt~R`ajsJ-?RK9@X~Jo6|iXv5$j=uf;i-8vHYL zOD2u+z#8+}z#-M6x@2zaLMw&N8*fxq<~kd`rIKNB;aC;9*zX$SStxU17X2?7jHcJ; zWVO2J`J_Lrt;SB)R`bPgouPe&FJsf#HJh5aZG}$yHpogg#Ihxes?w_&{p(;wKKJMK Fb>!3`OO32+$5)x_iwjYM^_U-lwp7Gabc8=$IiWOMXfw9T0_(A%%eokYc=$ z(&rbQyuQ6ZB#akck32u?9MS;(%-?@J>bzqjQw9;q+>ESzkF2nCjC)p}`Kf+@4f|#V zMeyQky9Ha?xd-#FmwmO|C(G?+r90Fu< z5HoM%qFfX=ZsVeJBNk}}gY~ARBpz3?EV&n6?U5C!<4O;r+(q{5=$Gi;qC1azBkG~3 z*N6pbX?Ewt2W#s(#s_PwITponaax*->t&Iazhb?bqqxYI$UnZg39qm7iZ5=yWR&$S aa=$}FOSReMYM!h);lJC!KZ6&y^5qBfDEb>!3`OO3DA1u@vU}|*YM^_UUdYPLbci0nN66TrC`*1yCLIukkRgSE2#{jD zkkaQDoxHt&JSL1+USD_~>m1Sme&FvvpLE_aktu_SWNt=QzDHJAI>tS#&-_$Bz=nOZ zf+BcvwOxZP?c4|Rua})#?z83gvagmqT5d1%@#+EF={;&vaEs9R%={Q zCRg+)TQp8AUE``TV%5rO!J}ujkjb-J$n04aEoj{j4+)ZuK@6lAgBVCLhJ&Z=emDfk z;vi<;#zna(ZrsL2=SD2j3OG!K~WLa|0yxJoxQpbfJM7fLX*U>N0y+wB(^+wb~ zQLhmT)Y9zEi4WG+b&Linc XlxK(Ff6PA^Kp4b_v0;3eIUpJU;^Z>r literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p25o.bmp b/winboard/bitmaps/p25o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7cf801458e1c8574ca95fb6f2eba69a353ffe2e6 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2sgm+4+j2*-~Zpk@!$XV n8$kHq|NRaB>+2i-&jG642gD#Y41>f@0`Xlaehj3M%mlFka+_5m literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p25s.bmp b/winboard/bitmaps/p25s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1a59190be71857b13c2df6382d6766334d752c71 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2sgm+4+j1QWc-Igz5#^) eG1xc!XQ*!gs)Rrg8-_t52a)h&AREa{5E}sR6GzJc literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p25w.bmp b/winboard/bitmaps/p25w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bd7b65b641b420ef8a215a1c59cd149e38d97f43 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd*I@If#WkPX5h@c;jR5N?3s9}N5r$oLO~d;lKsJ(@AT|I**cLKMagN{{H`qg8%*h v{R4*o*MI-S8^*{cDAd)=*@O5#A literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p29s.bmp b/winboard/bitmaps/p29s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e3f5f872bc26b6220286aa311616cfe2607e27a4 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>*cLKMagN(D6S8<{vQp ipMm|y{|5da{}0GRFo=zeLE;bWQSpcRAOArR$sPb0saT}| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p29w.bmp b/winboard/bitmaps/p29w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..55169f6f8ca3093d9d0777c1c5f0c9a16ced567b GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q352d@If#WkPX5h@c;jR5dHzfe;62lpyPiG%s*iG iKLh)Z{|)><{vVKsU=SM_gTx=$qv8+sKmLOtl05)%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@uuP_Yi%5??Y%9ADxED N|Fegv!{JYu{{hxhkskm6 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p33s.bmp b/winboard/bitmaps/p33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..88c9dd2affc784d35992646b35283a2078ef9652 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@uuw?0jmE8RR14&h&ey_vC}a5fA$c09R7s) F9{}X4a)AH< literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p33w.bmp b/winboard/bitmaps/p33w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0de8f7f5e74cace3ea31b222778e1013f1797e93 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dur_#l`GCz>% literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p37o.bmp b/winboard/bitmaps/p37o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0d165cf460e59d2c98033b92a107d27ce5ed6a48 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZIh7#NsA;{X2t z|Ba9SU;qC*SU)Onh&Zt{OyA$X a5dHs(q4aP3^#5{*{QrI^jXfM-;R68Cb+O|B literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p37s.bmp b/winboard/bitmaps/p37s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dd957923ace195469678b7470a0121ec0aeed4d8 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZIh7#NsA;)Lk` z3=HgG{pfT913y?CMjv312lF2=*n{a04E1384A2Y-pLiB%j Ph`Rs%P#SwUz`_Rr5w3?l literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p37w.bmp b/winboard/bitmaps/p37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..48e0dc791272e5d47a6b660b3919ede2c1f51d51 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U|b_#l`GCW13Mt8frJ?uAQBEh>IxqOGXdp67zFx1^{{z|tvhVNz`(PTTj#wI|?_a$= a#N0XmA@n{dU0)C3qth_?gHUz&!v_Grh{4SO literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p40s.bmp b/winboard/bitmaps/p40s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..438d1428cdf171985e9ad1a8a1ac67ae96c62bbd GIT binary patch literal 382 zcmZ?rtz%>W13Mt8frJ?uAQBEhN|+mhnSk;j3Il&X7#P9o z(CG&Z%wTaC{egiU%>Ti_52pVx$b;$s4E138AA>!LI7}U}G|W7hIsY4={sVd$>|dxo QF#F&%Ox;1KI{e`S082uY2LJ#7 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p40w.bmp b/winboard/bitmaps/p40w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..44567d9b30b3c36b1c38d12840810ebb798cfabc GIT binary patch literal 382 zcmZ?rtz%>W13Mt8frJ?uAQBEh>IxqOGXdp67zFG2g&dM z|NlKc`u_j__d)XL^!xw+_k+Y?^!NY&>p^@N{rmqvu>F7k{{_?k{{IHk|Lvbc==1YY m_%L~xdSYpqJ{S!*|F}HF{P+7I^!@w9(J=KN>LKd!ha&*{o&-n$ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p45s.bmp b/winboard/bitmaps/p45s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c44efa7447c10da6ebeb7b7d1c7135cc652b52cb GIT binary patch literal 422 zcmZ?rUB<`&26jMF1Bi8@n2`Y@kpZM?xgnSdCG2gwtn z4=^yugVdqZ4;UEiLE}7 a2ct2}e_)SlAIx4{G)(=6dWb&!;RpaXc*NcS literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p45w.bmp b/winboard/bitmaps/p45w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d1cb6688c3bbd8bf4d68a22e9e33c85372f6215c GIT binary patch literal 422 zcmZ?rUB<`&26jMF1Bi8@n2`Y@kpZNx@If#WP!5Da;Q#;sApHOT4=@`$-N3-W50WQD zA7EgR2dP7+A22Z3gT!I<2L^_E5FbW^*dY9efe}pqV_*i;{~6dJ^Z|JkK1?2_o>&^D a4@P5{|G*yAKA63@XqfsB^$>md!w~>P8O4$S literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p49o.bmp b/winboard/bitmaps/p49o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..74fb2335ea812bae45a4cd6aeaca66d0e6505a44 GIT binary patch literal 454 zcma)&F%H5o5Cm;n9+8%o4^X7%NfDI%f~O=EZJv;lG6jVdIbqr5auSM!lC#z$`_|{P z%kv|KZ=5(EsN<{{EO8^My=ljsqyQi>uK(GD5S8zMX$yNG%eQ0#lJ=b$v~ca5z$>_Z z1GR_?hj<^Yzvs)?(W(8K&R@EJjmvXh&+8AZ)lKYF^?P=>h3?OMx%^{cT=`$6>Hh!* CJTC0 z#M{==RGkWNqc?mq*ULPL5o4q*zSkUpK>sNxAYuJKXCURdxBxkGaRmzI8&H!G=nisE oO^I^|PMwRYzoY6!&C~oP_xW@Bd$0T}s$TtT;r%!NOWWSJ12Wq1Q~&?~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p49w.bmp b/winboard/bitmaps/p49w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e34cb97b619f58280d2b61559f2d57688fccbe47 GIT binary patch literal 454 zcma)&u?>VU3`KvAf(}NYrDcIbqGzU~ys@a5fB_hRk^&L@F~7Kz5Lo(oalY*+Y1$#+ zh_|h!sX7(l#@8@ru9tZfBgRNsbl2>GK>sNxAYuJKXCURdxBxkGaRmzI8&H!G_#EV( oni6LpoH`d(e@E4eny2|o?(^sL_g?u|RK5Dw!uxOjm$toc2UYv=2mk;8 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p54o.bmp b/winboard/bitmaps/p54o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..fc0a928115555b8c9041b28cca327b694657bb6f GIT binary patch literal 494 zcmb8pJr06E5Cve+(nHXC0!ufs_dYa+l9D5E1#dyg6*LrfMq&fWW}oj3Y@&sKn+zYr z%q+9pU(>|Smd`a~Ge??Cg(EqvrdY71&;g*}@xOcGV8;IFh2u5zcXq6+|4!YLJrIb%7 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p54s.bmp b/winboard/bitmaps/p54s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7bd3fba2e4957543b732df4409f84b8052cc78fa GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nZcazii^P!5Da;Q#;sAPfY5h^HR_HOd3klS+R8 z>az#xL#KZL#p{9MF!~RW4{{HT{>Q+;2;%=|U|JH3VncqAIyi*FmEJ2ajEv#=Cx literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p54w.bmp b/winboard/bitmaps/p54w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ca35eda091be3591865b7f26b9d61e45812832f1 GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nY3;e%i%pd1K;!2kdMK^O@B5Klh1#NH#BwX@_1T*Z!3uV5%>B{WMy82{NvqJ>6XvimW+ zv%|34FK3AxTh=vm6K0yEZvP60g`b)l(i0KUspIVV!aD`#@AEt@7m%s;3YrRZhiqej#8}v literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p58w.bmp b/winboard/bitmaps/p58w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..8a4565088ac338bddf8ae5e5d23bb74e34b22397 GIT binary patch literal 526 zcmbV`u?>Sj3`KpUNCzXN%?v3LiJqBYG)72~0g??UDG<*4ceqIvu;hFCmi_OyU0qqO zJMWdgZJjLT`4hbA(puft&E3_ivEUC*7@XMK%bB|~cfVYiH_U@8`hpHR`hoVrtQSWk tG<;jioUxS-PQ;TA#@E|c;ZUzJ&Zda`r`A!OMa@u`~r|qQ(*uA literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p64o.bmp b/winboard/bitmaps/p64o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..336c228ac4d1264458a44a3a4afc0a246df398e2 GIT binary patch literal 574 zcmbu4F%H5o3`JWQ7#KQm0I!^)LF}9-py{?d2e8-)D;#WO6It?knUPKh9S&NXM2M9D(Hc1su%@IGHnWF*UfD vYG?>*VD&@fgZe=B`wkZO$2_q*);>cznoJ4q9GiS{E2DpE-<9C3;s4qf5t(mS literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p64w.bmp b/winboard/bitmaps/p64w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ebdd7e4002a7452c7ad926146e39992d4979d4a5 GIT binary patch literal 574 zcmbu4yAi@L5JXovAcGQ=Qia8kQZujwkW~0uF z{MtPs=_XVDdHT6adpStj_u0z}GP#v+_Z4!DALlC>q+?4BPC#<}00wggj^+ZKO${!l v8XAHcSp5+BpgxfOzJta6F;A?Hwa<`_CR2htrzW4=%IKflcO^J$_`miALvV24 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p72o.bmp b/winboard/bitmaps/p72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7436520cd5bb8b0d5fb649abcc6e8d23796d81f3 GIT binary patch literal 926 zcmcJLF$w}f3`JKhEj+@u9zqDVdZ=i>ar$&Pv-HBg4?AGoBZw)}>CGhUG|#yj%S_(W#tewYLAl&J-4l<9}knEit@4khZ! z7)u-|Q$1<6QA`d|Vq*!wF`eS`N z?)mzxs~9JoN908rsu1-X?(e&l8z@YMnK4tO@Bev@mW|P;1TWFQjsD*-3;D$L$a06< zpc>CT^ji7=-e!1&zL!3M4`M#P5p&R1Y#m#rd2FC%hI_V^?(5<6)*XBQ(yXam_spDr i{*miZ&CHdEC$1{PzW!JKt)%>6QA|HYTNU`MT^~d^l z-1GHOS20dFkI0KMR3Yj&+&_0IH&B=iGh?Pm-~aO*EgPdx30|Uq8~wjw7V?Sfk>w7z zK{cLx=(Y3#yv^_keJ_0iAH;loBj%v3*gCdK^VmSk4EJm+-PgnCtvmMqrCC$C?wL9L i{3F++nwcvRPh3@oef_We$8YD literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p80o.bmp b/winboard/bitmaps/p80o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..096c445ae8223ed412e94b3ac8005233ffa7417c GIT binary patch literal 1022 zcmchVJ#NB46omOHQc$Ge0NZkkSW1tS8&Rg@2)+su1!b-flp-yNW+Pc1X5RD4PjZAn zAXZ-c+wuFEUHg66PDeK0cwcaSbaOl!o4(=u`ON2pilznt&2HHGiCjFWZ{$iI8fn0- zoRphAw-*0h=Cxvu9`hwW4S6U1$Ms(^Z}LV7;7c(}04yeEOQ3e96(Bh`E1<2M_0(GN zNM_mj6WCKSoefyt`2f5YZc?uPC~8`Pn9Uam)GBkjlHc@R8?`#IK(z1WD$ zp||Kc?j`OQ(+yKS7u#*mYx@M|AGLh~=al=Hihotfy@q3MtQmXlbZniU@0Xr)>RD7` G9?fT3)A8K^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p80s.bmp b/winboard/bitmaps/p80s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0883c08b23acacff46ef624cea1addb77f72ae6d GIT binary patch literal 1022 zcmchVF%H5o3`H9{FfcH1fUcYZBz7cjM2?oDU+~i^04G5^|R>{`EIPko$kxK-Ed qzGpv+pVvApd%|s%bC8Iee#iEzzu#N_zK4vLQF|DNnMqauHNOC)-bL#G literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p80w.bmp b/winboard/bitmaps/p80w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..21683851916331b4d3d2eded1cbbe185ce6845f0 GIT binary patch literal 1022 zcmchV!41MN3`HAy;07b)$`l}RM`9x~T83bNj=-@8RP(=`sFq43Bq)&_z5ZI?c9QdD z>N{OW><7fPMCgL*8UOD)iwzV8mxwUR((gZV?SXaI;6&3vZ;?+pGrza|77xtXT8`%j z^}XpMIWGB0{bc$?z8UNAICnk&q%9i{TFMv&U~dc~*en@^W7U1W_i1s~(am!WZq@a= p@7d4d=d}*Yo^e~{93w@AsC!?_t2ps6C8vW>VFE%`b%FM{@uG literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p87o.bmp b/winboard/bitmaps/p87o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..de4374c85aa2be728ea75d8036f58c653042e03e GIT binary patch literal 1106 zcmd6lJx;_h5QP&!NhF&5UK$3) zoXVYYJLR6rgL3!EJ;oo335r?rWd6C8e~RRkIftFPo87CfFOu;!d=%X_lyuo>HtYnU-7PfMZFny{+EvD~_P2Uf;Lk9PsgQ?-yzA1kD zsh`WNjTcw+^Sr#4?8ok@F5GXL!s8|sKIp1-MhvjGmAQkxmA~_{=CapP!&J4USE^!R LJQH1m(SPAjVlZ>6 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p87s.bmp b/winboard/bitmaps/p87s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c8b6e3aae5fcd33b1d4fb8d2e4817aa7b0f3f733 GIT binary patch literal 1106 zcmd6jF$%&!5JeLsq_9Y1pVm_tu(z@CG?IW9%Te|SDN}@u^Z(A00ZkziaAB6m-`SZz zbGhF38P8eolg8a5&vNQVeSaKc>{LPEhzP>Yyb<^8RS4>L8*r>&vi`Rm=%?b}H6EB# zGsp8ty`k=TqTW)U$@0bmJ&!t{wU$2FclXRaCqv>uuPxa3@(iEJkN1ovCeK)$q}jV=UI|!R+=C2Qm2todKXC8zf8n+I-ouEo%)^9H MjOD4A82Bgr0t7CsihE$W2XuNM??^I=8d>#uR>72+kj*JlJ&pkKtC1#uJOQ} znmL|F>J4?z6ZMw*OqMqm=y}w+l)|`Iy)+KWl`$IE#%RzQYauPe`g$#loTU4F7)^h{ zjs5lPdu_qKmuL7)e!OQaF?q(~B+cF}^Gd+l;vQtcs*D3x_Y3d8%wjk#W~nu z=--RCa<#g+wNB1#slV;3?YEst8lp$N+HV;yz{+vq>{FGP;@%@L~L`c3!m2gF7d3tJ*$QPx;M-z)NfVzuQ=KjvI3TCH#S32%+v zUE&wcw04Ghgzj@=7T1I86Ygwd3!S+)eGfeu*I;iZg56vLb`vew3TP?wCenF&aPl;B z?!DCfJm(?y#&Z58W^Gtq%Ixi8VAikJzrHq#cJneVQ}oS&Kf Wh<|GMlwSXs>{*8RVWXn|5x)UUPAF{v literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/p95w.bmp b/winboard/bitmaps/p95w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..274c521eec7aa8e90fade2eb5befd16d61851c99 GIT binary patch literal 1202 zcmd6l!41MN3`JW&;zmd4l_`kCof%kydpi>oWC#Yx2t9H@HMV~uepU5=R3sv~efml4 zZ@1^meOLK9>GP;@%~4mi>o?th91t5-ENqF0MOkA3eXqy^iZzxq{g`vD)@psrPk0M< zcZpv()7cs35xUQfSzNDOpKxy*Tj7XOW4(qsaL_BgH59LG_{3Lt#WJ^`f!N zrcyl`-Y^rVjo7PN)sySQ?!EHp2pdFOWs-8lxBR?$=H0|KKTyL1P+jVC)67=b&P+9r zgta*&rXV*KbDPv9& z@G1GL!d7^kc$K-ri$TP-vVKdA$(*juTSMK-ELu6AHqE)Q_~x&a{k}FYjk)xN?{<5$ zzTUXP)$d(5+(er>QboHk_-K2n7sq#WOM{EsCpcYYy;U8&rryTFF$jk~>tRrS2vR?U zFkVu>#XWPcj69xC=tH{kZ5s-=%IRCyPZ*VA@~u?i{J+?SIJ#}mE?EC%VZfn1oo9B1 ze+VCZ;e+S%;GV37o6HRyX6{5k8BgtQ*>Pae&WQOmNPHG!;+%K zdAy~x0C&~I(SR{!=m!ryMsOQYml=KVsr(arKEI#Od+Mk#*C%G&xjyoa&Jgp8rpBF}TY0VUEwk YqH?x`>&%>d%$$78oP5j~=ltj6KLOOSGynhq literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q108s.bmp b/winboard/bitmaps/q108s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..084050632abf3753920e3f89a7df7e109289d20a GIT binary patch literal 1790 zcmcJPF>W3q5QT@V`3GPWZ1Udw+%E70pbC@)&?zRA@2?B~pfuHQ8O%yp9nmsa&^ zYvOYsj6}pS7{(BJuv}82M=TvXpZmR*ixYqDm-;KN`Rly9DsiiNR)78c67hswg*>9T z!^5{psm^omd1gt%ir(!LZ7cPJ@w){IsclOfIx0)7fS^XiEnF z1+v~|NE^B-yUs!MIN9_1=<|a0aD!jWH7}JcI6cdEHLuXwt>`}|JI=oyym#JeaEGbF z1-GhPuv0=Yd>O%2QwvT?PE~oQ!O=q(j$8*;xetBEt-OFeum3&Q`%mJu_zRYqocJpin-{i~{o_-?i=FC$S#$v7FnPatPA2Yn9rsvoF`sNYa=IU&e_rKzfgPDLm|5mJlJ5OK2cki$SiMoq z^jnUC>O}Q9BefQfO&!iS8sjP&e=gVgCd=1YzM5-4H7|C)v-5215Am1-&;a#+H2z4w zy8gLb->2rfA9eqt`77@u6dv;ZY95Q;XT2bK3!UrS${41C15;dA{qMPh+ zJj9!E4%HNSG|cll`6bEpJNCb%?uyv?vBo@xS`aoZs<}eU+Jo=$k#~m z!0K!sEIt*cH9FY)E!8Td_qR z?vK2Z6)c%M!zjG9~a ztgGoI+Z%YE5yu{89~11VZK}SJ_(M~A%l+p84;02vY?Ka9>`THtY}_5=RleJ8E*yt2x@m<*xO;V;eeqs w{?4%j|4+ppmBHAk?9j1eTaA?=KUP)ZeCE!4=6cZTJG&b7ORLV>_y2$V3w29$`~Uy| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q116s.bmp b/winboard/bitmaps/q116s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e52636298af15ff094eb4598a4cfa2b3777f6167 GIT binary patch literal 1918 zcmc(fJ#O4E5QRsP5f%x+lqn3T%^?EIaPQls%}TCP=1THS2>1dlSqPlG`61U9Ho+DF zOo+Ss_=dyBKRrC20%^I!?>E#RUI!Yq{T}+yPgXymMXD5LminsX_u-u=s0$mvh`CW3 zl&c_7Y`iKG&8DNX6{L`O?JX_HAe>#M;W|F{-;*cs{70_$uEU`Eb)@Mpyn2B9=goQX z_#?mQ3`1epUl=PAx$`pw(U#UH^B?(l(tz6Z$hx0(viPcY z;K0{s_cNB-dg@N{Do5a&{jX(Rm-CNHz%2}S8)%=21@_`%zm0BYn1$z zZft~`#-EKpo*CEp3w6Gwk?1RhroZK#zPr8#$uErie@mh939o33o9joe6j!>Vm`ooU zXXPTi(TQRnC4U(!O&cu~%ViFgX6S3&O&3nYonzywdIm4hw^#?spQpxrndge2fm7rs zjbA!HU*g1)7f<9Qy0TbzeiGd{&zS)51uodFm0eH%#I1+Kr*Z(8rD)A38_e~+#I!iaQf%q;y`%iqH*QLkCp`dO0eWI(wH z5(Q^NqQUegYk?1t?$1k4Up(;y$ocI#`Fg4`FB?x9KW{vKinr+~NY?){ADF{| z`BmCDihrde(+_Fmp6G-&J|*Sg`k8Tbz978crxa(MUkE(YIXH-aq1(nw;|d8uF}=+l z^aYb*HXS@HG&!%m^V*C5D-M-L#LuyqE}V!rj?UF|@C1E{#(8k&PWByH+zoOsvCUwonK`cI!ngyXG}S-L7uhSOPQ;zn-d!n+v;i9sB5PlOYY~`bl-31jXQ76 zgpG@AFxy4ru39r^RvAau7@Jvb+}j2}v+V3Lv)eeHyVPcVtMN1IZ4>5j{Bx)ALsMcH zJTgobb#P*#uBJMy*mY(< z6FZ8Tq_WZ*8566-7#U{1ZDiP?%)+q{+%%@AZZfRbB!v#tCL>{>Qti9!yMX_5Vj#hYT~m&w&2p( znNu~H{py*msB`ZsvKa>%QzJq+vNry(%=pY?);`W~>*Cm>Z`5(TorUo%@@B->L-Ulo zOFu9DLnvelUmx!u;=pkxLlNUZybe+@7RtwqQPy(+U=*WY7ZE}B(H9ny*m743;$@K; zF7WXv$hK2tqte|a4efkKT>t<8 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q129s.bmp b/winboard/bitmaps/q129s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e058bf62ff01fa14722f7c3ddea6cf5463a6db13 GIT binary patch literal 2642 zcmd6pF^<(R5QZm2;vpzPK|!%nT8^*<+DO~ea2_B=NVIz;znkO;DN{t5{r?%;@nf@q zV2d3k8T-q4JTrFu-tDK)uf^mB&kwl2r@N8H_&dD+`o`}UAiOE6%KJis^Jm5;k&}m1 z;)@7WT7#KQM9DIsftND@r9&q`Lq#YPjt*!gWvtnm_3csEwzDyh{U4?;i^DR9b_eV( zvnsxy2P|e*19&9dA2-QO}Q>VQYh2E2!?JsxS^nQh2Y z`I{LKq+TP;VCWa-!CZ`WRNGAn*_H|Dz|&u|#RvCQtFH?Drr)R-k;;>9}Y|;dICGwVf^xTeF8|1y{(cdXs*VzvW=CwN68vH8SafY(;1&gVE}oyHUGrdH={*Y6Cc ziN%N0rPviVXvA;~Y;{d`Q_bL*b&lh1w;?F74Qqu^F?MP3xsPNkzmQ(16Pe0DhVt!f zlb($07YEv{n3wB%%qD>|w}VT;o)9rMGSltf7=HI~MwYRR1!0qMKjm1M-qJI%#E=KK z4j5F*1Nklp5sb?7-5Tq_A6c-vV73{DF!D8}%tQJ6>$Qi{nqe*Z>W>UgF6=A_52=hj zV$1_$sfr!*1*0mAbwMotKPbh_Go9=Vvm7&<*at4z4n5@ifU(XdmEAf#WQknN@hsRq DnqTLK literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q129w.bmp b/winboard/bitmaps/q129w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bbb98f525e34af676d46628807ff9d102d30595b GIT binary patch literal 2642 zcmd6oJFe9*5QZnX2%_LnP*5P9mL*UiBGJ>Zpc^ALX7<1WvV@c_q746Udu&H1+Rd(NlNUtUORAMt*N=WBTe84`bu`5!Oy^9+O!o2v3TG@tnsV?o4am#Tjp z$dI71KvX0>2AB-!QsZ)uQRx!n>cY}@dR4YJHk;i4VA||fUy_@NcRmLb>|#4(i^+{m z-x*s??$YGWSTwn7llv2PX5(+Ovv?oNg2nqlp1sL+dt|5{Jk`gZp{=c*?EKX@m#mf6a>i)S2DKGoM9K z7~5Je&qZFbSXMR|^Tu}R*qr0t#d&!n__-jJjX~auycf6J&n`he2!3vDa<^=gtI0)~ zvfae)MDE0OYzhEmTa%lO?FWW4IE$++3JN9aj-txqU@=E}$_5Ps<-AjGa;~v(9~(7b z6*M?qirm_>OSZdSnjFT-7qXFS7pIk78;d44k^;~rY8?4jNx2OS?i-uPBKB{Y$hHyJ`%1PV-<550AzO}Y%nZtAMg^l$exIQL;MyP8 z-mpo7YDCFE4zdmUhfv4_Ecu5xc7y_kuEc?Od7Qx5Ns1R*q5uG+3n?!OUHE`6?9|wb znuNTtJ22$=hGBmnWD$z6S!-{D2GfD{77QSK gfI$L`J32ZTV7Rvz$iC6R@S_800ucZ22V$Uk0CvhM!2kdN literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q25o.bmp b/winboard/bitmaps/q25o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..caf5bee710f2336f5deb9a7489faef581045c759 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2seQ69|rk`-~Zn?{9xd3 z`1}7p3jh26?+qXBA8+`^VBYZN?(BwFt5$>YwN+ai&ShIR^krK#_?25SYq3>(fRTQ>A1TQu+`TQKl_-@!1aT&Ceq QvV6n8$NL-pe}|Y208G3(8vpKN$GI7{o^A ze_&v5fZ+!W%ngr}l)?Czl3~NSWXp!WWQzvAatj8&?>iXgB+E4XNtSQ;_kBOuT#(rS DrCT>& literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q29o.bmp b/winboard/bitmaps/q29o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bd08feba8a8b0319f08006d952a0dc558ebea6e5 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>$?M2KFC+{{IByzYMHD z{?&i}@vnjV$KU^dfBdn3_~Z8hxgX#E|F8J)$fn|(sB^`a=av<3o?GsC^=j9SSGR8M ucpi1#;#Es_#Gk|ApEEv=0Ez1YctS literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q29s.bmp b/winboard/bitmaps/q29s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f97f1904d9844b270df03f1b60b3cb4d5f8dd6ab GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>$?M2KFC+7#P9$FOdG% z!2RP-{YNnW=K+}?KkOg;_`twWfs7w8Fjzd|XtH=DameDC#Bqz~KzQEb`HXgp=NxUd apE=H0Je={zAo0h)iqAj(|ApEEv=0CzgG}TA literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q29w.bmp b/winboard/bitmaps/q29w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..929c7d4d5d33879a98ee16be4b2c4416b0d18244 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q352d@If#WkPX5h@c;jR5dHzi4D3JtFfhXLKL+L> zAPf`x!NBn20|P?^GJe3oVDX5f$>Nd3A&ch{$1R=%;dzVaGumyRbF|lf=QwBkc*Z}A R$3Om8eE;$PFVr5OeE?A4N>Ts- literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q33o.bmp b/winboard/bitmaps/q33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d1c7e0aaeae0146ea8f488c8a3f041706819befa GIT binary patch literal 326 zcmY+Pi6b4|<%IFZrjumVmv9L3a;0R8DxPv_#poJkMh5!?2hY1axlokjHBKPEf z2ZfjXeEjc@Y{xWk&NjJiDpi--_9sCQ*7*sm#Pn72e39J-7} zgifZk;m{=!&xdnuEcm;I=!J8&NgMb%zR$4HCp%bOo<8d(Z0RKr^wLe)!cBAZ{B$i? lCt&YRP^0@{Sh3Nby=|=py38zfPb1`el8gv*BD?qhzkgyVd)5E| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q33s.bmp b/winboard/bitmaps/q33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..34798a258c971305bb392ef554bfd5eb3e569644 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@up#sTMlk({fk7T5 z4x|4wFxZ3m|Dg2$1m=1$-~Jzp_@4ue^FiW&?ElGw=pPIW{P^e(4Gird`424uVESW= zz;O`&V~+%w{@f$+9K?U#XYm%*X(d-~dur_#l`GCG_c4N z{krcv8#?&k@Ba6li~Ye^VzhL=t32I05)%WJvuKGl_zZ&!05Fh=^S=*f(|sFOXa!JE zmq8{i_9h*0$Q_%IHi&xzV(it4b;$br5}?FhYSSm0FV{`9(2F~%eaQSUyV5+Y4NU5< zzzi+^{%0C&Z`f1c9ig%B8a?hgcJ(1QNZjLvjL6uF6r96;lVqeR^yUh6a6tI~U%s7h Bm(>6O literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q37s.bmp b/winboard/bitmaps/q37s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..76f72824d74236d68047a77108ebfcc9fa336df9 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZMN7$AHG26mAA zKL!S7Fx>#5|3k(98!)7U_0Ru*9!$f;VfyO-e@52-hk=0+#D~!!Hdfro!T}aP$RYuv zKOAP0r~uL*53|W2)1MFb$$|KvkN1P==g0fyEr9&P&-?8pkm>jL_ksA&kKYH&|8MT& Y{{iIxZ)Stg$Jyn<{Qv!^;Q$RE0QVVk{r~^~ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q37w.bmp b/winboard/bitmaps/q37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4ef25b05806dfc6bdc6e2be76fbc8f11174c4f7d GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U|b_#l`GC z^gjj$W@P?4WM2!@$4@QV*mVKr~L=$RYujI|!u@vw`^^53|Ws z0QJG>&xiZuK>W|g`@!_{p$9{dN){`hEXC2z?(+KR|nI9m^u#LJ)x1 z_8Rb@9_Fm2^q~amPY@}OtgF;>?GPfhzhXA2|EDd+owbeg&;GExkb$$P=uVc@zo*=r z8Rj?cx!C6k56Rb4h5_a1olIp+#%PM3(S*#h%rurlQVyJRFcn;=9z^wh{_pk$_P?rO literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q40s.bmp b/winboard/bitmaps/q40s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2952764a08327f0c2a45b6986bb2083dcb4aa9ad GIT binary patch literal 382 zcmY+AF%H5o3`Ns+WME)MW#klvvU3Mc0!SGcIa8)wf+3QJu2dbuP+`8E2DO%cp1;2p zMLC_Xh0$to?q@1Y3XZ^Ll~f`ZNinksr}j&Zrq(&K8}x+^vUg8jGMS5)o?m9Gv>cRq zp4pg2_bU#3cnU?=E{o4!JAtzTur#TGA3$@C*y;y&qbtDti+V Q{$sC-hS_v{KkdDJ0lkWYjsO4v literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q45o.bmp b/winboard/bitmaps/q45o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e04239ed789a6a5e49e693a8c46ba0a66b985306 GIT binary patch literal 422 zcmY+=ze~eF6bJAZ3ubWW>gMXw-N}NxxcVo!Wfe*i|B<=~j?HGF3XWZb;^Yq~9XjY_ zhY&BMz5Duomj=^=mruU$9Y-!_=l6m5b;{>4tGBH{>cJI>59-?EOiLF4Eui%8wN5%d z2iSz{JC4^a(Sg%Go+MbQ3t*v6fg|-@#OJ2p_zd{{Hz>QhFO|^H=6nmlGH)(`S8DIV z{hs>r`7xyH*>HBNW?43B8%5&>&0DKgG@dY5KW3m7zh)3$|C<*kPMGtevg#L2Pek7G q%B7bgk2LviX)H8Pm)7+U`Q7u<`uojIyyMa&{gQK(yZ@8-0{ed(v*N4( literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q45s.bmp b/winboard/bitmaps/q45s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4a0b728820ddd5bdafda62bf8a5d78131716657f GIT binary patch literal 422 zcmZ9Ip$@_@5QeWzj0Azjfy9tZA_ydS-eHnQm>2_|1jlo*AdtKO2}=;zE(j{R9shNV zY+Um9>wkaSq_VlOVDeOcU525 zmwPpDr0(J`%tPUcsKxr+f&8oFif!|KOGFC&f1*W%<;M|9e9bTn0`WDoFqn$ZbR^8d zSp;ew#o#N~anj&3H+DNEI=@Vr42bq%+->k(u=w+%DCfvIHP-zr)p3gtoh%G;Htl(S G=lcP^d8eQN literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q45w.bmp b/winboard/bitmaps/q45w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..30b954b736da076a20bd83df08986a5577a1a87c GIT binary patch literal 422 zcma)&F%E)25Jd+mw9?j2OB)kPDoO0U1EoixAYkHMJcm?VfCG?F*e;=P3)u0`0uc%m zC;9vK@86wd=X`lMWb1_W038Q8)CX6fSoc~W6G<_%h*{fxPeZQt$d@=bpgSQC=X@jD z$h#-e?jMf#N7B513-6%MFCrqsqW7pN!_f1@k1Rva7hkGKSSuC9(U(oF;sm~_bt`;< rsZW$Q+N4{eJD98{e0MB9uR0ST=S;WuznO|>tW*+cnWLW1bC~Z3AakQr literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q49o.bmp b/winboard/bitmaps/q49o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f0d9395580a88fcf041bf0ca9b1830506ad4d8a4 GIT binary patch literal 454 zcmZwDu}T9$5C-6h58yl4+1jKLJh1mUEK^uY+_m#%B%RG7Ya*C3O(5Wbi`5m!-4Tuy z$#MHT|Ha@58Tj{OW{!j1>zj{(bakcYx#r?G1KBU0l;!C@C%R);02nQML=nTe)h$hc zXnG#zL1fH*09yJDywg(Tl2$;|_wd~t@W{CrdFa&tQv<+Qi3+@W2Fw!mb2@!yUk_hy z)wa&=vY_T#G|ls(Gc7t@T9n#1&Xr}Q-oJiTBP+W`ozQU@sav}Ev))BN$*g3wwzAqr mzt~uDwCvfyRNBusFsn818@&TPR?s8Y zkGo3~$ZCD^P{&fg6U}Lx9-6^H*$tZP>5Rz`5vGRyArP~l03PKJaYw6lcb>HS?!cV= zo9I%nK)>sI-^Jp|zSY}n+w&CO#d%~=`G8MD-w$fTpmr7pL#<0XQa6k7h?eS+ zZX^1j=Z{6{%rUpfXfO4n71euEm)@aNByfftW_XhR4u0dYQQE%+}|L2!=%efDzo1(A6oC;1c=MlQ_ z4N|IvrKLV;2bZ*dA*t=Zl;<8Cig>gKPvI6k<8g2e55AIM0*_u3XC_J7@7_%To!Y-* zFgWxl9EKe$X4CQ4_y2E>2c#yRu!C(b!3l3e*7B_{GewF89mty@0 z6^E`Zx8xvP{J*qChlb1jj+ggdNbdaN=s<+g#QPNUY&#eEINVH5-KGogJx?CA zVV^5e<8_Nd2^Y${2rf}k{&N>!A+Lt`8g)OgMBWlw$MPlI_Wv)dQ$zj`i%67G9Cl z??k=$yV89c2FIxhnl#T4S9wZS6;2WrCH7htIRCt#g?pHrpj9U0dvbC9sNm+`u*LQp Ig!o>60mw^ARR910 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q58s.bmp b/winboard/bitmaps/q58s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..ff10ec8b295b78492a2a8153b5c2ea33d9b6b718 GIT binary patch literal 526 zcmaLUv2MaJ5C-52k?NrmW@M;v$38;`jJoqKj2&omTVLxoRvw|K11rdjD_JrBIkAvh zT1%JDzB@aL^Rk{!sEj3^Pl)F+8fr>@58m#F(AKe?a?Tn$WZ;%3YPBA*(ZEmG{NoAr z7WHb~_npWd^&Grur`nwKyjrjQA(9Emf1&RT#pRwL<6P>l>XN+VANFPKef71(02Ml`v literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q58w.bmp b/winboard/bitmaps/q58w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9370ff4851759be63086ba3832f762ff1f3f5302 GIT binary patch literal 526 zcmajcI}XAy3KO3{HIVstW0QEHv;8^$)M;7wBj6 zx_{>R*?bOTKZX5BtY1p1Dh_YnV($2>^7B2%ZC9&N-@Yt0EeFWUf>z=X4xux&o?7;m zNl}YC_BDE95D$Eg?wMjGG~qv>K^j|bpyH6Su2E6poShKx9?)N584|cTBuuw z{i1QX#2lvw7fz44b2o3oj1Nh9ba@FJU0$Lq(Nkf5*zg9Io6LLrLabjiH~p{?H$ipx zX2D~}U1ncZXC`KD$b*j}WIjs3SEhQuJ_<&fuKJy6@Tuv{@mNGN4dRQozX5!!(V>q zsXw#BmsDrUnrO{dn*{rV>Uh+jee;|qL>z67TG+f1epA7{{=kgdss1Lm@#ClHXt|)Q z;=#h=^K#*gL%u(EBlvI$2C#xPfDvrmC#Ie@EpGaOj9OCV#};2Cj1z~FUb`({(zd6M vV?Oot-u=kFry|3bIN{9CDz3%M_GYezW2&#A;BDS&_yn~@OBTXA{GWaR1gIz{ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q64w.bmp b/winboard/bitmaps/q64w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4aeba74e3d39d0c5d11dde7b843dc71f62246b31 GIT binary patch literal 574 zcmajb!A-?53BjE90l-GJgAU@+ATw{h7Rdi=#oK|Xs0eEUm?)Jv&rIus#Ch8lRbAyzDR~Z zO0|^eD=5g=t86VQi2L{5JEerCp$B*T{PgsfjQ#Gz`ABiaIA3DFAGW7F=Eu1HdDrb7 zBzD^+B6hpwK0oFwHNqu!DxAJ^rxNK^$h-+r=mNUsnDT))%oof%%#h06YiHP5c78v@ zId(R>Qohm5O@e;!EPSrG9Cf9Jj>dc5^)>qcanG5FdoE^};T^gwj2wl`HEtP%^{RIcrl<49IS!h2(4@@cqeg-) zZK9(}{B5Lhmr2W|9JDb#E5FN&c1%yppV{knPM?%F*-3jte=O(OwEbb-Ps;P`Q@cv6 z3%aJuVjRutmR_urs9$gBixoWiMTaXLnMr5eC3GKJ>!sc^2WGH*lfkmI7MoX6!M^x# zF1KhZ^znl;7tFyLe0|TBclp2k8*feE&;S4c literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q72s.bmp b/winboard/bitmaps/q72s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..71ed54818bbee1fda08903edf17716149229e373 GIT binary patch literal 926 zcma))K~BUl3`Ly@QWr?{29zbIAR|_6xC2LE$p)o}#oU6k1hJTFbkqyXvJz3ux1EX# zhGAUUef{}y6D7CzZ=N)6P_L19H61zCA29xWZn=UYDZ$K=7WVxYC-N9l&w$z(XCP5f zeXrb}%%AG-)ITkF*|Vq~)w5&{SWmV!lz@fh*&~abStcLnyoO~Jw0~yVqwy5cr*w5M z($n@ez%H9dfm^~W_sZ@ls|EA$mXtW1*Kn`YU&uH@DU{CW%F{1)s`sk9bU}~a*efT| zbCWLV$q(Ttx2o?|Z&RS`jXUK@^#xC1h*X-~q0bbROJ#oH#+V0T7Clv#E8Fu9`iAwE zM&)|SJO1EJQPFcO1g5wJGZ;@~<3jNtW(QA?Z0lZ2V!#86` zm_@*1X(lhv_BcPYd3d#?;|}=-u`OZ9sDH%#ew||lBO!yCCGyDkKXD+7DP0qhUFHc$ z)T%!!H)nIbchXoifl-a{13Kw*3=^LAHNw>CFZ^N3NY&hlFg)4ftu|u6N+^9dQZ!kT( z%&qdIzKx!eQ=U5Ixka7HE2qNz!Y(sMVHO_?J8;hj_#JDP`UAi5uKdB8NBE)mng{q% yeb0v985uQUz~l!odIR-o=^r%vAB;NqnYpic0FQ+kb(a2TocqawEN3m_gg*d8d`+eR literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q80o.bmp b/winboard/bitmaps/q80o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d462baee565363bc93b9af13dd0f9732a1c22d99 GIT binary patch literal 1022 zcmbu-F>6&Z6bJCUc6furMO-R~Sse>qbn%G0=y&iVxF`s>(xG;cOX=bRF`vP2&@P68 zn6Ge4hOGBCO9CPB{FD2vO9%15x&7VKlk<}I^5SLQ6*Zpm^D*b^C0Alq>*xIc`*&LI za0Q7dr68B6@Bia0M9=Hn++{q^KVOw{$jS9wKaRWD3B4szHCRgX8XT*$;Fq!WmpyEG zuhjV}2q9zhfd08z!?t*@VWy46TJs8rm DMWcj5 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q80s.bmp b/winboard/bitmaps/q80s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..456c99a301e2492e26a32d2f2cd08249eb478c54 GIT binary patch literal 1022 zcmbu7K}rNM5Jl5wkpUMG+{{9(tw(TW#J%8gX4gHq@EBetuDnLX3uIYB=vY6MaatWg zv7nll-#@<+$j$9+O{**UUP#~d9?a16DF087wU0zWqiU__UTys!o{br0zvlLM$&VN{ zG+i915uTzPzVUVY(eybsZhrBhYRg~pgoWnoEUTVpnGjw(<6fO3)ymxyvG)K^(0k^R zAECc#CgHxUEY@15#xwHb_d7DS8bdh$lC$a_`cItH4aiyYmR)j*w$SgDpT6<~`|LBlKz9Wk64)zeWy+pI zV=BbNfkkI3LED(@m9sY{IpyRUk4$seaS4Z*N6`tM>{BSAIOLQNX&%{@Am^zOb9Zk8 j=lS5|4snv1#p!$Cnp`F23YJ187&- zHNjJa=^T%K_Ms$y21;ffIY2k!iD3Ja1N82>glG6qoCSHk&%ooI$2Vs2c)WMyB)WtC z8%Ob2crM}%Hr$ARqh{SXY{6TD9A=)2&JQ}6`BwCiU!dQKo=q^pH=eVJHh7JkeYVj? zzdtfHJ{0Km2K`W6a!L4A_yf8Xj$l`Oa+%V1_QhwPDYIUDp^PS_(#lS$=tNJp@l z*xeS^4*$&V9pO$Vkg&AQ=gI89lgQ_9-#sC{D%@XSy-#aF3#~uL_n)4|wM0dhT+A#h zUE#moP=+kcX%LSG@hC@8p>|aBOh(<*Xr425t1}D_+(gp3^xSM9Lo_|3mITbE7VF&Pg0( zD>jSgB7@bNalp(XS7kxriR^;ivJ1 z)<=t+O*oXKH62-_)h&reXYJy59)PQhSE>>eXOci+Y9eIm`+)$<$J zsXxv}%&U2Oxe4L}uR<9%EZ!w&@Se{?$!EO3=dY=Lje5%&I(9q+3VCuL$ltl5(Xc_! zf!&&>F1cINFmR4DZn(XA)aWnJGco!{gVa6u7CAmgYR9hVD++e(;A7!24;kL_YqzGsPe( z72(Rxm#h89iTwEVd`a4BjCbfSsTWje{RaQPUR%FFMY=R*mY!Ptw_7Tar8zC)aU&k( zQM6F^>Pp?J%d zsBCQ&!_jex85{PI!qGL26<4V5xSxNsFH^mp5$y1cH~!(VLTbm})*=;dkP{qIJMI_0 zrr5v(9IzioQo(IHOY#=Kc&sK`_vsvF4i0tSu;fHN336`aOywi;j}<)k%fd8Md8R)A Dd1phf literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q87w.bmp b/winboard/bitmaps/q87w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9ee8e9114f9041148acbfc8212f5bb46ec6cf63f GIT binary patch literal 1106 zcmbu;u};G<5C-5gL1ar72Bv0ZWMn{z#LmLPt1zI}RR_ktk}C#YfCn(*1;Umg^6}r< zDsBKN6^@*Kz1Y7KE4jV9KP7D~&X?#9sT(p{KgadAD)tjpq)TIF>8XW(+fson&9R8b zA8{{BQKNS1Qf<}6Z0B=xd(EjeCwIQ?vCebm*pamOT)C~3u@SNlN-|T2SSP8E$t!qB z?q)hZA~qW1k9K?`tjzVvwfKxK=!)DAS6cU4U(hvR#6lM8sm24};YiJw#b1@$c#7_sILB-F`1(6Dz)eaR)p?AR?1>`*Ng}i{D7@p+?XXNiIxQA~G(|F}fe*tC2B@h4r literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q95o.bmp b/winboard/bitmaps/q95o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..9789e101e3c931bb6d05b5d821f3ae57b299a42b GIT binary patch literal 1202 zcmb``L2lGA6b4|2R!XH-`+OZ@CO&b#+tPnDD&?Hkk&OKnsm@sGIw>Acogh_JGhQdrlL zSK#_jo|V$eSWr616G^2Eb55$O4LpMAw2V8Fm%sS<`Qtn?6(_^kQ0EoL!u4dCH%j{I z)Uq=Ud_F03MzvVhS$#)eizDB_{F&!C=dowQ{82OijAcm!Pm&%R0Q-@h*3yo5y87-r zj6~TpF56Sefz}c(0mee4L^!P;;ETGSx3p?zJ!_@l_!bk5N}U?`hvJcFzR>yg+3m&U zl*Qe4yS=JTUF@To?io+rY@!y2Xz6F8Gq$-})4_VpO8aX2yPb79IPVbmt1WD;v)*}6 zch*|({ejli0e&{sv06J99Q`ynak|O)nBR?a(WMqH)fxV_xQL$yZ_^F^SQbCNaBeXg zYr!SQ4h|Zg`k8U@xCwh?4Z5^txAA_p{p`bPP47!IWmjH0_%&`f^GQD8GY{oq6Wi3# zY8d;h(`89RJ{x9y_lQHRb8iZrhN(;Us}DzZZi%P6;#|I#bDI=h&vtHL{_MzuWqFH* Xh;c0C*f5Ths@Ybj;g_j3{vZ4kyoqZ= literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q95s.bmp b/winboard/bitmaps/q95s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..69eac493922a83ec5f1571a8ab3b49c4438977ba GIT binary patch literal 1202 zcmb`G%}vBG5QQfg;R6!sfLy6!BXOq&n&1eEr9IFO6&P(JMl@i=#Rtpgy>YUH<>#=% z(yTwf^^9Mf$@R_Csp#0?_X=@4M<<=?cliI|yu}F=21l)xv5c|+=A$@?jB{>g{YmR6 za)FwWvdBOViqeyPWBV7suJ*q=U1;um)3xThKHPAOthwfVPx)T`s;Z>vN-L{j-7RzVYO-D!;H~t?D^U#5_Mc7FqP!9aBXNa~n!`z%bkf^!aLW zxxe#l6E@0n4M%Yl$8%3)D0q!4?i~8b8Pz+?4DK_;~^6HT(<$qn8{lMlJN(c5GS^%XyZL!V5AzD0KEv#r}NTr4u+1yf0% zyom;S9H6^P@H4oQL$|P89Po~N9;@oRnnq>hZpmA%Q#!JMlg$DyGWkszz--GYq6ZQt y2y^ez^N;LNK=&ZmTjW;ct{G=}%a0v8tc1Sq8l$t(-3!C>p7BxanY8Tr2mS!7rLVsL literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/q95w.bmp b/winboard/bitmaps/q95w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bb4a847a83656e97e89c930369999133b86fca91 GIT binary patch literal 1202 zcmb``v2DXJ5Czbq8GxO+fz@UT3rL?CvP60kaFKm7!39|%18@YEDg-kBj#Nw=31Aoz zK2bvCBi2h_hK%N~`21_%)((j*Iclx4wxevo`7URosn>$~27MMG z(JVcalDwFk-8~-r=vJ~BdX66V9lf@FgIs@$$J$#w&M2N!m3V!CnCR&muxowWucF~bx%gEDa5Bun%Wt*CPw5fTD z>MZ%(yfjbjvJ-P)_3G3!yTz$1s|)gv?%EuZU!C}bYW3;D#Z|^kaw?05^8}}3mR!w; zY|%AO)zx@NXYZ5QauR>mWv*}a(x~luM4w{inutCa+=wagu}mw~H53XN|AB>M-}dY* tBs2eNc0ETeJJeRxjxGkdJnYCZR`M7`jYrZW>c;o_@fyw+ZP)yRzX2(GkAeUI literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r108o.bmp b/winboard/bitmaps/r108o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bb23012afa0c6667d3debc2c57861feba09563aa GIT binary patch literal 1790 zcmeH`F%H5o3`Jd#U|{GGSUCli*trQ;KtW<)u1J(*EgV`lZ*3e0_&!(Jq&to?l(XSTm>sPD>c z?{DO}a-rdY(eLvdH#D^V4YmtQW1i(f%#V#X;3_lTgG*<80v8g)_m?P^+_(hyUo+O9 z>-?YP2EO<{TJ+G=&klMhoat)~E;HkXURAhire_tdn#dUX400qAL4rd&2=*yo!g7`o u`R<$(A1SNXugK-^cw4!HzpL-Y1*H`Yz5amlJda!=&$oO$o(`!0ExrN>^c2%fppVf~O?6g1BercI}&srR%aS-;#cVRSc=n3)BbIbgkW`2J=#Q#hu@Wbcv zVIIcw6L=oL+kDl+rLiCs%60+RJdgjsmJ%ho>H5Yq;&qBOe`fL7*>#Xd80vkOTS)n^ O&o8@YyUP8&Zv7YFRPUw$ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r108w.bmp b/winboard/bitmaps/r108w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..196f913ef305fb46705dc5b41526441ecb3152a5 GIT binary patch literal 1790 zcmeH`%?ZOW429(unp-_WuAQQR-n&V6NJjGz8K5Kdm_x9tUl$C$m0)NDa`+Um9`e)e zo=+fgrSn4hunZ8Sp6LI4);v&!lLHYsKk<^<#;jWCjL7|SV~nc_>QMAG$3C!V`q1?D z&XX1f=cGJ3Kb7g(_5JCj2!$8nh($ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r116o.bmp b/winboard/bitmaps/r116o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2207e9b7528b33cd91bd21137f9ef711f57a1f52 GIT binary patch literal 1918 zcmeH`I}XAy42E487#MnluAG7(c5cH8RAOM{N=OV`1H=W&)}e~|?K~PPAwWn7AuKt` z7dx@zy3^TmKq_O5Bk0^~Mw#wUU|$TK_OK%=!px$HRA0cQ<|aeIl261tT*UmH|GWGs zUKt%+JPrXdYyCdWA)gTc5pP(fF+ShD<9g-!u1h&qe zM>be7Z=rghHG+Re4Sus8-S6LF-#@Wmq!A&~mTCV5xsH;RGD=2BnF7W58BQlk6d@5yw(|KNcAQ^1 zoo@|@9VqU}FXk0gl0VY=b*sLi3_BYlvS&8@04M2-m-c zWgdY)fA;;O@Pnf0!Sus26)yEv>aSP*@UKetC*#)G5Q6gLOoHS6Rt}L03P-w#jRgB~ k-Ou~}#ks}=afG@4cX@&uyX<})hDMohmRLC(20ae&0$rGFH2?qr literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r116w.bmp b/winboard/bitmaps/r116w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..918d8d707e034add42820a75e1065cce6afc3914 GIT binary patch literal 1918 zcmeH{Jr2S!422ysbb}*w~OjR*51gVxB>5Hr8<>@K6 zd*6W6h1N6m!#Y5a{VUC%N9_acaC0Fd_o{LQoJ1QhEwUcRN;tV7)#n0R6us4Rxj<)n zN4wBqJQ-6iBoA3R6rPo1;n#O=%6!rJX=n9w_d^2Vd9eI=Ubgw#=5NwG@lz%FOvZz; uAw3r|H@gAoK>ps21E2%{gCi#B=8xXr@&XaZ)&I#>FY(vO{N33d$nXZgkPO@a literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r129o.bmp b/winboard/bitmaps/r129o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e76cd84ed166848f1edfdc3390fa1c1890bfcf6f GIT binary patch literal 2642 zcmeH{u}+6D5QmEnCOWvdv-%V^ad+{33^fkE7RDFBH(>k^g!8*=X(4fdKZ{0wNw3FO zTCP{Fk5A9n&h&u2r@f|Dxytw*<1aU{T|l&{L`2&{A@V=SIwDWH5(&5>Z31+cTiIvH z0d8Okkv*(sg`~}~bkj`d^4{cY3h*5#@CMy)XL%!RV~Tk#>)E2|w#*%Be01`dz$o3Q ziiHUv>b!sN|rVkIp6CEf{juyk;VbwWs5ZjaHD9VpD1>-v@PJy~jtx?B1|BFk2(7*V_-SO R-DIukVELacNx|Ejmv0%%`r-fp literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r129s.bmp b/winboard/bitmaps/r129s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..93b2c3970bb9d990c5ff307301bd4b2b6333057b GIT binary patch literal 2642 zcmeH|F>b>!3`ON+D9{X9vU|-bDxiCp+$S)N4!xFp6ZHleGZ5z71@vV_b{UYH3(=D`5m`ti)0 zI?1JRMm4_~mdbkyr8Z7p9FW!f{4C~z$7#-8W|s*&Ioo26P$=9v!a&9r#@OgRh?QNO zb(OI*Aiq~Vxb~Yckhwt&Gu}px`;iOgFEJiB$C3mvOBp3DVO_|=mL4qMfozOl`{O&a zPjQ3}iSNajbEXsazcMzr&&zqxVgZXgVOf>QS&|It#w1)Id~hb4-q>3~{cnqTu@$7EY1KM&yI#m`{zN^|4jPC8r6|o?g AA^-pY literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r129w.bmp b/winboard/bitmaps/r129w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cc3ad72e77af7cec6662861d71cbb39193a5832b GIT binary patch literal 2642 zcmeH|F%H5o3`J8IkQiWLXXO-BVrSt(4L8dnI6#iT$WUQ^96N5MPB5TWvE(LsO}jEItt%x6AB77@AFhR9<|6a-*c&zVKbqvS>f z0!hA$W=|DiZ~6AhT4QfzoiS1dq+0O^-V9mD8*y4}U(77YT%N6r^srT3oU0mqsX@rK zHL5qC*{Civ;(wOb;8dNLesHu}o$4D=-#6%;L0JmMV<7|M6pS!l^JR(b2wB@#NggRW c_aEk6i*I*5H)zow;h0rc&ZLQg*{`~M05qQlFaQ7m literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r21o.bmp b/winboard/bitmaps/r21o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3dd5f0943b179f82c23e30f7031911cab966e7b0 GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKIxgnSd$Od5$`2YVu5dQ$<2MiVr&;MI6d|;?x j`1$7t!ym>U41fP($1pjN+VB4>7``Z0FnsK(fSUyX$rw0@ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r21s.bmp b/winboard/bitmaps/r21s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3e731eadff52dfb7033d420852166ca1799a7e8a GIT binary patch literal 146 zcmZ?rox}hEc0fu4h()28k%18`5dtKIxgnSd$Od5$`2YVu5dQ$<2MiVr&;MI6d|;?x e`1$7t!yiW6`0rnc+~A5dQuDeZvn1 m{)RvQ=QsRguy6SHe?MOQhd~~!9;EL#M}EVPWPZ4rAhQ9-3QQ{i literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r25s.bmp b/winboard/bitmaps/r25s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..91b184e8145e5b5c6a5ad7c46ca513eecad2b817 GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd)ZxgnSd$Od5$`2YVu2sgm+2L|?r&;Oq{{9)j4 p`1}7nkd|-w_kVxGKL&fe_|O0O4Zr`tZ}0{}GDLk|D| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r25w.bmp b/winboard/bitmaps/r25w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..cc4ee6f874b1f2efc0e558913ae84f79cc44a3ac GIT binary patch literal 162 zcmZ?rUBmzZc0fu4h$W$zk%18`kpd*I@If#WkPX5h@c;jR5N?3s4-D)LApC=YAB_Jn X$T$3BuqTK?>R@`nbTU8OOpw_CrieQ^ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r29o.bmp b/winboard/bitmaps/r29o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6b725f6e4f93565a11e9a6977a35a8b7a9b86a21 GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q351uxgnSd$Od5$`2YVu2>*cL4-5*cL4-5YXAQK3)TxZ!y@s=A0UR=0ipr?5mV&= literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r29w.bmp b/winboard/bitmaps/r29w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..49d7640133334df02caac8c10b76c0faf567635b GIT binary patch literal 178 zcmZ?r-NXO^c0fu4h-IOek%18`Q352d@If#WkPX5h@c;jR5dHzf9~c-aVE7LM;}01A d&%pfSKLa~a_#aR$OdpuGNc`~!h+%esXaFFeOUeKM literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r33o.bmp b/winboard/bitmaps/r33o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..92e47c3fbb8a082c982c248cd3cd40cfb7c20ee2 GIT binary patch literal 326 zcmb`Cy$OI&41`ZB!NLUuv2zLq3p+;=-Ao)r9Klxb=X^=jO0Y3-`End2q^v6sTDj|) zQ+mmR1%X2ontYduq)3X`+5E}{h$LUhS$O+{?8QF>3h`{&Dm&P|{`i-G?!WJDKqB{c Ra#9Y1aU7Lf9Bcmd=Ly&kf#CoE literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r33s.bmp b/winboard/bitmaps/r33s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..da4d22181574ff0af8db2947caad43666490c83a GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dv!+z`wJlmlT9`2YVu2>)+@u(8rV7#R3L@^Je9 z|9%kv9|MCu3jP28eh~jZ14BKS-v19`UIPPlY5RX*^I`V?`Tu`D$i6=e4Du+nj0}Vi Ir3v{H0G+mMRR910 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r33w.bmp b/winboard/bitmaps/r33w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..4afebd19137e7f6891d54bf031b93462f2587393 GIT binary patch literal 326 zcmZ?rbz@`z13Mt80mO<>%*X(d-~dur_#l`GCVPKF4*@r>P$UwxQG$DTi0EI$h6#xJL literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r37o.bmp b/winboard/bitmaps/r37o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..58139d72ea2687b1a80c1f5fc76b012b746234c3 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZF>F%bU!|NlQ^ z8Ycd~{{MFn8-r$GUeKF2LRYyq7eW9 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r37s.bmp b/winboard/bitmaps/r37s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c46138465ca8b6fd931c209b1ac7ec4471251419 GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U}k+z`wJlmlT9`2YVu2><^9VWZF>F|4@${|B&o z1_pMlbp8MDVDSb9elUIi|9vohfI*(BG|XI>Jy7@j`~Uwp$ew=;49qArKYKHnk4EG2 HKe{*oF?)Y= literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r37w.bmp b/winboard/bitmaps/r37w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..528e2ff1c9b50f043b1bae50345a9179624a0eeb GIT binary patch literal 358 zcmZ?rO=DyL13Mt80mQ0M%*X(d&;U|b_#l`GCKkT>eKF2LN|nbeRAE literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r40o.bmp b/winboard/bitmaps/r40o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..000fc3e24400822260e1f3a38c6a467a0807375c GIT binary patch literal 382 zcmZ?rtz%>W13Mt8frJ?uAQBEhN|+mhnSk;j3|px$|MxVde=zWa&HoIw=l%cBU_Q)U`=RcI X(K}@L!1BBAzC)p#4?Y0%afA~9k;%1$ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r40s.bmp b/winboard/bitmaps/r40s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..e67094a19ac5f498dc1e3fb3f212c9ec87fd83c1 GIT binary patch literal 382 zcmZ?rtz%>W13Mt8frJ?uAQBEhN|+mhnSk;j3W13Mt8frJ?uAQBEh>IxqOGXdp67zFc1~mQy21c;_2L^U9{eyv@F7yYeJr5X|!S=!2g^O-J_yDX9oyHMP0G!;1q5uE@ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r45o.bmp b/winboard/bitmaps/r45o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..3a8467251188f39771e12752daa423e197c18609 GIT binary patch literal 422 zcmchSu?@m75Jk^4>0k{SR!Bk59t;6WrpXw|67(J+=}bZN`Tt@|5QUbLex5J?%XdCs zx?o;4zennn6>KrC#ACl`M^91#kbtM3H~C^N(4QHbH&}cOz^HrHY|Re(AG1FKQGEgi raWZRi{}+~d+{5Q{uc-NDZ@#xu-vH^8x2pC2p879_srEcr%KzXSZXfM@ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r45s.bmp b/winboard/bitmaps/r45s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2d8fe11b9066714e7caafbd4824d1331d619ea83 GIT binary patch literal 422 zcmZ?rUB<`&26jMF1Bi8@n2`Y@kpZNx@If#WP!5Da;Q#;sApHOT4=@`m{RgOy5h#z7 zw*UYCAxM7%0|P%cdj9|a=Rx8Jpz;qG8010x4-5?UAo~0N|MgHlU1*qnKzD%c2f9lh iWPbzHeL(*_2k{vg7}&AVj34a4;^;Im82^LR;<|9><*aw gVE&j7^dHDQ4Gat*0+as1-vAcJL4$%9Bu{__0GRmGq5uE@ literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r49w.bmp b/winboard/bitmaps/r49w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..f9aa7841b82f06347cc55cc0818fbc7065751399 GIT binary patch literal 454 zcmZ?rJ;ulY26jMF1BeZwn2`Y@(E+5c@If#WP!5Da;Q#;sAPfWzIO%^Nh4u{$gy{bV z7#J8q<`AMEFfcHK)O|qE>>&OR1_u6tq=D`My94Gvm_HgA7#KkA!b$(&Zve~Vpb3O8 ISQ@Aw0N(h;T>t<8 literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r54o.bmp b/winboard/bitmaps/r54o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..7d26cd70033973657a597ee0b228e0d9eb540d05 GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nZcazii^P!5Da;Q#;sAPfY5h^IjsnSttIv^`M! zXCNO&!^C0qbD;cupgfFz0F;mi@?rGH|NsBl1NlFI;`KoK50C~D|Nqth|2ZgV1_nlu zJ7Dhm01PdAApbGYU-Cfu0MNbsNc4H2_<11zJVOOL3T;>U9K=6h$M^uO9!dk1lM?;_ D8ly5s literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r54s.bmp b/winboard/bitmaps/r54s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..1b25f53e7bac15a1d04039880436eb6ccd2e5be4 GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nZcazii^P!5Da;Q#;sAPfY5h^IjsnSttY(d9QA|55+{M?Fyd50D1A=N|(DyeS i`7n1M2l}TU$cNDffb#r6J_c>a_y8=9Mgz5z68->A8wMKy literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r54w.bmp b/winboard/bitmaps/r54w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..44123f05f95853d9572c19e9d4ccc331c1a90bf6 GIT binary patch literal 494 zcmZ?reaFZE26jMF1BlI_n2`Y@u>nY3;e%i%pd1K;!2kdMK^O@B5Kn_NG6U5UOFsZA zln1KEMSlRw+XLl)0O@)l{Rc<`iU0o?7#If=4RaUFy)geA0J@hS=w5=f9peMAIy9QZ G@CN|q;OPhe literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r58o.bmp b/winboard/bitmaps/r58o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0f8f01825be008c5cd9803d6a1fef18c7ea6e40e GIT binary patch literal 526 zcmZ?rCjJ>H{26E-F8TvdAu~`OM*pe*|Gyu|{|6M82ht!5>_N0W2n`|{>Moc&e*oRx z4s_o~pno3&=?6f0MkM+H!sR BW7_}# literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r58s.bmp b/winboard/bitmaps/r58s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..eaad170e87cf2be49eff99a7bc1f9750d8c653a2 GIT binary patch literal 526 zcmZ?r8j|JnclFAt>u18I8@4HO?#G}K)% tcm4pnj~(bvm_Hu_{qqsXhtUs!@{B+}2F>440~W_Y1C0R!;^PIX9surQGRgn| literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r58w.bmp b/winboard/bitmaps/r58w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..11f1ac7c2fa8fe3759d983ac20133851d28ada2a GIT binary patch literal 526 zcmZ?rR8@vtON%vsZ7YE%F`OYTc CNV2{F literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r64s.bmp b/winboard/bitmaps/r64s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..940ebe9e3b4d69a01a37556e698af7a9cf90582a GIT binary patch literal 574 zcmd6jF%m#95Jfi>3WdTYoC2eFCXS|a4KoU@0~p``#Ed2ljh+0wO?GFqo2D%zJFVni zP_>scM~}vMo?cR_Pd5P4HyiXo3Hi@0^*}c^FfcHJoO%Fk-T(g&7#P?={J~Dc+{*w2Kb40CS*6xc~qF literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r72o.bmp b/winboard/bitmaps/r72o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..2a53da75dfbffd2e98433def75034b0e7093d2b1 GIT binary patch literal 926 zcmeH^F%H5o3`Jc!FmQ;joPtP9EZl*M(DVk}fL^6XVPj@Xr7GszaZ3<%09Gv7ef@Eq z=x4h>m!z>lT_bmv1r@3vuzp;nTtJbOU}nh_>Hm9fWFi%e!i}JDt0Q~W=Q!`rdC_16&Xm?QGNF5 w9X&k6BZ!9qg{XSr9xcqR>a#phP0o6rIM#mB-*ccyemeKTdMt|EZHyoJ4gvHdiU0rr literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r72s.bmp b/winboard/bitmaps/r72s.bmp new file mode 100644 index 0000000000000000000000000000000000000000..b438967d8379a4f505b1c0b30f97e9ee5f555aef GIT binary patch literal 926 zcmeH^u?@mN3`KpUpkN5vOaT%V4Lh(1x|<~HWQ|A^tU!UzeE&1Zlm{)A{@06h_C-I3 z(=-Tc2OpuMD@kJijQ5vK(+VAvm8zOrwde1-*hWbT(_+}eyw+y}Ke%Vlo!y+VsQPT+ z%AJ`z%`665fhXq~vsdRE7~+`)zW%eu9AZ9m$gLnN&ogEo|KlCURkzIcgE1=N{cf(3 P-?M$p&w=5}7yimmR-u;a literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r72w.bmp b/winboard/bitmaps/r72w.bmp new file mode 100644 index 0000000000000000000000000000000000000000..bc615cc4eac298a63ea6396cb22529379cb992ea GIT binary patch literal 926 zcmZ?royW`o26jMF1BgAKn2~`IES>Oh6G327&+o|AR0DK=|ad8$c#9F#ZP; z{~JI|DzN{6&9MiYNiFt2u$lE>GeHC>7{EjWkYt3i4*=QBQ1$~Ln|+l1pO|ns01PWw nxHSOT(C|bKbL4pZ0aU`kAP)|I>aqVZ)WgjrjZLk*fMgB;;aY1h literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r80o.bmp b/winboard/bitmaps/r80o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..6019342b1a5b542ec49d20b5181789682db5f289 GIT binary patch literal 1022 zcmeH^F%H5o3`H9T7e!nb_F4wtjiNAm^!ucF_lmGl6VgdCX`j~eq@YN_0JKa25kfX-9-83si0_-Ve1!;|W@hwkzW*I3&CnbAR&&oelX45T$f7N-g?oL% zSJuC&PRU-gQ{0C}bM|_$?^Zk?%;rJ7kWGw(E^%J|%zuyi425pkzw24*JW<1}eu@K48 z%g>M9Iys#$TZeJv`M`0t$Xo_}&-=HX#)cIM8AK#uBYuY`t>r4t9~SswpCF!;L!ld= z&QhmI#X~*(J*{OuTfm?4fSjracL%Rfv#UGRQI;pX4O{$r3{BZxEK+M7wf*mtJ;=1%2J@sciIAc}-cb*HH8cbjs_*q!;?Vo9`4x(q#P<2)fGjy(@ zv))kv-=)9N`$}NF-wU^q*CKD@9Y^Flav_Ttk<^xx>6@wNlK-vNx9ZCJo8=BnEzCOHPSTsXTIoO9^pwJesl#- z9;N{==n3Ez+=CUYUv_^+CI{reoS7%{XXczyK;|Rz=e#1Aa~!}PJw@2h5{B&m14q9| Qi0m(X2S4`wCpYi=8-z|jlK=n! literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/r95o.bmp b/winboard/bitmaps/r95o.bmp new file mode 100644 index 0000000000000000000000000000000000000000..5395cf82e29d74f20cfb27f6f42eb47664b2b2a7 GIT binary patch literal 1202 zcmeH^y$!-Z422y)qM*nKX_*2fdS+k=T6AF@TL4hS- zJ~{rA-)?_hklIGxwfLd;f(nfv<^O4AK9dL>#?0_!F@b!)$I)gHRgpuET|XK*InLCM z`?I$`7wkWYZCI&&G8`)m3tQxH3HDC826uMD2E~PO3!cC79r^O0&!4B?VSMKXH}CHc zByzZOG`+T9QBX|O6cz1&@u&)=$U~fXrs_&A0`N*V2zAGnIby#zkNX`8j7Q!z>+Ud zKR(;Bvp-yxVz$G%g&&g#38tU$zFE01pwMZmN}nyxfamvk@>(Kw)Ukwvw`X}Wo-)>l z7uc}>B5ql1@;p{I8jr5m%%482B}cCdK(H~oB6qxebH0;tP|vyNh066mm(L-eZO57W z{3AxJ+FSm7cj>3BxtIK(8MqdaHT5g6s#auVqjm3kZ{b)ZV#-+0AOh6G327&+o|AR0L{DU!oH1*j3Aa*e@ z$p8EQhX!n9^Z);VSilc*KdsqNi|xT-1+ljt%x(a4AYpg_#AbxBAAs1*qilMH!vRp3 zL&G1$WMBZt5pvu?6Qw+Qn)v`x&khoQ0AVxJhh2Yw;Xg2;fbAvB{=fiI(*RZv&%xBo Nzi=Z#?tue}*Z|9?w0-~p literal 0 HcmV?d00001 diff --git a/winboard/bitmaps/tim.bmp b/winboard/bitmaps/tim.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0de2550b5afc70c744970d26fc3a6635571f6865 GIT binary patch literal 7478 zcmZ`-4@?_Zng>mnJC+O}ojdX+zFj(PT|3xw;MpZvWQf7LCp+C0l+<3^QK+(ME8EbG z$FZqP5?80I($c%zTLjmR!4rDAP@$8e6){9%h4)&D$Zc@!B;GoNBh=kktdp)z#9FKf z*~)$2Gp6bNdA4WXym{|8zu)(L?|bvy`IDBvsvxE1sfr2})VgD_A_$+;~)R{js7@ra&mHaJXSvV z-~-ZU&z?QI?TB~w?AeOe*4EuNtYG`<>MA*79e-V2UEjFIHY~sT)vri9))A-NA30)q z=bd+U+wi(P?#c7Ld-rzxY;A2-*zI=gy4zN+Kl98p6@!C=-_Vv$r|~u^dU}X`alpIpzFYCyYp;=eW$xv^*sqL-ean2Yf4N}Wr=Nbhdk?SC7g);u zpFIE1I$kG}Nz%9ce2SvV@ZUK9Ut`N1@E-okae=-*aNq!GdvaVZm)mWttE;O(Tle+# z5tuRtUX<(QvE{ZW&ln%*iznN#f7x#TU%XtqcCEr_H17HU$CPdUpy`Y%FN2ay!Ry z6@nn_UXu=R!29J=?u%!$*}U7g+>SoRdUJC#nIAX~uaVc<=;-Jgl##WXKYi;5H-D2( zZ&hg{GLdB%lZgq+Q_7+xUbI+>#bTYq;VA0Hbh_SnZ=vA4vDWv_PkvrJh~?(N%UI5z zKMz1q0CaTihd&xS^jx~BzE9gM^Tad&XHh~)#d}k69RPw%N3p1L=qx&A&Ha_s!GC$} zz|#coG9VJP^XEqZ4+#R`-+Zg?x%6+R`?MlUF9JQMGuh8xSurO~rh++KP@0q}Ip6^x zFpT#yj?2EMUnY2P*r9ix&_lWK`_a4Ubfjr-#1mU&G$yBs9Uu1`8E<2gD+U${V^##^ zpn1&U(2ZS+E5lcQIJSdF&`@p(4@jcmZ@rvOH}92+i>yiGTwFXSlWFs^yzGcIFSE+L zh+A+v0kLF6UGLmw@9&Wx$VI>%JR%qkIPy=xPrKKHwquz7#m{82L)wTolAoQueLH_d zHf|mVFDZdx9eCxhFDaD=Z$EwT20`3G8!hYoF7o@+fpmJWmW?qcCKhAQX*XWk=<9A8 z>|5=don5!;Z~MHWxsB| zXZ!ZT9N${)?(3VM&qWMAgDA2|MhSp*V{xVP74wl@dL_A~*dtCs$^XE-&oaZY9vBv> z+S(c%{OWgGO#GIT*74)B^L^{<>-vrLymccY(yVFtdo`DUV@JS@QeU~e z8!hKSF9r*tNqjsWi^XVK7W3XdTh+a=u(i7S{qN7}tpn>P^!jyuD3_1OXm;4dn3Qo{ z3fTeH!OMgoh70n;4}gxK;5F96(qfE_<)=5GOwU@a`Fxwf;PqLpzPxXJ-D>q}W13-@ zj5Rg!BM3(zLGODzctkN#4KxpVL@y|ci5naFjp@AADvB$~@#M;u<}3E3X61{J4@$RQ z9M;4%5LI!L1@K-eB?Hh3?!b5*}%&z-sUX7|{-r zed~I?i2PVu!%Cqdy&|)EySmPt85kJ&@bQ^1 zXyob5d)H^1H5v`r6K2v1c(?3aWC#8&kt3iUZA6rT+Kr8lLczqE|MUKRyJ29U>%%X) z20r}t{qNb$E9P;7VI{9&SjJ1U8jbk|q7l8L-vxn)w_`#;{70DnA)59zYnF?0i>0n} zauSm0rIj;Z{Q7&33%$CrVu#&qa&mDN1dAdai z$5#KqbW}_y%Mr zQ4HlprQ8u0mgEjOXR#da9s5C1*ZFx}<8ou;sZ)19ZrQZ?4rlXGI35R$lGooDikH26F6Pm6puSh z1zI$LUJ;P?~-Id!~)#6Th+ByRgm8h&s(Q4v$4qHIj2Ga!oZxV zl#+AEP4_3GDNkyL=&g&l%sk zZ@{O|=S9(r>--pf1lS?9QrRKc-E;E#V6D-po@rI7R1XK9dOimkDJ6Hk45FpwItO<^ zM;o61b(c>M%acAg9m#uTY%(U+)f_4D1BPE?z7dI?)YjIvV=+!mJ$n1ZC%NwKP~GQ; zX|LgohWq`gpO4jqLS4QS44h^ z)w10_HS^$KKltR@)P@+N!KntCalBh&8V(ISzy7fG?FXw5AJ)&$!qURBZQ?(7Jd3^{ z?${+bvL?ouDv;aK(sH_`15e>V1ae z_0QM0&a|p$9<{#Rs#>U@pO55atjFxo1uvs_2}Q&kLMt-o7)|%$OcVzG-?om-FTGp(*vnYigCT#W*t` z%I80MN;RnWh2XVAub+jzmL8XTj}vluB5|~2y)wO#p>qLGHPf`escECTdt;+2mk)j6 z^%a=h3&&Nh&)sUB?aISq?$ylRHW<#Fp+zwk$_@A;kj;b3R3PEs1mo?-3Q{~5Fgs06 zgZs}`X{R9xvZ4>Be5j`<^nz;U^!5Yb*Br_Zdky&B5rT!7_J!y?bo8Vse{~`e-7#P} zTt2O=wwUAlf4N^K#$v-YcC&eWW#w@!CdM>Xt*5tVPKco%4I^p_j|-3Q+wG8+MX9(p1;+aW=cTnN58(Iab3kEZruultB4;e&4S3hMwjepm_I>cliM~sJ|Jl zj^5#9gJ&!IVQUm~)-5l)mJc6(`S6%d6KbkeSH%jtI>*Zb*XZIuYK*_T46Biop<$c1 z43GWDuPEc80ReHJEgbCNVrTd6Kc`SKL8rnwm$E>So5S8*{jnGIKGCGpSteg@oU}NW zEd`UZMlNSrnpHM(JTSC9i8nMcu}@)>+kz(8ZPZ?mc>0r9%s~rBag^MwG3ZY`R6!=O zTi}g@Tb5Gt-VRGq9xu><7jsY?-^o+Nzlb>m1QE|>3n-kyjqaxX`}gmK{c69N!M$Zo z3|0%Atgu!%l>#U5%Uov|_MA*Xl)<{hzynTEiNrVffeH6rwN=~VOOdnPO~za8ueWz^ zX!9G^@AuUo?^}I%{K13y6Z+e?BS|xCgu{gb>tyWkA~=q-O`tAFna!``WoT#uC;~rQ zG!PV<2b*dkv$Wqj-STDot?lipnPZqdFCM#iQ8j;jwR<*ioz;idb1;A5O@d{Eg23I) zZ1R8DeGvjQ2$(-p*lfXoz{&=<)W-JqTel#me);}306u~;HS_4vjOy62)nl;rIzD?m zH$9)v=e?qbl{Zj4Z2vF(q3jRPIs`_1R-rhW3*Gih$ELQA zsZjOQ)K{vD7mumx7wV^Tu$zmBK5vW>GCVIO{+6TzGIfz32p)PB4Ct5SOQsqzat;4q1E~MdRT}sKYB%_le@qJzY7>HWYr)E0qi&Q zo?hisK{uapgNI@L zAO(F(XbufIok2-1PX(Rv<m<2|ht(Y`fk?mKf3_=|Hs*4G6)Yd}&F5oDtxtPM4J7-L4Emx_SJ#U{<>(i@F+( z9o~l83Ia#DG6^bC_Aau+_yg5Lfk0Gf5QG%`g+oacm+*70fRu41C^yd|*j@gvn{RY2 zyCz+nQVAOnmeoNpLpBf+0DwUPA8-eTA6!@a8yW%vyx0aLPLL=m;peGnAd_%s+)x0K z=K<0Mq#<4DoEq32$+=F6TBiI70zd!(jzrARMCFpaA>kJ+V8czn(COk_skw|lx;f{T zAb}(jygLE9U5&0rcrRDNo3BPG1q44u38_s`Sn>ksBpyN7C1I)B5Bm){u;e(w@28|d z&>{&%;K;ivke&cC3CeYMxsx;9zaNBj23jN`@#Y9hL{M-AiU!c3p{v!=YQH}yETtsL z?@vf@j5b6Y1jxP@+!y!@Ae;h%FuRsHu4w5k2C}JaxYLs5!Ca;A178rq7}68JxVq#N z8ma?Xc&g+VIDa7HZ-`1j6am46Jaw0M!zz&AT+8r}n`8-Oqf*coy$6;neNpQU;>1LH zR8bwShNKY422%b_;Fyit8o(t$5cmNWga-Ns0v)7nTBoqS|KL%m$(j!GJC6_Y?oRGZ`K%nc(>hpO6~-R8$C9I_7Nm(nzi}E5L*$ ztP<*4W#vA9AP|r{Z5sAcC8e_$g|`R zgeyT#tieJT3{ZAp*1z1)RZCpd1Y8_owC{t^5b^EioW2Y&#@( z=)rZrM`5eZ+H4AEHM}x}EeS!e06jlSz5vM%^IZmI^HTQc$jGy$*@f{(<}Dn68(~MP zLlfhb{fh8WvoZys)RK7Kw5v+>m*|nBZXE9er~R*D1z1SN+E}p z1+t>B42Il1dI#9xV6+sOXQU3~pa~I5U&J8=IHrfv>5r3Ph0^I!EJ8*MEXg?m78ZFR zx(Q2dIt?OWEW+ZUgbx=)Ha_To6?jm3^ypG5$Sn3R!e1QDV6Y=-$@ that is POSIX.1 compatible. */ +/*#undef HAVE_SYS_WAIT_H*/ + +/* Define if you need to in order for stat and other things to work. */ +/*#undef _POSIX_SOURCE*/ + +/* Define as the return type of signal handlers (int or void). */ +/*#undef RETSIGTYPE*/ + +/* Define if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Define if you can safely include both and . */ +/*#undef TIME_WITH_SYS_TIME*/ + +/* Define if lex declares yytext as a char * by default, not a char[]. */ +/*#undef YYTEXT_POINTER*/ + +/*#define FIRST_PTY_LETTER 'p'*/ + +#define HAVE_FCNTL_H 1 + +#define HAVE_GETHOSTNAME 0 + +#define HAVE_GETTIMEOFDAY 0 + +#define HAVE_RANDOM 0 + +#define HAVE_SYS_SOCKET_H 0 + +/*#undef IBMRTAIX*/ + +#define LAST_PTY_LETTER 'q' + +#define PATCHLEVEL "6" + +#define PRODUCT "WinBoard" + +#define PTY_ITERATION + +#define PTY_NAME_SPRINTF + +#define PTY_TTY_NAME_SPRINTF + +#define REMOTE_SHELL "" + +/*#undef RTU*/ + +/*#undef UNIPLUS*/ + +#define USE_PTYS 0 + +#define VERSION "4.2" + +/*#undef X_WCHAR*/ + +#ifndef __BORLANDC__ +#define WIN32 1 +#else +#define WIN32 +#endif + +#define ZIPPY 1 + +/* Define if you have the _getpty function. */ +/*#undef HAVE__GETPTY*/ + +/* Define if you have the ftime function. */ +#define HAVE_FTIME 1 + +/* Define if you have the grantpt function. */ +/*#undef HAVE_GRANTPT*/ + +/* Define if you have the rand48 function. */ +/*#undef HAVE_RAND48*/ + +/* Define if you have the sysinfo function. */ +/*#undef HAVE_SYSINFO*/ + +/* Define if you have the header file. */ +/*#undef HAVE_LAN_SOCKET_H*/ + +/* Define if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define if you have the header file. */ +/*#undef HAVE_STROPTS_H*/ + +/* Define if you have the header file. */ +#define HAVE_SYS_FCNTL_H 0 + +/* Define if you have the header file. */ +/*#undef HAVE_SYS_SYSTEMINFO_H*/ + +/* Define if you have the header file. */ +/*#undef HAVE_SYS_TIME_H*/ + +/* Define if you have the header file. */ +/*#undef HAVE_UNISTD_H*/ + +/* Define if you have the i library (-li). */ +/*#undef HAVE_LIBI*/ + +/* Define if you have the seq library (-lseq). */ +/*#undef HAVE_LIBSEQ*/ + +/* + Options + -DEMULATE_RSH -DREMOTE_SHELL=\"\" is necessary on Windows 95, because it + does not have its own rsh command. It works better this way on NT too, + because the NT rsh does not propagate signals to the remote process. + -DATTENTION is included even though I haven't been able to send signals to + child processes on Windows, because at least I can send them over rsh to + Unix programs. On Windows I send a newline instead, which wakes up the + chess program if it's polling. On my GNU Chess port the newline actually + works even for Move Now. +*/ +#define EMULATE_RSH 1 +#define ATTENTION 1 + +#ifdef __BORLANDC__ +#define _strdup(x) strdup(x) +#define STRICT +#define _winmajor 3 /* windows 95 */ +#define SCF_DEFAULT 0x0000 +#define SCF_ALL 0x0004 +#endif + diff --git a/winboard/cygwin.mak b/winboard/cygwin.mak new file mode 100644 index 0000000..b5a3528 --- /dev/null +++ b/winboard/cygwin.mak @@ -0,0 +1,57 @@ +#OS=WIN98 +#ENV=WIN32 +#CPU=i386 +#!include <$(OS)$(ENV).MAK> + +# Use up to date help compiler +#hc="c:\program files\help workshop\hcrtf.exe" -xn + + +# Uncomment both lines to turn on debugging symbols ####### +cdebug= -g +linkdebug= -g +####################################################### + +proj=winboard +allobj= winboard.o backend.o parser.o moves.o lists.o \ + gamelist.o pgntags.o wedittags.o wgamelist.o zippy.o \ + wsockerr.o wbres.o wclipbrd.o woptions.o + + +# 2 Dec 2001 - the mingw libraries that I have right now +# (not updated for a few months) have bugs in fileno and stat +# that prevent WinBoard from working. +#cygwin= -mno-cygwin + +CFLAGS= $(cdebug) +CVARS= -I. -mwindows $(cygwin) +CC = gcc $(CVARS) +WCC = $(CC) -mwindows -Xlinker "-e" -Xlinker "_mainCRTStartup" \ + $(linkdebug) $(cygwin) +LD = ld + +all: $(proj).exe + +# Update the help file if necessary +# $(proj).hlp : $(proj).rtf +# $(hc) $(proj).hpj +# cat $(proj).err + +# Update the resource if necessary +wbres.o: $(proj).rc $(proj).h resource.h + windres --use-temp-file $< -O coff -o $@ + +# Update the object files if necessary + +parser.c: parser.l + flex -L parser.l + cp lex.yy.c parser.c + +$(proj).exe: $(allobj) $(proj).hlp $(proj).rc + $(WCC) $(guiflags) $(allobj) \ + -lwsock32 -lcomctl32 -lwinmm -lkernel32 \ + -ladvapi32 -luser32 -lgdi32 -lcomdlg32 -lwinspool \ + -o $(proj).exe + +clean: + rm *.o parser.c diff --git a/winboard/defaults.h b/winboard/defaults.h new file mode 100644 index 0000000..032e381 --- /dev/null +++ b/winboard/defaults.h @@ -0,0 +1,249 @@ +/* + * defaults.h -- Default settings for Windows NT front end to XBoard + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-97 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +/* Static */ +#define POSITION_FILT "Position files (*.fen,*.epd,*.pos)\0*.fen;*.epd;*.pos\0All files (*.*)\0*.*\0" +#define GAME_FILT "Game files (*.pgn,*.gam)\0*.pgn;*.gam\0All files (*.*)\0*.*\0" +#define SOUND_FILT "Wave files (*.wav)\0*.wav\0All files (*.*)\0*.*\0" +#define OUTER_MARGIN (tinyLayout ? 0 : 4) +#define INNER_MARGIN (tinyLayout ? 0 : 2) +#define MESSAGE_LINE_LEFTMARGIN 2 +#define MESSAGE_TEXT_MAX 256 +/*#define COLOR_ECHOOFF RGB(192,192,192)*/ +#define COLOR_ECHOOFF consoleBackgroundColor +#define WRAP_INDENT 200 + +/* Settable */ +#define FIRST_CHESS_PROGRAM "" +#define FIRST_DIRECTORY "" +#define SECOND_CHESS_PROGRAM "" +#define SECOND_DIRECTORY "" + +#define CLOCK_FONT_TINY "Arial:9.0 b" +#define CLOCK_FONT_TEENY "Arial:9.0 b" +#define CLOCK_FONT_DINKY "Arial:10.0 b" +#define CLOCK_FONT_PETITE "Arial:10.0 b" +#define CLOCK_FONT_SLIM "Arial:12.0 b" +#define CLOCK_FONT_SMALL "Arial:14.0 b" +#define CLOCK_FONT_MEDIOCRE "Arial:14.0 b" +#define CLOCK_FONT_MIDDLING "Arial:14.0 b" +#define CLOCK_FONT_AVERAGE "Arial:15.0 b" +#define CLOCK_FONT_MODERATE "Arial:16.0 b" +#define CLOCK_FONT_MEDIUM "Arial:16.0 b" +#define CLOCK_FONT_BULKY "Arial:17.0 b" +#define CLOCK_FONT_LARGE "Arial:19.0 b" +#define CLOCK_FONT_BIG "Arial:20.0 b" +#define CLOCK_FONT_HUGE "Arial:21.0 b" +#define CLOCK_FONT_GIANT "Arial:22.0 b" +#define CLOCK_FONT_COLOSSAL "Arial:23.0 b" +#define CLOCK_FONT_TITANIC "Arial:24.0 b" + +#define MESSAGE_FONT_TINY "Small Fonts:6.0" +#define MESSAGE_FONT_TEENY "Small Fonts:6.0" +#define MESSAGE_FONT_DINKY "Small Fonts:7.0" +#define MESSAGE_FONT_PETITE "Small Fonts:7.0" +#define MESSAGE_FONT_SLIM "Arial:8.0 b" +#define MESSAGE_FONT_SMALL "Arial:9.0 b" +#define MESSAGE_FONT_MEDIOCRE "Arial:9.0 b" +#define MESSAGE_FONT_MIDDLING "Arial:9.0 b" +#define MESSAGE_FONT_AVERAGE "Arial:10.0 b" +#define MESSAGE_FONT_MODERATE "Arial:10.0 b" +#define MESSAGE_FONT_MEDIUM "Arial:10.0 b" +#define MESSAGE_FONT_BULKY "Arial:10.0 b" +#define MESSAGE_FONT_LARGE "Arial:10.0 b" +#define MESSAGE_FONT_BIG "Arial:11.0 b" +#define MESSAGE_FONT_HUGE "Arial:11.0 b" +#define MESSAGE_FONT_GIANT "Arial:11.0 b" +#define MESSAGE_FONT_COLOSSAL "Arial:12.0 b" +#define MESSAGE_FONT_TITANIC "Arial:12.0 b" + +#define COORD_FONT_TINY "Small Fonts:4.0" +#define COORD_FONT_TEENY "Small Fonts:4.0" +#define COORD_FONT_DINKY "Small Fonts:5.0" +#define COORD_FONT_PETITE "Small Fonts:5.0" +#define COORD_FONT_SLIM "Small Fonts:6.0" +#define COORD_FONT_SMALL "Small Fonts:7.0" +#define COORD_FONT_MEDIOCRE "Small Fonts:7.0" +#define COORD_FONT_MIDDLING "Small Fonts:7.0" +#define COORD_FONT_AVERAGE "Arial:7.0 b" +#define COORD_FONT_MODERATE "Arial:7.0 b" +#define COORD_FONT_MEDIUM "Arial:7.0 b" +#define COORD_FONT_BULKY "Arial:7.0 b" +#define COORD_FONT_LARGE "Arial:7.0 b" +#define COORD_FONT_BIG "Arial:8.0 b" +#define COORD_FONT_HUGE "Arial:8.0 b" +#define COORD_FONT_GIANT "Arial:8.0 b" +#define COORD_FONT_COLOSSAL "Arial:9.0 b" +#define COORD_FONT_TITANIC "Arial:9.0 b" + +#define CONSOLE_FONT_TINY "Courier New:8.0" +#define CONSOLE_FONT_TEENY "Courier New:8.0" +#define CONSOLE_FONT_DINKY "Courier New:8.0" +#define CONSOLE_FONT_PETITE "Courier New:8.0" +#define CONSOLE_FONT_SLIM "Courier New:8.0" +#define CONSOLE_FONT_SMALL "Courier New:8.0" +#define CONSOLE_FONT_MEDIOCRE "Courier New:8.0" +#define CONSOLE_FONT_MIDDLING "Courier New:8.0" +#define CONSOLE_FONT_AVERAGE "Courier New:8.0" +#define CONSOLE_FONT_MODERATE "Courier New:8.0" +#define CONSOLE_FONT_MEDIUM "Courier New:8.0" +#define CONSOLE_FONT_BULKY "Courier New:8.0" +#define CONSOLE_FONT_LARGE "Courier New:8.0" +#define CONSOLE_FONT_BIG "Courier New:8.0" +#define CONSOLE_FONT_HUGE "Courier New:8.0" +#define CONSOLE_FONT_GIANT "Courier New:8.0" +#define CONSOLE_FONT_COLOSSAL "Courier New:8.0" +#define CONSOLE_FONT_TITANIC "Courier New:8.0" + +#define COMMENT_FONT_TINY "Arial:9.0" +#define COMMENT_FONT_TEENY "Arial:9.0" +#define COMMENT_FONT_DINKY "Arial:9.0" +#define COMMENT_FONT_PETITE "Arial:9.0" +#define COMMENT_FONT_SLIM "Arial:9.0" +#define COMMENT_FONT_SMALL "Arial:9.0" +#define COMMENT_FONT_MEDIOCRE "Arial:9.0" +#define COMMENT_FONT_MIDDLING "Arial:9.0" +#define COMMENT_FONT_AVERAGE "Arial:9.0" +#define COMMENT_FONT_MODERATE "Arial:9.0" +#define COMMENT_FONT_MEDIUM "Arial:9.0" +#define COMMENT_FONT_BULKY "Arial:9.0" +#define COMMENT_FONT_LARGE "Arial:9.0" +#define COMMENT_FONT_BIG "Arial:9.0" +#define COMMENT_FONT_HUGE "Arial:9.0" +#define COMMENT_FONT_GIANT "Arial:9.0" +#define COMMENT_FONT_COLOSSAL "Arial:9.0" +#define COMMENT_FONT_TITANIC "Arial:9.0" + +#define EDITTAGS_FONT_TINY "Courier New:8.0" +#define EDITTAGS_FONT_TEENY "Courier New:8.0" +#define EDITTAGS_FONT_DINKY "Courier New:8.0" +#define EDITTAGS_FONT_PETITE "Courier New:8.0" +#define EDITTAGS_FONT_SLIM "Courier New:8.0" +#define EDITTAGS_FONT_SMALL "Courier New:8.0" +#define EDITTAGS_FONT_MEDIUM "Courier New:8.0" +#define EDITTAGS_FONT_MEDIOCRE "Courier New:8.0" +#define EDITTAGS_FONT_MIDDLING "Courier New:8.0" +#define EDITTAGS_FONT_AVERAGE "Courier New:8.0" +#define EDITTAGS_FONT_MODERATE "Courier New:8.0" +#define EDITTAGS_FONT_BULKY "Courier New:8.0" +#define EDITTAGS_FONT_LARGE "Courier New:8.0" +#define EDITTAGS_FONT_BIG "Courier New:8.0" +#define EDITTAGS_FONT_HUGE "Courier New:8.0" +#define EDITTAGS_FONT_GIANT "Courier New:8.0" +#define EDITTAGS_FONT_COLOSSAL "Courier New:8.0" +#define EDITTAGS_FONT_TITANIC "Courier New:8.0" + +#define COLOR_SHOUT "#209000" +#define COLOR_SSHOUT "b #289808" +#define COLOR_CHANNEL1 "#2020E0" +#define COLOR_CHANNEL "b #4040FF" +#define COLOR_KIBITZ "b #FF00FF" +#define COLOR_TELL "b #FF0000" +#define COLOR_CHALLENGE "bi #FF0000" +#define COLOR_REQUEST "bi #FF0000" +#define COLOR_SEEK "#980808" +#define COLOR_NORMAL "#000000" +#define COLOR_NONE "#000000" +#define COLOR_BKGD "#FFFFFF" + +#define SOUND_BELL "$" + +#define BUILT_IN_SOUND_NAMES {\ + "Beepbeep", "Ching", "Click", "Cymbal", "Ding", "Drip", \ + "Gong", "Laser", "Move", "Penalty", "Phone", "Pop", "Pop2", \ + "Slap", "Squeak", "Swish", "Thud", "Whipcrack", \ + "Alarm", "Challenge", "Channel", "Channel1", "Draw", "Kibitz", \ + "Lose", "Request", "Seek", "Shout", "SShout", "Tell", "Unfinished", \ + "Win", NULL \ +} + +#define SETTINGS_FILE "winboard.ini" + +#define ICS_LOGON "ics.ini" + +#define ICS_NAMES "\ +chessclub.com /icsport=5000 /icshelper=timestamp\n\ +freechess.org /icsport=5000 /icshelper=timeseal\n\ +global.chessparlor.com /icsport=6000 /icshelper=timeseal\n\ +chess.net /icsport=5000\n\ +chess-square.com /icsport=5000\n\ +icchess.net /icsport=5000\n\ +zics.org /icsport=5000\n\ +jogo.cex.org.br /icsport=5000\n\ +ajedrez.cec.uchile.cl /icsport=5000\n\ +fly.cc.fer.hr /icsport=7890\n\ +freechess.nl /icsport=5000 /icshelper=timeseal\n\ +jeu.echecs.com /icsport=5000\n\ +chess.unix-ag.uni-kl.de /icsport=5000 /icshelper=timeseal\n\ +chess.mds.mdh.se /icsport=5000\n\ +" + +#define ICS_TEXT_MENU_DEFAULT "\ +-\n\ +&Who,who,0,1\n\ +Playe&rs,players,0,1\n\ +&Games,games,0,1\n\ +&Sought,sought,0,1\n\ +|&Tell (name),tell,1,0\n\ +M&essage (name),message,1,0\n\ +-\n\ +&Finger (name),finger,1,1\n\ +&Vars (name),vars,1,1\n\ +&Observe (name),observe,1,1\n\ +&Match (name),match,1,1\n\ +Pl&ay (name),play,1,1\n\ +" + +#define FCP_NAMES "\ +GNUChess\n\ +\"GNUChes5 xboard\"\n\ +" + +#define SCP_NAMES "\ +GNUChess\n\ +\"GNUChes5 xboard\"\n\ +" diff --git a/winboard/msvc.mak b/winboard/msvc.mak new file mode 100644 index 0000000..1ab021f --- /dev/null +++ b/winboard/msvc.mak @@ -0,0 +1,103 @@ +OS=NT +ENV=WIN32 +CPU=i386 + +!include <$(OS)$(ENV).MAK> + +# Use up to date help compiler +#hc="c:\program files\microsoft visual studio\common\tools\hcrtf.exe" -xn +hc="c:\program files\help workshop\hcrtf.exe" -xn + +# Comment out both to turn on debugging symbols ####### +#!!cdebug= +#!!linkdebug= +####################################################### + +proj = winboard +allobj = winboard.obj backend.obj parser.obj moves.obj lists.obj \ + gamelist.obj pgntags.obj wedittags.obj wgamelist.obj zippy.obj \ + wsockerr.obj wclipbrd.obj woptions.obj + +cvars = $(cvars) -I. -DWINVER=0x0400 +#cflags = $(cflags) /FR +cflags = $(cflags) + +all: $(proj).exe + +# Update the help file if necessary +$(proj).hlp : $(proj).rtf + $(hc) $(proj).hpj + cat $(proj).err + +# Update the resource if necessary +$(proj).rbj: $(proj).rc $(proj).h $(proj).res resource.h + $(rc) $(rcvars) -r -fo $(proj).res $(cvars) $(proj).rc + cvtres -$(CPU) $(proj).res -o $(proj).rbj + +# Update the object files if necessary +winboard.obj: winboard.c config.h winboard.h common.h frontend.h backend.h \ + moves.h wgamelist.h defaults.h resource.h wclipbrd.h wedittags.h \ + wsockerr.h lists.h + $(cc) $(cflags) $(cvars) $(cdebug) winboard.c + +backend.obj: backend.c config.h common.h frontend.h backend.h parser.h \ + moves.h zippy.h backendz.h lists.h + $(cc) $(cflags) $(cvars) $(cdebug) backend.c + +parser.obj: parser.c config.h common.h backend.h parser.h frontend.h moves.h \ + lists.h + $(cc) $(cflags) $(cvars) $(cdebug) parser.c + +parser.c: parser.l + flex -L parser.l + del parser.c + rename lex.yy.c parser.c + +moves.obj: moves.c config.h backend.h common.h parser.h moves.h lists.h \ + frontend.h + $(cc) $(cflags) $(cvars) $(cdebug) moves.c + +lists.obj: lists.c config.h lists.h common.h + $(cc) $(cflags) $(cvars) $(cdebug) lists.c + +gamelist.obj: gamelist.c config.h lists.h common.h frontend.h backend.h \ + parser.h lists.h + $(cc) $(cflags) $(cvars) $(cdebug) gamelist.c + +pgntags.obj: pgntags.c config.h common.h frontend.h backend.h parser.h lists.h + $(cc) $(cflags) $(cvars) $(cdebug) pgntags.c + +wclipbrd.obj: wclipbrd.c config.h common.h frontend.h backend.h winboard.h \ + wclipbrd.h lists.h resource.h + $(cc) $(cflags) $(cvars) $(cdebug) wclipbrd.c + +wedittags.obj: wedittags.c config.h common.h winboard.h frontend.h backend.h \ + lists.h resource.h + $(cc) $(cflags) $(cvars) $(cdebug) wedittags.c + +wgamelist.obj: wgamelist.c config.h. common.h winboard.h frontend.h backend.h \ + wgamelist.h lists.h resource.h + $(cc) $(cflags) $(cvars) $(cdebug) wgamelist.c + +woptions.obj: woptions.c config.h common.h frontend.h backend.h lists.h + $(cc) $(cflags) $(cvars) $(cdebug) woptions.c + +wsockerr.obj: wsockerr.c wsockerr.h + $(cc) $(cflags) $(cvars) $(cdebug) wsockerr.c + +zippy.obj: zippy.c config.h common.h zippy.h frontend.h backend.h backendz.h \ + lists.h + $(cc) $(cflags) $(cvars) $(cdebug) zippy.c + +$(proj).exe: $(allobj) $(proj).rbj $(proj).def $(proj).hlp $(proj).rc + $(link) $(linkdebug) $(guiflags) $(allobj) \ + wsock32.lib comctl32.lib winmm.lib libc.lib oldnames.lib kernel32.lib \ + advapi32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib \ + $(proj).rbj -out:$(proj).exe +# I don't use this, but it can be reenabled. Also turn /FR back on above. +# bscmake *.sbr + +test.exe: test.c + $(cc) $(cflags) $(cvars) $(cdebug) test.c + $(link) $(linkdebug) $(conflags) test.obj $(conlibs) -out:test.exe + diff --git a/winboard/resource.h b/winboard/resource.h new file mode 100644 index 0000000..8da09ae --- /dev/null +++ b/winboard/resource.h @@ -0,0 +1,355 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Developer Studio generated include file. +// Used by winboard.rc +// +#define IDM_NewGame 100 +#define IDM_LoadGame 101 +#define IDM_SaveGame 102 +#define IDM_Exit 103 +#define IDM_LoadPosition 104 +#define IDM_SavePosition 105 +#define IDM_EditPosition 106 +#define IDM_FlipView 107 +#define IDM_MachineWhite 108 +#define IDM_MachineBlack 109 +#define IDM_TwoMachines 110 +#define IDM_EditGame 111 +#define IDM_Forward 112 +#define IDM_Backward 113 +#define IDM_ToEnd 114 +#define IDM_ToStart 115 +#define IDM_Pause 116 +#define IDM_CallFlag 117 +#define IDM_Draw 118 +#define IDM_Abort 120 +#define IDM_Adjourn 122 +#define IDM_Resign 124 +#define IDM_Hint 125 +#define IDM_IcsClient 126 +#define IDM_TimeControl 131 +#define IDM_LoadOptions 132 +#define IDM_SaveOptions 133 +#define IDM_CommPort 147 +#define IDM_EditComment 148 +#define IDM_LoadNextGame 149 +#define IDM_LoadPrevGame 150 +#define IDM_ReloadGame 151 +#define IDM_Accept 153 +#define IDM_Decline 154 +#define IDM_StopObserving 155 +#define IDM_StopExamining 156 +#define IDM_Revert 157 +#define IDM_TruncateGame 158 +#define IDM_MoveNow 159 +#define IDM_RetractMove 160 +#define IDM_MailMove 164 +#define IDM_ReloadCMailMsg 165 +#define IDM_Book 166 +#define IDM_AboutGame 167 +#define IDM_ShowGameList 170 +#define IDM_EditTags 171 +#define IDM_Debug 174 +#define IDM_AnalysisMode 177 +#define IDM_AnalyzeFile 178 +#define IDM_CopyGame 180 +#define IDM_PasteGame 181 +#define IDM_CopyPosition 182 +#define IDM_PastePosition 183 +#define OPT_TCtext1 202 +#define OPT_TCTime 203 +#define OPT_TCtext2 204 +#define OPT_Autosave 206 +#define OPT_AVPrompt 208 +#define OPT_AVToFile 209 +#define OPT_AVFilename 210 +#define OPT_Autostep 214 +#define OPT_ASTimeDelay 215 +#define OPT_AStext1 216 +#define OPT_TCMoves 217 +#define IDM_HELPCONTENTS 300 +#define IDM_HELPSEARCH 301 +#define IDM_HELPHELP 302 +#define IDM_ABOUT 303 +#define IDM_CommandX 310 +#define IDM_CommandXLast 399 +#define DLG_TimeControl 400 +#define ABOUTBOX_Version 401 +#define OPT_TCUseMoves 402 +#define OPT_TCUseInc 403 +#define OPT_TCitext1 405 +#define OPT_TCitext2 406 +#define OPT_TCInc 407 +#define OPT_TCitext3 408 +#define OPT_TCTime2 409 +#define DLG_PremoveOptions 450 +#define DLG_GeneralOptions 453 +#define DLG_IcsOptions 454 +#define DLG_BoardOptions 455 +#define DLG_Fonts 456 +#define DLG_Promotion 500 +#define PB_Queen 502 +#define PB_Rook 503 +#define PB_Bishop 504 +#define PB_Knight 505 +#define EP_White 600 +#define EP_WhitePawn 601 +#define EP_WhiteKnight 602 +#define EP_WhiteBishop 603 +#define EP_WhiteRook 604 +#define EP_WhiteQueen 605 +#define EP_Black 606 +#define EP_BlackPawn 607 +#define EP_BlackKnight 608 +#define EP_BlackBishop 609 +#define EP_BlackRook 610 +#define EP_BlackQueen 611 +#define EP_EmptySquare 612 +#define EP_ClearBoard 613 +#define EP_WhiteKing 614 +#define EP_BlackKing 615 +#define DP_Pawn 616 +#define DP_Knight 617 +#define DP_Bishop 618 +#define DP_Rook 619 +#define DP_Queen 620 +#define DLG_LoadOptions 700 +#define DLG_SaveOptions 800 +#define OPT_PGN 802 +#define OPT_Old 803 +#define DLG_CommPort 900 +#define OPT_Port 901 +#define OPT_DataRate 902 +#define OPT_Bits 903 +#define OPT_Parity 904 +#define OPT_StopBits 905 +#define OPT_Flow 910 +#define OPT_SerialHelp 911 +#define DLG_BoardSize 1000 +#define OPT_Small 1001 +#define OPT_SizeSmall 1001 +#define OPT_Medium 1002 +#define OPT_SizeBulky 1002 +#define OPT_Large 1003 +#define DLG_EditComment 1004 +#define OPT_ClearComment 1005 +#define OPT_EditComment 1006 +#define OPT_CommentText 1007 +#define DLG_ViewComment 1008 +#define DLG_GameList 1009 +#define OPT_GameListPrev 1010 +#define OPT_GameListText 1011 +#define OPT_GameListLoad 1012 +#define OPT_GameListNext 1013 +#define OPT_GameListClose 1014 +#define DLG_EditTags 1015 +#define OPT_TagsText 1016 +#define DLG_Analysis 1017 +#define OPT_AnalysisText 1018 +#define DLG_Error 1019 +#define OPT_ErrorIcon 1020 +#define IDD_DIALOG1 1021 +#define DLG_ConsoleRich 1022 +#define IDC_EDIT1 1023 +#define OPT_DarkSquareColor 1023 +#define OPT_ConsoleText 1024 +#define OPT_LightSquareColor 1024 +#define OPT_CommandInput 1025 +#define OPT_WhitePieceColor 1025 +#define OPT_QuestionInput 1026 +#define OPT_BlackPieceColor 1026 +#define OPT_ChessEngineName 1027 +#define OPT_HighlightSquareColor 1027 +#define OPT_WavFileName 1028 +#define OPT_PremoveHighlightColor 1028 +#define OPT_IndexNumber 1029 +#define OPT_SampleLightSquare 1029 +#define OPT_Move 1030 +#define OPT_SampleDarkSquare 1030 +#define OPT_PremoveWhiteText 1031 +#define IDC_EDIT2 1032 +#define OPT_ConsoleInput 1033 +#define OPT_AdditionalOptions 1034 +#define OPT_PremoveBlackText 1035 +#define OPT_ErrorText 1036 +#define OPT_IcsAlarmTime 1037 +#define DLG_Console 1100 +#define DLG_PromotionKing 1102 +#define DLG_Colorize 1106 +#define DLG_Command 1122 +#define DLG_Question 1123 +#define DLG_Startup 1124 +#define DLG_Sound 1127 +#define DLG_IndexNumber 1149 +#define DLG_TypeInMove 1151 +#define OPT_IndexNumberOld 1155 +#define IDM_Rematch 1203 +#define IDA_PAGEUP 1216 +#define IDA_PAGEDOWN 1217 +#define IDA_CTRLHOME 1218 +#define IDA_CTRLEND 1219 +#define IDA_TAB 1221 +#define IDM_SaveSettings 1223 +#define IDM_Iconize 1224 +#define IDM_DirectCommand1 1226 +#define IDM_DirectCommand2 1227 +#define IDM_Copy 1229 +#define IDM_Paste 1230 +#define IDM_MatchX 1231 +#define IDM_ObserveX 1232 +#define IDM_FingerX 1233 +#define IDM_TellX 1234 +#define IDM_QuickPaste 1235 +#define IDM_MessageX 1237 +#define IDM_VarsX 1238 +#define IDM_Cut 1240 +#define IDM_Undo 1242 +#define IDM_SelectAll 1243 +#define IDM_SaveSettingsOnExit 1280 +#define IDM_LoadNextPosition 1286 +#define IDM_ReloadPosition 1287 +#define IDM_LoadPrevPosition 1288 +#define IDM_TypeInMove 1291 +#define IDM_PopupExitMessage 1292 +#define IDM_Training 1293 +#define IDM_GeneralOptions 1299 +#define IDM_BoardOptions 1300 +#define IDM_Fonts 1301 +#define PB_King 1307 +#define OPT_Bold 1312 +#define OPT_Italic 1313 +#define OPT_Underline 1314 +#define OPT_Strikeout 1315 +#define OPT_ChooseColor 1316 +#define OPT_Sample 1318 +#define OPT_SampleSShout 1319 +#define OPT_CancelComment 1320 +#define OPT_SampleChannel1 1320 +#define OPT_SampleChannel 1321 +#define OPT_SampleKibitz 1322 +#define OPT_SampleTell 1324 +#define OPT_EditTags 1325 +#define OPT_SampleChallenge 1325 +#define OPT_TagsCancel 1326 +#define OPT_SampleRequest 1326 +#define OPT_CommandText 1327 +#define OPT_QuestionText 1327 +#define OPT_SampleSeek 1327 +#define OPT_ChessEngine 1328 +#define OPT_SampleNormal 1328 +#define OPT_ChessServer 1329 +#define OPT_View 1330 +#define OPT_ChessServerName 1331 +#define OPT_NoSound 1333 +#define OPT_DefaultBeep 1334 +#define OPT_SystemSound 1335 +#define OPT_BuiltInSound 1336 +#define OPT_WavFile 1337 +#define OPT_BuiltInSoundName 1339 +#define OPT_SystemSoundName 1340 +#define OPT_BrowseSound 1341 +#define OPT_PlaySound 1342 +#define OPT_AVBrowse 1343 +#define OPT_SecondChessEngineName 1344 +#define OPT_AnyAdditional 1345 +#define OPT_Premove 1346 +#define OPT_PremoveWhite 1347 +#define OPT_PremoveBlack 1348 +#define OPT_IcsAlarm 1349 +#define CBO_Sounds 1350 +#define OPT_DefaultSounds 1351 +#define OPT_AlwaysOnTop 1352 +#define OPT_AutoFlag 1353 +#define OPT_AlwaysQueen 1354 +#define OPT_AutoComment 1354 +#define OPT_AnimateDragging 1355 +#define OPT_AutoObserve 1355 +#define OPT_AnimateMoving 1356 +#define OPT_GetMoveList 1356 +#define OPT_AutoFlipView 1357 +#define OPT_LocalLineEditing 1357 +#define OPT_HighlightDragging 1358 +#define OPT_QuietPlay 1358 +#define OPT_HighlightLastMove 1359 +#define OPT_PeriodicUpdates 1360 +#define OPT_ChooseLightSquareColor 1360 +#define OPT_PonderNextMove 1361 +#define OPT_ChooseDarkSquareColor 1361 +#define OPT_PopupExitMessage 1362 +#define OPT_ChooseWhitePieceColor 1362 +#define OPT_PopupMoveErrors 1363 +#define OPT_ChooseBlackPieceColor 1363 +#define OPT_ShowCoordinates 1364 +#define OPT_ChooseHighlightSquareColor 1364 +#define OPT_ShowThinking 1365 +#define OPT_ChoosePremoveHighlightColor 1365 +#define OPT_TestLegality 1366 +#define OPT_Blindfold 1367 +#define OPT_SizeTiny 1368 +#define OPT_SizeTeeny 1369 +#define OPT_SizeDinky 1370 +#define OPT_SizePetite 1371 +#define OPT_SizeSlim 1372 +#define OPT_SizeMediocre 1374 +#define OPT_SizeMiddling 1375 +#define OPT_SizeAverage 1376 +#define OPT_SizeModerate 1377 +#define OPT_SizeMedium 1378 +#define OPT_SizeLarge 1379 +#define OPT_SizeBig 1380 +#define OPT_SizeHuge 1381 +#define OPT_SizeGiant 1382 +#define OPT_SizeColossal 1383 +#define OPT_SizeTitanic 1384 +#define OPT_Monochrome 1385 +#define OPT_DefaultBoardColors 1386 +#define OPT_ChooseShoutColor 1387 +#define OPT_ChooseSShoutColor 1388 +#define OPT_ChooseChannel1Color 1389 +#define OPT_ChooseChannelColor 1390 +#define OPT_ChooseKibitzColor 1391 +#define OPT_ChooseBackgroundColor 1392 +#define OPT_ChooseTellColor 1393 +#define OPT_ChooseChallengeColor 1394 +#define OPT_ChooseRequestColor 1395 +#define OPT_ChooseSeekColor 1396 +#define OPT_ChooseNormalColor 1397 +#define OPT_DefaultColors 1398 +#define IDM_Minimize 1400 +#define OPT_SampleShout 1400 +#define IDM_Sounds 1401 +#define OPT_SampleClockFont 1401 +#define IDM_IcsOptions 1402 +#define OPT_SampleCoordFont 1402 +#define OPT_DontColorize 1403 +#define OPT_SampleMessageFont 1403 +#define OPT_SampleTagFont 1404 +#define OPT_SampleCommentsFont 1405 +#define OPT_SampleConsoleFont 1406 +#define OPT_MessageFont 1407 +#define OPT_ClockFont 1408 +#define OPT_CoordFont 1409 +#define OPT_EditTagsFont 1410 +#define OPT_CommentsFont 1411 +#define OPT_MessageFont5 1412 +#define OPT_ChooseClockFont 1413 +#define OPT_ChooseMessageFont 1414 +#define OPT_ChooseCoordFont 1415 +#define OPT_ChooseTagFont 1416 +#define OPT_ChooseCommentsFont 1417 +#define OPT_ChooseConsoleFont 1418 +#define OPT_DefaultFonts 1419 +#define OPT_AutoRaiseBoard 1421 +#define OPT_ShowButtonBar 1422 +#define IDC_STATIC -1 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NO_MFC 1 +#define _APS_NEXT_RESOURCE_VALUE 457 +#define _APS_NEXT_COMMAND_VALUE 1302 +#define _APS_NEXT_CONTROL_VALUE 1423 +#define _APS_NEXT_SYMED_VALUE 1404 +#endif +#endif diff --git a/winboard/wclipbrd.c b/winboard/wclipbrd.c new file mode 100644 index 0000000..66a3638 --- /dev/null +++ b/winboard/wclipbrd.c @@ -0,0 +1,320 @@ +/* + * wclipbrd.c -- Clipboard routines for WinBoard + * $Id$ + * + * Copyright 2000 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include /* required for all Windows applications */ +#include +#include +#include +#include +#include + +#include "common.h" +#include "winboard.h" +#include "frontend.h" +#include "backend.h" +#include "wclipbrd.h" + +/* Imports from winboard.c */ +extern HWND hwndMain; + +/* File globals */ +static char *copyTemp; +static char *pasteTemp; + +VOID +CopyFENToClipboard() +{ + char *fen = NULL; + + fen = PositionToFEN(currentMove); + if (!fen) { + DisplayError("Unable to convert position to FEN.", 0); + return; + } + if (!CopyTextToClipboard(fen)) + DisplayError("Unable to copy FEN to clipboard.", 0); + free(fen); +} + + +VOID +CopyGameToClipboard() +{ + /* A rather cheesy hack here. Write the game to a file, then read from the + * file into the clipboard. + */ + char *buf = NULL; + FILE *f; + unsigned long size; + size_t len; + struct stat st; + + if (!copyTemp) { + copyTemp = tmpnam(NULL); + } + if (!copyTemp) { + DisplayError("Cannot create temporary file name.",0); + return; + } + f = fopen(copyTemp, "w"); + if (!f) { + DisplayError("Cannot open temporary file.", 0); + return; + } + if (!SaveGame(f,0,"")) { /* call into backend */ + DisplayError("Cannot write to temporary file.", 0); + goto copy_game_to_clipboard_cleanup; + } + f = fopen(copyTemp, "rb"); + if (!f) { + DisplayError("Cannot reopen temporary file.", 0); + goto copy_game_to_clipboard_cleanup; + } + if (fstat(fileno(f), &st) < 0) { + DisplayError("Cannot determine size of file.", 0); + goto copy_game_to_clipboard_cleanup; + } + size = st.st_size; + if (size == -1) { + DisplayError("Cannot determine size of file.", 0); + goto copy_game_to_clipboard_cleanup; + } + rewind(f); + buf = (char*)malloc(size+1); + if (!buf) { + DisplayError("Cannot allocate clipboard buffer.", 0); + goto copy_game_to_clipboard_cleanup; + } + len = fread(buf, sizeof(char), size, f); + if (len == -1) { + DisplayError("Cannot read from temporary file.", 0); + goto copy_game_to_clipboard_cleanup; + } + if ((unsigned long)size != (unsigned long)len) { /* sigh */ + DisplayError("Error reading from temporary file.", 0); + goto copy_game_to_clipboard_cleanup; + } + buf[size] = 0; + if (!CopyTextToClipboard(buf)) { + DisplayError("Cannot copy text to clipboard", 0); + } + +copy_game_to_clipboard_cleanup: + if (buf) free(buf); + if (f) fclose(f); +} + + +int +CopyTextToClipboard(char *text) +{ + /* some (most?) of the error checking may be overkill, + * but hey, this is Windows + */ + HGLOBAL hGlobalMem; + LPVOID lpGlobalMem; + BOOL locked; + UINT lockCount; + DWORD err; + + hGlobalMem = GlobalAlloc(GHND, (DWORD)lstrlen(text)+1); + if (hGlobalMem == NULL) { + DisplayError("Unable to allocate memory for clipboard.", 0); + return FALSE; + } + lpGlobalMem = GlobalLock(hGlobalMem); + if (lpGlobalMem == NULL) { + DisplayError("Unable to lock clipboard memory.", 0); + GlobalFree(hGlobalMem); + return FALSE; + } + lstrcpy(lpGlobalMem, text); + if (appData.debugMode) { + lockCount = GlobalFlags(hGlobalMem) & GMEM_LOCKCOUNT; + fprintf(debugFP, "CopyTextToClipboard(): lock count %d\n", lockCount); + } + SetLastError(NO_ERROR); + locked = GlobalUnlock(hGlobalMem); + err = GetLastError(); + if (appData.debugMode) { + lockCount = GlobalFlags(hGlobalMem) & GMEM_LOCKCOUNT; + fprintf(debugFP, "CopyTextToClipboard(): lock count %d\n", lockCount); + } + if (!locked) { + locked = !((err == NO_ERROR) || (err == ERROR_NOT_LOCKED)); + if (appData.debugMode) { + fprintf(debugFP, + "CopyTextToClipboard(): err %d locked %d\n", err, locked); + } + } + if (locked) { + DisplayError("Cannot unlock clipboard memory.", 0); + GlobalFree(hGlobalMem); + return FALSE; + } + if (!OpenClipboard(hwndMain)) { + DisplayError("Cannot open clipboard.", 0); + GlobalFree(hGlobalMem); + return FALSE; + } + if (!EmptyClipboard()) { + DisplayError("Cannot empty clipboard.", 0); + return FALSE; + } + if (hGlobalMem != SetClipboardData(CF_TEXT, hGlobalMem)) { + DisplayError("Cannot copy text to clipboard.", 0); + CloseClipboard(); + GlobalFree(hGlobalMem); + return FALSE; + } + if (!CloseClipboard()) + DisplayError("Cannot close clipboard.", 0); + + return TRUE; +} + + + +VOID +PasteFENFromClipboard() +{ + char *fen = NULL; + if (!PasteTextFromClipboard(&fen)) { + DisplayError("Unable to paste FEN from clipboard.", 0); + return; + } + if (appData.debugMode) { + fprintf(debugFP, "PasteFenFromClipboard(): fen '%s'\n", fen); + } + EditPositionPasteFEN(fen); /* call into backend */ + free(fen); +} + + +VOID +PasteGameFromClipboard() +{ + /* Write the clipboard to a temp file, then let LoadGameFromFile() + * do all the work. */ + char *buf; + FILE *f; + size_t len; + if (!PasteTextFromClipboard(&buf)) { + return; + } + if (!pasteTemp) { + pasteTemp = tmpnam(NULL); + } + f = fopen(pasteTemp, "wb+"); + if (!f) { + DisplayError("Unable to create temporary file.", 0); + return; + } + len = fwrite(buf, sizeof(char), strlen(buf), f); + fclose(f); + if (len != strlen(buf)) { + DisplayError("Error writing to temporary file.", 0); + return; + } + LoadGameFromFile(pasteTemp, 0, "Clipboard", TRUE); +} + + +int +PasteTextFromClipboard(char **text) +{ + /* some (most?) of the error checking may be overkill, + * but hey, this is Windows + */ + HANDLE hClipMem; + LPVOID lpClipMem; + BOOL locked = FALSE; + DWORD err; + UINT lockCount; + + if (!OpenClipboard(hwndMain)) { + DisplayError("Unable to open clipboard.", 0); + return FALSE; + } + hClipMem = GetClipboardData(CF_TEXT); + if (hClipMem == NULL) { + CloseClipboard(); + DisplayError("No text in clipboard.", 0); + return FALSE; + } + lpClipMem = GlobalLock(hClipMem); + if (lpClipMem == NULL) { + CloseClipboard(); + DisplayError("Unable to lock clipboard memory.", 0); + return FALSE; + } + *text = (char *) malloc(GlobalSize(hClipMem)+1); + if (!*text) { + DisplayError("Unable to allocate memory for text string.", 0); + CloseClipboard(); + return FALSE; + } + lstrcpy(*text, lpClipMem); + if (appData.debugMode) { + lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT; + fprintf(debugFP, "PasteTextFromClipboard(): lock count %d\n", lockCount); + } + SetLastError(NO_ERROR); +#if 1 + /*suggested by Wilkin Ng*/ + lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT; + if (lockCount) { + locked = GlobalUnlock(hClipMem); + } +#else + locked = GlobalUnlock(hClipMem); +#endif + err = GetLastError(); + if (appData.debugMode) { + lockCount = GlobalFlags(hClipMem) & GMEM_LOCKCOUNT; + fprintf(debugFP, "PasteTextFromClipboard(): lock count %d\n", lockCount); + } + if (!locked) { + locked = !((err == NO_ERROR) || (err == ERROR_NOT_LOCKED)); + if (appData.debugMode) { + fprintf(debugFP, + "PasteTextFromClipboard(): err %d locked %d\n", err, locked); + } + } + if (locked) + DisplayError("Unable to unlock clipboard memory.", 0); + + if (!CloseClipboard()) + DisplayError("Unable to close clipboard.", 0); + + return TRUE; +} + +VOID +DeleteClipboardTempFiles() +{ + if (copyTemp) remove(copyTemp); + if (pasteTemp) remove(pasteTemp); +} diff --git a/winboard/wclipbrd.h b/winboard/wclipbrd.h new file mode 100644 index 0000000..c575d8a --- /dev/null +++ b/winboard/wclipbrd.h @@ -0,0 +1,32 @@ +/* + * wclipbrd.c -- Clipboard routines for WinBoard + * $Id$ + * + * Copyright 2000 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +VOID CopyFENToClipboard(); +VOID CopyGameToClipboard(); +int CopyTextToClipboard(char *text); + +VOID PasteFENFromClipboard(); +VOID PasteGameFromClipboard(); +int PasteTextFromClipboard(char **text); + +VOID DeleteClipboardTempFiles(); diff --git a/winboard/wedittags.c b/winboard/wedittags.c new file mode 100644 index 0000000..cb62862 --- /dev/null +++ b/winboard/wedittags.c @@ -0,0 +1,234 @@ +/* + * wedittags.c -- EditTags window for WinBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include /* required for all Windows applications */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common.h" +#include "winboard.h" +#include "frontend.h" +#include "backend.h" + +/* Module globals */ +static char *editTagsText; +HWND editTagsDialog = NULL; +BOOL editTagsUp = FALSE; +BOOL canEditTags = FALSE; +int editTagsX, editTagsY, editTagsW, editTagsH; + +/* Imports from winboard.c */ +extern HINSTANCE hInst; +extern HWND hwndMain; +extern BoardSize boardSize; + +LRESULT CALLBACK +EditTagsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HANDLE hwndText; + static int sizeX, sizeY; + int len, newSizeX, newSizeY, flags; + char *str; + RECT rect; + MINMAXINFO *mmi; + int err; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Initialize the dialog items */ + hwndText = GetDlgItem(hDlg, OPT_TagsText); + SendMessage(hwndText, WM_SETFONT, + (WPARAM)font[boardSize][EDITTAGS_FONT]->hf, MAKELPARAM(FALSE, 0)); + SetDlgItemText(hDlg, OPT_TagsText, editTagsText); + EnableWindow(GetDlgItem(hDlg, OPT_TagsCancel), canEditTags); + EnableWindow(GetDlgItem(hDlg, OPT_EditTags), !canEditTags); + SendMessage(hwndText, EM_SETREADONLY, !canEditTags, 0); + if (canEditTags) { + SetWindowText(hDlg, "Edit Tags"); + SetFocus(hwndText); + } else { + SetWindowText(hDlg, "Tags"); + SetFocus(GetDlgItem(hDlg, IDOK)); + } + if (!editTagsDialog) { + editTagsDialog = hDlg; + flags = SWP_NOZORDER; + GetClientRect(hDlg, &rect); + sizeX = rect.right; + sizeY = rect.bottom; + if (editTagsX != CW_USEDEFAULT && editTagsY != CW_USEDEFAULT && + editTagsW != CW_USEDEFAULT && editTagsH != CW_USEDEFAULT) { + WINDOWPLACEMENT wp; + EnsureOnScreen(&editTagsX, &editTagsY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = SW_SHOW; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = editTagsX; + wp.rcNormalPosition.right = editTagsX + editTagsW; + wp.rcNormalPosition.top = editTagsY; + wp.rcNormalPosition.bottom = editTagsY + editTagsH; + SetWindowPlacement(hDlg, &wp); + + GetClientRect(hDlg, &rect); + newSizeX = rect.right; + newSizeY = rect.bottom; + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, + newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + } + } + return FALSE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + if (canEditTags) { + char *p, *q; + /* Read changed options from the dialog box */ + len = GetWindowTextLength(hwndText); + str = (char *) malloc(len + 1); + GetWindowText(hwndText, str, len + 1); + p = q = str; + while (*q) { + if (*q == '\r'|| *q == '\n') + q++; + else + *p++ = *q++; + } + *p = NULLCHAR; + err = ReplaceTags(str, &gameInfo); + if (err) DisplayError("Error replacing tags.", err); + + free(str); + } + TagsPopDown(); + return TRUE; + + case IDCANCEL: + case OPT_TagsCancel: + TagsPopDown(); + return TRUE; + + case OPT_EditTags: + EditTagsEvent(); + return TRUE; + + default: + break; + } + break; + + case WM_SIZE: + newSizeX = LOWORD(lParam); + newSizeY = HIWORD(lParam); + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + break; + + case WM_GETMINMAXINFO: + /* Prevent resizing window too small */ + mmi = (MINMAXINFO *) lParam; + mmi->ptMinTrackSize.x = 100; + mmi->ptMinTrackSize.y = 100; + break; + } + return FALSE; +} + +VOID TagsPopDown(void) +{ + if (editTagsDialog) ShowWindow(editTagsDialog, SW_HIDE); + CheckMenuItem(GetMenu(hwndMain), IDM_EditTags, MF_UNCHECKED); + editTagsUp = FALSE; +} + + +VOID EitherTagsPopUp(char *tags, char *msg, BOOLEAN edit) +{ + FARPROC lpProc; + char *p, *q; + + if (msg == NULL) msg = ""; + p = (char *) malloc(2 * (strlen(tags) + strlen(msg)) + 2); + q = p; + while (*tags) { + if (*tags == '\n') *q++ = '\r'; + *q++ = *tags++; + } + if (*msg != NULLCHAR) { + *q++ = '\r'; + *q++ = '\n'; + while (*msg) { + if (*msg == '\n') *q++ = '\r'; + *q++ = *msg++; + } + } + *q = NULLCHAR; + if (editTagsText != NULL) free(editTagsText); + editTagsText = p; + canEditTags = edit; + + CheckMenuItem(GetMenu(hwndMain), IDM_EditTags, MF_CHECKED); + if (editTagsDialog) { + SendMessage(editTagsDialog, WM_INITDIALOG, 0, 0); + ShowWindow(editTagsDialog, SW_SHOW); + } else { + lpProc = MakeProcInstance((FARPROC)EditTagsDialog, hInst); + CreateDialog(hInst, MAKEINTRESOURCE(DLG_EditTags), + hwndMain, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } + editTagsUp = TRUE; +} + +VOID TagsPopUp(char *tags, char *msg) +{ + HWND hwnd = GetActiveWindow(); + EitherTagsPopUp(tags, msg, FALSE); + SetActiveWindow(hwnd); +} + +VOID EditTagsPopUp(char *tags) +{ + EitherTagsPopUp(tags, "", TRUE); +} + +VOID EditTagsProc() +{ + if (editTagsUp) { + TagsPopDown(); + } else { + EditTagsEvent(); + } +} diff --git a/winboard/wedittags.h b/winboard/wedittags.h new file mode 100644 index 0000000..18c64e4 --- /dev/null +++ b/winboard/wedittags.h @@ -0,0 +1,27 @@ +/* + * wedittags.h -- EditTags window for WinBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +VOID EditTagsProc(void); +extern HWND editTagsDialog; +extern int editTagsX, editTagsY, editTagsW, editTagsH; + diff --git a/winboard/wgamelist.c b/winboard/wgamelist.c new file mode 100644 index 0000000..f039138 --- /dev/null +++ b/winboard/wgamelist.c @@ -0,0 +1,250 @@ +/* + * wgamelist.c -- Game list window for WinBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include /* required for all Windows applications */ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common.h" +#include "winboard.h" +#include "frontend.h" +#include "backend.h" + +/* Module globals */ +HWND gameListDialog = NULL; +BOOLEAN gameListUp = FALSE; +FILE* gameFile; +char* gameFileName = NULL; +int gameListX, gameListY, gameListW, gameListH; + +/* Imports from winboard.c */ +extern HINSTANCE hInst; +extern HWND hwndMain; + + +LRESULT CALLBACK +GameListDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HANDLE hwndText; + int nItem; + ListGame *lg; + RECT rect; + static int sizeX, sizeY; + int newSizeX, newSizeY, flags; + MINMAXINFO *mmi; + + switch (message) { + case WM_INITDIALOG: + if (gameListDialog) { + SendDlgItemMessage(hDlg, OPT_GameListText, LB_RESETCONTENT, 0, 0); + } + /* Initialize the dialog items */ + hwndText = GetDlgItem(hDlg, OPT_TagsText); + lg = (ListGame *) gameList.head; + for (nItem = 0; nItem < ((ListGame *) gameList.tailPred)->number; nItem++){ + char *st = GameListLine(lg->number, &lg->gameInfo); + SendDlgItemMessage(hDlg, OPT_GameListText, LB_ADDSTRING, 0, (LPARAM) st); + free(st); + lg = (ListGame *) lg->node.succ; + } + SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, 0, 0); + /* Size and position the dialog */ + if (!gameListDialog) { + gameListDialog = hDlg; + flags = SWP_NOZORDER; + GetClientRect(hDlg, &rect); + sizeX = rect.right; + sizeY = rect.bottom; + if (gameListX != CW_USEDEFAULT && gameListY != CW_USEDEFAULT && + gameListW != CW_USEDEFAULT && gameListH != CW_USEDEFAULT) { + WINDOWPLACEMENT wp; + EnsureOnScreen(&gameListX, &gameListY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = SW_SHOW; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = gameListX; + wp.rcNormalPosition.right = gameListX + gameListW; + wp.rcNormalPosition.top = gameListY; + wp.rcNormalPosition.bottom = gameListY + gameListH; + SetWindowPlacement(hDlg, &wp); + + GetClientRect(hDlg, &rect); + newSizeX = rect.right; + newSizeY = rect.bottom; + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, + newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + } + } + return FALSE; + + case WM_SIZE: + newSizeX = LOWORD(lParam); + newSizeY = HIWORD(lParam); + ResizeEditPlusButtons(hDlg, GetDlgItem(hDlg, OPT_GameListText), + sizeX, sizeY, newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + break; + + case WM_GETMINMAXINFO: + /* Prevent resizing window too small */ + mmi = (MINMAXINFO *) lParam; + mmi->ptMinTrackSize.x = 100; + mmi->ptMinTrackSize.y = 100; + break; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + case OPT_GameListLoad: + nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0); + if (nItem < 0) { + /* is this possible? */ + DisplayError("No game selected", 0); + return TRUE; + } + break; /* load the game*/ + + case OPT_GameListNext: + nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0); + nItem++; + if (nItem >= ((ListGame *) gameList.tailPred)->number) { + DisplayError("Can't go forward any further", 0); + return TRUE; + } + SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, nItem, 0); + break; /* load the game*/ + + case OPT_GameListPrev: + nItem = SendDlgItemMessage(hDlg, OPT_GameListText, LB_GETCURSEL, 0, 0); + nItem--; + if (nItem < 0) { + DisplayError("Can't back up any further", 0); + } + SendDlgItemMessage(hDlg, OPT_GameListText, LB_SETCURSEL, nItem, 0); + break; /* load the game*/ + + case IDCANCEL: + case OPT_GameListClose: + GameListPopDown(); + return TRUE; + + case OPT_GameListText: + switch (HIWORD(wParam)) { + case LBN_DBLCLK: + nItem = SendMessage((HWND) lParam, LB_GETCURSEL, 0, 0); + break; /* load the game*/ + + default: + return FALSE; + } + break; + + default: + return FALSE; + } + /* Load the game */ + if (cmailMsgLoaded) { + CmailLoadGame(gameFile, nItem + 1, gameFileName, TRUE); + } else { + LoadGame(gameFile, nItem + 1, gameFileName, TRUE); + } + return TRUE; + + default: + break; + } + return FALSE; +} + + +VOID GameListPopUp(FILE *fp, char *filename) +{ + FARPROC lpProc; + + gameFile = fp; + if (gameFileName != filename) { + if (gameFileName) free(gameFileName); + gameFileName = StrSave(filename); + } + CheckMenuItem(GetMenu(hwndMain), IDM_ShowGameList, MF_CHECKED); + if (gameListDialog) { + SendMessage(gameListDialog, WM_INITDIALOG, 0, 0); + if (!gameListUp) ShowWindow(gameListDialog, SW_SHOW); + } else { + lpProc = MakeProcInstance((FARPROC)GameListDialog, hInst); + CreateDialog(hInst, MAKEINTRESOURCE(DLG_GameList), + hwndMain, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } + gameListUp = TRUE; +} + +VOID GameListPopDown(void) +{ + CheckMenuItem(GetMenu(hwndMain), IDM_ShowGameList, MF_UNCHECKED); + if (gameListDialog) ShowWindow(gameListDialog, SW_HIDE); + gameListUp = FALSE; +} + + +VOID GameListHighlight(int index) +{ + if (gameListDialog == NULL) return; + SendDlgItemMessage(gameListDialog, OPT_GameListText, + LB_SETCURSEL, index - 1, 0); +} + + +VOID GameListDestroy() +{ + GameListPopDown(); + if (gameFileName) { + free(gameFileName); + gameFileName = NULL; + } +} + +VOID ShowGameListProc() +{ + if (gameListUp) { + GameListPopDown(); + } else { + if (gameFileName) { + GameListPopUp(gameFile, gameFileName); + } else { + DisplayError("No game list", 0); + } + } +} diff --git a/winboard/wgamelist.h b/winboard/wgamelist.h new file mode 100644 index 0000000..12e382f --- /dev/null +++ b/winboard/wgamelist.h @@ -0,0 +1,26 @@ +/* + * wgamelist.h -- Game list window for WinBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +VOID ShowGameListProc(void); +extern HWND gameListDialog; +extern int gameListX, gameListY, gameListW, gameListH; diff --git a/winboard/winboard.c b/winboard/winboard.c new file mode 100644 index 0000000..455c483 --- /dev/null +++ b/winboard/winboard.c @@ -0,0 +1,7764 @@ +/* + * WinBoard.c -- Windows NT front end to XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-2001 Free Software Foundation, Inc. + * + * XBoard borrows its colors and the bitmaps.xchess bitmap set from XChess, + * which was written and is copyrighted by Wayne Christopher. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if __GNUC__ +#include +#include +#endif + +#include "common.h" +#include "winboard.h" +#include "frontend.h" +#include "backend.h" +#include "moves.h" +#include "wclipbrd.h" +#include "wgamelist.h" +#include "wedittags.h" +#include "woptions.h" +#include "wsockerr.h" +#include "defaults.h" + +typedef struct { + ChessSquare piece; + POINT pos; /* window coordinates of current pos */ + POINT lastpos; /* window coordinates of last pos - used for clipping */ + POINT from; /* board coordinates of the piece's orig pos */ + POINT to; /* board coordinates of the piece's new pos */ +} AnimInfo; + +static AnimInfo animInfo = { EmptySquare, {-1,-1}, {-1,-1}, {-1,-1} }; + +typedef struct { + POINT start; /* window coordinates of start pos */ + POINT pos; /* window coordinates of current pos */ + POINT lastpos; /* window coordinates of last pos - used for clipping */ + POINT from; /* board coordinates of the piece's orig pos */ +} DragInfo; + +static DragInfo dragInfo = { {-1,-1}, {-1,-1}, {-1,-1}, {-1,-1} }; + +typedef struct { + POINT sq[2]; /* board coordinates of from, to squares */ +} HighlightInfo; + +static HighlightInfo highlightInfo = { {{-1, -1}, {-1, -1}} }; +static HighlightInfo premoveHighlightInfo = { {{-1, -1}, {-1, -1}} }; + +/* Window class names */ +char szAppName[] = "WinBoard"; +char szConsoleName[] = "WBConsole"; + +/* Title bar text */ +char szTitle[] = "WinBoard"; +char szConsoleTitle[] = "ICS Interaction"; + +char *programName; +char *settingsFileName; +BOOLEAN saveSettingsOnExit; +char installDir[MSG_SIZ]; + +BoardSize boardSize; +BOOLEAN chessProgram; +static int boardX, boardY, consoleX, consoleY, consoleW, consoleH; +static int squareSize, lineGap; +static int winWidth, winHeight; +static RECT messageRect, whiteRect, blackRect; +static char messageText[MESSAGE_TEXT_MAX]; +static int clockTimerEvent = 0; +static int loadGameTimerEvent = 0; +static int analysisTimerEvent = 0; +static DelayedEventCallback delayedTimerCallback; +static int delayedTimerEvent = 0; +static int buttonCount = 2; +char *icsTextMenuString; +char *icsNames; +char *firstChessProgramNames; +char *secondChessProgramNames; + +#define ARG_MAX 20000 + +#define PALETTESIZE 256 + +HINSTANCE hInst; /* current instance */ +HWND hwndMain = NULL; /* root window*/ +HWND hwndConsole = NULL; +BOOLEAN alwaysOnTop = FALSE; +RECT boardRect; +COLORREF lightSquareColor, darkSquareColor, whitePieceColor, + blackPieceColor, highlightSquareColor, premoveHighlightColor; +HPALETTE hPal; +ColorClass currentColorClass; + +HWND hCommPort = NULL; /* currently open comm port */ +static HWND hwndPause; /* pause button */ +static HBITMAP pieceBitmap[3][(int) WhiteKing + 1]; +static HBRUSH lightSquareBrush, darkSquareBrush, + whitePieceBrush, blackPieceBrush, iconBkgndBrush, outlineBrush; +static POINT gridEndpoints[(BOARD_SIZE + 1) * 4]; +static DWORD gridVertexCounts[(BOARD_SIZE + 1) * 2]; +static HPEN gridPen = NULL; +static HPEN highlightPen = NULL; +static HPEN premovePen = NULL; +static NPLOGPALETTE pLogPal; +static BOOL paletteChanged = FALSE; +static HICON iconWhite, iconBlack, iconCurrent; +static int doingSizing = FALSE; +static int lastSizing = 0; + +#if __GNUC__ && !defined(_winmajor) +#define oldDialog 0 /* cygwin doesn't define _winmajor; mingw does */ +#else +#define oldDialog (_winmajor < 4) +#endif + +char *defaultTextAttribs[] = +{ + COLOR_SHOUT, COLOR_SSHOUT, COLOR_CHANNEL1, COLOR_CHANNEL, COLOR_KIBITZ, + COLOR_TELL, COLOR_CHALLENGE, COLOR_REQUEST, COLOR_SEEK, COLOR_NORMAL, + COLOR_NONE +}; + +typedef struct { + char *name; + int squareSize; + int lineGap; + int smallLayout; + int tinyLayout; + int cliWidth, cliHeight; +} SizeInfo; + +SizeInfo sizeInfo[] = +{ + { "tiny", 21, 0, 1, 1, 0, 0 }, + { "teeny", 25, 1, 1, 1, 0, 0 }, + { "dinky", 29, 1, 1, 1, 0, 0 }, + { "petite", 33, 1, 1, 1, 0, 0 }, + { "slim", 37, 2, 1, 0, 0, 0 }, + { "small", 40, 2, 1, 0, 0, 0 }, + { "mediocre", 45, 2, 1, 0, 0, 0 }, + { "middling", 49, 2, 0, 0, 0, 0 }, + { "average", 54, 2, 0, 0, 0, 0 }, + { "moderate", 58, 3, 0, 0, 0, 0 }, + { "medium", 64, 3, 0, 0, 0, 0 }, + { "bulky", 72, 3, 0, 0, 0, 0 }, + { "large", 80, 3, 0, 0, 0, 0 }, + { "big", 87, 3, 0, 0, 0, 0 }, + { "huge", 95, 3, 0, 0, 0, 0 }, + { "giant", 108, 3, 0, 0, 0, 0 }, + { "colossal", 116, 4, 0, 0, 0, 0 }, + { "titanic", 129, 4, 0, 0, 0, 0 }, + { NULL, 0, 0, 0, 0, 0, 0 } +}; + +#define MF(x) {x, {0, }, {0, }, 0} +MyFont fontRec[NUM_SIZES][NUM_FONTS] = +{ + { MF(CLOCK_FONT_TINY), MF(MESSAGE_FONT_TINY), + MF(COORD_FONT_TINY), MF(CONSOLE_FONT_TINY), + MF(COMMENT_FONT_TINY), MF(EDITTAGS_FONT_TINY) }, + { MF(CLOCK_FONT_TEENY), MF(MESSAGE_FONT_TEENY), + MF(COORD_FONT_TEENY), MF(CONSOLE_FONT_TEENY), + MF(COMMENT_FONT_TEENY), MF(EDITTAGS_FONT_TEENY) }, + { MF(CLOCK_FONT_DINKY), MF(MESSAGE_FONT_DINKY), + MF(COORD_FONT_DINKY), MF(CONSOLE_FONT_DINKY), + MF(COMMENT_FONT_DINKY), MF(EDITTAGS_FONT_DINKY) }, + { MF(CLOCK_FONT_PETITE), MF(MESSAGE_FONT_PETITE), + MF(COORD_FONT_PETITE), MF(CONSOLE_FONT_PETITE), + MF(COMMENT_FONT_PETITE), MF(EDITTAGS_FONT_PETITE) }, + { MF(CLOCK_FONT_SLIM), MF(MESSAGE_FONT_SLIM), + MF(COORD_FONT_SLIM), MF(CONSOLE_FONT_SLIM), + MF(COMMENT_FONT_SLIM), MF(EDITTAGS_FONT_SLIM) }, + { MF(CLOCK_FONT_SMALL), MF(MESSAGE_FONT_SMALL), + MF(COORD_FONT_SMALL), MF(CONSOLE_FONT_SMALL), + MF(COMMENT_FONT_SMALL), MF(EDITTAGS_FONT_SMALL) }, + { MF(CLOCK_FONT_MEDIOCRE), MF(MESSAGE_FONT_MEDIOCRE), + MF(COORD_FONT_MEDIOCRE), MF(CONSOLE_FONT_MEDIOCRE), + MF(COMMENT_FONT_MEDIOCRE), MF(EDITTAGS_FONT_MEDIOCRE) }, + { MF(CLOCK_FONT_MIDDLING), MF(MESSAGE_FONT_MIDDLING), + MF(COORD_FONT_MIDDLING), MF(CONSOLE_FONT_MIDDLING), + MF(COMMENT_FONT_MIDDLING), MF(EDITTAGS_FONT_MIDDLING) }, + { MF(CLOCK_FONT_AVERAGE), MF(MESSAGE_FONT_AVERAGE), + MF(COORD_FONT_AVERAGE), MF(CONSOLE_FONT_AVERAGE), + MF(COMMENT_FONT_AVERAGE), MF(EDITTAGS_FONT_AVERAGE) }, + { MF(CLOCK_FONT_MODERATE), MF(MESSAGE_FONT_MODERATE), + MF(COORD_FONT_MODERATE), MF(CONSOLE_FONT_MODERATE), + MF(COMMENT_FONT_MODERATE), MF(EDITTAGS_FONT_MODERATE) }, + { MF(CLOCK_FONT_MEDIUM), MF(MESSAGE_FONT_MEDIUM), + MF(COORD_FONT_MEDIUM), MF(CONSOLE_FONT_MEDIUM), + MF(COMMENT_FONT_MEDIUM), MF(EDITTAGS_FONT_MEDIUM) }, + { MF(CLOCK_FONT_BULKY), MF(MESSAGE_FONT_BULKY), + MF(COORD_FONT_BULKY), MF(CONSOLE_FONT_BULKY), + MF(COMMENT_FONT_BULKY), MF(EDITTAGS_FONT_BULKY) }, + { MF(CLOCK_FONT_LARGE), MF(MESSAGE_FONT_LARGE), + MF(COORD_FONT_LARGE), MF(CONSOLE_FONT_LARGE), + MF(COMMENT_FONT_LARGE), MF(EDITTAGS_FONT_LARGE) }, + { MF(CLOCK_FONT_BIG), MF(MESSAGE_FONT_BIG), + MF(COORD_FONT_BIG), MF(CONSOLE_FONT_BIG), + MF(COMMENT_FONT_BIG), MF(EDITTAGS_FONT_BIG) }, + { MF(CLOCK_FONT_HUGE), MF(MESSAGE_FONT_HUGE), + MF(COORD_FONT_HUGE), MF(CONSOLE_FONT_HUGE), + MF(COMMENT_FONT_HUGE), MF(EDITTAGS_FONT_HUGE) }, + { MF(CLOCK_FONT_GIANT), MF(MESSAGE_FONT_GIANT), + MF(COORD_FONT_GIANT), MF(CONSOLE_FONT_GIANT), + MF(COMMENT_FONT_GIANT), MF(EDITTAGS_FONT_GIANT) }, + { MF(CLOCK_FONT_COLOSSAL), MF(MESSAGE_FONT_COLOSSAL), + MF(COORD_FONT_COLOSSAL), MF(CONSOLE_FONT_COLOSSAL), + MF(COMMENT_FONT_COLOSSAL), MF(EDITTAGS_FONT_COLOSSAL) }, + { MF(CLOCK_FONT_TITANIC), MF(MESSAGE_FONT_TITANIC), + MF(COORD_FONT_TITANIC), MF(CONSOLE_FONT_TITANIC), + MF(COMMENT_FONT_TITANIC), MF(EDITTAGS_FONT_TITANIC) }, +}; + +MyFont *font[NUM_SIZES][NUM_FONTS]; + +typedef struct { + char *label; + int id; + HWND hwnd; + WNDPROC wndproc; +} MyButtonDesc; + +#define BUTTON_WIDTH (tinyLayout ? 16 : 32) +#define N_BUTTONS 5 + +MyButtonDesc buttonDesc[N_BUTTONS] = +{ + {"<<", IDM_ToStart, NULL, NULL}, + {"<", IDM_Backward, NULL, NULL}, + {"P", IDM_Pause, NULL, NULL}, + {">", IDM_Forward, NULL, NULL}, + {">>", IDM_ToEnd, NULL, NULL}, +}; + +int tinyLayout = 0, smallLayout = 0; +#define MENU_BAR_ITEMS 6 +char *menuBarText[2][MENU_BAR_ITEMS+1] = { + { "&File", "&Mode", "&Action", "&Step", "&Options", "&Help", NULL }, + { "&F", "&M", "&A", "&S", "&O", "&H", NULL }, +}; + + +MySound sounds[(int)NSoundClasses]; +MyTextAttribs textAttribs[(int)NColorClasses]; + +MyColorizeAttribs colorizeAttribs[] = { + { (COLORREF)0, 0, "Shout Text" }, + { (COLORREF)0, 0, "SShout/CShout" }, + { (COLORREF)0, 0, "Channel 1 Text" }, + { (COLORREF)0, 0, "Channel Text" }, + { (COLORREF)0, 0, "Kibitz Text" }, + { (COLORREF)0, 0, "Tell Text" }, + { (COLORREF)0, 0, "Challenge Text" }, + { (COLORREF)0, 0, "Request Text" }, + { (COLORREF)0, 0, "Seek Text" }, + { (COLORREF)0, 0, "Normal Text" }, + { (COLORREF)0, 0, "None" } +}; + + + +static char *commentTitle; +static char *commentText; +static int commentIndex; +static Boolean editComment = FALSE; +HWND commentDialog = NULL; +BOOLEAN commentDialogUp = FALSE; +static int commentX, commentY, commentH, commentW; + +static char *analysisTitle; +static char *analysisText; +HWND analysisDialog = NULL; +BOOLEAN analysisDialogUp = FALSE; +static int analysisX, analysisY, analysisH, analysisW; + +char errorMessage[2*MSG_SIZ]; +HWND errorDialog = NULL; +BOOLEAN moveErrorMessageUp = FALSE; +BOOLEAN consoleEcho = TRUE; +CHARFORMAT consoleCF; +COLORREF consoleBackgroundColor; + +char *programVersion; + +#include + +#define CPReal 1 +#define CPComm 2 +#define CPSock 3 +#define CPRcmd 4 +typedef int CPKind; + +typedef struct { + CPKind kind; + HANDLE hProcess; + DWORD pid; + HANDLE hTo; + HANDLE hFrom; + SOCKET sock; + SOCKET sock2; /* stderr socket for OpenRcmd */ +} ChildProc; + +#define INPUT_SOURCE_BUF_SIZE 4096 + +typedef struct _InputSource { + CPKind kind; + HANDLE hFile; + SOCKET sock; + int lineByLine; + HANDLE hThread; + DWORD id; + char buf[INPUT_SOURCE_BUF_SIZE]; + char *next; + DWORD count; + int error; + InputCallback func; + struct _InputSource *second; /* for stderr thread on CPRcmd */ + VOIDSTAR closure; +} InputSource; + +InputSource *consoleInputSource; + +DCB dcb; + +/* forward */ +VOID ConsoleOutput(char* data, int length, int forceVisible); +VOID ConsoleCreate(); +LRESULT CALLBACK + ConsoleWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +VOID ColorizeTextPopup(HWND hwnd, ColorClass cc); +VOID PrintCommSettings(FILE *f, char *name, DCB *dcb); +VOID ParseCommSettings(char *arg, DCB *dcb); +LRESULT CALLBACK + StartupDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam); +VOID APIENTRY MenuPopup(HWND hwnd, POINT pt, HMENU hmenu, UINT def); +void ParseIcsTextMenu(char *icsTextMenuString); +VOID PopUpMoveDialog(char firstchar); +VOID UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca); + +/* + * Setting "frozen" should disable all user input other than deleting + * the window. We do this while engines are initializing themselves. + */ +static int frozen = 0; +static int oldMenuItemState[MENU_BAR_ITEMS]; +void FreezeUI() +{ + HMENU hmenu; + int i; + + if (frozen) return; + frozen = 1; + hmenu = GetMenu(hwndMain); + for (i=0; i screenWidth - 32) *x = 0; + if (*y > screenHeight - 32) *y = 0; +} + +BOOL +InitInstance(HINSTANCE hInstance, int nCmdShow, LPSTR lpCmdLine) +{ + HWND hwnd; /* Main window handle. */ + int ibs; + WINDOWPLACEMENT wp; + char *filepart; + + hInst = hInstance; /* Store instance handle in our global variable */ + + if (SearchPath(NULL, "WinBoard.exe", NULL, MSG_SIZ, installDir, &filepart)) { + *filepart = NULLCHAR; + } else { + GetCurrentDirectory(MSG_SIZ, installDir); + } + InitAppData(lpCmdLine); /* Get run-time parameters */ + if (appData.debugMode) { + debugFP = fopen("winboard.debug", "w"); + setbuf(debugFP, NULL); + } + + InitBackEnd1(); + + /* Create a main window for this application instance. */ + hwnd = CreateWindow(szAppName, szTitle, + (WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX), + CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, + NULL, NULL, hInstance, NULL); + hwndMain = hwnd; + + /* If window could not be created, return "failure" */ + if (!hwnd) { + return (FALSE); + } + + iconWhite = LoadIcon(hInstance, "icon_white"); + iconBlack = LoadIcon(hInstance, "icon_black"); + iconCurrent = iconWhite; + InitDrawingColors(); + screenHeight = GetSystemMetrics(SM_CYSCREEN); + screenWidth = GetSystemMetrics(SM_CXSCREEN); + for (ibs = (int) NUM_SIZES - 1; ibs >= 0; ibs--) { + /* Compute window size for each board size, and use the largest + size that fits on this screen as the default. */ + InitDrawingSizes((BoardSize)ibs, 0); + if (boardSize == (BoardSize)-1 && + winHeight <= screenHeight && winWidth <= screenWidth) { + boardSize = (BoardSize)ibs; + } + } + InitDrawingSizes(boardSize, 0); + InitMenuChecks(); + buttonCount = GetSystemMetrics(SM_CMOUSEBUTTONS); + + /* Make a console window if needed */ + if (appData.icsActive) { + ConsoleCreate(); + } + + InitBackEnd2(); + + /* Make the window visible; update its client area; and return "success" */ + EnsureOnScreen(&boardX, &boardY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = nCmdShow; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = boardX; + wp.rcNormalPosition.right = boardX + winWidth; + wp.rcNormalPosition.top = boardY; + wp.rcNormalPosition.bottom = boardY + winHeight; + SetWindowPlacement(hwndMain, &wp); + + SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, + 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); + if (hwndConsole) { +#if AOT_CONSOLE + SetWindowPos(hwndConsole, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, + 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); +#endif + ShowWindow(hwndConsole, nCmdShow); + } + UpdateWindow(hwnd); + + return TRUE; + +} + + +typedef enum { + ArgString, ArgInt, ArgFloat, ArgBoolean, ArgTrue, ArgFalse, ArgNone, + ArgColor, ArgAttribs, ArgFilename, ArgBoardSize, ArgFont, ArgCommSettings, + ArgSettingsFilename +} ArgType; + +typedef struct { + char *argName; + ArgType argType; + /*** + union { + String *pString; // ArgString + int *pInt; // ArgInt + float *pFloat; // ArgFloat + Boolean *pBoolean; // ArgBoolean + COLORREF *pColor; // ArgColor + ColorClass cc; // ArgAttribs + String *pFilename; // ArgFilename + BoardSize *pBoardSize; // ArgBoardSize + int whichFont; // ArgFont + DCB *pDCB; // ArgCommSettings + String *pFilename; // ArgSettingsFilename + } argLoc; + ***/ + LPVOID argLoc; + BOOL save; +} ArgDescriptor; + +int junk; +ArgDescriptor argDescriptors[] = { + /* positional arguments */ + { "loadGameFile", ArgFilename, (LPVOID) &appData.loadGameFile, FALSE }, + { "", ArgNone, NULL }, + /* keyword arguments */ + { "whitePieceColor", ArgColor, (LPVOID) &whitePieceColor, TRUE }, + { "wpc", ArgColor, (LPVOID) &whitePieceColor, FALSE }, + { "blackPieceColor", ArgColor, (LPVOID) &blackPieceColor, TRUE }, + { "bpc", ArgColor, (LPVOID) &blackPieceColor, FALSE }, + { "lightSquareColor", ArgColor, (LPVOID) &lightSquareColor, TRUE }, + { "lsc", ArgColor, (LPVOID) &lightSquareColor, FALSE }, + { "darkSquareColor", ArgColor, (LPVOID) &darkSquareColor, TRUE }, + { "dsc", ArgColor, (LPVOID) &darkSquareColor, FALSE }, + { "highlightSquareColor", ArgColor, (LPVOID) &highlightSquareColor, TRUE }, + { "hsc", ArgColor, (LPVOID) &highlightSquareColor, FALSE }, + { "premoveHighlightColor", ArgColor, (LPVOID) &premoveHighlightColor, TRUE }, + { "phc", ArgColor, (LPVOID) &premoveHighlightColor, FALSE }, + { "movesPerSession", ArgInt, (LPVOID) &appData.movesPerSession, TRUE }, + { "mps", ArgInt, (LPVOID) &appData.movesPerSession, FALSE }, + { "initString", ArgString, (LPVOID) &appData.initString, FALSE }, + { "firstInitString", ArgString, (LPVOID) &appData.initString, FALSE }, + { "secondInitString", ArgString, (LPVOID) &appData.secondInitString, FALSE }, + { "firstComputerString", ArgString, (LPVOID) &appData.firstComputerString, + FALSE }, + { "secondComputerString", ArgString, (LPVOID) &appData.secondComputerString, + FALSE }, + { "firstChessProgram", ArgFilename, (LPVOID) &appData.firstChessProgram, + FALSE }, + { "fcp", ArgFilename, (LPVOID) &appData.firstChessProgram, FALSE }, + { "secondChessProgram", ArgFilename, (LPVOID) &appData.secondChessProgram, + FALSE }, + { "scp", ArgFilename, (LPVOID) &appData.secondChessProgram, FALSE }, + { "firstPlaysBlack", ArgBoolean, (LPVOID) &appData.firstPlaysBlack, FALSE }, + { "fb", ArgTrue, (LPVOID) &appData.firstPlaysBlack, FALSE }, + { "xfb", ArgFalse, (LPVOID) &appData.firstPlaysBlack, FALSE }, + { "-fb", ArgFalse, (LPVOID) &appData.firstPlaysBlack, FALSE }, + { "noChessProgram", ArgBoolean, (LPVOID) &appData.noChessProgram, FALSE }, + { "ncp", ArgTrue, (LPVOID) &appData.noChessProgram, FALSE }, + { "xncp", ArgFalse, (LPVOID) &appData.noChessProgram, FALSE }, + { "-ncp", ArgFalse, (LPVOID) &appData.noChessProgram, FALSE }, + { "firstHost", ArgString, (LPVOID) &appData.firstHost, FALSE }, + { "fh", ArgString, (LPVOID) &appData.firstHost, FALSE }, + { "secondHost", ArgString, (LPVOID) &appData.secondHost, FALSE }, + { "sh", ArgString, (LPVOID) &appData.secondHost, FALSE }, + { "firstDirectory", ArgFilename, (LPVOID) &appData.firstDirectory, FALSE }, + { "fd", ArgFilename, (LPVOID) &appData.firstDirectory, FALSE }, + { "secondDirectory", ArgFilename, (LPVOID) &appData.secondDirectory, FALSE }, + { "sd", ArgFilename, (LPVOID) &appData.secondDirectory, FALSE }, + /*!!bitmapDirectory?*/ + { "remoteShell", ArgFilename, (LPVOID) &appData.remoteShell, FALSE }, + { "rsh", ArgFilename, (LPVOID) &appData.remoteShell, FALSE }, + { "remoteUser", ArgString, (LPVOID) &appData.remoteUser, FALSE }, + { "ruser", ArgString, (LPVOID) &appData.remoteUser, FALSE }, + { "timeDelay", ArgFloat, (LPVOID) &appData.timeDelay, TRUE }, + { "td", ArgFloat, (LPVOID) &appData.timeDelay, FALSE }, + { "timeControl", ArgString, (LPVOID) &appData.timeControl, TRUE }, + { "tc", ArgString, (LPVOID) &appData.timeControl, FALSE }, + { "timeIncrement", ArgInt, (LPVOID) &appData.timeIncrement, TRUE }, + { "inc", ArgInt, (LPVOID) &appData.timeIncrement, FALSE }, + { "internetChessServerMode", ArgBoolean, (LPVOID) &appData.icsActive, FALSE }, + { "ics", ArgTrue, (LPVOID) &appData.icsActive, FALSE }, + { "xics", ArgFalse, (LPVOID) &appData.icsActive, FALSE }, + { "-ics", ArgFalse, (LPVOID) &appData.icsActive, FALSE }, + { "internetChessServerHost", ArgString, (LPVOID) &appData.icsHost, FALSE }, + { "icshost", ArgString, (LPVOID) &appData.icsHost, FALSE }, + { "internetChessServerPort", ArgString, (LPVOID) &appData.icsPort, FALSE }, + { "icsport", ArgString, (LPVOID) &appData.icsPort, FALSE }, + { "internetChessServerCommPort", ArgString, (LPVOID) &appData.icsCommPort, FALSE }, + { "icscomm", ArgString, (LPVOID) &appData.icsCommPort, FALSE }, + { "internetChessServerComPort", ArgString, (LPVOID) &appData.icsCommPort, FALSE }, + { "icscom", ArgString, (LPVOID) &appData.icsCommPort, FALSE }, + { "internetChessServerLogonScript", ArgFilename, (LPVOID) &appData.icsLogon, FALSE }, + { "icslogon", ArgFilename, (LPVOID) &appData.icsLogon, FALSE }, + { "useTelnet", ArgBoolean, (LPVOID) &appData.useTelnet, FALSE }, + { "telnet", ArgTrue, (LPVOID) &appData.useTelnet, FALSE }, + { "xtelnet", ArgFalse, (LPVOID) &appData.useTelnet, FALSE }, + { "-telnet", ArgFalse, (LPVOID) &appData.useTelnet, FALSE }, + { "telnetProgram", ArgFilename, (LPVOID) &appData.telnetProgram, FALSE }, + { "icshelper", ArgFilename, (LPVOID) &appData.icsHelper, FALSE }, + { "gateway", ArgString, (LPVOID) &appData.gateway, FALSE }, + { "loadGameFile", ArgFilename, (LPVOID) &appData.loadGameFile, FALSE }, + { "lgf", ArgFilename, (LPVOID) &appData.loadGameFile, FALSE }, + { "loadGameIndex", ArgInt, (LPVOID) &appData.loadGameIndex, FALSE }, + { "lgi", ArgInt, (LPVOID) &appData.loadGameIndex, FALSE }, + { "saveGameFile", ArgFilename, (LPVOID) &appData.saveGameFile, TRUE }, + { "sgf", ArgFilename, (LPVOID) &appData.saveGameFile, FALSE }, + { "autoSaveGames", ArgBoolean, (LPVOID) &appData.autoSaveGames, TRUE }, + { "autosave", ArgTrue, (LPVOID) &appData.autoSaveGames, FALSE }, + { "xautosave", ArgFalse, (LPVOID) &appData.autoSaveGames, FALSE }, + { "-autosave", ArgFalse, (LPVOID) &appData.autoSaveGames, FALSE }, + { "loadPositionFile", ArgFilename, (LPVOID) &appData.loadPositionFile, FALSE }, + { "lpf", ArgFilename, (LPVOID) &appData.loadPositionFile, FALSE }, + { "loadPositionIndex", ArgInt, (LPVOID) &appData.loadPositionIndex, FALSE }, + { "lpi", ArgInt, (LPVOID) &appData.loadPositionIndex, FALSE }, + { "savePositionFile", ArgFilename, (LPVOID) &appData.savePositionFile, FALSE }, + { "spf", ArgFilename, (LPVOID) &appData.savePositionFile, FALSE }, + { "matchMode", ArgBoolean, (LPVOID) &appData.matchMode, FALSE }, + { "mm", ArgTrue, (LPVOID) &appData.matchMode, FALSE }, + { "xmm", ArgFalse, (LPVOID) &appData.matchMode, FALSE }, + { "-mm", ArgFalse, (LPVOID) &appData.matchMode, FALSE }, + { "matchGames", ArgInt, (LPVOID) &appData.matchGames, FALSE }, + { "mg", ArgInt, (LPVOID) &appData.matchGames, FALSE }, + { "monoMode", ArgBoolean, (LPVOID) &appData.monoMode, TRUE }, + { "mono", ArgTrue, (LPVOID) &appData.monoMode, FALSE }, + { "xmono", ArgFalse, (LPVOID) &appData.monoMode, FALSE }, + { "-mono", ArgFalse, (LPVOID) &appData.monoMode, FALSE }, + { "debugMode", ArgBoolean, (LPVOID) &appData.debugMode, FALSE }, + { "debug", ArgTrue, (LPVOID) &appData.debugMode, FALSE }, + { "xdebug", ArgFalse, (LPVOID) &appData.debugMode, FALSE }, + { "-debug", ArgFalse, (LPVOID) &appData.debugMode, FALSE }, + { "clockMode", ArgBoolean, (LPVOID) &appData.clockMode, FALSE }, + { "clock", ArgTrue, (LPVOID) &appData.clockMode, FALSE }, + { "xclock", ArgFalse, (LPVOID) &appData.clockMode, FALSE }, + { "-clock", ArgFalse, (LPVOID) &appData.clockMode, FALSE }, + { "searchTime", ArgString, (LPVOID) &appData.searchTime, FALSE }, + { "st", ArgString, (LPVOID) &appData.searchTime, FALSE }, + { "searchDepth", ArgInt, (LPVOID) &appData.searchDepth, FALSE }, + { "depth", ArgInt, (LPVOID) &appData.searchDepth, FALSE }, + { "showCoords", ArgBoolean, (LPVOID) &appData.showCoords, TRUE }, + { "coords", ArgTrue, (LPVOID) &appData.showCoords, FALSE }, + { "xcoords", ArgFalse, (LPVOID) &appData.showCoords, FALSE }, + { "-coords", ArgFalse, (LPVOID) &appData.showCoords, FALSE }, + { "showThinking", ArgBoolean, (LPVOID) &appData.showThinking, TRUE }, + { "thinking", ArgTrue, (LPVOID) &appData.showThinking, FALSE }, + { "xthinking", ArgFalse, (LPVOID) &appData.showThinking, FALSE }, + { "-thinking", ArgFalse, (LPVOID) &appData.showThinking, FALSE }, + { "ponderNextMove", ArgBoolean, (LPVOID) &appData.ponderNextMove, TRUE }, + { "ponder", ArgTrue, (LPVOID) &appData.ponderNextMove, FALSE }, + { "xponder", ArgFalse, (LPVOID) &appData.ponderNextMove, FALSE }, + { "-ponder", ArgFalse, (LPVOID) &appData.ponderNextMove, FALSE }, + { "periodicUpdates", ArgBoolean, (LPVOID) &appData.periodicUpdates, TRUE }, + { "periodic", ArgTrue, (LPVOID) &appData.periodicUpdates, FALSE }, + { "xperiodic", ArgFalse, (LPVOID) &appData.periodicUpdates, FALSE }, + { "-periodic", ArgFalse, (LPVOID) &appData.periodicUpdates, FALSE }, + { "popupExitMessage", ArgBoolean, (LPVOID) &appData.popupExitMessage, TRUE }, + { "exit", ArgTrue, (LPVOID) &appData.popupExitMessage, FALSE }, + { "xexit", ArgFalse, (LPVOID) &appData.popupExitMessage, FALSE }, + { "-exit", ArgFalse, (LPVOID) &appData.popupExitMessage, FALSE }, + { "popupMoveErrors", ArgBoolean, (LPVOID) &appData.popupMoveErrors, TRUE }, + { "popup", ArgTrue, (LPVOID) &appData.popupMoveErrors, FALSE }, + { "xpopup", ArgFalse, (LPVOID) &appData.popupMoveErrors, FALSE }, + { "-popup", ArgFalse, (LPVOID) &appData.popupMoveErrors, FALSE }, + { "popUpErrors", ArgBoolean, (LPVOID) &appData.popupMoveErrors, + FALSE }, /* only so that old WinBoard.ini files from betas can be read */ + { "clockFont", ArgFont, (LPVOID) CLOCK_FONT, TRUE }, + { "messageFont", ArgFont, (LPVOID) MESSAGE_FONT, TRUE }, + { "coordFont", ArgFont, (LPVOID) COORD_FONT, TRUE }, + { "tagsFont", ArgFont, (LPVOID) EDITTAGS_FONT, TRUE }, + { "commentFont", ArgFont, (LPVOID) COMMENT_FONT, TRUE }, + { "icsFont", ArgFont, (LPVOID) CONSOLE_FONT, TRUE }, + { "boardSize", ArgBoardSize, (LPVOID) &boardSize, + TRUE }, /* must come after all fonts */ + { "size", ArgBoardSize, (LPVOID) &boardSize, FALSE }, + { "ringBellAfterMoves", ArgBoolean, (LPVOID) &appData.ringBellAfterMoves, + FALSE }, /* historical; kept only so old winboard.ini files will parse */ + { "alwaysOnTop", ArgBoolean, (LPVOID) &alwaysOnTop, TRUE }, + { "top", ArgTrue, (LPVOID) &alwaysOnTop, FALSE }, + { "xtop", ArgFalse, (LPVOID) &alwaysOnTop, FALSE }, + { "-top", ArgFalse, (LPVOID) &alwaysOnTop, FALSE }, + { "autoCallFlag", ArgBoolean, (LPVOID) &appData.autoCallFlag, TRUE }, + { "autoflag", ArgTrue, (LPVOID) &appData.autoCallFlag, FALSE }, + { "xautoflag", ArgFalse, (LPVOID) &appData.autoCallFlag, FALSE }, + { "-autoflag", ArgFalse, (LPVOID) &appData.autoCallFlag, FALSE }, + { "autoComment", ArgBoolean, (LPVOID) &appData.autoComment, TRUE }, + { "autocomm", ArgTrue, (LPVOID) &appData.autoComment, FALSE }, + { "xautocomm", ArgFalse, (LPVOID) &appData.autoComment, FALSE }, + { "-autocomm", ArgFalse, (LPVOID) &appData.autoComment, FALSE }, + { "autoObserve", ArgBoolean, (LPVOID) &appData.autoObserve, TRUE }, + { "autobs", ArgTrue, (LPVOID) &appData.autoObserve, FALSE }, + { "xautobs", ArgFalse, (LPVOID) &appData.autoObserve, FALSE }, + { "-autobs", ArgFalse, (LPVOID) &appData.autoObserve, FALSE }, + { "flipView", ArgBoolean, (LPVOID) &appData.flipView, FALSE }, + { "flip", ArgTrue, (LPVOID) &appData.flipView, FALSE }, + { "xflip", ArgFalse, (LPVOID) &appData.flipView, FALSE }, + { "-flip", ArgFalse, (LPVOID) &appData.flipView, FALSE }, + { "autoFlipView", ArgBoolean, (LPVOID) &appData.autoFlipView, TRUE }, + { "autoflip", ArgTrue, (LPVOID) &appData.autoFlipView, FALSE }, + { "xautoflip", ArgFalse, (LPVOID) &appData.autoFlipView, FALSE }, + { "-autoflip", ArgFalse, (LPVOID) &appData.autoFlipView, FALSE }, + { "autoRaiseBoard", ArgBoolean, (LPVOID) &appData.autoRaiseBoard, TRUE }, + { "autoraise", ArgTrue, (LPVOID) &appData.autoRaiseBoard, FALSE }, + { "xautoraise", ArgFalse, (LPVOID) &appData.autoRaiseBoard, FALSE }, + { "-autoraise", ArgFalse, (LPVOID) &appData.autoRaiseBoard, FALSE }, +#if 0 + { "cmailGameName", ArgString, (LPVOID) &appData.cmailGameName, FALSE }, + { "cmail", ArgString, (LPVOID) &appData.cmailGameName, FALSE }, +#endif + { "alwaysPromoteToQueen", ArgBoolean, (LPVOID) &appData.alwaysPromoteToQueen, TRUE }, + { "queen", ArgTrue, (LPVOID) &appData.alwaysPromoteToQueen, FALSE }, + { "xqueen", ArgFalse, (LPVOID) &appData.alwaysPromoteToQueen, FALSE }, + { "-queen", ArgFalse, (LPVOID) &appData.alwaysPromoteToQueen, FALSE }, + { "oldSaveStyle", ArgBoolean, (LPVOID) &appData.oldSaveStyle, TRUE }, + { "oldsave", ArgTrue, (LPVOID) &appData.oldSaveStyle, FALSE }, + { "xoldsave", ArgFalse, (LPVOID) &appData.oldSaveStyle, FALSE }, + { "-oldsave", ArgFalse, (LPVOID) &appData.oldSaveStyle, FALSE }, + { "quietPlay", ArgBoolean, (LPVOID) &appData.quietPlay, TRUE }, + { "quiet", ArgTrue, (LPVOID) &appData.quietPlay, FALSE }, + { "xquiet", ArgFalse, (LPVOID) &appData.quietPlay, FALSE }, + { "-quiet", ArgFalse, (LPVOID) &appData.quietPlay, FALSE }, + { "getMoveList", ArgBoolean, (LPVOID) &appData.getMoveList, TRUE }, + { "moves", ArgTrue, (LPVOID) &appData.getMoveList, FALSE }, + { "xmoves", ArgFalse, (LPVOID) &appData.getMoveList, FALSE }, + { "-moves", ArgFalse, (LPVOID) &appData.getMoveList, FALSE }, + { "testLegality", ArgBoolean, (LPVOID) &appData.testLegality, TRUE }, + { "legal", ArgTrue, (LPVOID) &appData.testLegality, FALSE }, + { "xlegal", ArgFalse, (LPVOID) &appData.testLegality, FALSE }, + { "-legal", ArgFalse, (LPVOID) &appData.testLegality, FALSE }, + { "premove", ArgBoolean, (LPVOID) &appData.premove, TRUE }, + { "pre", ArgTrue, (LPVOID) &appData.premove, FALSE }, + { "xpre", ArgFalse, (LPVOID) &appData.premove, FALSE }, + { "-pre", ArgFalse, (LPVOID) &appData.premove, FALSE }, + { "premoveWhite", ArgBoolean, (LPVOID) &appData.premoveWhite, TRUE }, + { "prewhite", ArgTrue, (LPVOID) &appData.premoveWhite, FALSE }, + { "xprewhite", ArgFalse, (LPVOID) &appData.premoveWhite, FALSE }, + { "-prewhite", ArgFalse, (LPVOID) &appData.premoveWhite, FALSE }, + { "premoveWhiteText", ArgString, (LPVOID) &appData.premoveWhiteText, TRUE }, + { "premoveBlack", ArgBoolean, (LPVOID) &appData.premoveBlack, TRUE }, + { "preblack", ArgTrue, (LPVOID) &appData.premoveBlack, FALSE }, + { "xpreblack", ArgFalse, (LPVOID) &appData.premoveBlack, FALSE }, + { "-preblack", ArgFalse, (LPVOID) &appData.premoveBlack, FALSE }, + { "premoveBlackText", ArgString, (LPVOID) &appData.premoveBlackText, TRUE }, + { "icsAlarm", ArgBoolean, (LPVOID) &appData.icsAlarm, TRUE}, + { "alarm", ArgTrue, (LPVOID) &appData.icsAlarm, FALSE}, + { "xalarm", ArgFalse, (LPVOID) &appData.icsAlarm, FALSE}, + { "-alarm", ArgFalse, (LPVOID) &appData.icsAlarm, FALSE}, + { "icsAlarmTime", ArgInt, (LPVOID) &appData.icsAlarmTime, TRUE}, + { "localLineEditing", ArgBoolean, (LPVOID) &appData.localLineEditing, FALSE}, + { "localLineEditing", ArgBoolean, (LPVOID) &appData.localLineEditing, FALSE}, + { "edit", ArgTrue, (LPVOID) &appData.localLineEditing, FALSE }, + { "xedit", ArgFalse, (LPVOID) &appData.localLineEditing, FALSE }, + { "-edit", ArgFalse, (LPVOID) &appData.localLineEditing, FALSE }, + { "animateMoving", ArgBoolean, (LPVOID) &appData.animate, TRUE }, + { "animate", ArgTrue, (LPVOID) &appData.animate, FALSE }, + { "xanimate", ArgFalse, (LPVOID) &appData.animate, FALSE }, + { "-animate", ArgFalse, (LPVOID) &appData.animate, FALSE }, + { "animateSpeed", ArgInt, (LPVOID) &appData.animSpeed, TRUE }, + { "animateDragging", ArgBoolean, (LPVOID) &appData.animateDragging, TRUE }, + { "drag", ArgTrue, (LPVOID) &appData.animateDragging, FALSE }, + { "xdrag", ArgFalse, (LPVOID) &appData.animateDragging, FALSE }, + { "-drag", ArgFalse, (LPVOID) &appData.animateDragging, FALSE }, + { "blindfold", ArgBoolean, (LPVOID) &appData.blindfold, TRUE }, + { "blind", ArgTrue, (LPVOID) &appData.blindfold, FALSE }, + { "xblind", ArgFalse, (LPVOID) &appData.blindfold, FALSE }, + { "-blind", ArgFalse, (LPVOID) &appData.blindfold, FALSE }, + { "highlightLastMove", ArgBoolean, + (LPVOID) &appData.highlightLastMove, TRUE }, + { "highlight", ArgTrue, (LPVOID) &appData.highlightLastMove, FALSE }, + { "xhighlight", ArgFalse, (LPVOID) &appData.highlightLastMove, FALSE }, + { "-highlight", ArgFalse, (LPVOID) &appData.highlightLastMove, FALSE }, + { "highlightDragging", ArgBoolean, + (LPVOID) &appData.highlightDragging, TRUE }, + { "highdrag", ArgTrue, (LPVOID) &appData.highlightDragging, FALSE }, + { "xhighdrag", ArgFalse, (LPVOID) &appData.highlightDragging, FALSE }, + { "-highdrag", ArgFalse, (LPVOID) &appData.highlightDragging, FALSE }, + { "colorizeMessages", ArgBoolean, (LPVOID) &appData.colorize, TRUE }, + { "colorize", ArgTrue, (LPVOID) &appData.colorize, FALSE }, + { "xcolorize", ArgFalse, (LPVOID) &appData.colorize, FALSE }, + { "-colorize", ArgFalse, (LPVOID) &appData.colorize, FALSE }, + { "colorShout", ArgAttribs, (LPVOID) ColorShout, TRUE }, + { "colorSShout", ArgAttribs, (LPVOID) ColorSShout, TRUE }, + { "colorChannel1", ArgAttribs, (LPVOID) ColorChannel1, TRUE }, + { "colorChannel", ArgAttribs, (LPVOID) ColorChannel, TRUE }, + { "colorKibitz", ArgAttribs, (LPVOID) ColorKibitz, TRUE }, + { "colorTell", ArgAttribs, (LPVOID) ColorTell, TRUE }, + { "colorChallenge", ArgAttribs, (LPVOID) ColorChallenge, TRUE }, + { "colorRequest", ArgAttribs, (LPVOID) ColorRequest, TRUE }, + { "colorSeek", ArgAttribs, (LPVOID) ColorSeek, TRUE }, + { "colorNormal", ArgAttribs, (LPVOID) ColorNormal, TRUE }, + { "colorBackground", ArgColor, (LPVOID) &consoleBackgroundColor, TRUE }, + { "soundShout", ArgFilename, + (LPVOID) &textAttribs[ColorShout].sound.name, TRUE }, + { "soundSShout", ArgFilename, + (LPVOID) &textAttribs[ColorSShout].sound.name, TRUE }, + { "soundChannel1", ArgFilename, + (LPVOID) &textAttribs[ColorChannel1].sound.name, TRUE }, + { "soundChannel", ArgFilename, + (LPVOID) &textAttribs[ColorChannel].sound.name, TRUE }, + { "soundKibitz", ArgFilename, + (LPVOID) &textAttribs[ColorKibitz].sound.name, TRUE }, + { "soundTell", ArgFilename, + (LPVOID) &textAttribs[ColorTell].sound.name, TRUE }, + { "soundChallenge", ArgFilename, + (LPVOID) &textAttribs[ColorChallenge].sound.name, TRUE }, + { "soundRequest", ArgFilename, + (LPVOID) &textAttribs[ColorRequest].sound.name, TRUE }, + { "soundSeek", ArgFilename, + (LPVOID) &textAttribs[ColorSeek].sound.name, TRUE }, + { "soundMove", ArgFilename, (LPVOID) &sounds[(int)SoundMove].name, TRUE }, + { "soundBell", ArgFilename, (LPVOID) &sounds[(int)SoundBell].name, TRUE }, + { "soundIcsWin", ArgFilename, (LPVOID) &sounds[(int)SoundIcsWin].name,TRUE }, + { "soundIcsLoss", ArgFilename, + (LPVOID) &sounds[(int)SoundIcsLoss].name, TRUE }, + { "soundIcsDraw", ArgFilename, + (LPVOID) &sounds[(int)SoundIcsDraw].name, TRUE }, + { "soundIcsUnfinished", ArgFilename, + (LPVOID) &sounds[(int)SoundIcsUnfinished].name, TRUE}, + { "soundIcsAlarm", ArgFilename, + (LPVOID) &sounds[(int)SoundAlarm].name, TRUE }, + { "reuseFirst", ArgBoolean, (LPVOID) &appData.reuseFirst, FALSE }, + { "reuse", ArgTrue, (LPVOID) &appData.reuseFirst, FALSE }, + { "xreuse", ArgFalse, (LPVOID) &appData.reuseFirst, FALSE }, + { "-reuse", ArgFalse, (LPVOID) &appData.reuseFirst, FALSE }, + { "reuseChessPrograms", ArgBoolean, + (LPVOID) &appData.reuseFirst, FALSE }, /* backward compat only */ + { "reuseSecond", ArgBoolean, (LPVOID) &appData.reuseSecond, FALSE }, + { "reuse2", ArgTrue, (LPVOID) &appData.reuseSecond, FALSE }, + { "xreuse2", ArgFalse, (LPVOID) &appData.reuseSecond, FALSE }, + { "-reuse2", ArgFalse, (LPVOID) &appData.reuseSecond, FALSE }, + { "comPortSettings", ArgCommSettings, (LPVOID) &dcb, TRUE }, + { "x", ArgInt, (LPVOID) &boardX, TRUE }, + { "y", ArgInt, (LPVOID) &boardY, TRUE }, + { "icsX", ArgInt, (LPVOID) &consoleX, TRUE }, + { "icsY", ArgInt, (LPVOID) &consoleY, TRUE }, + { "icsW", ArgInt, (LPVOID) &consoleW, TRUE }, + { "icsH", ArgInt, (LPVOID) &consoleH, TRUE }, + { "analysisX", ArgInt, (LPVOID) &analysisX, TRUE }, + { "analysisY", ArgInt, (LPVOID) &analysisY, TRUE }, + { "analysisW", ArgInt, (LPVOID) &analysisW, TRUE }, + { "analysisH", ArgInt, (LPVOID) &analysisH, TRUE }, + { "commentX", ArgInt, (LPVOID) &commentX, TRUE }, + { "commentY", ArgInt, (LPVOID) &commentY, TRUE }, + { "commentW", ArgInt, (LPVOID) &commentW, TRUE }, + { "commentH", ArgInt, (LPVOID) &commentH, TRUE }, + { "tagsX", ArgInt, (LPVOID) &editTagsX, TRUE }, + { "tagsY", ArgInt, (LPVOID) &editTagsY, TRUE }, + { "tagsW", ArgInt, (LPVOID) &editTagsW, TRUE }, + { "tagsH", ArgInt, (LPVOID) &editTagsH, TRUE }, + { "gameListX", ArgInt, (LPVOID) &gameListX, TRUE }, + { "gameListY", ArgInt, (LPVOID) &gameListY, TRUE }, + { "gameListW", ArgInt, (LPVOID) &gameListW, TRUE }, + { "gameListH", ArgInt, (LPVOID) &gameListH, TRUE }, + { "settingsFile", ArgSettingsFilename, (LPVOID) &settingsFileName, FALSE }, + { "ini", ArgSettingsFilename, (LPVOID) &settingsFileName, FALSE }, + { "saveSettingsOnExit", ArgBoolean, (LPVOID) &saveSettingsOnExit, TRUE }, + { "chessProgram", ArgBoolean, (LPVOID) &chessProgram, FALSE }, + { "cp", ArgTrue, (LPVOID) &chessProgram, FALSE }, + { "xcp", ArgFalse, (LPVOID) &chessProgram, FALSE }, + { "-cp", ArgFalse, (LPVOID) &chessProgram, FALSE }, + { "icsMenu", ArgString, (LPVOID) &icsTextMenuString, TRUE }, + { "icsNames", ArgString, (LPVOID) &icsNames, TRUE }, + { "firstChessProgramNames", ArgString, (LPVOID) &firstChessProgramNames, + TRUE }, + { "secondChessProgramNames", ArgString, (LPVOID) &secondChessProgramNames, + TRUE }, + { "initialMode", ArgString, (LPVOID) &appData.initialMode, FALSE }, + { "mode", ArgString, (LPVOID) &appData.initialMode, FALSE }, + { "variant", ArgString, (LPVOID) &appData.variant, FALSE }, + { "firstProtocolVersion", ArgInt, (LPVOID) &appData.firstProtocolVersion, + FALSE }, + { "secondProtocolVersion", ArgInt, (LPVOID) &appData.secondProtocolVersion, + FALSE }, + { "showButtonBar", ArgBoolean, (LPVOID) &appData.showButtonBar, TRUE }, + { "buttons", ArgTrue, (LPVOID) &appData.showButtonBar, FALSE }, + { "xbuttons", ArgFalse, (LPVOID) &appData.showButtonBar, FALSE }, + { "-buttons", ArgFalse, (LPVOID) &appData.showButtonBar, FALSE }, +#ifdef ZIPPY + { "zippyTalk", ArgBoolean, (LPVOID) &appData.zippyTalk, FALSE }, + { "zt", ArgTrue, (LPVOID) &appData.zippyTalk, FALSE }, + { "xzt", ArgFalse, (LPVOID) &appData.zippyTalk, FALSE }, + { "-zt", ArgFalse, (LPVOID) &appData.zippyTalk, FALSE }, + { "zippyPlay", ArgBoolean, (LPVOID) &appData.zippyPlay, FALSE }, + { "zp", ArgTrue, (LPVOID) &appData.zippyPlay, FALSE }, + { "xzp", ArgFalse, (LPVOID) &appData.zippyPlay, FALSE }, + { "-zp", ArgFalse, (LPVOID) &appData.zippyPlay, FALSE }, + { "zippyLines", ArgFilename, (LPVOID) &appData.zippyLines, FALSE }, + { "zippyPinhead", ArgString, (LPVOID) &appData.zippyPinhead, FALSE }, + { "zippyPassword", ArgString, (LPVOID) &appData.zippyPassword, FALSE }, + { "zippyPassword2", ArgString, (LPVOID) &appData.zippyPassword2, FALSE }, + { "zippyWrongPassword", ArgString, (LPVOID) &appData.zippyWrongPassword, + FALSE }, + { "zippyAcceptOnly", ArgString, (LPVOID) &appData.zippyAcceptOnly, FALSE }, + { "zippyUseI", ArgBoolean, (LPVOID) &appData.zippyUseI, FALSE }, + { "zui", ArgTrue, (LPVOID) &appData.zippyUseI, FALSE }, + { "xzui", ArgFalse, (LPVOID) &appData.zippyUseI, FALSE }, + { "-zui", ArgFalse, (LPVOID) &appData.zippyUseI, FALSE }, + { "zippyBughouse", ArgInt, (LPVOID) &appData.zippyBughouse, FALSE }, + { "zippyNoplayCrafty", ArgBoolean, (LPVOID) &appData.zippyNoplayCrafty, + FALSE }, + { "znc", ArgTrue, (LPVOID) &appData.zippyNoplayCrafty, FALSE }, + { "xznc", ArgFalse, (LPVOID) &appData.zippyNoplayCrafty, FALSE }, + { "-znc", ArgFalse, (LPVOID) &appData.zippyNoplayCrafty, FALSE }, + { "zippyGameEnd", ArgString, (LPVOID) &appData.zippyGameEnd, FALSE }, + { "zippyGameStart", ArgString, (LPVOID) &appData.zippyGameStart, FALSE }, + { "zippyAdjourn", ArgBoolean, (LPVOID) &appData.zippyAdjourn, FALSE }, + { "zadj", ArgTrue, (LPVOID) &appData.zippyAdjourn, FALSE }, + { "xzadj", ArgFalse, (LPVOID) &appData.zippyAdjourn, FALSE }, + { "-zadj", ArgFalse, (LPVOID) &appData.zippyAdjourn, FALSE }, + { "zippyAbort", ArgBoolean, (LPVOID) &appData.zippyAbort, FALSE }, + { "zab", ArgTrue, (LPVOID) &appData.zippyAbort, FALSE }, + { "xzab", ArgFalse, (LPVOID) &appData.zippyAbort, FALSE }, + { "-zab", ArgFalse, (LPVOID) &appData.zippyAbort, FALSE }, + { "zippyVariants", ArgString, (LPVOID) &appData.zippyVariants, FALSE }, + { "zippyMaxGames", ArgInt, (LPVOID)&appData.zippyMaxGames, FALSE }, + { "zippyReplayTimeout", ArgInt, (LPVOID)&appData.zippyReplayTimeout, FALSE }, + /* Kludge to allow winboard.ini files from buggy 4.0.4 to be read: */ + { "zippyReplyTimeout", ArgInt, (LPVOID)&junk, FALSE }, +#endif + { NULL, ArgNone, NULL, FALSE } +}; + + +/* Kludge for indirection files on command line */ +char* lastIndirectionFilename; +ArgDescriptor argDescriptorIndirection = +{ "", ArgSettingsFilename, (LPVOID) NULL, FALSE }; + + +VOID +ExitArgError(char *msg, char *badArg) +{ + char buf[MSG_SIZ]; + + sprintf(buf, "%s %s", msg, badArg); + DisplayFatalError(buf, 0, 2); + exit(2); +} + +/* Command line font name parser. NULL name means do nothing. + Syntax like "Courier New:10.0 bi" or "Arial:10" or "Arial:10b" + For backward compatibility, syntax without the colon is also + accepted, but font names with digits in them won't work in that case. +*/ +VOID +ParseFontName(char *name, MyFontParams *mfp) +{ + char *p, *q; + if (name == NULL) return; + p = name; + q = strchr(p, ':'); + if (q) { + if (q - p >= sizeof(mfp->faceName)) + ExitArgError("Font name too long:", name); + memcpy(mfp->faceName, p, q - p); + mfp->faceName[q - p] = NULLCHAR; + p = q + 1; + } else { + q = mfp->faceName; + while (*p && !isdigit(*p)) { + *q++ = *p++; + if (q - mfp->faceName >= sizeof(mfp->faceName)) + ExitArgError("Font name too long:", name); + } + while (q > mfp->faceName && q[-1] == ' ') q--; + *q = NULLCHAR; + } + if (!*p) ExitArgError("Font point size missing:", name); + mfp->pointSize = (float) atof(p); + mfp->bold = (strchr(p, 'b') != NULL); + mfp->italic = (strchr(p, 'i') != NULL); + mfp->underline = (strchr(p, 'u') != NULL); + mfp->strikeout = (strchr(p, 's') != NULL); +} + +/* Color name parser. + X version accepts X color names, but this one + handles only the #rrggbb form (hex) or rrr,ggg,bbb (decimal) */ +COLORREF +ParseColorName(char *name) +{ + int red, green, blue, count; + char buf[MSG_SIZ]; + + count = sscanf(name, "#%2x%2x%2x", &red, &green, &blue); + if (count != 3) { + count = sscanf(name, "%3d%*[^0-9]%3d%*[^0-9]%3d", + &red, &green, &blue); + } + if (count != 3) { + sprintf(buf, "Can't parse color name %s", name); + DisplayError(buf, 0); + return RGB(0, 0, 0); + } + return PALETTERGB(red, green, blue); +} + + +void ParseAttribs(COLORREF *color, int *effects, char* argValue) +{ + char *e = argValue; + int eff = 0; + + while (*e) { + if (*e == 'b') eff |= CFE_BOLD; + else if (*e == 'i') eff |= CFE_ITALIC; + else if (*e == 'u') eff |= CFE_UNDERLINE; + else if (*e == 's') eff |= CFE_STRIKEOUT; + else if (*e == '#' || isdigit(*e)) break; + e++; + } + *effects = eff; + *color = ParseColorName(e); +} + + +BoardSize +ParseBoardSize(char *name) +{ + BoardSize bs = SizeTiny; + while (sizeInfo[bs].name != NULL) { + if (StrCaseCmp(name, sizeInfo[bs].name) == 0) return bs; + bs++; + } + ExitArgError("Unrecognized board size value", name); + return bs; /* not reached */ +} + + +char +StringGet(void *getClosure) +{ + char **p = (char **) getClosure; + return *((*p)++); +} + +char +FileGet(void *getClosure) +{ + int c; + FILE* f = (FILE*) getClosure; + + c = getc(f); + if (c == EOF) + return NULLCHAR; + else + return (char) c; +} + +/* Parse settings file named "name". If file found, return the + full name in fullname and return TRUE; else return FALSE */ +BOOLEAN +ParseSettingsFile(char *name, char fullname[MSG_SIZ]) +{ + char *dummy; + FILE *f; + + if (SearchPath(installDir, name, NULL, MSG_SIZ, fullname, &dummy)) { + f = fopen(fullname, "r"); + if (f != NULL) { + ParseArgs(FileGet, f); + fclose(f); + return TRUE; + } + } + return FALSE; +} + +VOID +ParseArgs(GetFunc get, void *cl) +{ + char argName[ARG_MAX]; + char argValue[ARG_MAX]; + ArgDescriptor *ad; + char start; + char *q; + int i, octval; + char ch; + int posarg = 0; + + ch = get(cl); + for (;;) { + while (ch == ' ' || ch == '\n' || ch == '\t') ch = get(cl); + if (ch == NULLCHAR) break; + if (ch == ';') { + /* Comment to end of line */ + ch = get(cl); + while (ch != '\n' && ch != NULLCHAR) ch = get(cl); + continue; + } else if (ch == '/' || ch == '-') { + /* Switch */ + q = argName; + while (ch != ' ' && ch != '=' && ch != ':' && ch != NULLCHAR && + ch != '\n' && ch != '\t') { + *q++ = ch; + ch = get(cl); + } + *q = NULLCHAR; + + for (ad = argDescriptors; ad->argName != NULL; ad++) + if (strcmp(ad->argName, argName + 1) == 0) break; + + if (ad->argName == NULL) + ExitArgError("Unrecognized argument", argName); + + } else if (ch == '@') { + /* Indirection file */ + ad = &argDescriptorIndirection; + ch = get(cl); + } else { + /* Positional argument */ + ad = &argDescriptors[posarg++]; + strcpy(argName, ad->argName); + } + + if (ad->argType == ArgTrue) { + *(Boolean *) ad->argLoc = TRUE; + continue; + } + if (ad->argType == ArgFalse) { + *(Boolean *) ad->argLoc = FALSE; + continue; + } + + while (ch == ' ' || ch == '=' || ch == ':' || ch == '\t') ch = get(cl); + if (ch == NULLCHAR || ch == '\n') { + ExitArgError("No value provided for argument", argName); + } + q = argValue; + if (ch == '{') { + // Quoting with { }. No characters have to (or can) be escaped. + // Thus the string cannot contain a '}' character. + start = ch; + ch = get(cl); + while (start) { + switch (ch) { + case NULLCHAR: + start = NULLCHAR; + break; + + case '}': + ch = get(cl); + start = NULLCHAR; + break; + + default: + *q++ = ch; + ch = get(cl); + break; + } + } + } else if (ch == '\'' || ch == '"') { + // Quoting with ' ' or " ", with \ as escape character. + // Inconvenient for long strings that may contain Windows filenames. + start = ch; + ch = get(cl); + while (start) { + switch (ch) { + case NULLCHAR: + start = NULLCHAR; + break; + + default: + not_special: + *q++ = ch; + ch = get(cl); + break; + + case '\'': + case '\"': + if (ch == start) { + ch = get(cl); + start = NULLCHAR; + break; + } else { + goto not_special; + } + + case '\\': + if (ad->argType == ArgFilename + || ad->argType == ArgSettingsFilename) { + goto not_special; + } + ch = get(cl); + switch (ch) { + case NULLCHAR: + ExitArgError("Incomplete \\ escape in value for", argName); + break; + case 'n': + *q++ = '\n'; + ch = get(cl); + break; + case 'r': + *q++ = '\r'; + ch = get(cl); + break; + case 't': + *q++ = '\t'; + ch = get(cl); + break; + case 'b': + *q++ = '\b'; + ch = get(cl); + break; + case 'f': + *q++ = '\f'; + ch = get(cl); + break; + default: + octval = 0; + for (i = 0; i < 3; i++) { + if (ch >= '0' && ch <= '7') { + octval = octval*8 + (ch - '0'); + ch = get(cl); + } else { + break; + } + } + if (i > 0) { + *q++ = (char) octval; + } else { + *q++ = ch; + ch = get(cl); + } + break; + } + break; + } + } + } else { + while (ch != ' ' && ch != NULLCHAR && ch != '\t' && ch != '\n') { + *q++ = ch; + ch = get(cl); + } + } + *q = NULLCHAR; + + switch (ad->argType) { + case ArgInt: + *(int *) ad->argLoc = atoi(argValue); + break; + + case ArgFloat: + *(float *) ad->argLoc = (float) atof(argValue); + break; + + case ArgString: + case ArgFilename: + *(char **) ad->argLoc = strdup(argValue); + break; + + case ArgSettingsFilename: + { + char fullname[MSG_SIZ]; + if (ParseSettingsFile(argValue, fullname)) { + if (ad->argLoc != NULL) { + *(char **) ad->argLoc = strdup(fullname); + } + } else { + if (ad->argLoc != NULL) { + } else { + ExitArgError("Failed to open indirection file", argValue); + } + } + } + break; + + case ArgBoolean: + switch (argValue[0]) { + case 't': + case 'T': + *(Boolean *) ad->argLoc = TRUE; + break; + case 'f': + case 'F': + *(Boolean *) ad->argLoc = FALSE; + break; + default: + ExitArgError("Unrecognized boolean argument value", argValue); + break; + } + break; + + case ArgColor: + *(COLORREF *)ad->argLoc = ParseColorName(argValue); + break; + + case ArgAttribs: { + ColorClass cc = (ColorClass)ad->argLoc; + ParseAttribs(&textAttribs[cc].color, &textAttribs[cc].effects, argValue); + } + break; + + case ArgBoardSize: + *(BoardSize *)ad->argLoc = ParseBoardSize(argValue); + break; + + case ArgFont: + ParseFontName(argValue, &font[boardSize][(int)ad->argLoc]->mfp); + break; + + case ArgCommSettings: + ParseCommSettings(argValue, &dcb); + break; + + case ArgNone: + ExitArgError("Unrecognized argument", argValue); + break; + } + } +} + +VOID +LFfromMFP(LOGFONT* lf, MyFontParams *mfp) +{ + HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL); + lf->lfHeight = -(int)(mfp->pointSize * GetDeviceCaps(hdc, LOGPIXELSY) / 72.0 + 0.5); + DeleteDC(hdc); + lf->lfWidth = 0; + lf->lfEscapement = 0; + lf->lfOrientation = 0; + lf->lfWeight = mfp->bold ? FW_BOLD : FW_NORMAL; + lf->lfItalic = mfp->italic; + lf->lfUnderline = mfp->underline; + lf->lfStrikeOut = mfp->strikeout; + lf->lfCharSet = DEFAULT_CHARSET; + lf->lfOutPrecision = OUT_DEFAULT_PRECIS; + lf->lfClipPrecision = CLIP_DEFAULT_PRECIS; + lf->lfQuality = DEFAULT_QUALITY; + lf->lfPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE; + strcpy(lf->lfFaceName, mfp->faceName); +} + +VOID +CreateFontInMF(MyFont *mf) +{ + LFfromMFP(&mf->lf, &mf->mfp); + if (mf->hf) DeleteObject(mf->hf); + mf->hf = CreateFontIndirect(&mf->lf); +} + +VOID +SetDefaultTextAttribs() +{ + ColorClass cc; + for (cc = (ColorClass)0; cc < NColorClasses; cc++) { + ParseAttribs(&textAttribs[cc].color, + &textAttribs[cc].effects, + defaultTextAttribs[cc]); + } +} + +VOID +SetDefaultSounds() +{ + ColorClass cc; + SoundClass sc; + for (cc = (ColorClass)0; cc < NColorClasses; cc++) { + textAttribs[cc].sound.name = strdup(""); + textAttribs[cc].sound.data = NULL; + } + for (sc = (SoundClass)0; sc < NSoundClasses; sc++) { + sounds[sc].name = strdup(""); + sounds[sc].data = NULL; + } + sounds[(int)SoundBell].name = strdup(SOUND_BELL); +} + +VOID +LoadAllSounds() +{ + ColorClass cc; + SoundClass sc; + for (cc = (ColorClass)0; cc < NColorClasses; cc++) { + MyLoadSound(&textAttribs[cc].sound); + } + for (sc = (SoundClass)0; sc < NSoundClasses; sc++) { + MyLoadSound(&sounds[sc]); + } +} + +VOID +InitAppData(LPSTR lpCmdLine) +{ + int i, j; + char buf[ARG_MAX], currDir[MSG_SIZ]; + char *dummy, *p; + + programName = szAppName; + + /* Initialize to defaults */ + lightSquareColor = ParseColorName(LIGHT_SQUARE_COLOR); + darkSquareColor = ParseColorName(DARK_SQUARE_COLOR); + whitePieceColor = ParseColorName(WHITE_PIECE_COLOR); + blackPieceColor = ParseColorName(BLACK_PIECE_COLOR); + highlightSquareColor = ParseColorName(HIGHLIGHT_SQUARE_COLOR); + premoveHighlightColor = ParseColorName(PREMOVE_HIGHLIGHT_COLOR); + consoleBackgroundColor = ParseColorName(COLOR_BKGD); + SetDefaultTextAttribs(); + SetDefaultSounds(); + appData.movesPerSession = MOVES_PER_SESSION; + appData.initString = INIT_STRING; + appData.secondInitString = INIT_STRING; + appData.firstComputerString = COMPUTER_STRING; + appData.secondComputerString = COMPUTER_STRING; + appData.firstChessProgram = FIRST_CHESS_PROGRAM; + appData.secondChessProgram = SECOND_CHESS_PROGRAM; + appData.firstPlaysBlack = FALSE; + appData.noChessProgram = FALSE; + chessProgram = FALSE; + appData.firstHost = FIRST_HOST; + appData.secondHost = SECOND_HOST; + appData.firstDirectory = FIRST_DIRECTORY; + appData.secondDirectory = SECOND_DIRECTORY; + appData.bitmapDirectory = ""; + appData.remoteShell = REMOTE_SHELL; + appData.remoteUser = ""; + appData.timeDelay = TIME_DELAY; + appData.timeControl = TIME_CONTROL; + appData.timeIncrement = TIME_INCREMENT; + appData.icsActive = FALSE; + appData.icsHost = ""; + appData.icsPort = ICS_PORT; + appData.icsCommPort = ICS_COMM_PORT; + appData.icsLogon = ICS_LOGON; + appData.icsHelper = ""; + appData.useTelnet = FALSE; + appData.telnetProgram = TELNET_PROGRAM; + appData.gateway = ""; + appData.loadGameFile = ""; + appData.loadGameIndex = 0; + appData.saveGameFile = ""; + appData.autoSaveGames = FALSE; + appData.loadPositionFile = ""; + appData.loadPositionIndex = 1; + appData.savePositionFile = ""; + appData.matchMode = FALSE; + appData.matchGames = 0; + appData.monoMode = FALSE; + appData.debugMode = FALSE; + appData.clockMode = TRUE; + boardSize = (BoardSize) -1; /* determine by screen size */ + appData.Iconic = FALSE; /*unused*/ + appData.searchTime = ""; + appData.searchDepth = 0; + appData.showCoords = FALSE; + appData.ringBellAfterMoves = TRUE; /*obsolete in WinBoard*/ + appData.autoCallFlag = FALSE; + appData.flipView = FALSE; + appData.autoFlipView = TRUE; + appData.cmailGameName = ""; + appData.alwaysPromoteToQueen = FALSE; + appData.oldSaveStyle = FALSE; + appData.quietPlay = FALSE; + appData.showThinking = FALSE; + appData.ponderNextMove = TRUE; + appData.periodicUpdates = TRUE; + appData.popupExitMessage = TRUE; + appData.popupMoveErrors = FALSE; + appData.autoObserve = FALSE; + appData.autoComment = FALSE; + appData.animate = TRUE; + appData.animSpeed = 10; + appData.animateDragging = TRUE; + appData.highlightLastMove = TRUE; + appData.getMoveList = TRUE; + appData.testLegality = TRUE; + appData.premove = TRUE; + appData.premoveWhite = FALSE; + appData.premoveWhiteText = ""; + appData.premoveBlack = FALSE; + appData.premoveBlackText = ""; + appData.icsAlarm = TRUE; + appData.icsAlarmTime = 5000; + appData.autoRaiseBoard = TRUE; + appData.localLineEditing = TRUE; + appData.colorize = TRUE; + appData.reuseFirst = TRUE; + appData.reuseSecond = TRUE; + appData.blindfold = FALSE; + dcb.DCBlength = sizeof(DCB); + dcb.BaudRate = 9600; + dcb.fBinary = TRUE; + dcb.fParity = FALSE; + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + dcb.fDtrControl = DTR_CONTROL_ENABLE; + dcb.fDsrSensitivity = FALSE; + dcb.fTXContinueOnXoff = TRUE; + dcb.fOutX = FALSE; + dcb.fInX = FALSE; + dcb.fNull = FALSE; + dcb.fRtsControl = RTS_CONTROL_ENABLE; + dcb.fAbortOnError = FALSE; + dcb.wReserved = 0; + dcb.ByteSize = 7; + dcb.Parity = SPACEPARITY; + dcb.StopBits = ONESTOPBIT; + settingsFileName = SETTINGS_FILE; + saveSettingsOnExit = TRUE; + boardX = CW_USEDEFAULT; + boardY = CW_USEDEFAULT; + consoleX = CW_USEDEFAULT; + consoleY = CW_USEDEFAULT; + consoleW = CW_USEDEFAULT; + consoleH = CW_USEDEFAULT; + analysisX = CW_USEDEFAULT; + analysisY = CW_USEDEFAULT; + analysisW = CW_USEDEFAULT; + analysisH = CW_USEDEFAULT; + commentX = CW_USEDEFAULT; + commentY = CW_USEDEFAULT; + commentW = CW_USEDEFAULT; + commentH = CW_USEDEFAULT; + editTagsX = CW_USEDEFAULT; + editTagsY = CW_USEDEFAULT; + editTagsW = CW_USEDEFAULT; + editTagsH = CW_USEDEFAULT; + gameListX = CW_USEDEFAULT; + gameListY = CW_USEDEFAULT; + gameListW = CW_USEDEFAULT; + gameListH = CW_USEDEFAULT; + icsTextMenuString = ICS_TEXT_MENU_DEFAULT; + icsNames = ICS_NAMES; + firstChessProgramNames = FCP_NAMES; + secondChessProgramNames = SCP_NAMES; + appData.initialMode = ""; + appData.variant = "normal"; + appData.firstProtocolVersion = PROTOVER; + appData.secondProtocolVersion = PROTOVER; + appData.showButtonBar = TRUE; +#ifdef ZIPPY + appData.zippyTalk = ZIPPY_TALK; + appData.zippyPlay = ZIPPY_PLAY; + appData.zippyLines = ZIPPY_LINES; + appData.zippyPinhead = ZIPPY_PINHEAD; + appData.zippyPassword = ZIPPY_PASSWORD; + appData.zippyPassword2 = ZIPPY_PASSWORD2; + appData.zippyWrongPassword = ZIPPY_WRONG_PASSWORD; + appData.zippyAcceptOnly = ZIPPY_ACCEPT_ONLY; + appData.zippyUseI = ZIPPY_USE_I; + appData.zippyBughouse = ZIPPY_BUGHOUSE; + appData.zippyNoplayCrafty = ZIPPY_NOPLAY_CRAFTY; + appData.zippyGameEnd = ZIPPY_GAME_END; + appData.zippyGameStart = ZIPPY_GAME_START; + appData.zippyAdjourn = ZIPPY_ADJOURN; + appData.zippyAbort = ZIPPY_ABORT; + appData.zippyVariants = ZIPPY_VARIANTS; + appData.zippyMaxGames = ZIPPY_MAX_GAMES; + appData.zippyReplayTimeout = ZIPPY_REPLAY_TIMEOUT; +#endif + + /* Point font array elements to structures and + parse default font names */ + for (i=0; idef, &font[j][i]->mfp); + } + } + + /* Parse default settings file if any */ + if (ParseSettingsFile(settingsFileName, buf)) { + settingsFileName = strdup(buf); + } + + /* Parse command line */ + ParseArgs(StringGet, &lpCmdLine); + + /* Propagate options that affect others */ + if (appData.matchMode || appData.matchGames) chessProgram = TRUE; + if (appData.icsActive || appData.noChessProgram) { + chessProgram = FALSE; /* not local chess program mode */ + } + + /* Open startup dialog if needed */ + if ((!appData.noChessProgram && !chessProgram && !appData.icsActive) || + (appData.icsActive && *appData.icsHost == NULLCHAR) || + (chessProgram && (*appData.firstChessProgram == NULLCHAR || + *appData.secondChessProgram == NULLCHAR))) { + FARPROC lpProc; + + lpProc = MakeProcInstance((FARPROC)StartupDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_Startup), NULL, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } + + /* Make sure save files land in the right (?) directory */ + if (GetFullPathName(appData.saveGameFile, MSG_SIZ, buf, &dummy)) { + appData.saveGameFile = strdup(buf); + } + if (GetFullPathName(appData.savePositionFile, MSG_SIZ, buf, &dummy)) { + appData.savePositionFile = strdup(buf); + } + + /* Finish initialization for fonts and sounds */ + for (i=0; iargName != NULL; ad++) { + if (!ad->save) continue; + switch (ad->argType) { + case ArgString: + { + char *p = *(char **)ad->argLoc; + if ((strchr(p, '\\') || strchr(p, '\n')) && !strchr(p, '}')) { + /* Quote multiline values or \-containing values + with { } if possible */ + fprintf(f, "/%s={%s}\n", ad->argName, p); + } else { + /* Else quote with " " */ + fprintf(f, "/%s=\"", ad->argName); + while (*p) { + if (*p == '\n') fprintf(f, "\n"); + else if (*p == '\r') fprintf(f, "\\r"); + else if (*p == '\t') fprintf(f, "\\t"); + else if (*p == '\b') fprintf(f, "\\b"); + else if (*p == '\f') fprintf(f, "\\f"); + else if (*p < ' ') fprintf(f, "\\%03o", *p); + else if (*p == '\"') fprintf(f, "\\\""); + else if (*p == '\\') fprintf(f, "\\\\"); + else putc(*p, f); + p++; + } + fprintf(f, "\"\n"); + } + } + break; + case ArgInt: + fprintf(f, "/%s=%d\n", ad->argName, *(int *)ad->argLoc); + break; + case ArgFloat: + fprintf(f, "/%s=%g\n", ad->argName, *(float *)ad->argLoc); + break; + case ArgBoolean: + fprintf(f, "/%s=%s\n", ad->argName, + (*(Boolean *)ad->argLoc) ? "true" : "false"); + break; + case ArgTrue: + if (*(Boolean *)ad->argLoc) fprintf(f, "/%s\n", ad->argName); + break; + case ArgFalse: + if (!*(Boolean *)ad->argLoc) fprintf(f, "/%s\n", ad->argName); + break; + case ArgColor: + { + COLORREF color = *(COLORREF *)ad->argLoc; + fprintf(f, "/%s=#%02x%02x%02x\n", ad->argName, + color&0xff, (color>>8)&0xff, (color>>16)&0xff); + } + break; + case ArgAttribs: + { + MyTextAttribs* ta = &textAttribs[(ColorClass)ad->argLoc]; + fprintf(f, "/%s=\"%s%s%s%s%s#%02x%02x%02x\"\n", ad->argName, + (ta->effects & CFE_BOLD) ? "b" : "", + (ta->effects & CFE_ITALIC) ? "i" : "", + (ta->effects & CFE_UNDERLINE) ? "u" : "", + (ta->effects & CFE_STRIKEOUT) ? "s" : "", + (ta->effects) ? " " : "", + ta->color&0xff, (ta->color >> 8)&0xff, (ta->color >> 16)&0xff); + } + break; + case ArgFilename: + if (strchr(*(char **)ad->argLoc, '\"')) { + fprintf(f, "/%s='%s'\n", ad->argName, *(char **)ad->argLoc); + } else { + fprintf(f, "/%s=\"%s\"\n", ad->argName, *(char **)ad->argLoc); + } + break; + case ArgBoardSize: + fprintf(f, "/%s=%s\n", ad->argName, + sizeInfo[*(BoardSize *)ad->argLoc].name); + break; + case ArgFont: + { + int bs; + for (bs=0; bsargLoc]->mfp; + fprintf(f, "/size=%s ", sizeInfo[bs].name); + fprintf(f, "/%s=\"%s:%g%s%s%s%s%s\"\n", + ad->argName, mfp->faceName, mfp->pointSize, + mfp->bold || mfp->italic || mfp->underline || mfp->strikeout ? " " : "", + mfp->bold ? "b" : "", + mfp->italic ? "i" : "", + mfp->underline ? "u" : "", + mfp->strikeout ? "s" : ""); + } + } + break; + case ArgCommSettings: + PrintCommSettings(f, ad->argName, (DCB *)ad->argLoc); + } + } + fclose(f); +} + + + +/*---------------------------------------------------------------------------*\ + * + * GDI board drawing routines + * +\*---------------------------------------------------------------------------*/ + +HBITMAP +DoLoadBitmap(HINSTANCE hinst, char *piece, int squareSize, char *suffix) +{ + char name[128]; + + sprintf(name, "%s%d%s", piece, squareSize, suffix); + if (gameInfo.event && + strcmp(gameInfo.event, "Easter Egg Hunt") == 0 && + strcmp(name, "k80s") == 0) { + strcpy(name, "tim"); + } + return LoadBitmap(hinst, name); +} + + +/* Insert a color into the program's logical palette + structure. This code assumes the given color is + the result of the RGB or PALETTERGB macro, and it + knows how those macros work (which is documented). +*/ +VOID +InsertInPalette(COLORREF color) +{ + LPPALETTEENTRY pe = &(pLogPal->palPalEntry[pLogPal->palNumEntries]); + + if (pLogPal->palNumEntries++ >= PALETTESIZE) { + DisplayFatalError("Too many colors", 0, 1); + pLogPal->palNumEntries--; + return; + } + + pe->peFlags = (char) 0; + pe->peRed = (char) (0xFF & color); + pe->peGreen = (char) (0xFF & (color >> 8)); + pe->peBlue = (char) (0xFF & (color >> 16)); + return; +} + + +VOID +InitDrawingColors() +{ + if (pLogPal == NULL) { + /* Allocate enough memory for a logical palette with + * PALETTESIZE entries and set the size and version fields + * of the logical palette structure. + */ + pLogPal = (NPLOGPALETTE) + LocalAlloc(LMEM_FIXED, (sizeof(LOGPALETTE) + + (sizeof(PALETTEENTRY) * (PALETTESIZE)))); + pLogPal->palVersion = 0x300; + } + pLogPal->palNumEntries = 0; + + InsertInPalette(lightSquareColor); + InsertInPalette(darkSquareColor); + InsertInPalette(whitePieceColor); + InsertInPalette(blackPieceColor); + InsertInPalette(highlightSquareColor); + InsertInPalette(premoveHighlightColor); + + /* create a logical color palette according the information + * in the LOGPALETTE structure. + */ + hPal = CreatePalette((LPLOGPALETTE) pLogPal); + + lightSquareBrush = CreateSolidBrush(lightSquareColor); + darkSquareBrush = CreateSolidBrush(darkSquareColor); + whitePieceBrush = CreateSolidBrush(whitePieceColor); + blackPieceBrush = CreateSolidBrush(blackPieceColor); + iconBkgndBrush = CreateSolidBrush(GetSysColor(COLOR_BACKGROUND)); +} + + +int +BoardWidth(int boardSize) +{ + return (BOARD_SIZE + 1) * sizeInfo[boardSize].lineGap + + BOARD_SIZE * sizeInfo[boardSize].squareSize; +} + +/* Respond to board resize by dragging edge */ +VOID +ResizeBoard(int newSizeX, int newSizeY, int flags) +{ + BoardSize newSize = NUM_SIZES - 1; + static int recurse = 0; + if (IsIconic(hwndMain)) return; + if (recurse > 0) return; + recurse++; + while (newSize > 0 && + (newSizeX < sizeInfo[newSize].cliWidth || + newSizeY < sizeInfo[newSize].cliHeight)) { + newSize--; + } + boardSize = newSize; + InitDrawingSizes(boardSize, flags); + recurse--; +} + + + +VOID +InitDrawingSizes(BoardSize boardSize, int flags) +{ + int i, boardWidth; + ChessSquare piece; + static int oldBoardSize = -1, oldTinyLayout = 0; + HDC hdc; + SIZE clockSize, messageSize; + HFONT oldFont; + char buf[MSG_SIZ]; + char *str; + HMENU hmenu = GetMenu(hwndMain); + RECT crect, wrect; + int offby; + LOGBRUSH logbrush; + + tinyLayout = sizeInfo[boardSize].tinyLayout; + smallLayout = sizeInfo[boardSize].smallLayout; + squareSize = sizeInfo[boardSize].squareSize; + lineGap = sizeInfo[boardSize].lineGap; + + if (tinyLayout != oldTinyLayout) { + long style = GetWindowLong(hwndMain, GWL_STYLE); + if (tinyLayout) { + style &= ~WS_SYSMENU; + InsertMenu(hmenu, IDM_Exit, MF_BYCOMMAND, IDM_Minimize, + "&Minimize\tCtrl+F4"); + } else { + style |= WS_SYSMENU; + RemoveMenu(hmenu, IDM_Minimize, MF_BYCOMMAND); + } + SetWindowLong(hwndMain, GWL_STYLE, style); + + for (i=0; menuBarText[tinyLayout][i]; i++) { + ModifyMenu(hmenu, i, MF_STRING|MF_BYPOSITION|MF_POPUP, + (UINT)GetSubMenu(hmenu, i), menuBarText[tinyLayout][i]); + } + DrawMenuBar(hwndMain); + } + + boardWidth = BoardWidth(boardSize); + + /* Get text area sizes */ + hdc = GetDC(hwndMain); + if (appData.clockMode) { + sprintf(buf, "White: %s", TimeString(23*60*60*1000L)); + } else { + sprintf(buf, "White"); + } + oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf); + GetTextExtentPoint(hdc, buf, strlen(buf), &clockSize); + SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf); + str = "We only care about the height here"; + GetTextExtentPoint(hdc, str, strlen(str), &messageSize); + SelectObject(hdc, oldFont); + ReleaseDC(hwndMain, hdc); + + /* Compute where everything goes */ + whiteRect.left = OUTER_MARGIN; + whiteRect.right = whiteRect.left + boardWidth/2 - INNER_MARGIN/2; + whiteRect.top = OUTER_MARGIN; + whiteRect.bottom = whiteRect.top + clockSize.cy; + + blackRect.left = whiteRect.right + INNER_MARGIN; + blackRect.right = blackRect.left + boardWidth/2 - 1; + blackRect.top = whiteRect.top; + blackRect.bottom = whiteRect.bottom; + + messageRect.left = whiteRect.left + MESSAGE_LINE_LEFTMARGIN; + if (appData.showButtonBar) { + messageRect.right = blackRect.right + - N_BUTTONS*BUTTON_WIDTH - MESSAGE_LINE_LEFTMARGIN; + } else { + messageRect.right = blackRect.right; + } + messageRect.top = whiteRect.bottom + INNER_MARGIN; + messageRect.bottom = messageRect.top + messageSize.cy; + + boardRect.left = whiteRect.left; + boardRect.right = boardRect.left + boardWidth; + boardRect.top = messageRect.bottom + INNER_MARGIN; + boardRect.bottom = boardRect.top + boardWidth; + + sizeInfo[boardSize].cliWidth = boardRect.right + OUTER_MARGIN; + sizeInfo[boardSize].cliHeight = boardRect.bottom + OUTER_MARGIN; + winWidth = 2 * GetSystemMetrics(SM_CXFRAME) + boardRect.right + OUTER_MARGIN; + winHeight = 2 * GetSystemMetrics(SM_CYFRAME) + GetSystemMetrics(SM_CYMENU) + + GetSystemMetrics(SM_CYCAPTION) + boardRect.bottom + OUTER_MARGIN; + GetWindowRect(hwndMain, &wrect); + SetWindowPos(hwndMain, NULL, 0, 0, winWidth, winHeight, + SWP_NOCOPYBITS|SWP_NOZORDER|SWP_NOMOVE); + /* compensate if menu bar wrapped */ + GetClientRect(hwndMain, &crect); + offby = boardRect.bottom + OUTER_MARGIN - crect.bottom; + winHeight += offby; + switch (flags) { + case WMSZ_TOPLEFT: + SetWindowPos(hwndMain, NULL, + wrect.right - winWidth, wrect.bottom - winHeight, + winWidth, winHeight, SWP_NOCOPYBITS|SWP_NOZORDER); + break; + + case WMSZ_TOPRIGHT: + case WMSZ_TOP: + SetWindowPos(hwndMain, NULL, + wrect.left, wrect.bottom - winHeight, + winWidth, winHeight, SWP_NOCOPYBITS|SWP_NOZORDER); + break; + + case WMSZ_BOTTOMLEFT: + case WMSZ_LEFT: + SetWindowPos(hwndMain, NULL, + wrect.right - winWidth, wrect.top, + winWidth, winHeight, SWP_NOCOPYBITS|SWP_NOZORDER); + break; + + case WMSZ_BOTTOMRIGHT: + case WMSZ_BOTTOM: + case WMSZ_RIGHT: + default: + SetWindowPos(hwndMain, NULL, 0, 0, winWidth, winHeight, + SWP_NOCOPYBITS|SWP_NOZORDER|SWP_NOMOVE); + break; + } + + hwndPause = NULL; + for (i = 0; i < N_BUTTONS; i++) { + if (buttonDesc[i].hwnd != NULL) { + DestroyWindow(buttonDesc[i].hwnd); + buttonDesc[i].hwnd = NULL; + } + if (appData.showButtonBar) { + buttonDesc[i].hwnd = + CreateWindow("BUTTON", buttonDesc[i].label, + WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, + boardRect.right - BUTTON_WIDTH*(N_BUTTONS-i), + messageRect.top, BUTTON_WIDTH, messageSize.cy, hwndMain, + (HMENU) buttonDesc[i].id, + (HINSTANCE) GetWindowLong(hwndMain, GWL_HINSTANCE), NULL); + if (tinyLayout) { + SendMessage(buttonDesc[i].hwnd, WM_SETFONT, + (WPARAM)font[boardSize][MESSAGE_FONT]->hf, + MAKELPARAM(FALSE, 0)); + } + if (buttonDesc[i].id == IDM_Pause) + hwndPause = buttonDesc[i].hwnd; + buttonDesc[i].wndproc = (WNDPROC) + SetWindowLong(buttonDesc[i].hwnd, GWL_WNDPROC, (LONG) ButtonProc); + } + } + if (gridPen != NULL) DeleteObject(gridPen); + if (highlightPen != NULL) DeleteObject(highlightPen); + if (premovePen != NULL) DeleteObject(premovePen); + if (lineGap != 0) { + logbrush.lbStyle = BS_SOLID; + logbrush.lbColor = RGB(0, 0, 0); /* grid pen color = black */ + gridPen = + ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER, + lineGap, &logbrush, 0, NULL); + logbrush.lbColor = highlightSquareColor; + highlightPen = + ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER, + lineGap, &logbrush, 0, NULL); + + logbrush.lbColor = premoveHighlightColor; + premovePen = + ExtCreatePen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_FLAT|PS_JOIN_MITER, + lineGap, &logbrush, 0, NULL); + + for (i = 0; i < BOARD_SIZE + 1; i++) { + gridEndpoints[i*2].x = boardRect.left + lineGap / 2; + gridEndpoints[i*2 + BOARD_SIZE*2 + 2].y = boardRect.top + lineGap / 2; + gridEndpoints[i*2].y = gridEndpoints[i*2 + 1].y = + boardRect.top + lineGap / 2 + (i * (squareSize + lineGap)); + gridEndpoints[i*2 + 1].x = boardRect.left + lineGap / 2 + + BOARD_SIZE * (squareSize + lineGap); + gridEndpoints[i*2 + BOARD_SIZE*2 + 2].x = + gridEndpoints[i*2 + 1 + BOARD_SIZE*2 + 2].x = boardRect.left + + lineGap / 2 + (i * (squareSize + lineGap)); + gridEndpoints[i*2 + 1 + BOARD_SIZE*2 + 2].y = + boardRect.top + BOARD_SIZE * (squareSize + lineGap); + gridVertexCounts[i*2] = gridVertexCounts[i*2 + 1] = 2; + } + } + + if (boardSize == oldBoardSize) return; + oldBoardSize = boardSize; + oldTinyLayout = tinyLayout; + + /* Load piece bitmaps for this board size */ + for (i=0; i<=2; i++) { + for (piece = WhitePawn; + (int) piece <= (int) WhiteKing; + piece = (ChessSquare) ((int) piece + 1)) { + if (pieceBitmap[i][piece] != NULL) + DeleteObject(pieceBitmap[i][piece]); + } + } + + pieceBitmap[0][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "s"); + pieceBitmap[0][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "s"); + pieceBitmap[0][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "s"); + pieceBitmap[0][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "s"); + pieceBitmap[0][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "s"); + pieceBitmap[0][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "s"); + pieceBitmap[1][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "o"); + pieceBitmap[1][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "o"); + pieceBitmap[1][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "o"); + pieceBitmap[1][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "o"); + pieceBitmap[1][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "o"); + pieceBitmap[1][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "o"); + pieceBitmap[2][WhitePawn] = DoLoadBitmap(hInst, "p", squareSize, "w"); + pieceBitmap[2][WhiteKnight] = DoLoadBitmap(hInst, "n", squareSize, "w"); + pieceBitmap[2][WhiteBishop] = DoLoadBitmap(hInst, "b", squareSize, "w"); + pieceBitmap[2][WhiteRook] = DoLoadBitmap(hInst, "r", squareSize, "w"); + pieceBitmap[2][WhiteQueen] = DoLoadBitmap(hInst, "q", squareSize, "w"); + pieceBitmap[2][WhiteKing] = DoLoadBitmap(hInst, "k", squareSize, "w"); + +} + +HBITMAP +PieceBitmap(ChessSquare p, int kind) +{ + if ((int) p >= (int) BlackPawn) + p = (ChessSquare) ((int) p - (int) BlackPawn + (int) WhitePawn); + + return pieceBitmap[kind][(int) p]; +} + +/***************************************************************/ + +#define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#define MAX(a,b) (((a) > (b)) ? (a) : (b)) +/* +#define MIN3(a,b,c) (((a) < (b) && (a) < (c)) ? (a) : (((b) < (a) && (b) < (c)) ? (b) : (c))) +#define MAX3(a,b,c) (((a) > (b) && (a) > (c)) ? (a) : (((b) > (a) && (b) > (c)) ? (b) : (c))) +*/ + +VOID +SquareToPos(int row, int column, int * x, int * y) +{ + if (flipView) { + *x = boardRect.left + lineGap + ((BOARD_SIZE-1)-column) * (squareSize + lineGap); + *y = boardRect.top + lineGap + row * (squareSize + lineGap); + } else { + *x = boardRect.left + lineGap + column * (squareSize + lineGap); + *y = boardRect.top + lineGap + ((BOARD_SIZE-1)-row) * (squareSize + lineGap); + } +} + +VOID +DrawCoordsOnDC(HDC hdc) +{ + static char files[16] = {'1','2','3','4','5','6','7','8','8','7','6','5','4','3','2','1'}; + static char ranks[16] = {'h','g','f','e','d','c','b','a','a','b','c','d','e','f','g','h'}; + char str[2] = { NULLCHAR, NULLCHAR }; + int oldMode, oldAlign, x, y, start, i; + HFONT oldFont; + HBRUSH oldBrush; + + if (!appData.showCoords) + return; + + start = flipView ? 0 : 8; + + oldBrush = SelectObject(hdc, GetStockObject(BLACK_BRUSH)); + oldMode = SetBkMode(hdc, (appData.monoMode ? OPAQUE : TRANSPARENT)); + oldAlign = GetTextAlign(hdc); + oldFont = SelectObject(hdc, font[boardSize][COORD_FONT]->hf); + + y = boardRect.top + lineGap; + x = boardRect.left + lineGap; + + SetTextAlign(hdc, TA_LEFT|TA_TOP); + for (i = 0; i < 8; i++) { + str[0] = files[start + i]; + ExtTextOut(hdc, x + 2, y + 1, 0, NULL, str, 1, NULL); + y += squareSize + lineGap; + } + + SetTextAlign(hdc, TA_RIGHT|TA_BOTTOM); + for (i = 0; i < 8; i++) { + str[0] = ranks[start + i]; + ExtTextOut(hdc, x + squareSize - 2, y - 1, 0, NULL, str, 1, NULL); + x += squareSize + lineGap; + } + + SelectObject(hdc, oldBrush); + SetBkMode(hdc, oldMode); + SetTextAlign(hdc, oldAlign); + SelectObject(hdc, oldFont); +} + +VOID +DrawGridOnDC(HDC hdc) +{ + HPEN oldPen; + + if (lineGap != 0) { + oldPen = SelectObject(hdc, gridPen); + PolyPolyline(hdc, gridEndpoints, gridVertexCounts, BOARD_SIZE*2 + 2); + SelectObject(hdc, oldPen); + } +} + +#define HIGHLIGHT_PEN 0 +#define PREMOVE_PEN 1 + +VOID +DrawHighlightOnDC(HDC hdc, BOOLEAN on, int x, int y, int pen) +{ + int x1, y1; + HPEN oldPen, hPen; + if (lineGap == 0) return; + if (flipView) { + x1 = boardRect.left + + lineGap/2 + ((BOARD_SIZE-1)-x) * (squareSize + lineGap); + y1 = boardRect.top + + lineGap/2 + y * (squareSize + lineGap); + } else { + x1 = boardRect.left + + lineGap/2 + x * (squareSize + lineGap); + y1 = boardRect.top + + lineGap/2 + ((BOARD_SIZE-1)-y) * (squareSize + lineGap); + } + hPen = pen ? premovePen : highlightPen; + oldPen = SelectObject(hdc, on ? hPen : gridPen); + MoveToEx(hdc, x1, y1, NULL); + LineTo(hdc, x1 + squareSize + lineGap, y1); + LineTo(hdc, x1 + squareSize + lineGap, y1 + squareSize + lineGap); + LineTo(hdc, x1, y1 + squareSize + lineGap); + LineTo(hdc, x1, y1); + SelectObject(hdc, oldPen); +} + +VOID +DrawHighlightsOnDC(HDC hdc) +{ + int i; + for (i=0; i<2; i++) { + if (highlightInfo.sq[i].x >= 0 && highlightInfo.sq[i].y >= 0) + DrawHighlightOnDC(hdc, TRUE, + highlightInfo.sq[i].x, highlightInfo.sq[i].y, + HIGHLIGHT_PEN); + } + for (i=0; i<2; i++) { + if (premoveHighlightInfo.sq[i].x >= 0 && + premoveHighlightInfo.sq[i].y >= 0) { + DrawHighlightOnDC(hdc, TRUE, + premoveHighlightInfo.sq[i].x, + premoveHighlightInfo.sq[i].y, + PREMOVE_PEN); + } + } +} + +/* Note: sqcolor is used only in monoMode */ +/* Note that this code is largely duplicated in woptions.c, + function DrawSampleSquare, so that needs to be updated too */ +VOID +DrawPieceOnDC(HDC hdc, ChessSquare piece, int color, int sqcolor, int x, int y, HDC tmphdc) +{ + HBITMAP oldBitmap; + HBRUSH oldBrush; + + if (appData.blindfold) return; + + if (appData.monoMode) { + SelectObject(tmphdc, PieceBitmap(piece, + color == sqcolor ? OUTLINE_PIECE : SOLID_PIECE)); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, + sqcolor ? SRCCOPY : NOTSRCCOPY); + } else { + if (color) { + oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, WHITE_PIECE)); + oldBrush = SelectObject(hdc, whitePieceBrush); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, 0x00B8074A); +#if 0 + /* Use black piece color for outline of white pieces */ + /* Not sure this looks really good (though xboard does it). + Maybe better to have another selectable color, default black */ + SelectObject(hdc, blackPieceBrush); /* could have own brush */ + SelectObject(tmphdc, PieceBitmap(piece, OUTLINE_PIECE)); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, 0x00B8074A); +#else + /* Use black for outline of white pieces */ + SelectObject(tmphdc, PieceBitmap(piece, OUTLINE_PIECE)); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, SRCAND); +#endif + } else { +#if 0 + /* Use white piece color for details of black pieces */ + /* Requires filled-in solid bitmaps (BLACK_PIECE class); the + WHITE_PIECE ones aren't always the right shape. */ + /* Not sure this looks really good (though xboard does it). + Maybe better to have another selectable color, default medium gray? */ + oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, BLACK_PIECE)); + oldBrush = SelectObject(hdc, whitePieceBrush); /* could have own brush */ + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, 0x00B8074A); + SelectObject(tmphdc, PieceBitmap(piece, SOLID_PIECE)); + SelectObject(hdc, blackPieceBrush); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, 0x00B8074A); +#else + /* Use square color for details of black pieces */ + oldBitmap = SelectObject(tmphdc, PieceBitmap(piece, SOLID_PIECE)); + oldBrush = SelectObject(hdc, blackPieceBrush); + BitBlt(hdc, x, y, squareSize, squareSize, tmphdc, 0, 0, 0x00B8074A); +#endif + } + SelectObject(hdc, oldBrush); + SelectObject(tmphdc, oldBitmap); + } +} + +VOID +DrawBoardOnDC(HDC hdc, Board board, HDC tmphdc) +{ + int row, column, x, y, square_color, piece_color; + ChessSquare piece; + HBRUSH oldBrush; + + for (row = 0; row < BOARD_SIZE; row++) { + for (column = 0; column < BOARD_SIZE; column++) { + + SquareToPos(row, column, &x, &y); + + piece = board[row][column]; + + square_color = ((column + row) % 2) == 1; + piece_color = (int) piece < (int) BlackPawn; + + if (appData.monoMode) { + if (piece == EmptySquare) { + BitBlt(hdc, x, y, squareSize, squareSize, 0, 0, 0, + square_color ? WHITENESS : BLACKNESS); + } else { + DrawPieceOnDC(hdc, piece, piece_color, square_color, x, y, tmphdc); + } + } else { + oldBrush = SelectObject(hdc, square_color ? + lightSquareBrush : darkSquareBrush); + BitBlt(hdc, x, y, squareSize, squareSize, 0, 0, 0, PATCOPY); + SelectObject(hdc, oldBrush); + if (piece != EmptySquare) + DrawPieceOnDC(hdc, piece, piece_color, -1, x, y, tmphdc); + } + } + } +} + +#define MAX_CLIPS 200 /* more than enough */ + +VOID +HDCDrawPosition(HDC hdc, BOOLEAN repaint, Board board) +{ + static Board lastReq, lastDrawn; + static HighlightInfo lastDrawnHighlight, lastDrawnPremove; + static int lastDrawnFlipView = 0; + static int lastReqValid = 0, lastDrawnValid = 0; + int releaseDC, x, y, x2, y2, row, column, num_clips = 0, i; + HDC tmphdc; + HDC hdcmem; + HBITMAP bufferBitmap; + HBITMAP oldBitmap; + RECT Rect; + HRGN clips[MAX_CLIPS]; + ChessSquare dragged_piece = EmptySquare; + + /* I'm undecided on this - this function figures out whether a full + * repaint is necessary on its own, so there's no real reason to have the + * caller tell it that. I think this can safely be set to FALSE - but + * if we trust the callers not to request full repaints unnessesarily, then + * we could skip some clipping work. In other words, only request a full + * redraw when the majority of pieces have changed positions (ie. flip, + * gamestart and similar) --Hawk + */ + Boolean fullrepaint = repaint; + + if (board == NULL) { + if (!lastReqValid) { + return; + } + board = lastReq; + } else { + CopyBoard(lastReq, board); + lastReqValid = 1; + } + + if (doingSizing) { + return; + } + + if (IsIconic(hwndMain)) { + return; + } + + if (hdc == NULL) { + hdc = GetDC(hwndMain); + if (!appData.monoMode) { + SelectPalette(hdc, hPal, FALSE); + RealizePalette(hdc); + } + releaseDC = TRUE; + } else { + releaseDC = FALSE; + } + +#if 0 + fprintf(debugFP, "*******************************\n" + "repaint = %s\n" + "dragInfo.from (%d,%d)\n" + "dragInfo.start (%d,%d)\n" + "dragInfo.pos (%d,%d)\n" + "dragInfo.lastpos (%d,%d)\n", + repaint ? "TRUE" : "FALSE", + dragInfo.from.x, dragInfo.from.y, + dragInfo.start.x, dragInfo.start.y, + dragInfo.pos.x, dragInfo.pos.y, + dragInfo.lastpos.x, dragInfo.lastpos.y); + fprintf(debugFP, "prev: "); + for (row = 0; row < 8; row++) { + for (column = 0; column < 8; column++) { + fprintf(debugFP, "%d ", lastDrawn[row][column]); + } + } + fprintf(debugFP, "\n"); + fprintf(debugFP, "board: "); + for (row = 0; row < 8; row++) { + for (column = 0; column < 8; column++) { + fprintf(debugFP, "%d ", board[row][column]); + } + } + fprintf(debugFP, "\n"); + fflush(debugFP); +#endif + + /* Create some work-DCs */ + hdcmem = CreateCompatibleDC(hdc); + tmphdc = CreateCompatibleDC(hdc); + + /* Figure out which squares need updating by comparing the + * newest board with the last drawn board and checking if + * flipping has changed. + */ + if (!fullrepaint && lastDrawnValid && lastDrawnFlipView == flipView) { + for (row = 0; row < 8; row++) { + for (column = 0; column < 8; column++) { + if (lastDrawn[row][column] != board[row][column]) { + SquareToPos(row, column, &x, &y); + clips[num_clips++] = + CreateRectRgn(x, y, x + squareSize, y + squareSize); + } + } + } + for (i=0; i<2; i++) { + if (lastDrawnHighlight.sq[i].x != highlightInfo.sq[i].x || + lastDrawnHighlight.sq[i].y != highlightInfo.sq[i].y) { + if (lastDrawnHighlight.sq[i].x >= 0 && + lastDrawnHighlight.sq[i].y >= 0) { + SquareToPos(lastDrawnHighlight.sq[i].y, + lastDrawnHighlight.sq[i].x, &x, &y); + clips[num_clips++] = + CreateRectRgn(x - lineGap, y - lineGap, + x + squareSize + lineGap, y + squareSize + lineGap); + } + if (highlightInfo.sq[i].x >= 0 && highlightInfo.sq[i].y >= 0) { + SquareToPos(highlightInfo.sq[i].y, highlightInfo.sq[i].x, &x, &y); + clips[num_clips++] = + CreateRectRgn(x - lineGap, y - lineGap, + x + squareSize + lineGap, y + squareSize + lineGap); + } + } + } + for (i=0; i<2; i++) { + if (lastDrawnPremove.sq[i].x != premoveHighlightInfo.sq[i].x || + lastDrawnPremove.sq[i].y != premoveHighlightInfo.sq[i].y) { + if (lastDrawnPremove.sq[i].x >= 0 && + lastDrawnPremove.sq[i].y >= 0) { + SquareToPos(lastDrawnPremove.sq[i].y, + lastDrawnPremove.sq[i].x, &x, &y); + clips[num_clips++] = + CreateRectRgn(x - lineGap, y - lineGap, + x + squareSize + lineGap, y + squareSize + lineGap); + } + if (premoveHighlightInfo.sq[i].x >= 0 && + premoveHighlightInfo.sq[i].y >= 0) { + SquareToPos(premoveHighlightInfo.sq[i].y, + premoveHighlightInfo.sq[i].x, &x, &y); + clips[num_clips++] = + CreateRectRgn(x - lineGap, y - lineGap, + x + squareSize + lineGap, y + squareSize + lineGap); + } + } + } + } else { + fullrepaint = TRUE; + } + + /* Create a buffer bitmap - this is the actual bitmap + * being written to. When all the work is done, we can + * copy it to the real DC (the screen). This avoids + * the problems with flickering. + */ + GetClientRect(hwndMain, &Rect); + bufferBitmap = CreateCompatibleBitmap(hdc, Rect.right-Rect.left+1, + Rect.bottom-Rect.top+1); + oldBitmap = SelectObject(hdcmem, bufferBitmap); + if (!appData.monoMode) { + SelectPalette(hdcmem, hPal, FALSE); + } + + /* Create clips for dragging */ + if (!fullrepaint) { + if (dragInfo.from.x >= 0) { + SquareToPos(dragInfo.from.y, dragInfo.from.x, &x, &y); + clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize); + } + if (dragInfo.start.x >= 0) { + SquareToPos(dragInfo.start.y, dragInfo.start.x, &x, &y); + clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize); + } + if (dragInfo.pos.x >= 0) { + x = dragInfo.pos.x - squareSize / 2; + y = dragInfo.pos.y - squareSize / 2; + clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize); + } + if (dragInfo.lastpos.x >= 0) { + x = dragInfo.lastpos.x - squareSize / 2; + y = dragInfo.lastpos.y - squareSize / 2; + clips[num_clips++] = CreateRectRgn(x, y, x+squareSize, y+squareSize); + } + } + + /* If dragging is in progress, we temporarely remove the piece */ + if (dragInfo.from.x >= 0 && dragInfo.pos.x >= 0) { + dragged_piece = board[dragInfo.from.y][dragInfo.from.x]; + board[dragInfo.from.y][dragInfo.from.x] = EmptySquare; + } + + /* Are we animating a move? + * If so, + * - remove the piece from the board (temporarely) + * - calculate the clipping region + */ + if (!fullrepaint) { + if (animInfo.piece != EmptySquare) { + board[animInfo.from.y][animInfo.from.x] = EmptySquare; + x = boardRect.left + animInfo.lastpos.x; + y = boardRect.top + animInfo.lastpos.y; + x2 = boardRect.left + animInfo.pos.x; + y2 = boardRect.top + animInfo.pos.y; + clips[num_clips++] = CreateRectRgn(MIN(x,x2), MIN(y,y2), MAX(x,x2)+squareSize, MAX(y,y2)+squareSize); + /* Slight kludge. The real problem is that after AnimateMove is + done, the position on the screen does not match lastDrawn. + This currently causes trouble only on e.p. captures in + atomic, where the piece moves to an empty square and then + explodes. The old and new positions both had an empty square + at the destination, but animation has drawn a piece there and + we have to remember to erase it. */ + lastDrawn[animInfo.to.y][animInfo.to.x] = animInfo.piece; + } + } + + /* No clips? Make sure we have fullrepaint set to TRUE */ + if (num_clips == 0) + fullrepaint = TRUE; + + /* Set clipping on the memory DC */ + if (!fullrepaint) { + SelectClipRgn(hdcmem, clips[0]); + for (x = 1; x < num_clips; x++) { + if (ExtSelectClipRgn(hdcmem, clips[x], RGN_OR) == ERROR) + abort(); // this should never ever happen! + } + } + + /* Do all the drawing to the memory DC */ + DrawGridOnDC(hdcmem); + DrawHighlightsOnDC(hdcmem); + DrawBoardOnDC(hdcmem, board, tmphdc); + DrawCoordsOnDC(hdcmem); + + /* Put the dragged piece back into place and draw it */ + if (dragged_piece != EmptySquare) { + board[dragInfo.from.y][dragInfo.from.x] = dragged_piece; + x = dragInfo.pos.x - squareSize / 2; + y = dragInfo.pos.y - squareSize / 2; + DrawPieceOnDC(hdcmem, dragged_piece, + ((int) dragged_piece < (int) BlackPawn), + (dragInfo.from.y + dragInfo.from.x) % 2, x, y, tmphdc); + } + + /* Put the animated piece back into place and draw it */ + if (animInfo.piece != EmptySquare) { + board[animInfo.from.y][animInfo.from.x] = animInfo.piece; + x = boardRect.left + animInfo.pos.x; + y = boardRect.top + animInfo.pos.y; + DrawPieceOnDC(hdcmem, animInfo.piece, + ((int) animInfo.piece < (int) BlackPawn), + (animInfo.from.y + animInfo.from.x) % 2, x, y, tmphdc); + } + + /* Release the bufferBitmap by selecting in the old bitmap + * and delete the memory DC + */ + SelectObject(hdcmem, oldBitmap); + DeleteDC(hdcmem); + + /* Set clipping on the target DC */ + if (!fullrepaint) { + SelectClipRgn(hdc, clips[0]); + for (x = 1; x < num_clips; x++) { + if (ExtSelectClipRgn(hdc, clips[x], RGN_OR) == ERROR) + abort(); // this should never ever happen! + } + } + + /* Copy the new bitmap onto the screen in one go. + * This way we avoid any flickering + */ + oldBitmap = SelectObject(tmphdc, bufferBitmap); + BitBlt(hdc, boardRect.left, boardRect.top, + boardRect.right - boardRect.left, + boardRect.bottom - boardRect.top, + tmphdc, boardRect.left, boardRect.top, SRCCOPY); + SelectObject(tmphdc, oldBitmap); + + /* Massive cleanup */ + for (x = 0; x < num_clips; x++) + DeleteObject(clips[x]); + + DeleteDC(tmphdc); + DeleteObject(bufferBitmap); + + if (releaseDC) + ReleaseDC(hwndMain, hdc); + + if (lastDrawnFlipView != flipView) { + if (flipView) + CheckMenuItem(GetMenu(hwndMain),IDM_FlipView, MF_BYCOMMAND|MF_CHECKED); + else + CheckMenuItem(GetMenu(hwndMain),IDM_FlipView, MF_BYCOMMAND|MF_UNCHECKED); + } + + CopyBoard(lastDrawn, board); + lastDrawnHighlight = highlightInfo; + lastDrawnPremove = premoveHighlightInfo; + lastDrawnFlipView = flipView; + lastDrawnValid = 1; +} + + +/*---------------------------------------------------------------------------*\ +| CLIENT PAINT PROCEDURE +| This is the main event-handler for the WM_PAINT message. +| +\*---------------------------------------------------------------------------*/ +VOID +PaintProc(HWND hwnd) +{ + HDC hdc; + PAINTSTRUCT ps; + HFONT oldFont; + + if(hdc = BeginPaint(hwnd, &ps)) { + if (IsIconic(hwnd)) { + DrawIcon(hdc, 2, 2, iconCurrent); + } else { + if (!appData.monoMode) { + SelectPalette(hdc, hPal, FALSE); + RealizePalette(hdc); + } + HDCDrawPosition(hdc, 1, NULL); + oldFont = + SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf); + ExtTextOut(hdc, messageRect.left, messageRect.top, + ETO_CLIPPED|ETO_OPAQUE, + &messageRect, messageText, strlen(messageText), NULL); + SelectObject(hdc, oldFont); + DisplayBothClocks(); + } + EndPaint(hwnd,&ps); + } + + return; +} + + +/* + * If the user selects on a border boundary, return -1; if off the board, + * return -2. Otherwise map the event coordinate to the square. + * The offset boardRect.left or boardRect.top must already have been + * subtracted from x. + */ +int +EventToSquare(int x) +{ + if (x <= 0) + return -2; + if (x < lineGap) + return -1; + x -= lineGap; + if ((x % (squareSize + lineGap)) >= squareSize) + return -1; + x /= (squareSize + lineGap); + if (x >= BOARD_SIZE) + return -2; + return x; +} + +typedef struct { + char piece; + int command; + char* name; +} DropEnable; + +DropEnable dropEnables[] = { + { 'P', DP_Pawn, "Pawn" }, + { 'N', DP_Knight, "Knight" }, + { 'B', DP_Bishop, "Bishop" }, + { 'R', DP_Rook, "Rook" }, + { 'Q', DP_Queen, "Queen" }, +}; + +VOID +SetupDropMenu(HMENU hmenu) +{ + int i, count, enable; + char *p; + extern char white_holding[], black_holding[]; + char item[MSG_SIZ]; + + for (i=0; i 0 || !appData.testLegality + /*!!temp:*/ || (gameInfo.variant == VariantCrazyhouse + && !appData.icsActive); + ModifyMenu(hmenu, dropEnables[i].command, + MF_BYCOMMAND | (enable ? MF_ENABLED : MF_GRAYED) | MF_STRING, + dropEnables[i].command, item); + } +} + +static int fromX = -1, fromY = -1, toX, toY; + +/* Event handler for mouse messages */ +VOID +MouseEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int x, y; + POINT pt; + static int recursive = 0; + HMENU hmenu; + BOOLEAN saveAnimate; + static BOOLEAN sameAgain = FALSE; + + if (recursive) { + if (message == WM_MBUTTONUP) { + /* Hideous kludge to fool TrackPopupMenu into paying attention + to the middle button: we simulate pressing the left button too! + */ + PostMessage(hwnd, WM_LBUTTONDOWN, wParam, lParam); + PostMessage(hwnd, WM_LBUTTONUP, wParam, lParam); + } + return; + } + recursive++; + + pt.x = LOWORD(lParam); + pt.y = HIWORD(lParam); + x = EventToSquare(pt.x - boardRect.left); + y = EventToSquare(pt.y - boardRect.top); + if (!flipView && y >= 0) { + y = BOARD_SIZE - 1 - y; + } + if (flipView && x >= 0) { + x = BOARD_SIZE - 1 - x; + } + + switch (message) { + case WM_LBUTTONDOWN: + ErrorPopDown(); + sameAgain = FALSE; + if (y == -2) { + /* Downclick vertically off board; check if on clock */ + if (PtInRect((LPRECT) &whiteRect, pt)) { + if (gameMode == EditPosition) { + SetWhiteToPlayEvent(); + } else if (gameMode == IcsPlayingBlack || + gameMode == MachinePlaysWhite) { + CallFlagEvent(); + } + } else if (PtInRect((LPRECT) &blackRect, pt)) { + if (gameMode == EditPosition) { + SetBlackToPlayEvent(); + } else if (gameMode == IcsPlayingWhite || + gameMode == MachinePlaysBlack) { + CallFlagEvent(); + } + } + if (!appData.highlightLastMove) { + ClearHighlights(); + DrawPosition(FALSE, NULL); + } + fromX = fromY = -1; + dragInfo.start.x = dragInfo.start.y = -1; + dragInfo.from = dragInfo.start; + break; + } else if (x < 0 || y < 0) { + break; + } else if (fromX == x && fromY == y) { + /* Downclick on same square again */ + ClearHighlights(); + DrawPosition(FALSE, NULL); + sameAgain = TRUE; + } else if (fromX != -1) { + /* Downclick on different square */ + ChessSquare pdown, pup; + pdown = boards[currentMove][fromY][fromX]; + pup = boards[currentMove][y][x]; + if (gameMode == EditPosition || + !((WhitePawn <= pdown && pdown <= WhiteKing && + WhitePawn <= pup && pup <= WhiteKing) || + (BlackPawn <= pdown && pdown <= BlackKing && + BlackPawn <= pup && pup <= BlackKing))) { + /* EditPosition, empty square, or different color piece; + click-click move is possible */ + toX = x; + toY = y; + if (IsPromotion(fromX, fromY, toX, toY)) { + if (appData.alwaysPromoteToQueen) { + UserMoveEvent(fromX, fromY, toX, toY, 'q'); + if (!appData.highlightLastMove) { + ClearHighlights(); + DrawPosition(FALSE, NULL); + } + } else { + SetHighlights(fromX, fromY, toX, toY); + DrawPosition(FALSE, NULL); + PromotionPopup(hwnd); + } + } else { /* not a promotion */ + if (appData.animate || appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } else { + ClearHighlights(); + } + UserMoveEvent(fromX, fromY, toX, toY, NULLCHAR); + if (appData.animate && !appData.highlightLastMove) { + ClearHighlights(); + DrawPosition(FALSE, NULL); + } + } + if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY); + fromX = fromY = -1; + break; + } + ClearHighlights(); + DrawPosition(FALSE, NULL); + } + /* First downclick, or restart on a square with same color piece */ + if (!frozen && OKToStartUserMove(x, y)) { + fromX = x; + fromY = y; + dragInfo.lastpos = pt; + dragInfo.from.x = fromX; + dragInfo.from.y = fromY; + dragInfo.start = dragInfo.from; + SetCapture(hwndMain); + } else { + fromX = fromY = -1; + dragInfo.start.x = dragInfo.start.y = -1; + dragInfo.from = dragInfo.start; + } + break; + + case WM_LBUTTONUP: + ReleaseCapture(); + if (fromX == -1) break; + if (x == fromX && y == fromY) { + dragInfo.from.x = dragInfo.from.y = -1; + /* Upclick on same square */ + if (sameAgain) { + /* Clicked same square twice: abort click-click move */ + fromX = fromY = -1; + gotPremove = 0; + ClearPremoveHighlights(); + } else { + /* First square clicked: start click-click move */ + SetHighlights(fromX, fromY, -1, -1); + } + DrawPosition(FALSE, NULL); + } else if (dragInfo.from.x < 0 || dragInfo.from.y < 0) { + /* Errant click; ignore */ + break; + } else { + /* Finish drag move */ + dragInfo.from.x = dragInfo.from.y = -1; + toX = x; + toY = y; + saveAnimate = appData.animate; /* sorry, Hawk :) */ + appData.animate = appData.animate && !appData.animateDragging; + if (IsPromotion(fromX, fromY, toX, toY)) { + if (appData.alwaysPromoteToQueen) { + UserMoveEvent(fromX, fromY, toX, toY, 'q'); + } else { + DrawPosition(FALSE, NULL); + PromotionPopup(hwnd); + } + } else { + UserMoveEvent(fromX, fromY, toX, toY, NULLCHAR); + } + if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY); + appData.animate = saveAnimate; + fromX = fromY = -1; + if (appData.highlightDragging && !appData.highlightLastMove) { + ClearHighlights(); + } + if (appData.animate || appData.animateDragging || + appData.highlightDragging || gotPremove) { + DrawPosition(FALSE, NULL); + } + } + dragInfo.start.x = dragInfo.start.y = -1; + dragInfo.pos = dragInfo.lastpos = dragInfo.start; + break; + + case WM_MOUSEMOVE: + if ((appData.animateDragging || appData.highlightDragging) + && (wParam & MK_LBUTTON) + && dragInfo.from.x >= 0) { + if (appData.animateDragging) { + dragInfo.pos = pt; + } + if (appData.highlightDragging) { + SetHighlights(fromX, fromY, x, y); + } + DrawPosition(FALSE, NULL); + dragInfo.lastpos = dragInfo.pos; + } + break; + + case WM_MBUTTONDOWN: + case WM_RBUTTONDOWN: + ErrorPopDown(); + ReleaseCapture(); + fromX = fromY = -1; + dragInfo.pos.x = dragInfo.pos.y = -1; + dragInfo.start.x = dragInfo.start.y = -1; + dragInfo.from = dragInfo.start; + dragInfo.lastpos = dragInfo.pos; + if (appData.highlightDragging) { + ClearHighlights(); + } + DrawPosition(TRUE, NULL); + + switch (gameMode) { + case EditPosition: + case IcsExamining: + if (x < 0 || y < 0) break; + fromX = x; + fromY = y; + if (message == WM_MBUTTONDOWN) { + buttonCount = 3; /* even if system didn't think so */ + if (wParam & MK_SHIFT) + MenuPopup(hwnd, pt, LoadMenu(hInst, "BlackPieceMenu"), -1); + else + MenuPopup(hwnd, pt, LoadMenu(hInst, "WhitePieceMenu"), -1); + } else { /* message == WM_RBUTTONDOWN */ +#if 0 + if (buttonCount == 3) { + if (wParam & MK_SHIFT) + MenuPopup(hwnd, pt, LoadMenu(hInst, "WhitePieceMenu"), -1); + else + MenuPopup(hwnd, pt, LoadMenu(hInst, "BlackPieceMenu"), -1); + } else { + MenuPopup(hwnd, pt, LoadMenu(hInst, "PieceMenu"), -1); + } +#else + /* Just have one menu, on the right button. Windows users don't + think to try the middle one, and sometimes other software steals + it, or it doesn't really exist. */ + MenuPopup(hwnd, pt, LoadMenu(hInst, "PieceMenu"), -1); +#endif + } + break; + case IcsPlayingWhite: + case IcsPlayingBlack: + case EditGame: + case MachinePlaysWhite: + case MachinePlaysBlack: + if (appData.testLegality && + gameInfo.variant != VariantBughouse && + gameInfo.variant != VariantCrazyhouse) break; + if (x < 0 || y < 0) break; + fromX = x; + fromY = y; + hmenu = LoadMenu(hInst, "DropPieceMenu"); + SetupDropMenu(hmenu); + MenuPopup(hwnd, pt, hmenu, -1); + break; + default: + break; + } + break; + } + + recursive--; +} + +/* Preprocess messages for buttons in main window */ +LRESULT CALLBACK +ButtonProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int id = GetWindowLong(hwnd, GWL_ID); + int i, dir; + + for (i=0; inumber > 1) { + GameListPopUp(f, fileTitle); + return; + } + GameListDestroy(); + number = 1; + } + LoadGame(f, number, fileTitle, FALSE); + } +} + +VOID +ChangedConsoleFont() +{ + CHARFORMAT cfmt; + CHARRANGE tmpsel, sel; + MyFont *f = font[boardSize][CONSOLE_FONT]; + HWND hText = GetDlgItem(hwndConsole, OPT_ConsoleText); + HWND hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + PARAFORMAT paraf; + + cfmt.cbSize = sizeof(CHARFORMAT); + cfmt.dwMask = CFM_FACE|CFM_SIZE|CFM_CHARSET; + strcpy(cfmt.szFaceName, font[boardSize][CONSOLE_FONT]->mfp.faceName); + /* yHeight is expressed in twips. A twip is 1/20 of a font's point + * size. This was undocumented in the version of MSVC++ that I had + * when I wrote the code, but is apparently documented now. + */ + cfmt.yHeight = (int)(f->mfp.pointSize * 20.0 + 0.5); + cfmt.bCharSet = f->lf.lfCharSet; + cfmt.bPitchAndFamily = f->lf.lfPitchAndFamily; + SendMessage(hText, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cfmt); + SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cfmt); + /* Why are the following seemingly needed too? */ + SendMessage(hText, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM) &cfmt); + SendMessage(hInput, EM_SETCHARFORMAT, SCF_DEFAULT, (LPARAM) &cfmt); + SendMessage(hText, EM_EXGETSEL, 0, (LPARAM)&sel); + tmpsel.cpMin = 0; + tmpsel.cpMax = -1; /*999999?*/ + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&tmpsel); + SendMessage(hText, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cfmt); + /* Trying putting this here too. It still seems to tickle a RichEdit + * bug: sometimes RichEdit indents the first line of a paragraph too. + */ + paraf.cbSize = sizeof(paraf); + paraf.dwMask = PFM_OFFSET | PFM_STARTINDENT; + paraf.dxStartIndent = 0; + paraf.dxOffset = WRAP_INDENT; + SendMessage(hText, EM_SETPARAFORMAT, 0, (LPARAM) ¶f); + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel); +} + +/*---------------------------------------------------------------------------*\ + * + * Window Proc for main window + * +\*---------------------------------------------------------------------------*/ + +/* Process messages for main window, etc. */ +LRESULT CALLBACK +WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + FARPROC lpProc; + int wmId, wmEvent; + char *defName; + FILE *f; + UINT number; + char fileTitle[MSG_SIZ]; + + switch (message) { + + case WM_PAINT: /* message: repaint portion of window */ + PaintProc(hwnd); + break; + + case WM_ERASEBKGND: + if (IsIconic(hwnd)) { + /* Cheat; change the message */ + return (DefWindowProc(hwnd, WM_ICONERASEBKGND, wParam, lParam)); + } else { + return (DefWindowProc(hwnd, message, wParam, lParam)); + } + break; + + case WM_LBUTTONDOWN: + case WM_MBUTTONDOWN: + case WM_RBUTTONDOWN: + case WM_LBUTTONUP: + case WM_MBUTTONUP: + case WM_RBUTTONUP: + case WM_MOUSEMOVE: + MouseEvent(hwnd, message, wParam, lParam); + break; + + case WM_CHAR: + + if (appData.icsActive) { + if (wParam == '\t') { + if (GetKeyState(VK_SHIFT) < 0) { + /* shifted */ + HWND h = GetDlgItem(hwndConsole, OPT_ConsoleInput); + if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE); + SetFocus(h); + } else { + /* unshifted */ + HWND h = GetDlgItem(hwndConsole, OPT_ConsoleText); + if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE); + SetFocus(h); + } + } else { + HWND h = GetDlgItem(hwndConsole, OPT_ConsoleInput); + if (IsIconic(hwndConsole)) ShowWindow(hwndConsole, SW_RESTORE); + SetFocus(h); + SendMessage(h, message, wParam, lParam); + } + } else if (isalpha((char)wParam) || isdigit((char)wParam)) { + PopUpMoveDialog((char)wParam); + } + break; + + case WM_PALETTECHANGED: + if (hwnd != (HWND)wParam && !appData.monoMode) { + int nnew; + HDC hdc = GetDC(hwndMain); + SelectPalette(hdc, hPal, TRUE); + nnew = RealizePalette(hdc); + if (nnew > 0) { + paletteChanged = TRUE; +#if 0 + UpdateColors(hdc); +#else + InvalidateRect(hwnd, &boardRect, FALSE);/*faster!*/ +#endif + } + ReleaseDC(hwnd, hdc); + } + break; + + case WM_QUERYNEWPALETTE: + if (!appData.monoMode /*&& paletteChanged*/) { + int nnew; + HDC hdc = GetDC(hwndMain); + paletteChanged = FALSE; + SelectPalette(hdc, hPal, FALSE); + nnew = RealizePalette(hdc); + if (nnew > 0) { + InvalidateRect(hwnd, &boardRect, FALSE); + } + ReleaseDC(hwnd, hdc); + return TRUE; + } + return FALSE; + + case WM_COMMAND: /* message: command from application menu */ + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + + switch (wmId) { + case IDM_NewGame: + ResetGameEvent(); + AnalysisPopDown(); + break; + + case IDM_LoadGame: + LoadGameDialog(hwnd, "Load Game from File"); + break; + + case IDM_LoadNextGame: + ReloadGame(1); + break; + + case IDM_LoadPrevGame: + ReloadGame(-1); + break; + + case IDM_ReloadGame: + ReloadGame(0); + break; + + case IDM_LoadPosition: + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + Reset(FALSE, TRUE); + } + number = 1; + f = OpenFileDialog(hwnd, FALSE, "", + appData.oldSaveStyle ? "pos" : "fen", + POSITION_FILT, + "Load Position from File", &number, fileTitle, NULL); + if (f != NULL) { + LoadPosition(f, number, fileTitle); + } + break; + + case IDM_LoadNextPosition: + ReloadPosition(1); + break; + + case IDM_LoadPrevPosition: + ReloadPosition(-1); + break; + + case IDM_ReloadPosition: + ReloadPosition(0); + break; + + case IDM_SaveGame: + defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn"); + f = OpenFileDialog(hwnd, TRUE, defName, + appData.oldSaveStyle ? "gam" : "pgn", + GAME_FILT, + "Save Game to File", NULL, fileTitle, NULL); + if (f != NULL) { + SaveGame(f, 0, ""); + } + break; + + case IDM_SavePosition: + defName = DefaultFileName(appData.oldSaveStyle ? "pos" : "fen"); + f = OpenFileDialog(hwnd, TRUE, defName, + appData.oldSaveStyle ? "pos" : "fen", + POSITION_FILT, + "Save Position to File", NULL, fileTitle, NULL); + if (f != NULL) { + SavePosition(f, 0, ""); + } + break; + + case IDM_CopyGame: + CopyGameToClipboard(); + break; + + case IDM_PasteGame: + PasteGameFromClipboard(); + break; + + case IDM_CopyPosition: + CopyFENToClipboard(); + break; + + case IDM_PastePosition: + PasteFENFromClipboard(); + break; + + case IDM_MailMove: + MailMoveEvent(); + break; + + case IDM_ReloadCMailMsg: + Reset(TRUE, TRUE); + ReloadCmailMsgEvent(FALSE); + break; + + case IDM_Minimize: + ShowWindow(hwnd, SW_MINIMIZE); + break; + + case IDM_Exit: + ExitEvent(0); + break; + + case IDM_MachineWhite: + MachineWhiteEvent(); + /* + * refresh the tags dialog only if it's visible + */ + if (gameMode == MachinePlaysWhite && IsWindowVisible(editTagsDialog)) { + char *tags; + tags = PGNTags(&gameInfo); + TagsPopUp(tags, CmailMsg()); + free(tags); + } + break; + + case IDM_MachineBlack: + MachineBlackEvent(); + /* + * refresh the tags dialog only if it's visible + */ + if (gameMode == MachinePlaysBlack && IsWindowVisible(editTagsDialog)) { + char *tags; + tags = PGNTags(&gameInfo); + TagsPopUp(tags, CmailMsg()); + free(tags); + } + break; + + case IDM_TwoMachines: + TwoMachinesEvent(); + /* + * refresh the tags dialog only if it's visible + */ + if (gameMode == TwoMachinesPlay && IsWindowVisible(editTagsDialog)) { + char *tags; + tags = PGNTags(&gameInfo); + TagsPopUp(tags, CmailMsg()); + free(tags); + } + break; + + case IDM_AnalysisMode: + if (!first.analysisSupport) { + char buf[MSG_SIZ]; + sprintf(buf, "%s does not support analysis", first.tidy); + DisplayError(buf, 0); + } else { + if (!appData.showThinking) ToggleShowThinking(); + AnalyzeModeEvent(); + } + break; + + case IDM_AnalyzeFile: + if (!first.analysisSupport) { + char buf[MSG_SIZ]; + sprintf(buf, "%s does not support analysis", first.tidy); + DisplayError(buf, 0); + } else { + if (!appData.showThinking) ToggleShowThinking(); + AnalyzeFileEvent(); + LoadGameDialog(hwnd, "Analyze Game from File"); + AnalysisPeriodicEvent(1); + } + break; + + case IDM_IcsClient: + IcsClientEvent(); + break; + + case IDM_EditGame: + EditGameEvent(); + break; + + case IDM_EditPosition: + EditPositionEvent(); + break; + + case IDM_Training: + TrainingEvent(); + break; + + case IDM_ShowGameList: + ShowGameListProc(); + break; + + case IDM_EditTags: + EditTagsProc(); + break; + + case IDM_EditComment: + if (commentDialogUp && editComment) { + CommentPopDown(); + } else { + EditCommentEvent(); + } + break; + + case IDM_Pause: + PauseEvent(); + break; + + case IDM_Accept: + AcceptEvent(); + break; + + case IDM_Decline: + DeclineEvent(); + break; + + case IDM_Rematch: + RematchEvent(); + break; + + case IDM_CallFlag: + CallFlagEvent(); + break; + + case IDM_Draw: + DrawEvent(); + break; + + case IDM_Adjourn: + AdjournEvent(); + break; + + case IDM_Abort: + AbortEvent(); + break; + + case IDM_Resign: + ResignEvent(); + break; + + case IDM_StopObserving: + StopObservingEvent(); + break; + + case IDM_StopExamining: + StopExaminingEvent(); + break; + + case IDM_TypeInMove: + PopUpMoveDialog('\000'); + break; + + case IDM_Backward: + BackwardEvent(); + SetFocus(hwndMain); + break; + + case IDM_Forward: + ForwardEvent(); + SetFocus(hwndMain); + break; + + case IDM_ToStart: + ToStartEvent(); + SetFocus(hwndMain); + break; + + case IDM_ToEnd: + ToEndEvent(); + SetFocus(hwndMain); + break; + + case IDM_Revert: + RevertEvent(); + break; + + case IDM_TruncateGame: + TruncateGameEvent(); + break; + + case IDM_MoveNow: + MoveNowEvent(); + break; + + case IDM_RetractMove: + RetractMoveEvent(); + break; + + case IDM_FlipView: + flipView = !flipView; + DrawPosition(FALSE, NULL); + break; + + case IDM_GeneralOptions: + GeneralOptionsPopup(hwnd); + break; + + case IDM_BoardOptions: + BoardOptionsPopup(hwnd); + break; + + case IDM_IcsOptions: + IcsOptionsPopup(hwnd); + break; + + case IDM_Fonts: + FontsOptionsPopup(hwnd); + break; + + case IDM_Sounds: + SoundOptionsPopup(hwnd); + break; + + case IDM_CommPort: + CommPortOptionsPopup(hwnd); + break; + + case IDM_LoadOptions: + LoadOptionsPopup(hwnd); + break; + + case IDM_SaveOptions: + SaveOptionsPopup(hwnd); + break; + + case IDM_TimeControl: + TimeControlOptionsPopup(hwnd); + break; + + case IDM_SaveSettings: + SaveSettings(settingsFileName); + break; + + case IDM_SaveSettingsOnExit: + saveSettingsOnExit = !saveSettingsOnExit; + (void) CheckMenuItem(GetMenu(hwndMain), IDM_SaveSettingsOnExit, + MF_BYCOMMAND|(saveSettingsOnExit ? + MF_CHECKED : MF_UNCHECKED)); + break; + + case IDM_Hint: + HintEvent(); + break; + + case IDM_Book: + BookEvent(); + break; + + case IDM_AboutGame: + AboutGameEvent(); + break; + + case IDM_Debug: + appData.debugMode = !appData.debugMode; + if (appData.debugMode) { + char dir[MSG_SIZ]; + GetCurrentDirectory(MSG_SIZ, dir); + SetCurrentDirectory(installDir); + debugFP = fopen("WinBoard.debug", "w"); + SetCurrentDirectory(dir); + setbuf(debugFP, NULL); + } else { + fclose(debugFP); + debugFP = NULL; + } + break; + + case IDM_HELPCONTENTS: + if (!WinHelp (hwnd, "winboard.hlp", HELP_KEY,(DWORD)(LPSTR)"CONTENTS")) { + MessageBox (GetFocus(), + "Unable to activate help", + szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND); + } + break; + + case IDM_HELPSEARCH: + if (!WinHelp(hwnd, "winboard.hlp", HELP_PARTIALKEY, (DWORD)(LPSTR)"")) { + MessageBox (GetFocus(), + "Unable to activate help", + szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND); + } + break; + + case IDM_HELPHELP: + if(!WinHelp(hwnd, (LPSTR)NULL, HELP_HELPONHELP, 0)) { + MessageBox (GetFocus(), + "Unable to activate help", + szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND); + } + break; + + case IDM_ABOUT: + lpProc = MakeProcInstance((FARPROC)About, hInst); + DialogBox(hInst, + (gameInfo.event && strcmp(gameInfo.event, "Easter Egg Hunt") == 0) ? + "AboutBox2" : "AboutBox", hwnd, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + break; + + case IDM_DirectCommand1: + AskQuestionEvent("Direct Command", + "Send to chess program:", "", "1"); + break; + case IDM_DirectCommand2: + AskQuestionEvent("Direct Command", + "Send to second chess program:", "", "2"); + break; + + case EP_WhitePawn: + EditPositionMenuEvent(WhitePawn, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_WhiteKnight: + EditPositionMenuEvent(WhiteKnight, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_WhiteBishop: + EditPositionMenuEvent(WhiteBishop, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_WhiteRook: + EditPositionMenuEvent(WhiteRook, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_WhiteQueen: + EditPositionMenuEvent(WhiteQueen, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_WhiteKing: + EditPositionMenuEvent(WhiteKing, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackPawn: + EditPositionMenuEvent(BlackPawn, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackKnight: + EditPositionMenuEvent(BlackKnight, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackBishop: + EditPositionMenuEvent(BlackBishop, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackRook: + EditPositionMenuEvent(BlackRook, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackQueen: + EditPositionMenuEvent(BlackQueen, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_BlackKing: + EditPositionMenuEvent(BlackKing, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_EmptySquare: + EditPositionMenuEvent(EmptySquare, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_ClearBoard: + EditPositionMenuEvent(ClearBoard, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_White: + EditPositionMenuEvent(WhitePlay, fromX, fromY); + fromX = fromY = -1; + break; + + case EP_Black: + EditPositionMenuEvent(BlackPlay, fromX, fromY); + fromX = fromY = -1; + break; + + case DP_Pawn: + DropMenuEvent(WhitePawn, fromX, fromY); + fromX = fromY = -1; + break; + + case DP_Knight: + DropMenuEvent(WhiteKnight, fromX, fromY); + fromX = fromY = -1; + break; + + case DP_Bishop: + DropMenuEvent(WhiteBishop, fromX, fromY); + fromX = fromY = -1; + break; + + case DP_Rook: + DropMenuEvent(WhiteRook, fromX, fromY); + fromX = fromY = -1; + break; + + case DP_Queen: + DropMenuEvent(WhiteQueen, fromX, fromY); + fromX = fromY = -1; + break; + + default: + return (DefWindowProc(hwnd, message, wParam, lParam)); + } + break; + + case WM_TIMER: + switch (wParam) { + case CLOCK_TIMER_ID: + KillTimer(hwnd, clockTimerEvent); /* Simulate one-shot timer as in X */ + clockTimerEvent = 0; + DecrementClocks(); /* call into back end */ + break; + case LOAD_GAME_TIMER_ID: + KillTimer(hwnd, loadGameTimerEvent); /* Simulate one-shot timer as in X*/ + loadGameTimerEvent = 0; + AutoPlayGameLoop(); /* call into back end */ + break; + case ANALYSIS_TIMER_ID: + if ((gameMode == AnalyzeMode || gameMode == AnalyzeFile) && + appData.periodicUpdates) { + AnalysisPeriodicEvent(0); + } else { + KillTimer(hwnd, analysisTimerEvent); + analysisTimerEvent = 0; + } + break; + case DELAYED_TIMER_ID: + KillTimer(hwnd, delayedTimerEvent); + delayedTimerEvent = 0; + delayedTimerCallback(); + break; + } + break; + + case WM_USER_Input: + InputEvent(hwnd, message, wParam, lParam); + break; + + case WM_ENTERSIZEMOVE: + if (hwnd == hwndMain) { + doingSizing = TRUE; + lastSizing = 0; + } + break; + + case WM_SIZING: + if (hwnd == hwndMain) { + lastSizing = wParam; + } + break; + + case WM_EXITSIZEMOVE: + if (hwnd == hwndMain) { + RECT client; + doingSizing = FALSE; + InvalidateRect(hwnd, &boardRect, FALSE); + GetClientRect(hwnd, &client); + ResizeBoard(client.right, client.bottom, lastSizing); + lastSizing = 0; + } + break; + + case WM_DESTROY: /* message: window being destroyed */ + PostQuitMessage(0); + break; + + case WM_CLOSE: + if (hwnd == hwndMain) { + ExitEvent(0); + } + break; + + default: /* Passes it on if unprocessed */ + return (DefWindowProc(hwnd, message, wParam, lParam)); + } + return 0; +} + +/*---------------------------------------------------------------------------*\ + * + * Misc utility routines + * +\*---------------------------------------------------------------------------*/ + +/* + * returns TRUE if user selects a different color, FALSE otherwise + */ + +BOOL +ChangeColor(HWND hwnd, COLORREF *which) +{ + static BOOL firstTime = TRUE; + static DWORD customColors[16]; + CHOOSECOLOR cc; + COLORREF newcolor; + int i; + ColorClass ccl; + + if (firstTime) { + /* Make initial colors in use available as custom colors */ + /* Should we put the compiled-in defaults here instead? */ + i = 0; + customColors[i++] = lightSquareColor & 0xffffff; + customColors[i++] = darkSquareColor & 0xffffff; + customColors[i++] = whitePieceColor & 0xffffff; + customColors[i++] = blackPieceColor & 0xffffff; + customColors[i++] = highlightSquareColor & 0xffffff; + customColors[i++] = premoveHighlightColor & 0xffffff; + + for (ccl = (ColorClass) 0; ccl < NColorClasses && i < 16; ccl++) { + customColors[i++] = textAttribs[ccl].color; + } + while (i < 16) customColors[i++] = RGB(255, 255, 255); + firstTime = FALSE; + } + + cc.lStructSize = sizeof(cc); + cc.hwndOwner = hwnd; + cc.hInstance = NULL; + cc.rgbResult = (DWORD) (*which & 0xffffff); + cc.lpCustColors = (LPDWORD) customColors; + cc.Flags = CC_RGBINIT|CC_FULLOPEN; + + if (!ChooseColor(&cc)) return FALSE; + + newcolor = (COLORREF) (0x2000000 | cc.rgbResult); + if (newcolor == *which) return FALSE; + *which = newcolor; + return TRUE; + + /* + InitDrawingColors(); + InvalidateRect(hwnd, &boardRect, FALSE); + */ +} + +BOOLEAN +MyLoadSound(MySound *ms) +{ + BOOL ok = FALSE; + struct stat st; + FILE *f; + + if (ms->data) free(ms->data); + ms->data = NULL; + + switch (ms->name[0]) { + case NULLCHAR: + /* Silence */ + ok = TRUE; + break; + case '$': + /* System sound from Control Panel. Don't preload here. */ + ok = TRUE; + break; + case '!': + if (ms->name[1] == NULLCHAR) { + /* "!" alone = silence */ + ok = TRUE; + } else { + /* Builtin wave resource. Error if not found. */ + HANDLE h = FindResource(hInst, ms->name + 1, "WAVE"); + if (h == NULL) break; + ms->data = (void *)LoadResource(hInst, h); + if (h == NULL) break; + ok = TRUE; + } + break; + default: + /* .wav file. Error if not found. */ + f = fopen(ms->name, "rb"); + if (f == NULL) break; + if (fstat(fileno(f), &st) < 0) break; + ms->data = malloc(st.st_size); + if (fread(ms->data, st.st_size, 1, f) < 1) break; + fclose(f); + ok = TRUE; + break; + } + if (!ok) { + char buf[MSG_SIZ]; + sprintf(buf, "Error loading sound %s", ms->name); + DisplayError(buf, GetLastError()); + } + return ok; +} + +BOOLEAN +MyPlaySound(MySound *ms) +{ + BOOLEAN ok = FALSE; + switch (ms->name[0]) { + case NULLCHAR: + /* Silence */ + ok = TRUE; + break; + case '$': + /* System sound from Control Panel (deprecated feature). + "$" alone or an unset sound name gets default beep (still in use). */ + if (ms->name[1]) { + ok = PlaySound(ms->name + 1, NULL, SND_ALIAS|SND_ASYNC); + } + if (!ok) ok = MessageBeep(MB_OK); + break; + case '!': + /* Builtin wave resource, or "!" alone for silence */ + if (ms->name[1]) { + if (ms->data == NULL) return FALSE; + ok = PlaySound(ms->data, NULL, SND_MEMORY|SND_ASYNC); + } else { + ok = TRUE; + } + break; + default: + /* .wav file. Error if not found. */ + if (ms->data == NULL) return FALSE; + ok = PlaySound(ms->data, NULL, SND_MEMORY|SND_ASYNC); + break; + } + /* Don't print an error: this can happen innocently if the sound driver + is busy; for instance, if another instance of WinBoard is playing + a sound at about the same time. */ +#if 0 + if (!ok) { + char buf[MSG_SIZ]; + sprintf(buf, "Error playing sound %s", ms->name); + DisplayError(buf, GetLastError()); + } +#endif + return ok; +} + + +LRESULT CALLBACK +OldOpenFileHook(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + BOOL ok; + OPENFILENAME *ofn; + static UINT *number; /* gross that this is static */ + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + ofn = (OPENFILENAME *) lParam; + if (ofn->Flags & OFN_ENABLETEMPLATE) { + number = (UINT *) ofn->lCustData; + SendMessage(GetDlgItem(hDlg, edt2), WM_SETTEXT, 0, (LPARAM) ""); + } else { + number = NULL; + } + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + return FALSE; /* Allow for further processing */ + + case WM_COMMAND: + if ((LOWORD(wParam) == IDOK) && (number != NULL)) { + *number = GetDlgItemInt(hDlg, OPT_IndexNumberOld, &ok, FALSE); + } + return FALSE; /* Allow for further processing */ + } + return FALSE; +} + +UINT APIENTRY +OpenFileHook(HWND hdlg, UINT uiMsg, WPARAM wParam, LPARAM lParam) +{ + static UINT *number; + OPENFILENAME *ofname; + OFNOTIFY *ofnot; + switch (uiMsg) { + case WM_INITDIALOG: + ofname = (OPENFILENAME *)lParam; + number = (UINT *)(ofname->lCustData); + break; + case WM_NOTIFY: + ofnot = (OFNOTIFY *)lParam; + if (ofnot->hdr.code == CDN_FILEOK) { + *number = GetDlgItemInt(hdlg, OPT_IndexNumber, NULL, FALSE); + } + break; + } + return 0; +} + + +FILE * +OpenFileDialog(HWND hwnd, BOOL write, char *defName, char *defExt, + char *nameFilt, char *dlgTitle, UINT *number, + char fileTitle[MSG_SIZ], char fileName[MSG_SIZ]) +{ + OPENFILENAME openFileName; + char buf1[MSG_SIZ]; + FILE *f; + + if (fileName == NULL) fileName = buf1; + if (defName == NULL) { + strcpy(fileName, "*."); + strcat(fileName, defExt); + } else { + strcpy(fileName, defName); + } + if (fileTitle) strcpy(fileTitle, ""); + if (number) *number = 0; + + openFileName.lStructSize = sizeof(OPENFILENAME); + openFileName.hwndOwner = hwnd; + openFileName.hInstance = (HANDLE) hInst; + openFileName.lpstrFilter = nameFilt; + openFileName.lpstrCustomFilter = (LPSTR) NULL; + openFileName.nMaxCustFilter = 0L; + openFileName.nFilterIndex = 1L; + openFileName.lpstrFile = fileName; + openFileName.nMaxFile = MSG_SIZ; + openFileName.lpstrFileTitle = fileTitle; + openFileName.nMaxFileTitle = fileTitle ? MSG_SIZ : 0; + openFileName.lpstrInitialDir = NULL; + openFileName.lpstrTitle = dlgTitle; + openFileName.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY + | (write ? 0 : OFN_FILEMUSTEXIST) + | (number ? OFN_ENABLETEMPLATE | OFN_ENABLEHOOK: 0) + | (oldDialog ? 0 : OFN_EXPLORER); + openFileName.nFileOffset = 0; + openFileName.nFileExtension = 0; + openFileName.lpstrDefExt = defExt; + openFileName.lCustData = (LONG) number; + openFileName.lpfnHook = oldDialog ? + (LPOFNHOOKPROC) OldOpenFileHook : (LPOFNHOOKPROC) OpenFileHook; + openFileName.lpTemplateName = (LPSTR)(oldDialog ? 1536 : DLG_IndexNumber); + + if (write ? GetSaveFileName(&openFileName) : + GetOpenFileName(&openFileName)) { + /* open the file */ + f = fopen(openFileName.lpstrFile, write ? "a" : "r"); + if (f == NULL) { + MessageBox(hwnd, "File open failed", NULL, + MB_OK|MB_ICONEXCLAMATION); + return NULL; + } + } else { + int err = CommDlgExtendedError(); + if (err != 0) DisplayError("Internal error in file dialog box", err); + return FALSE; + } + return f; +} + + + +VOID APIENTRY +MenuPopup(HWND hwnd, POINT pt, HMENU hmenu, UINT def) +{ + HMENU hmenuTrackPopup; /* floating pop-up menu */ + + /* + * Get the first pop-up menu in the menu template. This is the + * menu that TrackPopupMenu displays. + */ + hmenuTrackPopup = GetSubMenu(hmenu, 0); + + SetMenuDefaultItem(hmenuTrackPopup, def, FALSE); + + /* + * TrackPopup uses screen coordinates, so convert the + * coordinates of the mouse click to screen coordinates. + */ + ClientToScreen(hwnd, (LPPOINT) &pt); + + /* Draw and track the floating pop-up menu. */ + TrackPopupMenu(hmenuTrackPopup, TPM_CENTERALIGN | TPM_RIGHTBUTTON, + pt.x, pt.y, 0, hwnd, NULL); + + /* Destroy the menu.*/ + DestroyMenu(hmenu); +} + +typedef struct { + HWND hDlg, hText; + int sizeX, sizeY, newSizeX, newSizeY; + HDWP hdwp; +} ResizeEditPlusButtonsClosure; + +BOOL CALLBACK +ResizeEditPlusButtonsCallback(HWND hChild, LPARAM lparam) +{ + ResizeEditPlusButtonsClosure *cl = (ResizeEditPlusButtonsClosure *)lparam; + RECT rect; + POINT pt; + + if (hChild == cl->hText) return TRUE; + GetWindowRect(hChild, &rect); /* gives screen coords */ + pt.x = rect.left + (cl->newSizeX - cl->sizeX)/2; + pt.y = rect.top + cl->newSizeY - cl->sizeY; + ScreenToClient(cl->hDlg, &pt); + cl->hdwp = DeferWindowPos(cl->hdwp, hChild, NULL, + pt.x, pt.y, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER); + return TRUE; +} + +/* Resize a dialog that has a (rich) edit field filling most of + the top, with a row of buttons below */ +VOID +ResizeEditPlusButtons(HWND hDlg, HWND hText, int sizeX, int sizeY, int newSizeX, int newSizeY) +{ + RECT rectText; + int newTextHeight, newTextWidth; + ResizeEditPlusButtonsClosure cl; + + /*if (IsIconic(hDlg)) return;*/ + if (newSizeX == sizeX && newSizeY == sizeY) return; + + cl.hdwp = BeginDeferWindowPos(8); + + GetWindowRect(hText, &rectText); /* gives screen coords */ + newTextWidth = rectText.right - rectText.left + newSizeX - sizeX; + newTextHeight = rectText.bottom - rectText.top + newSizeY - sizeY; + if (newTextHeight < 0) { + newSizeY += -newTextHeight; + newTextHeight = 0; + } + cl.hdwp = DeferWindowPos(cl.hdwp, hText, NULL, 0, 0, + newTextWidth, newTextHeight, SWP_NOZORDER|SWP_NOMOVE); + + cl.hDlg = hDlg; + cl.hText = hText; + cl.sizeX = sizeX; + cl.sizeY = sizeY; + cl.newSizeX = newSizeX; + cl.newSizeY = newSizeY; + EnumChildWindows(hDlg, ResizeEditPlusButtonsCallback, (LPARAM)&cl); + + EndDeferWindowPos(cl.hdwp); +} + +/* Center one window over another */ +BOOL CenterWindow (HWND hwndChild, HWND hwndParent) +{ + RECT rChild, rParent; + int wChild, hChild, wParent, hParent; + int wScreen, hScreen, xNew, yNew; + HDC hdc; + + /* Get the Height and Width of the child window */ + GetWindowRect (hwndChild, &rChild); + wChild = rChild.right - rChild.left; + hChild = rChild.bottom - rChild.top; + + /* Get the Height and Width of the parent window */ + GetWindowRect (hwndParent, &rParent); + wParent = rParent.right - rParent.left; + hParent = rParent.bottom - rParent.top; + + /* Get the display limits */ + hdc = GetDC (hwndChild); + wScreen = GetDeviceCaps (hdc, HORZRES); + hScreen = GetDeviceCaps (hdc, VERTRES); + ReleaseDC(hwndChild, hdc); + + /* Calculate new X position, then adjust for screen */ + xNew = rParent.left + ((wParent - wChild) /2); + if (xNew < 0) { + xNew = 0; + } else if ((xNew+wChild) > wScreen) { + xNew = wScreen - wChild; + } + + /* Calculate new Y position, then adjust for screen */ + yNew = rParent.top + ((hParent - hChild) /2); + if (yNew < 0) { + yNew = 0; + } else if ((yNew+hChild) > hScreen) { + yNew = hScreen - hChild; + } + + /* Set it, and return */ + return SetWindowPos (hwndChild, NULL, + xNew, yNew, 0, 0, SWP_NOSIZE | SWP_NOZORDER); +} + +/*---------------------------------------------------------------------------*\ + * + * Startup Dialog functions + * +\*---------------------------------------------------------------------------*/ +void +InitComboStrings(HANDLE hwndCombo, char **cd) +{ + SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0); + + while (*cd != NULL) { + SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) *cd); + cd++; + } +} + +void +InitComboStringsFromOption(HANDLE hwndCombo, char *str) +{ + char buf1[ARG_MAX]; + int len; + + if (str[0] == '@') { + FILE* f = fopen(str + 1, "r"); + if (f == NULL) { + DisplayFatalError(str + 1, errno, 2); + return; + } + len = fread(buf1, 1, sizeof(buf1)-1, f); + fclose(f); + buf1[len] = NULLCHAR; + str = buf1; + } + + SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0); + + for (;;) { + char buf[MSG_SIZ]; + char *end = strchr(str, '\n'); + if (end == NULL) return; + memcpy(buf, str, end - str); + buf[end - str] = NULLCHAR; + SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) buf); + str = end + 1; + } +} + +void +SetStartupDialogEnables(HWND hDlg) +{ + EnableWindow(GetDlgItem(hDlg, OPT_ChessEngineName), + IsDlgButtonChecked(hDlg, OPT_ChessEngine) || + appData.zippyPlay && IsDlgButtonChecked(hDlg, OPT_ChessServer)); + EnableWindow(GetDlgItem(hDlg, OPT_SecondChessEngineName), + IsDlgButtonChecked(hDlg, OPT_ChessEngine)); + EnableWindow(GetDlgItem(hDlg, OPT_ChessServerName), + IsDlgButtonChecked(hDlg, OPT_ChessServer)); + EnableWindow(GetDlgItem(hDlg, OPT_AdditionalOptions), + IsDlgButtonChecked(hDlg, OPT_AnyAdditional)); + EnableWindow(GetDlgItem(hDlg, IDOK), + IsDlgButtonChecked(hDlg, OPT_ChessEngine) || + IsDlgButtonChecked(hDlg, OPT_ChessServer) || + IsDlgButtonChecked(hDlg, OPT_View)); +} + +char * +QuoteForFilename(char *filename) +{ + int dquote, space; + dquote = strchr(filename, '"') != NULL; + space = strchr(filename, ' ') != NULL; + if (dquote || space) { + if (dquote) { + return "'"; + } else { + return "\""; + } + } else { + return ""; + } +} + +VOID +InitEngineBox(HWND hDlg, HWND hwndCombo, char* nthcp, char* nthd, char* nthdir, char *nthnames) +{ + char buf[MSG_SIZ]; + char *q; + + InitComboStringsFromOption(hwndCombo, nthnames); + q = QuoteForFilename(nthcp); + sprintf(buf, "%s%s%s", q, nthcp, q); + if (*nthdir != NULLCHAR) { + q = QuoteForFilename(nthdir); + sprintf(buf + strlen(buf), " /%s=%s%s%s", nthd, q, nthdir, q); + } + if (*nthcp == NULLCHAR) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0); + } else if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0); + SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf); + } +} + +LRESULT CALLBACK +StartupDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + HANDLE hwndCombo; + char *p; + + switch (message) { + case WM_INITDIALOG: + /* Center the dialog */ + CenterWindow (hDlg, GetDesktopWindow()); + /* Initialize the dialog items */ + InitEngineBox(hDlg, GetDlgItem(hDlg, OPT_ChessEngineName), + appData.firstChessProgram, "fd", appData.firstDirectory, + firstChessProgramNames); + InitEngineBox(hDlg, GetDlgItem(hDlg, OPT_SecondChessEngineName), + appData.secondChessProgram, "sd", appData.secondDirectory, + secondChessProgramNames); + hwndCombo = GetDlgItem(hDlg, OPT_ChessServerName); + InitComboStringsFromOption(hwndCombo, icsNames); + sprintf(buf, "%s /icsport=%s", appData.icsHost, appData.icsPort); + if (*appData.icsHelper != NULLCHAR) { + char *q = QuoteForFilename(appData.icsHelper); + sprintf(buf + strlen(buf), " /icshelper=%s%s%s", q, appData.icsHelper, q); + } + if (*appData.icsHost == NULLCHAR) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0); + /*SendMessage(hwndCombo, CB_SHOWDROPDOWN, (WPARAM) TRUE, (LPARAM) 0); !!too soon */ + } else if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0); + SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf); + } + if (chessProgram) { + CheckDlgButton(hDlg, OPT_ChessEngine, BST_CHECKED); + } else if (appData.icsActive) { + CheckDlgButton(hDlg, OPT_ChessServer, BST_CHECKED); + } else if (appData.noChessProgram) { + CheckDlgButton(hDlg, OPT_View, BST_CHECKED); + } + SetStartupDialogEnables(hDlg); + return TRUE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + if (IsDlgButtonChecked(hDlg, OPT_ChessEngine)) { + strcpy(buf, "/fcp="); + GetDlgItemText(hDlg, OPT_ChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf)); + p = buf; + ParseArgs(StringGet, &p); + strcpy(buf, "/scp="); + GetDlgItemText(hDlg, OPT_SecondChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf)); + p = buf; + ParseArgs(StringGet, &p); + appData.noChessProgram = FALSE; + appData.icsActive = FALSE; + } else if (IsDlgButtonChecked(hDlg, OPT_ChessServer)) { + strcpy(buf, "/ics /icshost="); + GetDlgItemText(hDlg, OPT_ChessServerName, buf + strlen(buf), sizeof(buf) - strlen(buf)); + p = buf; + ParseArgs(StringGet, &p); + if (appData.zippyPlay) { + strcpy(buf, "/fcp="); + GetDlgItemText(hDlg, OPT_ChessEngineName, buf + strlen(buf), sizeof(buf) - strlen(buf)); + p = buf; + ParseArgs(StringGet, &p); + } + } else if (IsDlgButtonChecked(hDlg, OPT_View)) { + appData.noChessProgram = TRUE; + appData.icsActive = FALSE; + } else { + MessageBox(hDlg, "Choose an option, or cancel to exit", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return TRUE; + } + if (IsDlgButtonChecked(hDlg, OPT_AnyAdditional)) { + GetDlgItemText(hDlg, OPT_AdditionalOptions, buf, sizeof(buf)); + p = buf; + ParseArgs(StringGet, &p); + } + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + ExitEvent(0); + return TRUE; + + case IDM_HELPCONTENTS: + if (!WinHelp (hDlg, "winboard.hlp", HELP_KEY,(DWORD)(LPSTR)"CONTENTS")) { + MessageBox (GetFocus(), + "Unable to activate help", + szAppName, MB_SYSTEMMODAL|MB_OK|MB_ICONHAND); + } + break; + + default: + SetStartupDialogEnables(hDlg); + break; + } + break; + } + return FALSE; +} + +/*---------------------------------------------------------------------------*\ + * + * About box dialog functions + * +\*---------------------------------------------------------------------------*/ + +/* Process messages for "About" dialog box */ +LRESULT CALLBACK +About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + SetDlgItemText(hDlg, ABOUTBOX_Version, programVersion); + return (TRUE); + + case WM_COMMAND: /* message: received a command */ + if (LOWORD(wParam) == IDOK /* "OK" box selected? */ + || LOWORD(wParam) == IDCANCEL) { /* System menu close command? */ + EndDialog(hDlg, TRUE); /* Exit the dialog */ + return (TRUE); + } + break; + } + return (FALSE); +} + +/*---------------------------------------------------------------------------*\ + * + * Comment Dialog functions + * +\*---------------------------------------------------------------------------*/ + +LRESULT CALLBACK +CommentDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HANDLE hwndText = NULL; + int len, newSizeX, newSizeY, flags; + static int sizeX, sizeY; + char *str; + RECT rect; + MINMAXINFO *mmi; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Initialize the dialog items */ + hwndText = GetDlgItem(hDlg, OPT_CommentText); + SetDlgItemText(hDlg, OPT_CommentText, commentText); + EnableWindow(GetDlgItem(hDlg, OPT_CancelComment), editComment); + EnableWindow(GetDlgItem(hDlg, OPT_ClearComment), editComment); + EnableWindow(GetDlgItem(hDlg, OPT_EditComment), !editComment); + SendMessage(hwndText, EM_SETREADONLY, !editComment, 0); + SetWindowText(hDlg, commentTitle); + if (editComment) { + SetFocus(hwndText); + } else { + SetFocus(GetDlgItem(hDlg, IDOK)); + } + SendMessage(GetDlgItem(hDlg, OPT_CommentText), + WM_SETFONT, (WPARAM)font[boardSize][COMMENT_FONT]->hf, + MAKELPARAM(FALSE, 0)); + /* Size and position the dialog */ + if (!commentDialog) { + commentDialog = hDlg; + flags = SWP_NOZORDER; + GetClientRect(hDlg, &rect); + sizeX = rect.right; + sizeY = rect.bottom; + if (commentX != CW_USEDEFAULT && commentY != CW_USEDEFAULT && + commentW != CW_USEDEFAULT && commentH != CW_USEDEFAULT) { + WINDOWPLACEMENT wp; + EnsureOnScreen(&commentX, &commentY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = SW_SHOW; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = commentX; + wp.rcNormalPosition.right = commentX + commentW; + wp.rcNormalPosition.top = commentY; + wp.rcNormalPosition.bottom = commentY + commentH; + SetWindowPlacement(hDlg, &wp); + + GetClientRect(hDlg, &rect); + newSizeX = rect.right; + newSizeY = rect.bottom; + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, + newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + } + } + return FALSE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + if (editComment) { + char *p, *q; + /* Read changed options from the dialog box */ + hwndText = GetDlgItem(hDlg, OPT_CommentText); + len = GetWindowTextLength(hwndText); + str = (char *) malloc(len + 1); + GetWindowText(hwndText, str, len + 1); + p = q = str; + while (*q) { + if (*q == '\r') + q++; + else + *p++ = *q++; + } + *p = NULLCHAR; + ReplaceComment(commentIndex, str); + free(str); + } + CommentPopDown(); + return TRUE; + + case IDCANCEL: + case OPT_CancelComment: + CommentPopDown(); + return TRUE; + + case OPT_ClearComment: + SetDlgItemText(hDlg, OPT_CommentText, ""); + break; + + case OPT_EditComment: + EditCommentEvent(); + return TRUE; + + default: + break; + } + break; + + case WM_SIZE: + newSizeX = LOWORD(lParam); + newSizeY = HIWORD(lParam); + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + break; + + case WM_GETMINMAXINFO: + /* Prevent resizing window too small */ + mmi = (MINMAXINFO *) lParam; + mmi->ptMinTrackSize.x = 100; + mmi->ptMinTrackSize.y = 100; + break; + } + return FALSE; +} + +VOID +EitherCommentPopUp(int index, char *title, char *str, BOOLEAN edit) +{ + FARPROC lpProc; + char *p, *q; + + CheckMenuItem(GetMenu(hwndMain), IDM_EditComment, edit ? MF_CHECKED : MF_UNCHECKED); + + if (str == NULL) str = ""; + p = (char *) malloc(2 * strlen(str) + 2); + q = p; + while (*str) { + if (*str == '\n') *q++ = '\r'; + *q++ = *str++; + } + *q = NULLCHAR; + if (commentText != NULL) free(commentText); + + commentIndex = index; + commentTitle = title; + commentText = p; + editComment = edit; + + if (commentDialog) { + SendMessage(commentDialog, WM_INITDIALOG, 0, 0); + if (!commentDialogUp) ShowWindow(commentDialog, SW_SHOW); + } else { + lpProc = MakeProcInstance((FARPROC)CommentDialog, hInst); + CreateDialog(hInst, MAKEINTRESOURCE(DLG_EditComment), + hwndMain, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } + commentDialogUp = TRUE; +} + + +/*---------------------------------------------------------------------------*\ + * + * Type-in move dialog functions + * +\*---------------------------------------------------------------------------*/ + +LRESULT CALLBACK +TypeInMoveDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char move[MSG_SIZ]; + HWND hInput; + ChessMove moveType; + int fromX, fromY, toX, toY; + char promoChar; + + switch (message) { + case WM_INITDIALOG: + move[0] = (char) lParam; + move[1] = NULLCHAR; + CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER)); + hInput = GetDlgItem(hDlg, OPT_Move); + SetWindowText(hInput, move); + SetFocus(hInput); + SendMessage(hInput, EM_SETSEL, (WPARAM)9999, (LPARAM)9999); + return FALSE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + if (gameMode != EditGame && currentMove != forwardMostMove && + gameMode != Training) { + DisplayMoveError("Displayed move is not current"); + } else { + GetDlgItemText(hDlg, OPT_Move, move, sizeof(move)); + if (ParseOneMove(move, gameMode == EditPosition ? blackPlaysFirst : currentMove, + &moveType, &fromX, &fromY, &toX, &toY, &promoChar)) { + if (gameMode != Training) + forwardMostMove = currentMove; + UserMoveEvent(fromX, fromY, toX, toY, promoChar); + } else { + DisplayMoveError("Could not parse move"); + } + } + EndDialog(hDlg, TRUE); + return TRUE; + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + default: + break; + } + break; + } + return FALSE; +} + +VOID +PopUpMoveDialog(char firstchar) +{ + FARPROC lpProc; + + if ((gameMode == BeginningOfGame && !appData.icsActive) || + gameMode == MachinePlaysWhite || gameMode == MachinePlaysBlack || + gameMode == AnalyzeMode || gameMode == EditGame || + gameMode == EditPosition || gameMode == IcsExamining || + gameMode == IcsPlayingWhite || gameMode == IcsPlayingBlack || + gameMode == Training) { + lpProc = MakeProcInstance((FARPROC)TypeInMoveDialog, hInst); + DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_TypeInMove), + hwndMain, (DLGPROC)lpProc, (LPARAM)firstchar); + FreeProcInstance(lpProc); + } +} + +/*---------------------------------------------------------------------------*\ + * + * Error dialogs + * +\*---------------------------------------------------------------------------*/ + +/* Nonmodal error box */ +VOID +ErrorPopDown() +{ + if (!appData.popupMoveErrors && moveErrorMessageUp) DisplayMessage("", ""); + if (errorDialog == NULL) return; + DestroyWindow(errorDialog); + errorDialog = NULL; +} + +LRESULT CALLBACK +ErrorDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + HANDLE hwndText; + RECT rChild; + + switch (message) { + case WM_INITDIALOG: + GetWindowRect(hDlg, &rChild); + SetWindowPos(hDlg, NULL, rChild.left, + rChild.top + boardRect.top - (rChild.bottom - rChild.top), + 0, 0, SWP_NOZORDER|SWP_NOSIZE); + errorDialog = hDlg; + hwndText = GetDlgItem(hDlg, OPT_ErrorText); + SetDlgItemText(hDlg, OPT_ErrorText, errorMessage); + return FALSE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + case IDCANCEL: + if (errorDialog = hDlg) errorDialog = NULL; + DestroyWindow(hDlg); + return TRUE; + + default: + break; + } + break; + } + return FALSE; +} + +/*---------------------------------------------------------------------------*\ + * + * Ics Interaction console functions + * +\*---------------------------------------------------------------------------*/ + +#define HISTORY_SIZE 64 +static char *history[HISTORY_SIZE]; +int histIn = 0, histP = 0; + +VOID +SaveInHistory(char *cmd) +{ + if (history[histIn] != NULL) { + free(history[histIn]); + history[histIn] = NULL; + } + if (*cmd == NULLCHAR) return; + history[histIn] = StrSave(cmd); + histIn = (histIn + 1) % HISTORY_SIZE; + if (history[histIn] != NULL) { + free(history[histIn]); + history[histIn] = NULL; + } + histP = histIn; +} + +char * +PrevInHistory(char *cmd) +{ + int newhp; + if (histP == histIn) { + if (history[histIn] != NULL) free(history[histIn]); + history[histIn] = StrSave(cmd); + } + newhp = (histP - 1 + HISTORY_SIZE) % HISTORY_SIZE; + if (newhp == histIn || history[newhp] == NULL) return NULL; + histP = newhp; + return history[histP]; +} + +char * +NextInHistory() +{ + if (histP == histIn) return NULL; + histP = (histP + 1) % HISTORY_SIZE; + return history[histP]; +} + +typedef struct { + char *item; + char *command; + BOOLEAN getname; + BOOLEAN immediate; +} IcsTextMenuEntry; +#define ICS_TEXT_MENU_SIZE (IDM_CommandXLast - IDM_CommandX + 1) +IcsTextMenuEntry icsTextMenuEntry[ICS_TEXT_MENU_SIZE]; + +void +ParseIcsTextMenu(char *icsTextMenuString) +{ + int flags = 0; + IcsTextMenuEntry *e = icsTextMenuEntry; + char *p = icsTextMenuString; + while (e->item != NULL && e < icsTextMenuEntry + ICS_TEXT_MENU_SIZE) { + free(e->item); + e->item = NULL; + if (e->command != NULL) { + free(e->command); + e->command = NULL; + } + e++; + } + e = icsTextMenuEntry; + while (*p && e < icsTextMenuEntry + ICS_TEXT_MENU_SIZE) { + if (*p == ';' || *p == '\n') { + e->item = strdup("-"); + e->command = NULL; + p++; + } else if (*p == '-') { + e->item = strdup("-"); + e->command = NULL; + p++; + if (*p) p++; + } else { + char *q, *r, *s, *t; + char c; + q = strchr(p, ','); + if (q == NULL) break; + *q = NULLCHAR; + r = strchr(q + 1, ','); + if (r == NULL) break; + *r = NULLCHAR; + s = strchr(r + 1, ','); + if (s == NULL) break; + *s = NULLCHAR; + c = ';'; + t = strchr(s + 1, c); + if (t == NULL) { + c = '\n'; + t = strchr(s + 1, c); + } + if (t != NULL) *t = NULLCHAR; + e->item = strdup(p); + e->command = strdup(q + 1); + e->getname = *(r + 1) != '0'; + e->immediate = *(s + 1) != '0'; + *q = ','; + *r = ','; + *s = ','; + if (t == NULL) break; + *t = c; + p = t + 1; + } + e++; + } +} + +HMENU +LoadIcsTextMenu(IcsTextMenuEntry *e) +{ + HMENU hmenu, h; + int i = 0; + hmenu = LoadMenu(hInst, "TextMenu"); + h = GetSubMenu(hmenu, 0); + while (e->item) { + if (strcmp(e->item, "-") == 0) { + AppendMenu(h, MF_SEPARATOR, 0, 0); + } else { + if (e->item[0] == '|') { + AppendMenu(h, MF_STRING|MF_MENUBARBREAK, + IDM_CommandX + i, &e->item[1]); + } else { + AppendMenu(h, MF_STRING, IDM_CommandX + i, e->item); + } + } + e++; + i++; + } + return hmenu; +} + +WNDPROC consoleTextWindowProc; + +void +CommandX(HWND hwnd, char *command, BOOLEAN getname, BOOLEAN immediate) +{ + char buf[MSG_SIZ], name[MSG_SIZ]; + HWND hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + CHARRANGE sel; + + if (!getname) { + SetWindowText(hInput, command); + if (immediate) { + SendMessage(hInput, WM_CHAR, '\r', 0); + } else { + sel.cpMin = 999999; + sel.cpMax = 999999; + SendMessage(hInput, EM_EXSETSEL, 0, (LPARAM)&sel); + SetFocus(hInput); + } + return; + } + SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel); + if (sel.cpMin == sel.cpMax) { + /* Expand to surrounding word */ + TEXTRANGE tr; + do { + tr.chrg.cpMax = sel.cpMin; + tr.chrg.cpMin = --sel.cpMin; + if (sel.cpMin < 0) break; + tr.lpstrText = name; + SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr); + } while (isalpha(name[0]) || isdigit(name[0]) || name[0] == '-'); + sel.cpMin++; + + do { + tr.chrg.cpMin = sel.cpMax; + tr.chrg.cpMax = ++sel.cpMax; + tr.lpstrText = name; + if (SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr) < 1) break; + } while (isalpha(name[0]) || isdigit(name[0]) || name[0] == '-'); + sel.cpMax--; + + if (sel.cpMax == sel.cpMin || sel.cpMax - sel.cpMin > MSG_SIZ/2) { + MessageBeep(MB_ICONEXCLAMATION); + return; + } + tr.chrg = sel; + tr.lpstrText = name; + SendMessage(hwnd, EM_GETTEXTRANGE, 0, (LPARAM) &tr); + } else { + if (sel.cpMax - sel.cpMin > MSG_SIZ/2) { + MessageBeep(MB_ICONEXCLAMATION); + return; + } + SendMessage(hwnd, EM_GETSELTEXT, 0, (LPARAM) name); + } + if (immediate) { + sprintf(buf, "%s %s", command, name); + SetWindowText(hInput, buf); + SendMessage(hInput, WM_CHAR, '\r', 0); + } else { + sprintf(buf, "%s %s ", command, name); /* trailing space */ + SetWindowText(hInput, buf); + sel.cpMin = 999999; + sel.cpMax = 999999; + SendMessage(hInput, EM_EXSETSEL, 0, (LPARAM)&sel); + SetFocus(hInput); + } +} + +LRESULT CALLBACK +ConsoleTextSubclass(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + HWND hInput; + CHARRANGE sel; + + switch (message) { + case WM_KEYDOWN: + if (!(GetKeyState(VK_CONTROL) & ~1)) break; + switch (wParam) { + case VK_PRIOR: + SendMessage(hwnd, EM_LINESCROLL, 0, -999999); + return 0; + case VK_NEXT: + sel.cpMin = 999999; + sel.cpMax = 999999; + SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel); + SendMessage(hwnd, EM_SCROLLCARET, 0, 0); + return 0; + } + break; + case WM_CHAR: + if (wParam == '\t') { + if (GetKeyState(VK_SHIFT) < 0) { + /* shifted */ + if (IsIconic(hwndMain)) ShowWindow(hwndMain, SW_RESTORE); + if (buttonDesc[0].hwnd) { + SetFocus(buttonDesc[0].hwnd); + } else { + SetFocus(hwndMain); + } + } else { + /* unshifted */ + SetFocus(GetDlgItem(hwndConsole, OPT_ConsoleInput)); + } + } else { + hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + SetFocus(hInput); + SendMessage(hInput, message, wParam, lParam); + } + return 0; + case WM_PASTE: + hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + SetFocus(hInput); + return SendMessage(hInput, message, wParam, lParam); + case WM_MBUTTONDOWN: + return SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0); + case WM_RBUTTONDOWN: + if (!(GetKeyState(VK_SHIFT) & ~1)) { + /* Move selection here if it was empty */ + POINT pt; + pt.x = LOWORD(lParam); + pt.y = HIWORD(lParam); + SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel); + if (sel.cpMin == sel.cpMax) { + sel.cpMin = SendMessage(hwnd, EM_CHARFROMPOS, 0, (LPARAM)&pt); /*doc is wrong*/ + sel.cpMax = sel.cpMin; + SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel); + } + SendMessage(hwnd, EM_HIDESELECTION, FALSE, FALSE); + } + return 0; + case WM_RBUTTONUP: + if (GetKeyState(VK_SHIFT) & ~1) { + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, + WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0); + } else { + POINT pt; + HMENU hmenu = LoadIcsTextMenu(icsTextMenuEntry); + SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel); + if (sel.cpMin == sel.cpMax) { + EnableMenuItem(hmenu, IDM_Copy, MF_BYCOMMAND|MF_GRAYED); + EnableMenuItem(hmenu, IDM_QuickPaste, MF_BYCOMMAND|MF_GRAYED); + } + if (!IsClipboardFormatAvailable(CF_TEXT)) { + EnableMenuItem(hmenu, IDM_Paste, MF_BYCOMMAND|MF_GRAYED); + } + pt.x = LOWORD(lParam); + pt.y = HIWORD(lParam); + MenuPopup(hwnd, pt, hmenu, -1); + } + return 0; + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDM_QuickPaste: + { + SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel); + if (sel.cpMin == sel.cpMax) { + MessageBeep(MB_ICONEXCLAMATION); + return 0; + } + SendMessage(hwnd, WM_COPY, 0, 0); + hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + SendMessage(hInput, WM_PASTE, 0, 0); + SetFocus(hInput); + return 0; + } + case IDM_Cut: + SendMessage(hwnd, WM_CUT, 0, 0); + return 0; + case IDM_Paste: + SendMessage(hwnd, WM_PASTE, 0, 0); + return 0; + case IDM_Copy: + SendMessage(hwnd, WM_COPY, 0, 0); + return 0; + default: + { + int i = LOWORD(wParam) - IDM_CommandX; + if (i >= 0 && i < ICS_TEXT_MENU_SIZE && + icsTextMenuEntry[i].command != NULL) { + CommandX(hwnd, icsTextMenuEntry[i].command, + icsTextMenuEntry[i].getname, + icsTextMenuEntry[i].immediate); + return 0; + } + } + break; + } + break; + } + return (*consoleTextWindowProc)(hwnd, message, wParam, lParam); +} + +WNDPROC consoleInputWindowProc; + +LRESULT CALLBACK +ConsoleInputSubclass(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + char *p; + static BOOL sendNextChar = FALSE; + static BOOL quoteNextChar = FALSE; + InputSource *is = consoleInputSource; + CHARFORMAT cf; + CHARRANGE sel; + + switch (message) { + case WM_CHAR: + if (!appData.localLineEditing || sendNextChar) { + is->buf[0] = (CHAR) wParam; + is->count = 1; + SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is); + sendNextChar = FALSE; + return 0; + } + if (quoteNextChar) { + buf[0] = (char) wParam; + buf[1] = NULLCHAR; + SendMessage(hwnd, EM_REPLACESEL, TRUE, (LPARAM) buf); + quoteNextChar = FALSE; + return 0; + } + switch (wParam) { + case '\r': /* Enter key */ + is->count = GetWindowText(hwnd, is->buf, INPUT_SOURCE_BUF_SIZE-1); + if (consoleEcho) SaveInHistory(is->buf); + is->buf[is->count++] = '\n'; + is->buf[is->count] = NULLCHAR; + SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is); + if (consoleEcho) { + ConsoleOutput(is->buf, is->count, TRUE); + } else if (appData.localLineEditing) { + ConsoleOutput("\n", 1, TRUE); + } + /* fall thru */ + case '\033': /* Escape key */ + SetWindowText(hwnd, ""); + cf.cbSize = sizeof(CHARFORMAT); + cf.dwMask = CFM_COLOR|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT; + if (consoleEcho) { + cf.crTextColor = textAttribs[ColorNormal].color; + } else { + cf.crTextColor = COLOR_ECHOOFF; + } + cf.dwEffects = textAttribs[ColorNormal].effects; + SendMessage(hwnd, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf); + return 0; + case '\t': /* Tab key */ + if (GetKeyState(VK_SHIFT) < 0) { + /* shifted */ + SetFocus(GetDlgItem(hwndConsole, OPT_ConsoleText)); + } else { + /* unshifted */ + if (IsIconic(hwndMain)) ShowWindow(hwndMain, SW_RESTORE); + if (buttonDesc[0].hwnd) { + SetFocus(buttonDesc[0].hwnd); + } else { + SetFocus(hwndMain); + } + } + return 0; + case '\023': /* Ctrl+S */ + sendNextChar = TRUE; + return 0; + case '\021': /* Ctrl+Q */ + quoteNextChar = TRUE; + return 0; + default: + break; + } + break; + case WM_KEYDOWN: + switch (wParam) { + case VK_UP: + GetWindowText(hwnd, buf, MSG_SIZ); + p = PrevInHistory(buf); + if (p != NULL) { + SetWindowText(hwnd, p); + sel.cpMin = 999999; + sel.cpMax = 999999; + SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel); + return 0; + } + break; + case VK_DOWN: + p = NextInHistory(); + if (p != NULL) { + SetWindowText(hwnd, p); + sel.cpMin = 999999; + sel.cpMax = 999999; + SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel); + return 0; + } + break; + case VK_HOME: + case VK_END: + if (!(GetKeyState(VK_CONTROL) & ~1)) break; + /* fall thru */ + case VK_PRIOR: + case VK_NEXT: + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, message, wParam, lParam); + return 0; + } + break; + case WM_MBUTTONDOWN: + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, + WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0); + break; + case WM_RBUTTONUP: + if (GetKeyState(VK_SHIFT) & ~1) { + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, + WM_COMMAND, MAKEWPARAM(IDM_QuickPaste, 0), 0); + } else { + POINT pt; + HMENU hmenu; + hmenu = LoadMenu(hInst, "InputMenu"); + SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&sel); + if (sel.cpMin == sel.cpMax) { + EnableMenuItem(hmenu, IDM_Copy, MF_BYCOMMAND|MF_GRAYED); + EnableMenuItem(hmenu, IDM_Cut, MF_BYCOMMAND|MF_GRAYED); + } + if (!IsClipboardFormatAvailable(CF_TEXT)) { + EnableMenuItem(hmenu, IDM_Paste, MF_BYCOMMAND|MF_GRAYED); + } + pt.x = LOWORD(lParam); + pt.y = HIWORD(lParam); + MenuPopup(hwnd, pt, hmenu, -1); + } + return 0; + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDM_Undo: + SendMessage(hwnd, EM_UNDO, 0, 0); + return 0; + case IDM_SelectAll: + sel.cpMin = 0; + sel.cpMax = -1; /*999999?*/ + SendMessage(hwnd, EM_EXSETSEL, 0, (LPARAM)&sel); + return 0; + case IDM_Cut: + SendMessage(hwnd, WM_CUT, 0, 0); + return 0; + case IDM_Paste: + SendMessage(hwnd, WM_PASTE, 0, 0); + return 0; + case IDM_Copy: + SendMessage(hwnd, WM_COPY, 0, 0); + return 0; + } + break; + } + return (*consoleInputWindowProc)(hwnd, message, wParam, lParam); +} + +#define CO_MAX 100000 +#define CO_TRIM 1000 + +LRESULT CALLBACK +ConsoleWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HWND hText, hInput, hFocus; + InputSource *is = consoleInputSource; + RECT rect; + static int sizeX, sizeY; + int newSizeX, newSizeY; + MINMAXINFO *mmi; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + hwndConsole = hDlg; + hText = GetDlgItem(hDlg, OPT_ConsoleText); + hInput = GetDlgItem(hDlg, OPT_ConsoleInput); + SetFocus(hInput); + consoleTextWindowProc = (WNDPROC) + SetWindowLong(hText, GWL_WNDPROC, (LONG) ConsoleTextSubclass); + SendMessage(hText, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor); + consoleInputWindowProc = (WNDPROC) + SetWindowLong(hInput, GWL_WNDPROC, (LONG) ConsoleInputSubclass); + SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor); + Colorize(ColorNormal, TRUE); + SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &consoleCF); + ChangedConsoleFont(); + GetClientRect(hDlg, &rect); + sizeX = rect.right; + sizeY = rect.bottom; + if (consoleX != CW_USEDEFAULT && consoleY != CW_USEDEFAULT && + consoleW != CW_USEDEFAULT && consoleH != CW_USEDEFAULT) { + WINDOWPLACEMENT wp; + EnsureOnScreen(&consoleX, &consoleY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = SW_SHOW; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = consoleX; + wp.rcNormalPosition.right = consoleX + consoleW; + wp.rcNormalPosition.top = consoleY; + wp.rcNormalPosition.bottom = consoleY + consoleH; + SetWindowPlacement(hDlg, &wp); + } + return FALSE; + + case WM_SETFOCUS: + SetFocus(hInput); + return 0; + + case WM_CLOSE: + ExitEvent(0); + /* not reached */ + break; + + case WM_SIZE: + if (IsIconic(hDlg)) break; + newSizeX = LOWORD(lParam); + newSizeY = HIWORD(lParam); + if (sizeX != newSizeX || sizeY != newSizeY) { + RECT rectText, rectInput; + POINT pt; + int newTextHeight, newTextWidth; + GetWindowRect(hText, &rectText); + newTextWidth = rectText.right - rectText.left + newSizeX - sizeX; + newTextHeight = rectText.bottom - rectText.top + newSizeY - sizeY; + if (newTextHeight < 0) { + newSizeY += -newTextHeight; + newTextHeight = 0; + } + SetWindowPos(hText, NULL, 0, 0, + newTextWidth, newTextHeight, SWP_NOZORDER|SWP_NOMOVE); + GetWindowRect(hInput, &rectInput); /* gives screen coords */ + pt.x = rectInput.left; + pt.y = rectInput.top + newSizeY - sizeY; + ScreenToClient(hDlg, &pt); + SetWindowPos(hInput, NULL, + pt.x, pt.y, /* needs client coords */ + rectInput.right - rectInput.left + newSizeX - sizeX, + rectInput.bottom - rectInput.top, SWP_NOZORDER); + } + sizeX = newSizeX; + sizeY = newSizeY; + break; + + case WM_GETMINMAXINFO: + /* Prevent resizing window too small */ + mmi = (MINMAXINFO *) lParam; + mmi->ptMinTrackSize.x = 100; + mmi->ptMinTrackSize.y = 100; + break; + } + return DefWindowProc(hDlg, message, wParam, lParam); +} + + +VOID +ConsoleCreate() +{ + HWND hCons; + if (hwndConsole) return; + hCons = CreateDialog(hInst, szConsoleName, 0, NULL); + SendMessage(hCons, WM_INITDIALOG, 0, 0); +} + + +VOID +ConsoleOutput(char* data, int length, int forceVisible) +{ + HWND hText; + int trim, exlen; + char *p, *q; + char buf[CO_MAX+1]; + POINT pEnd; + RECT rect; + static int delayLF = 0; + CHARRANGE savesel, sel; + + if (hwndConsole == NULL || length > CO_MAX-100 || length == 0) return; + p = data; + q = buf; + if (delayLF) { + *q++ = '\r'; + *q++ = '\n'; + delayLF = 0; + } + while (length--) { + if (*p == '\n') { + if (*++p) { + *q++ = '\r'; + *q++ = '\n'; + } else { + delayLF = 1; + } + } else if (*p == '\007') { + MyPlaySound(&sounds[(int)SoundBell]); + p++; + } else { + *q++ = *p++; + } + } + *q = NULLCHAR; + hText = GetDlgItem(hwndConsole, OPT_ConsoleText); + SendMessage(hText, EM_HIDESELECTION, TRUE, FALSE); + /* Save current selection */ + SendMessage(hText, EM_EXGETSEL, 0, (LPARAM)&savesel); + exlen = GetWindowTextLength(hText); + /* Find out whether current end of text is visible */ + SendMessage(hText, EM_GETRECT, 0, (LPARAM) &rect); + SendMessage(hText, EM_POSFROMCHAR, (WPARAM) &pEnd, exlen); + /* Trim existing text if it's too long */ + if (exlen + (q - buf) > CO_MAX) { + trim = (CO_TRIM > (q - buf)) ? CO_TRIM : (q - buf); + sel.cpMin = 0; + sel.cpMax = trim; + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel); + SendMessage(hText, EM_REPLACESEL, 0, (LPARAM)""); + exlen -= trim; + savesel.cpMin -= trim; + savesel.cpMax -= trim; + if (exlen < 0) exlen = 0; + if (savesel.cpMin < 0) savesel.cpMin = 0; + if (savesel.cpMax < savesel.cpMin) savesel.cpMax = savesel.cpMin; + } + /* Append the new text */ + sel.cpMin = exlen; + sel.cpMax = exlen; + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel); + SendMessage(hText, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM)&consoleCF); + SendMessage(hText, EM_REPLACESEL, 0, (LPARAM) buf); + if (forceVisible || exlen == 0 || + (rect.left <= pEnd.x && pEnd.x < rect.right && + rect.top <= pEnd.y && pEnd.y < rect.bottom)) { + /* Scroll to make new end of text visible if old end of text + was visible or new text is an echo of user typein */ + sel.cpMin = 9999999; + sel.cpMax = 9999999; + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel); + SendMessage(hText, EM_HIDESELECTION, FALSE, FALSE); + SendMessage(hText, EM_SCROLLCARET, 0, 0); + SendMessage(hText, EM_HIDESELECTION, TRUE, FALSE); + } + if (savesel.cpMax == exlen || forceVisible) { + /* Move insert point to new end of text if it was at the old + end of text or if the new text is an echo of user typein */ + sel.cpMin = 9999999; + sel.cpMax = 9999999; + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&sel); + } else { + /* Restore previous selection */ + SendMessage(hText, EM_EXSETSEL, 0, (LPARAM)&savesel); + } + SendMessage(hText, EM_HIDESELECTION, FALSE, FALSE); +} + +/*---------*/ + + +void +DisplayAClock(HDC hdc, int timeRemaining, int highlight, + RECT *rect, char *color) +{ + char buf[100]; + char *str; + COLORREF oldFg, oldBg; + HFONT oldFont; + + if (appData.clockMode) { + if (tinyLayout) + sprintf(buf, "%c %s", color[0], TimeString(timeRemaining)); + else + sprintf(buf, "%s: %s", color, TimeString(timeRemaining)); + str = buf; + } else { + str = color; + } + + if (highlight) { + oldFg = SetTextColor(hdc, RGB(255, 255, 255)); /* white */ + oldBg = SetBkColor(hdc, RGB(0, 0, 0)); /* black */ + } else { + oldFg = SetTextColor(hdc, RGB(0, 0, 0)); /* black */ + oldBg = SetBkColor(hdc, RGB(255, 255, 255)); /* white */ + } + oldFont = SelectObject(hdc, font[boardSize][CLOCK_FONT]->hf); + + ExtTextOut(hdc, rect->left + MESSAGE_LINE_LEFTMARGIN, + rect->top, ETO_CLIPPED|ETO_OPAQUE, + rect, str, strlen(str), NULL); + + (void) SetTextColor(hdc, oldFg); + (void) SetBkColor(hdc, oldBg); + (void) SelectObject(hdc, oldFont); +} + + +int +DoReadFile(HANDLE hFile, char *buf, int count, DWORD *outCount, + OVERLAPPED *ovl) +{ + int ok, err; + + ResetEvent(ovl->hEvent); + ovl->Offset = ovl->OffsetHigh = 0; + ok = ReadFile(hFile, buf, count, outCount, ovl); + if (ok) { + err = NO_ERROR; + } else { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ok = GetOverlappedResult(hFile, ovl, outCount, TRUE); + if (ok) + err = NO_ERROR; + else + err = GetLastError(); + } + } + return err; +} + +int +DoWriteFile(HANDLE hFile, char *buf, int count, DWORD *outCount, + OVERLAPPED *ovl) +{ + int ok, err; + + ResetEvent(ovl->hEvent); + ovl->Offset = ovl->OffsetHigh = 0; + ok = WriteFile(hFile, buf, count, outCount, ovl); + if (ok) { + err = NO_ERROR; + } else { + err = GetLastError(); + if (err == ERROR_IO_PENDING) { + ok = GetOverlappedResult(hFile, ovl, outCount, TRUE); + if (ok) + err = NO_ERROR; + else + err = GetLastError(); + } + } + return err; +} + + +DWORD +InputThread(LPVOID arg) +{ + InputSource *is; + OVERLAPPED ovl; + + is = (InputSource *) arg; + ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + ovl.Internal = ovl.InternalHigh = ovl.Offset = ovl.OffsetHigh = 0; + while (is->hThread != NULL) { + is->error = DoReadFile(is->hFile, is->next, + INPUT_SOURCE_BUF_SIZE - (is->next - is->buf), + &is->count, &ovl); + if (is->error == NO_ERROR) { + is->next += is->count; + } else { + if (is->error == ERROR_BROKEN_PIPE) { + /* Correct for MS brain damage. EOF reading a pipe is not an error. */ + is->count = 0; + } else { + is->count = (DWORD) -1; + } + } + SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is); + if (is->count <= 0) break; /* Quit on EOF or error */ + } + CloseHandle(ovl.hEvent); + CloseHandle(is->hFile); + return 0; +} + + +/* Windows 95 beta 2 won't let you do overlapped i/o on a console or pipe */ +DWORD +NonOvlInputThread(LPVOID arg) +{ + InputSource *is; + char *p, *q; + int i; + char prev; + + is = (InputSource *) arg; + while (is->hThread != NULL) { + is->error = ReadFile(is->hFile, is->next, + INPUT_SOURCE_BUF_SIZE - (is->next - is->buf), + &is->count, NULL) ? NO_ERROR : GetLastError(); + if (is->error == NO_ERROR) { + /* Change CRLF to LF */ + if (is->next > is->buf) { + p = is->next - 1; + i = is->count + 1; + } else { + p = is->next; + i = is->count; + } + q = p; + prev = NULLCHAR; + while (i > 0) { + if (prev == '\r' && *p == '\n') { + *(q-1) = '\n'; + is->count--; + } else { + *q++ = *p; + } + prev = *p++; + i--; + } + *q = NULLCHAR; + is->next = q; + } else { + if (is->error == ERROR_BROKEN_PIPE) { + /* Correct for MS brain damage. EOF reading a pipe is not an error. */ + is->count = 0; + } else { + is->count = (DWORD) -1; + } + } + SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is); + if (is->count < 0) break; /* Quit on error */ + } + CloseHandle(is->hFile); + return 0; +} + +DWORD +SocketInputThread(LPVOID arg) +{ + InputSource *is; + + is = (InputSource *) arg; + while (is->hThread != NULL) { + is->count = recv(is->sock, is->buf, INPUT_SOURCE_BUF_SIZE, 0); + if ((int)is->count == SOCKET_ERROR) { + is->count = (DWORD) -1; + is->error = WSAGetLastError(); + } else { + is->error = NO_ERROR; + is->next += is->count; + if (is->count == 0 && is->second == is) { + /* End of file on stderr; quit with no message */ + break; + } + } + SendMessage(hwndMain, WM_USER_Input, 0, (LPARAM) is); + if (is->count <= 0) break; /* Quit on EOF or error */ + } + return 0; +} + +VOID +InputEvent(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + InputSource *is; + + is = (InputSource *) lParam; + if (is->lineByLine) { + /* Feed in lines one by one */ + char *p = is->buf; + char *q = p; + while (q < is->next) { + if (*q++ == '\n') { + (is->func)(is, is->closure, p, q - p, NO_ERROR); + p = q; + } + } + /* Move any partial line to the start of the buffer */ + q = is->buf; + while (p < is->next) { + *q++ = *p++; + } + is->next = q; + if (is->error != NO_ERROR || is->count == 0) { + /* Notify backend of the error. Note: If there was a partial + line at the end, it is not flushed through. */ + (is->func)(is, is->closure, is->buf, is->count, is->error); + } + } else { + /* Feed in the whole chunk of input at once */ + (is->func)(is, is->closure, is->buf, is->count, is->error); + is->next = is->buf; + } +} + +/*---------------------------------------------------------------------------*\ + * + * Menu enables. Used when setting various modes. + * +\*---------------------------------------------------------------------------*/ + +typedef struct { + int item; + int flags; +} Enables; + +VOID +SetMenuEnables(HMENU hmenu, Enables *enab) +{ + while (enab->item > 0) { + (void) EnableMenuItem(hmenu, enab->item, enab->flags); + enab++; + } +} + +Enables gnuEnables[] = { + { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED }, + { IDM_IcsClient, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Accept, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Decline, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Rematch, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Adjourn, MF_BYCOMMAND|MF_GRAYED }, + { IDM_StopExamining, MF_BYCOMMAND|MF_GRAYED }, + { IDM_StopObserving, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Revert, MF_BYCOMMAND|MF_GRAYED }, + { -1, -1 } +}; + +Enables icsEnables[] = { + { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED }, + { IDM_AnalysisMode, MF_BYCOMMAND|MF_GRAYED }, + { IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Hint, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Book, MF_BYCOMMAND|MF_GRAYED }, + { IDM_IcsOptions, MF_BYCOMMAND|MF_ENABLED }, + { -1, -1 } +}; + +#ifdef ZIPPY +Enables zippyEnables[] = { + { IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Hint, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Book, MF_BYCOMMAND|MF_ENABLED }, + { -1, -1 } +}; +#endif + +Enables ncpEnables[] = { + { IDM_MailMove, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED }, + { IDM_AnalysisMode, MF_BYCOMMAND|MF_GRAYED }, + { IDM_AnalyzeFile, MF_BYCOMMAND|MF_GRAYED }, + { IDM_IcsClient, MF_BYCOMMAND|MF_GRAYED }, + { ACTION_POS, MF_BYPOSITION|MF_GRAYED }, + { IDM_Revert, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED }, + { IDM_RetractMove, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TimeControl, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Hint, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Book, MF_BYCOMMAND|MF_GRAYED }, + { -1, -1 } +}; + +Enables trainingOnEnables[] = { + { IDM_EditComment, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Pause, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Forward, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Backward, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ToEnd, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ToStart, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MoveNow, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TruncateGame, MF_BYCOMMAND|MF_GRAYED }, + { -1, -1 } +}; + +Enables trainingOffEnables[] = { + { IDM_EditComment, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Pause, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Forward, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Backward, MF_BYCOMMAND|MF_ENABLED }, + { IDM_ToEnd, MF_BYCOMMAND|MF_ENABLED }, + { IDM_ToStart, MF_BYCOMMAND|MF_ENABLED }, + { IDM_MoveNow, MF_BYCOMMAND|MF_ENABLED }, + { IDM_TruncateGame, MF_BYCOMMAND|MF_ENABLED }, + { -1, -1 } +}; + +/* These modify either ncpEnables or gnuEnables */ +Enables cmailEnables[] = { + { IDM_MailMove, MF_BYCOMMAND|MF_ENABLED }, + { IDM_ReloadCMailMsg, MF_BYCOMMAND|MF_ENABLED }, + { ACTION_POS, MF_BYPOSITION|MF_ENABLED }, + { IDM_CallFlag, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Draw, MF_BYCOMMAND|MF_ENABLED }, + { IDM_Adjourn, MF_BYCOMMAND|MF_GRAYED }, + { IDM_Abort, MF_BYCOMMAND|MF_GRAYED }, + { -1, -1 } +}; + +Enables machineThinkingEnables[] = { + { IDM_LoadGame, MF_BYCOMMAND|MF_GRAYED }, + { IDM_LoadNextGame, MF_BYCOMMAND|MF_GRAYED }, + { IDM_LoadPrevGame, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ReloadGame, MF_BYCOMMAND|MF_GRAYED }, + { IDM_PasteGame, MF_BYCOMMAND|MF_GRAYED }, + { IDM_LoadPosition, MF_BYCOMMAND|MF_GRAYED }, + { IDM_LoadNextPosition, MF_BYCOMMAND|MF_GRAYED }, + { IDM_LoadPrevPosition, MF_BYCOMMAND|MF_GRAYED }, + { IDM_ReloadPosition, MF_BYCOMMAND|MF_GRAYED }, + { IDM_PastePosition, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineWhite, MF_BYCOMMAND|MF_GRAYED }, + { IDM_MachineBlack, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TwoMachines, MF_BYCOMMAND|MF_GRAYED }, + { IDM_TypeInMove, MF_BYCOMMAND|MF_GRAYED }, + { IDM_RetractMove, MF_BYCOMMAND|MF_GRAYED }, + { -1, -1 } +}; + +Enables userThinkingEnables[] = { + { IDM_LoadGame, MF_BYCOMMAND|MF_ENABLED }, + { IDM_LoadNextGame, MF_BYCOMMAND|MF_ENABLED }, + { IDM_LoadPrevGame, MF_BYCOMMAND|MF_ENABLED }, + { IDM_ReloadGame, MF_BYCOMMAND|MF_ENABLED }, + { IDM_PasteGame, MF_BYCOMMAND|MF_ENABLED }, + { IDM_LoadPosition, MF_BYCOMMAND|MF_ENABLED }, + { IDM_LoadNextPosition, MF_BYCOMMAND|MF_ENABLED }, + { IDM_LoadPrevPosition, MF_BYCOMMAND|MF_ENABLED }, + { IDM_ReloadPosition, MF_BYCOMMAND|MF_ENABLED }, + { IDM_PastePosition, MF_BYCOMMAND|MF_ENABLED }, + { IDM_MachineWhite, MF_BYCOMMAND|MF_ENABLED }, + { IDM_MachineBlack, MF_BYCOMMAND|MF_ENABLED }, + { IDM_TwoMachines, MF_BYCOMMAND|MF_ENABLED }, + { IDM_TypeInMove, MF_BYCOMMAND|MF_ENABLED }, + { IDM_RetractMove, MF_BYCOMMAND|MF_ENABLED }, + { -1, -1 } +}; + +/*---------------------------------------------------------------------------*\ + * + * Front-end interface functions exported by XBoard. + * Functions appear in same order as prototypes in frontend.h. + * +\*---------------------------------------------------------------------------*/ +VOID +ModeHighlight() +{ + static UINT prevChecked = 0; + static int prevPausing = 0; + UINT nowChecked; + + if (pausing != prevPausing) { + prevPausing = pausing; + (void) CheckMenuItem(GetMenu(hwndMain), IDM_Pause, + MF_BYCOMMAND|(pausing ? MF_CHECKED : MF_UNCHECKED)); + if (hwndPause) SetWindowText(hwndPause, pausing ? "C" : "P"); + } + + switch (gameMode) { + case BeginningOfGame: + if (appData.icsActive) + nowChecked = IDM_IcsClient; + else if (appData.noChessProgram) + nowChecked = IDM_EditGame; + else + nowChecked = IDM_MachineBlack; + break; + case MachinePlaysBlack: + nowChecked = IDM_MachineBlack; + break; + case MachinePlaysWhite: + nowChecked = IDM_MachineWhite; + break; + case TwoMachinesPlay: + nowChecked = IDM_TwoMachines; + break; + case AnalyzeMode: + nowChecked = IDM_AnalysisMode; + break; + case AnalyzeFile: + nowChecked = IDM_AnalyzeFile; + break; + case EditGame: + nowChecked = IDM_EditGame; + break; + case PlayFromGameFile: + nowChecked = IDM_LoadGame; + break; + case EditPosition: + nowChecked = IDM_EditPosition; + break; + case Training: + nowChecked = IDM_Training; + break; + case IcsPlayingWhite: + case IcsPlayingBlack: + case IcsObserving: + case IcsIdle: + nowChecked = IDM_IcsClient; + break; + default: + case EndOfGame: + nowChecked = 0; + break; + } + if (prevChecked != 0) + (void) CheckMenuItem(GetMenu(hwndMain), + prevChecked, MF_BYCOMMAND|MF_UNCHECKED); + if (nowChecked != 0) + (void) CheckMenuItem(GetMenu(hwndMain), + nowChecked, MF_BYCOMMAND|MF_CHECKED); + + if (nowChecked == IDM_LoadGame || nowChecked == IDM_Training) { + (void) EnableMenuItem(GetMenu(hwndMain), IDM_Training, + MF_BYCOMMAND|MF_ENABLED); + } else { + (void) EnableMenuItem(GetMenu(hwndMain), + IDM_Training, MF_BYCOMMAND|MF_GRAYED); + } + + prevChecked = nowChecked; +} + +VOID +SetICSMode() +{ + HMENU hmenu = GetMenu(hwndMain); + SetMenuEnables(hmenu, icsEnables); + EnableMenuItem(GetSubMenu(hmenu, OPTIONS_POS), ICS_POS, + MF_BYPOSITION|MF_ENABLED); +#ifdef ZIPPY + if (appData.zippyPlay) { + SetMenuEnables(hmenu, zippyEnables); + } +#endif +} + +VOID +SetGNUMode() +{ + SetMenuEnables(GetMenu(hwndMain), gnuEnables); +} + +VOID +SetNCPMode() +{ + HMENU hmenu = GetMenu(hwndMain); + SetMenuEnables(hmenu, ncpEnables); + EnableMenuItem(GetSubMenu(hmenu, OPTIONS_POS), SOUNDS_POS, + MF_BYPOSITION|MF_GRAYED); + DrawMenuBar(hwndMain); +} + +VOID +SetCmailMode() +{ + SetMenuEnables(GetMenu(hwndMain), cmailEnables); +} + +VOID +SetTrainingModeOn() +{ + int i; + SetMenuEnables(GetMenu(hwndMain), trainingOnEnables); + for (i = 0; i < N_BUTTONS; i++) { + if (buttonDesc[i].hwnd != NULL) + EnableWindow(buttonDesc[i].hwnd, FALSE); + } + CommentPopDown(); +} + +VOID SetTrainingModeOff() +{ + int i; + SetMenuEnables(GetMenu(hwndMain), trainingOffEnables); + for (i = 0; i < N_BUTTONS; i++) { + if (buttonDesc[i].hwnd != NULL) + EnableWindow(buttonDesc[i].hwnd, TRUE); + } +} + + +VOID +SetUserThinkingEnables() +{ + SetMenuEnables(GetMenu(hwndMain), userThinkingEnables); +} + +VOID +SetMachineThinkingEnables() +{ + HMENU hMenu = GetMenu(hwndMain); + int flags = MF_BYCOMMAND|MF_ENABLED; + + SetMenuEnables(hMenu, machineThinkingEnables); + + if (gameMode == MachinePlaysBlack) { + (void)EnableMenuItem(hMenu, IDM_MachineBlack, flags); + } else if (gameMode == MachinePlaysWhite) { + (void)EnableMenuItem(hMenu, IDM_MachineWhite, flags); + } else if (gameMode == TwoMachinesPlay) { + (void)EnableMenuItem(hMenu, IDM_TwoMachines, flags); + } +} + + +VOID +DisplayTitle(char *str) +{ + char title[MSG_SIZ], *host; + if (str[0] != NULLCHAR) { + strcpy(title, str); + } else if (appData.icsActive) { + if (appData.icsCommPort[0] != NULLCHAR) + host = "ICS"; + else + host = appData.icsHost; + sprintf(title, "%s: %s", szTitle, host); + } else if (appData.noChessProgram) { + strcpy(title, szTitle); + } else { + strcpy(title, szTitle); + strcat(title, ": "); + strcat(title, first.tidy); + } + SetWindowText(hwndMain, title); +} + + +VOID +DisplayMessage(char *str1, char *str2) +{ + HDC hdc; + HFONT oldFont; + int remain = MESSAGE_TEXT_MAX - 1; + int len; + + moveErrorMessageUp = FALSE; /* turned on later by caller if needed */ + messageText[0] = NULLCHAR; + if (*str1) { + len = strlen(str1); + if (len > remain) len = remain; + strncpy(messageText, str1, len); + messageText[len] = NULLCHAR; + remain -= len; + } + if (*str2 && remain >= 2) { + if (*str1) { + strcat(messageText, " "); + remain -= 2; + } + len = strlen(str2); + if (len > remain) len = remain; + strncat(messageText, str2, len); + } + messageText[MESSAGE_TEXT_MAX - 1] = NULLCHAR; + + if (IsIconic(hwndMain)) return; + hdc = GetDC(hwndMain); + oldFont = SelectObject(hdc, font[boardSize][MESSAGE_FONT]->hf); + ExtTextOut(hdc, messageRect.left, messageRect.top, ETO_CLIPPED|ETO_OPAQUE, + &messageRect, messageText, strlen(messageText), NULL); + (void) SelectObject(hdc, oldFont); + (void) ReleaseDC(hwndMain, hdc); +} + +VOID +DisplayError(char *str, int error) +{ + FARPROC lpProc; + char buf[MSG_SIZ*2], buf2[MSG_SIZ]; + int len; + char *p, *q; + + if (error == 0) { + strcpy(buf, str); + } else { + len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, LANG_NEUTRAL, + (LPSTR) buf2, MSG_SIZ, NULL); + if (len > 0) { + sprintf(buf, "%s:\n%s", str, buf2); + } else { + ErrorMap *em = errmap; + while (em->err != 0 && em->err != error) em++; + if (em->err != 0) { + sprintf(buf, "%s:\n%s", str, em->msg); + } else { + sprintf(buf, "%s:\nError code %d", str, error); + } + } + } + p = buf; + q = errorMessage; + while (*p) { + if (*p == '\n') { + if (hwndMain != NULL /*!!?*/) { + *q++ = '\r'; + *q++ = *p++; + } else { + *q++ = ' '; + p++; + } + } else { + *q++ = *p++; + } + } + *q = NULLCHAR; + + if (hwndMain == NULL) { + MessageBox(NULL, errorMessage, "Error", MB_OK|MB_ICONEXCLAMATION); + } else { + lpProc = MakeProcInstance((FARPROC)ErrorDialog, hInst); + CreateDialog(hInst, MAKEINTRESOURCE(DLG_Error), + hwndMain, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } +} + + +VOID +DisplayMoveError(char *str) +{ + fromX = fromY = -1; + ClearHighlights(); + DrawPosition(FALSE, NULL); + if (appData.popupMoveErrors) { + DisplayError(str, 0); + } else { + DisplayMessage(str, ""); + moveErrorMessageUp = TRUE; + } +} + +VOID +DisplayFatalError(char *str, int error, int exitStatus) +{ + char buf[2*MSG_SIZ], buf2[MSG_SIZ]; + int len; + char *label = exitStatus ? "Fatal Error" : "Exiting"; + + if (error != 0) { + len = FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, + NULL, error, LANG_NEUTRAL, + (LPSTR) buf2, MSG_SIZ, NULL); + if (len > 0) { + sprintf(buf, "%s:\n%s", str, buf2); + } else { + ErrorMap *em = errmap; + while (em->err != 0 && em->err != error) em++; + if (em->err != 0) { + sprintf(buf, "%s:\n%s", str, em->msg); + } else { + sprintf(buf, "%s:\nError code %d", str, error); + } + } + str = buf; + } + if (appData.debugMode) { + fprintf(debugFP, "%s: %s\n", label, str); + } + if (appData.popupExitMessage) { + (void) MessageBox(hwndMain, str, label, MB_OK| + (exitStatus ? MB_ICONSTOP : MB_ICONINFORMATION)); + } + ExitEvent(exitStatus); +} + + +VOID +DisplayInformation(char *str) +{ + (void) MessageBox(hwndMain, str, "Information", MB_OK|MB_ICONINFORMATION); +} + + +typedef struct { + char *title, *question, *replyPrefix; + ProcRef pr; +} QuestionParams; + +LRESULT CALLBACK +QuestionDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static QuestionParams *qp; + char reply[MSG_SIZ]; + int len, err; + + switch (message) { + case WM_INITDIALOG: + qp = (QuestionParams *) lParam; + CenterWindow(hDlg, GetWindow(hDlg, GW_OWNER)); + SetWindowText(hDlg, qp->title); + SetDlgItemText(hDlg, OPT_QuestionText, qp->question); + SetFocus(GetDlgItem(hDlg, OPT_QuestionInput)); + return FALSE; + + case WM_COMMAND: + switch (LOWORD(wParam)) { + case IDOK: + strcpy(reply, qp->replyPrefix); + if (*reply) strcat(reply, " "); + len = strlen(reply); + GetDlgItemText(hDlg, OPT_QuestionInput, reply + len, sizeof(reply) - len); + strcat(reply, "\n"); + OutputToProcess(qp->pr, reply, strlen(reply), &err); + EndDialog(hDlg, TRUE); + if (err) DisplayFatalError("Error writing to chess program", err, 1); + return TRUE; + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + default: + break; + } + break; + } + return FALSE; +} + +VOID +AskQuestion(char* title, char *question, char *replyPrefix, ProcRef pr) +{ + QuestionParams qp; + FARPROC lpProc; + + qp.title = title; + qp.question = question; + qp.replyPrefix = replyPrefix; + qp.pr = pr; + lpProc = MakeProcInstance((FARPROC)QuestionDialog, hInst); + DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_Question), + hwndMain, (DLGPROC)lpProc, (LPARAM)&qp); + FreeProcInstance(lpProc); +} + + +VOID +DisplayIcsInteractionTitle(char *str) +{ + char consoleTitle[MSG_SIZ]; + + sprintf(consoleTitle, "%s: %s", szConsoleTitle, str); + SetWindowText(hwndConsole, consoleTitle); +} + +void +DrawPosition(int fullRedraw, Board board) +{ + HDCDrawPosition(NULL, (BOOLEAN) fullRedraw, board); +} + + +VOID +ResetFrontEnd() +{ + fromX = fromY = -1; + if (dragInfo.pos.x != -1 || dragInfo.pos.y != -1) { + dragInfo.pos.x = dragInfo.pos.y = -1; + dragInfo.pos.x = dragInfo.pos.y = -1; + dragInfo.lastpos = dragInfo.pos; + dragInfo.start.x = dragInfo.start.y = -1; + dragInfo.from = dragInfo.start; + ReleaseCapture(); + DrawPosition(TRUE, NULL); + } +} + + +VOID +CommentPopUp(char *title, char *str) +{ + HWND hwnd = GetActiveWindow(); + EitherCommentPopUp(0, title, str, FALSE); + SetActiveWindow(hwnd); +} + +VOID +CommentPopDown(void) +{ + CheckMenuItem(GetMenu(hwndMain), IDM_EditComment, MF_UNCHECKED); + if (commentDialog) { + ShowWindow(commentDialog, SW_HIDE); + } + commentDialogUp = FALSE; +} + +VOID +EditCommentPopUp(int index, char *title, char *str) +{ + EitherCommentPopUp(index, title, str, TRUE); +} + + +VOID +RingBell() +{ + MyPlaySound(&sounds[(int)SoundMove]); +} + +VOID PlayIcsWinSound() +{ + MyPlaySound(&sounds[(int)SoundIcsWin]); +} + +VOID PlayIcsLossSound() +{ + MyPlaySound(&sounds[(int)SoundIcsLoss]); +} + +VOID PlayIcsDrawSound() +{ + MyPlaySound(&sounds[(int)SoundIcsDraw]); +} + +VOID PlayIcsUnfinishedSound() +{ + MyPlaySound(&sounds[(int)SoundIcsUnfinished]); +} + +VOID +PlayAlarmSound() +{ + MyPlaySound(&sounds[(int)SoundAlarm]); +} + + +VOID +EchoOn() +{ + HWND hInput; + consoleEcho = TRUE; + hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&consoleCF); + SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor); +} + + +VOID +EchoOff() +{ + CHARFORMAT cf; + HWND hInput; + consoleEcho = FALSE; + hInput = GetDlgItem(hwndConsole, OPT_ConsoleInput); + /* This works OK: set text and background both to the same color */ + cf = consoleCF; + cf.crTextColor = COLOR_ECHOOFF; + SendMessage(hInput, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf); + SendMessage(hInput, EM_SETBKGNDCOLOR, FALSE, cf.crTextColor); +} + +/* No Raw()...? */ + +void Colorize(ColorClass cc, int continuation) +{ + currentColorClass = cc; + consoleCF.dwMask = CFM_COLOR|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT; + consoleCF.crTextColor = textAttribs[cc].color; + consoleCF.dwEffects = textAttribs[cc].effects; + if (!continuation) MyPlaySound(&textAttribs[cc].sound); +} + +char * +UserName() +{ + static char buf[MSG_SIZ]; + DWORD bufsiz = MSG_SIZ; + + if (!GetUserName(buf, &bufsiz)) { + /*DisplayError("Error getting user name", GetLastError());*/ + strcpy(buf, "User"); + } + return buf; +} + +char * +HostName() +{ + static char buf[MSG_SIZ]; + DWORD bufsiz = MSG_SIZ; + + if (!GetComputerName(buf, &bufsiz)) { + /*DisplayError("Error getting host name", GetLastError());*/ + strcpy(buf, "Unknown"); + } + return buf; +} + + +int +ClockTimerRunning() +{ + return clockTimerEvent != 0; +} + +int +StopClockTimer() +{ + if (clockTimerEvent == 0) return FALSE; + KillTimer(hwndMain, clockTimerEvent); + clockTimerEvent = 0; + return TRUE; +} + +void +StartClockTimer(long millisec) +{ + clockTimerEvent = SetTimer(hwndMain, (UINT) CLOCK_TIMER_ID, + (UINT) millisec, NULL); +} + +void +DisplayWhiteClock(long timeRemaining, int highlight) +{ + HDC hdc; + hdc = GetDC(hwndMain); + if (!IsIconic(hwndMain)) { + DisplayAClock(hdc, timeRemaining, highlight, &whiteRect, "White"); + } + if (highlight && iconCurrent == iconBlack) { + iconCurrent = iconWhite; + PostMessage(hwndMain, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent); + if (IsIconic(hwndMain)) { + DrawIcon(hdc, 2, 2, iconCurrent); + } + } + (void) ReleaseDC(hwndMain, hdc); + if (hwndConsole) + PostMessage(hwndConsole, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent); +} + +void +DisplayBlackClock(long timeRemaining, int highlight) +{ + HDC hdc; + hdc = GetDC(hwndMain); + if (!IsIconic(hwndMain)) { + DisplayAClock(hdc, timeRemaining, highlight, &blackRect, "Black"); + } + if (highlight && iconCurrent == iconWhite) { + iconCurrent = iconBlack; + PostMessage(hwndMain, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent); + if (IsIconic(hwndMain)) { + DrawIcon(hdc, 2, 2, iconCurrent); + } + } + (void) ReleaseDC(hwndMain, hdc); + if (hwndConsole) + PostMessage(hwndConsole, WM_SETICON, (WPARAM) TRUE, (LPARAM) iconCurrent); +} + + +int +LoadGameTimerRunning() +{ + return loadGameTimerEvent != 0; +} + +int +StopLoadGameTimer() +{ + if (loadGameTimerEvent == 0) return FALSE; + KillTimer(hwndMain, loadGameTimerEvent); + loadGameTimerEvent = 0; + return TRUE; +} + +void +StartLoadGameTimer(long millisec) +{ + loadGameTimerEvent = SetTimer(hwndMain, (UINT) LOAD_GAME_TIMER_ID, + (UINT) millisec, NULL); +} + +void +AutoSaveGame() +{ + char *defName; + FILE *f; + char fileTitle[MSG_SIZ]; + + defName = DefaultFileName(appData.oldSaveStyle ? "gam" : "pgn"); + f = OpenFileDialog(hwndMain, TRUE, defName, + appData.oldSaveStyle ? "gam" : "pgn", + GAME_FILT, + "Save Game to File", NULL, fileTitle, NULL); + if (f != NULL) { + SaveGame(f, 0, ""); + fclose(f); + } +} + + +void +ScheduleDelayedEvent(DelayedEventCallback cb, long millisec) +{ + if (delayedTimerEvent != 0) { + if (appData.debugMode) { + fprintf(debugFP, "ScheduleDelayedEvent: event already scheduled\n"); + } + KillTimer(hwndMain, delayedTimerEvent); + delayedTimerEvent = 0; + delayedTimerCallback(); + } + delayedTimerCallback = cb; + delayedTimerEvent = SetTimer(hwndMain, (UINT) DELAYED_TIMER_ID, + (UINT) millisec, NULL); +} + +DelayedEventCallback +GetDelayedEvent() +{ + if (delayedTimerEvent) { + return delayedTimerCallback; + } else { + return NULL; + } +} + +void +CancelDelayedEvent() +{ + if (delayedTimerEvent) { + KillTimer(hwndMain, delayedTimerEvent); + delayedTimerEvent = 0; + } +} + +/* Start a child process running the given program. + The process's standard output can be read from "from", and its + standard input can be written to "to". + Exit with fatal error if anything goes wrong. + Returns an opaque pointer that can be used to destroy the process + later. +*/ +int +StartChildProcess(char *cmdLine, char *dir, ProcRef *pr) +{ +#define BUFSIZE 4096 + + HANDLE hChildStdinRd, hChildStdinWr, + hChildStdoutRd, hChildStdoutWr; + HANDLE hChildStdinWrDup, hChildStdoutRdDup; + SECURITY_ATTRIBUTES saAttr; + BOOL fSuccess; + PROCESS_INFORMATION piProcInfo; + STARTUPINFO siStartInfo; + ChildProc *cp; + char buf[MSG_SIZ]; + DWORD err; + + if (appData.debugMode) { + fprintf(debugFP, "StartChildProcess (dir=\"%s\") %s\n", dir, cmdLine); + } + + *pr = NoProc; + + /* Set the bInheritHandle flag so pipe handles are inherited. */ + saAttr.nLength = sizeof(SECURITY_ATTRIBUTES); + saAttr.bInheritHandle = TRUE; + saAttr.lpSecurityDescriptor = NULL; + + /* + * The steps for redirecting child's STDOUT: + * 1. Create anonymous pipe to be STDOUT for child. + * 2. Create a noninheritable duplicate of read handle, + * and close the inheritable read handle. + */ + + /* Create a pipe for the child's STDOUT. */ + if (! CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0)) { + return GetLastError(); + } + + /* Duplicate the read handle to the pipe, so it is not inherited. */ + fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdoutRd, + GetCurrentProcess(), &hChildStdoutRdDup, 0, + FALSE, /* not inherited */ + DUPLICATE_SAME_ACCESS); + if (! fSuccess) { + return GetLastError(); + } + CloseHandle(hChildStdoutRd); + + /* + * The steps for redirecting child's STDIN: + * 1. Create anonymous pipe to be STDIN for child. + * 2. Create a noninheritable duplicate of write handle, + * and close the inheritable write handle. + */ + + /* Create a pipe for the child's STDIN. */ + if (! CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0)) { + return GetLastError(); + } + + /* Duplicate the write handle to the pipe, so it is not inherited. */ + fSuccess = DuplicateHandle(GetCurrentProcess(), hChildStdinWr, + GetCurrentProcess(), &hChildStdinWrDup, 0, + FALSE, /* not inherited */ + DUPLICATE_SAME_ACCESS); + if (! fSuccess) { + return GetLastError(); + } + CloseHandle(hChildStdinWr); + + /* Arrange to (1) look in dir for the child .exe file, and + * (2) have dir be the child's working directory. Interpret + * dir relative to the directory WinBoard loaded from. */ + GetCurrentDirectory(MSG_SIZ, buf); + SetCurrentDirectory(installDir); + SetCurrentDirectory(dir); + + /* Now create the child process. */ + + siStartInfo.cb = sizeof(STARTUPINFO); + siStartInfo.lpReserved = NULL; + siStartInfo.lpDesktop = NULL; + siStartInfo.lpTitle = NULL; + siStartInfo.dwFlags = STARTF_USESTDHANDLES; + siStartInfo.cbReserved2 = 0; + siStartInfo.lpReserved2 = NULL; + siStartInfo.hStdInput = hChildStdinRd; + siStartInfo.hStdOutput = hChildStdoutWr; + siStartInfo.hStdError = hChildStdoutWr; + + fSuccess = CreateProcess(NULL, + cmdLine, /* command line */ + NULL, /* process security attributes */ + NULL, /* primary thread security attrs */ + TRUE, /* handles are inherited */ + DETACHED_PROCESS|CREATE_NEW_PROCESS_GROUP, + NULL, /* use parent's environment */ + NULL, + &siStartInfo, /* STARTUPINFO pointer */ + &piProcInfo); /* receives PROCESS_INFORMATION */ + + err = GetLastError(); + SetCurrentDirectory(buf); /* return to prev directory */ + if (! fSuccess) { + return err; + } + + /* Close the handles we don't need in the parent */ + CloseHandle(piProcInfo.hThread); + CloseHandle(hChildStdinRd); + CloseHandle(hChildStdoutWr); + + /* Prepare return value */ + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPReal; + cp->hProcess = piProcInfo.hProcess; + cp->pid = piProcInfo.dwProcessId; + cp->hFrom = hChildStdoutRdDup; + cp->hTo = hChildStdinWrDup; + + *pr = (void *) cp; + + /* Klaus Friedel says that this Sleep solves a problem under Windows + 2000 where engines sometimes don't see the initial command(s) + from WinBoard and hang. I don't understand how that can happen, + but the Sleep is harmless, so I've put it in. Others have also + reported what may be the same problem, so hopefully this will fix + it for them too. */ + Sleep(500); + + return NO_ERROR; +} + + +void +DestroyChildProcess(ProcRef pr, int/*boolean*/ signal) +{ + ChildProc *cp; + + cp = (ChildProc *) pr; + if (cp == NULL) return; + + switch (cp->kind) { + case CPReal: + /* TerminateProcess is considered harmful, so... */ + CloseHandle(cp->hTo); /* Closing this will give the child an EOF and hopefully kill it */ + if (cp->hFrom) CloseHandle(cp->hFrom); /* if NULL, InputThread will close it */ + /* The following doesn't work because the chess program + doesn't "have the same console" as WinBoard. Maybe + we could arrange for this even though neither WinBoard + nor the chess program uses a console for stdio? */ + /*!!if (signal) GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT, cp->pid);*/ + CloseHandle(cp->hProcess); + break; + + case CPComm: + if (cp->hFrom) CloseHandle(cp->hFrom); + break; + + case CPSock: + closesocket(cp->sock); + WSACleanup(); + break; + + case CPRcmd: + if (signal) send(cp->sock2, "\017", 1, 0); /* 017 = 15 = SIGTERM */ + closesocket(cp->sock); + closesocket(cp->sock2); + WSACleanup(); + break; + } + free(cp); +} + +void +InterruptChildProcess(ProcRef pr) +{ + ChildProc *cp; + + cp = (ChildProc *) pr; + if (cp == NULL) return; + switch (cp->kind) { + case CPReal: + /* The following doesn't work because the chess program + doesn't "have the same console" as WinBoard. Maybe + we could arrange for this even though neither WinBoard + nor the chess program uses a console for stdio */ + /*!!GenerateConsoleCtrlEvent(CTRL_C_EVENT, cp->pid);*/ + break; + + case CPComm: + case CPSock: + /* Can't interrupt */ + break; + + case CPRcmd: + send(cp->sock2, "\002", 1, 0); /* 2 = SIGINT */ + break; + } +} + + +int +OpenTelnet(char *host, char *port, ProcRef *pr) +{ + char cmdLine[MSG_SIZ]; + + if (port[0] == NULLCHAR) { + sprintf(cmdLine, "%s %s", appData.telnetProgram, host); + } else { + sprintf(cmdLine, "%s %s %s", appData.telnetProgram, host, port); + } + return StartChildProcess(cmdLine, "", pr); +} + + +/* Code to open TCP sockets */ + +int +OpenTCP(char *host, char *port, ProcRef *pr) +{ + ChildProc *cp; + int err; + SOCKET s; + struct sockaddr_in sa, mysa; + struct hostent FAR *hp; + unsigned short uport; + WORD wVersionRequested; + WSADATA wsaData; + + /* Initialize socket DLL */ + wVersionRequested = MAKEWORD(1, 1); + err = WSAStartup(wVersionRequested, &wsaData); + if (err != 0) return err; + + /* Make socket */ + if ((s = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { + err = WSAGetLastError(); + WSACleanup(); + return err; + } + + /* Bind local address using (mostly) don't-care values. + */ + memset((char *) &mysa, 0, sizeof(struct sockaddr_in)); + mysa.sin_family = AF_INET; + mysa.sin_addr.s_addr = INADDR_ANY; + uport = (unsigned short) 0; + mysa.sin_port = htons(uport); + if (bind(s, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in)) + == SOCKET_ERROR) { + err = WSAGetLastError(); + WSACleanup(); + return err; + } + + /* Resolve remote host name */ + memset((char *) &sa, 0, sizeof(struct sockaddr_in)); + if (!(hp = gethostbyname(host))) { + unsigned int b0, b1, b2, b3; + + err = WSAGetLastError(); + + if (sscanf(host, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) == 4) { + hp = (struct hostent *) calloc(1, sizeof(struct hostent)); + hp->h_addrtype = AF_INET; + hp->h_length = 4; + hp->h_addr_list = (char **) calloc(2, sizeof(char *)); + hp->h_addr_list[0] = (char *) malloc(4); + hp->h_addr_list[0][0] = (char) b0; + hp->h_addr_list[0][1] = (char) b1; + hp->h_addr_list[0][2] = (char) b2; + hp->h_addr_list[0][3] = (char) b3; + } else { + WSACleanup(); + return err; + } + } + sa.sin_family = hp->h_addrtype; + uport = (unsigned short) atoi(port); + sa.sin_port = htons(uport); + memcpy((char *) &sa.sin_addr, hp->h_addr, hp->h_length); + + /* Make connection */ + if (connect(s, (struct sockaddr *) &sa, + sizeof(struct sockaddr_in)) == SOCKET_ERROR) { + err = WSAGetLastError(); + WSACleanup(); + return err; + } + + /* Prepare return value */ + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPSock; + cp->sock = s; + *pr = (ProcRef *) cp; + + return NO_ERROR; +} + +int +OpenCommPort(char *name, ProcRef *pr) +{ + HANDLE h; + COMMTIMEOUTS ct; + ChildProc *cp; + char fullname[MSG_SIZ]; + + if (*name != '\\') + sprintf(fullname, "\\\\.\\%s", name); + else + strcpy(fullname, name); + + h = CreateFile(name, GENERIC_READ | GENERIC_WRITE, + 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, NULL); + if (h == (HANDLE) -1) { + return GetLastError(); + } + hCommPort = h; + + if (!SetCommState(h, (LPDCB) &dcb)) return GetLastError(); + + /* Accumulate characters until a 100ms pause, then parse */ + ct.ReadIntervalTimeout = 100; + ct.ReadTotalTimeoutMultiplier = 0; + ct.ReadTotalTimeoutConstant = 0; + ct.WriteTotalTimeoutMultiplier = 0; + ct.WriteTotalTimeoutConstant = 0; + if (!SetCommTimeouts(h, (LPCOMMTIMEOUTS) &ct)) return GetLastError(); + + /* Prepare return value */ + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPComm; + cp->hFrom = h; + cp->hTo = h; + *pr = (ProcRef *) cp; + + return NO_ERROR; +} + +int +OpenLoopback(ProcRef *pr) +{ + DisplayFatalError("Not implemented", 0, 1); + return NO_ERROR; +} + + +int +OpenRcmd(char* host, char* user, char* cmd, ProcRef* pr) +{ + ChildProc *cp; + int err; + SOCKET s, s2, s3; + struct sockaddr_in sa, mysa; + struct hostent FAR *hp; + unsigned short uport; + WORD wVersionRequested; + WSADATA wsaData; + int fromPort; + char stderrPortStr[MSG_SIZ]; + + /* Initialize socket DLL */ + wVersionRequested = MAKEWORD(1, 1); + err = WSAStartup(wVersionRequested, &wsaData); + if (err != 0) return err; + + /* Resolve remote host name */ + memset((char *) &sa, 0, sizeof(struct sockaddr_in)); + if (!(hp = gethostbyname(host))) { + unsigned int b0, b1, b2, b3; + + err = WSAGetLastError(); + + if (sscanf(host, "%u.%u.%u.%u", &b0, &b1, &b2, &b3) == 4) { + hp = (struct hostent *) calloc(1, sizeof(struct hostent)); + hp->h_addrtype = AF_INET; + hp->h_length = 4; + hp->h_addr_list = (char **) calloc(2, sizeof(char *)); + hp->h_addr_list[0] = (char *) malloc(4); + hp->h_addr_list[0][0] = (char) b0; + hp->h_addr_list[0][1] = (char) b1; + hp->h_addr_list[0][2] = (char) b2; + hp->h_addr_list[0][3] = (char) b3; + } else { + WSACleanup(); + return err; + } + } + sa.sin_family = hp->h_addrtype; + uport = (unsigned short) 514; + sa.sin_port = htons(uport); + memcpy((char *) &sa.sin_addr, hp->h_addr, hp->h_length); + + /* Bind local socket to unused "privileged" port address + */ + s = INVALID_SOCKET; + memset((char *) &mysa, 0, sizeof(struct sockaddr_in)); + mysa.sin_family = AF_INET; + mysa.sin_addr.s_addr = INADDR_ANY; + for (fromPort = 1023;; fromPort--) { + if (fromPort < 0) { + WSACleanup(); + return WSAEADDRINUSE; + } + if (s == INVALID_SOCKET) { + if ((s = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { + err = WSAGetLastError(); + WSACleanup(); + return err; + } + } + uport = (unsigned short) fromPort; + mysa.sin_port = htons(uport); + if (bind(s, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in)) + == SOCKET_ERROR) { + err = WSAGetLastError(); + if (err == WSAEADDRINUSE) continue; + WSACleanup(); + return err; + } + if (connect(s, (struct sockaddr *) &sa, + sizeof(struct sockaddr_in)) == SOCKET_ERROR) { + err = WSAGetLastError(); + if (err == WSAEADDRINUSE) { + closesocket(s); + s = -1; + continue; + } + WSACleanup(); + return err; + } + break; + } + + /* Bind stderr local socket to unused "privileged" port address + */ + s2 = INVALID_SOCKET; + memset((char *) &mysa, 0, sizeof(struct sockaddr_in)); + mysa.sin_family = AF_INET; + mysa.sin_addr.s_addr = INADDR_ANY; + for (fromPort = 1023;; fromPort--) { + if (fromPort < 0) { + (void) closesocket(s); + WSACleanup(); + return WSAEADDRINUSE; + } + if (s2 == INVALID_SOCKET) { + if ((s2 = socket(PF_INET, SOCK_STREAM, 0)) == INVALID_SOCKET) { + err = WSAGetLastError(); + closesocket(s); + WSACleanup(); + return err; + } + } + uport = (unsigned short) fromPort; + mysa.sin_port = htons(uport); + if (bind(s2, (struct sockaddr *) &mysa, sizeof(struct sockaddr_in)) + == SOCKET_ERROR) { + err = WSAGetLastError(); + if (err == WSAEADDRINUSE) continue; + (void) closesocket(s); + WSACleanup(); + return err; + } + if (listen(s2, 1) == SOCKET_ERROR) { + err = WSAGetLastError(); + if (err == WSAEADDRINUSE) { + closesocket(s2); + s2 = INVALID_SOCKET; + continue; + } + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + break; + } + sprintf(stderrPortStr, "%d", fromPort); + + if (send(s, stderrPortStr, strlen(stderrPortStr) + 1, 0) == SOCKET_ERROR) { + err = WSAGetLastError(); + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + + if (send(s, UserName(), strlen(UserName()) + 1, 0) == SOCKET_ERROR) { + err = WSAGetLastError(); + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + if (*user == NULLCHAR) user = UserName(); + if (send(s, user, strlen(user) + 1, 0) == SOCKET_ERROR) { + err = WSAGetLastError(); + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + if (send(s, cmd, strlen(cmd) + 1, 0) == SOCKET_ERROR) { + err = WSAGetLastError(); + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + + if ((s3 = accept(s2, NULL, NULL)) == INVALID_SOCKET) { + err = WSAGetLastError(); + (void) closesocket(s); + (void) closesocket(s2); + WSACleanup(); + return err; + } + (void) closesocket(s2); /* Stop listening */ + + /* Prepare return value */ + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPRcmd; + cp->sock = s; + cp->sock2 = s3; + *pr = (ProcRef *) cp; + + return NO_ERROR; +} + + +InputSourceRef +AddInputSource(ProcRef pr, int lineByLine, + InputCallback func, VOIDSTAR closure) +{ + InputSource *is, *is2; + ChildProc *cp = (ChildProc *) pr; + + is = (InputSource *) calloc(1, sizeof(InputSource)); + is->lineByLine = lineByLine; + is->func = func; + is->closure = closure; + is->second = NULL; + is->next = is->buf; + if (pr == NoProc) { + is->kind = CPReal; + consoleInputSource = is; + } else { + is->kind = cp->kind; + switch (cp->kind) { + case CPReal: + is->hFile = cp->hFrom; + cp->hFrom = NULL; /* now owned by InputThread */ + is->hThread = + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) NonOvlInputThread, + (LPVOID) is, 0, &is->id); + break; + + case CPComm: + is->hFile = cp->hFrom; + cp->hFrom = NULL; /* now owned by InputThread */ + is->hThread = + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) InputThread, + (LPVOID) is, 0, &is->id); + break; + + case CPSock: + is->sock = cp->sock; + is->hThread = + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread, + (LPVOID) is, 0, &is->id); + break; + + case CPRcmd: + is2 = (InputSource *) calloc(1, sizeof(InputSource)); + *is2 = *is; + is->sock = cp->sock; + is->second = is2; + is2->sock = cp->sock2; + is2->second = is2; + is->hThread = + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread, + (LPVOID) is, 0, &is->id); + is2->hThread = + CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE) SocketInputThread, + (LPVOID) is2, 0, &is2->id); + break; + } + } + return (InputSourceRef) is; +} + +void +RemoveInputSource(InputSourceRef isr) +{ + InputSource *is; + + is = (InputSource *) isr; + is->hThread = NULL; /* tell thread to stop */ + CloseHandle(is->hThread); + if (is->second != NULL) { + is->second->hThread = NULL; + CloseHandle(is->second->hThread); + } +} + + +int +OutputToProcess(ProcRef pr, char *message, int count, int *outError) +{ + DWORD dOutCount; + int outCount = SOCKET_ERROR; + ChildProc *cp = (ChildProc *) pr; + static OVERLAPPED ovl; + + if (pr == NoProc) { + ConsoleOutput(message, count, FALSE); + return count; + } + + if (ovl.hEvent == NULL) { + ovl.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); + } + ovl.Internal = ovl.InternalHigh = ovl.Offset = ovl.OffsetHigh = 0; + + switch (cp->kind) { + case CPSock: + case CPRcmd: + outCount = send(cp->sock, message, count, 0); + if (outCount == SOCKET_ERROR) { + *outError = WSAGetLastError(); + } else { + *outError = NO_ERROR; + } + break; + + case CPReal: + if (WriteFile(((ChildProc *)pr)->hTo, message, count, + &dOutCount, NULL)) { + *outError = NO_ERROR; + outCount = (int) dOutCount; + } else { + *outError = GetLastError(); + } + break; + + case CPComm: + *outError = DoWriteFile(((ChildProc *)pr)->hTo, message, count, + &dOutCount, &ovl); + if (*outError == NO_ERROR) { + outCount = (int) dOutCount; + } + break; + } + return outCount; +} + +int +OutputToProcessDelayed(ProcRef pr, char *message, int count, int *outError, + long msdelay) +{ + /* Ignore delay, not implemented for WinBoard */ + return OutputToProcess(pr, message, count, outError); +} + + +void +CmailSigHandlerCallBack(InputSourceRef isr, VOIDSTAR closure, + char *buf, int count, int error) +{ + DisplayFatalError("Not implemented", 0, 1); +} + +/* see wgamelist.c for Game List functions */ +/* see wedittags.c for Edit Tags functions */ + + +VOID +ICSInitScript() +{ + FILE *f; + char buf[MSG_SIZ]; + char *dummy; + + if (SearchPath(installDir, appData.icsLogon, NULL, MSG_SIZ, buf, &dummy)) { + f = fopen(buf, "r"); + if (f != NULL) { + ProcessICSInitScript(f); + fclose(f); + } + } +} + + +VOID +StartAnalysisClock() +{ + if (analysisTimerEvent) return; + analysisTimerEvent = SetTimer(hwndMain, (UINT) ANALYSIS_TIMER_ID, + (UINT) 2000, NULL); +} + +LRESULT CALLBACK +AnalysisDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HANDLE hwndText; + RECT rect; + static int sizeX, sizeY; + int newSizeX, newSizeY, flags; + MINMAXINFO *mmi; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Initialize the dialog items */ + hwndText = GetDlgItem(hDlg, OPT_AnalysisText); + SetWindowText(hDlg, analysisTitle); + SetDlgItemText(hDlg, OPT_AnalysisText, analysisText); + /* Size and position the dialog */ + if (!analysisDialog) { + analysisDialog = hDlg; + flags = SWP_NOZORDER; + GetClientRect(hDlg, &rect); + sizeX = rect.right; + sizeY = rect.bottom; + if (analysisX != CW_USEDEFAULT && analysisY != CW_USEDEFAULT && + analysisW != CW_USEDEFAULT && analysisH != CW_USEDEFAULT) { + WINDOWPLACEMENT wp; + EnsureOnScreen(&analysisX, &analysisY); + wp.length = sizeof(WINDOWPLACEMENT); + wp.flags = 0; + wp.showCmd = SW_SHOW; + wp.ptMaxPosition.x = wp.ptMaxPosition.y = 0; + wp.rcNormalPosition.left = analysisX; + wp.rcNormalPosition.right = analysisX + analysisW; + wp.rcNormalPosition.top = analysisY; + wp.rcNormalPosition.bottom = analysisY + analysisH; + SetWindowPlacement(hDlg, &wp); + + GetClientRect(hDlg, &rect); + newSizeX = rect.right; + newSizeY = rect.bottom; + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, + newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + } + } + return FALSE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDCANCEL: + EditGameEvent(); + return TRUE; + default: + break; + } + break; + + case WM_SIZE: + newSizeX = LOWORD(lParam); + newSizeY = HIWORD(lParam); + ResizeEditPlusButtons(hDlg, hwndText, sizeX, sizeY, newSizeX, newSizeY); + sizeX = newSizeX; + sizeY = newSizeY; + break; + + case WM_GETMINMAXINFO: + /* Prevent resizing window too small */ + mmi = (MINMAXINFO *) lParam; + mmi->ptMinTrackSize.x = 100; + mmi->ptMinTrackSize.y = 100; + break; + } + return FALSE; +} + +VOID +AnalysisPopUp(char* title, char* str) +{ + FARPROC lpProc; + char *p, *q; + + if (str == NULL) str = ""; + p = (char *) malloc(2 * strlen(str) + 2); + q = p; + while (*str) { + if (*str == '\n') *q++ = '\r'; + *q++ = *str++; + } + *q = NULLCHAR; + if (analysisText != NULL) free(analysisText); + analysisText = p; + + if (analysisDialog) { + SetWindowText(analysisDialog, title); + SetDlgItemText(analysisDialog, OPT_AnalysisText, analysisText); + ShowWindow(analysisDialog, SW_SHOW); + } else { + analysisTitle = title; + lpProc = MakeProcInstance((FARPROC)AnalysisDialog, hInst); + CreateDialog(hInst, MAKEINTRESOURCE(DLG_Analysis), + hwndMain, (DLGPROC)lpProc); + FreeProcInstance(lpProc); + } + analysisDialogUp = TRUE; +} + +VOID +AnalysisPopDown() +{ + if (analysisDialog) { + ShowWindow(analysisDialog, SW_HIDE); + } + analysisDialogUp = FALSE; +} + + +VOID +SetHighlights(int fromX, int fromY, int toX, int toY) +{ + highlightInfo.sq[0].x = fromX; + highlightInfo.sq[0].y = fromY; + highlightInfo.sq[1].x = toX; + highlightInfo.sq[1].y = toY; +} + +VOID +ClearHighlights() +{ + highlightInfo.sq[0].x = highlightInfo.sq[0].y = + highlightInfo.sq[1].x = highlightInfo.sq[1].y = -1; +} + +VOID +SetPremoveHighlights(int fromX, int fromY, int toX, int toY) +{ + premoveHighlightInfo.sq[0].x = fromX; + premoveHighlightInfo.sq[0].y = fromY; + premoveHighlightInfo.sq[1].x = toX; + premoveHighlightInfo.sq[1].y = toY; +} + +VOID +ClearPremoveHighlights() +{ + premoveHighlightInfo.sq[0].x = premoveHighlightInfo.sq[0].y = + premoveHighlightInfo.sq[1].x = premoveHighlightInfo.sq[1].y = -1; +} + +VOID +ShutDownFrontEnd() +{ + if (saveSettingsOnExit) SaveSettings(settingsFileName); + DeleteClipboardTempFiles(); +} + +void +BoardToTop() +{ + if (IsIconic(hwndMain)) + ShowWindow(hwndMain, SW_RESTORE); + + SetActiveWindow(hwndMain); +} + +/* + * Prototypes for animation support routines + */ +static void ScreenSquare(int column, int row, POINT * pt); +static void Tween( POINT * start, POINT * mid, POINT * finish, int factor, + POINT frames[], int * nFrames); + + +#define kFactor 4 + +void +AnimateMove(board, fromX, fromY, toX, toY) + Board board; + int fromX; + int fromY; + int toX; + int toY; +{ + ChessSquare piece; + POINT start, finish, mid; + POINT frames[kFactor * 2 + 1]; + int nFrames, n; + + if (!appData.animate) return; + if (doingSizing) return; + if (fromY < 0 || fromX < 0) return; + piece = board[fromY][fromX]; + if (piece >= EmptySquare) return; + + ScreenSquare(fromX, fromY, &start); + ScreenSquare(toX, toY, &finish); + + /* All pieces except knights move in straight line */ + if (piece != WhiteKnight && piece != BlackKnight) { + mid.x = start.x + (finish.x - start.x) / 2; + mid.y = start.y + (finish.y - start.y) / 2; + } else { + /* Knight: make diagonal movement then straight */ + if (abs(toY - fromY) < abs(toX - fromX)) { + mid.x = start.x + (finish.x - start.x) / 2; + mid.y = finish.y; + } else { + mid.x = finish.x; + mid.y = start.y + (finish.y - start.y) / 2; + } + } + + /* Don't use as many frames for very short moves */ + if (abs(toY - fromY) + abs(toX - fromX) <= 2) + Tween(&start, &mid, &finish, kFactor - 1, frames, &nFrames); + else + Tween(&start, &mid, &finish, kFactor, frames, &nFrames); + + animInfo.from.x = fromX; + animInfo.from.y = fromY; + animInfo.to.x = toX; + animInfo.to.y = toY; + animInfo.lastpos = start; + animInfo.piece = piece; + for (n = 0; n < nFrames; n++) { + animInfo.pos = frames[n]; + DrawPosition(FALSE, NULL); + animInfo.lastpos = animInfo.pos; + Sleep(appData.animSpeed); + } + animInfo.pos = finish; + DrawPosition(FALSE, NULL); + animInfo.piece = EmptySquare; +} + +/* Convert board position to corner of screen rect and color */ + +static void +ScreenSquare(column, row, pt) + int column; int row; POINT * pt; +{ + if (flipView) { + pt->x = lineGap + ((BOARD_SIZE-1)-column) * (squareSize + lineGap); + pt->y = lineGap + row * (squareSize + lineGap); + } else { + pt->x = lineGap + column * (squareSize + lineGap); + pt->y = lineGap + ((BOARD_SIZE-1)-row) * (squareSize + lineGap); + } +} + +/* Generate a series of frame coords from start->mid->finish. + The movement rate doubles until the half way point is + reached, then halves back down to the final destination, + which gives a nice slow in/out effect. The algorithmn + may seem to generate too many intermediates for short + moves, but remember that the purpose is to attract the + viewers attention to the piece about to be moved and + then to where it ends up. Too few frames would be less + noticeable. */ + +static void +Tween(start, mid, finish, factor, frames, nFrames) + POINT * start; POINT * mid; + POINT * finish; int factor; + POINT frames[]; int * nFrames; +{ + int n, fraction = 1, count = 0; + + /* Slow in, stepping 1/16th, then 1/8th, ... */ + for (n = 0; n < factor; n++) + fraction *= 2; + for (n = 0; n < factor; n++) { + frames[count].x = start->x + (mid->x - start->x) / fraction; + frames[count].y = start->y + (mid->y - start->y) / fraction; + count ++; + fraction = fraction / 2; + } + + /* Midpoint */ + frames[count] = *mid; + count ++; + + /* Slow out, stepping 1/2, then 1/4, ... */ + fraction = 2; + for (n = 0; n < factor; n++) { + frames[count].x = finish->x - (finish->x - mid->x) / fraction; + frames[count].y = finish->y - (finish->y - mid->y) / fraction; + count ++; + fraction = fraction * 2; + } + *nFrames = count; +} + +void +HistorySet(char movelist[][2*MOVE_LEN], int first, int last, int current) +{ + /* Currently not implemented in WinBoard */ +} + + diff --git a/winboard/winboard.dsp b/winboard/winboard.dsp new file mode 100644 index 0000000..20bee95 --- /dev/null +++ b/winboard/winboard.dsp @@ -0,0 +1,528 @@ +# Microsoft Developer Studio Project File - Name="winboard" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 5.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=winboard - Win32 Release +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "winboard.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "winboard.mak" CFG="winboard - Win32 Release" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "winboard - Win32 Release" (based on "Win32 (x86) External Target") +!MESSAGE "winboard - Win32 Debug" (based on "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "winboard - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir ".\Release" +# PROP BASE Intermediate_Dir ".\Release" +# PROP BASE Cmd_Line "NMAKE /f winboard.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "winboard.exe" +# PROP BASE Bsc_Name "winboard.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir ".\Release" +# PROP Intermediate_Dir ".\Release" +# PROP Cmd_Line "NMAKE" +# PROP Rebuild_Opt "/a" +# PROP Target_File "winboard.exe" +# PROP Bsc_Name "winboard.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "winboard - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir ".\Debug" +# PROP BASE Intermediate_Dir ".\Debug" +# PROP BASE Cmd_Line "NMAKE /f winboard.mak" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "winboard.exe" +# PROP BASE Bsc_Name "winboard.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir ".\Debug" +# PROP Intermediate_Dir ".\Debug" +# PROP Cmd_Line "NMAKE" +# PROP Rebuild_Opt "/a" +# PROP Target_File "winboard.exe" +# PROP Bsc_Name "winboard.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "winboard - Win32 Release" +# Name "winboard - Win32 Debug" + +!IF "$(CFG)" == "winboard - Win32 Release" + +!ELSEIF "$(CFG)" == "winboard - Win32 Debug" + +!ENDIF + +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;hpj;bat;for;f90" +# Begin Source File + +SOURCE=.\backend.c +# End Source File +# Begin Source File + +SOURCE=.\common.c +# End Source File +# Begin Source File + +SOURCE=.\gamelist.c +# End Source File +# Begin Source File + +SOURCE=.\lists.c +# End Source File +# Begin Source File + +SOURCE=.\moves.c +# End Source File +# Begin Source File + +SOURCE=.\parser.c +# End Source File +# Begin Source File + +SOURCE=.\parser.l +# End Source File +# Begin Source File + +SOURCE=.\pgntags.c +# End Source File +# Begin Source File + +SOURCE=.\wedittags.c +# End Source File +# Begin Source File + +SOURCE=.\wgamelist.c +# End Source File +# Begin Source File + +SOURCE=.\winboard.c +# End Source File +# Begin Source File + +SOURCE=.\wsockerr.c +# End Source File +# Begin Source File + +SOURCE=.\zippy.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl;fi;fd" +# Begin Source File + +SOURCE=.\backend.h +# End Source File +# Begin Source File + +SOURCE=.\backendz.h +# End Source File +# Begin Source File + +SOURCE=.\common.h +# End Source File +# Begin Source File + +SOURCE=.\config.h +# End Source File +# Begin Source File + +SOURCE=.\defaults.h +# End Source File +# Begin Source File + +SOURCE=.\frontend.h +# End Source File +# Begin Source File + +SOURCE=.\lists.h +# End Source File +# Begin Source File + +SOURCE=.\moves.h +# End Source File +# Begin Source File + +SOURCE=.\parser.h +# End Source File +# Begin Source File + +SOURCE=.\resource.h +# End Source File +# Begin Source File + +SOURCE=.\wedittags.h +# End Source File +# Begin Source File + +SOURCE=.\wgamelist.h +# End Source File +# Begin Source File + +SOURCE=.\winboard.h +# End Source File +# Begin Source File + +SOURCE=.\wsockerr.h +# End Source File +# Begin Source File + +SOURCE=.\zippy.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +# Begin Source File + +SOURCE=.\bitmaps\B21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B40o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B40s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B64s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B80o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\B80s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\bepbeep.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\board.ico +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\ching.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\click.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\cymbal.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\Ding1.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\doodloop.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\drip.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\galactic.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\gong.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\honkhonk.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\icon_b.ico +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\icon_ob.ico +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\icon_ow.ico +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\icon_whi.ico +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\K21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\K21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\laser.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\move.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\N21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\N21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\P21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\P21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\penalty.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\phone.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\pop.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\pop2.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\Q21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\Q21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\R21o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\R21s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\R80o.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\R80s.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\slap.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\squeak.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\swish.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\thud.wav +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\tim.bmp +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\whipcrak.wav +# End Source File +# Begin Source File + +SOURCE=.\winboard.rc +# End Source File +# Begin Source File + +SOURCE=.\WINBOARD.rtf +# End Source File +# Begin Source File + +SOURCE=.\bitmaps\zap.wav +# End Source File +# End Group +# Begin Source File + +SOURCE=.\sounds\alarm.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\challenge.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\channel.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\channel1.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\ching.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\click.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\cymbal.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\ding1.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\draw.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\drip.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\gong.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\honkhonk.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\kibitz.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\laser.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\lose.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\move.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\penalty.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\phone.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\pop.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\pop2.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\request.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\seek.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\shout.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\slap.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\squeak.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\sshout.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\swish.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\tell.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\thud.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\unfinished.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\whipcrak.wav +# End Source File +# Begin Source File + +SOURCE=.\sounds\win.wav +# End Source File +# End Target +# End Project diff --git a/winboard/winboard.dsw b/winboard/winboard.dsw new file mode 100644 index 0000000..3945304 --- /dev/null +++ b/winboard/winboard.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 5.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "winboard"=.\winboard.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/winboard/winboard.h b/winboard/winboard.h new file mode 100644 index 0000000..5823b2e --- /dev/null +++ b/winboard/winboard.h @@ -0,0 +1,165 @@ +/* + * WinBoard.h -- Definitions for Windows NT front end to XBoard + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-97 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ +#include "resource.h" +#include + +/* Types */ +typedef struct { + char faceName[LF_FACESIZE]; + float pointSize; + BYTE bold, italic, underline, strikeout; +} MyFontParams; + +typedef struct { + char *def; + MyFontParams mfp; + LOGFONT lf; + HFONT hf; +} MyFont; + +typedef enum { + SizeTiny, SizeTeeny, SizeDinky, SizePetite, SizeSlim, SizeSmall, + SizeMediocre, SizeMiddling, SizeAverage, SizeModerate, SizeMedium, + SizeBulky, SizeLarge, SizeBig, SizeHuge, SizeGiant, SizeColossal, + SizeTitanic, NUM_SIZES +} BoardSize; + +typedef struct { + COLORREF color; + int effects; + char *name; +} MyColorizeAttribs; + +typedef struct { + char* name; + void* data; +} MySound; + +typedef struct { + COLORREF color; + int effects; + MySound sound; +} MyTextAttribs; + +/* Functions */ + +BOOL InitApplication(HINSTANCE); +BOOL InitInstance(HINSTANCE, int, LPSTR); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK BoardSizeDlg(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK ButtonProc(HWND, UINT, WPARAM, LPARAM); +VOID InitAppData(LPSTR); +VOID InitDrawingColors(VOID); +VOID InitDrawingSizes(BoardSize boardSize, int flags); +VOID InitMenuChecks(VOID); +VOID ICSInitScript(VOID); +BOOL CenterWindow(HWND hwndChild, HWND hwndParent); +VOID ResizeEditPlusButtons(HWND hDlg, HWND hText, int sizeX, int sizeY, int newSizeX, int newSizeY); +VOID PromotionPopup(HWND hwnd); +FILE *OpenFileDialog(HWND hWnd, BOOL write, char *defName, char *defExt, + char *nameFilt, char *dlgTitle, UINT *number, + char fileTitle[MSG_SIZ], char fileName[MSG_SIZ]); +VOID InputEvent(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); +DWORD InputThread(LPVOID arg); +DWORD NonOvlInputThread(LPVOID arg); +DWORD SocketInputThread(LPVOID arg); +BOOL ChangeColor(HWND hwnd, COLORREF *which); +VOID ChangeBoardSize(BoardSize newSize); +BOOL APIENTRY MyCreateFont(HWND hwnd, MyFont *font); +VOID ErrorPopDown(VOID); +VOID EnsureOnScreen(int *x, int *y); +typedef char GetFunc(void *getClosure); +VOID ParseArgs(GetFunc get, void *cl); +HBITMAP +DoLoadBitmap(HINSTANCE hinst, char *piece, int squareSize, char *suffix); +COLORREF ParseColorName(char *name); +void ParseAttribs(COLORREF *color, int *effects, char* argValue); +VOID CreateFontInMF(MyFont *mf); +VOID ChangedConsoleFont(); +VOID ParseFontName(char *name, MyFontParams *mfp); +void InitComboStrings(HANDLE hwndCombo, char **cd); +BOOLEAN MyLoadSound(MySound *ms); +BOOLEAN MyPlaySound(MySound *ms); +VOID ExitArgError(char *msg, char *badArg); + +/* Constants */ + +#define CLOCK_FONT 0 +#define MESSAGE_FONT 1 +#define COORD_FONT 2 +#define CONSOLE_FONT 3 +#define COMMENT_FONT 4 +#define EDITTAGS_FONT 5 +#define NUM_FONTS 6 + +/* Positions of some menu items. Origin is zero and separator lines count. */ +/* It's gross that these are needed. */ +#define ACTION_POS 2 /* Posn of "Action" on menu bar */ +#define OPTIONS_POS 4 /* Posn of "Options" on menu bar */ +#define ICS_POS 4 /* Posn of "ICS " on Options menu */ +#define SOUNDS_POS 6 /* Posn of "Sounds" on Options menu */ +/* end grossness */ + +extern MyFont *font[NUM_SIZES][NUM_FONTS]; + +#define WM_USER_Input (WM_USER + 4242) +#define WM_USER_Mouseleave (WM_USER + 4243) +#define WM_USER_GetConsoleBackground (WM_USER + 4244) + +#define CLOCK_TIMER_ID 51 +#define LOAD_GAME_TIMER_ID 52 +#define ANALYSIS_TIMER_ID 53 +#define MOUSE_TIMER_ID 54 +#define DELAYED_TIMER_ID 55 + +#define SOLID_PIECE 0 +#define OUTLINE_PIECE 1 +#define WHITE_PIECE 2 + +#define COPY_TMP "wbcopy.tmp" +#define PASTE_TMP "wbpaste.tmp" diff --git a/winboard/winboard.hpj b/winboard/winboard.hpj new file mode 100644 index 0000000..ea47092 --- /dev/null +++ b/winboard/winboard.hpj @@ -0,0 +1,19 @@ +; This file is maintained by HCW. Do not modify this file directly. + +; This help project requires hc 3.1 +[OPTIONS] +ERRORLOG=winboard.err +LCID=0x409 0x0 0x0 ; English (United States) +REPORT=Yes +TITLE=WinBoard Help +BMROOT=bitmaps +HLP=.\winboard.hlp + +[FILES] +winboard.rtf + +[WINDOWS] +main="WinBoard Help",,60676,,(r12632256),f2 + +[CONFIG] +BrowseButtons() diff --git a/winboard/winboard.rc b/winboard/winboard.rc new file mode 100644 index 0000000..bd7fcf4 --- /dev/null +++ b/winboard/winboard.rc @@ -0,0 +1,1371 @@ +//Microsoft Developer Studio generated resource script. +// +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#define APSTUDIO_HIDDEN_SYMBOLS +#include "windows.h" +#undef APSTUDIO_HIDDEN_SYMBOLS +#include "dlgs.h" + + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (U.S.) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 + +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// + +ABOUTBOX DIALOG DISCARDABLE 22, 17, 167, 67 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About WinBoard" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,131,47,32,14,WS_GROUP +#if __GNUC__ + ICON icon_white,-1,3,6,20,20,0 +#else + ICON "icon_white",-1,3,6,20,20,0 +#endif + LTEXT "Chessboard for Windows",400,25,15,121,8 + LTEXT "Copyright 1991 Digital Equipment Corporation",201,6,34, + 149,8 + LTEXT "Enhancements Copyright 1992-2002 Free Software Foundation", + OPT_TCtext1,6,44,121,17 + CONTROL "",OPT_TCTime,"Static",SS_BLACKRECT,4,28,159,1 + LTEXT "WinBoard 0.0.0",ABOUTBOX_Version,25,5,142,8 +END + +DLG_TimeControl DIALOG DISCARDABLE 6, 18, 147, 113 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Time Control" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "Conventional chess clock",OPT_TCUseMoves,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,6,6,113,10 + CONTROL "Incremental clock",OPT_TCUseInc,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,6,42,107,10 + EDITTEXT OPT_TCMoves,14,20,22,12,ES_AUTOHSCROLL | WS_GROUP + LTEXT "moves in",OPT_TCtext1,40,22,30,8,NOT WS_GROUP + EDITTEXT OPT_TCTime,74,20,32,12,ES_AUTOHSCROLL + LTEXT "minutes",OPT_TCtext2,111,22,26,8,NOT WS_GROUP + EDITTEXT OPT_TCTime2,14,56,32,12,ES_AUTOHSCROLL | WS_GROUP + LTEXT "minutes initially,",405,51,57,73,8,NOT WS_GROUP + LTEXT "plus",406,19,74,15,8,NOT WS_GROUP + EDITTEXT OPT_TCInc,37,72,32,12,ES_AUTOHSCROLL + LTEXT "seconds per move",408,74,74,67,8,NOT WS_GROUP + PUSHBUTTON "OK",IDOK,32,95,40,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,88,95,40,14 +END + +DLG_LoadOptions DIALOG DISCARDABLE 10, 18, 144, 55 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Load Game Options" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "Load games with automatic stepping",OPT_Autostep,"Button", + BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,4,136,10 + EDITTEXT OPT_ASTimeDelay,23,18,28,12,ES_AUTOHSCROLL + LTEXT "seconds per move",OPT_AStext1,57,20,60,8,NOT WS_GROUP + PUSHBUTTON "OK",IDOK,24,37,40,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,80,37,40,14 +END + +DLG_SaveOptions DIALOG DISCARDABLE 6, 17, 133, 119 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Save Game Options" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "Save games automatically",OPT_Autosave,"Button", + BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,4,4,97,10 + CONTROL "Prompt for filename",OPT_AVPrompt,"Button", + BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,18,18,75,10 + CONTROL "To file:",OPT_AVToFile,"Button",BS_AUTORADIOBUTTON,18, + 31,36,10 + EDITTEXT OPT_AVFilename,18,44,97,12,ES_AUTOHSCROLL + GROUPBOX "Save Style",801,4,63,125,28,WS_GROUP + CONTROL "PGN",OPT_PGN,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP, + 18,75,39,10 + CONTROL "Old",OPT_Old,"Button",BS_AUTORADIOBUTTON,73,75,39,10 + PUSHBUTTON "OK",IDOK,18,98,40,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,74,98,40,14 + PUSHBUTTON "Browse...",OPT_AVBrowse,76,31,39,14 +END + +1536 DIALOG DISCARDABLE 36, 24, 264, 134 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Open" +FONT 8, "Helv" +BEGIN + LTEXT "File &Name:",1090,6,6,76,9 + EDITTEXT 1152,6,16,90,12,ES_AUTOHSCROLL | ES_OEMCONVERT + LISTBOX 1120,6,32,90,68,LBS_SORT | LBS_OWNERDRAWFIXED | + LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "&Directories:",-1,110,6,92,9 + LTEXT "",1088,110,18,92,9,SS_NOPREFIX | NOT WS_GROUP + LISTBOX 1121,110,32,92,68,LBS_SORT | LBS_OWNERDRAWFIXED | + LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL | + WS_TABSTOP + LTEXT "List Files of &Type:",1089,6,104,90,9 + COMBOBOX 1136,6,114,90,36,CBS_DROPDOWNLIST | CBS_AUTOHSCROLL | + WS_BORDER | WS_VSCROLL | WS_TABSTOP + LTEXT "Dri&ves:",1091,110,104,92,9 + COMBOBOX 1137,110,114,92,68,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | + CBS_AUTOHSCROLL | CBS_SORT | CBS_HASSTRINGS | WS_BORDER | + WS_VSCROLL | WS_TABSTOP + DEFPUSHBUTTON "OK",IDOK,208,6,50,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,208,24,50,14,WS_GROUP + PUSHBUTTON "&Help",1038,208,46,50,14,NOT WS_VISIBLE | WS_GROUP + LTEXT "&Index number:",-1,208,74,48,8 + EDITTEXT OPT_IndexNumberOld,208,84,50,12,ES_AUTOHSCROLL + PUSHBUTTON "Net&work...",1037,208,113,50,14,WS_GROUP +END + +DLG_CommPort DIALOG DISCARDABLE 25, 30, 159, 98 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Communication Port Settings" +FONT 8, "Helv" +BEGIN + RTEXT "&Port:",-1,4,6,40,10 + COMBOBOX OPT_Port,49,4,55,60,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP + RTEXT "Data &Rate:",-1,4,21,40,10,NOT WS_GROUP + COMBOBOX OPT_DataRate,49,19,55,100,CBS_DROPDOWN | WS_VSCROLL | + WS_TABSTOP + RTEXT "Data &Bits:",-1,4,36,40,10,NOT WS_GROUP + COMBOBOX OPT_Bits,49,34,55,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_VSCROLL | WS_TABSTOP + RTEXT "P&arity:",-1,4,51,40,10,NOT WS_GROUP + COMBOBOX OPT_Parity,49,49,55,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_VSCROLL | WS_TABSTOP + RTEXT "&Stop Bits:",-1,4,66,40,10,NOT WS_GROUP + COMBOBOX OPT_StopBits,49,64,55,60,CBS_DROPDOWNLIST | + CBS_HASSTRINGS | WS_VSCROLL | WS_TABSTOP + RTEXT "F&low:",-1,4,81,40,10,NOT WS_GROUP + DEFPUSHBUTTON "OK",IDOK,115,4,40,14 + PUSHBUTTON "Cancel",IDCANCEL,115,24,40,14 + COMBOBOX OPT_Flow,49,79,55,60,CBS_DROPDOWNLIST | CBS_HASSTRINGS | + WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "&Help",OPT_SerialHelp,115,80,40,14,NOT WS_VISIBLE +END + +DLG_EditComment DIALOG DISCARDABLE 6, 18, 306, 104 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "Edit Comment" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "OK",IDOK,61,86,40,14 + PUSHBUTTON "Cancel",OPT_CancelComment,109,86,40,14 + PUSHBUTTON "&Clear",OPT_ClearComment,157,86,40,14 + PUSHBUTTON "&Edit",OPT_EditComment,205,86,40,14 + CONTROL "",OPT_CommentText,"RICHEDIT",ES_MULTILINE | + ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | + WS_HSCROLL | WS_TABSTOP,4,4,298,78 +END + +DLG_PromotionKing DIALOG DISCARDABLE 98, 90, 183, 41 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU +CAPTION "Promotion" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "&Queen",PB_Queen,4,23,40,14,WS_GROUP + PUSHBUTTON "&Rook",PB_Rook,49,23,40,14,NOT WS_TABSTOP + PUSHBUTTON "&Bishop",PB_Bishop,94,23,40,14,NOT WS_TABSTOP + PUSHBUTTON "K&night",PB_Knight,139,23,40,14,NOT WS_TABSTOP + PUSHBUTTON "&King",PB_King,94,4,40,14,NOT WS_TABSTOP + PUSHBUTTON "&Cancel",IDCANCEL,139,4,40,14,WS_GROUP + LTEXT "Promote pawn to:",501,6,8,58,8 +END + +ABOUTBOX2 DIALOG DISCARDABLE 22, 17, 281, 198 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "About WinBoard" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,244,180,32,14,WS_GROUP + RTEXT "Chessboard for Windows",DLG_TimeControl,196,154,80,8 + LTEXT "Copyright 1991 Digital Equipment Corporation",201,4,167, + 151,8 + LTEXT "Enhancements Copyright 1992-2002 Free Software Foundation", + OPT_TCtext1,4,177,126,17 + CONTROL "",OPT_TCTime,"Static",SS_BLACKRECT,4,164,272,1 + LTEXT "WinBoard 0.0.0",ABOUTBOX_Version,4,154,64,8 + CONTROL "galactic",IDC_STATIC,"Static",SS_BITMAP,4,4,15,13 +END + +DLG_GameList DIALOG DISCARDABLE 6, 18, 307, 159 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "Game List" +FONT 8, "MS Sans Serif" +BEGIN + LISTBOX OPT_GameListText,4,4,299,130,LBS_NOINTEGRALHEIGHT | + WS_VSCROLL | WS_HSCROLL | WS_TABSTOP + PUSHBUTTON "&Load",OPT_GameListLoad,61,138,40,15 + PUSHBUTTON "&Prev",OPT_GameListPrev,109,138,40,15 + PUSHBUTTON "&Next",OPT_GameListNext,157,138,40,15 + PUSHBUTTON "&Close",OPT_GameListClose,205,138,40,15 +END + +DLG_EditTags DIALOG DISCARDABLE 6, 18, 160, 141 +STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME +CAPTION "Edit Tags" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "OK",IDOK,12,123,40,14 + PUSHBUTTON "Cancel",OPT_TagsCancel,60,123,40,14 + PUSHBUTTON "&Edit",OPT_EditTags,108,123,40,14 + CONTROL "",OPT_TagsText,"RICHEDIT",ES_MULTILINE | ES_AUTOVSCROLL | + ES_AUTOHSCROLL | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | + WS_HSCROLL | WS_TABSTOP,4,4,152,115 +END + +WBCONSOLE DIALOG DISCARDABLE 0, 0, 335, 133 +STYLE WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "ICS Interaction" +#if __GNUC__ +CLASS WBConsole +#else +CLASS "WBConsole" +#endif +FONT 8, "Courier New" +BEGIN + CONTROL "",OPT_ConsoleText,"RICHEDIT",ES_MULTILINE | + ES_AUTOVSCROLL | ES_NOHIDESEL | ES_READONLY | ES_NUMBER | + WS_BORDER | WS_VSCROLL | WS_TABSTOP,0,0,335,119 + CONTROL "",OPT_ConsoleInput,"RICHEDIT",ES_AUTOHSCROLL | + ES_AUTOVSCROLL | ES_MULTILINE | + ES_NOHIDESEL | ES_NUMBER | WS_BORDER | + WS_TABSTOP,0,120,335,13,WS_EX_TRANSPARENT +END + +DLG_Analysis DIALOG DISCARDABLE 0, 0, 294, 62 +STYLE WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | + WS_THICKFRAME +CAPTION "Dialog" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "",OPT_AnalysisText,"RICHEDIT",ES_MULTILINE | + ES_READONLY | ES_WANTRETURN | WS_BORDER | WS_VSCROLL | + WS_HSCROLL | WS_TABSTOP,4,4,286,54 +END + +DLG_Error DIALOG DISCARDABLE 0, 0, 183, 33 +STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION +CAPTION "Error" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,163,9,16,14 + ICON 32515,IDC_STATIC,4,6,20,20 + LTEXT "Sorry Charlie",OPT_ErrorText,27,4,130,25 +END + +DLG_Colorize DIALOGEX 0, 0, 183, 52 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "ICS Interaction Colors" +FONT 8, "MS Sans Serif" +BEGIN + PUSHBUTTON "&Choose Color...",OPT_ChooseColor,15,29,51,14,WS_GROUP + CONTROL "&Bold",OPT_Bold,"Button",BS_AUTOCHECKBOX | WS_GROUP | + WS_TABSTOP,93,4,30,10 + CONTROL "&Italic",OPT_Italic,"Button",BS_AUTOCHECKBOX,93,14,30, + 10 + CONTROL "&Underline",OPT_Underline,"Button",BS_AUTOCHECKBOX,93, + 24,45,10 + CONTROL "&Strikeout",OPT_Strikeout,"Button",BS_AUTOCHECKBOX,93, + 34,42,10 + DEFPUSHBUTTON "OK",IDOK,145,7,31,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,145,24,31,14 + CONTROL "",OPT_Sample,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_GROUP,4,9,75,15,WS_EX_CLIENTEDGE +END + +DLG_Question DIALOG DISCARDABLE 0, 0, 187, 60 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Question" +FONT 8, "MS Sans Serif" +BEGIN + EDITTEXT OPT_QuestionInput,4,44,179,12,ES_AUTOHSCROLL + DEFPUSHBUTTON "Enter",IDOK,133,4,50,14,WS_GROUP + PUSHBUTTON "Cancel",IDCANCEL,133,24,50,14 + LTEXT "Enter a chess engine command or just type something stupid that will completely screw things up.", + OPT_QuestionText,27,4,101,33 + ICON 32514,IDC_STATIC,4,13,20,20 +END + +DLG_Startup DIALOG DISCARDABLE 0, 0, 276, 127 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "WinBoard Startup" +FONT 8, "MS Sans Serif" +BEGIN + CONTROL "Play against a chess engine or match two engines", + OPT_ChessEngine,"Button",BS_AUTORADIOBUTTON | WS_GROUP | + WS_TABSTOP,8,17,193,10 + COMBOBOX OPT_ChessEngineName,15,29,194,129,CBS_DROPDOWN | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + COMBOBOX OPT_SecondChessEngineName,15,45,194,129,CBS_DROPDOWN | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + CONTROL "Use an Internet Chess Server",OPT_ChessServer,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,8,62,195,10 + COMBOBOX OPT_ChessServerName,16,73,194,129,CBS_DROPDOWN | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP + CONTROL "Just view or edit game files",OPT_View,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,8,91,193,10 + CONTROL "Additional options",OPT_AnyAdditional,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,8,111,71,10 + EDITTEXT OPT_AdditionalOptions,85,110,187,13,ES_AUTOHSCROLL + DEFPUSHBUTTON "OK",IDOK,222,4,50,14 + PUSHBUTTON "Cancel",IDCANCEL,222,21,50,14 + PUSHBUTTON "Help",IDM_HELPCONTENTS,222,38,50,14 + GROUPBOX "What would you like to do?",IDC_STATIC,4,4,211,101 +END + +DLG_IndexNumber DIALOG DISCARDABLE 0, 0, 236, 18 +#if __GNUC__ +STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS | + NOT WS_POPUP | NOT WS_BORDER | NOT WS_SYSMENU +#else +STYLE DS_3DLOOK | DS_CONTROL | WS_CHILD | WS_CLIPSIBLINGS +#endif +FONT 8, "MS Sans Serif" +BEGIN + LTEXT "Inde&x number:",IDC_STATIC,5,2,46,8 + EDITTEXT OPT_IndexNumber,54,0,155,13,ES_AUTOHSCROLL +END + +DLG_TypeInMove DIALOG DISCARDABLE 0, 0, 186, 46 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Type in a move" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,129,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,129,24,50,14 + EDITTEXT OPT_Move,7,16,109,13,ES_AUTOHSCROLL +END + +DLG_Sound DIALOG DISCARDABLE 0, 0, 257, 95 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Sounds" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,199,6,47,14 + PUSHBUTTON "Cancel",IDCANCEL,199,23,47,14 + PUSHBUTTON "Defaults",OPT_DefaultSounds,199,40,47,14 + COMBOBOX CBO_Sounds,52,6,128,110,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + CONTROL "No sound",OPT_NoSound,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,11,25,47,10 + CONTROL "Default beep",OPT_DefaultBeep,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,11,42,57,10 + CONTROL "Built-in sound:",OPT_BuiltInSound,"Button", + BS_AUTORADIOBUTTON | WS_TABSTOP,11,59,60,10 + COMBOBOX OPT_BuiltInSoundName,78,58,103,109,CBS_DROPDOWNLIST | + CBS_SORT | WS_VSCROLL | WS_TABSTOP + PUSHBUTTON "Play",OPT_PlaySound,200,57,47,14 + CONTROL "WAV file:",OPT_WavFile,"Button",BS_AUTORADIOBUTTON | + WS_TABSTOP,11,76,45,10 + EDITTEXT OPT_WavFileName,78,75,103,12,ES_AUTOHSCROLL + PUSHBUTTON "Browse...",OPT_BrowseSound,200,74,47,14 + LTEXT "Event:",IDC_STATIC,19,9,26,9 +END + +DLG_GeneralOptions DIALOG DISCARDABLE 0, 0, 271, 135 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "General Options" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,207,7,50,14 + PUSHBUTTON "Cancel",IDCANCEL,208,25,50,14 + CONTROL "Always on &Top",OPT_AlwaysOnTop,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,6,79,10 + CONTROL "Always &Queen",OPT_AlwaysQueen,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,16,20,79,10 + CONTROL "Animate &Dragging",OPT_AnimateDragging,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,34,79,10 + CONTROL "&Animate Moving",OPT_AnimateMoving,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,48,79,10 + CONTROL "Auto &Flag",OPT_AutoFlag,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,16,62,79,10 + CONTROL "Auto Flip &View",OPT_AutoFlipView,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,76,79,10 + CONTROL "Auto &Raise Board",OPT_AutoRaiseBoard,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,90,71,10 + CONTROL "&Blindfold",OPT_Blindfold,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,16,104,79,10 + CONTROL "&Highlight Dragging",OPT_HighlightDragging,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,16,118,79,10 + CONTROL "Highlight Last &Move",OPT_HighlightLastMove,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,6,79,10 + CONTROL "Periodic &Updates",OPT_PeriodicUpdates,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,20,79,10 + CONTROL "Ponder &Next Move",OPT_PonderNextMove,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,34,79,10 + CONTROL "&Popup Exit Message",OPT_PopupExitMessage,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,48,79,10 + CONTROL "Popup Move &Errors",OPT_PopupMoveErrors,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,62,79,10 + CONTROL "Show Butt&on Bar",OPT_ShowButtonBar,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,76,79,10 + CONTROL "Show &Coordinates",OPT_ShowCoordinates,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,90,79,10 + CONTROL "&Show Thinking",OPT_ShowThinking,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,104,79,10 + CONTROL "Test &Legality",OPT_TestLegality,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,109,118,79,10 +END + +DLG_IcsOptions DIALOGEX 0, 0, 318, 271 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "ICS Options" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,88,250,60,15 + PUSHBUTTON "Cancel",IDCANCEL,168,250,60,15 + CONTROL "&Auto Comment",OPT_AutoComment,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,20,12,63,8 + CONTROL "Auto &Observe",OPT_AutoObserve,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,20,27,63,8 + CONTROL "&Get Move List",OPT_GetMoveList,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,20,42,63,8 + CONTROL "&Local Line Editing",OPT_LocalLineEditing,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,20,57,84,8 + CONTROL "&Quiet Play",OPT_QuietPlay,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,20,72,63,8 + CONTROL "&Premove",OPT_Premove,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,171,12,46,10 + CONTROL "&White first move",OPT_PremoveWhite,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,171,27,67,10 + EDITTEXT OPT_PremoveWhiteText,252,23,25,14,ES_AUTOHSCROLL + CONTROL "&Black first move",OPT_PremoveBlack,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,171,42,66,10 + EDITTEXT OPT_PremoveBlackText,252,39,25,14,ES_AUTOHSCROLL + CONTROL "&Sound alarm at",OPT_IcsAlarm,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,171,72,63,10 + EDITTEXT OPT_IcsAlarmTime,243,70,20,13,ES_AUTOHSCROLL + LTEXT "seconds",IDC_STATIC,270,72,28,8 + PUSHBUTTON "Choose...",OPT_ChooseShoutColor,104,101,45,15 + PUSHBUTTON "Choose...",OPT_ChooseSShoutColor,104,121,45,15 + PUSHBUTTON "Choose...",OPT_ChooseChannel1Color,104,141,45,15 + PUSHBUTTON "Choose...",OPT_ChooseChannelColor,104,161,45,15 + PUSHBUTTON "Choose...",OPT_ChooseKibitzColor,104,181,45,15 + PUSHBUTTON "Choose...",OPT_ChooseTellColor,252,101,45,15 + PUSHBUTTON "Choose...",OPT_ChooseChallengeColor,252,121,45,15 + PUSHBUTTON "Choose...",OPT_ChooseRequestColor,252,141,45,15 + PUSHBUTTON "Choose...",OPT_ChooseSeekColor,252,161,45,15 + PUSHBUTTON "Choose...",OPT_ChooseNormalColor,252,181,45,15 + PUSHBUTTON "&Choose Background Color...",OPT_ChooseBackgroundColor, + 17,204,132,16 + PUSHBUTTON "&Default ICS Colors",OPT_DefaultColors,165,204,132,16 + CONTROL "Do ¬ colorize messages",OPT_DontColorize,"Button", + BS_AUTOCHECKBOX | WS_TABSTOP,110,225,97,10 + CONTROL "",OPT_SampleShout,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,17,101,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleSShout,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,17,121,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleChannel1,"RICHEDIT",ES_CENTER | + ES_MULTILINE | ES_READONLY | WS_DISABLED | WS_GROUP,17, + 141,75,15,WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleChannel,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,17,161,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleKibitz,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_GROUP,17,181,75,15,WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleTell,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,165,101,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleChallenge,"RICHEDIT",ES_CENTER | + ES_MULTILINE | ES_READONLY | WS_DISABLED | WS_GROUP,165, + 121,75,15,WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleRequest,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,165,141,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleSeek,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,165,161,75,15, + WS_EX_CLIENTEDGE + CONTROL "",OPT_SampleNormal,"RICHEDIT",ES_CENTER | ES_MULTILINE | + ES_READONLY | WS_DISABLED | WS_GROUP,165,181,75,15, + WS_EX_CLIENTEDGE + GROUPBOX "Interaction Colors",IDC_STATIC,10,90,295,150 + GROUPBOX "Premove",IDC_STATIC,159,0,146,59 + GROUPBOX "",IDC_STATIC,10,0,146,89 + GROUPBOX "Alarm",IDC_STATIC,159,59,146,30 +END + +DLG_BoardOptions DIALOG DISCARDABLE 0, 0, 262, 250 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Board Options" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,205,10,50,14 + PUSHBUTTON "Cancel",IDCANCEL,205,35,50,14 + CONTROL "&Tiny",OPT_SizeTiny,"Button",BS_AUTORADIOBUTTON | + WS_GROUP | WS_TABSTOP,15,15,50,10 + CONTROL "T&eeny",OPT_SizeTeeny,"Button",BS_AUTORADIOBUTTON,15,25, + 50,10 + CONTROL "&Dinky",OPT_SizeDinky,"Button",BS_AUTORADIOBUTTON,15,35, + 50,10 + CONTROL "&Petite",OPT_SizePetite,"Button",BS_AUTORADIOBUTTON,15, + 45,50,10 + CONTROL "Sl&im",OPT_SizeSlim,"Button",BS_AUTORADIOBUTTON,15,55, + 50,10 + CONTROL "&Small",OPT_SizeSmall,"Button",BS_AUTORADIOBUTTON,15,65, + 50,10 + CONTROL "Medi&ocre",OPT_SizeMediocre,"Button",BS_AUTORADIOBUTTON, + 76,15,50,10 + CONTROL "&Middling",OPT_SizeMiddling,"Button",BS_AUTORADIOBUTTON, + 76,25,50,10 + CONTROL "&Average",OPT_SizeAverage,"Button",BS_AUTORADIOBUTTON, + 76,35,50,10 + CONTROL "Mode&rate",OPT_SizeModerate,"Button",BS_AUTORADIOBUTTON, + 76,45,50,10 + CONTROL "Medi&um",OPT_SizeMedium,"Button",BS_AUTORADIOBUTTON,76, + 55,50,10 + CONTROL "Bul&ky",OPT_SizeBulky,"Button",BS_AUTORADIOBUTTON,76,65, + 50,10 + CONTROL "&Large",OPT_SizeLarge,"Button",BS_AUTORADIOBUTTON,140, + 15,50,10 + CONTROL "&Big",OPT_SizeBig,"Button",BS_AUTORADIOBUTTON,140,25,50, + 10 + CONTROL "&Huge",OPT_SizeHuge,"Button",BS_AUTORADIOBUTTON,140,35, + 50,10 + CONTROL "&Giant",OPT_SizeGiant,"Button",BS_AUTORADIOBUTTON,140, + 45,50,10 + CONTROL "&Colossal",OPT_SizeColossal,"Button",BS_AUTORADIOBUTTON, + 140,55,50,10 + CONTROL "Tita&nic",OPT_SizeTitanic,"Button",BS_AUTORADIOBUTTON, + 140,65,50,10 + PUSHBUTTON "Choose...",OPT_ChooseLightSquareColor,144,100,40,15 + PUSHBUTTON "Choose...",OPT_ChooseDarkSquareColor,144,120,40,15 + PUSHBUTTON "Choose...",OPT_ChooseWhitePieceColor,144,140,40,15 + PUSHBUTTON "Choose...",OPT_ChooseBlackPieceColor,144,160,40,15 + PUSHBUTTON "Choose...",OPT_ChooseHighlightSquareColor,144,180,40,15 + PUSHBUTTON "Choose...",OPT_ChoosePremoveHighlightColor,144,200,40, + 15 + PUSHBUTTON "Defaults",OPT_DefaultBoardColors,118,225,65,15 + EDITTEXT OPT_DarkSquareColor,104,120,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT OPT_LightSquareColor,104,100,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT OPT_WhitePieceColor,104,140,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT OPT_BlackPieceColor,104,160,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT OPT_HighlightSquareColor,104,180,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + GROUPBOX "Colors",IDC_STATIC,10,90,185,155 + EDITTEXT OPT_PremoveHighlightColor,104,200,25,15,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + LTEXT "Light Squares",IDC_STATIC,25,105,60,10 + LTEXT "Dark Squares",IDC_STATIC,25,124,60,10 + LTEXT "White Pieces",IDC_STATIC,25,145,60,10 + LTEXT "Black Pieces",IDC_STATIC,25,165,60,10 + LTEXT "Square Highlights",IDC_STATIC,25,185,60,10 + LTEXT "Premove Highlights",IDC_STATIC,25,205,70,10 + GROUPBOX "Size",IDC_STATIC,10,5,185,75 + CONTROL "Monochrome",OPT_Monochrome,"Button",BS_AUTOCHECKBOX | + WS_TABSTOP,25,225,75,10 + EDITTEXT OPT_SampleLightSquare,205,110,39,36,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP + EDITTEXT OPT_SampleDarkSquare,205,165,39,36,ES_READONLY | + WS_DISABLED | NOT WS_BORDER | NOT WS_TABSTOP +END + +DLG_Fonts DIALOG DISCARDABLE 0, 0, 280, 231 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Fonts" +FONT 8, "MS Sans Serif" +BEGIN + DEFPUSHBUTTON "OK",IDOK,155,210,50,14 + PUSHBUTTON "Cancel",IDCANCEL,215,210,50,14 + PUSHBUTTON "Choose...",OPT_ChooseClockFont,221,17,45,15 + PUSHBUTTON "Choose...",OPT_ChooseMessageFont,221,47,45,15 + PUSHBUTTON "Choose...",OPT_ChooseCoordFont,221,77,45,15 + PUSHBUTTON "Choose...",OPT_ChooseTagFont,221,120,45,15 + PUSHBUTTON "Choose...",OPT_ChooseCommentsFont,221,150,45,15 + PUSHBUTTON "Choose...",OPT_ChooseConsoleFont,221,180,45,15 + PUSHBUTTON "&Revert to Defaults",OPT_DefaultFonts,15,210,80,15 + CONTROL "",OPT_SampleCoordFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,72,140,20 + CONTROL "",OPT_SampleTagFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,115,140,20 + CONTROL "",OPT_SampleCommentsFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,145,140,20 + CONTROL "",OPT_SampleConsoleFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,175,140,20 + LTEXT "Clocks",OPT_ClockFont,16,17,45,10,NOT WS_GROUP + LTEXT "Messages",OPT_MessageFont,16,47,45,10,NOT WS_GROUP + LTEXT "Coordinates",OPT_CoordFont,16,77,45,10,NOT WS_GROUP + LTEXT "Tags",OPT_EditTagsFont,16,120,45,10,NOT WS_GROUP + LTEXT "Comments",OPT_CommentsFont,16,150,45,10,NOT WS_GROUP + LTEXT "ICS Interaction",OPT_MessageFont5,16,180,50,10,NOT + WS_GROUP + CONTROL "",OPT_SampleClockFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,12,140,20 + CONTROL "",OPT_SampleMessageFont,"RICHEDIT",ES_READONLY | + WS_DISABLED | WS_BORDER,70,42,140,20 + GROUPBOX "Current Board Size",IDC_STATIC,5,2,270,100 + GROUPBOX "All Board Sizes",IDC_STATIC,5,105,270,100 +END + + +///////////////////////////////////////////////////////////////////////////// +// +// DESIGNINFO +// + +#ifdef APSTUDIO_INVOKED +GUIDELINES DESIGNINFO DISCARDABLE +BEGIN + DLG_GeneralOptions, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 264 + TOPMARGIN, 7 + BOTTOMMARGIN, 128 + END + + DLG_IcsOptions, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 311 + TOPMARGIN, 7 + BOTTOMMARGIN, 264 + END + + DLG_BoardOptions, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 255 + TOPMARGIN, 7 + BOTTOMMARGIN, 243 + END + + DLG_Fonts, DIALOG + BEGIN + LEFTMARGIN, 7 + RIGHTMARGIN, 273 + TOPMARGIN, 7 + BOTTOMMARGIN, 224 + END +END +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +ICON_BLACK ICON DISCARDABLE "bitmaps\\icon_ob.ico" +ICON_BOARD ICON DISCARDABLE "bitmaps\\board.ico" +ICON_WHITE ICON DISCARDABLE "bitmaps\\icon_whi.ico" + +///////////////////////////////////////////////////////////////////////////// +// +// Menu +// + +WINBOARD MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "Reset &Game", IDM_NewGame + MENUITEM SEPARATOR + MENUITEM "&Load Game...", IDM_LoadGame + MENUITEM "Load &Next Game\tAlt+PgDn", IDM_LoadNextGame + MENUITEM "Load &Previous Game\tAlt+PgUp", IDM_LoadPrevGame + MENUITEM "&Reload Same Game", IDM_ReloadGame + MENUITEM "&Save Game...", IDM_SaveGame + MENUITEM SEPARATOR + MENUITEM "&Copy Game To Clipboard\tAlt+C", IDM_CopyGame + MENUITEM "Paste Game &From Clipboard\tAlt+V", IDM_PasteGame + MENUITEM SEPARATOR + MENUITEM "L&oad Position...", IDM_LoadPosition + MENUITEM "Load N&ext Position\tAlt+Shift+PgDn", IDM_LoadNextPosition + MENUITEM "Load Pre&vious Position\tAlt+Shift+PgUp", + IDM_LoadPrevPosition + MENUITEM "Reload Sa&me Position", IDM_ReloadPosition + MENUITEM "S&ave Position...", IDM_SavePosition + MENUITEM SEPARATOR + MENUITEM "Cop&y Position To Clipboard\tAlt+Shift+C", + IDM_CopyPosition + MENUITEM "Pas&te Position From Clipboard\tAlt+Shift+V", + IDM_PastePosition + MENUITEM SEPARATOR + MENUITEM "E&xit", IDM_Exit + END + POPUP "&Mode" + BEGIN + MENUITEM "Machine &White", IDM_MachineWhite + MENUITEM "Machine &Black", IDM_MachineBlack + MENUITEM "Two &Machines", IDM_TwoMachines + MENUITEM "&Analysis Mode", IDM_AnalysisMode + MENUITEM "Analyze &File", IDM_AnalyzeFile + MENUITEM "&ICS Client", IDM_IcsClient + MENUITEM "Edit &Game", IDM_EditGame + MENUITEM "&Edit Position", IDM_EditPosition + MENUITEM "Trai&ning", IDM_Training, GRAYED + MENUITEM SEPARATOR + MENUITEM "Show Game &List...", IDM_ShowGameList + MENUITEM "Edit &Tags...", IDM_EditTags + MENUITEM "Edit &Comment...", IDM_EditComment + MENUITEM "&Pause\tPause", IDM_Pause + END + POPUP "&Action" + BEGIN + MENUITEM "&Accept\tF3", IDM_Accept + MENUITEM "D&ecline\tF4", IDM_Decline + MENUITEM "Re&match\tF12", IDM_Rematch + MENUITEM SEPARATOR + MENUITEM "Call &Flag\tF5", IDM_CallFlag + MENUITEM "&Draw\tF6", IDM_Draw + MENUITEM "Ad&journ\tF7", IDM_Adjourn + MENUITEM "A&bort\tF8", IDM_Abort + MENUITEM "&Resign\tF9", IDM_Resign + MENUITEM SEPARATOR + MENUITEM "Stop &Observing\tF10", IDM_StopObserving + MENUITEM "Stop E&xamining\tF11", IDM_StopExamining + END + POPUP "&Step" + BEGIN + MENUITEM "T&ype In Move...", IDM_TypeInMove + MENUITEM SEPARATOR + MENUITEM "&Backward\tAlt+Left", IDM_Backward + MENUITEM "&Forward\tAlt+Right", IDM_Forward + MENUITEM "Back to &Start\tAlt+Up", IDM_ToStart + MENUITEM "Forward to &End\tAlt+Down", IDM_ToEnd + MENUITEM "Re&vert\tAlt+Home", IDM_Revert + MENUITEM "&Truncate Game\tAlt+End", IDM_TruncateGame + MENUITEM SEPARATOR + MENUITEM "&Move Now\tAlt+Ins", IDM_MoveNow + MENUITEM "&Retract Move\tAlt+Del", IDM_RetractMove + END + POPUP "&Options" + BEGIN + MENUITEM "Flip &View\tF2", IDM_FlipView + MENUITEM SEPARATOR + MENUITEM "&General...", IDM_GeneralOptions + MENUITEM "&Board...", IDM_BoardOptions + MENUITEM "&ICS...", IDM_IcsOptions, GRAYED + MENUITEM "&Fonts...", IDM_Fonts + MENUITEM "Soun&ds...", IDM_Sounds + MENUITEM SEPARATOR + MENUITEM "Comm&unications...", IDM_CommPort + MENUITEM "&Load Game...", IDM_LoadOptions + MENUITEM "&Save Game...", IDM_SaveOptions + MENUITEM "&Time Control...", IDM_TimeControl + MENUITEM SEPARATOR + MENUITEM "Save Settings &Now", IDM_SaveSettings + MENUITEM "Save Settings on E&xit", IDM_SaveSettingsOnExit + END + POPUP "&Help" + BEGIN + MENUITEM "Help &Contents\tF1", IDM_HELPCONTENTS + MENUITEM "Help &Index", IDM_HELPSEARCH + MENUITEM "How to &Use Help", IDM_HELPHELP + MENUITEM SEPARATOR + MENUITEM "&Hint...", IDM_Hint + MENUITEM "&Book...", IDM_Book + MENUITEM SEPARATOR + MENUITEM "&About WinBoard", IDM_ABOUT + END +END + +PIECEMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "White", EP_White + MENUITEM SEPARATOR + MENUITEM "Pawn", EP_WhitePawn + MENUITEM "Knight", EP_WhiteKnight + MENUITEM "Bishop", EP_WhiteBishop + MENUITEM "Rook", EP_WhiteRook + MENUITEM "Queen", EP_WhiteQueen + MENUITEM "King", EP_WhiteKing + MENUITEM SEPARATOR + MENUITEM "Empty Square", EP_EmptySquare + MENUITEM "Black", EP_Black, MENUBARBREAK + MENUITEM SEPARATOR + MENUITEM "Pawn", EP_BlackPawn + MENUITEM "Knight", EP_BlackKnight + MENUITEM "Bishop", EP_BlackBishop + MENUITEM "Rook", EP_BlackRook + MENUITEM "Queen", EP_BlackQueen + MENUITEM "King", EP_BlackKing + MENUITEM SEPARATOR + MENUITEM "Clear Board ", EP_ClearBoard + END +END + +WHITEPIECEMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "White", EP_White + MENUITEM SEPARATOR + MENUITEM "Pawn", EP_WhitePawn + MENUITEM "Knight", EP_WhiteKnight + MENUITEM "Bishop", EP_WhiteBishop + MENUITEM "Rook", EP_WhiteRook + MENUITEM "Queen", EP_WhiteQueen + MENUITEM "King", EP_WhiteKing + MENUITEM SEPARATOR + MENUITEM "Empty Square", EP_EmptySquare + MENUITEM "Clear Board", EP_ClearBoard + END +END + +BLACKPIECEMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "Black", EP_Black + MENUITEM SEPARATOR + MENUITEM "Pawn", EP_BlackPawn + MENUITEM "Knight", EP_BlackKnight + MENUITEM "Bishop", EP_BlackBishop + MENUITEM "Rook", EP_BlackRook + MENUITEM "Queen", EP_BlackQueen + MENUITEM "King", EP_BlackKing + MENUITEM SEPARATOR + MENUITEM "Empty Square", EP_EmptySquare + MENUITEM "Clear Board", EP_ClearBoard + END +END + +DROPPIECEMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "Drop", 0, INACTIVE + MENUITEM SEPARATOR + MENUITEM "Pawn", DP_Pawn + MENUITEM "Knight", DP_Knight + MENUITEM "Bishop", DP_Bishop + MENUITEM "Rook", DP_Rook + MENUITEM "Queen", DP_Queen + END +END + +TEXTMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "Cop&y and Paste", IDM_QuickPaste + MENUITEM "&Copy", IDM_Copy + MENUITEM "&Paste", IDM_Paste + END +END + +INPUTMENU MENU DISCARDABLE +BEGIN + POPUP "" + BEGIN + MENUITEM "&Undo", IDM_Undo + MENUITEM SEPARATOR + MENUITEM "Cu&t", IDM_Cut + MENUITEM "&Copy", IDM_Copy + MENUITEM "&Paste", IDM_Paste + MENUITEM SEPARATOR + MENUITEM "Select &All", IDM_SelectAll + END +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Accelerator +// + +WINBOARD ACCELERATORS MOVEABLE PURE +BEGIN + "1", IDM_DirectCommand1, VIRTKEY, ALT, NOINVERT + "2", IDM_DirectCommand2, VIRTKEY, ALT, NOINVERT + "C", IDM_CopyGame, VIRTKEY, ALT, NOINVERT + "C", IDM_CopyPosition, VIRTKEY, SHIFT, ALT, + NOINVERT + "V", IDM_PasteGame, VIRTKEY, ALT, NOINVERT + "V", IDM_PastePosition, VIRTKEY, SHIFT, ALT, + NOINVERT + VK_DELETE, IDM_RetractMove, VIRTKEY, ALT, NOINVERT + VK_DOWN, IDM_ToEnd, VIRTKEY, ALT, NOINVERT + VK_END, IDM_TruncateGame, VIRTKEY, ALT, NOINVERT + VK_F1, IDM_HELPCONTENTS, VIRTKEY, NOINVERT + VK_F10, IDM_StopObserving, VIRTKEY, NOINVERT + VK_F11, IDM_StopExamining, VIRTKEY, NOINVERT + VK_F12, IDM_Rematch, VIRTKEY, NOINVERT + VK_F12, IDM_Debug, VIRTKEY, CONTROL, ALT, NOINVERT + VK_F2, IDM_FlipView, VIRTKEY, NOINVERT + VK_F3, IDM_Accept, VIRTKEY, NOINVERT + VK_F4, IDM_Decline, VIRTKEY, NOINVERT + VK_F4, IDM_Minimize, VIRTKEY, CONTROL, NOINVERT + VK_F5, IDM_CallFlag, VIRTKEY, NOINVERT + VK_F6, IDM_Draw, VIRTKEY, NOINVERT + VK_F7, IDM_Adjourn, VIRTKEY, NOINVERT + VK_F8, IDM_Abort, VIRTKEY, NOINVERT + VK_F9, IDM_Resign, VIRTKEY, NOINVERT + VK_HOME, IDM_Revert, VIRTKEY, ALT, NOINVERT + VK_INSERT, IDM_MoveNow, VIRTKEY, ALT, NOINVERT + VK_LEFT, IDM_Backward, VIRTKEY, ALT, NOINVERT + VK_NEXT, IDM_LoadNextGame, VIRTKEY, ALT, NOINVERT + VK_NEXT, IDM_LoadNextPosition, VIRTKEY, SHIFT, ALT, NOINVERT + VK_PAUSE, IDM_Pause, VIRTKEY, NOINVERT + VK_PAUSE, IDM_Pause, VIRTKEY, ALT, NOINVERT + VK_PRIOR, IDM_LoadPrevGame, VIRTKEY, ALT, NOINVERT + VK_PRIOR, IDM_LoadPrevPosition, VIRTKEY, SHIFT, ALT, NOINVERT + VK_RIGHT, IDM_Forward, VIRTKEY, ALT, NOINVERT + VK_UP, IDM_ToStart, VIRTKEY, ALT, NOINVERT +END + +NO_ALT ACCELERATORS MOVEABLE PURE +BEGIN + VK_DELETE, IDM_RetractMove, VIRTKEY, NOINVERT + VK_DOWN, IDM_ToEnd, VIRTKEY, NOINVERT + VK_END, IDM_TruncateGame, VIRTKEY, NOINVERT + VK_HOME, IDM_Revert, VIRTKEY, NOINVERT + VK_INSERT, IDM_MoveNow, VIRTKEY, NOINVERT + VK_LEFT, IDM_Backward, VIRTKEY, NOINVERT + VK_NEXT, IDM_LoadNextGame, VIRTKEY, NOINVERT + VK_NEXT, IDM_LoadNextPosition, VIRTKEY, SHIFT, NOINVERT + VK_PRIOR, IDM_LoadPrevGame, VIRTKEY, NOINVERT + VK_PRIOR, IDM_LoadPrevPosition, VIRTKEY, SHIFT, NOINVERT + VK_RIGHT, IDM_Forward, VIRTKEY, NOINVERT + VK_UP, IDM_ToStart, VIRTKEY, NOINVERT +END + + +///////////////////////////////////////////////////////////////////////////// +// +// Bitmap +// + +P21O BITMAP MOVEABLE PURE "bitmaps\\P21o.bmp" +N21O BITMAP MOVEABLE PURE "bitmaps\\N21o.bmp" +B21O BITMAP MOVEABLE PURE "bitmaps\\B21o.bmp" +R21O BITMAP MOVEABLE PURE "bitmaps\\R21o.bmp" +K21O BITMAP MOVEABLE PURE "bitmaps\\K21o.bmp" +Q21O BITMAP MOVEABLE PURE "bitmaps\\Q21o.bmp" +P21S BITMAP MOVEABLE PURE "bitmaps\\P21s.bmp" +N21S BITMAP MOVEABLE PURE "bitmaps\\N21s.bmp" +B21S BITMAP MOVEABLE PURE "bitmaps\\B21s.bmp" +R21S BITMAP MOVEABLE PURE "bitmaps\\R21s.bmp" +Q21S BITMAP MOVEABLE PURE "bitmaps\\Q21s.bmp" +K21S BITMAP MOVEABLE PURE "bitmaps\\K21s.bmp" +P21W BITMAP MOVEABLE PURE "bitmaps\\P21w.bmp" +N21W BITMAP MOVEABLE PURE "bitmaps\\N21w.bmp" +B21W BITMAP MOVEABLE PURE "bitmaps\\B21w.bmp" +R21W BITMAP MOVEABLE PURE "bitmaps\\R21w.bmp" +Q21W BITMAP MOVEABLE PURE "bitmaps\\Q21w.bmp" +K21W BITMAP MOVEABLE PURE "bitmaps\\K21w.bmp" +P25O BITMAP MOVEABLE PURE "bitmaps\\P25o.bmp" +N25O BITMAP MOVEABLE PURE "bitmaps\\N25o.bmp" +B25O BITMAP MOVEABLE PURE "bitmaps\\B25o.bmp" +R25O BITMAP MOVEABLE PURE "bitmaps\\R25o.bmp" +Q25O BITMAP MOVEABLE PURE "bitmaps\\Q25o.bmp" +K25O BITMAP MOVEABLE PURE "bitmaps\\K25o.bmp" +P25S BITMAP MOVEABLE PURE "bitmaps\\P25s.bmp" +N25S BITMAP MOVEABLE PURE "bitmaps\\N25s.bmp" +B25S BITMAP MOVEABLE PURE "bitmaps\\B25s.bmp" +R25S BITMAP MOVEABLE PURE "bitmaps\\R25s.bmp" +Q25S BITMAP MOVEABLE PURE "bitmaps\\Q25s.bmp" +K25S BITMAP MOVEABLE PURE "bitmaps\\K25s.bmp" +P25W BITMAP MOVEABLE PURE "bitmaps\\P25w.bmp" +N25W BITMAP MOVEABLE PURE "bitmaps\\N25w.bmp" +B25W BITMAP MOVEABLE PURE "bitmaps\\B25w.bmp" +R25W BITMAP MOVEABLE PURE "bitmaps\\R25w.bmp" +Q25W BITMAP MOVEABLE PURE "bitmaps\\Q25w.bmp" +K25W BITMAP MOVEABLE PURE "bitmaps\\K25w.bmp" +P29O BITMAP MOVEABLE PURE "bitmaps\\P29o.bmp" +N29O BITMAP MOVEABLE PURE "bitmaps\\N29o.bmp" +B29O BITMAP MOVEABLE PURE "bitmaps\\B29o.bmp" +R29O BITMAP MOVEABLE PURE "bitmaps\\R29o.bmp" +Q29O BITMAP MOVEABLE PURE "bitmaps\\Q29o.bmp" +K29O BITMAP MOVEABLE PURE "bitmaps\\K29o.bmp" +P29S BITMAP MOVEABLE PURE "bitmaps\\P29s.bmp" +N29S BITMAP MOVEABLE PURE "bitmaps\\N29s.bmp" +B29S BITMAP MOVEABLE PURE "bitmaps\\B29s.bmp" +R29S BITMAP MOVEABLE PURE "bitmaps\\R29s.bmp" +Q29S BITMAP MOVEABLE PURE "bitmaps\\Q29s.bmp" +K29S BITMAP MOVEABLE PURE "bitmaps\\K29s.bmp" +P29W BITMAP MOVEABLE PURE "bitmaps\\P29w.bmp" +N29W BITMAP MOVEABLE PURE "bitmaps\\N29w.bmp" +B29W BITMAP MOVEABLE PURE "bitmaps\\B29w.bmp" +R29W BITMAP MOVEABLE PURE "bitmaps\\R29w.bmp" +Q29W BITMAP MOVEABLE PURE "bitmaps\\Q29w.bmp" +K29W BITMAP MOVEABLE PURE "bitmaps\\K29w.bmp" +P33O BITMAP MOVEABLE PURE "bitmaps\\P33o.bmp" +N33O BITMAP MOVEABLE PURE "bitmaps\\N33o.bmp" +B33O BITMAP MOVEABLE PURE "bitmaps\\B33o.bmp" +R33O BITMAP MOVEABLE PURE "bitmaps\\R33o.bmp" +Q33O BITMAP MOVEABLE PURE "bitmaps\\Q33o.bmp" +K33O BITMAP MOVEABLE PURE "bitmaps\\K33o.bmp" +P33S BITMAP MOVEABLE PURE "bitmaps\\P33s.bmp" +N33S BITMAP MOVEABLE PURE "bitmaps\\N33s.bmp" +B33S BITMAP MOVEABLE PURE "bitmaps\\B33s.bmp" +R33S BITMAP MOVEABLE PURE "bitmaps\\R33s.bmp" +Q33S BITMAP MOVEABLE PURE "bitmaps\\Q33s.bmp" +K33S BITMAP MOVEABLE PURE "bitmaps\\K33s.bmp" +P33W BITMAP MOVEABLE PURE "bitmaps\\P33w.bmp" +N33W BITMAP MOVEABLE PURE "bitmaps\\N33w.bmp" +B33W BITMAP MOVEABLE PURE "bitmaps\\B33w.bmp" +R33W BITMAP MOVEABLE PURE "bitmaps\\R33w.bmp" +Q33W BITMAP MOVEABLE PURE "bitmaps\\Q33w.bmp" +K33W BITMAP MOVEABLE PURE "bitmaps\\K33w.bmp" +P37O BITMAP MOVEABLE PURE "bitmaps\\P37o.bmp" +N37O BITMAP MOVEABLE PURE "bitmaps\\N37o.bmp" +B37O BITMAP MOVEABLE PURE "bitmaps\\B37o.bmp" +R37O BITMAP MOVEABLE PURE "bitmaps\\R37o.bmp" +Q37O BITMAP MOVEABLE PURE "bitmaps\\Q37o.bmp" +K37O BITMAP MOVEABLE PURE "bitmaps\\K37o.bmp" +P37S BITMAP MOVEABLE PURE "bitmaps\\P37s.bmp" +N37S BITMAP MOVEABLE PURE "bitmaps\\N37s.bmp" +B37S BITMAP MOVEABLE PURE "bitmaps\\B37s.bmp" +R37S BITMAP MOVEABLE PURE "bitmaps\\R37s.bmp" +Q37S BITMAP MOVEABLE PURE "bitmaps\\Q37s.bmp" +K37S BITMAP MOVEABLE PURE "bitmaps\\K37s.bmp" +P37W BITMAP MOVEABLE PURE "bitmaps\\P37w.bmp" +N37W BITMAP MOVEABLE PURE "bitmaps\\N37w.bmp" +B37W BITMAP MOVEABLE PURE "bitmaps\\B37w.bmp" +R37W BITMAP MOVEABLE PURE "bitmaps\\R37w.bmp" +Q37W BITMAP MOVEABLE PURE "bitmaps\\Q37w.bmp" +K37W BITMAP MOVEABLE PURE "bitmaps\\K37w.bmp" +P40O BITMAP MOVEABLE PURE "bitmaps\\P40o.bmp" +N40O BITMAP MOVEABLE PURE "bitmaps\\N40o.bmp" +B40O BITMAP MOVEABLE PURE "bitmaps\\B40o.bmp" +R40O BITMAP MOVEABLE PURE "bitmaps\\R40o.bmp" +Q40O BITMAP MOVEABLE PURE "bitmaps\\Q40o.bmp" +K40O BITMAP MOVEABLE PURE "bitmaps\\K40o.bmp" +P40S BITMAP MOVEABLE PURE "bitmaps\\P40s.bmp" +N40S BITMAP MOVEABLE PURE "bitmaps\\N40s.bmp" +B40S BITMAP MOVEABLE PURE "bitmaps\\B40s.bmp" +R40S BITMAP MOVEABLE PURE "bitmaps\\R40s.bmp" +Q40S BITMAP MOVEABLE PURE "bitmaps\\Q40s.bmp" +K40S BITMAP MOVEABLE PURE "bitmaps\\K40s.bmp" +P40W BITMAP MOVEABLE PURE "bitmaps\\P40w.bmp" +N40W BITMAP MOVEABLE PURE "bitmaps\\N40w.bmp" +B40W BITMAP MOVEABLE PURE "bitmaps\\B40w.bmp" +R40W BITMAP MOVEABLE PURE "bitmaps\\R40w.bmp" +Q40W BITMAP MOVEABLE PURE "bitmaps\\Q40w.bmp" +K40W BITMAP MOVEABLE PURE "bitmaps\\K40w.bmp" +P45O BITMAP MOVEABLE PURE "bitmaps\\P45o.bmp" +N45O BITMAP MOVEABLE PURE "bitmaps\\N45o.bmp" +B45O BITMAP MOVEABLE PURE "bitmaps\\B45o.bmp" +R45O BITMAP MOVEABLE PURE "bitmaps\\R45o.bmp" +Q45O BITMAP MOVEABLE PURE "bitmaps\\Q45o.bmp" +K45O BITMAP MOVEABLE PURE "bitmaps\\K45o.bmp" +P45S BITMAP MOVEABLE PURE "bitmaps\\P45s.bmp" +N45S BITMAP MOVEABLE PURE "bitmaps\\N45s.bmp" +B45S BITMAP MOVEABLE PURE "bitmaps\\B45s.bmp" +R45S BITMAP MOVEABLE PURE "bitmaps\\R45s.bmp" +Q45S BITMAP MOVEABLE PURE "bitmaps\\Q45s.bmp" +K45S BITMAP MOVEABLE PURE "bitmaps\\K45s.bmp" +P45W BITMAP MOVEABLE PURE "bitmaps\\P45w.bmp" +N45W BITMAP MOVEABLE PURE "bitmaps\\N45w.bmp" +B45W BITMAP MOVEABLE PURE "bitmaps\\B45w.bmp" +R45W BITMAP MOVEABLE PURE "bitmaps\\R45w.bmp" +Q45W BITMAP MOVEABLE PURE "bitmaps\\Q45w.bmp" +K45W BITMAP MOVEABLE PURE "bitmaps\\K45w.bmp" +P49O BITMAP MOVEABLE PURE "bitmaps\\P49o.bmp" +N49O BITMAP MOVEABLE PURE "bitmaps\\N49o.bmp" +B49O BITMAP MOVEABLE PURE "bitmaps\\B49o.bmp" +R49O BITMAP MOVEABLE PURE "bitmaps\\R49o.bmp" +Q49O BITMAP MOVEABLE PURE "bitmaps\\Q49o.bmp" +K49O BITMAP MOVEABLE PURE "bitmaps\\K49o.bmp" +P49S BITMAP MOVEABLE PURE "bitmaps\\P49s.bmp" +N49S BITMAP MOVEABLE PURE "bitmaps\\N49s.bmp" +B49S BITMAP MOVEABLE PURE "bitmaps\\B49s.bmp" +R49S BITMAP MOVEABLE PURE "bitmaps\\R49s.bmp" +Q49S BITMAP MOVEABLE PURE "bitmaps\\Q49s.bmp" +K49S BITMAP MOVEABLE PURE "bitmaps\\K49s.bmp" +P49W BITMAP MOVEABLE PURE "bitmaps\\P49w.bmp" +N49W BITMAP MOVEABLE PURE "bitmaps\\N49w.bmp" +B49W BITMAP MOVEABLE PURE "bitmaps\\B49w.bmp" +R49W BITMAP MOVEABLE PURE "bitmaps\\R49w.bmp" +Q49W BITMAP MOVEABLE PURE "bitmaps\\Q49w.bmp" +K49W BITMAP MOVEABLE PURE "bitmaps\\K49w.bmp" +P54O BITMAP MOVEABLE PURE "bitmaps\\P54o.bmp" +N54O BITMAP MOVEABLE PURE "bitmaps\\N54o.bmp" +B54O BITMAP MOVEABLE PURE "bitmaps\\B54o.bmp" +R54O BITMAP MOVEABLE PURE "bitmaps\\R54o.bmp" +Q54O BITMAP MOVEABLE PURE "bitmaps\\Q54o.bmp" +K54O BITMAP MOVEABLE PURE "bitmaps\\K54o.bmp" +P54S BITMAP MOVEABLE PURE "bitmaps\\P54s.bmp" +N54S BITMAP MOVEABLE PURE "bitmaps\\N54s.bmp" +B54S BITMAP MOVEABLE PURE "bitmaps\\B54s.bmp" +R54S BITMAP MOVEABLE PURE "bitmaps\\R54s.bmp" +Q54S BITMAP MOVEABLE PURE "bitmaps\\Q54s.bmp" +K54S BITMAP MOVEABLE PURE "bitmaps\\K54s.bmp" +P54W BITMAP MOVEABLE PURE "bitmaps\\P54w.bmp" +N54W BITMAP MOVEABLE PURE "bitmaps\\N54w.bmp" +B54W BITMAP MOVEABLE PURE "bitmaps\\B54w.bmp" +R54W BITMAP MOVEABLE PURE "bitmaps\\R54w.bmp" +Q54W BITMAP MOVEABLE PURE "bitmaps\\Q54w.bmp" +K54W BITMAP MOVEABLE PURE "bitmaps\\K54w.bmp" +P58O BITMAP MOVEABLE PURE "bitmaps\\P58o.bmp" +N58O BITMAP MOVEABLE PURE "bitmaps\\N58o.bmp" +B58O BITMAP MOVEABLE PURE "bitmaps\\B58o.bmp" +R58O BITMAP MOVEABLE PURE "bitmaps\\R58o.bmp" +Q58O BITMAP MOVEABLE PURE "bitmaps\\Q58o.bmp" +K58O BITMAP MOVEABLE PURE "bitmaps\\K58o.bmp" +P58S BITMAP MOVEABLE PURE "bitmaps\\P58s.bmp" +N58S BITMAP MOVEABLE PURE "bitmaps\\N58s.bmp" +B58S BITMAP MOVEABLE PURE "bitmaps\\B58s.bmp" +R58S BITMAP MOVEABLE PURE "bitmaps\\R58s.bmp" +Q58S BITMAP MOVEABLE PURE "bitmaps\\Q58s.bmp" +K58S BITMAP MOVEABLE PURE "bitmaps\\K58s.bmp" +P58W BITMAP MOVEABLE PURE "bitmaps\\P58w.bmp" +N58W BITMAP MOVEABLE PURE "bitmaps\\N58w.bmp" +B58W BITMAP MOVEABLE PURE "bitmaps\\B58w.bmp" +R58W BITMAP MOVEABLE PURE "bitmaps\\R58w.bmp" +Q58W BITMAP MOVEABLE PURE "bitmaps\\Q58w.bmp" +K58W BITMAP MOVEABLE PURE "bitmaps\\K58w.bmp" +P64O BITMAP MOVEABLE PURE "bitmaps\\P64o.bmp" +N64O BITMAP MOVEABLE PURE "bitmaps\\N64o.bmp" +B64O BITMAP MOVEABLE PURE "bitmaps\\B64o.bmp" +R64O BITMAP MOVEABLE PURE "bitmaps\\R64o.bmp" +Q64O BITMAP MOVEABLE PURE "bitmaps\\Q64o.bmp" +K64O BITMAP MOVEABLE PURE "bitmaps\\K64o.bmp" +P64S BITMAP MOVEABLE PURE "bitmaps\\P64s.bmp" +N64S BITMAP MOVEABLE PURE "bitmaps\\N64s.bmp" +B64S BITMAP MOVEABLE PURE "bitmaps\\B64s.bmp" +R64S BITMAP MOVEABLE PURE "bitmaps\\R64s.bmp" +Q64S BITMAP MOVEABLE PURE "bitmaps\\Q64s.bmp" +K64S BITMAP MOVEABLE PURE "bitmaps\\K64s.bmp" +P64W BITMAP MOVEABLE PURE "bitmaps\\P64w.bmp" +N64W BITMAP MOVEABLE PURE "bitmaps\\N64w.bmp" +B64W BITMAP MOVEABLE PURE "bitmaps\\B64w.bmp" +R64W BITMAP MOVEABLE PURE "bitmaps\\R64w.bmp" +Q64W BITMAP MOVEABLE PURE "bitmaps\\Q64w.bmp" +K64W BITMAP MOVEABLE PURE "bitmaps\\K64w.bmp" +P72O BITMAP MOVEABLE PURE "bitmaps\\P72o.bmp" +N72O BITMAP MOVEABLE PURE "bitmaps\\N72o.bmp" +B72O BITMAP MOVEABLE PURE "bitmaps\\B72o.bmp" +R72O BITMAP MOVEABLE PURE "bitmaps\\R72o.bmp" +Q72O BITMAP MOVEABLE PURE "bitmaps\\Q72o.bmp" +K72O BITMAP MOVEABLE PURE "bitmaps\\K72o.bmp" +P72S BITMAP MOVEABLE PURE "bitmaps\\P72s.bmp" +N72S BITMAP MOVEABLE PURE "bitmaps\\N72s.bmp" +B72S BITMAP MOVEABLE PURE "bitmaps\\B72s.bmp" +R72S BITMAP MOVEABLE PURE "bitmaps\\R72s.bmp" +Q72S BITMAP MOVEABLE PURE "bitmaps\\Q72s.bmp" +K72S BITMAP MOVEABLE PURE "bitmaps\\K72s.bmp" +P72W BITMAP MOVEABLE PURE "bitmaps\\P72w.bmp" +N72W BITMAP MOVEABLE PURE "bitmaps\\N72w.bmp" +B72W BITMAP MOVEABLE PURE "bitmaps\\B72w.bmp" +R72W BITMAP MOVEABLE PURE "bitmaps\\R72w.bmp" +Q72W BITMAP MOVEABLE PURE "bitmaps\\Q72w.bmp" +K72W BITMAP MOVEABLE PURE "bitmaps\\K72w.bmp" +P80O BITMAP MOVEABLE PURE "bitmaps\\P80o.bmp" +N80O BITMAP MOVEABLE PURE "bitmaps\\N80o.bmp" +B80O BITMAP MOVEABLE PURE "bitmaps\\B80o.bmp" +R80O BITMAP MOVEABLE PURE "bitmaps\\R80o.bmp" +Q80O BITMAP MOVEABLE PURE "bitmaps\\Q80o.bmp" +K80O BITMAP MOVEABLE PURE "bitmaps\\K80o.bmp" +P80S BITMAP MOVEABLE PURE "bitmaps\\P80s.bmp" +N80S BITMAP MOVEABLE PURE "bitmaps\\N80s.bmp" +B80S BITMAP MOVEABLE PURE "bitmaps\\B80s.bmp" +R80S BITMAP MOVEABLE PURE "bitmaps\\R80s.bmp" +Q80S BITMAP MOVEABLE PURE "bitmaps\\Q80s.bmp" +K80S BITMAP MOVEABLE PURE "bitmaps\\K80s.bmp" +P80W BITMAP MOVEABLE PURE "bitmaps\\P80w.bmp" +N80W BITMAP MOVEABLE PURE "bitmaps\\N80w.bmp" +B80W BITMAP MOVEABLE PURE "bitmaps\\B80w.bmp" +R80W BITMAP MOVEABLE PURE "bitmaps\\R80w.bmp" +Q80W BITMAP MOVEABLE PURE "bitmaps\\Q80w.bmp" +K80W BITMAP MOVEABLE PURE "bitmaps\\K80w.bmp" +P87O BITMAP MOVEABLE PURE "bitmaps\\P87o.bmp" +N87O BITMAP MOVEABLE PURE "bitmaps\\N87o.bmp" +B87O BITMAP MOVEABLE PURE "bitmaps\\B87o.bmp" +R87O BITMAP MOVEABLE PURE "bitmaps\\R87o.bmp" +Q87O BITMAP MOVEABLE PURE "bitmaps\\Q87o.bmp" +K87O BITMAP MOVEABLE PURE "bitmaps\\K87o.bmp" +P87S BITMAP MOVEABLE PURE "bitmaps\\P87s.bmp" +N87S BITMAP MOVEABLE PURE "bitmaps\\N87s.bmp" +B87S BITMAP MOVEABLE PURE "bitmaps\\B87s.bmp" +R87S BITMAP MOVEABLE PURE "bitmaps\\R87s.bmp" +Q87S BITMAP MOVEABLE PURE "bitmaps\\Q87s.bmp" +K87S BITMAP MOVEABLE PURE "bitmaps\\K87s.bmp" +P87W BITMAP MOVEABLE PURE "bitmaps\\P87w.bmp" +N87W BITMAP MOVEABLE PURE "bitmaps\\N87w.bmp" +B87W BITMAP MOVEABLE PURE "bitmaps\\B87w.bmp" +R87W BITMAP MOVEABLE PURE "bitmaps\\R87w.bmp" +Q87W BITMAP MOVEABLE PURE "bitmaps\\Q87w.bmp" +K87W BITMAP MOVEABLE PURE "bitmaps\\K87w.bmp" +P95O BITMAP MOVEABLE PURE "bitmaps\\P95o.bmp" +N95O BITMAP MOVEABLE PURE "bitmaps\\N95o.bmp" +B95O BITMAP MOVEABLE PURE "bitmaps\\B95o.bmp" +R95O BITMAP MOVEABLE PURE "bitmaps\\R95o.bmp" +Q95O BITMAP MOVEABLE PURE "bitmaps\\Q95o.bmp" +K95O BITMAP MOVEABLE PURE "bitmaps\\K95o.bmp" +P95S BITMAP MOVEABLE PURE "bitmaps\\P95s.bmp" +N95S BITMAP MOVEABLE PURE "bitmaps\\N95s.bmp" +B95S BITMAP MOVEABLE PURE "bitmaps\\B95s.bmp" +R95S BITMAP MOVEABLE PURE "bitmaps\\R95s.bmp" +Q95S BITMAP MOVEABLE PURE "bitmaps\\Q95s.bmp" +K95S BITMAP MOVEABLE PURE "bitmaps\\K95s.bmp" +P95W BITMAP MOVEABLE PURE "bitmaps\\P95w.bmp" +N95W BITMAP MOVEABLE PURE "bitmaps\\N95w.bmp" +B95W BITMAP MOVEABLE PURE "bitmaps\\B95w.bmp" +R95W BITMAP MOVEABLE PURE "bitmaps\\R95w.bmp" +Q95W BITMAP MOVEABLE PURE "bitmaps\\Q95w.bmp" +K95W BITMAP MOVEABLE PURE "bitmaps\\K95w.bmp" +P108O BITMAP MOVEABLE PURE "bitmaps\\P108o.bmp" +N108O BITMAP MOVEABLE PURE "bitmaps\\N108o.bmp" +B108O BITMAP MOVEABLE PURE "bitmaps\\B108o.bmp" +R108O BITMAP MOVEABLE PURE "bitmaps\\R108o.bmp" +Q108O BITMAP MOVEABLE PURE "bitmaps\\Q108o.bmp" +K108O BITMAP MOVEABLE PURE "bitmaps\\K108o.bmp" +P108S BITMAP MOVEABLE PURE "bitmaps\\P108s.bmp" +N108S BITMAP MOVEABLE PURE "bitmaps\\N108s.bmp" +B108S BITMAP MOVEABLE PURE "bitmaps\\B108s.bmp" +R108S BITMAP MOVEABLE PURE "bitmaps\\R108s.bmp" +Q108S BITMAP MOVEABLE PURE "bitmaps\\Q108s.bmp" +K108S BITMAP MOVEABLE PURE "bitmaps\\K108s.bmp" +P108W BITMAP MOVEABLE PURE "bitmaps\\P108w.bmp" +N108W BITMAP MOVEABLE PURE "bitmaps\\N108w.bmp" +B108W BITMAP MOVEABLE PURE "bitmaps\\B108w.bmp" +R108W BITMAP MOVEABLE PURE "bitmaps\\R108w.bmp" +Q108W BITMAP MOVEABLE PURE "bitmaps\\Q108w.bmp" +K108W BITMAP MOVEABLE PURE "bitmaps\\K108w.bmp" +P116O BITMAP MOVEABLE PURE "bitmaps\\P116o.bmp" +N116O BITMAP MOVEABLE PURE "bitmaps\\N116o.bmp" +B116O BITMAP MOVEABLE PURE "bitmaps\\B116o.bmp" +R116O BITMAP MOVEABLE PURE "bitmaps\\R116o.bmp" +Q116O BITMAP MOVEABLE PURE "bitmaps\\Q116o.bmp" +K116O BITMAP MOVEABLE PURE "bitmaps\\K116o.bmp" +P116S BITMAP MOVEABLE PURE "bitmaps\\P116s.bmp" +N116S BITMAP MOVEABLE PURE "bitmaps\\N116s.bmp" +B116S BITMAP MOVEABLE PURE "bitmaps\\B116s.bmp" +R116S BITMAP MOVEABLE PURE "bitmaps\\R116s.bmp" +Q116S BITMAP MOVEABLE PURE "bitmaps\\Q116s.bmp" +K116S BITMAP MOVEABLE PURE "bitmaps\\K116s.bmp" +P116W BITMAP MOVEABLE PURE "bitmaps\\P116w.bmp" +N116W BITMAP MOVEABLE PURE "bitmaps\\N116w.bmp" +B116W BITMAP MOVEABLE PURE "bitmaps\\B116w.bmp" +R116W BITMAP MOVEABLE PURE "bitmaps\\R116w.bmp" +Q116W BITMAP MOVEABLE PURE "bitmaps\\Q116w.bmp" +K116W BITMAP MOVEABLE PURE "bitmaps\\K116w.bmp" +P129O BITMAP MOVEABLE PURE "bitmaps\\P129o.bmp" +N129O BITMAP MOVEABLE PURE "bitmaps\\N129o.bmp" +B129O BITMAP MOVEABLE PURE "bitmaps\\B129o.bmp" +R129O BITMAP MOVEABLE PURE "bitmaps\\R129o.bmp" +Q129O BITMAP MOVEABLE PURE "bitmaps\\Q129o.bmp" +K129O BITMAP MOVEABLE PURE "bitmaps\\K129o.bmp" +P129S BITMAP MOVEABLE PURE "bitmaps\\P129s.bmp" +N129S BITMAP MOVEABLE PURE "bitmaps\\N129s.bmp" +B129S BITMAP MOVEABLE PURE "bitmaps\\B129s.bmp" +R129S BITMAP MOVEABLE PURE "bitmaps\\R129s.bmp" +Q129S BITMAP MOVEABLE PURE "bitmaps\\Q129s.bmp" +K129S BITMAP MOVEABLE PURE "bitmaps\\K129s.bmp" +P129W BITMAP MOVEABLE PURE "bitmaps\\P129w.bmp" +N129W BITMAP MOVEABLE PURE "bitmaps\\N129w.bmp" +B129W BITMAP MOVEABLE PURE "bitmaps\\B129w.bmp" +R129W BITMAP MOVEABLE PURE "bitmaps\\R129w.bmp" +Q129W BITMAP MOVEABLE PURE "bitmaps\\Q129w.bmp" +K129W BITMAP MOVEABLE PURE "bitmaps\\K129w.bmp" +GALACTIC BITMAP MOVEABLE PURE "bitmaps\\galactic.bmp" +TIM BITMAP MOVEABLE PURE "bitmaps\\tim.bmp" + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE DISCARDABLE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE DISCARDABLE +BEGIN + "#define APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""windows.h""\r\n" + "#undef APSTUDIO_HIDDEN_SYMBOLS\r\n" + "#include ""dlgs.h""\r\n" + "\r\n" + "\0" +END + +3 TEXTINCLUDE DISCARDABLE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// WAVE +// + +DING WAVE DISCARDABLE "sounds\\ding1.wav" +CHING WAVE DISCARDABLE "sounds\\ching.wav" +CLICK WAVE DISCARDABLE "sounds\\click.wav" +CYMBAL WAVE DISCARDABLE "sounds\\cymbal.wav" +DRIP WAVE DISCARDABLE "sounds\\drip.wav" +GONG WAVE DISCARDABLE "sounds\\gong.wav" +BEEPBEEP WAVE DISCARDABLE "sounds\\honkhonk.wav" +LASER WAVE DISCARDABLE "sounds\\laser.wav" +PENALTY WAVE DISCARDABLE "sounds\\penalty.wav" +PHONE WAVE DISCARDABLE "sounds\\phone.wav" +POP WAVE DISCARDABLE "sounds\\pop.wav" +POP2 WAVE DISCARDABLE "sounds\\pop2.wav" +SLAP WAVE DISCARDABLE "sounds\\slap.wav" +SQUEAK WAVE DISCARDABLE "sounds\\squeak.wav" +SWISH WAVE DISCARDABLE "sounds\\swish.wav" +THUD WAVE DISCARDABLE "sounds\\thud.wav" +WHIPCRACK WAVE DISCARDABLE "sounds\\whipcrak.wav" +MOVE WAVE DISCARDABLE "sounds\\move.wav" +ALARM WAVE DISCARDABLE "sounds\\alarm.wav" +CHALLENGE WAVE DISCARDABLE "sounds\\challenge.wav" +CHANNEL WAVE DISCARDABLE "sounds\\channel.wav" +CHANNEL1 WAVE DISCARDABLE "sounds\\channel1.wav" +DRAW WAVE DISCARDABLE "sounds\\draw.wav" +KIBITZ WAVE DISCARDABLE "sounds\\kibitz.wav" +LOSE WAVE DISCARDABLE "sounds\\lose.wav" +REQUEST WAVE DISCARDABLE "sounds\\request.wav" +SEEK WAVE DISCARDABLE "sounds\\seek.wav" +SHOUT WAVE DISCARDABLE "sounds\\shout.wav" +SSHOUT WAVE DISCARDABLE "sounds\\sshout.wav" +TELL WAVE DISCARDABLE "sounds\\tell.wav" +UNFINISHED WAVE DISCARDABLE "sounds\\unfinished.wav" +WIN WAVE DISCARDABLE "sounds\\win.wav" + +#endif // English (U.S.) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED + diff --git a/winboard/winboard.rtf b/winboard/winboard.rtf new file mode 100644 index 0000000..0179b2d --- /dev/null +++ b/winboard/winboard.rtf @@ -0,0 +1,1880 @@ +{\rtf1\ansi\ansicpg1252\uc1 \deff5\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} +{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f5\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}Helvetica{\*\falt Arial};} +{\f6\fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Courier;}{\f11\fswiss\fcharset0\fprq2{\*\panose 00000000000000000000}MS Sans Serif;}{\f27\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Tahoma;} +{\f226\fswiss\fcharset0\fprq0{\*\panose 00000000000000000000}Univers (WN);}{\f227\froman\fcharset0\fprq0{\*\panose 00000000000000000000}CG Times (WN);}{\f484\froman\fcharset238\fprq2 Times New Roman CE;} +{\f485\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f487\froman\fcharset161\fprq2 Times New Roman Greek;}{\f488\froman\fcharset162\fprq2 Times New Roman Tur;}{\f489\froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\f490\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f491\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f492\fswiss\fcharset238\fprq2 Arial CE;}{\f493\fswiss\fcharset204\fprq2 Arial Cyr;}{\f495\fswiss\fcharset161\fprq2 Arial Greek;} +{\f496\fswiss\fcharset162\fprq2 Arial Tur;}{\f497\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f498\fswiss\fcharset178\fprq2 Arial (Arabic);}{\f499\fswiss\fcharset186\fprq2 Arial Baltic;}{\f500\fmodern\fcharset238\fprq1 Courier New CE;} +{\f501\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f503\fmodern\fcharset161\fprq1 Courier New Greek;}{\f504\fmodern\fcharset162\fprq1 Courier New Tur;}{\f505\fmodern\fcharset177\fprq1 Courier New (Hebrew);} +{\f506\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f507\fmodern\fcharset186\fprq1 Courier New Baltic;}{\f700\fswiss\fcharset238\fprq2 Tahoma CE;}{\f701\fswiss\fcharset204\fprq2 Tahoma Cyr;}{\f703\fswiss\fcharset161\fprq2 Tahoma Greek;} +{\f704\fswiss\fcharset162\fprq2 Tahoma Tur;}{\f705\fswiss\fcharset177\fprq2 Tahoma (Hebrew);}{\f706\fswiss\fcharset178\fprq2 Tahoma (Arabic);}{\f707\fswiss\fcharset186\fprq2 Tahoma Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255; +\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0; +\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{ +\s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext26 heading 1;}{\s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 2;}{\s3\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 3;}{\s4\ql \fi-245\li360\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin360\itap0 +\f11\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon2 \snext4 heading 4;}{\s5\ql \li120\ri0\sb80\sl-240\slmult0\keepn\nowidctlpar\faauto\outlinelevel4\adjustright\rin0\lin120\itap0 +\f5\fs20\ul\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 5;}{\*\cs10 \additive Default Paragraph Font;}{\*\cs15 \additive \f5\fs18\up6\lang1033\langfe0\langnp1033 \sbasedon10 footnote reference;}{ +\s16\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 footnote text;}{\s17\ql \li360\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 Normal Indent;}{\s18\ql \fi-240\li600\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin600\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext18 Jli;}{\s19\ql \li120\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin120\itap0 +\f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext19 Ex;}{\s20\ql \li120\ri0\sb160\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext29 Sa1;}{ +\s21\ql \fi-240\li360\ri0\sl-240\slmult0\nowidctlpar\tx360\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext22 Lb1;}{\s22\ql \fi-240\li360\ri0\sb60\sl-240\slmult0\nowidctlpar +\tx360\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext22 Lb2;}{\s23\ql \li360\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext22 Lp1;}{\s24\ql \fi-1800\li1920\ri0\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \tx1920\faauto\adjustright\rin0\lin1920\itap0 +\b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext25 Th;}{\s25\ql \fi-1800\li1920\ri0\sb60\sl-240\slmult0\nowidctlpar\tx1920\faauto\adjustright\rin0\lin1920\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext25 Tp;}{ +\s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal 2;}{\s27\ql \li120\ri0\sb120\sa120\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 bitmap;}{\s28\ql \li120\ri0\sb120\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext29 Sa2;}{ +\s29\ql \fi-240\li360\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext29 Jl;}{\s30\ql \li120\ri0\sa60\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext30 *body;}{\s31\ql \li120\ri0\sa60\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \b\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext31 *heading;}{ +\s32\ql \li120\ri0\sa60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext32 para;}{ +\s33\ql \fi-280\li400\ri0\sa60\nowidctlpar\faauto\adjustright\rin0\lin400\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext33 jump;}{\s34\ql \fi-280\li400\ri0\sa60\nowidctlpar\tx400\faauto\adjustright\rin0\lin400\itap0 +\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext34 list bullet;}{\s35\ql \fi-280\li600\ri0\sa60\nowidctlpar\faauto\adjustright\rin0\lin600\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon30 \snext35 jump indent;}{\s36\ql \li120\ri0\sa60\sl-40\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 \faauto\adjustright\rin0\lin120\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon30 \snext36 table rule;}{\s37\ql \fi-280\li400\ri0\sa60\nowidctlpar\tqr\tx280\tx400\faauto\adjustright\rin0\lin400\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext37 list number;}{ +\s38\ql \li120\ri0\sb100\sa60\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \b\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon31 \snext33 see also;}{\s39\ql \li400\ri0\sa60\nowidctlpar\faauto\adjustright\rin0\lin400\itap0 +\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext39 para indent;}{\s40\ql \fi-1800\li1920\ri0\nowidctlpar\tx1920\faauto\adjustright\rin0\lin1920\itap0 \b\f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon31 \snext36 table head;}{\s41\ql \fi-1800\li1920\ri0\sa60\nowidctlpar\tx1920\faauto\adjustright\rin0\lin1920\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext41 table text;}{ +\s42\ql \li120\ri0\sb120\sa60\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f226\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext35 see also 2;}{\s43\ql \li120\ri0\sa60\keep\nowidctlpar +\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin120\itap0 \f6\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon30 \snext43 code;}{\s44\ql \li0\ri0\sl-120\slmult0\nowidctlpar\faauto\adjustright\rin0\lin0\itap0 +\f227\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext32 *spacing;}{\s45\ql \li0\ri0\sl-120\slmult0\nowidctlpar\faauto\adjustright\rin0\lin0\itap0 \f227\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon44 \snext45 s6;}{ +\s46\qj \li360\ri0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext46 Help Text;}{\s47\ql \li115\ri0\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw +\brdrs\brdrw15\brsp20 \faauto\adjustright\rin0\lin115\itap0 \f11\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon24 \snext25 Th2;}{\s48\ql \li115\ri0\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw +\brdrs\brdrw15\brsp20 \faauto\adjustright\rin0\lin115\itap0 \b\f11\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon24 \snext25 Th3;}{\s49\ql \li115\ri0\sb200\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin115\itap0 +\f11\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 Normal 3;}{\s50\ql \fi-1800\li1915\ri0\sb120\sa40\sl-240\slmult0\nowidctlpar\brdrb\brdrs\brdrw15\brsp20 \brdrbtw\brdrs\brdrw15\brsp20 +\tx1915\faauto\adjustright\rin0\lin1915\itap0 \b\f11\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext51 Thh;}{\s51\ql \fi-1800\li1915\ri0\sb60\sl-240\slmult0\nowidctlpar\tx1915\faauto\adjustright\rin0\lin1915\itap0 +\f11\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext51 Tph;}{\s52\ql \li288\ri-432\sb80\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\faauto\adjustright\rin-432\lin288\itap0 +\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext52 unixman1;}{\s53\ql \li1440\ri-432\sb80\sa240\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\faauto\adjustright\rin-432\lin1440\itap0 +\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext53 unixman2;}{\s54\ql \li115\ri-432\sb80\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\faauto\adjustright\rin-432\lin115\itap0 +\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon52 \snext54 unixman0;}{\s55\ql \li288\ri-432\sb80\sa240\sl-240\slmult0\nowidctlpar\tx288\tx864\tx1440\faauto\adjustright\rin-432\lin288\itap0 +\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon52 \snext55 unixman1a;}{\s56\ql \li115\ri0\sa60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin115\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon2 \snext56 heading 2a;}{\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext57 endnote text;}{\*\cs58 \additive \super \sbasedon10 +endnote reference;}{\*\cs59 \additive \ul\cf2 \sbasedon10 Hyperlink;}{\*\cs60 \additive \ul\cf12 \sbasedon10 FollowedHyperlink;}{\s61\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \cbpat9 +\f27\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext61 Document Map;}{\s62\ql \li480\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin480\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 +\sbasedon0 \snext62 Body Text 2;}{\s63\ql \fi-720\li1440\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin1440\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext63 Body Text Indent 2;}{ +\s64\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\tqc\tx4320\tqr\tx8640\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext64 header;}{\s65\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar +\tqc\tx4320\tqr\tx8640\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext65 footer;}}{\*\listtable{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0 +\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid74976790}{\list\listtemplateid67698703\listsimple +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname +;}\listid349260549}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 +\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid470094698}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid640160996}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid768165129}{\list\listtemplateid67698703\listsimple +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname +;}\listid781152802}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 +\chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid903878531}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1002394966}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0 +\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1021513731}{\list\listtemplateid67698703\listsimple +{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname +;}\listid1099714113}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 +\chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1240552867}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1332292840}{\list\listtemplateid67698703\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0 +\levelstartat1\levelspace0\levelindent0{\leveltext\'02\'00.;}{\levelnumbers\'01;}\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid1358388700}{\list\listtemplateid67698689\listsimple{\listlevel +\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname +;}\listid1405952460}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 +\chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2025940873}{\list\listtemplateid67698689\listsimple{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace0\levelindent0{\leveltext +\'01\u-3913 ?;}{\levelnumbers;}\f3\chbrdr\brdrnone\brdrcf1 \chshdng0\chcfpat1\chcbpat1\fbias0 \fi-360\li360\jclisttab\tx360 }{\listname ;}\listid2044863907}}{\*\listoverridetable{\listoverride\listid2025940873\listoverridecount0\ls1} +{\listoverride\listid1002394966\listoverridecount0\ls2}{\listoverride\listid470094698\listoverridecount0\ls3}{\listoverride\listid1099714113\listoverridecount0\ls4}{\listoverride\listid1358388700\listoverridecount0\ls5}{\listoverride\listid2044863907 +\listoverridecount0\ls6}{\listoverride\listid640160996\listoverridecount0\ls7}{\listoverride\listid768165129\listoverridecount0\ls8}{\listoverride\listid903878531\listoverridecount0\ls9}{\listoverride\listid781152802\listoverridecount0\ls10} +{\listoverride\listid1240552867\listoverridecount0\ls11}{\listoverride\listid640160996\listoverridecount0\ls12}{\listoverride\listid349260549\listoverridecount0\ls13}{\listoverride\listid1021513731\listoverridecount0\ls14}{\listoverride\listid1405952460 +\listoverridecount0\ls15}{\listoverride\listid1332292840\listoverridecount0\ls16}}{\*\revtbl {Unknown;}{Tim Mann;}}{\info{\title + $ # KWinBoard: Chessboard for Windows}{\author TRIO}{\operator Timothy Mann}{\creatim\yr2001\mo12\dy9\hr12\min56}{\revtim\yr2001\mo12\dy9\hr12\min56} +{\printim\yr1997\mo4\dy22\hr23\min5}{\version2}{\edmins2}{\nofpages60}{\nofwords12847}{\nofchars73230}{\*\company DEC SRC}{\nofcharsws89931}{\vern8269}} +\widowctrl\endnotes\aendnotes\ftnnrlc\aftnnar\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind4\viewscale100\nolnhtadjtbl \fet1{\*\aftnsep +\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\chftnsep +\par }}\sectd \linex0\sectdefaultcl {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang{\pntxta .}}{\*\pnseclvl4 +\pnlcltr\pnstart1\pnindent720\pnhang{\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (} +{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang{\pntxtb (}{\pntxta )}}\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0 +\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Contents}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Contents}}K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Contents}}}{\i\f1\fs32 WinBoard}{\f1\fs32 : Chessboard for Windows +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Description}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Description}}}{\f1 Description +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\i\f1 WinBoard}{\f1 + is a graphical user interface for chess. It displays a chessboard on the screen, accepts moves made with the mouse, and loads and saves game files in standard chess notation. WinBoard serves as a front-end for many different services, including: +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard\plain \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls3\adjustright\rin0\lin480\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b\i\f1 Chess engines}{\f1 + that run on your PC. You can play a game against an engine, set up arbitrary positions, force variations, or watch a game between two engines. }{\i\f1 GNU Chess}{\f1 is supplied with WinBoard, and over 10 +0 other free chess engines are available separately. Of these, Crafty is the most popular. See }{\f1\uldb Installing Chess Engines}{\v\f1 InstallingChessEngines}{\f1 for instructions on installing additional chess engines. +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls3\adjustright\rin0\lin480\itap0 {\b\i\f1 Chess servers}{\b\f1 }{\f1 on the Internet. You can play against other + Internet Chess Server (ICS) users, observe games they are playing, review games in the ICS libraries, chat, and more. WinBoard can also be used to run an automated computer player on the ICS, but this feature is for advanced users only and is subject to +some caveats; see the separate file zippy.README for information. +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls3\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls3\adjustright\rin0\lin480\itap0 {\b\i\f1 The Web}{\f1 and your own saved games. You can use WinBoard as a helper application to view files in your Web browser or the Explorer. You can use it to keep track of email postal games, browse ga +mes off the net, or review games you have saved. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ Getting Started}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ GettingStarted}}}{\f1 Getting Started +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +WinBoard starts up in one of three major modes: chess engine mode, ICS client mode, or game viewer mode. You cannot change modes while WinBoard is running, but you can access all the game v +iewer features directly from the other two modes. Also, you can start WinBoard several times to get multiple chessboard windows running in any combination of modes. +\par }\pard\plain \s20\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {You will usually run WinBoard by choosing an item from the Windows Start menu that runs it +in the mode you want. If you just double-click on WinBoard.exe, you get a startup dialog asking which mode you want. If you choose chess engine mode, you can then select from the installed engines; if you choose ICS client mode, you can then select from a + list of known chess servers. More advanced users can }{\uldb customize}{\v icsNames}{ these lists or type in WinBoard }{\uldb command line options}{\v Options}{ directly. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 After starting WinBoard, you can make }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 move}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 move}}}{\f1 moves in several different ways. To move by dragging, press the left mouse +button while the cursor is on one of your pieces, move the cursor to another square, and release the button. You can also move by clicking the left mouse button once (press and release) over one of your pieces, moving the cursor to another square, and cli +c +king again. You drop new pieces on the board (when applicable) by selecting from a context menu. Press the right mouse button over a square to bring up the menu; no menu will come up in modes where dropping a new piece is not permitted. You can also make +moves by typing them in standard algebraic chess notation. Either a dialog box will pop up for you to type into, or in ICS mode, your typing will be redirected into the ICS interaction window. +\par When WinBoard}{\i\f1 }{\f1 is iconized, its }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +\cs58\f1\super K}{\f1 icon}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icon}}}{\f1 +icon is a white knight if it is White's turn to move, a black knight if it is Black's turn. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Additional Information +\par }\pard\plain \s29\ql \fi-240\li360\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\uldb Menus}{\v\f1\uldb Menus}{\f1\uldb +\par Shortcut Buttons}{\v\f1\uldb Buttons}{\f1\uldb +\par Command Line Options}{\v\f1 Options}{\f1 +\par }{\f1\uldb Initialization Files}{\v\f1\uldb Files}{\f1\uldb +\par Installing Chess Engines}{\v\f1\uldb InstallingChessEngines}{\f1\uldb +\par Firewalls}{\v\f1 Firewalls}{\f1 +\par }{\f1\uldb Limitations}{\v\f1 Limitations}{\f1\uldb +\par Authors}{\v\f1 Authors}{\f1 +\par }{\f1\uldb Copyright}{\v\f1 Copyright}{\f1 +\par }{\f1\uldb Frequently Asked Questions}{\v\f1 !ExecFile(FAQ.html)}{\f1 +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Menus}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Menus}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Menus}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 MENUS +\par }\pard\plain \s29\ql \fi-240\li360\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\uldb File Menu}{\v\f1 FileMenu}{\f1 +\par }{\f1\uldb Mode Menu}{\v\f1 ModeMenu}{\f1 +\par }{\f1\uldb Action Menu}{\v\f1 ActionMenu}{\f1 +\par }{\f1\uldb Step Menu}{\v\f1 StepMenu}{\f1 +\par }{\f1\uldb Options Menu}{\v\f1 OptionsMenu}{\f1 +\par }{\f1\uldb Help Menu}{\v\f1 HelpMenu}{\f1 +\par }{\f1\uldb ICS Interaction Context Menu}{\v\f1 ICSInteractionContextMenu}{\f1 +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 File Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 FileMenu}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 File Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs18\up6 }{\f1\fs20 File Menu +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Reset}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Reset}}}{\f1 Reset +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Resets WinBoard and the chess engine (if any) to the beginning of a new chess game. In Internet Chess Server mode, clears the current state of WinBoard, then resynchronizes with ICS by sending a }{\b\f1 refresh }{\f1 command. If you + want to stop playing, observing, or examining a game on ICS, use an appropriate command from the }{\f1\uldb Action}{\v\f1 ActionMenu}{\f1 menu, not Reset. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadGame}}}{\f1 Load Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Plays a game from a record file. A popup dialog prompts you for the filename. If the file contains more than on +e game, a second popup dialog displays a list of games (with information drawn from their PGN tags, if any), and you can select the one you want. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +The game file parser will accept PGN (portable game notation), or in fact almost any file that contains moves in algebraic notation. Notation of the form }{\i\f1 P@f7}{\f1 + is accepted for piece-drops in bughouse games; this is a nonstandard extension to PGN. If the file includes a PGN position (FEN tag), or a WinBoard position diagram bracketed by "[--" and "--]" before the fi +rst move, the game starts from that position. Text enclosed in parentheses, square brackets, or curly braces is assumed to be commentary and is displayed in a pop-up window. Any other text in the file is ignored. PGN variations (enclosed in parentheses) a +re treated as comments; WinBoard is not able to walk variation trees. The nonstandard PGN tag }{\f2 [Variant "varname"]}{\f1 functions similarly to the }{\f1\uldb variant}{\v\f1 variant }{\f1 +command-line option, allowing games in certain chess variants to be loaded. There is also a heuristic to recognize chess variants from the }{\f2 Event}{\f1 + tag, by looking for the strings that the Internet Chess Servers put there when saving variant ("wild") games. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Next Game}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadNextGame}}}{\f1 Load Next Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Loads the next game from the last game record file you loaded. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Previous Game}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadPreviousGame}}}{\f1 Load Previous Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Loads the previous game from the last game record file you loaded. Not available if the last game was loaded from a pipe. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Reload Same Game}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ReloadSameGame}}}{\f1 Reload Same Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Reloads the last game you loaded. Not available if the last game was loaded from a pipe. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Save Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SaveGame}}}{\f1 Save Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Appends a r +ecord of the current game to a file. A popup dialog prompts you for the filename. If the game did not begin with the standard starting position, the game file includes the starting position used. Game files are saved in the PGN (portable game notation) fo +rmat, unless the }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1 option is True, in which case they are saved in an older format that is specific to WinBoard}{\i\f1 .}{\f1 + Both formats are human-readable, and both can be read back by the Load Game command. Notation of the form }{\i\f1 P@f7}{\f1 is generated for piece-drops in bughouse games; this is a nonstandard extension to PGN. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Copy Game To Clipboard}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 CopyGameToClipboard}}}{\f1 Copy Game To Clipboard +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +Copies the record of the current game to the Windows clipboard in PGN (portable game notation) format. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Paste Game From Clipboard}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PasteGameFromClipboard}}}{\f1 Paste Game From Clipboard +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Plays a game from the Windows clipboard.}{\f1 See }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1 + for a discussion of game file format and parser behavior.}{ +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Position}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadPosition}}}{\f1 Load Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Sets up a position from a position file. A popup dialog prompts you for the filename. Position files must be in FEN (Forsythe-Edwards notation), or in the format that the }{\f1\uldb Save Position}{\f1 command writes when }{\f1\uldb oldSaveStyle}{\v\f1 +oldSaveStyle}{\f1 is turned on. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Next Position}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadNextPosition}}}{\f1 Load Next Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Loads the next position from the last position file you loaded. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Previous Position}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadPreviousPosition}}}{\f1 Load Previous Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Loads the previous position from the l +ast position file you loaded. Not available if the last position was loaded from a pipe. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Reload Same Position}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ReloadSamePosition}}}{\f1 Reload Same Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Reloads the last position you loaded. Not available if the last position was loaded from a pipe. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Save Position}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SavePosition}}}{\f1 Save Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Appends a diagram of the curr +ent position to a file. A popup dialog prompts you for the filename. Positions are saved in FEN (Forsythe-Edwards notation) format, unless the }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1 + option is True, in which case they are saved in an older, human-readable format that is specific to WinBoard}{\i\f1 .}{\f1 + Both formats can be read back by the Load Position command; however, currently Load Position can load only the first position in a file. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Copy Position Clipboard}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 CopyPositionToClipboard}}}{\f1 Copy Position To Clipboard +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Places a diagram of the current position (in Forsythe-Edwards notat +ion) into the Windows clipboard. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Paste Position Clipboard}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PastePositionFromClipboard}}}{\f1 Paste Position From Clipboard +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Sets up a position from the Windows clipboard. Position must be in FEN (Forsythe-Edwards notation). Puts WinBoard into }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 mode if it was not there already. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Exit}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Exit}}}{\f1 Exit +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Exits from WinBoard. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Mode Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ModeMenu}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Mode Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Mode Menu +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Machine White}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 MachineWhite}}}{\f1 Machine White +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Forces the chess engine to play white. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Machine Black}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 MachineBlack}}}{\f1 Machine Black +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Forces the chess engine to play black. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Two Machines}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 TwoMachines}}}{\f1 Two Machines +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Starts a game between two chess engines. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Analysis Mode}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AnalysisMode}}}{\f1 Analysis Mode +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 In this mode, you can make moves for both si +des on the board. After each move, the chess engine will think about possible replies and display its analysis in a separate window. This feature currently works only if Crafty is the chess engine. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Analyze File}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AnalyzeFile}}}{\f1 Analyze File +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 In this mode, you can load a game from a f +ile, and the chess engine will analyze each move as in Analysis Mode. This feature currently works only if Crafty is the chess engine. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ICS Client}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ICSClient}}}{\f1 ICS Client +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +This is the normal mode when WinBoard is connected to a chess server. If you have moved into Edit Game or Edit Position mode, you can select this option to get out. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +When you run WinBoard in ICS mode, it starts up a console window in which you can type commands and receive text responses from the chess server. You can use the standard Windows editing keys to edi +t your command line before pressing Enter. The console window keeps a history of the last few commands you typed. Press the up-arrow key to go back to a previous command; press the down-arrow key to go forward again to a later command. Press the right mou +se button in the output area for a }{\f1\uldb context menu}{\v\f1 ICSInteractionContextMenu}{\f1 of editing commands and ICS command shortcuts. +\par Some useful ICS commands include }{\b\f1 who}{\f1 to see who is logged on, }{\b\f1 games}{\f1 to see what games are being played, }{\b\f1 match}{\f1 to challenge another player to a game, }{\b\f1 observe}{\f1 to observe an ongoing game, }{\b\f1 +examine}{\f1 or }{\b\f1 smoves}{\f1 to review a recently completed game, and of course }{\b\f1 help}{\f1 . +\par Whenever you ask to observe an ongoing game, review a completed game, or resume an adjourned game, WinBoard retrieves and parses the list of past moves from the ICS, so you can review them with }{\f1\uldb Forward}{\v\f1 Forward}{\f1 and }{\f1\uldb +Backward}{\v\f1 Backward}{\f1 or save them with }{\f1\uldb Save Game}{\v\f1 SaveGame}{\f1 . +\par Some special ICS Client features are activated when you are in }{\b\f1 examine}{\f1 or }{\b\f1 bsetup }{\f1 mode on ICS. See the descriptions of the menu commands }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , }{\f1\uldb Backward}{\v\f1 Backward}{\f1 , }{ +\f1\uldb Pause}{\v\f1 Pause}{\f1 , and }{\f1\uldb Stop Examining}{\v\f1 StopExamining}{\f1 below. You can also issue the ICS position-editing commands with the mouse. Move pieces by dragging with the left mouse button, or by left-clicking once on the sta +rting square and once on the ending square. Press the right mouse button over a square for a context menu that lets you drop a new piece, empty the square, or clear the board. Click on the White or Black clock to set the side to play. You cannot set the s +i +de to play or drag pieces to arbitrary squares while examining on ICC, but you can do so in bsetup mode on FICS. You can also make moves by typing them into the ICS window; you may have to do this occasionally if you are playing a chess variant whose rule +s WinBoard does not understand, such as Fischer Random. +\par If you are playing a bughouse game on the ICS, a list of the offboard pieces that each player holds is shown in the window title bar. To drop an offboard piece, press the right mouse button over an emp +ty square to bring up a context menu. To observe your partner's games, start a second copy of WinBoard, log in as a guest, and use the ICS }{\b\f1 follow}{\f1 or }{\b\f1 pfollow}{\f1 command in the new window. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Edit Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 EditGame}}}{\f1 Edit Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Allows you to make moves for both Black and White, and to c +hange moves after backing up with the }{\f1\uldb Backward}{\v\f1 Backward}{\f1 command. The clocks do not run. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +In chess engine mode, the chess engine continues to check moves for legality but does not participate in the game. You can bring the chess engine back into the game by selecting }{\f1\uldb Machine White}{\v\f1 MachineWhite}{\f1 , }{\f1\uldb Machine Black} +{\v\f1 MachineBlack}{\f1 , or }{\f1\uldb Two Machines}{\v\f1 TwoMachines}{\f1 . +\par In ICS mode, the moves are not sent to the ICS: Edit Game takes WinBoard out of ICS Client mode and lets you edit games locally. If you want to edit a game on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1 + command or start an ICS match against yourself. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Edit Position}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 EditPosition}}}{\f1 Edit Position +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Lets you set up an arbitrary board position. Use the left mouse button to drag pieces to new squares, or to delete a piece by dragging + it off the board or dragging an empty square on top of it. To drop a new piece on a square, press the right mouse button over the square. This brings up a menu of pieces. Additional menu choices let you empty the square or clear the board. You can set th +e side to play next by clicking on the White or Black indicator at the top of the screen. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Selecting Edit Position causes WinBoard}{\i\f1 }{\f1 +to discard all remembered moves in the current game. +\par In ICS mode, change made to the position by Edit Position are not sent to +the ICS: Edit Position takes WinBoard out of ICS Client mode and lets you edit positions locally. If you want to edit positions on ICS in a way that other ICS users can see, use the ICS }{\b\f1 examine}{\f1 + command, or start an ICS match against yourself. (See also }{\f1\uldb ICS Client}{\v\f1 ICSClient}{\f1 above.) +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Training}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Training}}}{\f1 Training +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +Training mode lets you interactively guess the moves of a game for one of the players. While in Training mode, the navigation buttons are disabled. You guess the next move of the game by playing the move on the board (or using the }{\uldb Type In Move}{ +\v\uldb TypeInMove}{ command). If the move played matches the next move of the game, the move is accepted and the opponent\rquote s response is autoplayed. If the move played is incorrect, an error message is displayed. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Show Game List}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ShowGameList}}}{\f1 Show Game List +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Shows or hides the list of games generated by the last }{\f1\uldb Load Game}{\v\f1 LoadGame}{ +\f1 command. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Edit Tags}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 EditTags}}}{\f1 Edit Tags +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Lets you edit the PGN (portable game notation) tags for the current game. After editing, the tags must still conform to the PGN tag syntax: +\par }\pard\plain \s43\ql \li520\ri0\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2 \line ::= \line + \line ::= [ ]\line ::= \line ::= +\par }\pard\plain \s20\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 See the PGN Standard for full details. Here is an example: +\par }\pard\plain \s43\ql \li520\ri0\sa60\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2 \line [Event "Portoroz Interzonal"]\line [Site "Portoroz, Yugosl +avia"]\line [Date "1958.08.16"]\line [Round "8"]\line [White "Robert J. Fischer"]\line [Black "Bent Larsen"]\line [Result "1-0"] +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Any characters that do not match this syntax are silently ignored. Note that the PGN standard requires all games to have at least the seven tags shown above. Any that you omit will be filled in by WinBoard with }{\f2 "?"}{\f1 (unknown value) or }{\f2 "-" +}{\f1 (inapplicable value). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Edit Comment}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 EditComment}}}{\f1 Edit Comment +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Adds or modifies a comment on the current position. Comments are saved by }{\f1\uldb Save Game} +{\v\f1 SaveGame}{\f1 and are displayed by }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1 , }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , and }{\f1\uldb Backward}{\v\f1 Backward}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Pause}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Pause}}}{\f1 Pause +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Pauses updates to the board, and if you are playing against a local chess engine, also pauses your clock. To continue, select Pause again, and the display will automatically update to the latest position. The }{\b\f1 P}{\f1 (or }{\b\f1 C}{\f1 +) button is equivalent to selecting Pause. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you select Pause when you are playing{\*\bkmkstart WHATSelSavT}{\*\bkmkend WHATSelSavT} +{\*\bkmkstart fWHATtopic}against{\*\bkmkend fWHATtopic} a chess engine and it is not your move, the chess engine\rquote s clock will continue to run and it will eventually make a move, at which point both clocks will sto +p. Since board updates are paused, however, you will not see the move until you exit from Pause mode (or select }{\f1\uldb Forward}{\v\f1 Forward}{\f1 ). This behavior is meant to simulate adjournment with a sealed move. +\par If you select Pause while you are in }{\b\f1 examine}{\f1 mode on ICS, yo +u can step backward and forward in the current history of the examined game without affecting the other examiners or observers. Select Pause again to reconnect yourself to the current state of the game on ICS. +\par If you select Pause while you are loading a game, the game stops loading. You can load more moves one at a time by selecting }{\f1\uldb Forward}{\v\f1 Forward}{\f1 , or resume automatic loading by selecting Pause again. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Action Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ActionMenu}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Action Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Action Menu +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Most of these commands are available in chess server mode only. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Accept}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Accept}}}{\f1 Accept +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Accepts a pendi +ng match offer. If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Decline}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Decline}}}{\f1 Decline +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Declines a pending offer (match, draw, etc.). If there is more than one offer pending, you will have to type in a more specific command instead of using this menu choice. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Rematch}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Rematch}}}{\f1 Rematch +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Issues the ICS }{\b\f1 rematch}{\f1 + command, which asks for another game against your last opponent with the same time control and rule set. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Call Flag}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 CallFlag}}}{\f1 Call Flag +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Calls your opponent's flag, claiming +a win on time, or claiming a draw if you are both out of time. You can also call your opponent's flag by clicking on his clock. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Draw}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Draw}}}{\f1 Draw +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Offers a draw to your opponent, accepts a pending draw offer from your opponent, or claims a draw by repetition or the 50-move rule, as appropriate. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Adjourn}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Adjourn}}}{\f1 Adjourn +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Asks your opponent to agree to adjourning the current game, or agrees to a pending adjournment offer from your opponent. You continue an adjourned ICS game by challenging the same player again with the ICS }{\b\f1 match}{\f1 command. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Abort}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Abort}}}{\f1 Abort +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Asks your opponent to agree to abort the current game, or agrees to a pending abort offer from your opponent. An aborted ICS game ends immediately without affecting either player's rating. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Resign}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Resign}}}{\f1 Resign +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Resigns the game to your opponent. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Stop Observing}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 StopObserving}}}{\f1 Stop Observing +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Ends your participation in observing a game, by issuing the ICS }{\b\f1 unobserve}{\f1 + command. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Stop Examining}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 StopExamining}}}{\f1 Stop Examining +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Ends your participation in examining a game, by issuing the ICS }{\b\f1 unexamine}{\f1 + command. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Step Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 StepMenu}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Step Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Step Menu +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Type In Move}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 TypeInMove}}}{\f1 Type In Move +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Pops up a dialog box, into whi +ch you can type moves in standard algebraic chess notation. (You can also get this dialog box by simply starting to type over the chessboard, except in ICS mode, where such typing is redirected into the ICS interaction window.) +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Backward}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Backward}}}{\f1 Backward +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Steps backward through a series of remembered moves. The }{\b\f1 <}{\f1 + button is equivalent to selecting Backward.In most modes, Backward only lets you look back at old positions; it does not retract moves. This is the case if you are playing against a chess engine, playing or observ +ing a game on the ICS, or loading a game. If you select Backward in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb Retract Move}{\v\f1 RetractMove}{\f1 or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 + if you want to change past moves. +\par If you are examining a game on the ICS, the behavior of Backward depends on whether WinBoard}{\i\f1 }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 mode. If Pause mode is off, Backward issues the ICS command}{\b\f1 backward}{\f1 +, which backs up everyone's view of the game and allows you to make a different move. If Pause mode is on, Backward only backs up your local view. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Forward}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Forward}}}{\f1 Forward +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Steps forward through a series of remembered moves (undoing the effect of }{\f1\uldb Backward}{ +\v\f1\uldb Backward}{\f1 ) or through a game file. The }{\b\f1 >}{\f1 button is equivalent. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you are examining a game on the ICS, the behavior of Forward depends on whether WinBoard}{ +\i\f1 }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 mode. If Pause mode is off, Forward issues the ICS command}{\b\f1 forward}{\f1 +, which moves everyone's view of the game forward along the current line. If Pause mode is on, Forward only moves your local view forward, and it will not go past the position the game was in when you paused. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Back to Start}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 BacktoStart}}}{\f1 Back to Start +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Jumps backward to the first remembered position in the game. The }{\b\f1 << }{\f1 +button is equivalent. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 In most modes, Back to Start only lets you look back at old positions; it does not +retract moves. This is the case if you are playing against a chess engine, playing or observing a game on the ICS, or loading a game. If you select Back to Start in any of these situations, you will not be allowed to make a different move. Use }{\f1\uldb +Retract Move}{\v\f1 RetractMove}{\f1 or }{\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 if you want to change past moves; or use }{\f1\uldb Reset}{\v\f1 Reset}{\f1 to start a new game. +\par If you are examining a game on the ICS, the behavior of Back to Start depends on whether WinBoard}{\i\f1 }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 mode. If Pause mode is off, Backward issues the ICS command }{\b\f1 backward 999999}{\f1 +, which backs up everyone's view of the game to the start and allows you to make different moves. If Pause mode is on, Back to Start only backs up your local view. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Forward to End}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ForwardtoEnd}}}{\f1 Forward to End +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Jumps forward to the last position in the game. The }{\b\f1 >>}{\f1 button is equivalent. + +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If you are examining a game on the ICS, the behavior of Forward to End depends on whether WinBoard}{\i\f1 }{\f1 is in }{\f1\uldb Pause}{\v\f1 Pause}{\f1 mode. If Pause mode is off, Forward to End issues the ICS command }{\b\f1 forward 999999}{\f1 +, which moves everyone's view of the game forward to the end of the current line. If Pause mode is on, Forward to End only moves your local view forward, and it will not go past the position the game was in when you paused. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Revert}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Revert}}}{\f1 Revert +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you are examining a game on the ICS, issues the ICS command }{\b\f1 revert}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Truncate Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 TruncateGame}}}{\f1 Truncate Game +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Discards all remembered moves of the game beyond the current position. Puts WinBoard into }{ +\f1\uldb Edit Game}{\v\f1 EditGame}{\f1 mode if it was not there already. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Move Now}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 MoveNow}}}{\f1 Move Now +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Forces the chess engine to move immediately. May not work with all chess engines. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Retract Move}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 RetractMove}}}{\f1 Retract Move +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Retracts your last move. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +In chess engine mode, you can do this only after the chess engine has replied to your move. If the chess engine is still thinking, use }{\f1\uldb Move Now}{\v\f1 MoveNow}{\f1 first. +\par In ICS mode, Retract Move issues the command }{\b\f1 takeback 1 }{\f1 or }{\b\f1 takeback 2}{\f1 , depending on whether it is your opponent's move or yours. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Options Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 OptionsMenu}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Options Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Options Menu +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Flip View}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 FlipView}}}{\f1 }{\f1\ul Flip View}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Inverts your view of the chessboard. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you are playing a game on the ICS, the board is always oriented at the start of the + game so that your pawns move from the bottom of the window towards the top. Otherwise, the starting position is determined by the }{\f1\uldb flipView}{\v\f1 flipViewOption}{\f1 command line option. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\ul\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ General Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ GeneralOptions}}}{\f1\ul General}{\f1 +\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Always On Top}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AlwaysOnTop}}}{\f1 Always On Top +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is on, WinBoard sets its chessboard to be a }{\i\f1 topmost}{\f1 + window, meaning that it always appears on top of all ordinary windows on the screen. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Always Queen}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AlwaysQueen}}}{\f1 Always Queen +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If Always Queen is off, WinBoard brings up a dialog box whenever you move a pawn to the last rank, asking what piece you want to promote it to. If the option is on, your pawns are always promoted to queens. Your opponent can still underpromote, however. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Animate Dragging}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AnimateDragging}}}{\f1 Animate Dragging +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If Animate Dragging is on while you are dragging a piece with the mouse, an image of the piece follows the mouse cursor. If Animate Dragging is off, there is no visual feedback while you are +\par dragging a piece, but if Animate Moving is on, the move will be animated when it is complete. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Animate Moving}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AnimateMoving}}}{\f1 Animate Moving +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Animate Moving is on, all piece moves are animated. An image of the piece + is shown moving from the old square to the new square when the move is completed (unless the move was already animated by Animate Dragging). If Animate Moving is off, a moved piece instantly disappears from its old square and reappears on its new square +when the move is complete. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Auto Flag}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AutoflagCmd}}}{\f1 Auto Flag +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is on and one player runs out of time before the other, WinBoard will automatically call his flag, claiming a win on time. In ICS mode, Auto Flag will only call your opponent's flag, not yours, and the +ICS may award you a draw instead of a win if you have insufficient mating material. On most chess servers, you can now do}{\b\f1 set autoflag 1 }{\f1 +instead and have the server call the flag. In local chess engine mode, WinBoard may call either player's flag and will not take material into account. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ Auto Flip View}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ AutoFlipView}}}{\b Auto Flip View +\par }{If this option is on when you}{\f1 start a game, the board will be automatically oriented so that your pawns move from the bottom of the window towards the top.}{ +\par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ Auto Raise Board}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ AutoRaiseBoard}}}{\b Auto Raise Board +\par }{If this}{\v autoFlipViewOption}{ option is on, whenever a new game begins, the chessboard window will be deiconized (if necessary) and raised to the top of the stack of windows on your screen. +\par }\pard\plain \s2\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ Blindfold}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ BlindfoldCmd}}}{Blindfold +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {If Blindfold is on, WinBoard displays a blank board. Moves can still be entered with the + mouse, either by dragging the (invisible) piece or clicking the starting and ending square. You can also enter your move by typing it on the keyboard}{\f1 .}{ +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Highlight Dragging}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 HighlightDragging}}}{\f1 Highlight Dragging +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Highlight Dragging is on while you are dragging a piece with the mouse, the sta +rting square and the square that the mouse cursor is over are highlighted. This option works even if Animate Dragging is off. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Highlight Last Move}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 HighlightLastMove}}}{\f1 Highlight Last Move +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If Highlight Last Move is on, after a move is made, the starting and ending squares remain highlighted. In addition, after you use }{\f1\uldb Backward}{\v\f1 Backward}{\f1 or }{\f1\uldb Back to Start}{\v\f1 BackToStart}{\f1 +, the starting and ending squares of the last move to be }{\i\f1 unmade}{\f1 are highlighted. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Periodic Updates}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PeriodicUpdatesCmd}}}{\f1 Periodic Updates +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Periodic Updates is on, the Analysis window is updated every two seconds. If not, it + is updated only when the best move found changes. The Analysis window currently works only with Crafty, and Periodic Updates may not work with all versions of Crafty. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Ponder Next Move}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 PonderNextMoveCmd}}}{\f1 Ponder Next Move +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is off, the chess engine will think only when it is o +n move. If the option is on, the engine will also think while waiting for you to make your move. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Popup Exit Message}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PopupExitMessageCmd}}}{\f1 Popup Exit Message +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is on, when WinBoard wants to display a message just before exiting, it brings up a modal dialog box and waits for you to click OK before exiting. If the option is off, WinBoard prints exits immediately without showing the message. If }{ +\f1\uldb debugMode}{\v\f1 debugMode}{\f1 is on, however, the message will appear in the debug log. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Popup Move Errors}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PopupMoveErrorsCmd}}}{\f1 Popup Move Errors +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is off, when you make an error + in moving (such as attempting an illegal move or moving the wrong color piece), the error message is displayed in the message area. If the option is on, move errors are displayed in small popup windows like other errors. You can dismiss an error popup ei +ther by clicking its OK button or by clicking anywhere on the board, including downclicking to start a move. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Show Button Bar}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ShowButtonBarCmd}}}{\f1 Show Button Bar +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Show Button Bar is on, WinBoard displays on-screen }{\f1\uldb buttons}{\v\f1 BUTTONS}{\f1 + to step forward, backward, or pause the game. If it is off, the buttons are hidden, making the message line wider. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Show Coords}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ShowCoordsCmd}}}{\f1 Show Coords +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Sh +ow Coords is on, WinBoard displays algebraic coordinates along the board's left and bottom edges. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Show Thinking}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ShowThinkingCmd}}}{\f1 Show Thinking +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is set, WinBoard displays the chess engine\rquote +s current search depth and its notion of the score and best line of play from the +current position as it is thinking. The score indicates how many pawns ahead (or if negative, behind) the engine thinks it is. In matches between two machines, the score is prefixed by W or B to indicate whether it is showing White's thinking or Black's. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Test Legality}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 TestLegalityCmd}}}{\f1 Test Legality +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If Test Legality is on, WinBoard tests whether the moves you enter with the mouse or read from game files are legal, and displays an error if they are not. Turn this option off if you are playing a chess variant that WinBoard does not under +stand. (Bughouse, suicide, and wild variants where the king may castle after starting on the }{\b\f1 d}{\f1 file are generally supported with Test Legality on.) +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\ul\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ Board Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ BoardOptions}}}{\f1\ul Board +\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Board Size}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 BoardSizeCmd}}}{\f1 Board Size +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Determines how large the board will be and what fonts and piece bitmaps will be used. +On a Titanic board the piece bitmaps are 129x129 pixels, on Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre 45x45, Small 40x40, Slim 37x37, Petite 33x3 +3, Dinky 29x29, Teeny 25x25, and Tiny 21x21. The smaller boards have no system menu, but you can minimize or close them from the File menu. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +You can also change the board size by dragging the window edges or corners with the mouse. The board will snap to the largest size that fits into the area you outline. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Board Colors}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 BoardColors}}}{\f1 Board Colors +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change the colors WinBoard is using to draw the board and pieces. +\par }\pard\plain \s5\ql \li120\ri0\sb80\sl-240\slmult0\keepn\nowidctlpar\faauto\outlinelevel4\adjustright\rin0\lin120\itap0 \f5\fs20\ul\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b +\par }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ ICS Options}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ ICSOptions}}}{\b ICS +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Auto Comment}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AutoCommentCmd}}}{\f1 Auto Comment +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Auto Comment is on, any remarks made on ICS while you are observing or playing a game ar +e recorded as a comment on the current move. This includes remarks made with the ICS commands }{\b\f1 say, tell, whisper, }{\f1 and }{\b\f1 kibitz}{\f1 . Limitation: remarks that you type yourself are not +\par recognized; WinBoard scans only the output from ICS, not the input you type to it. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Auto Observe}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AutobsCmd}}}{\f1 Auto Observe +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Auto Observe is on and you add a player to your }{\b\f1 gnotify}{\f1 + list on ICS, WinBoard will automatically observe all of that player's games, unless you are doing something else (such as observing or playing a game of your own) when one starts. On most chess servers, you can now do }{\b\f1 follow }{\b\i\f1 player}{ +\f1 instead, and the server will automatically observe all of }{\b\i\f1 player\rquote s}{\f1 games. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Get Move List}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 GetMoveListCmd}}}{\f1 Get Move List +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Get Move List is on, whenever WinBoard}{\i\f1 }{\f1 +receives the first board of a new ICS game (or a different ICS game + from the one it is currently displaying), it retrieves the list of past moves from the server. You can then review the moves with the Forward and Backward commands or save them with Save Game. You might want to turn off this option if you are observing s +everal blitz games at once, to keep from wasting time and network bandwidth fetching the move lists over and over. If you turn this option on while a game is in progress, WinBoard}{\i\f1 }{\f1 immediately fetches the current move list. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Local Line Editing}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LocalLineEditing}}}{\f1 Local Line Editing +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Local Line Editing is }{\b\f1 on}{\f1 +, your machine handles echoing, backspacing, etc., for the characters that you type into the ICS Interaction window. Output is forwarded to the ICS only when you hit Enter.The Enter key produces a newline character, also known as Ctrl+J, \\n, + LF, linefeed, or decimal ASCII code 10. In this mode you can force a control character into the edit buffer by preceding it with Ctrl+Q (\'93quote\'94 +); however, the edit buffer will not accept certain control characters even when they are quoted in this way. You can force a control character to be sent immediately to ICS, bypassing the edit buffer, by preceding it with Ctrl+S (\'93send\'94). +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +WinBoard keeps a history of lines you recently typed in Local Line Editing mode. You can bring back old lines by pressing the cursor up key in the text entry box. Press the cursor down key to go back down to newer lines. +\par If Local Line Editing is }{\b\f1 off}{\f1 , all characters are sent to ICS as you type them. The Enter key produces a carriage return character, also known as Ctrl+M, \\r, CR, o +r decimal ASCII code 13. Use Ctrl+Backspace if you need the ASCII DEL character. You can enter any character code by holding down the Alt key and typing its decimal value (always beginning with 0) on the numeric keypad; this is a little-known standard fea +ture of Windows. +\par In both modes, if WinBoard}{\i\f1 \rquote s }{\f1 internal telnet protocol implementation is active, it translates all \\n characters to the standard telnet end-of-line sequence \\r\\n just before sending them out to ICS; see }{\f1\uldb telnetProgram}{ +\v\f1 telnetProgram}{\f1 . +\par It is generally not a good idea to turn off this option while connected to ICS. If you are tempted to do so because everything you type is being echoed an extra time, see the paragraph about extra echoes under }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{ +\f1 below. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Quiet Play}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 QuietPlayCmd}}}{\f1 Quiet Play +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If Quiet Play is on, WinBoard will automatically issue an ICS }{\b\f1 set shout 0}{\f1 + command whenever you start a game and a }{\b\f1 set shout 1}{\f1 command whenever you finish one. Thus you will not be distracted by shouts from other ICS users while playing. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Premove}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 PremoveCmd}}}{\f1 Premove +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Premove allows you to play a move on the board before you have received your opponent\rquote +s move. This move is highlighted on the board using the }{\uldb Premove Highlight}{\v\uldb premoveHighlightColor}{ color, and is sent to the ICS as soon as your opponent\rquote s move is received. To cancel a premove +, either click twice on the piece that was premoved or premove an illegal move. +\par This group of controls allows you to set the following options: }{\uldb premove}{\v premove}{, }{\uldb premoveWhite}{\v premoveWhite}{, }{\uldb premoveWhiteText}{\v premoveWhiteText}{, }{\uldb premoveBlack}{\v premoveBlack}{, }{\uldb premoveBlackText}{\v +premoveBlackText}{. +\par }\pard\plain \s2\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ ICS Alarm}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ ICSAlarm}}}{ICS Alarm +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {When }{\b icsAlarm}{ is set to True, the }{\uldb alarm sound}{\v soundIcsAlarm}{ + is played when your clock counts down to }{\uldb icsAlarmTime}{\v icsAlarmTime}{ seconds. For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the }{\uldb icsAlarmTime}{\v icsAlarmTime}{. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ICS Interaction Colors}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ICSInteractionColors}}}{\f1 ICS Interaction Colors +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Lets you change the colors and type styles that WinBoard uses to distinguish between different types of messages in the ICS Interaction window. The types distinguished a +re: shout, sshout, channel 1 tell, other channel tell, kibitz (or whisper), personal tell (or new message notification), challenge, request (including abort, adjourn, draw, pause, and takeback), seek, and normal (all other messages). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Fonts}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Fonts}}}{\f1 }{\f1\ul Fonts}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you chan +ge the fonts WinBoard is using. The clock font, message font and coordinates font are specific to each board size. The tags font, comments font and ICS Interaction font are not dependent on the current size of the board. The \'93Revert to Defaults\'94 + button will reset the clock font, message font and coordinates font for the current board size, and will set the tags font, message font and Ics Interaction font for all board sizes. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Sounds}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Sounds}}}{\f1 }{\f1\ul Sounds}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change the sounds that WinBoard plays for various events. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Move Sound}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 MoveSound}}}{\f1 I +f the Move sound is on, WinBoard alerts you by playing a sound after each of your opponent's moves (or after every move if you are observing a game on the Internet Chess Server). The sound is not played after moves you make or moves read from a saved game + file. If you turn on the Move sound when using WinBoard with the Internet Chess Server, you will probably want to give the }{\b\f1 set bell 0}{\f1 + command to the ICS. Otherwise the ICS will send a bell character after every move (not just yours), causing WinBoard to pl +ay the ICS Bell sound too. Alternatively, you could turn off the ICS Bell sound in WinBoard, but that might cause you to miss ICS alerts for other interesting events. +\par The other sound events correspond directly to the types of messages that the }{\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1 option knows how to colorize. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Communications}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Communications}}}{\f1 }{\f1\ul Communications}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change the communication port parameters when the }{\f1\uldb +internetChessServerComPort}{\v\f1 internetChessServerComPort}{\f1 option is in use. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadGameOptns}}}{\f1 }{\f1\ul Load Game}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change options used while loading games (}{\f1\uldb timeDelay}{\v\f1 timeDelay}{\f1 + option). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Save Game}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SaveGameOptns}}}{\f1 }{\f1\ul Save Game}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change options used for saving games (}{\f1\uldb autoSaveGames}{\v\f1 autoSaveGames}{ +\f1 , }{\f1\uldb oldSaveStyle}{\v\f1 oldSaveStyle}{\f1 , and }{\f1\uldb saveGameFile}{\v\f1 saveGameFile}{\f1 options). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Time Control}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 TimeControlCmd}}}{\f1 }{\f1\ul Time Control}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Lets you change the time control to be used + in games against a chess engine. Two types of timing are available. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 With conventional chess clocks, each player begins with his clock set to the }{\f1\uldb +timeControl}{\v\f1 timeControl}{\f1 period. When both players have made }{\f1\uldb movesPerSession}{\v\f1 movesPerSession}{\f1 moves, a new time co +ntrol period begins. The time in the new period is added to whatever time the players have left on their clocks. +\par With incremental clocks, each player is given an initial time allotment, and a }{\f1\uldb timeIncrement}{\v\f1 timeIncrement}{\f1 is added to his clock after every mov +e. The increment may be zero, in which case the entire game must be finished within the initial time allotment. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Save Settings Now}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SaveSettings}}}{\f1 }{\f1\ul Save Settings Now}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Save the current option settings to a file, along with the current window sizes and positions, to be automatically reloaded next time WinBoard is run. See }{\f1\uldb Settings}{\v\f1 Settings}{\f1 for the fine points. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Save Settings on Exit}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SaveSettingsOnExit}}}{\f1 }{\f1\ul Save Settings on Exit}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is on, the current settings are automatically saved when WinBoard exits, as with Save Settings Now. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Help Menu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 HelpMenu}}}{\b0\f1\fs18\up6 }{\cs58\f1\fs20\super ${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Help Menu}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Help Menu +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Help Contents}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 HelpContents}}}{\f1 Help Contents +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Brings up this help file, starting at the Contents page. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Search for Help on}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 SearchHelp}}}{\f1 Help Index +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Brings up this help file, starting at the Index/Find dialog. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 How to Use Help}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 HelpHelp}}}{\f1 How to Use Help +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Brings up the standard help file that explains how to use Windows Help. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Hint}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Hint}}}{\f1 Hint +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Displays a move hint from the chess engine. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Book}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Book}}}{\f1 Book +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Displays a list of possible moves from the chess engine\rquote +s opening book. The first column gives moves, the second column gives one possible response for each move, and the third column shows the number of lines in the book that include the mo +ve from the first column. If you select this option and nothing happens, the engine is out of its book or does not support the book command. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 About WinBoard}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 AboutWinBoard}}}{\f1 About WinBoard +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Displays the WinBoard version number. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ICS Interaction Context Menu}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ICSInteractionContextMenu}}}{\b0\f1\fs18\up6 }{\cs58\f1\fs20\super $ +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 ICS Interaction Context Menu}}+{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 ICS Interaction Context Menu +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 To see this menu, press +the right mouse button anywhere in the output (upper) pane of the ICS Interaction window. Pressing the right mouse button in the input (lower) pane gives a standard editing context menu, not described here. Use the }{\b\f1 help}{\f1 + command on ICS to learn what these commands mean. +\par You can customize the lower part of this menu (below the Paste option) by setting the }{\f1\uldb icsMenu}{\v\f1 icsMenu}{\f1 option. The easiest way to accomplish this is to edit your }{\f1\uldb settings file}{\v\f1 settings}{\f1 + with Notepad or another plain text editor. Sorry, there is no graphical user interface for customizing the menu. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Copy and Paste}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 CopyAndPaste}}}{\f1 Copy and Paste +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Copies the current selection to the clipboard, then pastes it to the input box. As a shortcut to this function, you can press the middle mouse button (if you have one), or Shift plus the right mouse button. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Copy}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Copy}}}{\f1 Copy +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Copies the current selection to the clipboard. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Paste}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Paste}}}{\f1 Paste +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Pastes the clipboard contents to the input box. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Who}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 Who}}}{\f1 Who +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93who\'94}{\b\i\f1 }{\f1 to ICS. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Players}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 Players}}}{\f1 Players +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93players\'94}{\b\i\f1 }{\f1 to ICS. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Games}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 Games}}}{\f1 Games +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93games\'94}{\b\i\f1 }{\f1 to ICS. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Sought}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 Sought}}}{\f1 Sought +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93sought\'94}{\b\i\f1 }{\f1 to ICS. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Tell}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Tell}}}{\f1 Tell (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Inserts \'93tell }{\i\f1 name }{\f1 \'94}{\b\i\f1 }{\f1 into the input box. The string }{ +\i\f1 name }{\f1 is the current selection if it is not empty. Otherwise }{\i\f1 name }{\f1 is the word surrounding the mouse position, where a \'93word\'94 is a string of letters, digits, or hyphens (-), such as an ICS user handle or game number. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Message}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Message}}}{\f1 Message (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Inserts \'93message }{\i\f1 name }{\f1 \'94}{\b\i\f1 }{\f1 into the input box, where }{\i\f1 +name}{\f1 is as defined above. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Finger}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Finger}}}{\f1 Finger (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93finger }{\i\f1 name}{\f1 \'94}{\b\i\f1 }{\f1 to ICS, where }{\i\f1 name} +{\f1 is as defined above. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Vars}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Vars}}}{\f1 Vars (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93vars }{\i\f1 name}{\f1 \'94}{\b\i\f1 }{\f1 to ICS, where }{\i\f1 name}{ +\f1 is as defined above. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Observe}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Observe}}}{\f1 Observe (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93observe }{\i\f1 name}{\f1 \'94}{\b\i\f1 }{\f1 to ICS, where }{\i\f1 name +}{\f1 is as defined above. Here }{\i\f1 name}{\f1 can be either a user handle or a game number. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Match}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Match}}}{\f1 Match (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93match }{\i\f1 name}{\f1 \'94}{\b\i\f1 }{\f1 to ICS, where }{\i\f1 name}{ +\f1 is as defined above. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 Play}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 Play}}}{\f1 Play (name) +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sends the command \'93play }{\i\f1 name}{\f1 \'94}{\b\i\f1 }{\f1 to ICS, where }{\i\f1 name}{ +\f1 is as defined above. Here }{\i\f1 name}{\f1 can be either a user handle or a seek ad number. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Buttons}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Buttons}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Buttons}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\b0\f1\fs18\up6 }{\f1\fs20 BUTTONS +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Back to Start}}}{\f1 << +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Same as }{\f1\uldb Back to Start}{\v\f1 BacktoStart}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Backward}}}{\f1 < +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Same as }{\f1\uldb Backward}{\v\f1 Backward}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Pause}}}{\f1 P +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Same as }{\f1\uldb Pause}{\v\f1 Pause}{\f1 . The button label changes to }{\b\f1 C}{\f1 + while WinBoard is pausing. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Forward}}}{\f1 > +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Same as }{\f1\uldb Forward}{\v\f1 Forward}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Forward to End}}}{\f1 >> +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Same as }{\f1\uldb Forward to End}{\v\f1 ForwardtoEnd}{\f1 . +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Command Line Options}}K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Options}}}{\f1\fs20 }{\cs58\f1\fs20\super #{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Options}}}{\f1\fs20 }{\cs58\f1\fs20\super ${\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Command Line Options}}}{\f1\fs20 }{\cs58\f1\fs20\super +{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 COMMAND LINE OPTIONS +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 All WinBoard options can be set e +ither on the command line (if you start WinBoard by typing into an MSDOS Prompt box), in the Properties/Shortcut/Target box of a Windows shortcut, in a }{\f1\uldb settings file}{\v\f1 settings}{\f1 +, or in the Additional Options box of the WinBoard startup dialog. Exactly the same syntax is used in all four places. Most options can also be set from the menus and saved using }{\f1\uldb Save Settings Now}{\v\f1 SaveSettings}{\f1 or }{\f1\uldb +Save Settings on Exit}{\v\f1 SaveSettingsOnExit}{\f1 , so most people will not need to read this section. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Most options have two names, a long + one that is easy to read and a short one that is easy to type. To turn on a boolean (true/false) option }{\i\f1 opt}{\f1 , you can just give its short name preceded by a minus sign or slash (-}{\i\f1 opt}{\f1 or /}{\i\f1 opt}{\f1 +); to turn one off, prefix the short name by an \'93x\'94 or an extra minus sign (-x}{\i\f1 opt}{\f1 or /-}{\i\f1 opt}{\f1 +). To set any other kind of option, or to set a boolean option using its long name, give the value after the name, separated by a space, colon, or equal sign. (-}{\i\f1 opt}{\f1 23 or /}{\i\f1 option}{\f1 +:true). If a string option contains spaces or special characters, enclose it in double quotes and use the \\ quoting convention of C to name the special characters. Alternatively, you can enclose a string value in curly braces (/opt=\{string\} +), as long as the value does not contain a closing curly brace. If a filename option contains spaces, enclose it in either single or double quotes. In filename options, the \\ + character is not treated specially, so use single quotes around the outside of the value if it has double quotes inside (and vice versa). +\par When you star +t WinBoard, it will pop up the Startup dialog box unless you provide sufficient options on the command line for WinBoard to determine which major mode to be in and what engines to use or chess server to connect to. To bypass this box, you must at minimum +give one of the three options }{\f1\uldb /cp}{\v\f1 cp}{\f1 , /}{\f1\uldb ics}{\v\f1 ics}{\f1 , or /}{\f1\uldb ncp}{\v\f1 ncp}{\f1 . If you give the /cp option, you must also give the /}{\f1\uldb fcp}{\v\f1 fcp}{\f1 and /}{\f1\uldb scp}{\v\f1 scp}{\f1 + options. If you give the /ics option, you must also give the /}{\f1\uldb icshost}{\v\f1 icshost}{\f1 option. +\par }\pard\plain \s29\ql \fi-240\li360\ri0\sb60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin360\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\uldb Chess Engine Options}{\v\f1 ChessEngineOptions}{\f1 +\par }{\f1\uldb Internet Chess Server Options}{\v\f1 InternetChessServerOptions}{\f1 +\par }{\f1\uldb Load and Save Options}{\v\f1 LoadAndSaveOptions}{\f1 +\par }{\f1\uldb User Interface Options}{\v\f1 UserInterfaceOptions}{\f1 +\par }{\f1\uldb Other Options}{\v\f1 OtherOptions}{\f1 +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Chess Engine Options}}${\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Chess Engine Options}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ChessEngineOptions}}+{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 Chess Engine Options +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 cp}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 cp}}}{\f1 /cp}{\b0\f1 or}{\f1 /xcp}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 chessProgram}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 chessProgram}}}{\f1 /chessProgram }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If true, puts WinBoard + in chess engine mode. In this mode, you can play against a chess program running on your PC or use it as an analysis partner. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 tc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 tc}}}{\f1 /tc }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 timeControl}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 timeControl}}}{\f1 /timeControl }{\i\f1 minutes[:seconds] +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Each player begins with his clock set to the timeControl period. Default: 5 minutes. Th +e additional options movesPerSession and timeIncrement are mutually exclusive. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 mps}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 mps}}}{\f1 /mps }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 movesPerSession}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 movesPerSession}}}{\f1 /movesPerSession }{\i\f1 moves}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 inc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 inc}}}{\f1 /inc }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 timeIncrement}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 timeIncrement}}}{\f1 /timeIncrement }{\i\f1 seconds +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use -timeIncrement 0 if you want to require the entire game to be played in one timeControl period, with +no increment. Default: -1, which specifies movesPerSession mode. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 clock }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 clock }}}{\f1 /clock }{\b0\f1 or }{\f1 /xclock}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 clockMode}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 clockMode}}}{\f1 /clockMode }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Determines whether or not to display the chess clocks. If clockMode is False, the clocks are not shown, but the side that is to play next is +still highlighted. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 st}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 st}}}{\f1 /st }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 searchTime }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 searchTime }}}{\f1 /searchTime }{\i\f1 minutes[:seconds]}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Tells the chess engine to spend at most the given amount + of time searching for each of its moves. Without this option, the engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 sd}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 sd}}}{\f1 /depth }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 searchDepth}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 searchDepth}}}{\f1 /searchDepth }{\i\f1 number}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the engine chooses its search depth based on the number of moves and amount of time remaining until the next time +control. With the option, the engine will cut off its search early if it reaches the specified depth. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{ +\f1\revised\revauth1\revdttm-1506646559 ponder}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 ponder}}}{\f1 /ponder}{\b0\f1 or }{\f1 /xponder}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +\cs58\f1\revised\super\revauth1\revdttm-1506646559 K}{\f1\revised\revauth1\revdttm-1506646559 ponderNextMove}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto +\nowidctlpar\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\revised\super\revauth1\revdttm-1506646559 #}{\f1\revised\revauth1\revdttm-1506646559 ponderNextMove}}}{\f1 + /ponderNextMove }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Ponder Next Move}{\v\f1 ponderNextMoveCmd}{\f1 option. Default: True. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 thinking}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 thinking}}}{\f1 /thinking}{\b0\f1 or }{\f1 /xthinking}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 showThinking}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 showThinking}}}{\f1 /showThinking }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Show Thinking}{\v\f1 showThinkingCmd}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 periodic }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 periodic}}}{\f1 /periodic }{\b0\f1 or }{\f1 /xperiodic}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 periodicUpdates}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 periodicUpdates}}}{\f1 /periodicUpdates }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Periodic Updates}{\v\f1 periodicUpdatesCmd}{\f1 option. Default: True. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 mg }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 mg }}}{\f1 /mg }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 matchGames }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 matchGames}}}{\f1 /matchGames }{\i\f1 n +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Automatically runs an }{\b\i\f1 n}{\i\f1 -}{\f1 +game match between two chess engines, with alternating colors. If the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile}{\f1 or }{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile}{\f1 + option is set, WinBoard will start each game with the given opening moves or the given position; otherwise, the games will start with the standard initial chess position. If the }{\f1\uldb saveGameFile}{\v\f1 saveGameFile}{\f1 + option is set, a move record for the match will be appended to the specified file. If the }{\f1\uldb savePositionFile}{\v\f1 savePositionFile}{\f1 option is set, the final position reached + in each game of the match will be appended to the specified file. When the match is over, WinBoard will display the match score and exit. Default: 0 (do not run a match). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 mm }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 mm }}}{\f1 /mm }{\b0\f1 or }{\f1 /xmm}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 matchMode }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 matchMode }}}{\f1 /matchMode }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Provided for backward compatibility. If true and matchGames=0, sets matchGames=1. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 fd}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 fd }}}{\f1 /fd }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstDirectory}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstDirectory}}}{\f1 /firstDirectory }{\i\f1 dir\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 sd}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 sd }}}{\f1 /sd }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondDirectory}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondDirectory}}}{\f1 /secondDirectory }{\i\f1 dir}{\cs58\f1\super }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 fcp }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 fcp }}}{\f1 /fcp }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstChessProgram }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstChessProgram }}}{\f1 /firstChessProgram }{\i\f1 command\line }{\cs58\f1\super +K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 scp }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 scp }}}{\f1 /scp }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondChessProgram }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondChessProgram }}}{\f1 /secondChessProgram }{\i\f1 command}{\cs58\f1\super }{ +\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Names of the chess engines and working directories in which th +ey are to be run. The second chess engine is started only in Two Machines (match) mode. These arguments are parsed as filenames; that is, the \\ character is interpreted literally, not as a C-style escape. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 The }{\i\f1 dir}{\f1 argument specifies the initial working dire +ctory for the chess engine. It should usually be the directory where the engine and its working files are installed. If }{\i\f1 dir}{\f1 + is not an absolute pathname, it is interpreted relative to the directory from which WinBoard.exe itself was loaded. The }{\i\f1 dir}{\f1 argument + is ignored if the chess engine is being run on a remote machine (see firstHost and secondHost below). The default value for }{\i\f1 dir }{\f1 "", meaning that the chess engine is expected to be installed in the same directory as WinBoard. +\par The }{\i\f1 command}{\f1 argument is actually the command line to the chess engine, so if the engine itself needs command line arguments, you can include them by enclosing }{\i\f1 command}{\f1 + in single or double quotes. If the engine name or an engine argument has a space in it, use single quotes around the whole }{\i\f1 command, }{\f1 +and inside them use double quotes around each item that contains spaces. If the engine name has more than one period in it (for example, }{\f2 QChess1.5.exe}{\f1 ), you must include the "}{\f2 .exe}{\f1 +" extension; otherwise you can leave it out. The default value for }{\i\f1 command}{\f1 is "", which brings up the startup dialog to ask which engines you want. +\par Examples: +\par }\pard\plain \s19\ql \fi-518\li1036\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin1036\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2 WinBoard /cp /fd="C:\\Program Files\\ +Crafty" /fcp=WCrafty-15.12.exe /scp=GNUChess +\par WinBoard /cp /fd="C:\\Miracle Games" /fcp='"Miracle Chess.exe" /wow' /scp=GNUChess +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 fh }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 fh }}}{\f1 /fh }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstHost }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstHost }}}{\f1 /firstHost }{\i\f1 host\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 sh }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 sh }}}{\f1 /sh }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondHost }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondHost }}}{\f1 /secondHost }{\i\f1 host}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Hosts on which the chess engines are to run. The default for each is "localhost". If you specify another host, WinBoard}{\i\f1 }{\f1 uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1 to run the chess program there. The /fd and /sd flags do not work + in conjunction with these flags; if you need a remote chess engine to run somewhere other than your default login directory on the remote machine, you will have to include a "cd" command in the argument to /fcp or /scp. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 initString}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 initString}}}{\f1 /firstInitString }{\b0\f1 or }{\f1 /initString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondInitString}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondInitString}}}{\f1 /secondInitString }{\i\f1 string}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 The strings that are sent to initialize the chess engines. Default: "new\\nrandom\\n". The "\\ +n" sequences represent newlines. You can type "\\n" on the command line or in a }{\f1\uldb settings file}{\v\f1 settings}{\f1 , and WinBoard will convert it to a newline. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 All chess engines require the "new" command to start a new game. +\par You can remove the "random" command if you like; including it causes GNU Chess to randomize its move selection slightly so that it doesn't play the same moves in every game. Ev +en without "random", GNU Chess randomizes its choice of moves from its opening book. You can also try adding other commands to the initString; see the GNU Chess documentati{\*\bkmkstart _Hlt386545814}o{\*\bkmkstart _Hlt386567280}{\*\bkmkend _Hlt386545814} +n{\*\bkmkend _Hlt386567280} (gnuchess.txt) for details. Crafty ignores the "random" command; see its documentation for the commands it accepts. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 initString}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 initString}}}{\f1 /firstComputerString }{\i\f1 string\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondInitString}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondInitString}}}{\f1 /secondComputerString }{\i\f1 string}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If the chess engine is playing against another computer program (whether locally or on a chess server), by default the command "computer\\n" is sent to it. Som +e chess engines change their playing style when they receive this command. If you do not want the engine to know when it is playing another computer, you can set the string to "". +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 fb }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 fb }}}{\f1 /fb }{\b0\f1 or }{\f1 /xfb}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstPlaysBlack }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstPlaysBlack}}}{\f1 /firstPlaysBlack }{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 In games between two chess + programs, the firstChessProgram normally plays white. (This is a change from earlier versions of WinBoard.) If this option is True, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still a +lternate in subsequent games. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 reuse}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 reuse}}}{\f1 /reuse}{\cs58\f1\super }{\b0\f1 or }{\f1 /xreuse}{\b0\f1 , or }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 reuseFirst}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 reuseFirst}}}{\f1 /reuseFirst}{\i\f1 true|false\line }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 reuse2}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 reuse2}}}{\f1 /reuse2}{\cs58\f1\super }{\b0\f1 or }{\f1 /xreuse2}{\b0\f1 , or }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 reuseSecond}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 reuseSecond}}}{\f1 /reuseSecond}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is True (the default), WinBoard}{\i\f1 }{\f1 +uses the same chess engine process repeatedly when playing multiple games. If t +he option is False, WinBoard kills off the chess engine after every game and starts a fresh one for the next game. Starting a fresh chess engine can be slow, so it is not recommended. However, some chess engines may not work properly when reused, such as +versions of Crafty earlier than 12.0. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstProtocolVersion}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstProtocolVersion}}}{\f1 /firstProtocolVersion }{\i\f1 ver\line }{\cs58\f1\super +K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondProtocolVersion}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondProtocolVersion}}}{\f1 /secondProtocolVersion }{\i\f1 ver}{\f1 + +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is no +t sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Internet Chess Server Options}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Internet Chess Server Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 InternetChessServerOptions}}}{\f1\fs20 Internet Chess Server Options +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ics }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ics }}}{\f1 /ics }{\b0\f1 or }{\f1 /xics}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 internetChessServerMode}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 internetChessServerMode}}}{\f1 /internetChessServerMode}{\i\f1 true|false}{\f1 + +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Connect with an Interne +t Chess Server to play chess against its other users, observe games they are playing, or review games that have recently finished. See }{\f1\uldb ICS Client}{\v\f1 ICSClient}{\f1 Default: False. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 You can create a script file containing ICS commands that WinBoard will type in for y +ou whenever you connect to the ICS. See }{\f1\uldb ICS Logon}{\v\f1 ICSLogon}{\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icshost }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icshost }}}{\f1 /icshost }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 internetChessServerHost }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 internetChessServerHost }}}{\f1 /internetChessServerHost }{\i\f1 hostname}{\f1 + +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +The host name or numeric address of the Internet Chess Server to connect to when in ICS mode. The default is the empty string, which causes WinBoard to pop up a menu of known ICS sites. The file ics-address{\*\bkmkstart _Hlt386546221}e +{\*\bkmkend _Hlt386546221}s.txt in the WinBoard distribution gives slightly more information on these sites. It includes their numeric addresses, which you can use if your site does not have a working name server. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icsport }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icsport }}}{\f1 /icsport }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 internetChessServerPort }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 internetChessServerPort }}}{\f1 /internetChessServerPort }{\i\f1 portnumber}{\f1 + +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 The port number to use when connecting to a chess server in ICS mode. Default: 5000. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 via }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 via }}}{\f1 /icshelper }{\i\f1 program}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 An external helper program used to communicate with the chess server. Typically }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 timestamp}}}{\i\f1 timestamp}{\f1 + for the ICC (chessclub.com) or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 + timeseal}}}{\i\f1 timeseal}{\f1 for FICS (freechess.org, eics.daimi.aau.dk, etc.). This option is shorthand for \'93/useTelnet /telnetProgram }{\i\f1 program}{\f1 \'94}{\b\f1 . +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 telnet}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 telnet}}}{\f1 /telnet}{\b0\f1 or }{\f1 /xtelnet}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 useTelnet}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 useTelnet}}}{\f1 /useTelnet}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 This option is poorly named; it should be called }{\b\f1 /useHelper}{\f1 +. If set to True, it instructs WinBoard to use an external helper program to communicate with the ICS, as specified by the telnetProgram option. The external program must be a pure console application that can communicate with WinBoard through pipes; the +Windows telnet application is not suitable. If the option is False (the default), WinBoard communicates with the ICS by opening a Winsock TCP socket and using its own internal implementation of the telnet protocol. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 gateway}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 gateway}}}{\f1 /gateway }{\i\f1 hostname}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is set to a host name, WinBoard uses }{\f1\uldb rsh}{\v\f1 rsh}{\f1 + to run the telnetProgram remotely on the given host to communicate with the Internet Chess Server instead of using its own internal implementation of the telnet protocol. See the }{\f1\uldb FIREWALLS}{\v\f1 FIREWALLS}{\f1 section below for an +explanation of when this option is useful. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 telnetProgram}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 telnetProgram}}}{\f1 /telnetProgram }{\i\f1 program}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 This option is poorly named; it should be called }{\b\f1 /helperProgram}{\f1 +. It gives the name of the remote or external helper program to be used with the gateway or useTelnet option. The default is +"telnet". The telnet program is invoked with the value of internetChessServer as the first argument and the value of internetChessServerPort as the second argument on its command line. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icscom }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icscom }}}{\f1 /icscom }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 internetChessServerComPort }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 internetChessServerComPort }}}{\f1 /internetChessServerComPort }{\i\f1 name}{\f1 + +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is set, +WinBoard communicates with the Internet Chess Server using a serial communication port instead of a network connection. Use this option if your machine is not connected to a network (not even via SLIP or PPP), but you do have Internet access through anoth +er machine by dialing in using a modem or by connecting directly to a serial terminal port. Example: +\par }\pard\plain \s19\ql \li120\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin120\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2 WinBoard /ics /icscom:com1 +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +After you start WinBoard in this way, type whatever modem commands are necessary to dial out to your Internet provider and log in. You may need to turn off }{\f1\uldb Local Line Editing}{\v\f1 LocalLineEditing}{\f1 + on the Options menu while typing commands to the modem, but turn it on again afterwards. Then telnet to the ICS, using a command like "telnet chessclub.com 5000". Important: See the paragraph in the }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\f1 + section below about extra echoes. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 comPortSettings }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 comPortSettings }}}{\f1 /comPortSettings}{\b0\f1 }{\i\f1 \'93 +dataRate,dataBits,parity,stopBits,flow\'94 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +This option allows serial port parameters to be set from the command line or a settings file. The values are simply filled in to the }{\f1\uldb Communications}{\v\f1 Communications}{\f1 dialog. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icslogon }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icslogon }}}{\f1 /icslogon }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 internetChessServerLogonScript }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 internetChessServerLogonScript }}}{\f1 /internetChessServerLogonScript }{\i\f1 +filename +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 This option lets you change the name used for the }{\f1\uldb ICS Logon}{\v\f1 ICSLogon}{\f1 + file. Default: "ICS.ini". The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autocomm }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autocomm }}}{\f1 /autocomm }{\b0\f1 or }{\f1 /xautocomm}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autoComment }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autoComment }}}{\f1 /autoComment}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Auto Comment}{\v\f1 AutoCommentCmd}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autoflag }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autoflag }}}{\f1 /autoflag}{\b0\f1 or }{\f1 /xautoflag}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autoCallFlag }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autoCallFlag }}}{\f1 /autoCallFlag}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Auto Flag}{\v\f1\uldb AutoFlag}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autobs }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autobs }}}{\f1 /autobs}{\b0\f1 or }{\f1 /xautobs}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autoObserve }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autoObserveCmd }}}{\f1 /autoObserve}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Auto Observe}{\v\f1 autoObserveCmd}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 moves }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 moves }}}{\f1 /moves}{\b0\f1 or }{\f1 /xmoves}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 getMoveList }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 getMoveList }}}{\f1 /getMoveList}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Get Move List}{\v\f1 getMoveListCmd}{\f1 option. Default: True. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 edit}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 edit}}}{\f1 /edit}{\cs58\f1\super }{\b0\f1 or }{\f1 /xedit}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 localLineEditing}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 localLineEditingOption}}}{\f1 /localLineEditing}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Local Line Editing}{\v\f1 localLineEditing}{\f1 option. Default: True. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 quiet }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 quiet }}}{\f1 /quiet }{\b0\f1 or }{\f1 /xquiet}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 quietPlay }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 quietPlay }}}{\f1 /quietPlay}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Quiet Play}{\v\f1 quietPlayCmd}{\f1 option. Default: False +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 blindfold (option)}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 opt_blindfold }}}{\f1 /blindfold }{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Blindfold}{\v\f1 BlindfoldCmd}{\f1 option. Default: False +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ pre}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ pre}}}{\f1 /pre }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ xpre}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ xpre}}}{\f1 /xpre}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premove (option)}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premove}}}{\f1 /premove}{\i\f1 true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1 + option. If set to True, the premove feature is enabled. If set to False, premove is disabled and the other }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1 settings are ignored. Default: False. +\par }\pard\plain \s2\ql \li115\ri0\sb120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ preWhite}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ preWhite}}}{\f1 /prewhite }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ xpreWhite}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ xpreWhite}}}{\f1 /xprewhite}{\b0\f1 , or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premoveWhite}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premoveWhite}}}{\f1 /premoveWhite}{\i\f1 true|false +\par }\pard \s2\ql \li115\ri0\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premoveWhiteText}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premoveWhiteText}}}{\f1 /premoveWhiteText}{\i\f1 movetext +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If }{\b\f1 premoveWhite}{\f1 + is set to True and you are playing white in an ICS game, the text specified by the }{\b\f1 premoveWhiteText}{\f1 option is sent to the ICS as soon as the game starts. These options can be set from the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1 + section of the }{\f1\uldb ICS Options}{\v\f1\uldb ICSOptions}{\f1 dialog box. The default for }{\b\f1 premoveWhite}{\f1 is False. +\par }\pard\plain \s2\ql \li115\ri0\sb120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ preBlack}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ preBlack}}}{\f1 /preblack }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ xpreBlack}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ xpreBlack}}}{\f1 /xpreblack}{\b0\f1 , or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premoveBlack}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premoveBlack}}}{\f1 /premoveBlack}{\i\f1 true|false +\par }\pard \s2\ql \li115\ri0\sa120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premoveBlackText}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premoveBlackText}}}{\f1 /premoveBlackText}{\i\f1 movetext +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If }{\b\f1 premoveBlack}{\f1 + is set to True and you are playing black in an ICS game, the text specified by the }{\b\f1 premoveBlackText}{\f1 option is sent to the ICS as soon as the first move is received from your opponent, even if you make a different premove on the board befor +e the first white move is received. These options can be set from the }{\f1\uldb Premove}{\v\f1 PremoveCmd}{\f1 section of the }{\f1\uldb ICS Options}{\v\f1\uldb ICSOptions}{\f1 dialog box. The default for }{\b\f1 premoveBlack}{\f1 is False. +\par }\pard\plain \ql \li115\ri0\sb120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ alarm}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ alarm}}}{\b /alarm }{or}{\b }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ xalarm}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ xalarm}}}{\b /xalarm}{, or }{\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ icsAlarm}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ icsAlarm}}}{\b /icsAlarm }{\b\i true|false}{\b +\par }\pard \ql \li115\ri0\sa120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ icsAlarmTime}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ icsAlarmTime}}}{\b /icsAlarmTime }{\b\i milliseconds +\par }\pard \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 {When }{\b icsAlarm}{ is set to True, the }{\uldb alarm sound}{\v soundIcsAlarm}{ is played when your clock counts down to }{\b icsAlarmTime}{ + seconds. For ICS games with time controls that include an increment, the alarm will sound each time the clock counts down to the }{\b icsAlarmTime}{. The }{\b icsAlarmTime}{ can be set by selecting }{\uldb ICS Alarm}{\v ICSAlarm}{ from the }{\uldb +ICS options}{\v\uldb ICSOptions}{ dialog. The default is 5 seconds. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Load and Save Options}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Load and Save Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 LoadandSaveOptions}}}{\b0\f1\fs18\up6 }{\f1\fs20 Load and Save Options +\par }\pard\plain \s2\ql \li115\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 lgf }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 lgf }}}{\f1 /lgf }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 loadGameFile }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 loadGameFile }}}{\f1 /loadGameFile }{\i\f1 filename}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 lgi }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 lgi }}}{\f1 /lgi }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 loadGameIndex }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 loadGameIndex }}}{\f1 /loadGameIndex }{\i\f1 N}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If loadGameFile is set, WinBoard rea +ds the specified game file at startup. You can leave out the name of this option and give just the file name, which is handy if you want to configure WinBoard as a game viewer with a browser such as the Windows Explorer or Netscape. The filename is interp +r +eted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If there is more than one game in the file, WinBoard pops up a menu of the available games, with entries based on their PGN tags. If loadGameIndex is set + to }{\i\f1 N, }{\f1 the menu is suppressed and the }{\i\f1 N}{\f1 th game found in the file is loaded immediately. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 td }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 td }}}{\f1 /td }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 timeDelay }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 timeDelay }}}{\f1 /timeDelay }{\i\f1 seconds}{\f1 +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Time delay between moves during }{\f1\uldb Load Game}{\v\f1 LoadGame}{\f1 +. Fractional seconds are allowed; try 0.4. A time delay value of -1 tells WinBoard not to step through game files automatically. Default: 1 second. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 sgf }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 sgf }}}{\f1 /sgf }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 saveGameFile }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 saveGameFile }}}{\f1 /saveGameFile }{\i\f1 filename}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is set, WinBoard appends a record of every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard output. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autosave }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autosave }}}{\f1 /autosave}{\b0\f1 or }{\f1 /xautosave}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 autoSaveGames }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 autoSaveGames }}}{\f1 /autoSaveGames}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is True, at the end of every game WinBoard prompts you for a filename and appends a record of the game to the file you specify. Ignored if saveGameFile is set. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 lpf}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 lpf}}}{\f1 /lpf }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 loadPositionFile }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 loadPositionFile }}}{\f1 /loadPositionFile }{\i\f1 filename}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 lpi }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 lpi }}}{\f1 /lpi }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 loadPositionIndex }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 loadPositionIndex }}}{\f1 /loadPositionIndex }{\i\f1 N}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If loadPositionFile is set, WinBoard loads the specified position file at startup. The filename is interpreted relative to WinBoard's initial working directory. The filename "-" specifies the standard input. If loadPositionIndex is set to }{\i\f1 N}{\f1 +, the }{\i\f1 N}{\f1 th position found in the file is loaded; otherwise the first is loaded. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 spf }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 spf }}}{\f1 /spf }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 savePositionFile }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 savePositionFile }}}{\f1 /savePositionFile }{\i\f1 filename}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is set +, WinBoard appends the final position reached in every game played to the specified file. The filename is interpreted relative to WinBoard's initial working directory. The file name "-" specifies the standard output. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 oldsave }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 oldsave }}}{\f1 /oldsave }{\b0\f1 or }{\f1 /xoldsave}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 oldSaveStyle }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 oldSaveStyle }}}{\f1 /oldSaveStyle}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If this option is False (the default), WinBoard saves games in PGN (portable game notation) and positions in FEN (Forsythe-Edwards notation). If the option is True, a save style that is compatible with older versions of WinBoard (and of x +board) is used instead. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 User Interface Options}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 User Interface Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 UserInterfaceOptions}}}{\b0\f1\fs18\up6 }{\f1\fs20 User Interface Options +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 top}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 top}}}{\f1 /top }{\b0\f1 or }{\f1 /xtop}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 alwaysOnTop}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 alwaysOnTopOpt}}}{\f1 /alwaysOnTop}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Always On Top}{\v\f1 AlwaysOnTop}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 queen}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 queen}}}{\f1 /queen}{\b0\f1 or }{\f1 /xqueen}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 alwaysPromoteToQueen}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 alwaysPromoteToQueen}}}{\f1 /alwaysPromoteToQueen}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Always Queen}{\v\f1 AlwaysQueen}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 drag}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 drag}}}{\f1 /drag}{\b0\f1 or }{\f1 /xdrag}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 animateDragging}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 animateDraggingOpt}}}{\f1 /animateDragging}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Animate Dragging}{\v\f1 animateDragging}{\f1 option. Default: True. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 animate}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 animate}}}{\f1 /animate }{\b0\f1 or }{\f1 /xanimate}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 animateMoving}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 animateMovingOpt}}}{\f1 /animateMoving}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Animate Moving}{\v\f1 animateMoving}{\f1 option. Default: True. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 flip}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 flip}}}{\f1 /flip }{\b0\f1 or }{\f1 /xflip}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 flipView}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 flipViewOption}}}{\f1 /flipView}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +If Auto Flip View is not set, or if you are observing but not participating in a game, then the positioning of the board at the start of each game depends on the flipView option. If flipView is False (the defaul +t), the board is positioned so that the white pawns move from the bottom to the top; if True, the black pawns move from the bottom to the top. In any case, the }{\f1\uldb Flip View}{\v\f1 FlipView}{\f1 + menu command can be used to flip the board after the game starts +\par }\pard\plain \ql \li115\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin115\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ autoflip}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ autoflip}}}{\b /autoflip}{ or }{\b /xautoflip}{, or }{\cs58\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ autoFlipView}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ autoFlipViewOption}}}{\b /autoFlipView }{\b\i true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Auto Flip View}{\v\f1 AutoFlipView}{\f1 option. Default: True. +\par }\pard\plain \ql \li115\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin115\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\b\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ autoraise}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ autoraise}}}{\b /autoraise}{ or }{\b /xautoraise}{, or }{\cs58\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ autoRaiseBoardOption}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ autoRaiseBoardOption}}}{\b /autoRaiseBoard }{\b\i true|false +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Auto Raise Board}{\v\f1 AutoFlipView}{\f1 option. Default: True. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 highdrag}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 highdrag}}}{\f1 /highdrag }{\b0\f1 or }{\f1 /xhighdrag}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 highlightDragging\tab \tab }}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 highlightDraggingOpt}}}{\f1 /highlightDragging }{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Highlight Dragging}{\v\f1 highlightDragging}{\f1 option. Default: False. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 highlight}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 highlight}}}{\f1 /highlight }{\b0\f1 or }{\f1 /xhighlight}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 highlightLastMove}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 highlightLastMoveOpt}}}{\f1 /highlightLastMove}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Highlight Last Move}{\v\f1 highlightLastMoveOpt}{\f1 + option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 popup}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 popup}}}{\f1 /exit}{\b0\f1 or }{\f1 /xexit}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 popupMoveErrors}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 popupMoveErrorsOpt}}}{\f1 /popupExitMessage}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Popup Exit Message}{\v\f1 popupExitMessageCmd}{\f1 + menu option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 popup}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 popup}}}{\f1 /popup}{\b0\f1 or }{\f1 /xpopup}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 popupMoveErrors}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 popupMoveErrorsOpt}}}{\f1 /popupMoveErrors}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Popup Move Errors}{\v\f1 popupMoveErrorsCmd}{\f1 + menu option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 coords }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 coords }}}{\f1 /coords }{\b0\f1 or }{\f1 /xcoords}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 showCoords}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 showCoords}}}{\f1 /showCoords}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Show Coords}{\v\f1 showCoords}{\f1 option. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 legal }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 legal }}}{\f1 /legal }{\b0\f1 or }{\f1 /xlegal}{\b0\f1 , or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 testLegality }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 testLegality }}}{\f1 /testLegality}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Test Legality}{\v\f1 testLegalityCmd}{\f1 option. Default: True. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 size }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 size }}}{\f1 /size }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 boardSize }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 boardSize }}}{\f1 /boardSize }{\i\f1 sizename}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the }{\f1\uldb Board Size}{\v\f1 BoardSizeCmd}{\f1 + option. Also chooses which board size any following Font options will affect. The default is the largest size that will fit on your screen. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ wpc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ wpc}}}{\f1 /wpc}{\b0\f1 or }{\cs58\b0\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 whitePieceColor}}}{\cs58\f1\super #{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 whitePieceColor}}}{\f1 /whitePieceColor }{\i\f1 color\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ bpc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ bpc}}}{\f1 /bpc }{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 blackPieceColor}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 blackPieceColor}}}{\f1 /blackPieceColor }{\i\f1 color\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ lsc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ lsc}}}{\f1 /lsc }{\b0\f1 or}{\i\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 lightSquareColor}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 lightSquareColor}}}{\f1 /lightSquareColor }{\i\f1 color}{\cs58\f1\super }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ dsc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ dsc}}}{\f1 /dsc }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 darkSquareColor}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 darkSquareColor}}}{\f1 /darkSquareColor }{\i\f1 color}{\cs58\f1\super }{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Color specifications for white pieces, black pieces, light squares, and dark squares. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\i\f1 #rrggbb}{\f1 ) or in decimal (as }{\i\f1 rrr,ggg,bbb}{\f1 +). In the latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFFCC, #202020, #C8C365, and #77A26D. Available on the }{\f1\uldb Board Colors}{\v\f1 BoardColors}{\f1 + section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\f1 dialog. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you are using a }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 grayscale}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 grayscale}}}{\f1 grayscale monitor, try setting the colors to: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2\fs20 -whitePieceColor:#FFFFFF\line +-blackPieceColor:#000000\line -lightSquareColor:#CCCCCC\line -darkSquareColor:#999999 +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ hsc}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ hsc}}}{\f1 /hsc }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 highlightSquareColor}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 highlightSquareColor}}}{\f1 /highlightSquareColor }{\i\f1 color}{\cs58\f1\super }{\f1 \line }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super K}{ phc}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\super #}{ phc}}}{\f1 /phc }{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 premoveHighlightColor}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 premoveHighlightColor}}}{\f1 /premoveHighlightColor }{\i\f1 color}{\cs58\f1\super +}{\f1 +\par }{\b0\f1 Color specifications for the }{\b0\f1\uldb Highlight Last Move}{\b0\v\f1 HighlightLastMove}{\b0\f1 and }{\b0\f1\uldb Premove}{\b0\v\f1 PremoveCmd}{\b0\f1 + options, respectively. Colors can be specified only by red/green/blue intensity, either in hexadecimal (as }{\b0\i\f1 #rrggbb}{\b0\f1 ) or in decimal (as }{\b0\i\f1 rrr,ggg,bbb}{\b0\f1 ). In the + latter format, you must enclose the string in quotation marks if you leave spaces after the commas. The defaults are respectively #FFFF00 and #FF0000, respectively. +\par }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 mono }}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 mono }}}{\f1 /mono}{\b0\f1 or }{\f1 /xmono}{\b0\f1 ,}{\f1 }{\b0\f1 or +}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 monoMode}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 monoMode}}}{\f1 /monoMode}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Determines whether WinBoard displays its pi +eces and squares in black and white (True) or color (False, the default). Available in the }{\f1\uldb Board Colors}{\v\f1 BoardColors}{\f1 section of the }{\f1\uldb Board Options}{\v\f1 BoardOptions}{\f1 dialog. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorShout}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorShout}}}{\f1 /colorShout}{\i\f1 \'93effects color\'94\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorSShout}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorSShout}}}{\f1 /colorSShout }{\i\f1 \'93effects color\'94\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorChannel1}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorChannel1}}}{\f1 /colorChannel1 }{\i\f1 \'93effects color\'94}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorChannel}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorChannel}}}{\f1 /colorChannel }{\i\f1 \'93effects color\'94}{\f1 \line }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorKibitz}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorKibitz}}}{\f1 /colorKibitz }{\i\f1 \'93effects color\'94}{\f1 +\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorTell}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorTell}}}{\f1 /colorTell }{\i\f1 \'93effects color\'94}{\f1 \line }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorChallenge}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorChallenge}}}{\f1 /colorChallenge }{\i\f1 \'93effects color\'94}{ +\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorRequest}}# +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorRequest}}}{\f1 /colorRequest }{\i\f1 \'93 +effects color\'94}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 + colorSeek}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorSeek}}}{\f1 /colorSeek }{\i\f1 \'93 +effects color\'94}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 + colorNormal}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorNormal}}}{\f1 /colorNormal }{ +\i\f1 \'93effects color\'94 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Select colors and effects +to colorize messages in the ICS Interaction window. The effects may be any combination of }{\b\f1 b}{\f1 old, }{\b\f1 i}{\f1 talic, }{\b\f1 u}{\f1 nderline, and }{\b\f1 s}{\f1 trikeout. Colors are specified as for squares and pieces. Available on the }{ +\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1 section of the }{\f1\uldb ICS Options}{\v\f1 ICSOptions}{\f1 + dialog. Limitation: On 256 color displays, Windows chooses the nearest solid color from the system palette, which will not always be close to the color you selected. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorBackground}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorBackground}}}{\f1 /colorBackground }{\i\f1 color +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the background color for the ICS Interaction window. Available on the }{\f1\uldb +ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1 section of the }{\f1\uldb ICS Options}{\v\f1 ICSOptions}{\f1 dialog. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorize}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorize}}}{\f1 /colorize}{\cs58\f1\super }{\b0\f1 or }{\f1 /xcolorize}{\b0\f1 , or}{\f1 }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 colorizeMessages}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 colorizeMessages}}}{\f1 /colorizeMessages}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If True, WinBoard colorizes messages in the ICS Interaction window with the + colors listed above. Default: True. Available in the }{\f1\uldb ICS Interaction Colors}{\v\f1 ICSInteractionColors}{\f1 section of the }{\f1\uldb ICS Options}{\v\f1 ICSOptions}{\f1 dialog. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 clockFont}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 clockFont}}}{\f1 /clockFont \'93}{\i\f1 fontname:size effects}{\f1 \'94\line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 messageFont}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 messageFont}}}{\f1 /messageFont \'93}{\i\f1 fontname:size effects}{\f1 \'94\line }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 coordFont}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 coordFont}}}{\f1 /coordFont \'93}{\i\f1 fontname:size effects}{\f1 \'94 +\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 tagsFont}}#{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 tagsFont}}}{\f1 /tagsFont \'93}{\i\f1 fontname:size effects}{\f1 \'94 +\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 commentFont}}# +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 commentFont}}}{\f1 /commentFont \'93}{\i\f1 +fontname:size effects}{\f1 \'94\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 + icsFont}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icsFont}}}{\f1 /icsFont \'93}{\i\f1 +fontname:size effects}{\f1 \'94 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +The fonts used respectively for the clocks, the message display line, rank and file coordinate labels, the Edit Tags dialog, the Edit Comment + dialog, and the ICS Interaction window. These options may be given more than once. Each occurrence affects the fonts for the current board size; that is, the size given in the last preceding /boardSize option, if any, or else the default size. The font s +ize may contain a decimal point, and the effects may be any combination of }{\b\f1 b}{\f1 old, }{\b\f1 i}{\f1 talic, }{\b\f1 u}{\f1 nderline, and }{\b\f1 s}{\f1 trikeout. Example: }{\f2\fs16 /clockFont="Arial:20.0 bi".}{\f1 Available on the }{\f1\uldb +Fonts}{\v\f1 Fonts}{\f1 menu.}{\f2\fs16 +\par }\pard\plain \s2\ql \li115\ri0\sb120\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundShout}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundShout}}}{ /soundShout}{\i sound\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundSShout}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundSShout}}}{ /soundSShout }{\i sound\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundChannel1}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundChannel1}}}{ /soundChannel1 }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundChannel}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundChannel}}}{ /soundChannel }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundKibitz}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundKibitz}}}{ /soundKibitz }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundTell}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundTell}}}{ /soundTell }{\i sound}{\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundChallenge}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundChallenge}}}{ /soundChallenge }{\i sound}{\line }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundRequest}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundRequest}}}{ /soundRequest }{\i sound}{\line }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundMove}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundMove}}}{ /soundMove }{\i sound}{\cs58\f1\super }{\line }{\cs58\f1\super K +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundBell}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundBell}}}{ /soundBell }{\i sound}{\cs58\f1\super }{ +\par }\pard \s2\ql \li115\ri0\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundIcsWin}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundIcsWin}}}{\f1 /soundIcsWin }{\i\f1 sound}{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundIcsLoss}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundIcsLoss}}}{\f1 /soundIcsLoss }{\i\f1 sound}{\cs58\f1\super }{\f1 \line }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundIcsDraw}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundIcsDraw}}}{\f1 /soundIcsDraw }{\i\f1 sound}{\cs58\f1\super }{\f1 \line }{ +\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundIcsUnfinished}}# +{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundIcsUnfinished}}}{\f1 /soundIcsUnfinished }{ +\i\f1 sound}{\cs58\f1\super }{\f1 +\par }\pard \s2\ql \li115\ri0\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin115\itap0 {\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 soundIcsAlarm}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 +\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 soundIcsAlarm}}}{\f1 /soundIcsAlarm }{\i\f1 sound}{\cs58\f1\super }{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Associate sounds with WinBoard events. Most of the events are the same ones that cause text colorization. In addition, }{\b\f1 soundMove}{\f1 is played if a chess engine or another player makes a move. }{\b\f1 SoundBell}{\f1 + is played if the chess server sends an ASCII BEL character (Ctrl+G). Available on the }{\f1\uldb Sounds}{\v\f1 Sounds}{\f1 menu. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\b SoundIcsWin}{, }{\b soundIcsLoss}{, }{\b soundIcsDraw}{ and }{\b soundIcsUnfinished}{ + are played at the conclusion of an ICS game. The result of the game determines which sound is played. +\par }{\b SoundIcsAlarm}{ is played when your game clock counts down to }{\uldb icsAlarmTime}{\v\uldb icsAlarmTime}{. +\par }\pard \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480\faauto\adjustright\rin0\lin120\itap0 {\f1 The }{\i\f1 sound}{\f1 argument may be one of the following: +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls2\adjustright\rin0\lin480\itap0 {\f1 The name of a }{\f2 .wav}{\f1 file. The filename is interpreted relative to WinBoard's installation directory (the directory containing WinBoard.exe). +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls2\adjustright\rin0\lin480\itap0 {\f2 $}{\f1 , indicating the default system sound. +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls2\adjustright\rin0\lin480\itap0 {\f2 !}{\f1 followed by the name of a built-in WinBoard wave resource. +\par {\pntext\pard\plain\f3\fs20 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnstart1\pnindent360\pnsp120\pnhang{\pntxtb \'b7}} +\faauto\ls2\adjustright\rin0\lin480\itap0 {\f2 !}{\f1 alone, or \'93\'94 (empty string), indicating silence. +\par }\pard \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 {\f1 The default for soundMove and soundBell is }{\f2 $}{\f1 , while the others default to silence. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icsMenu}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icsMenu}}}{\f1 /icsMenu=\{}{\i\f1 entries}{\f1 \} }{\b0\f1 or }{\f1 /icsMenu=@}{\i\f1 filename +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 This option lets you customize the right-button }{\f1\uldb context menu}{\v\f1 +ICSInteractionContextMenu}{\f1 that is available in the upper (output) pane of the ICS Interaction window. It consists of a list of menu entries, one per line. If the option value st +arts with an @ sign, it is the name of a file that contains the entries. Each entry contains either four fields separated by commas or the single character }{\f2 "-"}{\f1 . The fields are: +\par {\pntext\pard\plain\f5\fs20 \hich\af5\dbch\af0\loch\f5 1.\tab}}\pard\plain \ql \fi-360\li480\ri0\sb80\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}} +\faauto\ls14\adjustright\rin0\lin480\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {The menu text. If this field begins with }{\f2 "|"}{, the item begins a new column in the menu and the }{\f2 "|"}{ + is not shown. If this field contains an }{\f2 "&"}{, the character after the ampersand is underlined in the menu and acts as a keyboard shortcut for the item when the menu is displayed. Do not assign the same shortcut key to two different menu items. + +\par {\pntext\pard\plain\s26 \f1\fs20 \hich\af1\dbch\af0\loch\f1 2.\tab}}\pard\plain \s26\ql \fi-360\li480\ri0\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}} +\faauto\ls14\adjustright\rin0\lin480\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Text to insert into the input pane. The text cannot include a comma. You can use ICS aliases to get around this limitation. +\par {\pntext\pard\plain\s26 \f1\fs20 \hich\af1\dbch\af0\loch\f1 3.\tab}}\pard \s26\ql \fi-360\li480\ri0\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}} +\faauto\ls14\adjustright\rin0\lin480\itap0 {\f1 A flag (1 or 0) saying whether to insert a space and }{\i\f1 name }{\f1 (see }{\f1\uldb above}{\v\f1 Tell}{\f1 ) after the text. If you set this flag, you might als +o want to put "(name)" into the menu text as a memory aid. +\par {\pntext\pard\plain\s26 \f1\fs20 \hich\af1\dbch\af0\loch\f1 4.\tab}}\pard \s26\ql \fi-360\li480\ri0\sl-240\slmult0\nowidctlpar\jclisttab\tx480{\*\pn \pnlvlbody\ilvl0\ls14\pnrnot0\pndec\pnstart1\pnindent360\pnsp120\pnhang{\pntxta .}} +\faauto\ls14\adjustright\rin0\lin480\itap0 {\f1 A flag (1 or 0) saying whether the result should be sent immediately to ICS or left in the input pane for further editing. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {The entry }{\f2 "-"}{ produces a separator line in the menu. The top three menu en +tries are always }{\b Copy and Paste}{, }{\b Copy}{, and }{\b Paste}{, but you have full control over the rest of the menu. +\par }{\f1 The default menu is: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2\fs20 \endash \line &Who,who,0,1\line +Playe&rs,players,0,1\line &Games,games,0,1\line &Sought,sought,0,1\line |&Tell (name),tell,1,0\line M&essage (name),message,1,0\line \endash \line &Finger (name),finger,1,1\line &Vars (name),vars,1,1\line &Observe (name),observe,1,1\line +&Match (name),match,1,1\line Pl&ay (name),play,1,1 +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb +settings}{\v\f1 settings}{\f1 file with a plain text editor such as Notepad. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 icsNames}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 icsNames}}}{\f1 /icsNames=\{}{\i\f1 names}{\f1 \} }{\b0\f1 or }{\f1 /icsNames=@}{\i\f1 filename +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +This option lets you customize the drop-down list of ICS names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the +name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \'94/ics /icsHost=\'94 + and adds the result to the command-line options. There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1 file with a plain text editor such as Notepad. +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 firstChessProgramNames}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 firstChessProgramNames}}}{\f1 /firstChessProgramNames=\{}{\i\f1 names}{\f1 \} }{ +\b0\f1 or }{\f1 /firstChessProgramNames="@}{\i\f1 filename}{\f1 " +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +This option lets you customize the first drop-down list of chess engine names that appears in the WinBoard s +tartup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the drop-down list, WinBoard prepends the text \'94 +/cp /firstChessProgram=\'94 and adds the result to the command-line options. +\par +\par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1 file with a plain text editor such as Notepad. Example: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2 /firstChessProgramNames=\{GNUChess\line WCrafty-15_1 +1 /fd="C:\\Program Files\\Crafty"\line ArasanX /fd="C:\\Program Files\\Arasan\\Arasan 4.1"\line "EXchess xb" /fd=C:\\EXchess\line Comet-WB /fd=C:\\Comet\line \} +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 secondChessProgramNames}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 secondChessProgramNames}}}{\f1 /secondChessProgramNames=\{}{\i\f1 names}{\f1 \}}{ +\b0\f1 or }{\f1 /secondChessProgramNames="@}{\i\f1 filename}{\f1 "}{\i\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 This option lets you customize the second drop-d +own list of chess engine names that appears in the WinBoard startup dialog. It consists of a list of strings, one per line. If the option value starts with an @ sign, it is the name of a file that contains the strings. When you select a string from the dr +op-down list, WinBoard prepends the text \'94/cp /secondChessProgram=\'94 and adds the result to the command-line options. +\par +\par There is no graphical user interface to set this option. To change it, edit your }{\f1\uldb settings}{\v\f1 settings}{\f1 file with a plain text editor such as Notepad. Example: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {/secondChessProgramNames=\{GNUChess\line +WCrafty-15_11 /sd="C:\\\\Program Files\\\\Crafty\\"\line ArasanX /sd="C:\\Program Files\\Arasan\\Arasan 4.1"\line "EXchess xb" /sd=C:\\EXchess\line Comet-WB /sd=C:\\Comet\line \}}{\f1 +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xy coordinates of board}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xy}}}{\f1 /x=}{\i\f1 xcoord }{\f1 /y=}{\i\f1 ycoord +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location of the bo +ard window, giving the screen coordinates of the upper left-hand corner. Both arguments must be given together. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xywh coordinates of Analysis window}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xywh}}}{\f1 /analysisX=}{\i\f1 xcoord }{\f1 /analysisY=}{\i\f1 ycoord}{\f1 + /analysisW=}{\i\f1 width}{\f1 /analysisH=}{\i\f1 height +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location and size of the Analysis window, giving th +e screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xywh coordinates of Comment window}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xywh}}}{\f1 /commentX=}{\i\f1 xcoord }{\f1 /commentY=}{\i\f1 ycoord}{\f1 + /commentW=}{\i\f1 width}{\f1 /commentH=}{\i\f1 height +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location and size of the Comment window, givi +ng the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xywh coordinates of Game List window}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xywh}}}{\f1 /gameListX=}{\i\f1 xcoord }{\f1 /gameListY=}{\i\f1 ycoord}{\f1 + /gameListW=}{\i\f1 width}{\f1 /gameListH=}{\i\f1 height +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location and size of the Game List w +indow, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xywh coordinates of ICS Interaction window}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xywh}}}{\f1 /icsX=}{\i\f1 xcoord }{\f1 /icsY=}{\i\f1 ycoord}{\f1 /icsW=}{\i\f1 +width}{\f1 /icsH=}{\i\f1 height +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location and size of the ICS Interaction wind +ow, giving the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 xywh coordinates of Tags window}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 xywh}}}{\f1 /tagsX=}{\i\f1 xcoord }{\f1 /tagsY=}{\i\f1 ycoord}{\f1 /tagsW=}{ +\i\f1 width}{\f1 /tagsH=}{\i\f1 height +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Sets the initial location and size of the Tags window, giving + the screen coordinates of the upper left-hand corner, the width, and the height. All four arguments must be given together. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super +{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Other Options}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Other Options}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 OtherOptions}}}{\b0\f1\fs18\up6 }{\f1\fs20 Other Options +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ncp }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ncp }}}{\f1 /ncp}{\b0\f1 or }{\f1 /xncp}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 noChessProgram}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 noChessProgram}}}{\f1 /noChessProgram}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is True, WinBoard acts as a passive chessboar +d; it does not start a chess program or connect to ICS. This option also sets clockMode to False. Default: False. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 mode}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 mode}}}{\f1 /mode}{\b0\f1 or }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 initialMode}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 initialMode}}}{\f1 /initialMode }{\i\f1 modename +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If this option is given, WinBoard selects the given }{\i\f1 modename}{\f1 from the }{\f1\uldb +Mode menu}{\v\f1 ModeMenu }{\f1 after starting and (if applicable) processing the }{\f1\uldb loadGameFile}{\v\f1 loadGameFile }{\f1 or }{\f1\uldb loadPositionFile}{\v\f1 loadPositionFile }{\f1 +option. Default: "". Other supported values are TwoMachines, AnalyzeFile, Analysis, MachineWhite, MachineBlack, EditGame, EditPosition, and Training. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 variant}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 variant}}}{\f1 /variant}{\b0\f1 }{\i\f1 varname}{\f1 +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { +Activates preliminary, partial support for playing chess variants against a local engine or editing variant games. This flag is not needed in ICS mode. Recognized variant names are: +\par normal\tab Normal chess\line wildcastle\tab Shuffle chess, king can castle from d file\line nocastle\tab Shuffle chess, no castling allowed\line fischerandom\tab Fischer Random shuffle chess\line bughouse\tab Bughouse, ICC/FICS rules\line crazyhouse\tab +Crazyhouse, ICC/FICS rules\line losers \tab Lose all pieces or get mated (ICC wild 17)\line suicide\tab Lose all pieces including king (FICS)\line giveaway\tab Try to have no legal moves (ICC wild 26)\line twokings\tab Weird ICC wild 9\line kriegspiel +\tab Opponent's pieces are invisible\line atomic \tab Capturing piece explodes (ICC wild 27)\line 3check\tab Win by giving check 3 times (ICC wild 25) +\par In the shuffle variants, WinBo +ard does not shuffle the pieces, but you can do it by hand using Edit Position. Some variants are supported only in ICS mode, including fischerandom, bughouse, and kriegspiel. The winning/drawing conditions in crazyhouse (offboard interposition on mate), +losers, suicide, giveaway, atomic, and 3check are not fully understood. In crazyhouse, WinBoard does not yet keep track of offboard pieces. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 debug}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 debug}}}{\f1 /debug}{\b0\f1 or }{\f1 /xdebug}{\b0\f1 ,}{\f1 }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt +\pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 debugMode}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 debugMode}}}{\f1 /debugMode}{\i\f1 true|false}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Writes debugging information to the file \'93WinBoard.debug\'94, includin +g all commands sent to the chess engine, all output received from it, and all commands sent to ICS. You can press Ctrl+Alt+F12 to turn this option on or off while WinBoard is running. Each time you turn it on, any existing debug file is overwritten. + +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 rsh }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 rsh }}}{\f1 /rsh }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 remoteShell }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 remoteShell }}}{\f1 /remoteShell }{\i\f1 shellname}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Name of the command used to run programs remotely. If this option is not given, WinBoard}{ +\i\f1 }{\f1 uses its own built-in implementation of the Unix }{\i\f1 rcmd}{\f1 protocol (the protocol used by }{\i\f1 rsh}{\f1 ). +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ruser }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ruser }}}{\f1 /ruser }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 remoteUser }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 remoteUser }}}{\f1 /remoteUser }{\i\f1 username}{\f1 +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 User nam +e on the remote system when running programs with the remoteShell. The default is your local user name. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ini }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ini }}}{\f1 /ini }{\b0\f1 or}{\f1 }{\cs58\f1\super K{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 settingsFile }}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 settingsFile }}}{\f1 /settingsFile }{\i\f1 filename\line }{\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 at sign}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 atsign }}}{\f1 @ }{\i\f1 file-name +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 See }{\f1\uldb Settings}{\v\f1 Settings}{\f1 . +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Initialization files}}K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Files}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Files}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Files}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 INITIALIZATION FILES +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Settings }}}{\f1\fs18\up6 }{\cs58\f1\super #{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Settings }}}{\f1 Settings +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {When WinBoard starts up, it reads option settings from a file named }{\i WinBoard.ini }{ +in its installation directory (the directory containing WinBoard.exe). Options in this file have the same format as }{\uldb command line options}{\v Options}{, except that they do not all have to be on a single line. You can put + a comment in a settings file by preceding it with a semicolon (}{\f2 ;}{). +\par The WinBoard.ini file is read before the command line is processed, so any options you give on the command line override options in the file. +\par }{\f1 If WinBoard encounters a /}{\f1\uldb settingsFile}{\v\f1 settingsFile}{\f1 }{\i\f1 filename }{\f1 or }{\f1\uldb @}{\v\f1 atsign}{\i\f1 filename }{\f1 +option while reading settings (whether from the command line or a file), it reads more settings from the given file before reading the next option. +\par The }{\f1\uldb Save Settings Now}{\v\f1 SaveSettings}{\f1 menu command writes the current values of most options to a file. In addition, settings are saved automatically when WinBoard exits if }{\f1\uldb Save Settings on Exit}{\v\f1 SaveSettingsOnExit}{ +\f1 is checked. The settings are written to the last file named in a /settingsFile command, if any; otherwise to WinBoard.ini}{\i\f1 .}{\f1 The @ option does not affect which file settings are saved to. +\par Warning: Because Save Settings overwrites the last settings file (usually WinBoard.ini) and only saves a subset of WinBoard's options, you should not add settings of more options to such a fil +e with a text editor. If you do this, your additional options will be lost on the next Save Settings. You can change the values of existing settings freely, using Notepad or any plain text editor. Be careful not to do this while WinBoard is running, howev +er, unless you know that Save Settings on Exit is off. Otherwise all your changes will be overwritten and lost when WinBoard exits. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 ICS Logon}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 ICSLogon}}}{\f1 ICS Logon +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Whenever WinBoard connects to the Internet Chess Server, if it finds a file called }{\i\f1 +ICS.ini }{\f1 in its installation directory}{\i\f1 ,}{\f1 it feeds the file's contents to the ICS as commands. Usually the first two lines of the file should be your ICS user name and password. You can specify a different name instead of }{\i\f1 ICS.ini} +{\f1 by using the }{\f1\uldb icslogon}{\v\f1 icslogon}{\f1 command line option. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Installing Chess Engines}}${\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Installing Chess Engines}}#{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 InstallingChessEngines}}+{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs20 INSTALLING CHESS ENGINES +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Introduction +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +WinBoard is capable of operating with many different chess engines. You can play chess against a compatible engine, set up matches between two engines, or (advanced users only) run an automated computer player on an ICS. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Typically, the main difficulty in installing a new chess engine for use by WinBoard comes in getting the engine itself running and setting its options appropriately. The connection to WinBoard is relatively straightforward. +\par WinBoard-compatible chess engi +nes are Win32 command line programs that you can run by hand in an MS-DOS Prompt box and type human-readable commands to. WinBoard connects to an engine simply by starting the engine up in the background and communicating with it through a pair of pipes. +Therefore the basic procedure for installing an engine is: +\par }\pard\plain \s20\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 1. Get a copy of the engine and any supporting files it needs. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +2. Install and configure the engine as a command-line program by following the instructions that come with it. Try it out by running it from the command line in an MS-DOS Prompt box and make sure it works. +\par 3. Optional, but recommended: Try out the WinBoard plus engine combination by running WinBoard with the proper command line arguments in an MS-DOS Prompt box. +\par 4. Create a shortcut on your desktop or Start menu to run the engine with WinBoard. +\par 5. Optionally edit your WinBoard.ini file to add the engine to the drop-down lists on WinBoard's startup dialog. +\par This document cannot explain steps 1 and 2 in detail for all engines, but we will take you through all five steps in outline, using Crafty as an example. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Example: Crafty +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 1. Choose a directory to put Crafty in. We'll use }{\f2 C:\\Program Files\\Crafty}{\f1 + in this example. Download your copy of Crafty into this directory from its author's FTP site, }{\f2 ftp://ftp.cis.uab.edu/pub/hyatt}{\f1 . At this writing, you will need at least the following files: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2\fs20 read.me\line v15/crafty.doc\line v15/crafty.faq +\line v15/wcrafty-15.*.exe}{\f1\fs20 (where * is replaced by the largest number there)\line }{\f2\fs20 common/start.zip}{\fs20 \line }{\f2\fs20 common/medium.zip}{\fs20 }{\f1\fs20 (or another book). +\par }\pard\plain \s16\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 2. + The first three files are documentation that you can read with a text editor. Read the read.me file first and follow the instructions carefully. This will take some time. Do not write to the author of WinBoard if you have trouble with the instructions in + the Crafty read.me. Try running Crafty from an MS-DOS Prompt box and make sure it works before you go on. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 3. Optional, but recommended: In an MS-DOS Prompt box,}{ }{\f2 cd }{\f1 +to the directory where WinBoard is installed, typically }{\f2 "C:\\Program Files\\WinBoard"}{\f1 . Then type the following command line. Use the actual name of the wcrafty file you downloaded, not an }{\f2 *}{\f1 +, and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too. +\par }\pard\plain \s63\ql \fi-720\li1440\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin1440\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {WinBoard /cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\ +Crafty" /scp=WCrafty-15.* /sd="C:\\Program Files\\Crafty" +\par }\pard\plain \s16\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +WinBoard should start up, with Crafty running as its chess engine. Check that you can play chess against Crafty. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 4. To make a shortcut or Start menu entry for Crafty: Right +-click on the desktop and select New/Shortcut. Use the Browse button to find your winboard.exe file and get its name into the Command Line box. (It usually will be "C:\\Program Files\\WinBoard\\ +winboard.exe".) Click in the Command Line box and hit the End key to go to the end. Add the following to the end of the command line, }{\i\f1 after}{\f1 the closing quotation mark. Use the actual name of the wcrafty file you downloaded, not an }{\f2 *}{ +\f1 , and if your browser changed the first period to an underscore when you downloaded the file, make that change in the command line too. +\par }\pard\plain \s63\ql \fi-720\li1440\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin1440\itap0 \f2\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {/cp /fcp=WCrafty-15.* /fd="C:\\Program Files\\Crafty" \line /scp=WCrafty-15.* /sd="C: +\\Program Files\\Crafty" +\par }\pard\plain \s62\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Press Next, choose a name for the shortcut, and press Finish. You can now use this shortcut to run WinBoard with Crafty. Double-click it to check that it works. You can drag or copy the shortcut into your Start menu if you like. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 5. To add Crafty as an option in the WinBoard Startup dialog, edit your }{\f1\uldb +WinBoard.ini file}{\v\f1 Settings}{\f1 with Notepad or another plain text editor, carefully following the example shown under }{\f1\uldb /firstChessProgramNames}{\v\f1 firstChessProgramNames}{\f1 above. +\par }\pard\plain \s2\ql \li120\ri0\sb120\sa60\sl-240\slmult0\nowidctlpar\faauto\outlinelevel1\adjustright\rin0\lin120\itap0 \b\f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 For more information +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 If you would like to run an automated computer player on the ICS, see the separate file }{\f2 +zippy.README}{\f1 . If you would like to write your own engine to interface to WinBoard, see the separate file }{\f2 engine-intf.html}{\f1 +, and join the mailing list mentioned there. Both files are included in the WinBoard distribution. You might also want to get the source code for WinBoard. It is available from the author's Web page, http://www.tim-mann.org/chess.html}{\f2 .}{\f1 +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Firewalls}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Firewalls}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Firewalls}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs18\up6 }{\f1\fs20 FIREWALLS +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 By default, "WinBoard /ics"}{\i\f1 }{\f1 +communicates with an Internet Chess Server by opening a TCP socket directly from the machine it is running on to the ICS. If there is a firewall between yo +ur machine and the ICS, this won't work. Here are some recipes for getting around common kinds of firewalls using special options to WinBoard}{\i\f1 .}{\f1 Important: See the paragraph in the }{\f1\uldb LIMITATIONS}{\v\f1 LIMITATIONS}{\f1 + section below about extra echoes. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Suppose that you can +'t telnet directly to ICS, but you can telnet to a firewall host, log in, and then telnet from there to ICS. Let's say the firewall is called fire.wall.com. Set command-line options as follows: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2\fs20 +WinBoard -ics -icshost fire.wall.com -icsport 23 +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Then when you run WinBoard}{\i\f1 }{\f1 +in ICS mode, you will be prompted to log in to the firewall host. (This works because port 23 is the standard telnet login service.) Do so, then telnet to ICS, using a command like "telnet chessclub.com 5000", or whatever command the firewal +l provides for telnetting to port 5000. +\par If your firewall lets you telnet (or rlogin) to remote hosts, but doesn't let you telnet to port 5000, you will have to find some other host outside the firewall that does let you do this, and hop through it. For ins +tance, suppose you have an account at foo.edu. Follow the recipe above, but instead of typing "telnet chessclub.com 5000" to the firewall, type "telnet foo.edu" (or "rlogin foo.edu"), log in there, and then type "telnet chessclub.com 5000". +\par Exception: chessclub.com itself lets you connect to the chess server on the default telnet port (23), which is what you get if you don\rquote t specify a port to the telnet program. But the other chess servers don\rquote t allow this. +\par Suppose that you can't telnet directly to ICS, but you can use rsh to run programs on a firewall host, and that host can telnet to ICS. Let's say the firewall is called rsh.wall.com. Set command-line options as follows: +\par }\pard\plain \s19\ql \li520\ri0\sb60\sl-240\slmult0\keep\nowidctlpar\tx520\tx920\tx1320\tx1720\tx2120\faauto\adjustright\rin0\lin520\itap0 \f6\fs16\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f2\fs20 +WinBoard -ics -gateway rsh.wall.com -icshost chessclub.com +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Then when you run WinBoard}{\i\f1 }{\f1 +in ICS mode, it will connect to the ICS by using rsh to run the command "telnet chessclub.com 5000" on host rsh.wall.com. +\par ICC timestamp and FICS timeseal do not work through many}{\b\f1 }{\f1 firewalls. You can use them only if your firewall gives a clean TCP connecti +on with a full 8-bit wide path. If your firewall allows you to get out only by running a special telnet program, you can't use timestamp or timeseal across it. But if you have access to a computer just outside your firewall, and you have much lower netlag + +when talking to that computer than to the ICS, it might be worthwhile running timestamp there. Follow the instructions above for hopping through a host outside the firewall (foo.edu in the example), but run timestamp or timeseal on that host instead of te +lnet. +\par }\pard\plain \s20\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Suppose that you have a SOCKS firewall that requires you to go through some extra level of authentication, but after that will give you a clean 8-bit wide TCP connection to the chess server. In that case, if you are using timestamp or timeseal, you ne +ed to somehow socksify it; if not, you need to socksify WinBoard itself. Socksification is beyond the scope of this document, but see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Limitations}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Limitations}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Limitations}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs18\up6 }{\f1\fs20 LIMITATIONS +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 WinBoard}{\i\f1 }{\f1 is a Win32 application. It ru +ns only on Windows NT and Windows 95. It does not work on Windows 3.11 or earlier, even with the Win32s compatibility package. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\i\f1 CMail, }{\f1 +the companion program to xboard for playing electronic mail correspondence chess, has not been ported to Win32. +\par There is no way for two people running copies of WinBoard}{\i\f1 }{\f1 to play each other without going through the Internet Chess Server. +\par Under some circumstances, your ICS password may be echoed when you log on. +\par If you are connecting to the ICS by running telnet, timestamp, or + timeseal on an Internet provider host, you may find that each line you type is echoed back an extra time after you hit Enter. You can probably turn this echo off. If your Internet provider is a Unix system, type "}{\f2 stty -echo}{\f1 +" after you log in to the provider but before you run telnet, timestamp, or timeseal. In addition, you may need to type the sequence \'93}{\f2 Ctrl+Q Ctrl+E Enter}{\f1 \'93 after you have finished logging in to ICS. On VMS, type \'93}{\f2 +set terminal /noecho /nowrap}{\f1 \'94, and after you telnet to the ICS, type \'93}{\f2 Ctrl+Q Ctrl+] Enter set mode char Enter Enter}{\f1 \'94 +. It is a good idea to turn off the extra remote echo if you can, because otherwise it can get interleaved with output from the ICS and confuse WinBoard's parsing routines. Don\rquote t just turn off }{\f1\uldb Local Line Editing}{\v\f1 localLineEditing}{ +\f1 so that you see only the remote echo and not the local one; that will make the interleaving problem worse. +\par The game parser recognizes only algebraic notation. +\par The internal move legality tester does not look at the game history, so in some cases it misses illegal castling or en passant captures. It permits castling with the king on the }{\b\f1 d}{\f1 + file because this is possible in some "wild 1" games on ICS. It does not check piece drops in bughouse to see if you actually hold the piece you are trying to dr +op. However, if you attempt an illegal move when using a chess engine or the ICS, WinBoard will accept the error message that comes back, undo the move, and let you try another. +\par FEN positions saved by WinBoard}{\i\f1 }{\f1 do not include correct information about whether castling or en passant are legal. +\par }\pard\plain \s20\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +The mate detector does not understand that non-contact mate is not really mate in bughouse. The only problem this causes while playing is minor: a "#" (mate indicator) character will show up after a non-contact mating m +ove in the move list. WinBoard will not assume the game is over at that point. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +Edit Game mode always uses non-bughouse rules. Although you can load and edit games that contain piece drops, the piece menus are not active, so you cannot insert piece drops. Also, WinBoard}{\i\f1 }{\f1 +thinks an edited game is over when a mating move is inserted, even if the mate is non-contact. +\par Fischer Random castling is not understood. You can probably play Fischer Random successfully on ICS by typing castling moves into the ICS Interac +tion window, but they will not be animated correctly, and saved games will not be loaded correctly if castling occurs. +\par The }{\f1\uldb ICS logon}{\v\f1 ICSLogon}{\f1 file does not work properly when you connect to ICS through a Unix gateway host by setting }{\f1\uldb icsPort}{\v\f1 icsPort}{\f1 to 23. The Unix login process apparently discards type-ahead. +\par Some WinBoard functions may not work with versions of GNU Chess earlier than 4.0, patchlevel 77. The current version of WinBoard}{\i\f1 }{\f1 works best with Crafty version 15.11 or later. +\par Also see the ToDo file included with the distribution for many other possible bugs, limitations, and ideas for improvement that have been suggested. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Authors}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Authors}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Authors}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs18\up6 }{\f1\fs20 AUTHORS AND CONTRIBUTORS +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 WinBoard is partly based on }{\i\f1 xboard}{\f1 +, a chessboard program for Unix and the X Window System. Tim Mann has been responsible for all versions of WinBoard,}{\i\f1 }{\f1 and for xboard versions 1.3 and beyond. +\par Mark Williams added many features to WinBoard 4.1.0, including copy/paste, premove, icsAlarm, autoFlipView, training mode, auto raise, and blindfold. Hugh Fischer adde +d piece animation to xboard, and Henrik Gram added it to WinBoard. Frank McIngvale contributed many xboard}{\i\f1 }{\f1 user interface improvements and improved Crafty support. Jochen Wiedmann ported xboard}{\i\f1 }{\f1 to the Amiga, creating }{\i\f1 +AmyBoard}{\f1 , and converted the documentation to texinfo. Elmar Bartel contributed the new piece bitmaps for version 3.2. Evan Welsh wrote }{\i\f1 CMail. }{\f1 +John Chanak contributed the initial implementation of ICS mode. The color scheme and the old 80x80 piece bitmaps (available in the WinBoard}{\i\f1 }{\f1 distribution in subdirectory "bitmaps.xchess") were taken from Wayne Christopher's }{\i\f1 XChess }{ +\f1 program. Chris Sears and Dan Sears wrote the original xboard}{\i\f1 . }{\f1 They were responsible for xboard}{\i\f1 }{\f1 versions 1.0 through 1.2. +\par Send bug reports to . Please run WinBoard with the /debug option and include the output from the resulting WinBoard.debug file in your message. +\par }\pard\plain \s1\ql \li120\ri0\sb280\sa120\sl-320\slmult0\nowidctlpar\faauto\outlinelevel0\adjustright\rin0\lin120\itap0 \b\f5\fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1\fs20 \page }{\cs58\f1\fs20\super K{\footnote\ftnalt \pard\plain +\s57\ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super K}{\f1 Copyright}}#{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super #}{\f1 Copyright}}${\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super $}{\f1 Copyright}}+{\footnote\ftnalt \pard\plain \s57\ql \li120\ri0\sb80\sl-240\slmult0 +\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\cs58\f1\super +}{\f1 main}}}{\f1\fs18\up6 }{\f1\fs20 COPYRIGHT +\par }\pard\plain \s26\ql \li120\ri0\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. \line +Enhancements Copyright 1992-2000 Free Software Foundation, Inc. +\par }\pard\plain \ql \li120\ri0\sb80\sl-240\slmult0\nowidctlpar\faauto\adjustright\rin0\lin120\itap0 \f5\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\f1 +WinBoard's alternative piece bitmaps (bitmaps.xchess) are derived from the bitmaps in the XChess program, which was written and is copyrighted by Wayne Christopher. +\par The following terms apply to Digital Equipment Corporation's copyright interest in WinBoard: +\par All Rights Reserved +\par Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright not +ice and this permission notice appear in supporting documentation, and that the name of Digital not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. +\par DIGITAL DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WH +ETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +\par The following terms apply to the enhanced version of WinBoard distributed by the Free Software Foundation: +\par This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. +\par This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +\par You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +\par }} \ No newline at end of file diff --git a/winboard/woptions.c b/winboard/woptions.c new file mode 100644 index 0000000..3308f2d --- /dev/null +++ b/winboard/woptions.c @@ -0,0 +1,2432 @@ +/* + * woptions.c -- Options dialog box routines for WinBoard + * $Id$ + * + * Copyright 2000 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include /* required for all Windows applications */ +#include +#include + +#include "common.h" +#include "winboard.h" +#include "backend.h" +#include "woptions.h" +#include "defaults.h" +#include "wedittags.h" +#include + +#if __GNUC__ +#include +#include +#endif + +/* Imports from winboard.c */ + +extern MyFont *font[NUM_SIZES][NUM_FONTS]; +extern HINSTANCE hInst; /* current instance */ +extern HWND hwndMain; /* root window*/ +extern BOOLEAN alwaysOnTop; +extern RECT boardRect; +extern COLORREF lightSquareColor, darkSquareColor, whitePieceColor, + blackPieceColor, highlightSquareColor, premoveHighlightColor; +extern HPALETTE hPal; +extern BoardSize boardSize; +extern COLORREF consoleBackgroundColor; +extern MyColorizeAttribs colorizeAttribs[]; /* do I need the size? */ +extern MyTextAttribs textAttribs[]; +extern MySound sounds[]; +extern ColorClass currentColorClass; +extern HWND hwndConsole; +extern char *defaultTextAttribs[]; +extern HWND commentDialog; +extern char installDir[]; +extern HWND hCommPort; /* currently open comm port */ +extern DCB dcb; +extern BOOLEAN chessProgram; + +/* types */ + +typedef struct { + char *label; + unsigned value; +} ComboData; + +typedef struct { + char *label; + char *name; +} SoundComboData; + +/* module prototypes */ + +LRESULT CALLBACK GeneralOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK BoardOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK IcsOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK FontOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK CommPortOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK LoadOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK SaveOptions(HWND, UINT, WPARAM, LPARAM); +LRESULT CALLBACK TimeControl(HWND, UINT, WPARAM, LPARAM); +VOID ChangeBoardSize(BoardSize newSize); +VOID PaintSampleSquare( + HWND hwnd, + int ctrlid, + COLORREF squareColor, + COLORREF pieceColor, + COLORREF squareOutlineColor, + COLORREF pieceDetailColor, + BOOL isWhitePiece, + BOOL isMono, + HBITMAP pieces[3] + ); +VOID PaintColorBlock(HWND hwnd, int ctrlid, COLORREF color); +VOID SetBoardOptionEnables(HWND hDlg); +BoardSize BoardOptionsWhichRadio(HWND hDlg); +BOOL APIENTRY MyCreateFont(HWND hwnd, MyFont *font); +VOID UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca); +LRESULT CALLBACK ColorizeTextDialog(HWND , UINT, WPARAM, LPARAM); +VOID ColorizeTextPopup(HWND hwnd, ColorClass cc); +VOID SetIcsOptionEnables(HWND hDlg); +VOID SetSampleFontText(HWND hwnd, int id, const MyFont *mf); +VOID CopyFont(MyFont *dest, const MyFont *src); +void InitSoundComboData(SoundComboData *scd); +void ResetSoundComboData(SoundComboData *scd); +void InitSoundCombo(HWND hwndCombo, SoundComboData *scd); +int SoundDialogWhichRadio(HWND hDlg); +VOID SoundDialogSetEnables(HWND hDlg, int radio); +char * SoundDialogGetName(HWND hDlg, int radio); +void DisplaySelectedSound(HWND hDlg, HWND hCombo, const char *name); +VOID ParseCommSettings(char *arg, DCB *dcb); +VOID PrintCommSettings(FILE *f, char *name, DCB *dcb); +void InitCombo(HANDLE hwndCombo, ComboData *cd); +void SelectComboValue(HANDLE hwndCombo, ComboData *cd, unsigned value); +VOID SetLoadOptionEnables(HWND hDlg); +VOID SetSaveOptionEnables(HWND hDlg); +VOID SetTimeControlEnables(HWND hDlg); + +/*---------------------------------------------------------------------------*\ + * + * General Options Dialog functions + * +\*---------------------------------------------------------------------------*/ + + +LRESULT CALLBACK +GeneralOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static Boolean oldShowCoords; + static Boolean oldBlindfold; + static Boolean oldShowButtonBar; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + oldShowCoords = appData.showCoords; + oldBlindfold = appData.blindfold; + oldShowButtonBar = appData.showButtonBar; + + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + + /* Initialize the dialog items */ +#define CHECK_BOX(x,y) CheckDlgButton(hDlg, (x), (BOOL)(y)) + + CHECK_BOX(OPT_AlwaysOnTop, alwaysOnTop); + CHECK_BOX(OPT_AlwaysQueen, appData.alwaysPromoteToQueen); + CHECK_BOX(OPT_AnimateDragging, appData.animateDragging); + CHECK_BOX(OPT_AnimateMoving, appData.animate); + CHECK_BOX(OPT_AutoFlag, appData.autoCallFlag); + CHECK_BOX(OPT_AutoFlipView, appData.autoFlipView); + CHECK_BOX(OPT_AutoRaiseBoard, appData.autoRaiseBoard); + CHECK_BOX(OPT_Blindfold, appData.blindfold); + CHECK_BOX(OPT_HighlightDragging, appData.highlightDragging); + CHECK_BOX(OPT_HighlightLastMove, appData.highlightLastMove); + CHECK_BOX(OPT_PeriodicUpdates, appData.periodicUpdates); + CHECK_BOX(OPT_PonderNextMove, appData.ponderNextMove); + CHECK_BOX(OPT_PopupExitMessage, appData.popupExitMessage); + CHECK_BOX(OPT_PopupMoveErrors, appData.popupMoveErrors); + CHECK_BOX(OPT_ShowButtonBar, appData.showButtonBar); + CHECK_BOX(OPT_ShowCoordinates, appData.showCoords); + CHECK_BOX(OPT_ShowThinking, appData.showThinking); + CHECK_BOX(OPT_TestLegality, appData.testLegality); + +#undef CHECK_BOX + + EnableWindow(GetDlgItem(hDlg, OPT_AutoFlag), + appData.icsActive || !appData.noChessProgram); + EnableWindow(GetDlgItem(hDlg, OPT_AutoFlipView), + appData.icsActive || !appData.noChessProgram); + EnableWindow(GetDlgItem(hDlg, OPT_PonderNextMove), + !appData.noChessProgram); + EnableWindow(GetDlgItem(hDlg, OPT_PeriodicUpdates), + !appData.noChessProgram && !appData.icsActive); + EnableWindow(GetDlgItem(hDlg, OPT_ShowThinking), + !appData.noChessProgram); + return TRUE; + + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ + +#define IS_CHECKED(x) (Boolean)IsDlgButtonChecked(hDlg, (x)) + + alwaysOnTop = IS_CHECKED(OPT_AlwaysOnTop); + appData.alwaysPromoteToQueen = IS_CHECKED(OPT_AlwaysQueen); + appData.animateDragging = IS_CHECKED(OPT_AnimateDragging); + appData.animate = IS_CHECKED(OPT_AnimateMoving); + appData.autoCallFlag = IS_CHECKED(OPT_AutoFlag); + appData.autoFlipView = IS_CHECKED(OPT_AutoFlipView); + appData.autoRaiseBoard = IS_CHECKED(OPT_AutoRaiseBoard); + appData.blindfold = IS_CHECKED(OPT_Blindfold); + appData.highlightDragging = IS_CHECKED(OPT_HighlightDragging); + appData.highlightLastMove = IS_CHECKED(OPT_HighlightLastMove); + PeriodicUpdatesEvent( IS_CHECKED(OPT_PeriodicUpdates)); + PonderNextMoveEvent( IS_CHECKED(OPT_PonderNextMove)); + appData.popupExitMessage = IS_CHECKED(OPT_PopupExitMessage); + appData.popupMoveErrors = IS_CHECKED(OPT_PopupMoveErrors); + appData.showButtonBar = IS_CHECKED(OPT_ShowButtonBar); + appData.showCoords = IS_CHECKED(OPT_ShowCoordinates); + ShowThinkingEvent( IS_CHECKED(OPT_ShowThinking)); + appData.testLegality = IS_CHECKED(OPT_TestLegality); + +#undef IS_CHECKED + + SetWindowPos(hwndMain, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, + 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); +#if AOT_CONSOLE + if (hwndConsole) { + SetWindowPos(hwndConsole, alwaysOnTop ? HWND_TOPMOST : HWND_NOTOPMOST, + 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); + } +#endif + if (!appData.highlightLastMove) { + ClearHighlights(); + DrawPosition(FALSE, NULL); + } + /* + * for some reason the redraw seems smoother when we invalidate + * the board rect after the call to EndDialog() + */ + EndDialog(hDlg, TRUE); + + if (oldShowButtonBar != appData.showButtonBar) { + InitDrawingSizes(boardSize, 0); + } else if ((oldShowCoords != appData.showCoords) || + (oldBlindfold != appData.blindfold)) { + InvalidateRect(hwndMain, &boardRect, FALSE); + } + + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + } + break; + } + return FALSE; +} + +VOID +GeneralOptionsPopup(HWND hwnd) +{ + FARPROC lpProc; + + lpProc = MakeProcInstance((FARPROC)GeneralOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_GeneralOptions), hwnd, + (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} +/*---------------------------------------------------------------------------*\ + * + * Board Options Dialog functions + * +\*---------------------------------------------------------------------------*/ + +const int SAMPLE_SQ_SIZE = 54; + +VOID +ChangeBoardSize(BoardSize newSize) +{ + if (newSize != boardSize) { + boardSize = newSize; + InitDrawingSizes(boardSize, 0); + } +} + +VOID +PaintSampleSquare( + HWND hwnd, + int ctrlid, + COLORREF squareColor, + COLORREF pieceColor, + COLORREF squareOutlineColor, + COLORREF pieceDetailColor, + BOOL isWhitePiece, + BOOL isMono, + HBITMAP pieces[3] + ) +{ + HBRUSH brushSquare; + HBRUSH brushSquareOutline; + HBRUSH brushPiece; + HBRUSH brushPieceDetail; + HBRUSH oldBrushPiece; + HBRUSH oldBrushSquare; + HBITMAP oldBitmapMem; + HBITMAP oldBitmapTemp; + HBITMAP bufferBitmap; + RECT rect; + HDC hdcScreen, hdcMem, hdcTemp; + HPEN pen, oldPen; + HWND hCtrl = GetDlgItem(hwnd, ctrlid); + int x, y; + + const int SOLID = 0; + const int WHITE = 1; + const int OUTLINE = 2; + const int BORDER = 4; + + InvalidateRect(hCtrl, NULL, TRUE); + UpdateWindow(hCtrl); + GetClientRect(hCtrl, &rect); + x = rect.left + (BORDER / 2); + y = rect.top + (BORDER / 2); + hdcScreen = GetDC(hCtrl); + hdcMem = CreateCompatibleDC(hdcScreen); + hdcTemp = CreateCompatibleDC(hdcScreen); + + bufferBitmap = CreateCompatibleBitmap(hdcScreen, rect.right-rect.left+1, + rect.bottom-rect.top+1); + oldBitmapMem = SelectObject(hdcMem, bufferBitmap); + if (!isMono) { + SelectPalette(hdcMem, hPal, FALSE); + } + brushSquare = CreateSolidBrush(squareColor); + brushSquareOutline = CreateSolidBrush(squareOutlineColor); + brushPiece = CreateSolidBrush(pieceColor); + brushPieceDetail = CreateSolidBrush(pieceDetailColor); + + /* + * first draw the rectangle + */ + pen = CreatePen(PS_SOLID, BORDER, squareOutlineColor); + oldPen = (HPEN) SelectObject(hdcMem, pen); + oldBrushSquare = (HBRUSH)SelectObject(hdcMem, brushSquare); + Rectangle(hdcMem, rect.left, rect.top, rect.right, rect.bottom); + + /* + * now draw the piece + */ + if (isMono) { + oldBitmapTemp = SelectObject(hdcTemp, pieces[OUTLINE]); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, hdcTemp, 0, 0, + isWhitePiece ? SRCCOPY : NOTSRCCOPY); + SelectObject(hdcTemp, oldBitmapTemp); + } else { + if (isWhitePiece) { + oldBitmapTemp = SelectObject(hdcTemp, pieces[WHITE]); + oldBrushPiece = SelectObject(hdcMem, brushPiece); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, 0x00B8074A); +#if 0 + /* Use pieceDetailColor for outline of white pieces */ + SelectObject(hdcTemp, pieces[OUTLINE]); + SelectObject(hdcMem, brushPieceDetail); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, 0x00B8074A); +#else + /* Use black for outline of white pieces */ + SelectObject(hdcTemp, pieces[OUTLINE]); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, SRCAND); +#endif + } else { +#if 0 + /* Use pieceDetailColor for details of black pieces */ + /* Requires filled-in solid bitmaps (BLACK_PIECE class); the + WHITE_PIECE ones aren't always the right shape. */ + oldBitmapTemp = SelectObject(hdcTemp, pieces[BLACK]); + oldBrushPiece = SelectObject(hdcMem, brushPieceDetail); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, 0x00B8074A); + SelectObject(hdcTemp, pieces[SOLID]); + SelectObject(hdcMem, brushPiece); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, 0x00B8074A); +#else + /* Use square color for details of black pieces */ + oldBitmapTemp = SelectObject(hdcTemp, pieces[SOLID]); + oldBrushPiece = SelectObject(hdcMem, brushPiece); + BitBlt(hdcMem, x, y, SAMPLE_SQ_SIZE, SAMPLE_SQ_SIZE, + hdcTemp, 0, 0, 0x00B8074A); +#endif + } + SelectObject(hdcMem, oldBrushPiece); + SelectObject(hdcTemp, oldBitmapTemp); + } + /* + * copy the memory dc to the screen + */ + SelectObject(hdcMem, bufferBitmap); + BitBlt(hdcScreen, rect.left, rect.top, + rect.right - rect.left, + rect.bottom - rect.top, + hdcMem, rect.left, rect.top, SRCCOPY); + SelectObject(hdcMem, oldBitmapMem); + /* + * clean up + */ + SelectObject(hdcMem, oldBrushPiece); + SelectObject(hdcMem, oldPen); + DeleteObject(brushPiece); + DeleteObject(brushPieceDetail); + DeleteObject(brushSquare); + DeleteObject(brushSquareOutline); + DeleteObject(pen); + DeleteDC(hdcTemp); + DeleteDC(hdcMem); + ReleaseDC(hCtrl, hdcScreen); +} + + +VOID +PaintColorBlock(HWND hwnd, int ctrlid, COLORREF color) +{ + HDC hdc; + HBRUSH brush, oldBrush; + RECT rect; + HWND hCtrl = GetDlgItem(hwnd, ctrlid); + + hdc = GetDC(hCtrl); + InvalidateRect(hCtrl, NULL, TRUE); + UpdateWindow(hCtrl); + GetClientRect(hCtrl, &rect); + brush = CreateSolidBrush(color); + oldBrush = (HBRUSH)SelectObject(hdc, brush); + Rectangle(hdc, rect.left, rect.top, rect.right, rect.bottom); + SelectObject(hdc, oldBrush); + DeleteObject(brush); + ReleaseDC(hCtrl, hdc); +} + + +VOID +SetBoardOptionEnables(HWND hDlg) +{ + if (IsDlgButtonChecked(hDlg, OPT_Monochrome)) { + ShowWindow(GetDlgItem(hDlg, OPT_LightSquareColor), SW_HIDE); + ShowWindow(GetDlgItem(hDlg, OPT_DarkSquareColor), SW_HIDE); + ShowWindow(GetDlgItem(hDlg, OPT_WhitePieceColor), SW_HIDE); + ShowWindow(GetDlgItem(hDlg, OPT_BlackPieceColor), SW_HIDE); + + EnableWindow(GetDlgItem(hDlg, OPT_ChooseLightSquareColor), FALSE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseDarkSquareColor), FALSE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseWhitePieceColor), FALSE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseBlackPieceColor), FALSE); + } else { + ShowWindow(GetDlgItem(hDlg, OPT_LightSquareColor), SW_SHOW); + ShowWindow(GetDlgItem(hDlg, OPT_DarkSquareColor), SW_SHOW); + ShowWindow(GetDlgItem(hDlg, OPT_WhitePieceColor), SW_SHOW); + ShowWindow(GetDlgItem(hDlg, OPT_BlackPieceColor), SW_SHOW); + + EnableWindow(GetDlgItem(hDlg, OPT_ChooseLightSquareColor), TRUE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseDarkSquareColor), TRUE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseWhitePieceColor), TRUE); + EnableWindow(GetDlgItem(hDlg, OPT_ChooseBlackPieceColor), TRUE); + } +} + +BoardSize +BoardOptionsWhichRadio(HWND hDlg) +{ + return (IsDlgButtonChecked(hDlg, OPT_SizeTiny) ? SizeTiny : + (IsDlgButtonChecked(hDlg, OPT_SizeTeeny) ? SizeTeeny : + (IsDlgButtonChecked(hDlg, OPT_SizeDinky) ? SizeDinky : + (IsDlgButtonChecked(hDlg, OPT_SizePetite) ? SizePetite : + (IsDlgButtonChecked(hDlg, OPT_SizeSlim) ? SizeSlim : + (IsDlgButtonChecked(hDlg, OPT_SizeSmall) ? SizeSmall : + (IsDlgButtonChecked(hDlg, OPT_SizeMediocre) ? SizeMediocre : + (IsDlgButtonChecked(hDlg, OPT_SizeMiddling) ? SizeMiddling : + (IsDlgButtonChecked(hDlg, OPT_SizeAverage) ? SizeAverage : + (IsDlgButtonChecked(hDlg, OPT_SizeModerate) ? SizeModerate : + (IsDlgButtonChecked(hDlg, OPT_SizeMedium) ? SizeMedium : + (IsDlgButtonChecked(hDlg, OPT_SizeBulky) ? SizeBulky : + (IsDlgButtonChecked(hDlg, OPT_SizeLarge) ? SizeLarge : + (IsDlgButtonChecked(hDlg, OPT_SizeBig) ? SizeBig : + (IsDlgButtonChecked(hDlg, OPT_SizeHuge) ? SizeHuge : + (IsDlgButtonChecked(hDlg, OPT_SizeGiant) ? SizeGiant : + (IsDlgButtonChecked(hDlg, OPT_SizeColossal) ? SizeColossal : + SizeTitanic ))))))))))))))))); +} + +LRESULT CALLBACK +BoardOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static Boolean mono; + static BoardSize size; + static COLORREF lsc, dsc, wpc, bpc, hsc, phc; + static HBITMAP pieces[3]; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + /* Initialize the dialog items */ + switch (boardSize) { + case SizeTiny: + CheckDlgButton(hDlg, OPT_SizeTiny, TRUE); + break; + case SizeTeeny: + CheckDlgButton(hDlg, OPT_SizeTeeny, TRUE); + break; + case SizeDinky: + CheckDlgButton(hDlg, OPT_SizeDinky, TRUE); + break; + case SizePetite: + CheckDlgButton(hDlg, OPT_SizePetite, TRUE); + break; + case SizeSlim: + CheckDlgButton(hDlg, OPT_SizeSlim, TRUE); + break; + case SizeSmall: + CheckDlgButton(hDlg, OPT_SizeSmall, TRUE); + break; + case SizeMediocre: + CheckDlgButton(hDlg, OPT_SizeMediocre, TRUE); + break; + case SizeMiddling: + CheckDlgButton(hDlg, OPT_SizeMiddling, TRUE); + break; + case SizeAverage: + CheckDlgButton(hDlg, OPT_SizeAverage, TRUE); + break; + case SizeModerate: + CheckDlgButton(hDlg, OPT_SizeModerate, TRUE); + break; + case SizeMedium: + CheckDlgButton(hDlg, OPT_SizeMedium, TRUE); + break; + case SizeBulky: + CheckDlgButton(hDlg, OPT_SizeBulky, TRUE); + break; + case SizeLarge: + CheckDlgButton(hDlg, OPT_SizeLarge, TRUE); + break; + case SizeBig: + CheckDlgButton(hDlg, OPT_SizeBig, TRUE); + break; + case SizeHuge: + CheckDlgButton(hDlg, OPT_SizeHuge, TRUE); + break; + case SizeGiant: + CheckDlgButton(hDlg, OPT_SizeGiant, TRUE); + break; + case SizeColossal: + CheckDlgButton(hDlg, OPT_SizeColossal, TRUE); + break; + case SizeTitanic: + CheckDlgButton(hDlg, OPT_SizeTitanic, TRUE); + } + + if (appData.monoMode) + CheckDlgButton(hDlg, OPT_Monochrome, TRUE); + + pieces[0] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "s"); + pieces[1] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "w"); + pieces[2] = DoLoadBitmap(hInst, "n", SAMPLE_SQ_SIZE, "o"); + + lsc = lightSquareColor; + dsc = darkSquareColor; + wpc = whitePieceColor; + bpc = blackPieceColor; + hsc = highlightSquareColor; + phc = premoveHighlightColor; + mono = appData.monoMode; + size = boardSize; + + SetBoardOptionEnables(hDlg); + return TRUE; + + case WM_PAINT: + PaintColorBlock(hDlg, OPT_LightSquareColor, lsc); + PaintColorBlock(hDlg, OPT_DarkSquareColor, dsc); + PaintColorBlock(hDlg, OPT_WhitePieceColor, wpc); + PaintColorBlock(hDlg, OPT_BlackPieceColor, bpc); + PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc); + PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc); + PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc, + TRUE, mono, pieces); + PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc, + FALSE, mono, pieces); + + return FALSE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* + * if we call EndDialog() after the call to ChangeBoardSize(), + * then ChangeBoardSize() does not take effect, although the new + * boardSize is saved. Go figure... + */ + EndDialog(hDlg, TRUE); + + size = BoardOptionsWhichRadio(hDlg); + + /* + * did any settings change? + */ + if (size != boardSize) { + ChangeBoardSize(size); + } + + if ((mono != appData.monoMode) || + (lsc != lightSquareColor) || + (dsc != darkSquareColor) || + (wpc != whitePieceColor) || + (bpc != blackPieceColor) || + (hsc != highlightSquareColor) || + (phc != premoveHighlightColor)) { + + lightSquareColor = lsc; + darkSquareColor = dsc; + whitePieceColor = wpc; + blackPieceColor = bpc; + highlightSquareColor = hsc; + premoveHighlightColor = phc; + appData.monoMode = mono; + + InitDrawingColors(); + InitDrawingSizes(boardSize, 0); + InvalidateRect(hwndMain, &boardRect, FALSE); + } + DeleteObject(pieces[0]); + DeleteObject(pieces[1]); + DeleteObject(pieces[2]); + return TRUE; + + case IDCANCEL: + DeleteObject(pieces[0]); + DeleteObject(pieces[1]); + DeleteObject(pieces[2]); + EndDialog(hDlg, FALSE); + return TRUE; + + case OPT_ChooseLightSquareColor: + if (ChangeColor(hDlg, &lsc)) + PaintColorBlock(hDlg, OPT_LightSquareColor, lsc); + PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc, + TRUE, mono, pieces); + break; + + case OPT_ChooseDarkSquareColor: + if (ChangeColor(hDlg, &dsc)) + PaintColorBlock(hDlg, OPT_DarkSquareColor, dsc); + PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc, + FALSE, mono, pieces); + break; + + case OPT_ChooseWhitePieceColor: + if (ChangeColor(hDlg, &wpc)) + PaintColorBlock(hDlg, OPT_WhitePieceColor, wpc); + PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc, + TRUE, mono, pieces); + break; + + case OPT_ChooseBlackPieceColor: + if (ChangeColor(hDlg, &bpc)) + PaintColorBlock(hDlg, OPT_BlackPieceColor, bpc); + PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc, + FALSE, mono, pieces); + break; + + case OPT_ChooseHighlightSquareColor: + if (ChangeColor(hDlg, &hsc)) + PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc); + PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc, + TRUE, mono, pieces); + break; + + case OPT_ChoosePremoveHighlightColor: + if (ChangeColor(hDlg, &phc)) + PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc); + PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc, + FALSE, mono, pieces); + break; + + case OPT_DefaultBoardColors: + lsc = ParseColorName(LIGHT_SQUARE_COLOR); + dsc = ParseColorName(DARK_SQUARE_COLOR); + wpc = ParseColorName(WHITE_PIECE_COLOR); + bpc = ParseColorName(BLACK_PIECE_COLOR); + hsc = ParseColorName(HIGHLIGHT_SQUARE_COLOR); + phc = ParseColorName(PREMOVE_HIGHLIGHT_COLOR); + mono = FALSE; + CheckDlgButton(hDlg, OPT_Monochrome, FALSE); + PaintColorBlock(hDlg, OPT_LightSquareColor, lsc); + PaintColorBlock(hDlg, OPT_DarkSquareColor, dsc); + PaintColorBlock(hDlg, OPT_WhitePieceColor, wpc); + PaintColorBlock(hDlg, OPT_BlackPieceColor, bpc); + PaintColorBlock(hDlg, OPT_HighlightSquareColor, hsc); + PaintColorBlock(hDlg, OPT_PremoveHighlightColor, phc); + SetBoardOptionEnables(hDlg); + PaintSampleSquare(hDlg, OPT_SampleLightSquare, lsc, wpc, hsc, bpc, + TRUE, mono, pieces); + PaintSampleSquare(hDlg, OPT_SampleDarkSquare, dsc, bpc, phc, wpc, + FALSE, mono, pieces); + break; + + case OPT_Monochrome: + mono = !mono; + SetBoardOptionEnables(hDlg); + break; + } + break; + } + return FALSE; +} + + +VOID +BoardOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)BoardOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_BoardOptions), hwnd, + (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * ICS Options Dialog functions + * +\*---------------------------------------------------------------------------*/ + +BOOL APIENTRY +MyCreateFont(HWND hwnd, MyFont *font) +{ + CHOOSEFONT cf; + HFONT hf; + + /* Initialize members of the CHOOSEFONT structure. */ + cf.lStructSize = sizeof(CHOOSEFONT); + cf.hwndOwner = hwnd; + cf.hDC = (HDC)NULL; + cf.lpLogFont = &font->lf; + cf.iPointSize = 0; + cf.Flags = CF_SCREENFONTS|/*CF_ANSIONLY|*/CF_INITTOLOGFONTSTRUCT; + cf.rgbColors = RGB(0,0,0); + cf.lCustData = 0L; + cf.lpfnHook = (LPCFHOOKPROC)NULL; + cf.lpTemplateName = (LPSTR)NULL; + cf.hInstance = (HINSTANCE) NULL; + cf.lpszStyle = (LPSTR)NULL; + cf.nFontType = SCREEN_FONTTYPE; + cf.nSizeMin = 0; + cf.nSizeMax = 0; + + /* Display the CHOOSEFONT common-dialog box. */ + if (!ChooseFont(&cf)) { + return FALSE; + } + + /* Create a logical font based on the user's */ + /* selection and return a handle identifying */ + /* that font. */ + hf = CreateFontIndirect(cf.lpLogFont); + if (hf == NULL) { + return FALSE; + } + + font->hf = hf; + font->mfp.pointSize = (float) (cf.iPointSize / 10.0); + font->mfp.bold = (font->lf.lfWeight >= FW_BOLD); + font->mfp.italic = font->lf.lfItalic; + font->mfp.underline = font->lf.lfUnderline; + font->mfp.strikeout = font->lf.lfStrikeOut; + strcpy(font->mfp.faceName, font->lf.lfFaceName); + return TRUE; +} + + +VOID +UpdateSampleText(HWND hDlg, int id, MyColorizeAttribs *mca) +{ + CHARFORMAT cf; + cf.cbSize = sizeof(CHARFORMAT); + cf.dwMask = + CFM_COLOR|CFM_BOLD|CFM_ITALIC|CFM_UNDERLINE|CFM_STRIKEOUT|CFM_FACE|CFM_SIZE; + cf.crTextColor = mca->color; + cf.dwEffects = mca->effects; + strcpy(cf.szFaceName, font[boardSize][CONSOLE_FONT]->mfp.faceName); + /* + * The 20.0 below is in fact documented. yHeight is expressed in twips. + * A twip is 1/20 of a font's point size. See documentation of CHARFORMAT. + * --msw + */ + cf.yHeight = (int)(font[boardSize][CONSOLE_FONT]->mfp.pointSize * 20.0 + 0.5); + cf.bCharSet = DEFAULT_CHARSET; /* should be ignored anyway */ + cf.bPitchAndFamily = DEFAULT_PITCH|FF_DONTCARE; + SendDlgItemMessage(hDlg, id, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf); +} + +LRESULT CALLBACK +ColorizeTextDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static MyColorizeAttribs mca; + static ColorClass cc; + COLORREF background = (COLORREF)0; + + switch (message) { + case WM_INITDIALOG: + cc = (ColorClass)lParam; + mca = colorizeAttribs[cc]; + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + /* Initialize the dialog items */ + CheckDlgButton(hDlg, OPT_Bold, (mca.effects & CFE_BOLD) != 0); + CheckDlgButton(hDlg, OPT_Italic, (mca.effects & CFE_ITALIC) != 0); + CheckDlgButton(hDlg, OPT_Underline, (mca.effects & CFE_UNDERLINE) != 0); + CheckDlgButton(hDlg, OPT_Strikeout, (mca.effects & CFE_STRIKEOUT) != 0); + + /* get the current background color from the parent window */ + SendMessage(GetWindow(hDlg, GW_OWNER),WM_COMMAND, + (WPARAM)WM_USER_GetConsoleBackground, + (LPARAM)&background); + + /* set the background color */ + SendDlgItemMessage(hDlg, OPT_Sample, EM_SETBKGNDCOLOR, FALSE, background); + + SetDlgItemText(hDlg, OPT_Sample, mca.name); + UpdateSampleText(hDlg, OPT_Sample, &mca); + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ + colorizeAttribs[cc] = mca; + textAttribs[cc].color = mca.color; + textAttribs[cc].effects = mca.effects; + Colorize(currentColorClass, TRUE); + if (cc == ColorNormal) { + CHARFORMAT cf; + cf.cbSize = sizeof(CHARFORMAT); + cf.dwMask = CFM_COLOR; + cf.crTextColor = mca.color; + SendDlgItemMessage(hwndConsole, OPT_ConsoleInput, + EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf); + } + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + case OPT_ChooseColor: + ChangeColor(hDlg, &mca.color); + UpdateSampleText(hDlg, OPT_Sample, &mca); + return TRUE; + + default: + mca.effects = + (IsDlgButtonChecked(hDlg, OPT_Bold) ? CFE_BOLD : 0) | + (IsDlgButtonChecked(hDlg, OPT_Italic) ? CFE_ITALIC : 0) | + (IsDlgButtonChecked(hDlg, OPT_Underline) ? CFE_UNDERLINE : 0) | + (IsDlgButtonChecked(hDlg, OPT_Strikeout) ? CFE_STRIKEOUT : 0); + UpdateSampleText(hDlg, OPT_Sample, &mca); + break; + } + break; + } + return FALSE; +} + +VOID +ColorizeTextPopup(HWND hwnd, ColorClass cc) +{ + FARPROC lpProc; + + lpProc = MakeProcInstance((FARPROC)ColorizeTextDialog, hInst); + DialogBoxParam(hInst, MAKEINTRESOURCE(DLG_Colorize), + hwnd, (DLGPROC)lpProc, (LPARAM) cc); + FreeProcInstance(lpProc); +} + +VOID +SetIcsOptionEnables(HWND hDlg) +{ +#define ENABLE_DLG_ITEM(x,y) EnableWindow(GetDlgItem(hDlg,(x)), (y)) + + UINT state = IsDlgButtonChecked(hDlg, OPT_Premove); + ENABLE_DLG_ITEM(OPT_PremoveWhite, state); + ENABLE_DLG_ITEM(OPT_PremoveWhiteText, state); + ENABLE_DLG_ITEM(OPT_PremoveBlack, state); + ENABLE_DLG_ITEM(OPT_PremoveBlackText, state); + + ENABLE_DLG_ITEM(OPT_IcsAlarmTime, IsDlgButtonChecked(hDlg, OPT_IcsAlarm)); + +#undef ENABLE_DLG_ITEM +} + + +LRESULT CALLBACK +IcsOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + int number; + int i; + static COLORREF cbc; + static MyColorizeAttribs *mca; + COLORREF *colorref; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + + mca = colorizeAttribs; + + for (i=0; i < NColorClasses - 1; i++) { + mca[i].color = textAttribs[i].color; + mca[i].effects = textAttribs[i].effects; + } + cbc = consoleBackgroundColor; + + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + + /* Initialize the dialog items */ +#define CHECK_BOX(x,y) CheckDlgButton(hDlg, (x), (BOOL)(y)) + + CHECK_BOX(OPT_AutoComment, appData.autoComment); + CHECK_BOX(OPT_AutoObserve, appData.autoObserve); + CHECK_BOX(OPT_GetMoveList, appData.getMoveList); + CHECK_BOX(OPT_LocalLineEditing, appData.localLineEditing); + CHECK_BOX(OPT_QuietPlay, appData.quietPlay); + CHECK_BOX(OPT_Premove, appData.premove); + CHECK_BOX(OPT_PremoveWhite, appData.premoveWhite); + CHECK_BOX(OPT_PremoveBlack, appData.premoveBlack); + CHECK_BOX(OPT_IcsAlarm, appData.icsAlarm); + CHECK_BOX(OPT_DontColorize, !appData.colorize); + +#undef CHECK_BOX + + sprintf(buf, "%d", appData.icsAlarmTime / 1000); + SetDlgItemText(hDlg, OPT_IcsAlarmTime, buf); + SetDlgItemText(hDlg, OPT_PremoveWhiteText, appData.premoveWhiteText); + SetDlgItemText(hDlg, OPT_PremoveBlackText, appData.premoveBlackText); + + SendDlgItemMessage(hDlg, OPT_SampleShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel1, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleKibitz, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleTell, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleRequest, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSeek, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleNormal, EM_SETBKGNDCOLOR, 0, cbc); + + SetDlgItemText(hDlg, OPT_SampleShout, mca[ColorShout].name); + SetDlgItemText(hDlg, OPT_SampleSShout, mca[ColorSShout].name); + SetDlgItemText(hDlg, OPT_SampleChannel1, mca[ColorChannel1].name); + SetDlgItemText(hDlg, OPT_SampleChannel, mca[ColorChannel].name); + SetDlgItemText(hDlg, OPT_SampleKibitz, mca[ColorKibitz].name); + SetDlgItemText(hDlg, OPT_SampleTell, mca[ColorTell].name); + SetDlgItemText(hDlg, OPT_SampleChallenge, mca[ColorChallenge].name); + SetDlgItemText(hDlg, OPT_SampleRequest, mca[ColorRequest].name); + SetDlgItemText(hDlg, OPT_SampleSeek, mca[ColorSeek].name); + SetDlgItemText(hDlg, OPT_SampleNormal, mca[ColorNormal].name); + + UpdateSampleText(hDlg, OPT_SampleShout, &mca[ColorShout]); + UpdateSampleText(hDlg, OPT_SampleSShout, &mca[ColorSShout]); + UpdateSampleText(hDlg, OPT_SampleChannel1, &mca[ColorChannel1]); + UpdateSampleText(hDlg, OPT_SampleChannel, &mca[ColorChannel]); + UpdateSampleText(hDlg, OPT_SampleKibitz, &mca[ColorKibitz]); + UpdateSampleText(hDlg, OPT_SampleTell, &mca[ColorTell]); + UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]); + UpdateSampleText(hDlg, OPT_SampleRequest, &mca[ColorRequest]); + UpdateSampleText(hDlg, OPT_SampleSeek, &mca[ColorSeek]); + UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]); + + SetIcsOptionEnables(hDlg); + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + + case WM_USER_GetConsoleBackground: + /* the ColorizeTextDialog needs the current background color */ + colorref = (COLORREF *)lParam; + *colorref = cbc; + return FALSE; + + case IDOK: + /* Read changed options from the dialog box */ + GetDlgItemText(hDlg, OPT_IcsAlarmTime, buf, MSG_SIZ); + if (sscanf(buf, "%d", &number) != 1 || (number < 0)){ + MessageBox(hDlg, "Invalid ICS Alarm Time", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + +#define IS_CHECKED(x) (Boolean)IsDlgButtonChecked(hDlg, (x)) + + appData.icsAlarm = IS_CHECKED(OPT_IcsAlarm); + appData.premove = IS_CHECKED(OPT_Premove); + appData.premoveWhite = IS_CHECKED(OPT_PremoveWhite); + appData.premoveBlack = IS_CHECKED(OPT_PremoveBlack); + appData.autoComment = IS_CHECKED(OPT_AutoComment); + appData.autoObserve = IS_CHECKED(OPT_AutoObserve); + appData.getMoveList = IS_CHECKED(OPT_GetMoveList); + appData.localLineEditing = IS_CHECKED(OPT_LocalLineEditing); + appData.quietPlay = IS_CHECKED(OPT_QuietPlay); + +#undef IS_CHECKED + + appData.icsAlarmTime = number * 1000; + GetDlgItemText(hDlg, OPT_PremoveWhiteText, appData.premoveWhiteText, 5); + GetDlgItemText(hDlg, OPT_PremoveBlackText, appData.premoveBlackText, 5); + + if (appData.localLineEditing) { + DontEcho(); + EchoOn(); + } else { + DoEcho(); + EchoOff(); + } + + appData.colorize = + (Boolean)!IsDlgButtonChecked(hDlg, OPT_DontColorize); + + if (!appData.colorize) { + CHARFORMAT cf; + COLORREF background = ParseColorName(COLOR_BKGD); + /* + SetDefaultTextAttribs(); + Colorize(currentColorClass); + */ + cf.cbSize = sizeof(CHARFORMAT); + cf.dwMask = CFM_COLOR; + cf.crTextColor = ParseColorName(COLOR_NORMAL); + + SendDlgItemMessage(hwndConsole, OPT_ConsoleInput, + EM_SETCHARFORMAT, SCF_ALL, (LPARAM)&cf); + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, + EM_SETBKGNDCOLOR, FALSE, background); + SendDlgItemMessage(hwndConsole, OPT_ConsoleInput, + EM_SETBKGNDCOLOR, FALSE, background); + } + + if (cbc != consoleBackgroundColor) { + consoleBackgroundColor = cbc; + if (appData.colorize) { + SendDlgItemMessage(hwndConsole, OPT_ConsoleText, + EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor); + SendDlgItemMessage(hwndConsole, OPT_ConsoleInput, + EM_SETBKGNDCOLOR, FALSE, consoleBackgroundColor); + } + } + + for (i=0; i < NColorClasses - 1; i++) { + textAttribs[i].color = mca[i].color; + textAttribs[i].effects = mca[i].effects; + } + + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + case OPT_ChooseShoutColor: + ColorizeTextPopup(hDlg, ColorShout); + UpdateSampleText(hDlg, OPT_SampleShout, &mca[ColorShout]); + break; + + case OPT_ChooseSShoutColor: + ColorizeTextPopup(hDlg, ColorSShout); + UpdateSampleText(hDlg, OPT_SampleSShout, &mca[ColorSShout]); + break; + + case OPT_ChooseChannel1Color: + ColorizeTextPopup(hDlg, ColorChannel1); + UpdateSampleText(hDlg, OPT_SampleChannel1, + &colorizeAttribs[ColorChannel1]); + break; + + case OPT_ChooseChannelColor: + ColorizeTextPopup(hDlg, ColorChannel); + UpdateSampleText(hDlg, OPT_SampleChannel, &mca[ColorChannel]); + break; + + case OPT_ChooseKibitzColor: + ColorizeTextPopup(hDlg, ColorKibitz); + UpdateSampleText(hDlg, OPT_SampleKibitz, &mca[ColorKibitz]); + break; + + case OPT_ChooseTellColor: + ColorizeTextPopup(hDlg, ColorTell); + UpdateSampleText(hDlg, OPT_SampleTell, &mca[ColorTell]); + break; + + case OPT_ChooseChallengeColor: + ColorizeTextPopup(hDlg, ColorChallenge); + UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]); + break; + + case OPT_ChooseRequestColor: + ColorizeTextPopup(hDlg, ColorRequest); + UpdateSampleText(hDlg, OPT_SampleRequest, &mca[ColorRequest]); + break; + + case OPT_ChooseSeekColor: + ColorizeTextPopup(hDlg, ColorSeek); + UpdateSampleText(hDlg, OPT_SampleSeek, &mca[ColorSeek]); + break; + + case OPT_ChooseNormalColor: + ColorizeTextPopup(hDlg, ColorNormal); + UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]); + break; + + case OPT_ChooseBackgroundColor: + if (ChangeColor(hDlg, &cbc)) { + SendDlgItemMessage(hDlg, OPT_SampleShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel1, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleKibitz, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleTell, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleRequest, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSeek, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleNormal, EM_SETBKGNDCOLOR, 0, cbc); + } + break; + + case OPT_DefaultColors: + for (i=0; i < NColorClasses - 1; i++) + ParseAttribs(&mca[i].color, + &mca[i].effects, + defaultTextAttribs[i]); + + cbc = ParseColorName(COLOR_BKGD); + SendDlgItemMessage(hDlg, OPT_SampleShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSShout, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel1, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChannel, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleKibitz, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleTell, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleChallenge, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleRequest, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleSeek, EM_SETBKGNDCOLOR, 0, cbc); + SendDlgItemMessage(hDlg, OPT_SampleNormal, EM_SETBKGNDCOLOR, 0, cbc); + + UpdateSampleText(hDlg, OPT_SampleShout, &mca[ColorShout]); + UpdateSampleText(hDlg, OPT_SampleSShout, &mca[ColorSShout]); + UpdateSampleText(hDlg, OPT_SampleChannel1, &mca[ColorChannel1]); + UpdateSampleText(hDlg, OPT_SampleChannel, &mca[ColorChannel]); + UpdateSampleText(hDlg, OPT_SampleKibitz, &mca[ColorKibitz]); + UpdateSampleText(hDlg, OPT_SampleTell, &mca[ColorTell]); + UpdateSampleText(hDlg, OPT_SampleChallenge, &mca[ColorChallenge]); + UpdateSampleText(hDlg, OPT_SampleRequest, &mca[ColorRequest]); + UpdateSampleText(hDlg, OPT_SampleSeek, &mca[ColorSeek]); + UpdateSampleText(hDlg, OPT_SampleNormal, &mca[ColorNormal]); + break; + + default: + SetIcsOptionEnables(hDlg); + break; + } + break; + } + return FALSE; +} + +VOID +IcsOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)IcsOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_IcsOptions), hwnd, + (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * Fonts Dialog functions + * +\*---------------------------------------------------------------------------*/ + +VOID +SetSampleFontText(HWND hwnd, int id, const MyFont *mf) +{ + char buf[MSG_SIZ]; + HWND hControl; + HDC hdc; + CHARFORMAT cf; + SIZE size; + RECT rectClient, rectFormat; + HFONT oldFont; + POINT center; + int len; + + len = sprintf(buf, "%.0f pt. %s%s%s\n", + mf->mfp.pointSize, mf->mfp.faceName, + mf->mfp.bold ? " bold" : "", + mf->mfp.italic ? " italic" : ""); + SetDlgItemText(hwnd, id, buf); + + hControl = GetDlgItem(hwnd, id); + hdc = GetDC(hControl); + SetMapMode(hdc, MM_TEXT); /* 1 pixel == 1 logical unit */ + oldFont = SelectObject(hdc, mf->hf); + + /* get number of logical units necessary to display font name */ + GetTextExtentPoint32(hdc, buf, len, &size); + + /* calculate formatting rectangle in the rich edit control. + * May be larger or smaller than the actual control. + */ + GetClientRect(hControl, &rectClient); + center.x = (rectClient.left + rectClient.right) / 2; + center.y = (rectClient.top + rectClient.bottom) / 2; + rectFormat.top = center.y - (size.cy / 2) - 1; + rectFormat.bottom = center.y + (size.cy / 2) + 1; + rectFormat.left = center.x - (size.cx / 2) - 1; + rectFormat.right = center.x + (size.cx / 2) + 1; + +#if 0 + fprintf(debugFP, "\nfont: %s\n" + "center.x %d, centerY %d\n" + "size.cx %d, size.cy %d\n" + "client.top %d, bottom %d, left %d, right %d\n" + "format.top %d, bottom %d, left %d, right %d\n", + buf, + center.x, center.y, + size.cx, size.cy, + rectClient.top, rectClient.bottom, rectClient.left, + rectClient.right, + rectFormat.top, rectFormat.bottom, rectFormat.left, + rectFormat.right); +#endif + + cf.cbSize = sizeof(CHARFORMAT); + cf.dwMask = CFM_FACE|CFM_SIZE|CFM_CHARSET|CFM_BOLD|CFM_ITALIC; + cf.dwEffects = 0; + if (mf->lf.lfWeight == FW_BOLD) cf.dwEffects |= CFE_BOLD; + if (mf->lf.lfItalic) cf.dwEffects |= CFE_ITALIC; + strcpy(cf.szFaceName, mf->mfp.faceName); + /* + * yHeight is expressed in twips. A twip is 1/20 of a font's point + * size. See documentation of CHARFORMAT. --msw + */ + cf.yHeight = (int)(mf->mfp.pointSize * 20.0 + 0.5); + cf.bCharSet = mf->lf.lfCharSet; + cf.bPitchAndFamily = mf->lf.lfPitchAndFamily; + + /* format the text in the rich edit control */ + SendMessage(hControl, EM_SETCHARFORMAT, SCF_ALL, (LPARAM) &cf); + SendMessage(hControl, EM_SETRECT, (WPARAM)0, (LPARAM) &rectFormat); + + /* clean up */ + SelectObject(hdc, oldFont); + ReleaseDC(hControl, hdc); +} + +VOID +CopyFont(MyFont *dest, const MyFont *src) +{ + dest->mfp.pointSize = src->mfp.pointSize; + dest->mfp.bold = src->mfp.bold; + dest->mfp.italic = src->mfp.italic; + dest->mfp.underline = src->mfp.underline; + dest->mfp.strikeout = src->mfp.strikeout; + lstrcpy(dest->mfp.faceName, src->mfp.faceName); + CreateFontInMF(dest); +} + + +LRESULT CALLBACK +FontOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static MyFont workFont[NUM_FONTS]; + static BOOL firstPaint; + int i; + RECT rect; + + switch (message) { + case WM_INITDIALOG: + + /* copy the current font settings into a working copy */ + for (i=0; i < NUM_FONTS; i++) + CopyFont(&workFont[i], font[boardSize][i]); + + if (!appData.icsActive) + EnableWindow(GetDlgItem(hDlg, OPT_ChooseConsoleFont), FALSE); + + firstPaint = TRUE; /* see rant below */ + + /* If I don't call SetFocus(), the dialog won't respond to the keyboard + * when first drawn. Why is this the only dialog that behaves this way? Is + * is the WM_PAINT stuff below?? Sigh... + */ + SetFocus(GetDlgItem(hDlg, IDOK)); + break; + + case WM_PAINT: + /* This should not be necessary. However, if SetSampleFontText() is called + * in response to WM_INITDIALOG, the strings are not properly centered in + * the controls when the dialog first appears. I can't figure out why, so + * this is the workaround. --msw + */ + if (firstPaint) { + SetSampleFontText(hDlg, OPT_SampleClockFont, &workFont[CLOCK_FONT]); + SetSampleFontText(hDlg, OPT_SampleMessageFont, &workFont[MESSAGE_FONT]); + SetSampleFontText(hDlg, OPT_SampleCoordFont, &workFont[COORD_FONT]); + SetSampleFontText(hDlg, OPT_SampleTagFont, &workFont[EDITTAGS_FONT]); + SetSampleFontText(hDlg, OPT_SampleCommentsFont, &workFont[COMMENT_FONT]); + SetSampleFontText(hDlg, OPT_SampleConsoleFont, &workFont[CONSOLE_FONT]); + firstPaint = FALSE; + } + break; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + + case IDOK: + /* again, it seems to avoid redraw problems if we call EndDialog first */ + EndDialog(hDlg, FALSE); + + /* copy modified settings back to the fonts array */ + for (i=0; i < NUM_FONTS; i++) + CopyFont(font[boardSize][i], &workFont[i]); + + /* a sad necessity due to the original design of having a separate + * console font, tags font, and comment font for each board size. IMHO + * these fonts should not be dependent on the current board size. I'm + * running out of time, so I am doing this hack rather than redesign the + * data structure. Besides, I think if I redesigned the data structure, I + * might break backwards compatibility with old winboard.ini files. + * --msw + */ + for (i=0; i < NUM_SIZES; i++) { + CopyFont(font[i][EDITTAGS_FONT], &workFont[EDITTAGS_FONT]); + CopyFont(font[i][CONSOLE_FONT], &workFont[CONSOLE_FONT]); + CopyFont(font[i][COMMENT_FONT], &workFont[COMMENT_FONT]); + } + /* end sad necessity */ + + InitDrawingSizes(boardSize, 0); + InvalidateRect(hwndMain, NULL, TRUE); + + if (commentDialog) { + SendDlgItemMessage(commentDialog, OPT_CommentText, + WM_SETFONT, (WPARAM)font[boardSize][COMMENT_FONT]->hf, + MAKELPARAM(TRUE, 0)); + GetClientRect(GetDlgItem(commentDialog, OPT_CommentText), &rect); + InvalidateRect(commentDialog, &rect, TRUE); + } + + if (editTagsDialog) { + SendDlgItemMessage(editTagsDialog, OPT_TagsText, + WM_SETFONT, (WPARAM)font[boardSize][EDITTAGS_FONT]->hf, + MAKELPARAM(TRUE, 0)); + GetClientRect(GetDlgItem(editTagsDialog, OPT_TagsText), &rect); + InvalidateRect(editTagsDialog, &rect, TRUE); + } + + if (hwndConsole) { + ChangedConsoleFont(); + } + + for (i=0; idef, &workFont[i].mfp); + CreateFontInMF(&workFont[i]); + } + SetSampleFontText(hDlg, OPT_SampleClockFont, &workFont[CLOCK_FONT]); + SetSampleFontText(hDlg, OPT_SampleMessageFont, &workFont[MESSAGE_FONT]); + SetSampleFontText(hDlg, OPT_SampleCoordFont, &workFont[COORD_FONT]); + SetSampleFontText(hDlg, OPT_SampleTagFont, &workFont[EDITTAGS_FONT]); + SetSampleFontText(hDlg, OPT_SampleCommentsFont, &workFont[COMMENT_FONT]); + SetSampleFontText(hDlg, OPT_SampleConsoleFont, &workFont[CONSOLE_FONT]); + break; + } + } + return FALSE; +} + +VOID +FontsOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)FontOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_Fonts), hwnd, + (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * Sounds Dialog functions + * +\*---------------------------------------------------------------------------*/ + + +SoundComboData soundComboData[] = { + {"Move", NULL}, + {"Bell", NULL}, + {"ICS Alarm", NULL}, + {"ICS Win", NULL}, + {"ICS Loss", NULL}, + {"ICS Draw", NULL}, + {"ICS Unfinished", NULL}, + {"Shout", NULL}, + {"SShout/CShout", NULL}, + {"Channel 1", NULL}, + {"Channel", NULL}, + {"Kibitz", NULL}, + {"Tell", NULL}, + {"Challenge", NULL}, + {"Request", NULL}, + {"Seek", NULL}, + {NULL, NULL}, +}; + + +void +InitSoundComboData(SoundComboData *scd) +{ + SoundClass sc; + ColorClass cc; + int index; + + /* copy current sound settings to combo array */ + + for ( sc = (SoundClass)0; sc < NSoundClasses; sc++) { + scd[sc].name = strdup(sounds[sc].name); + } + for ( cc = (ColorClass)0; cc < NColorClasses - 2; cc++) { + index = (int)cc + (int)NSoundClasses; + scd[index].name = strdup(textAttribs[cc].sound.name); + } +} + + +void +ResetSoundComboData(SoundComboData *scd) +{ + while (scd->label) { + if (scd->name != NULL) { + free (scd->name); + scd->name = NULL; + } + scd++; + } +} + +void +InitSoundCombo(HWND hwndCombo, SoundComboData *scd) +{ + char buf[255]; + DWORD err; + DWORD cnt = 0; + SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0); + + /* send the labels to the combo box */ + while (scd->label) { + err = SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) scd->label); + if (err != cnt++) { + sprintf(buf, "InitSoundCombo(): err '%d', cnt '%d'\n", + err, cnt); + MessageBox(NULL, buf, NULL, MB_OK); + } + scd++; + } + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) 0, (LPARAM) 0); +} + +int +SoundDialogWhichRadio(HWND hDlg) +{ + if (IsDlgButtonChecked(hDlg, OPT_NoSound)) return OPT_NoSound; + if (IsDlgButtonChecked(hDlg, OPT_DefaultBeep)) return OPT_DefaultBeep; + if (IsDlgButtonChecked(hDlg, OPT_BuiltInSound)) return OPT_BuiltInSound; + if (IsDlgButtonChecked(hDlg, OPT_WavFile)) return OPT_WavFile; + return -1; +} + +VOID +SoundDialogSetEnables(HWND hDlg, int radio) +{ + EnableWindow(GetDlgItem(hDlg, OPT_BuiltInSoundName), + radio == OPT_BuiltInSound); + EnableWindow(GetDlgItem(hDlg, OPT_WavFileName), radio == OPT_WavFile); + EnableWindow(GetDlgItem(hDlg, OPT_BrowseSound), radio == OPT_WavFile); +} + +char * +SoundDialogGetName(HWND hDlg, int radio) +{ + static char buf[MSG_SIZ], buf2[MSG_SIZ], buf3[MSG_SIZ]; + char *dummy, *ret; + switch (radio) { + case OPT_NoSound: + default: + return ""; + case OPT_DefaultBeep: + return "$"; + case OPT_BuiltInSound: + buf[0] = '!'; + GetDlgItemText(hDlg, OPT_BuiltInSoundName, buf + 1, sizeof(buf) - 1); + return buf; + case OPT_WavFile: + GetDlgItemText(hDlg, OPT_WavFileName, buf, sizeof(buf)); + GetCurrentDirectory(MSG_SIZ, buf3); + SetCurrentDirectory(installDir); + if (GetFullPathName(buf, MSG_SIZ, buf2, &dummy)) { + ret = buf2; + } else { + ret = buf; + } + SetCurrentDirectory(buf3); + return ret; + } +} + +void +DisplaySelectedSound(HWND hDlg, HWND hCombo, const char *name) +{ + int radio; + /* + * I think it's best to clear the combo and edit boxes. It looks stupid + * to have a value from another sound event sitting there grayed out. + */ + SetDlgItemText(hDlg, OPT_WavFileName, ""); + SendMessage(hCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0); + + if (appData.debugMode) + fprintf(debugFP, "DisplaySelectedSound(,,'%s'):\n", name); + switch (name[0]) { + case NULLCHAR: + radio = OPT_NoSound; + break; + case '$': + if (name[1] == NULLCHAR) { + radio = OPT_DefaultBeep; + } else { + radio = OPT_WavFile; + SetDlgItemText(hDlg, OPT_WavFileName, name); + } + break; + case '!': + if (name[1] == NULLCHAR) { + radio = OPT_NoSound; + } else { + radio = OPT_BuiltInSound; + if (SendMessage(hCombo, CB_SELECTSTRING, (WPARAM) -1, + (LPARAM) (name + 1)) == CB_ERR) { + SendMessage(hCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0); + SendMessage(hCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) (name + 1)); + } + } + break; + default: + radio = OPT_WavFile; + SetDlgItemText(hDlg, OPT_WavFileName, name); + break; + } + SoundDialogSetEnables(hDlg, radio); + CheckRadioButton(hDlg, OPT_NoSound, OPT_WavFile, radio); +} + + +char *builtInSoundNames[] = BUILT_IN_SOUND_NAMES; + +LRESULT CALLBACK +SoundOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + static HWND hSoundCombo; + static DWORD index; + static HWND hBISN; + int radio; + MySound tmp; + FILE *f; + char buf[MSG_SIZ]; + char *newName; + SoundClass sc; + ColorClass cc; + SoundComboData *scd; + + switch (message) { + case WM_INITDIALOG: + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + + /* Initialize the built-in sounds combo */ + hBISN = GetDlgItem(hDlg, OPT_BuiltInSoundName); + InitComboStrings(hBISN, builtInSoundNames); + + /* Initialize the sound events combo */ + index = 0; + InitSoundComboData(soundComboData); + hSoundCombo = GetDlgItem(hDlg, CBO_Sounds); + InitSoundCombo(hSoundCombo, soundComboData); + + /* update the dialog */ + DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name); + return TRUE; + + case WM_COMMAND: /* message: received a command */ + + if (((HWND)lParam == hSoundCombo) && + (HIWORD(wParam) == CBN_SELCHANGE)) { + /* + * the user has selected a new sound event. We must store the name for + * the previously selected event, then retrieve the name for the + * newly selected event and update the dialog. + */ + radio = SoundDialogWhichRadio(hDlg); + newName = strdup(SoundDialogGetName(hDlg, radio)); + + if (strcmp(newName, soundComboData[index].name) != 0) { + free(soundComboData[index].name); + soundComboData[index].name = newName; + } else { + free(newName); + newName = NULL; + } + /* now get the settings for the newly selected event */ + index = SendMessage(hSoundCombo, CB_GETCURSEL, (WPARAM)0, (LPARAM)0); + DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name); + + return TRUE; + } + switch (LOWORD(wParam)) { + case IDOK: + /* + * save the name for the currently selected sound event + */ + radio = SoundDialogWhichRadio(hDlg); + newName = strdup(SoundDialogGetName(hDlg, radio)); + + if (strcmp(soundComboData[index].name, newName) != 0) { + free(soundComboData[index].name); + soundComboData[index].name = newName; + } else { + free(newName); + newName = NULL; + } + + /* save all the sound names that changed and load the sounds */ + + for ( sc = (SoundClass)0; sc < NSoundClasses; sc++) { + if (strcmp(soundComboData[sc].name, sounds[sc].name) != 0) { + free(sounds[sc].name); + sounds[sc].name = strdup(soundComboData[sc].name); + MyLoadSound(&sounds[sc]); + } + } + for ( cc = (ColorClass)0; cc < NColorClasses - 2; cc++) { + index = (int)cc + (int)NSoundClasses; + if (strcmp(soundComboData[index].name, + textAttribs[cc].sound.name) != 0) { + free(textAttribs[cc].sound.name); + textAttribs[cc].sound.name = strdup(soundComboData[index].name); + MyLoadSound(&textAttribs[cc].sound); + } + } + + ResetSoundComboData(soundComboData); + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + ResetSoundComboData(soundComboData); + EndDialog(hDlg, FALSE); + return TRUE; + + case OPT_DefaultSounds: + /* can't use SetDefaultSounds() because we need to be able to "undo" if + * user selects "Cancel" later on. So we do it the hard way here. + */ + scd = &soundComboData[0]; + while (scd->label != NULL) { + if (scd->name != NULL) free(scd->name); + scd->name = strdup(""); + scd++; + } + free(soundComboData[(int)SoundBell].name); + soundComboData[(int)SoundBell].name = strdup(SOUND_BELL); + DisplaySelectedSound(hDlg, hBISN, soundComboData[index].name); + break; + + case OPT_PlaySound: + radio = SoundDialogWhichRadio(hDlg); + tmp.name = strdup(SoundDialogGetName(hDlg, radio)); + tmp.data = NULL; + MyLoadSound(&tmp); + MyPlaySound(&tmp); + if (tmp.data != NULL) free(tmp.data); + if (tmp.name != NULL) free(tmp.name); + return TRUE; + + case OPT_BrowseSound: + f = OpenFileDialog(hDlg, FALSE, NULL, "wav", SOUND_FILT, + "Browse for Sound File", NULL, NULL, buf); + if (f != NULL) { + fclose(f); + SetDlgItemText(hDlg, OPT_WavFileName, buf); + } + return TRUE; + + default: + radio = SoundDialogWhichRadio(hDlg); + SoundDialogSetEnables(hDlg, radio); + break; + } + break; + } + return FALSE; +} + + +VOID SoundOptionsPopup(HWND hwnd) +{ + FARPROC lpProc; + + lpProc = MakeProcInstance((FARPROC)SoundOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_Sound), hwnd, (DLGPROC)lpProc); + FreeProcInstance(lpProc); +} + + +/*---------------------------------------------------------------------------*\ + * + * Comm Port dialog functions + * +\*---------------------------------------------------------------------------*/ + + +#define FLOW_NONE 0 +#define FLOW_XOFF 1 +#define FLOW_CTS 2 +#define FLOW_DSR 3 + +#define PORT_NONE + +ComboData cdPort[] = { {"None", PORT_NONE}, {"COM1", 1}, {"COM2", 2}, + {"COM3", 3}, {"COM4", 4}, {NULL, 0} }; +ComboData cdDataRate[] = { {"110", 110}, {"300", 300}, {"600", 600}, {"1200", 1200}, + {"2400", 2400}, {"4800", 4800}, {"9600", 9600}, {"19200", 19200}, + {"38400", 38400}, {NULL, 0} }; +ComboData cdDataBits[] = { {"5", 5}, {"6", 6}, {"7", 7}, {"8", 8}, {NULL, 0} }; +ComboData cdParity[] = { {"None", NOPARITY}, {"Odd", ODDPARITY}, {"Even", EVENPARITY}, + {"Mark", MARKPARITY}, {"Space", SPACEPARITY}, {NULL, 0} }; +ComboData cdStopBits[] = { {"1", ONESTOPBIT}, {"1.5", ONE5STOPBITS}, + {"2", TWOSTOPBITS}, {NULL, 0} }; +ComboData cdFlow[] = { {"None", FLOW_NONE}, {"Xoff/Xon", FLOW_XOFF}, {"CTS", FLOW_CTS}, + {"DSR", FLOW_DSR}, {NULL, 0} }; + + +VOID +ParseCommSettings(char *arg, DCB *dcb) +{ + int dataRate, count; + char bits[MSG_SIZ], parity[MSG_SIZ], stopBits[MSG_SIZ], flow[MSG_SIZ]; + ComboData *cd; + count = sscanf(arg, "%d%*[, ]%[^, ]%*[, ]%[^, ]%*[, ]%[^, ]%*[, ]%[^, ]", + &dataRate, bits, parity, stopBits, flow); + if (count != 5) goto cant_parse; + dcb->BaudRate = dataRate; + cd = cdDataBits; + while (cd->label != NULL) { + if (StrCaseCmp(cd->label, bits) == 0) { + dcb->ByteSize = cd->value; + break; + } + cd++; + } + if (cd->label == NULL) goto cant_parse; + cd = cdParity; + while (cd->label != NULL) { + if (StrCaseCmp(cd->label, parity) == 0) { + dcb->Parity = cd->value; + break; + } + cd++; + } + if (cd->label == NULL) goto cant_parse; + cd = cdStopBits; + while (cd->label != NULL) { + if (StrCaseCmp(cd->label, stopBits) == 0) { + dcb->StopBits = cd->value; + break; + } + cd++; + } + cd = cdFlow; + if (cd->label == NULL) goto cant_parse; + while (cd->label != NULL) { + if (StrCaseCmp(cd->label, flow) == 0) { + switch (cd->value) { + case FLOW_NONE: + dcb->fOutX = FALSE; + dcb->fOutxCtsFlow = FALSE; + dcb->fOutxDsrFlow = FALSE; + break; + case FLOW_CTS: + dcb->fOutX = FALSE; + dcb->fOutxCtsFlow = TRUE; + dcb->fOutxDsrFlow = FALSE; + break; + case FLOW_DSR: + dcb->fOutX = FALSE; + dcb->fOutxCtsFlow = FALSE; + dcb->fOutxDsrFlow = TRUE; + break; + case FLOW_XOFF: + dcb->fOutX = TRUE; + dcb->fOutxCtsFlow = FALSE; + dcb->fOutxDsrFlow = FALSE; + break; + } + break; + } + cd++; + } + if (cd->label == NULL) goto cant_parse; + return; +cant_parse: + ExitArgError("Can't parse com port settings", arg); +} + + +VOID PrintCommSettings(FILE *f, char *name, DCB *dcb) +{ + char *flow = "??", *parity = "??", *stopBits = "??"; + ComboData *cd; + + cd = cdParity; + while (cd->label != NULL) { + if (dcb->Parity == cd->value) { + parity = cd->label; + break; + } + cd++; + } + cd = cdStopBits; + while (cd->label != NULL) { + if (dcb->StopBits == cd->value) { + stopBits = cd->label; + break; + } + cd++; + } + if (dcb->fOutX) { + flow = cdFlow[FLOW_XOFF].label; + } else if (dcb->fOutxCtsFlow) { + flow = cdFlow[FLOW_CTS].label; + } else if (dcb->fOutxDsrFlow) { + flow = cdFlow[FLOW_DSR].label; + } else { + flow = cdFlow[FLOW_NONE].label; + } + fprintf(f, "/%s=%d,%d,%s,%s,%s\n", name, + dcb->BaudRate, dcb->ByteSize, parity, stopBits, flow); +} + + +void +InitCombo(HANDLE hwndCombo, ComboData *cd) +{ + SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0); + + while (cd->label != NULL) { + SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM) cd->label); + cd++; + } +} + +void +SelectComboValue(HANDLE hwndCombo, ComboData *cd, unsigned value) +{ + int i; + + i = 0; + while (cd->label != NULL) { + if (cd->value == value) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) i, (LPARAM) 0); + return; + } + cd++; + i++; + } +} + +LRESULT CALLBACK +CommPortOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + HANDLE hwndCombo; + char *p; + LRESULT index; + unsigned value; + int err; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow(hDlg, GW_OWNER)); + /* Initialize the dialog items */ + /* !! There should probably be some synchronization + in accessing hCommPort and dcb. Or does modal nature + of this dialog box do it for us? + */ + hwndCombo = GetDlgItem(hDlg, OPT_Port); + InitCombo(hwndCombo, cdPort); + p = strrchr(appData.icsCommPort, '\\'); + if (p++ == NULL) p = appData.icsCommPort; + if ((*p == '\0') || + (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) p) == CB_ERR)) { + SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) "None"); + } + EnableWindow(hwndCombo, hCommPort == NULL); /*!! don't allow change for now*/ + + hwndCombo = GetDlgItem(hDlg, OPT_DataRate); + InitCombo(hwndCombo, cdDataRate); + sprintf(buf, "%u", dcb.BaudRate); + if (SendMessage(hwndCombo, CB_SELECTSTRING, (WPARAM) -1, (LPARAM) buf) == CB_ERR) { + SendMessage(hwndCombo, CB_SETCURSEL, (WPARAM) -1, (LPARAM) 0); + SendMessage(hwndCombo, WM_SETTEXT, (WPARAM) 0, (LPARAM) buf); + } + + hwndCombo = GetDlgItem(hDlg, OPT_Bits); + InitCombo(hwndCombo, cdDataBits); + SelectComboValue(hwndCombo, cdDataBits, dcb.ByteSize); + + hwndCombo = GetDlgItem(hDlg, OPT_Parity); + InitCombo(hwndCombo, cdParity); + SelectComboValue(hwndCombo, cdParity, dcb.Parity); + + hwndCombo = GetDlgItem(hDlg, OPT_StopBits); + InitCombo(hwndCombo, cdStopBits); + SelectComboValue(hwndCombo, cdStopBits, dcb.StopBits); + + hwndCombo = GetDlgItem(hDlg, OPT_Flow); + InitCombo(hwndCombo, cdFlow); + if (dcb.fOutX) { + SelectComboValue(hwndCombo, cdFlow, FLOW_XOFF); + } else if (dcb.fOutxCtsFlow) { + SelectComboValue(hwndCombo, cdFlow, FLOW_CTS); + } else if (dcb.fOutxDsrFlow) { + SelectComboValue(hwndCombo, cdFlow, FLOW_DSR); + } else { + SelectComboValue(hwndCombo, cdFlow, FLOW_NONE); + } + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ +#ifdef NOTDEF + /* !! Currently we can't change comm ports in midstream */ + hwndCombo = GetDlgItem(hDlg, OPT_Port); + index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); + if (index == PORT_NONE) { + appData.icsCommPort = ""; + if (hCommPort != NULL) { + CloseHandle(hCommPort); + hCommPort = NULL; + } + EndDialog(hDlg, TRUE); + return TRUE; + } + SendMessage(hwndCombo, WM_GETTEXT, (WPARAM) MSG_SIZ, (LPARAM) buf); + appData.icsCommPort = strdup(buf); + if (hCommPort != NULL) { + CloseHandle(hCommPort); + hCommPort = NULL; + } + /* now what?? can't really do this; have to fix up the ChildProc + and InputSource records for the comm port that we gave to the + back end. */ +#endif /*NOTDEF*/ + + hwndCombo = GetDlgItem(hDlg, OPT_DataRate); + SendMessage(hwndCombo, WM_GETTEXT, (WPARAM) MSG_SIZ, (LPARAM) buf); + if (sscanf(buf, "%u", &value) != 1) { + MessageBox(hDlg, "Invalid data rate", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return TRUE; + } + dcb.BaudRate = value; + + hwndCombo = GetDlgItem(hDlg, OPT_Bits); + index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); + dcb.ByteSize = cdDataBits[index].value; + + hwndCombo = GetDlgItem(hDlg, OPT_Parity); + index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); + dcb.Parity = cdParity[index].value; + + hwndCombo = GetDlgItem(hDlg, OPT_StopBits); + index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); + dcb.StopBits = cdStopBits[index].value; + + hwndCombo = GetDlgItem(hDlg, OPT_Flow); + index = SendMessage(hwndCombo, CB_GETCURSEL, (WPARAM) 0, (LPARAM) 0); + switch (cdFlow[index].value) { + case FLOW_NONE: + dcb.fOutX = FALSE; + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + break; + case FLOW_CTS: + dcb.fOutX = FALSE; + dcb.fOutxCtsFlow = TRUE; + dcb.fOutxDsrFlow = FALSE; + break; + case FLOW_DSR: + dcb.fOutX = FALSE; + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = TRUE; + break; + case FLOW_XOFF: + dcb.fOutX = TRUE; + dcb.fOutxCtsFlow = FALSE; + dcb.fOutxDsrFlow = FALSE; + break; + } + if (!SetCommState(hCommPort, (LPDCB) &dcb)) { + err = GetLastError(); + switch(MessageBox(hDlg, + "Failed to set comm port state;\r\ninvalid options?", + "Option Error", MB_ABORTRETRYIGNORE|MB_ICONQUESTION)) { + case IDABORT: + DisplayFatalError("Failed to set comm port state", err, 1); + exit(1); /*is it ok to do this from here?*/ + + case IDRETRY: + return TRUE; + + case IDIGNORE: + EndDialog(hDlg, TRUE); + return TRUE; + } + } + + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + default: + break; + } + break; + } + return FALSE; +} + +VOID +CommPortOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)CommPortOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_CommPort), hwnd, (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * Load Options dialog functions + * +\*---------------------------------------------------------------------------*/ + +VOID +SetLoadOptionEnables(HWND hDlg) +{ + UINT state; + + state = IsDlgButtonChecked(hDlg, OPT_Autostep); + EnableWindow(GetDlgItem(hDlg, OPT_ASTimeDelay), state); + EnableWindow(GetDlgItem(hDlg, OPT_AStext1), state); +} + +LRESULT CALLBACK +LoadOptions(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + float fnumber; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + /* Initialize the dialog items */ + if (appData.timeDelay >= 0.0) { + CheckDlgButton(hDlg, OPT_Autostep, TRUE); + sprintf(buf, "%.2g", appData.timeDelay); + SetDlgItemText(hDlg, OPT_ASTimeDelay, buf); + } else { + CheckDlgButton(hDlg, OPT_Autostep, FALSE); + } + SetLoadOptionEnables(hDlg); + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ + if (IsDlgButtonChecked(hDlg, OPT_Autostep)) { + GetDlgItemText(hDlg, OPT_ASTimeDelay, buf, MSG_SIZ); + if (sscanf(buf, "%f", &fnumber) != 1) { + MessageBox(hDlg, "Invalid load game step rate", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + appData.timeDelay = fnumber; + } else { + appData.timeDelay = (float) -1.0; + } + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + default: + SetLoadOptionEnables(hDlg); + break; + } + break; + } + return FALSE; +} + + +VOID +LoadOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)LoadOptions, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_LoadOptions), hwnd, (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * Save Options dialog functions + * +\*---------------------------------------------------------------------------*/ + +VOID +SetSaveOptionEnables(HWND hDlg) +{ + UINT state; + + state = IsDlgButtonChecked(hDlg, OPT_Autosave); + EnableWindow(GetDlgItem(hDlg, OPT_AVPrompt), state); + EnableWindow(GetDlgItem(hDlg, OPT_AVToFile), state); + if (state && !IsDlgButtonChecked(hDlg, OPT_AVPrompt) && + !IsDlgButtonChecked(hDlg, OPT_AVToFile)) { + CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVPrompt); + } + + state = state && IsDlgButtonChecked(hDlg, OPT_AVToFile); + EnableWindow(GetDlgItem(hDlg, OPT_AVFilename), state); + EnableWindow(GetDlgItem(hDlg, OPT_AVBrowse), state); +} + +LRESULT CALLBACK +SaveOptionsDialog(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + FILE *f; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + /* Initialize the dialog items */ + if (*appData.saveGameFile != NULLCHAR) { + CheckDlgButton(hDlg, OPT_Autosave, (UINT) TRUE); + CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVToFile); + SetDlgItemText(hDlg, OPT_AVFilename, appData.saveGameFile); + } else if (appData.autoSaveGames) { + CheckDlgButton(hDlg, OPT_Autosave, (UINT) TRUE); + CheckRadioButton(hDlg, OPT_AVPrompt, OPT_AVToFile, OPT_AVPrompt); + } else { + CheckDlgButton(hDlg, OPT_Autosave, (UINT) FALSE); + } + if (appData.oldSaveStyle) { + CheckRadioButton(hDlg, OPT_PGN, OPT_Old, OPT_Old); + } else { + CheckRadioButton(hDlg, OPT_PGN, OPT_Old, OPT_PGN); + } + SetSaveOptionEnables(hDlg); + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ + if (IsDlgButtonChecked(hDlg, OPT_Autosave)) { + appData.autoSaveGames = TRUE; + if (IsDlgButtonChecked(hDlg, OPT_AVPrompt)) { + appData.saveGameFile = ""; + } else /*if (IsDlgButtonChecked(hDlg, OPT_AVToFile))*/ { + GetDlgItemText(hDlg, OPT_AVFilename, buf, MSG_SIZ); + if (*buf == NULLCHAR) { + MessageBox(hDlg, "Invalid save game file name", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + if ((isalpha(buf[0]) && buf[1] == ':') || + (buf[0] == '\\' && buf[1] == '\\')) { + appData.saveGameFile = strdup(buf); + } else { + char buf2[MSG_SIZ], buf3[MSG_SIZ]; + char *dummy; + GetCurrentDirectory(MSG_SIZ, buf3); + SetCurrentDirectory(installDir); + if (GetFullPathName(buf, MSG_SIZ, buf2, &dummy)) { + appData.saveGameFile = strdup(buf2); + } else { + appData.saveGameFile = strdup(buf); + } + SetCurrentDirectory(buf3); + } + } + } else { + appData.autoSaveGames = FALSE; + appData.saveGameFile = ""; + } + appData.oldSaveStyle = IsDlgButtonChecked(hDlg, OPT_Old); + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + case OPT_AVBrowse: + f = OpenFileDialog(hDlg, TRUE, NULL, + appData.oldSaveStyle ? "gam" : "pgn", + GAME_FILT, "Browse for Auto Save File", + NULL, NULL, buf); + if (f != NULL) { + fclose(f); + SetDlgItemText(hDlg, OPT_AVFilename, buf); + } + break; + + default: + SetSaveOptionEnables(hDlg); + break; + } + break; + } + return FALSE; +} + +VOID +SaveOptionsPopup(HWND hwnd) +{ + FARPROC lpProc = MakeProcInstance((FARPROC)SaveOptionsDialog, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_SaveOptions), hwnd, (DLGPROC) lpProc); + FreeProcInstance(lpProc); +} + +/*---------------------------------------------------------------------------*\ + * + * Time Control Options dialog functions + * +\*---------------------------------------------------------------------------*/ + +VOID +SetTimeControlEnables(HWND hDlg) +{ + UINT state; + + state = IsDlgButtonChecked(hDlg, OPT_TCUseMoves); + EnableWindow(GetDlgItem(hDlg, OPT_TCTime), state); + EnableWindow(GetDlgItem(hDlg, OPT_TCMoves), state); + EnableWindow(GetDlgItem(hDlg, OPT_TCtext1), state); + EnableWindow(GetDlgItem(hDlg, OPT_TCtext2), state); + EnableWindow(GetDlgItem(hDlg, OPT_TCTime2), !state); + EnableWindow(GetDlgItem(hDlg, OPT_TCInc), !state); + EnableWindow(GetDlgItem(hDlg, OPT_TCitext1), !state); + EnableWindow(GetDlgItem(hDlg, OPT_TCitext2), !state); + EnableWindow(GetDlgItem(hDlg, OPT_TCitext3), !state); +} + + +LRESULT CALLBACK +TimeControl(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + char buf[MSG_SIZ]; + int mps, increment; + BOOL ok; + + switch (message) { + case WM_INITDIALOG: /* message: initialize dialog box */ + /* Center the dialog over the application window */ + CenterWindow (hDlg, GetWindow (hDlg, GW_OWNER)); + /* Initialize the dialog items */ + if (appData.clockMode && !appData.icsActive) { + if (appData.timeIncrement == -1) { + CheckRadioButton(hDlg, OPT_TCUseMoves, OPT_TCUseInc, + OPT_TCUseMoves); + SetDlgItemText(hDlg, OPT_TCTime, appData.timeControl); + SetDlgItemInt(hDlg, OPT_TCMoves, appData.movesPerSession, + FALSE); + SetDlgItemText(hDlg, OPT_TCTime2, ""); + SetDlgItemText(hDlg, OPT_TCInc, ""); + } else { + CheckRadioButton(hDlg, OPT_TCUseMoves, OPT_TCUseInc, + OPT_TCUseInc); + SetDlgItemText(hDlg, OPT_TCTime, ""); + SetDlgItemText(hDlg, OPT_TCMoves, ""); + SetDlgItemText(hDlg, OPT_TCTime2, appData.timeControl); + SetDlgItemInt(hDlg, OPT_TCInc, appData.timeIncrement, FALSE); + } + SetTimeControlEnables(hDlg); + } + return TRUE; + + case WM_COMMAND: /* message: received a command */ + switch (LOWORD(wParam)) { + case IDOK: + /* Read changed options from the dialog box */ + if (IsDlgButtonChecked(hDlg, OPT_TCUseMoves)) { + increment = -1; + mps = GetDlgItemInt(hDlg, OPT_TCMoves, &ok, FALSE); + if (!ok || mps <= 0) { + MessageBox(hDlg, "Invalid moves per time control", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + GetDlgItemText(hDlg, OPT_TCTime, buf, MSG_SIZ); + if (!ParseTimeControl(buf, increment, mps)) { + MessageBox(hDlg, "Invalid minutes per time control", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + } else { + increment = GetDlgItemInt(hDlg, OPT_TCInc, &ok, FALSE); + mps = appData.movesPerSession; + if (!ok || increment < 0) { + MessageBox(hDlg, "Invalid increment", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + GetDlgItemText(hDlg, OPT_TCTime2, buf, MSG_SIZ); + if (!ParseTimeControl(buf, increment, mps)) { + MessageBox(hDlg, "Invalid initial time", + "Option Error", MB_OK|MB_ICONEXCLAMATION); + return FALSE; + } + } + appData.timeControl = strdup(buf); + appData.movesPerSession = mps; + appData.timeIncrement = increment; + Reset(TRUE, TRUE); + EndDialog(hDlg, TRUE); + return TRUE; + + case IDCANCEL: + EndDialog(hDlg, FALSE); + return TRUE; + + default: + SetTimeControlEnables(hDlg); + break; + } + break; + } + return FALSE; +} + +VOID +TimeControlOptionsPopup(HWND hwnd) +{ + if (gameMode != BeginningOfGame) { + DisplayError("Changing time control during a game is not implemented", 0); + } else { + FARPROC lpProc = MakeProcInstance((FARPROC)TimeControl, hInst); + DialogBox(hInst, MAKEINTRESOURCE(DLG_TimeControl), hwnd, (DLGPROC) lpProc); + FreeProcInstance(lpProc); + } +} + + diff --git a/winboard/woptions.h b/winboard/woptions.h new file mode 100644 index 0000000..a35d6a6 --- /dev/null +++ b/winboard/woptions.h @@ -0,0 +1,34 @@ +/* + * woptions.h -- Options dialog box routines for WinBoard + * $Id: + * + * Copyright 2000 Free Software Foundation, Inc. + * + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * ------------------------------------------------------------------------ + */ + +#include + +VOID GeneralOptionsPopup(HWND hwnd); +VOID BoardOptionsPopup(HWND hwnd); +VOID IcsOptionsPopup(HWND hwnd); +VOID FontsOptionsPopup(HWND hwnd); +VOID SoundOptionsPopup(HWND hwnd); +VOID CommPortOptionsPopup(HWND hwnd); +VOID LoadOptionsPopup(HWND hwnd); +VOID SaveOptionsPopup(HWND hwnd); +VOID TimeControlOptionsPopup(HWND hwnd); diff --git a/winboard/wsockerr.c b/winboard/wsockerr.c new file mode 100644 index 0000000..f83ef71 --- /dev/null +++ b/winboard/wsockerr.c @@ -0,0 +1,60 @@ +/* Windows sockets error map */ +/* These messages ought to be in the Windows message catalog! */ + +#include +#include +#include "wsockerr.h" + +ErrorMap errmap[] = +{ {WSAEINTR, "Interrupted system call"}, + {WSAEBADF, "Bad file number"}, + {WSAEACCES, "Permission denied"}, + {WSAEFAULT, "Bad address"}, + {WSAEINVAL, "Invalid argument"}, + {WSAEMFILE, "Too many open files"}, + {WSAEWOULDBLOCK, "Operation would block"}, + {WSAEINPROGRESS, "Operation now in progress"}, + {WSAEALREADY, "Operation already in progress"}, + {WSAENOTSOCK, "Socket operation on non-socket"}, + {WSAEMSGSIZE, "Message too long"}, + {WSAEPROTOTYPE, "Protocol wrong type for socket"}, + {WSAENOPROTOOPT, "Protocol not available"}, + {WSAEPROTONOSUPPORT, "Protocol not supported"}, + {WSAESOCKTNOSUPPORT, "Socket type not supported"}, + {WSAEOPNOTSUPP, "Operation not supported on socket"}, + {WSAEPFNOSUPPORT, "Protocol family not supported"}, + {WSAEAFNOSUPPORT, "Address family not supported by protocol family"}, + {WSAEADDRINUSE, "Address already in use"}, + {WSAEADDRNOTAVAIL, "Can't assign requested address"}, + {WSAENETDOWN, "Network is down"}, + {WSAENETUNREACH, "Network is unreachable"}, + {WSAENETRESET, "Network dropped connection on reset"}, + {WSAECONNABORTED, "Software caused connection abort"}, + {WSAECONNRESET, "Connection reset by peer"}, + {WSAENOBUFS, "No buffer space available"}, + {WSAEISCONN, "Socket is already connected"}, + {WSAENOTCONN, "Socket is not connected"}, + {WSAESHUTDOWN, "Can't send after socket shutdown"}, + {WSAETOOMANYREFS, "Too many references: can't splice"}, + {WSAETIMEDOUT, "Connection timed out"}, + {WSAECONNREFUSED, "Connection refused"}, + {WSAELOOP, "Too many levels of symbolic links"}, + {WSAENAMETOOLONG, "File name too long"}, + {WSAEHOSTDOWN, "Host is down"}, + {WSAEHOSTUNREACH, "No route to host"}, + {WSAENOTEMPTY, "Directory not empty"}, + {WSAEPROCLIM, "Too many processes"}, + {WSAEUSERS, "Too many users"}, + {WSAEDQUOT, "Disc quota exceeded"}, + {WSAESTALE, "Stale NFS file handle"}, + {WSAEREMOTE, "Too many levels of remote in path"}, + {WSAEDISCON, "Undocumented Winsock error code WSAEDISCON"}, + {WSASYSNOTREADY, "Winsock subsystem unusable"}, + {WSAVERNOTSUPPORTED, "Required Winsock version is not supported"}, + {WSANOTINITIALISED, "Winsock not initialized"}, + {WSAHOST_NOT_FOUND, "Host name not found by name server (authoritative)"}, + {WSATRY_AGAIN, "Host name not found by name server (nonauthoritative), or name server failure"}, + {WSANO_RECOVERY, "Nonrecoverable name server error"}, + {WSANO_DATA, "Host name has no address data of required type"}, + {0, NULL} +}; diff --git a/winboard/wsockerr.h b/winboard/wsockerr.h new file mode 100644 index 0000000..d83eb94 --- /dev/null +++ b/winboard/wsockerr.h @@ -0,0 +1,10 @@ +/* Windows sockets error map */ +/* These messages ought to be in the Windows message catalog! */ + +typedef struct { + int err; + char* msg; +} ErrorMap; + +extern ErrorMap errmap[]; + diff --git a/xboard.c b/xboard.c new file mode 100644 index 0000000..06212e6 --- /dev/null +++ b/xboard.c @@ -0,0 +1,8475 @@ +/* + * xboard.c -- X front end for XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-2001 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "config.h" + +#include +#include +#include +#include +#include +#include +#include + +#if !OMIT_SOCKETS +# if HAVE_SYS_SOCKET_H +# include +# include +# include +# else /* not HAVE_SYS_SOCKET_H */ +# if HAVE_LAN_SOCKET_H +# include +# include +# include +# else /* not HAVE_LAN_SOCKET_H */ +# define OMIT_SOCKETS 1 +# endif /* not HAVE_LAN_SOCKET_H */ +# endif /* not HAVE_SYS_SOCKET_H */ +#endif /* !OMIT_SOCKETS */ + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_SYS_FCNTL_H +# include +#else /* not HAVE_SYS_FCNTL_H */ +# if HAVE_FCNTL_H +# include +# endif /* HAVE_FCNTL_H */ +#endif /* not HAVE_SYS_FCNTL_H */ + +#if HAVE_SYS_SYSTEMINFO_H +# include +#endif /* HAVE_SYS_SYSTEMINFO_H */ + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif + +#if HAVE_UNISTD_H +# include +#endif + +#if HAVE_SYS_WAIT_H +# include +#endif + +#if HAVE_DIRENT_H +# include +# define NAMLEN(dirent) strlen((dirent)->d_name) +# define HAVE_DIR_STRUCT +#else +# define dirent direct +# define NAMLEN(dirent) (dirent)->d_namlen +# if HAVE_SYS_NDIR_H +# include +# define HAVE_DIR_STRUCT +# endif +# if HAVE_SYS_DIR_H +# include +# define HAVE_DIR_STRUCT +# endif +# if HAVE_NDIR_H +# include +# define HAVE_DIR_STRUCT +# endif +#endif + +#include +#include +#include +#include +#include +#if USE_XAW3D +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#if HAVE_LIBXPM +#include +#include "pixmaps/pixmaps.h" +#define IMAGE_EXT "xpm" +#else +#define IMAGE_EXT "xim" +#include "bitmaps/bitmaps.h" +#endif + +#include "bitmaps/icon_white.bm" +#include "bitmaps/icon_black.bm" +#include "bitmaps/checkmark.bm" + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "moves.h" +#include "xboard.h" +#include "childio.h" +#include "xgamelist.h" +#include "xhistory.h" +#include "xedittags.h" + +#if !DEFINED_SYS_ERRLIST +extern char *sys_errlist[]; +#endif + +#ifdef __CYGWIN__ +#define sys_errlist _sys_errlist +#endif + +#ifdef __EMX__ +#ifndef HAVE_USLEEP +#define HAVE_USLEEP +#endif +#define usleep(t) _sleep2(((t)+500)/1000) +#endif + +typedef struct { + String string; + XtActionProc proc; +} MenuItem; + +typedef struct { + String name; + MenuItem *mi; +} Menu; + +int main P((int argc, char **argv)); +RETSIGTYPE CmailSigHandler P((int sig)); +RETSIGTYPE IntSigHandler P((int sig)); +void CreateGCs P((void)); +void CreateXIMPieces P((void)); +void CreateXPMPieces P((void)); +void CreatePieces P((void)); +void CreatePieceMenus P((void)); +Widget CreateMenuBar P((Menu *mb)); +Widget CreateButtonBar P ((MenuItem *mi)); +char *FindFont P((char *pattern, int targetPxlSize)); +void PieceMenuPopup P((Widget w, XEvent *event, + String *params, Cardinal *num_params)); +static void PieceMenuSelect P((Widget w, ChessSquare piece, caddr_t junk)); +static void DropMenuSelect P((Widget w, ChessSquare piece, caddr_t junk)); +void ReadBitmap P((Pixmap *pm, String name, unsigned char bits[], + u_int wreq, u_int hreq)); +void CreateGrid P((void)); +int EventToSquare P((int x, int limit)); +void DrawSquare P((int row, int column, ChessSquare piece, int do_flash)); +void EventProc P((Widget widget, caddr_t unused, XEvent *event)); +void HandleUserMove P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AnimateUserMove P((Widget w, XEvent * event, + String * params, Cardinal * nParams)); +void WhiteClock P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void BlackClock P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void DrawPositionProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void XDrawPosition P((Widget w, /*Boolean*/int repaint, + Board board)); +void CommentPopUp P((char *title, char *label)); +void CommentPopDown P((void)); +void CommentCallback P((Widget w, XtPointer client_data, + XtPointer call_data)); +void ICSInputBoxPopUp P((void)); +void ICSInputBoxPopDown P((void)); +void FileNamePopUp P((char *label, char *def, + FileProc proc, char *openMode)); +void FileNamePopDown P((void)); +void FileNameCallback P((Widget w, XtPointer client_data, + XtPointer call_data)); +void FileNameAction P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AskQuestionReplyAction P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AskQuestionProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AskQuestionPopDown P((void)); +void PromotionPopUp P((void)); +void PromotionPopDown P((void)); +void PromotionCallback P((Widget w, XtPointer client_data, + XtPointer call_data)); +void EditCommentPopDown P((void)); +void EditCommentCallback P((Widget w, XtPointer client_data, + XtPointer call_data)); +void SelectCommand P((Widget w, XtPointer client_data, XtPointer call_data)); +void ResetProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void LoadGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void LoadNextGameProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void LoadPrevGameProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void ReloadGameProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void LoadPositionProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void LoadNextPositionProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void LoadPrevPositionProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void ReloadPositionProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void CopyPositionProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PastePositionProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void CopyGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void PasteGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void SaveGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void SavePositionProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void MailMoveProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ReloadCmailMsgProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void QuitProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void PauseProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void MachineBlackProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void MachineWhiteProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AnalyzeModeProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AnalyzeFileProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void TwoMachinesProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void IcsClientProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void EditGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void EditPositionProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void TrainingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void EditCommentProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void IcsInputBoxProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void AcceptProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void DeclineProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void RematchProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void CallFlagProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void DrawProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AbortProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AdjournProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ResignProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void EnterKeyProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void StopObservingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void StopExaminingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void BackwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ForwardProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ToStartProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ToEndProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void RevertProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void TruncateGameProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void RetractMoveProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void MoveNowProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AlwaysQueenProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void AnimateDraggingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void AnimateMovingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void AutocommProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void AutoflagProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AutoflipProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AutobsProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void AutoraiseProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AutosaveProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void BlindfoldProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void FlashMovesProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void FlipViewProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void GetMoveListProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void HighlightDraggingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void HighlightLastMoveProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void MoveSoundProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void IcsAlarmProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void OldSaveStyleProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PeriodicUpdatesProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PonderNextMoveProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PopupMoveErrorsProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PopupExitMessageProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void PremoveProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void QuietPlayProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ShowCoordsProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void ShowThinkingProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void TestLegalityProc P((Widget w, XEvent *event, String *prms, + Cardinal *nprms)); +void InfoProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void ManProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void HintProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void BookProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AboutGameProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void AboutProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void DebugProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void NothingProc P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void Iconify P((Widget w, XEvent *event, String *prms, Cardinal *nprms)); +void DisplayMove P((int moveNumber)); +void DisplayTitle P((char *title)); +void ICSInitScript P((void)); +int LoadGamePopUp P((FILE *f, int gameNumber, char *title)); +void ErrorPopUp P((char *title, char *text, int modal)); +void ErrorPopDown P((void)); +static char *ExpandPathName P((char *path)); +static void CreateAnimVars P((void)); +static void DragPieceBegin P((int x, int y)); +static void DragPieceMove P((int x, int y)); +static void DragPieceEnd P((int x, int y)); +static void DrawDragPiece P((void)); +char *ModeToWidgetName P((GameMode mode)); + +/* +* XBoard depends on Xt R4 or higher +*/ +int xtVersion = XtSpecificationRelease; + +int xScreen; +Display *xDisplay; +Window xBoardWindow; +Pixel lightSquareColor, darkSquareColor, whitePieceColor, blackPieceColor, + jailSquareColor, highlightSquareColor, premoveHighlightColor; +GC lightSquareGC, darkSquareGC, jailSquareGC, lineGC, wdPieceGC, wlPieceGC, + bdPieceGC, blPieceGC, wbPieceGC, bwPieceGC, coordGC, highlineGC, + wjPieceGC, bjPieceGC, prelineGC; +Pixmap iconPixmap, wIconPixmap, bIconPixmap, xMarkPixmap; +Widget shellWidget, layoutWidget, formWidget, boardWidget, messageWidget, + whiteTimerWidget, blackTimerWidget, titleWidget, widgetList[16], + commentShell, promotionShell, whitePieceMenu, blackPieceMenu, dropMenu, + menuBarWidget, buttonBarWidget, editShell, errorShell, analysisShell, + ICSInputShell, fileNameShell, askQuestionShell; +XSegment gridSegments[(BOARD_SIZE + 1) * 2]; +XSegment jailGridSegments[(BOARD_SIZE + 3) * 2]; +Font clockFontID, coordFontID; +XFontStruct *clockFontStruct, *coordFontStruct; +XtAppContext appContext; +char *layoutName; +char *oldICSInteractionTitle; + +FileProc fileProc; +char *fileOpenMode; + +Position commentX = -1, commentY = -1; +Dimension commentW, commentH; + +int squareSize, smallLayout = 0, tinyLayout = 0, + fromX = -1, fromY = -1, toX, toY, commentUp = False, analysisUp = False, + ICSInputBoxUp = False, askQuestionUp = False, + filenameUp = False, promotionUp = False, pmFromX = -1, pmFromY = -1, + editUp = False, errorUp = False, errorExitStatus = -1, lineGap; +Pixel timerForegroundPixel, timerBackgroundPixel; +Pixel buttonForegroundPixel, buttonBackgroundPixel; +char *chessDir, *programName, *programVersion, + *gameCopyFilename, *gamePasteFilename; + +#define SOLID 0 +#define OUTLINE 1 +Pixmap pieceBitmap[2][6]; +Pixmap xpmPieceBitmap[4][6]; /* LL, LD, DL, DD */ +Pixmap xpmLightSquare, xpmDarkSquare, xpmJailSquare; +int useImages, useImageSqs; +XImage *ximPieceBitmap[4][6]; /* LL, LD, DL, DD */ +Pixmap ximMaskPm[6]; /* clipmasks, used for XIM pieces */ +XImage *ximLightSquare, *ximDarkSquare; +XImage *xim_Cross; + +#define pieceToSolid(piece) &pieceBitmap[SOLID][((int)(piece)) % 6] +#define pieceToOutline(piece) &pieceBitmap[OUTLINE][((int)(piece)) % 6] + +#define White(piece) ((int)(piece) < (int)BlackPawn) + +/* Variables for doing smooth animation. This whole thing + would be much easier if the board was double-buffered, + but that would require a fairly major rewrite. */ + +typedef struct { + Pixmap saveBuf; + Pixmap newBuf; + GC blitGC, pieceGC, outlineGC; + XPoint startSquare, prevFrame, mouseDelta; + int startColor; + int dragPiece; + Boolean dragActive; + int startBoardX, startBoardY; + } AnimState; + +/* There can be two pieces being animated at once: a player + can begin dragging a piece before the remote opponent has moved. */ + +static AnimState game, player; + +/* Bitmaps for use as masks when drawing XPM pieces. + Need one for each black and white piece. */ +static Pixmap xpmMask[BlackKing + 1]; + +/* This magic number is the number of intermediate frames used + in each half of the animation. For short moves it's reduced + by 1. The total number of frames will be factor * 2 + 1. */ +#define kFactor 4 + +SizeDefaults sizeDefaults[] = SIZE_DEFAULTS; + +MenuItem fileMenu[] = { + {"Reset Game", ResetProc}, + {"----", NothingProc}, + {"Load Game", LoadGameProc}, + {"Load Next Game", LoadNextGameProc}, + {"Load Previous Game", LoadPrevGameProc}, + {"Reload Same Game", ReloadGameProc}, + {"Save Game", SaveGameProc}, + {"----", NothingProc}, + {"Copy Game", CopyGameProc}, + {"Paste Game", PasteGameProc}, + {"----", NothingProc}, + {"Load Position", LoadPositionProc}, + {"Load Next Position", LoadNextPositionProc}, + {"Load Previous Position", LoadPrevPositionProc}, + {"Reload Same Position", ReloadPositionProc}, + {"Save Position", SavePositionProc}, + {"----", NothingProc}, + {"Copy Position", CopyPositionProc}, + {"Paste Position", PastePositionProc}, + {"----", NothingProc}, + {"Mail Move", MailMoveProc}, + {"Reload CMail Message", ReloadCmailMsgProc}, + {"----", NothingProc}, + {"Exit", QuitProc}, + {NULL, NULL} +}; + +MenuItem modeMenu[] = { + {"Machine White", MachineWhiteProc}, + {"Machine Black", MachineBlackProc}, + {"Two Machines", TwoMachinesProc}, + {"Analysis Mode", AnalyzeModeProc}, + {"Analyze File", AnalyzeFileProc }, + {"ICS Client", IcsClientProc}, + {"Edit Game", EditGameProc}, + {"Edit Position", EditPositionProc}, + {"Training", TrainingProc}, + {"----", NothingProc}, + {"Show Game List", ShowGameListProc}, + {"Show Move List", HistoryShowProc}, + {"Edit Tags", EditTagsProc}, + {"Edit Comment", EditCommentProc}, + {"ICS Input Box", IcsInputBoxProc}, + {"Pause", PauseProc}, + {NULL, NULL} +}; + +MenuItem actionMenu[] = { + {"Accept", AcceptProc}, + {"Decline", DeclineProc}, + {"Rematch", RematchProc}, + {"----", NothingProc}, + {"Call Flag", CallFlagProc}, + {"Draw", DrawProc}, + {"Adjourn", AdjournProc}, + {"Abort", AbortProc}, + {"Resign", ResignProc}, + {"----", NothingProc}, + {"Stop Observing", StopObservingProc}, + {"Stop Examining", StopExaminingProc}, + {NULL, NULL} +}; + +MenuItem stepMenu[] = { + {"Backward", BackwardProc}, + {"Forward", ForwardProc}, + {"Back to Start", ToStartProc}, + {"Forward to End", ToEndProc}, + {"Revert", RevertProc}, + {"Truncate Game", TruncateGameProc}, + {"----", NothingProc}, + {"Move Now", MoveNowProc}, + {"Retract Move", RetractMoveProc}, + {NULL, NULL} +}; + +MenuItem optionsMenu[] = { + {"Always Queen", AlwaysQueenProc}, + {"Animate Dragging", AnimateDraggingProc}, + {"Animate Moving", AnimateMovingProc}, + {"Auto Comment", AutocommProc}, + {"Auto Flag", AutoflagProc}, + {"Auto Flip View", AutoflipProc}, + {"Auto Observe", AutobsProc}, + {"Auto Raise Board", AutoraiseProc}, + {"Auto Save", AutosaveProc}, + {"Blindfold", BlindfoldProc}, + {"Flash Moves", FlashMovesProc}, + {"Flip View", FlipViewProc}, + {"Get Move List", GetMoveListProc}, +#if HIGHDRAG + {"Highlight Dragging", HighlightDraggingProc}, +#endif + {"Highlight Last Move", HighlightLastMoveProc}, + {"Move Sound", MoveSoundProc}, + {"ICS Alarm", IcsAlarmProc}, + {"Old Save Style", OldSaveStyleProc}, + {"Periodic Updates", PeriodicUpdatesProc}, + {"Ponder Next Move", PonderNextMoveProc}, + {"Popup Exit Message", PopupExitMessageProc}, + {"Popup Move Errors", PopupMoveErrorsProc}, + {"Premove", PremoveProc}, + {"Quiet Play", QuietPlayProc}, + {"Show Coords", ShowCoordsProc}, + {"Show Thinking", ShowThinkingProc}, + {"Test Legality", TestLegalityProc}, + {NULL, NULL} +}; + +MenuItem helpMenu[] = { + {"Info XBoard", InfoProc}, + {"Man XBoard", ManProc}, + {"----", NothingProc}, + {"Hint", HintProc}, + {"Book", BookProc}, + {"----", NothingProc}, + {"About XBoard", AboutProc}, + {NULL, NULL} +}; + +Menu menuBar[] = { + {"File", fileMenu}, + {"Mode", modeMenu}, + {"Action", actionMenu}, + {"Step", stepMenu}, + {"Options", optionsMenu}, + {"Help", helpMenu}, + {NULL, NULL} +}; + +#define PAUSE_BUTTON "P" +MenuItem buttonBar[] = { + {"<<", ToStartProc}, + {"<", BackwardProc}, + {PAUSE_BUTTON, PauseProc}, + {">", ForwardProc}, + {">>", ToEndProc}, + {NULL, NULL} +}; + +#define PIECE_MENU_SIZE 11 +String pieceMenuStrings[2][PIECE_MENU_SIZE] = { + { "White", "----", "Pawn", "Knight", "Bishop", "Rook", "Queen", "King", + "----", "Empty square", "Clear board" }, + { "Black", "----", "Pawn", "Knight", "Bishop", "Rook", "Queen", "King", + "----", "Empty square", "Clear board" }, + }; +/* must be in same order as PieceMenuStrings! */ +ChessSquare pieceMenuTranslation[2][PIECE_MENU_SIZE] = { + { WhitePlay, (ChessSquare) 0, WhitePawn, WhiteKnight, WhiteBishop, + WhiteRook, WhiteQueen, WhiteKing, + (ChessSquare) 0, EmptySquare, ClearBoard }, + { BlackPlay, (ChessSquare) 0, BlackPawn, BlackKnight, BlackBishop, + BlackRook, BlackQueen, BlackKing, + (ChessSquare) 0, EmptySquare, ClearBoard }, +}; + +#define DROP_MENU_SIZE 6 +String dropMenuStrings[DROP_MENU_SIZE] = { + "----", "Pawn", "Knight", "Bishop", "Rook", "Queen" + }; +/* must be in same order as PieceMenuStrings! */ +ChessSquare dropMenuTranslation[DROP_MENU_SIZE] = { + (ChessSquare) 0, WhitePawn, WhiteKnight, WhiteBishop, + WhiteRook, WhiteQueen +}; + +typedef struct { + char piece; + char* widget; +} DropMenuEnables; + +DropMenuEnables dmEnables[] = { + { 'P', "Pawn" }, + { 'N', "Knight" }, + { 'B', "Bishop" }, + { 'R', "Rook" }, + { 'Q', "Queen" } +}; + +Arg shellArgs[] = { + { XtNwidth, 0 }, + { XtNheight, 0 }, + { XtNminWidth, 0 }, + { XtNminHeight, 0 }, + { XtNmaxWidth, 0 }, + { XtNmaxHeight, 0 } +}; + +Arg layoutArgs[] = { + { XtNborderWidth, 0 }, + { XtNdefaultDistance, 0 }, +}; + +Arg formArgs[] = { + { XtNborderWidth, 0 }, + { XtNresizable, (XtArgVal) True }, +}; + +Arg boardArgs[] = { + { XtNborderWidth, 0 }, + { XtNwidth, 0 }, + { XtNheight, 0 } +}; + +Arg titleArgs[] = { + { XtNjustify, (XtArgVal) XtJustifyRight }, + { XtNlabel, (XtArgVal) "..." }, + { XtNresizable, (XtArgVal) True }, + { XtNresize, (XtArgVal) False } +}; + +Arg messageArgs[] = { + { XtNjustify, (XtArgVal) XtJustifyLeft }, + { XtNlabel, (XtArgVal) "..." }, + { XtNresizable, (XtArgVal) True }, + { XtNresize, (XtArgVal) False } +}; + +Arg timerArgs[] = { + { XtNborderWidth, 0 }, + { XtNjustify, (XtArgVal) XtJustifyLeft } +}; + +XtResource clientResources[] = { + { "whitePieceColor", "whitePieceColor", XtRString, sizeof(String), + XtOffset(AppDataPtr, whitePieceColor), XtRString, + WHITE_PIECE_COLOR }, + { "blackPieceColor", "blackPieceColor", XtRString, sizeof(String), + XtOffset(AppDataPtr, blackPieceColor), XtRString, + BLACK_PIECE_COLOR }, + { "lightSquareColor", "lightSquareColor", XtRString, + sizeof(String), XtOffset(AppDataPtr, lightSquareColor), + XtRString, LIGHT_SQUARE_COLOR }, + { "darkSquareColor", "darkSquareColor", XtRString, sizeof(String), + XtOffset(AppDataPtr, darkSquareColor), XtRString, + DARK_SQUARE_COLOR }, + { "highlightSquareColor", "highlightSquareColor", XtRString, + sizeof(String), XtOffset(AppDataPtr, highlightSquareColor), + XtRString, HIGHLIGHT_SQUARE_COLOR }, + { "premoveHighlightColor", "premoveHighlightColor", XtRString, + sizeof(String), XtOffset(AppDataPtr, premoveHighlightColor), + XtRString, PREMOVE_HIGHLIGHT_COLOR }, + { "movesPerSession", "movesPerSession", XtRInt, sizeof(int), + XtOffset(AppDataPtr, movesPerSession), XtRImmediate, + (XtPointer) MOVES_PER_SESSION }, + { "timeIncrement", "timeIncrement", XtRInt, sizeof(int), + XtOffset(AppDataPtr, timeIncrement), XtRImmediate, + (XtPointer) TIME_INCREMENT }, + { "initString", "initString", XtRString, sizeof(String), + XtOffset(AppDataPtr, initString), XtRString, INIT_STRING }, + { "secondInitString", "secondInitString", XtRString, sizeof(String), + XtOffset(AppDataPtr, secondInitString), XtRString, INIT_STRING }, + { "firstComputerString", "firstComputerString", XtRString, + sizeof(String), XtOffset(AppDataPtr, firstComputerString), XtRString, + COMPUTER_STRING }, + { "secondComputerString", "secondComputerString", XtRString, + sizeof(String), XtOffset(AppDataPtr, secondComputerString), XtRString, + COMPUTER_STRING }, + { "firstChessProgram", "firstChessProgram", XtRString, + sizeof(String), XtOffset(AppDataPtr, firstChessProgram), + XtRString, FIRST_CHESS_PROGRAM }, + { "secondChessProgram", "secondChessProgram", XtRString, + sizeof(String), XtOffset(AppDataPtr, secondChessProgram), + XtRString, SECOND_CHESS_PROGRAM }, + { "firstPlaysBlack", "firstPlaysBlack", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, firstPlaysBlack), + XtRImmediate, (XtPointer) False }, + { "noChessProgram", "noChessProgram", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, noChessProgram), + XtRImmediate, (XtPointer) False }, + { "firstHost", "firstHost", XtRString, sizeof(String), + XtOffset(AppDataPtr, firstHost), XtRString, FIRST_HOST }, + { "secondHost", "secondHost", XtRString, sizeof(String), + XtOffset(AppDataPtr, secondHost), XtRString, SECOND_HOST }, + { "firstDirectory", "firstDirectory", XtRString, sizeof(String), + XtOffset(AppDataPtr, firstDirectory), XtRString, "" }, + { "secondDirectory", "secondDirectory", XtRString, sizeof(String), + XtOffset(AppDataPtr, secondDirectory), XtRString, "" }, + { "bitmapDirectory", "bitmapDirectory", XtRString, + sizeof(String), XtOffset(AppDataPtr, bitmapDirectory), + XtRString, "" }, + { "remoteShell", "remoteShell", XtRString, sizeof(String), + XtOffset(AppDataPtr, remoteShell), XtRString, REMOTE_SHELL }, + { "remoteUser", "remoteUser", XtRString, sizeof(String), + XtOffset(AppDataPtr, remoteUser), XtRString, "" }, + { "timeDelay", "timeDelay", XtRFloat, sizeof(float), + XtOffset(AppDataPtr, timeDelay), XtRString, + (XtPointer) TIME_DELAY_QUOTE }, + { "timeControl", "timeControl", XtRString, sizeof(String), + XtOffset(AppDataPtr, timeControl), XtRString, + (XtPointer) TIME_CONTROL }, + { "internetChessServerMode", "internetChessServerMode", + XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, icsActive), XtRImmediate, + (XtPointer) False }, + { "internetChessServerHost", "internetChessServerHost", + XtRString, sizeof(String), + XtOffset(AppDataPtr, icsHost), + XtRString, (XtPointer) ICS_HOST }, + { "internetChessServerPort", "internetChessServerPort", + XtRString, sizeof(String), + XtOffset(AppDataPtr, icsPort), XtRString, + (XtPointer) ICS_PORT }, + { "internetChessServerCommPort", "internetChessServerCommPort", + XtRString, sizeof(String), + XtOffset(AppDataPtr, icsCommPort), XtRString, + ICS_COMM_PORT }, + { "internetChessServerLogonScript", "internetChessServerLogonScript", + XtRString, sizeof(String), + XtOffset(AppDataPtr, icsLogon), XtRString, + ICS_LOGON }, + { "internetChessServerHelper", "internetChessServerHelper", + XtRString, sizeof(String), + XtOffset(AppDataPtr, icsHelper), XtRString, "" }, + { "internetChessServerInputBox", "internetChessServerInputBox", + XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, icsInputBox), XtRImmediate, + (XtPointer) False }, + { "icsAlarm", "icsAlarm", + XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, icsAlarm), XtRImmediate, + (XtPointer) True }, + { "icsAlarmTime", "icsAlarmTime", + XtRInt, sizeof(int), + XtOffset(AppDataPtr, icsAlarmTime), XtRImmediate, + (XtPointer) 5000 }, + { "useTelnet", "useTelnet", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, useTelnet), XtRImmediate, + (XtPointer) False }, + { "telnetProgram", "telnetProgram", XtRString, sizeof(String), + XtOffset(AppDataPtr, telnetProgram), XtRString, TELNET_PROGRAM }, + { "gateway", "gateway", XtRString, sizeof(String), + XtOffset(AppDataPtr, gateway), XtRString, "" }, + { "loadGameFile", "loadGameFile", XtRString, sizeof(String), + XtOffset(AppDataPtr, loadGameFile), XtRString, "" }, + { "loadGameIndex", "loadGameIndex", + XtRInt, sizeof(int), + XtOffset(AppDataPtr, loadGameIndex), XtRImmediate, + (XtPointer) 0 }, + { "saveGameFile", "saveGameFile", XtRString, sizeof(String), + XtOffset(AppDataPtr, saveGameFile), XtRString, "" }, + { "autoRaiseBoard", "autoRaiseBoard", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoRaiseBoard), + XtRImmediate, (XtPointer) True }, + { "autoSaveGames", "autoSaveGames", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoSaveGames), + XtRImmediate, (XtPointer) False }, + { "blindfold", "blindfold", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, blindfold), + XtRImmediate, (XtPointer) False }, + { "loadPositionFile", "loadPositionFile", XtRString, + sizeof(String), XtOffset(AppDataPtr, loadPositionFile), + XtRString, "" }, + { "loadPositionIndex", "loadPositionIndex", + XtRInt, sizeof(int), + XtOffset(AppDataPtr, loadPositionIndex), XtRImmediate, + (XtPointer) 1 }, + { "savePositionFile", "savePositionFile", XtRString, + sizeof(String), XtOffset(AppDataPtr, savePositionFile), + XtRString, "" }, + { "matchMode", "matchMode", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, matchMode), XtRImmediate, (XtPointer) False }, + { "matchGames", "matchGames", XtRInt, sizeof(int), + XtOffset(AppDataPtr, matchGames), XtRImmediate, + (XtPointer) 0 }, + { "monoMode", "monoMode", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, monoMode), XtRImmediate, + (XtPointer) False }, + { "debugMode", "debugMode", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, debugMode), XtRImmediate, + (XtPointer) False }, + { "clockMode", "clockMode", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, clockMode), XtRImmediate, + (XtPointer) True }, + { "boardSize", "boardSize", XtRString, sizeof(String), + XtOffset(AppDataPtr, boardSize), XtRString, "" }, + { "searchTime", "searchTime", XtRString, sizeof(String), + XtOffset(AppDataPtr, searchTime), XtRString, + (XtPointer) "" }, + { "searchDepth", "searchDepth", XtRInt, sizeof(int), + XtOffset(AppDataPtr, searchDepth), XtRImmediate, + (XtPointer) 0 }, + { "showCoords", "showCoords", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, showCoords), XtRImmediate, + (XtPointer) False }, + { "showJail", "showJail", XtRInt, sizeof(int), + XtOffset(AppDataPtr, showJail), XtRImmediate, + (XtPointer) 0 }, + { "showThinking", "showThinking", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, showThinking), XtRImmediate, + (XtPointer) False }, + { "ponderNextMove", "ponderNextMove", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, ponderNextMove), XtRImmediate, + (XtPointer) True }, + { "periodicUpdates", "periodicUpdates", XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, periodicUpdates), XtRImmediate, + (XtPointer) True }, + { "clockFont", "clockFont", XtRString, sizeof(String), + XtOffset(AppDataPtr, clockFont), XtRString, CLOCK_FONT }, + { "coordFont", "coordFont", XtRString, sizeof(String), + XtOffset(AppDataPtr, coordFont), XtRString, COORD_FONT }, + { "font", "font", XtRString, sizeof(String), + XtOffset(AppDataPtr, font), XtRString, DEFAULT_FONT }, + { "ringBellAfterMoves", "ringBellAfterMoves", + XtRBoolean, sizeof(Boolean), + XtOffset(AppDataPtr, ringBellAfterMoves), + XtRImmediate, (XtPointer) False }, + { "autoCallFlag", "autoCallFlag", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoCallFlag), + XtRImmediate, (XtPointer) False }, + { "autoFlipView", "autoFlipView", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoFlipView), + XtRImmediate, (XtPointer) True }, + { "autoObserve", "autoObserve", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoObserve), + XtRImmediate, (XtPointer) False }, + { "autoComment", "autoComment", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, autoComment), + XtRImmediate, (XtPointer) False }, + { "getMoveList", "getMoveList", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, getMoveList), + XtRImmediate, (XtPointer) True }, +#if HIGHDRAG + { "highlightDragging", "highlightDragging", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, highlightDragging), + XtRImmediate, (XtPointer) False }, +#endif + { "highlightLastMove", "highlightLastMove", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, highlightLastMove), + XtRImmediate, (XtPointer) False }, + { "premove", "premove", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, premove), + XtRImmediate, (XtPointer) True }, + { "testLegality", "testLegality", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, testLegality), + XtRImmediate, (XtPointer) True }, + { "flipView", "flipView", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, flipView), + XtRImmediate, (XtPointer) False }, + { "cmail", "cmailGameName", XtRString, sizeof(String), + XtOffset(AppDataPtr, cmailGameName), XtRString, "" }, + { "alwaysPromoteToQueen", "alwaysPromoteToQueen", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, alwaysPromoteToQueen), + XtRImmediate, (XtPointer) False }, + { "oldSaveStyle", "oldSaveStyle", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, oldSaveStyle), + XtRImmediate, (XtPointer) False }, + { "quietPlay", "quietPlay", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, quietPlay), + XtRImmediate, (XtPointer) False }, + { "titleInWindow", "titleInWindow", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, titleInWindow), + XtRImmediate, (XtPointer) False }, + { "localLineEditing", "localLineEditing", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, localLineEditing), + XtRImmediate, (XtPointer) True }, /* not implemented, must be True */ +#ifdef ZIPPY + { "zippyTalk", "zippyTalk", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyTalk), + XtRImmediate, (XtPointer) ZIPPY_TALK }, + { "zippyPlay", "zippyPlay", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyPlay), + XtRImmediate, (XtPointer) ZIPPY_PLAY }, + { "zippyLines", "zippyLines", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyLines), XtRString, ZIPPY_LINES }, + { "zippyPinhead", "zippyPinhead", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyPinhead), XtRString, ZIPPY_PINHEAD }, + { "zippyPassword", "zippyPassword", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyPassword), XtRString, ZIPPY_PASSWORD }, + { "zippyPassword2", "zippyPassword2", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyPassword2), XtRString, ZIPPY_PASSWORD2 }, + { "zippyWrongPassword", "zippyWrongPassword", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyWrongPassword), XtRString, + ZIPPY_WRONG_PASSWORD }, + { "zippyAcceptOnly", "zippyAcceptOnly", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyAcceptOnly), XtRString, ZIPPY_ACCEPT_ONLY }, + { "zippyUseI", "zippyUseI", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyUseI), + XtRImmediate, (XtPointer) ZIPPY_USE_I }, + { "zippyBughouse", "zippyBughouse", XtRInt, + sizeof(int), XtOffset(AppDataPtr, zippyBughouse), + XtRImmediate, (XtPointer) ZIPPY_BUGHOUSE }, + { "zippyNoplayCrafty", "zippyNoplayCrafty", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyNoplayCrafty), + XtRImmediate, (XtPointer) ZIPPY_NOPLAY_CRAFTY }, + { "zippyGameEnd", "zippyGameEnd", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyGameEnd), XtRString, ZIPPY_GAME_END }, + { "zippyGameStart", "zippyGameStart", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyGameStart), XtRString, ZIPPY_GAME_START }, + { "zippyAdjourn", "zippyAdjourn", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyAdjourn), + XtRImmediate, (XtPointer) ZIPPY_ADJOURN }, + { "zippyAbort", "zippyAbort", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, zippyAbort), + XtRImmediate, (XtPointer) ZIPPY_ABORT }, + { "zippyVariants", "zippyVariants", XtRString, sizeof(String), + XtOffset(AppDataPtr, zippyVariants), XtRString, ZIPPY_VARIANTS }, + { "zippyMaxGames", "zippyMaxGames", XtRInt, sizeof(int), + XtOffset(AppDataPtr, zippyMaxGames), XtRImmediate, + (XtPointer) ZIPPY_MAX_GAMES }, + { "zippyReplayTimeout", "zippyReplayTimeout", XtRInt, sizeof(int), + XtOffset(AppDataPtr, zippyReplayTimeout), XtRImmediate, + (XtPointer) ZIPPY_REPLAY_TIMEOUT }, +#endif + { "flashCount", "flashCount", XtRInt, sizeof(int), + XtOffset(AppDataPtr, flashCount), XtRImmediate, + (XtPointer) FLASH_COUNT }, + { "flashRate", "flashRate", XtRInt, sizeof(int), + XtOffset(AppDataPtr, flashRate), XtRImmediate, + (XtPointer) FLASH_RATE }, + { "pixmapDirectory", "pixmapDirectory", XtRString, + sizeof(String), XtOffset(AppDataPtr, pixmapDirectory), + XtRString, "" }, + { "msLoginDelay", "msLoginDelay", XtRInt, sizeof(int), + XtOffset(AppDataPtr, msLoginDelay), XtRImmediate, + (XtPointer) MS_LOGIN_DELAY }, + { "colorizeMessages", "colorizeMessages", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, colorize), + XtRImmediate, (XtPointer) False }, + { "colorShout", "colorShout", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorShout), + XtRString, COLOR_SHOUT }, + { "colorSShout", "colorSShout", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorSShout), + XtRString, COLOR_SSHOUT }, + { "colorChannel1", "colorChannel1", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorChannel1), + XtRString, COLOR_CHANNEL1 }, + { "colorChannel", "colorChannel", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorChannel), + XtRString, COLOR_CHANNEL }, + { "colorKibitz", "colorKibitz", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorKibitz), + XtRString, COLOR_KIBITZ }, + { "colorTell", "colorTell", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorTell), + XtRString, COLOR_TELL }, + { "colorChallenge", "colorChallenge", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorChallenge), + XtRString, COLOR_CHALLENGE }, + { "colorRequest", "colorRequest", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorRequest), + XtRString, COLOR_REQUEST }, + { "colorSeek", "colorSeek", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorSeek), + XtRString, COLOR_SEEK }, + { "colorNormal", "colorNormal", XtRString, + sizeof(String), XtOffset(AppDataPtr, colorNormal), + XtRString, COLOR_NORMAL }, + { "soundProgram", "soundProgram", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundProgram), + XtRString, "play" }, + { "soundShout", "soundShout", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundShout), + XtRString, "" }, + { "soundSShout", "soundSShout", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundSShout), + XtRString, "" }, + { "soundChannel1", "soundChannel1", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundChannel1), + XtRString, "" }, + { "soundChannel", "soundChannel", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundChannel), + XtRString, "" }, + { "soundKibitz", "soundKibitz", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundKibitz), + XtRString, "" }, + { "soundTell", "soundTell", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundTell), + XtRString, "" }, + { "soundChallenge", "soundChallenge", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundChallenge), + XtRString, "" }, + { "soundRequest", "soundRequest", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundRequest), + XtRString, "" }, + { "soundSeek", "soundSeek", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundSeek), + XtRString, "" }, + { "soundMove", "soundMove", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundMove), + XtRString, "$" }, + { "soundIcsWin", "soundIcsWin", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundIcsWin), + XtRString, "" }, + { "soundIcsLoss", "soundIcsLoss", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundIcsLoss), + XtRString, "" }, + { "soundIcsDraw", "soundIcsDraw", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundIcsDraw), + XtRString, "" }, + { "soundIcsUnfinished", "soundIcsUnfinished", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundIcsUnfinished), + XtRString, "" }, + { "soundIcsAlarm", "soundIcsAlarm", XtRString, + sizeof(String), XtOffset(AppDataPtr, soundIcsAlarm), + XtRString, "$" }, + { "reuseFirst", "reuseFirst", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, reuseFirst), + XtRImmediate, (XtPointer) True }, + { "reuseSecond", "reuseSecond", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, reuseSecond), + XtRImmediate, (XtPointer) True }, + { "animateDragging", "animateDragging", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, animateDragging), + XtRImmediate, (XtPointer) True }, + { "animateMoving", "animateMoving", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, animate), + XtRImmediate, (XtPointer) True }, + { "animateSpeed", "animateSpeed", XtRInt, + sizeof(int), XtOffset(AppDataPtr, animSpeed), + XtRImmediate, (XtPointer)10 }, + { "popupExitMessage", "popupExitMessage", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, popupExitMessage), + XtRImmediate, (XtPointer) True }, + { "popupMoveErrors", "popupMoveErrors", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, popupMoveErrors), + XtRImmediate, (XtPointer) False }, + { "fontSizeTolerance", "fontSizeTolerance", XtRInt, + sizeof(int), XtOffset(AppDataPtr, fontSizeTolerance), + XtRImmediate, (XtPointer)4 }, + { "initialMode", "initialMode", XtRString, + sizeof(String), XtOffset(AppDataPtr, initialMode), + XtRImmediate, (XtPointer) "" }, + { "variant", "variant", XtRString, + sizeof(String), XtOffset(AppDataPtr, variant), + XtRImmediate, (XtPointer) "normal" }, + { "firstProtocolVersion", "firstProtocolVersion", XtRInt, + sizeof(int), XtOffset(AppDataPtr, firstProtocolVersion), + XtRImmediate, (XtPointer)PROTOVER }, + { "secondProtocolVersion", "secondProtocolVersion", XtRInt, + sizeof(int), XtOffset(AppDataPtr, secondProtocolVersion), + XtRImmediate, (XtPointer)PROTOVER }, + { "showButtonBar", "showButtonBar", XtRBoolean, + sizeof(Boolean), XtOffset(AppDataPtr, showButtonBar), + XtRImmediate, (XtPointer) True }, +}; + +XrmOptionDescRec shellOptions[] = { + { "-whitePieceColor", "whitePieceColor", XrmoptionSepArg, NULL }, + { "-blackPieceColor", "blackPieceColor", XrmoptionSepArg, NULL }, + { "-lightSquareColor", "lightSquareColor", XrmoptionSepArg, NULL }, + { "-darkSquareColor", "darkSquareColor", XrmoptionSepArg, NULL }, + { "-highlightSquareColor", "highlightSquareColor", XrmoptionSepArg, NULL }, + { "-premoveHighlightColor", "premoveHighlightColor", XrmoptionSepArg,NULL}, + { "-movesPerSession", "movesPerSession", XrmoptionSepArg, NULL }, + { "-mps", "movesPerSession", XrmoptionSepArg, NULL }, + { "-timeIncrement", "timeIncrement", XrmoptionSepArg, NULL }, + { "-inc", "timeIncrement", XrmoptionSepArg, NULL }, + { "-initString", "initString", XrmoptionSepArg, NULL }, + { "-firstInitString", "initString", XrmoptionSepArg, NULL }, + { "-secondInitString", "secondInitString", XrmoptionSepArg, NULL }, + { "-firstComputerString", "firstComputerString", XrmoptionSepArg, NULL }, + { "-secondComputerString", "secondComputerString", XrmoptionSepArg, NULL }, + { "-firstChessProgram", "firstChessProgram", XrmoptionSepArg, NULL }, + { "-fcp", "firstChessProgram", XrmoptionSepArg, NULL }, + { "-secondChessProgram", "secondChessProgram", XrmoptionSepArg, NULL }, + { "-scp", "secondChessProgram", XrmoptionSepArg, NULL }, + { "-firstPlaysBlack", "firstPlaysBlack", XrmoptionSepArg, NULL }, + { "-fb", "firstPlaysBlack", XrmoptionNoArg, "True" }, + { "-xfb", "firstPlaysBlack", XrmoptionNoArg, "False" }, + { "-noChessProgram", "noChessProgram", XrmoptionSepArg, NULL }, + { "-ncp", "noChessProgram", XrmoptionNoArg, "True" }, + { "-xncp", "noChessProgram", XrmoptionNoArg, "False" }, + { "-firstHost", "firstHost", XrmoptionSepArg, NULL }, + { "-fh", "firstHost", XrmoptionSepArg, NULL }, + { "-secondHost", "secondHost", XrmoptionSepArg, NULL }, + { "-sh", "secondHost", XrmoptionSepArg, NULL }, + { "-firstDirectory", "firstDirectory", XrmoptionSepArg, NULL }, + { "-fd", "firstDirectory", XrmoptionSepArg, NULL }, + { "-secondDirectory", "secondDirectory", XrmoptionSepArg, NULL }, + { "-sd", "secondDirectory", XrmoptionSepArg, NULL }, + { "-bitmapDirectory", "bitmapDirectory", XrmoptionSepArg, NULL }, + { "-bm", "bitmapDirectory", XrmoptionSepArg, NULL }, + { "-remoteShell", "remoteShell", XrmoptionSepArg, NULL }, + { "-rsh", "remoteShell", XrmoptionSepArg, NULL }, + { "-remoteUser", "remoteUser", XrmoptionSepArg, NULL }, + { "-ruser", "remoteUser", XrmoptionSepArg, NULL }, + { "-timeDelay", "timeDelay", XrmoptionSepArg, NULL }, + { "-td", "timeDelay", XrmoptionSepArg, NULL }, + { "-timeControl", "timeControl", XrmoptionSepArg, NULL }, + { "-tc", "timeControl", XrmoptionSepArg, NULL }, + { "-internetChessServerMode", "internetChessServerMode", + XrmoptionSepArg, NULL }, + { "-ics", "internetChessServerMode", XrmoptionNoArg, "True" }, + { "-xics", "internetChessServerMode", XrmoptionNoArg, "False" }, + { "-internetChessServerHost", "internetChessServerHost", + XrmoptionSepArg, NULL }, + { "-icshost", "internetChessServerHost", XrmoptionSepArg, NULL }, + { "-internetChessServerPort", "internetChessServerPort", + XrmoptionSepArg, NULL }, + { "-icsport", "internetChessServerPort", XrmoptionSepArg, NULL }, + { "-internetChessServerCommPort", "internetChessServerCommPort", + XrmoptionSepArg, NULL }, + { "-icscomm", "internetChessServerCommPort", XrmoptionSepArg, NULL }, + { "-internetChessServerLogonScript", "internetChessServerLogonScript", + XrmoptionSepArg, NULL }, + { "-icslogon", "internetChessServerLogonScript", XrmoptionSepArg, NULL }, + { "-internetChessServerHelper", "internetChessServerHelper", + XrmoptionSepArg, NULL }, + { "-icshelper", "internetChessServerHelper", XrmoptionSepArg, NULL }, + { "-internetChessServerInputBox", "internetChessServerInputBox", + XrmoptionSepArg, NULL }, + { "-icsinput", "internetChessServerInputBox", XrmoptionNoArg, "True" }, + { "-xicsinput", "internetChessServerInputBox", XrmoptionNoArg, "False" }, + { "-icsAlarm", "icsAlarm", XrmoptionSepArg, NULL }, + { "-alarm", "icsAlarm", XrmoptionNoArg, "True" }, + { "-xalarm", "icsAlarm", XrmoptionNoArg, "False" }, + { "-icsAlarmTime", "icsAlarmTime", XrmoptionSepArg, NULL }, + { "-useTelnet", "useTelnet", XrmoptionSepArg, NULL }, + { "-telnet", "useTelnet", XrmoptionNoArg, "True" }, + { "-xtelnet", "useTelnet", XrmoptionNoArg, "False" }, + { "-telnetProgram", "telnetProgram", XrmoptionSepArg, NULL }, + { "-gateway", "gateway", XrmoptionSepArg, NULL }, + { "-loadGameFile", "loadGameFile", XrmoptionSepArg, NULL }, + { "-lgf", "loadGameFile", XrmoptionSepArg, NULL }, + { "-loadGameIndex", "loadGameIndex", XrmoptionSepArg, NULL }, + { "-lgi", "loadGameIndex", XrmoptionSepArg, NULL }, + { "-saveGameFile", "saveGameFile", XrmoptionSepArg, NULL }, + { "-sgf", "saveGameFile", XrmoptionSepArg, NULL }, + { "-autoSaveGames", "autoSaveGames", XrmoptionSepArg, NULL }, + { "-autosave", "autoSaveGames", XrmoptionNoArg, "True" }, + { "-xautosave", "autoSaveGames", XrmoptionNoArg, "False" }, + { "-autoRaiseBoard", "autoRaiseBoard", XrmoptionSepArg, NULL }, + { "-autoraise", "autoRaiseBoard", XrmoptionNoArg, "True" }, + { "-xautoraise", "autoRaiseBoard", XrmoptionNoArg, "False" }, + { "-blindfold", "blindfold", XrmoptionSepArg, NULL }, + { "-blind", "blindfold", XrmoptionNoArg, "True" }, + { "-xblind", "blindfold", XrmoptionNoArg, "False" }, + { "-loadPositionFile", "loadPositionFile", XrmoptionSepArg, NULL }, + { "-lpf", "loadPositionFile", XrmoptionSepArg, NULL }, + { "-loadPositionIndex", "loadPositionIndex", XrmoptionSepArg, NULL }, + { "-lpi", "loadPositionIndex", XrmoptionSepArg, NULL }, + { "-savePositionFile", "savePositionFile", XrmoptionSepArg, NULL }, + { "-spf", "savePositionFile", XrmoptionSepArg, NULL }, + { "-matchMode", "matchMode", XrmoptionSepArg, NULL }, + { "-mm", "matchMode", XrmoptionNoArg, "True" }, + { "-xmm", "matchMode", XrmoptionNoArg, "False" }, + { "-matchGames", "matchGames", XrmoptionSepArg, NULL }, + { "-mg", "matchGames", XrmoptionSepArg, NULL }, + { "-monoMode", "monoMode", XrmoptionSepArg, NULL }, + { "-mono", "monoMode", XrmoptionNoArg, "True" }, + { "-xmono", "monoMode", XrmoptionNoArg, "False" }, + { "-debugMode", "debugMode", XrmoptionSepArg, NULL }, + { "-debug", "debugMode", XrmoptionNoArg, "True" }, + { "-xdebug", "debugMode", XrmoptionNoArg, "False" }, + { "-clockMode", "clockMode", XrmoptionSepArg, NULL }, + { "-clock", "clockMode", XrmoptionNoArg, "True" }, + { "-xclock", "clockMode", XrmoptionNoArg, "False" }, + { "-boardSize", "boardSize", XrmoptionSepArg, NULL }, + { "-size", "boardSize", XrmoptionSepArg, NULL }, + { "-searchTime", "searchTime", XrmoptionSepArg, NULL }, + { "-st", "searchTime", XrmoptionSepArg, NULL }, + { "-searchDepth", "searchDepth", XrmoptionSepArg, NULL }, + { "-depth", "searchDepth", XrmoptionSepArg, NULL }, + { "-showCoords", "showCoords", XrmoptionSepArg, NULL }, + { "-coords", "showCoords", XrmoptionNoArg, "True" }, + { "-xcoords", "showCoords", XrmoptionNoArg, "False" }, +#if JAIL + { "-showJail", "showJail", XrmoptionSepArg, NULL }, + { "-jail", "showJail", XrmoptionNoArg, "1" }, + { "-sidejail", "showJail", XrmoptionNoArg, "2" }, + { "-xjail", "showJail", XrmoptionNoArg, "0" }, +#endif + { "-showThinking", "showThinking", XrmoptionSepArg, NULL }, + { "-thinking", "showThinking", XrmoptionNoArg, "True" }, + { "-xthinking", "showThinking", XrmoptionNoArg, "False" }, + { "-ponderNextMove", "ponderNextMove", XrmoptionSepArg, NULL }, + { "-ponder", "ponderNextMove", XrmoptionNoArg, "True" }, + { "-xponder", "ponderNextMove", XrmoptionNoArg, "False" }, + { "-periodicUpdates", "periodicUpdates", XrmoptionSepArg, NULL }, + { "-periodic", "periodicUpdates", XrmoptionNoArg, "True" }, + { "-xperiodic", "periodicUpdates", XrmoptionNoArg, "False" }, + { "-clockFont", "clockFont", XrmoptionSepArg, NULL }, + { "-coordFont", "coordFont", XrmoptionSepArg, NULL }, + { "-font", "font", XrmoptionSepArg, NULL }, + { "-ringBellAfterMoves", "ringBellAfterMoves", XrmoptionSepArg, NULL }, + { "-bell", "ringBellAfterMoves", XrmoptionNoArg, "True" }, + { "-xbell", "ringBellAfterMoves", XrmoptionNoArg, "False" }, + { "-movesound", "ringBellAfterMoves", XrmoptionNoArg, "True" }, + { "-xmovesound", "ringBellAfterMoves", XrmoptionNoArg, "False" }, + { "-autoCallFlag", "autoCallFlag", XrmoptionSepArg, NULL }, + { "-autoflag", "autoCallFlag", XrmoptionNoArg, "True" }, + { "-xautoflag", "autoCallFlag", XrmoptionNoArg, "False" }, + { "-autoFlipView", "autoFlipView", XrmoptionSepArg, NULL }, + { "-autoflip", "autoFlipView", XrmoptionNoArg, "True" }, + { "-xautoflip", "autoFlipView", XrmoptionNoArg, "False" }, + { "-autoObserve", "autoObserve", XrmoptionSepArg, NULL }, + { "-autobs", "autoObserve", XrmoptionNoArg, "True" }, + { "-xautobs", "autoObserve", XrmoptionNoArg, "False" }, + { "-autoComment", "autoComment", XrmoptionSepArg, NULL }, + { "-autocomm", "autoComment", XrmoptionNoArg, "True" }, + { "-xautocomm", "autoComment", XrmoptionNoArg, "False" }, + { "-getMoveList", "getMoveList", XrmoptionSepArg, NULL }, + { "-moves", "getMoveList", XrmoptionNoArg, "True" }, + { "-xmoves", "getMoveList", XrmoptionNoArg, "False" }, +#if HIGHDRAG + { "-highlightDragging", "highlightDragging", XrmoptionSepArg, NULL }, + { "-highdrag", "highlightDragging", XrmoptionNoArg, "True" }, + { "-xhighdrag", "highlightDragging", XrmoptionNoArg, "False" }, +#endif + { "-highlightLastMove", "highlightLastMove", XrmoptionSepArg, NULL }, + { "-highlight", "highlightLastMove", XrmoptionNoArg, "True" }, + { "-xhighlight", "highlightLastMove", XrmoptionNoArg, "False" }, + { "-premove", "premove", XrmoptionSepArg, NULL }, + { "-pre", "premove", XrmoptionNoArg, "True" }, + { "-xpre", "premove", XrmoptionNoArg, "False" }, + { "-testLegality", "testLegality", XrmoptionSepArg, NULL }, + { "-legal", "testLegality", XrmoptionNoArg, "True" }, + { "-xlegal", "testLegality", XrmoptionNoArg, "False" }, + { "-flipView", "flipView", XrmoptionSepArg, NULL }, + { "-flip", "flipView", XrmoptionNoArg, "True" }, + { "-xflip", "flipView", XrmoptionNoArg, "False" }, + { "-cmail", "cmailGameName", XrmoptionSepArg, NULL }, + { "-alwaysPromoteToQueen", "alwaysPromoteToQueen", + XrmoptionSepArg, NULL }, + { "-queen", "alwaysPromoteToQueen", XrmoptionNoArg, "True" }, + { "-xqueen", "alwaysPromoteToQueen", XrmoptionNoArg, "False" }, + { "-oldSaveStyle", "oldSaveStyle", XrmoptionSepArg, NULL }, + { "-oldsave", "oldSaveStyle", XrmoptionNoArg, "True" }, + { "-xoldsave", "oldSaveStyle", XrmoptionNoArg, "False" }, + { "-quietPlay", "quietPlay", XrmoptionSepArg, NULL }, + { "-quiet", "quietPlay", XrmoptionNoArg, "True" }, + { "-xquiet", "quietPlay", XrmoptionNoArg, "False" }, + { "-titleInWindow", "titleInWindow", XrmoptionSepArg, NULL }, + { "-title", "titleInWindow", XrmoptionNoArg, "True" }, + { "-xtitle", "titleInWindow", XrmoptionNoArg, "False" }, +#ifdef ZIPPY + { "-zippyTalk", "zippyTalk", XrmoptionSepArg, NULL }, + { "-zt", "zippyTalk", XrmoptionNoArg, "True" }, + { "-xzt", "zippyTalk", XrmoptionNoArg, "False" }, + { "-zippyPlay", "zippyPlay", XrmoptionSepArg, NULL }, + { "-zp", "zippyPlay", XrmoptionNoArg, "True" }, + { "-xzp", "zippyPlay", XrmoptionNoArg, "False" }, + { "-zippyLines", "zippyLines", XrmoptionSepArg, NULL }, + { "-zippyPinhead", "zippyPinhead", XrmoptionSepArg, NULL }, + { "-zippyPassword", "zippyPassword", XrmoptionSepArg, NULL }, + { "-zippyPassword2", "zippyPassword2", XrmoptionSepArg, NULL }, + { "-zippyWrongPassword", "zippyWrongPassword", XrmoptionSepArg, NULL }, + { "-zippyAcceptOnly", "zippyAcceptOnly", XrmoptionSepArg, NULL }, + { "-zippyUseI", "zippyUseI", XrmoptionSepArg, NULL }, + { "-zui", "zippyUseI", XrmoptionNoArg, "True" }, + { "-xzui", "zippyUseI", XrmoptionNoArg, "False" }, + { "-zippyBughouse", "zippyBughouse", XrmoptionSepArg, NULL }, + { "-zippyNoplayCrafty", "zippyNoplayCrafty", XrmoptionSepArg, NULL }, + { "-znc", "zippyNoplayCrafty", XrmoptionNoArg, "True" }, + { "-xznc", "zippyNoplayCrafty", XrmoptionNoArg, "False" }, + { "-zippyGameEnd", "zippyGameEnd", XrmoptionSepArg, NULL }, + { "-zippyGameStart", "zippyGameStart", XrmoptionSepArg, NULL }, + { "-zippyAdjourn", "zippyAdjourn", XrmoptionSepArg, NULL }, + { "-zadj", "zippyAdjourn", XrmoptionNoArg, "True" }, + { "-xzadj", "zippyAdjourn", XrmoptionNoArg, "False" }, + { "-zippyAbort", "zippyAbort", XrmoptionSepArg, NULL }, + { "-zab", "zippyAbort", XrmoptionNoArg, "True" }, + { "-xzab", "zippyAbort", XrmoptionNoArg, "False" }, + { "-zippyVariants", "zippyVariants", XrmoptionSepArg, NULL }, + { "-zippyMaxGames", "zippyMaxGames", XrmoptionSepArg, NULL }, + { "-zippyReplayTimeout", "zippyReplayTimeout", XrmoptionSepArg, NULL }, +#endif + { "-flashCount", "flashCount", XrmoptionSepArg, NULL }, + { "-flash", "flashCount", XrmoptionNoArg, "3" }, + { "-xflash", "flashCount", XrmoptionNoArg, "0" }, + { "-flashRate", "flashRate", XrmoptionSepArg, NULL }, + { "-pixmapDirectory", "pixmapDirectory", XrmoptionSepArg, NULL }, + { "-msLoginDelay", "msLoginDelay", XrmoptionSepArg, NULL }, + { "-pixmap", "pixmapDirectory", XrmoptionSepArg, NULL }, + { "-colorizeMessages", "colorizeMessages", XrmoptionSepArg, NULL }, + { "-colorize", "colorizeMessages", XrmoptionNoArg, "True" }, + { "-xcolorize", "colorizeMessages", XrmoptionNoArg, "False" }, + { "-colorShout", "colorShout", XrmoptionSepArg, NULL }, + { "-colorSShout", "colorSShout", XrmoptionSepArg, NULL }, + { "-colorCShout", "colorSShout", XrmoptionSepArg, NULL }, /*FICS name*/ + { "-colorChannel1", "colorChannel1", XrmoptionSepArg, NULL }, + { "-colorChannel", "colorChannel", XrmoptionSepArg, NULL }, + { "-colorKibitz", "colorKibitz", XrmoptionSepArg, NULL }, + { "-colorTell", "colorTell", XrmoptionSepArg, NULL }, + { "-colorChallenge", "colorChallenge", XrmoptionSepArg, NULL }, + { "-colorRequest", "colorRequest", XrmoptionSepArg, NULL }, + { "-colorSeek", "colorSeek", XrmoptionSepArg, NULL }, + { "-colorNormal", "colorNormal", XrmoptionSepArg, NULL }, + { "-soundProgram", "soundProgram", XrmoptionSepArg, NULL }, + { "-soundShout", "soundShout", XrmoptionSepArg, NULL }, + { "-soundSShout", "soundSShout", XrmoptionSepArg, NULL }, + { "-soundCShout", "soundSShout", XrmoptionSepArg, NULL }, /*FICS name*/ + { "-soundChannel1", "soundChannel1", XrmoptionSepArg, NULL }, + { "-soundChannel", "soundChannel", XrmoptionSepArg, NULL }, + { "-soundKibitz", "soundKibitz", XrmoptionSepArg, NULL }, + { "-soundTell", "soundTell", XrmoptionSepArg, NULL }, + { "-soundChallenge", "soundChallenge", XrmoptionSepArg, NULL }, + { "-soundRequest", "soundRequest", XrmoptionSepArg, NULL }, + { "-soundSeek", "soundSeek", XrmoptionSepArg, NULL }, + { "-soundMove", "soundMove", XrmoptionSepArg, NULL }, + { "-soundIcsWin", "soundIcsWin", XrmoptionSepArg, NULL }, + { "-soundIcsLoss", "soundIcsLoss", XrmoptionSepArg, NULL }, + { "-soundIcsDraw", "soundIcsDraw", XrmoptionSepArg, NULL }, + { "-soundIcsUnfinished", "soundIcsUnfinished", XrmoptionSepArg, NULL }, + { "-soundIcsAlarm", "soundIcsAlarm", XrmoptionSepArg, NULL }, + { "-reuseFirst", "reuseFirst", XrmoptionSepArg, NULL }, + { "-reuseChessPrograms", "reuseFirst", XrmoptionSepArg, NULL }, /*compat*/ + { "-reuse", "reuseFirst", XrmoptionNoArg, "True" }, + { "-xreuse", "reuseFirst", XrmoptionNoArg, "False" }, + { "-reuseSecond", "reuseSecond", XrmoptionSepArg, NULL }, + { "-reuse2", "reuseSecond", XrmoptionNoArg, "True" }, + { "-xreuse2", "reuseSecond", XrmoptionNoArg, "False" }, + { "-animateMoving", "animateMoving", XrmoptionSepArg, NULL }, + { "-animate", "animateMoving", XrmoptionNoArg, "True" }, + { "-xanimate", "animateMoving", XrmoptionNoArg, "False" }, + { "-animateDragging", "animateDragging", XrmoptionSepArg, NULL }, + { "-drag", "animateDragging", XrmoptionNoArg, "True" }, + { "-xdrag", "animateDragging", XrmoptionNoArg, "False" }, + { "-animateSpeed", "animateSpeed", XrmoptionSepArg, NULL }, + { "-popupExitMessage", "popupExitMessage", XrmoptionSepArg, NULL }, + { "-exit", "popupExitMessage", XrmoptionNoArg, "True" }, + { "-xexit", "popupExitMessage", XrmoptionNoArg, "False" }, + { "-popupMoveErrors", "popupMoveErrors", XrmoptionSepArg, NULL }, + { "-popup", "popupMoveErrors", XrmoptionNoArg, "True" }, + { "-xpopup", "popupMoveErrors", XrmoptionNoArg, "False" }, + { "-fontSizeTolerance", "fontSizeTolerance", XrmoptionSepArg, NULL }, + { "-initialMode", "initialMode", XrmoptionSepArg, NULL }, + { "-mode", "initialMode", XrmoptionSepArg, NULL }, + { "-variant", "variant", XrmoptionSepArg, NULL }, + { "-firstProtocolVersion", "firstProtocolVersion", XrmoptionSepArg, NULL }, + { "-secondProtocolVersion","secondProtocolVersion",XrmoptionSepArg, NULL }, + { "-showButtonBar", "showButtonBar", XrmoptionSepArg, NULL }, + { "-buttons", "showButtonBar", XrmoptionNoArg, "True" }, + { "-xbuttons", "showButtonBar", XrmoptionNoArg, "False" }, +}; + + +XtActionsRec boardActions[] = { + { "DrawPosition", DrawPositionProc }, + { "HandleUserMove", HandleUserMove }, + { "AnimateUserMove", AnimateUserMove }, + { "FileNameAction", FileNameAction }, + { "AskQuestionProc", AskQuestionProc }, + { "AskQuestionReplyAction", AskQuestionReplyAction }, + { "PieceMenuPopup", PieceMenuPopup }, + { "WhiteClock", WhiteClock }, + { "BlackClock", BlackClock }, + { "Iconify", Iconify }, + { "ResetProc", ResetProc }, + { "LoadGameProc", LoadGameProc }, + { "LoadNextGameProc", LoadNextGameProc }, + { "LoadPrevGameProc", LoadPrevGameProc }, + { "LoadSelectedProc", LoadSelectedProc }, + { "ReloadGameProc", ReloadGameProc }, + { "LoadPositionProc", LoadPositionProc }, + { "LoadNextPositionProc", LoadNextPositionProc }, + { "LoadPrevPositionProc", LoadPrevPositionProc }, + { "ReloadPositionProc", ReloadPositionProc }, + { "CopyPositionProc", CopyPositionProc }, + { "PastePositionProc", PastePositionProc }, + { "CopyGameProc", CopyGameProc }, + { "PasteGameProc", PasteGameProc }, + { "SaveGameProc", SaveGameProc }, + { "SavePositionProc", SavePositionProc }, + { "MailMoveProc", MailMoveProc }, + { "ReloadCmailMsgProc", ReloadCmailMsgProc }, + { "QuitProc", QuitProc }, + { "MachineWhiteProc", MachineWhiteProc }, + { "MachineBlackProc", MachineBlackProc }, + { "AnalysisModeProc", AnalyzeModeProc }, + { "AnalyzeFileProc", AnalyzeFileProc }, + { "TwoMachinesProc", TwoMachinesProc }, + { "IcsClientProc", IcsClientProc }, + { "EditGameProc", EditGameProc }, + { "EditPositionProc", EditPositionProc }, + { "TrainingProc", EditPositionProc }, + { "ShowGameListProc", ShowGameListProc }, + { "ShowMoveListProc", HistoryShowProc}, + { "EditTagsProc", EditCommentProc }, + { "EditCommentProc", EditCommentProc }, + { "IcsAlarmProc", IcsAlarmProc }, + { "IcsInputBoxProc", IcsInputBoxProc }, + { "PauseProc", PauseProc }, + { "AcceptProc", AcceptProc }, + { "DeclineProc", DeclineProc }, + { "RematchProc", RematchProc }, + { "CallFlagProc", CallFlagProc }, + { "DrawProc", DrawProc }, + { "AdjournProc", AdjournProc }, + { "AbortProc", AbortProc }, + { "ResignProc", ResignProc }, + { "EnterKeyProc", EnterKeyProc }, + { "StopObservingProc", StopObservingProc }, + { "StopExaminingProc", StopExaminingProc }, + { "BackwardProc", BackwardProc }, + { "ForwardProc", ForwardProc }, + { "ToStartProc", ToStartProc }, + { "ToEndProc", ToEndProc }, + { "RevertProc", RevertProc }, + { "TruncateGameProc", TruncateGameProc }, + { "MoveNowProc", MoveNowProc }, + { "RetractMoveProc", RetractMoveProc }, + { "AlwaysQueenProc", AlwaysQueenProc }, + { "AnimateDraggingProc", AnimateDraggingProc }, + { "AnimateMovingProc", AnimateMovingProc }, + { "AutoflagProc", AutoflagProc }, + { "AutoflipProc", AutoflipProc }, + { "AutobsProc", AutobsProc }, + { "AutoraiseProc", AutoraiseProc }, + { "AutosaveProc", AutosaveProc }, + { "BlindfoldProc", BlindfoldProc }, + { "FlashMovesProc", FlashMovesProc }, + { "FlipViewProc", FlipViewProc }, + { "GetMoveListProc", GetMoveListProc }, +#if HIGHDRAG + { "HighlightDraggingProc", HighlightDraggingProc }, +#endif + { "HighlightLastMoveProc", HighlightLastMoveProc }, + { "IcsAlarmProc", IcsAlarmProc }, + { "MoveSoundProc", MoveSoundProc }, + { "OldSaveStyleProc", OldSaveStyleProc }, + { "PeriodicUpdatesProc", PeriodicUpdatesProc }, + { "PonderNextMoveProc", PonderNextMoveProc }, + { "PopupExitMessageProc", PopupExitMessageProc }, + { "PopupMoveErrorsProc", PopupMoveErrorsProc }, + { "PremoveProc", PremoveProc }, + { "QuietPlayProc", QuietPlayProc }, + { "ShowCoordsProc", ShowCoordsProc }, + { "ShowThinkingProc", ShowThinkingProc }, + { "TestLegalityProc", TestLegalityProc }, + { "InfoProc", InfoProc }, + { "ManProc", ManProc }, + { "HintProc", HintProc }, + { "BookProc", BookProc }, + { "AboutGameProc", AboutGameProc }, + { "AboutProc", AboutProc }, + { "DebugProc", DebugProc }, + { "NothingProc", NothingProc }, + { "CommentPopDown", (XtActionProc) CommentPopDown }, + { "EditCommentPopDown", (XtActionProc) EditCommentPopDown }, + { "TagsPopDown", (XtActionProc) TagsPopDown }, + { "ErrorPopDown", (XtActionProc) ErrorPopDown }, + { "ICSInputBoxPopDown", (XtActionProc) ICSInputBoxPopDown }, + { "AnalysisPopDown", (XtActionProc) AnalysisPopDown }, + { "FileNamePopDown", (XtActionProc) FileNamePopDown }, + { "AskQuestionPopDown", (XtActionProc) AskQuestionPopDown }, + { "GameListPopDown", (XtActionProc) GameListPopDown }, + { "PromotionPopDown", (XtActionProc) PromotionPopDown }, + { "HistoryPopDown", (XtActionProc) HistoryPopDown }, +}; + +char globalTranslations[] = + ":R: ResignProc() \n \ + :r: ResetProc() \n \ + :g: LoadGameProc() \n \ + :N: LoadNextGameProc() \n \ + :P: LoadPrevGameProc() \n \ + :Q: QuitProc() \n \ + :F: ToEndProc() \n \ + :f: ForwardProc() \n \ + :B: ToStartProc() \n \ + :b: BackwardProc() \n \ + :p: PauseProc() \n \ + :d: DrawProc() \n \ + :t: CallFlagProc() \n \ + :i: Iconify() \n \ + :c: Iconify() \n \ + :v: FlipViewProc() \n \ + Control_L: BackwardProc() \n \ + Control_L: ForwardProc() \n \ + Control_R: BackwardProc() \n \ + Control_R: ForwardProc() \n \ + Shift1: AskQuestionProc(\"Direct command\",\ + \"Send to chess program:\",,1) \n \ + Shift2: AskQuestionProc(\"Direct command\",\ + \"Send to second chess program:\",,2) \n"; + +char boardTranslations[] = + ": HandleUserMove() \n \ + : HandleUserMove() \n \ + : AnimateUserMove() \n \ + Shift: XawPositionSimpleMenu(menuB) XawPositionSimpleMenu(menuD)\ + PieceMenuPopup(menuB) \n \ + Any: XawPositionSimpleMenu(menuW) XawPositionSimpleMenu(menuD) \ + PieceMenuPopup(menuW) \n \ + Shift: XawPositionSimpleMenu(menuW) XawPositionSimpleMenu(menuD)\ + PieceMenuPopup(menuW) \n \ + Any: XawPositionSimpleMenu(menuB) XawPositionSimpleMenu(menuD) \ + PieceMenuPopup(menuB) \n"; + +char whiteTranslations[] = ": WhiteClock()\n"; +char blackTranslations[] = ": BlackClock()\n"; + +char ICSInputTranslations[] = + "Return: EnterKeyProc() \n"; + +String xboardResources[] = { + "*fileName*value.translations: #override\\n Return: FileNameAction()", + "*question*value.translations: #override\\n Return: AskQuestionReplyAction()", + "*errorpopup*translations: #override\\n Return: ErrorPopDown()", + NULL + }; + + +/* Max possible square size */ +#define MAXSQSIZE 256 + +static int xpm_avail[MAXSQSIZE]; + +#ifdef HAVE_DIR_STRUCT + +/* Extract piece size from filename */ +static int +xpm_getsize(name, len, ext) + char *name; + int len; + char *ext; +{ + char *p, *d; + char buf[10]; + + if (len < 4) + return 0; + + if ((p=strchr(name, '.')) == NULL || + StrCaseCmp(p+1, ext) != 0) + return 0; + + p = name + 3; + d = buf; + + while (*p && isdigit(*p)) + *(d++) = *(p++); + + *d = 0; + return atoi(buf); +} + +/* Setup xpm_avail */ +static int +xpm_getavail(dirname, ext) + char *dirname; + char *ext; +{ + DIR *dir; + struct dirent *ent; + int i; + + for (i=0; id_name, NAMLEN(ent), ext); + if (i > 0 && i < MAXSQSIZE) + xpm_avail[i] = 1; + } + + closedir(dir); + + return 0; +} + +void +xpm_print_avail(fp, ext) + FILE *fp; + char *ext; +{ + int i; + + fprintf(fp, "Available `%s' sizes:\n", ext); + for (i=1; i 99) /* watch bounds on buf */ + return -1; + + p = str; + d = buf; + for (i=0; iWM_PROTOCOLS: %s() \n", procname); + XtAugmentTranslations(w, XtParseTranslationTable(buf)); +} + +void +BoardToTop() +{ + Arg args[16]; + XtSetArg(args[0], XtNiconic, False); + XtSetValues(shellWidget, args, 1); + + XtPopup(shellWidget, XtGrabNone); /* Raise if lowered */ +} + +int +main(argc, argv) + int argc; + char **argv; +{ + int i, j, clockFontPxlSize, coordFontPxlSize, fontPxlSize; + XSetWindowAttributes window_attributes; + Arg args[16]; + Dimension timerWidth, boardWidth, w, h, sep, bor, wr, hr; + XrmValue vFrom, vTo; + XtGeometryResult gres; + char *p; + XrmDatabase xdb; + int forceMono = False; + + setbuf(stdout, NULL); + setbuf(stderr, NULL); + debugFP = stderr; + + programName = strrchr(argv[0], '/'); + if (programName == NULL) + programName = argv[0]; + else + programName++; + + shellWidget = + XtAppInitialize(&appContext, "XBoard", shellOptions, + XtNumber(shellOptions), + &argc, argv, xboardResources, NULL, 0); + if (argc > 1) { + fprintf(stderr, "%s: unrecognized argument %s\n", + programName, argv[1]); + exit(2); + } + + if ((chessDir = (char *) getenv("CHESSDIR")) == NULL) { + chessDir = "."; + } else { + if (chdir(chessDir) != 0) { + fprintf(stderr, "%s: can't cd to CHESSDIR: ", programName); + perror(chessDir); + exit(1); + } + } + + p = getenv("HOME"); + if (p == NULL) p = "/tmp"; + i = strlen(p) + strlen("/.xboardXXXXXx.pgn") + 1; + gameCopyFilename = (char*) malloc(i); + gamePasteFilename = (char*) malloc(i); + sprintf(gameCopyFilename, "%s/.xboard%05uc.pgn", p, getpid()); + sprintf(gamePasteFilename, "%s/.xboard%05up.pgn", p, getpid()); + + XtGetApplicationResources(shellWidget, (XtPointer) &appData, + clientResources, XtNumber(clientResources), + NULL, 0); +#if !HIGHDRAG + /* This feature does not work; animation needs a rewrite */ + appData.highlightDragging = FALSE; +#endif + InitBackEnd1(); + + xDisplay = XtDisplay(shellWidget); + xScreen = DefaultScreen(xDisplay); + wm_delete_window = XInternAtom(xDisplay, "WM_DELETE_WINDOW", True); + + /* + * Determine boardSize + */ + if (isdigit(appData.boardSize[0])) { + i = sscanf(appData.boardSize, "%d,%d,%d,%d,%d,%d,%d", &squareSize, + &lineGap, &clockFontPxlSize, &coordFontPxlSize, + &fontPxlSize, &smallLayout, &tinyLayout); + if (i == 0) { + fprintf(stderr, "%s: bad boardSize syntax %s\n", + programName, appData.boardSize); + exit(2); + } + if (i < 7) { + /* Find some defaults; use the nearest known size */ + SizeDefaults *szd, *nearest; + int distance = 99999; + nearest = szd = sizeDefaults; + while (szd->name != NULL) { + if (abs(szd->squareSize - squareSize) < distance) { + nearest = szd; + distance = abs(szd->squareSize - squareSize); + if (distance == 0) break; + } + szd++; + } + if (i < 2) lineGap = nearest->lineGap; + if (i < 3) clockFontPxlSize = nearest->clockFontPxlSize; + if (i < 4) coordFontPxlSize = nearest->coordFontPxlSize; + if (i < 5) fontPxlSize = nearest->fontPxlSize; + if (i < 6) smallLayout = nearest->smallLayout; + if (i < 7) tinyLayout = nearest->tinyLayout; + } + } else { + SizeDefaults *szd = sizeDefaults; + if (*appData.boardSize == NULLCHAR) { + while (DisplayWidth(xDisplay, xScreen) < szd->minScreenSize || + DisplayHeight(xDisplay, xScreen) < szd->minScreenSize) { + szd++; + } + if (szd->name == NULL) szd--; + } else { + while (szd->name != NULL && + StrCaseCmp(szd->name, appData.boardSize) != 0) szd++; + if (szd->name == NULL) { + fprintf(stderr, "%s: unrecognized boardSize name %s\n", + programName, appData.boardSize); + exit(2); + } + } + squareSize = szd->squareSize; + lineGap = szd->lineGap; + clockFontPxlSize = szd->clockFontPxlSize; + coordFontPxlSize = szd->coordFontPxlSize; + fontPxlSize = szd->fontPxlSize; + smallLayout = szd->smallLayout; + tinyLayout = szd->tinyLayout; + } + + /* Now, using squareSize as a hint, find a good XPM/XIM set size */ + if (strlen(appData.pixmapDirectory) > 0) { + p = ExpandPathName(appData.pixmapDirectory); + if (!p) { + fprintf(stderr, "Error expanding path name \"%s\"\n", + appData.pixmapDirectory); + exit(1); + } + if (appData.debugMode) { + fprintf(stderr, "XBoard square size (hint): %d\n", squareSize); + fprintf(stderr, "%s fulldir:%s:\n", IMAGE_EXT, p); + } + squareSize = xpm_closest_to(p, squareSize, IMAGE_EXT); + if (appData.debugMode) { + fprintf(stderr, "Closest %s size: %d\n", IMAGE_EXT, squareSize); + } + } + + boardWidth = lineGap + BOARD_SIZE * (squareSize + lineGap); + if (appData.showJail == 1) { + /* Jail on top and bottom */ + XtSetArg(boardArgs[1], XtNwidth, boardWidth); + XtSetArg(boardArgs[2], XtNheight, + boardWidth + 2*(lineGap + squareSize)); + } else if (appData.showJail == 2) { + /* Jail on sides */ + XtSetArg(boardArgs[1], XtNwidth, + boardWidth + 2*(lineGap + squareSize)); + XtSetArg(boardArgs[2], XtNheight, boardWidth); + } else { + /* No jail */ + XtSetArg(boardArgs[1], XtNwidth, boardWidth); + XtSetArg(boardArgs[2], XtNheight, boardWidth); + } + + /* + * Determine what fonts to use. + */ + appData.clockFont = FindFont(appData.clockFont, clockFontPxlSize); + clockFontID = XLoadFont(xDisplay, appData.clockFont); + clockFontStruct = XQueryFont(xDisplay, clockFontID); + appData.coordFont = FindFont(appData.coordFont, coordFontPxlSize); + coordFontID = XLoadFont(xDisplay, appData.coordFont); + coordFontStruct = XQueryFont(xDisplay, coordFontID); + appData.font = FindFont(appData.font, fontPxlSize); + + xdb = XtDatabase(xDisplay); + XrmPutStringResource(&xdb, "*font", appData.font); + + /* + * Detect if there are not enough colors available and adapt. + */ + if (DefaultDepth(xDisplay, xScreen) <= 2) { + appData.monoMode = True; + } + + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.lightSquareColor; + vFrom.size = strlen(appData.lightSquareColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + lightSquareColor = *(Pixel *) vTo.addr; + } + } + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.darkSquareColor; + vFrom.size = strlen(appData.darkSquareColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + darkSquareColor = *(Pixel *) vTo.addr; + } + } + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.whitePieceColor; + vFrom.size = strlen(appData.whitePieceColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + whitePieceColor = *(Pixel *) vTo.addr; + } + } + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.blackPieceColor; + vFrom.size = strlen(appData.blackPieceColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + blackPieceColor = *(Pixel *) vTo.addr; + } + } + + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.highlightSquareColor; + vFrom.size = strlen(appData.highlightSquareColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + highlightSquareColor = *(Pixel *) vTo.addr; + } + } + + if (!appData.monoMode) { + vFrom.addr = (caddr_t) appData.premoveHighlightColor; + vFrom.size = strlen(appData.premoveHighlightColor); + XtConvert(shellWidget, XtRString, &vFrom, XtRPixel, &vTo); + if (vTo.addr == NULL) { + appData.monoMode = True; + forceMono = True; + } else { + premoveHighlightColor = *(Pixel *) vTo.addr; + } + } + + if (forceMono) { + fprintf(stderr, "%s: too few colors available; trying monochrome mode\n", + programName); + } + + if (appData.monoMode && appData.debugMode) { + fprintf(stderr, "white pixel = 0x%lx, black pixel = 0x%lx\n", + (unsigned long) XWhitePixel(xDisplay, xScreen), + (unsigned long) XBlackPixel(xDisplay, xScreen)); + } + + if (parse_cpair(ColorShout, appData.colorShout) < 0 || + parse_cpair(ColorSShout, appData.colorSShout) < 0 || + parse_cpair(ColorChannel1, appData.colorChannel1) < 0 || + parse_cpair(ColorChannel, appData.colorChannel) < 0 || + parse_cpair(ColorKibitz, appData.colorKibitz) < 0 || + parse_cpair(ColorTell, appData.colorTell) < 0 || + parse_cpair(ColorChallenge, appData.colorChallenge) < 0 || + parse_cpair(ColorRequest, appData.colorRequest) < 0 || + parse_cpair(ColorSeek, appData.colorSeek) < 0 || + parse_cpair(ColorNormal, appData.colorNormal) < 0) + { + if (appData.colorize) { + fprintf(stderr, + "%s: can't parse color names; disabling colorization\n", + programName); + } + appData.colorize = FALSE; + } + textColors[ColorNone].fg = textColors[ColorNone].bg = -1; + textColors[ColorNone].attr = 0; + + XtAppAddActions(appContext, boardActions, XtNumber(boardActions)); + + /* + * widget hierarchy + */ + if (tinyLayout) { + layoutName = "tinyLayout"; + } else if (smallLayout) { + layoutName = "smallLayout"; + } else { + layoutName = "normalLayout"; + } + /* Outer layoutWidget is there only to provide a name for use in + resources that depend on the layout style */ + layoutWidget = + XtCreateManagedWidget(layoutName, formWidgetClass, shellWidget, + layoutArgs, XtNumber(layoutArgs)); + formWidget = + XtCreateManagedWidget("form", formWidgetClass, layoutWidget, + formArgs, XtNumber(formArgs)); + XtSetArg(args[0], XtNdefaultDistance, &sep); + XtGetValues(formWidget, args, 1); + + j = 0; + widgetList[j++] = menuBarWidget = CreateMenuBar(menuBar); + + widgetList[j++] = whiteTimerWidget = + XtCreateWidget("whiteTime", labelWidgetClass, + formWidget, timerArgs, XtNumber(timerArgs)); + XtSetArg(args[0], XtNfont, clockFontStruct); + XtSetValues(whiteTimerWidget, args, 1); + + widgetList[j++] = blackTimerWidget = + XtCreateWidget("blackTime", labelWidgetClass, + formWidget, timerArgs, XtNumber(timerArgs)); + XtSetArg(args[0], XtNfont, clockFontStruct); + XtSetValues(blackTimerWidget, args, 1); + + if (appData.titleInWindow) { + widgetList[j++] = titleWidget = + XtCreateWidget("title", labelWidgetClass, formWidget, + titleArgs, XtNumber(titleArgs)); + } + + if (appData.showButtonBar) { + widgetList[j++] = buttonBarWidget = CreateButtonBar(buttonBar); + } + + widgetList[j++] = messageWidget = + XtCreateWidget("message", labelWidgetClass, formWidget, + messageArgs, XtNumber(messageArgs)); + + widgetList[j++] = boardWidget = + XtCreateWidget("board", widgetClass, formWidget, boardArgs, + XtNumber(boardArgs)); + + XtManageChildren(widgetList, j); + + timerWidth = (boardWidth - sep) / 2; + XtSetArg(args[0], XtNwidth, timerWidth); + XtSetValues(whiteTimerWidget, args, 1); + XtSetValues(blackTimerWidget, args, 1); + + XtSetArg(args[0], XtNbackground, &timerBackgroundPixel); + XtSetArg(args[1], XtNforeground, &timerForegroundPixel); + XtGetValues(whiteTimerWidget, args, 2); + + if (appData.showButtonBar) { + XtSetArg(args[0], XtNbackground, &buttonBackgroundPixel); + XtSetArg(args[1], XtNforeground, &buttonForegroundPixel); + XtGetValues(XtNameToWidget(buttonBarWidget, PAUSE_BUTTON), args, 2); + } + + /* + * formWidget uses these constraints but they are stored + * in the children. + */ + i = 0; + XtSetArg(args[i], XtNfromHoriz, 0); i++; + XtSetValues(menuBarWidget, args, i); + if (appData.titleInWindow) { + if (smallLayout) { + i = 0; + XtSetArg(args[i], XtNfromVert, menuBarWidget); i++; + XtSetValues(whiteTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, menuBarWidget); i++; + XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++; + XtSetValues(blackTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++; + XtSetArg(args[i], XtNjustify, XtJustifyLeft); i++; + XtSetValues(titleWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, titleWidget); i++; + XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++; + XtSetValues(messageWidget, args, i); + if (appData.showButtonBar) { + i = 0; + XtSetArg(args[i], XtNfromVert, titleWidget); i++; + XtSetArg(args[i], XtNfromHoriz, messageWidget); i++; + XtSetValues(buttonBarWidget, args, i); + } + } else { + i = 0; + XtSetArg(args[i], XtNfromVert, titleWidget); i++; + XtSetValues(whiteTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, titleWidget); i++; + XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++; + XtSetValues(blackTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromHoriz, menuBarWidget); i++; + XtSetValues(titleWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++; + XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++; + XtSetValues(messageWidget, args, i); + if (appData.showButtonBar) { + i = 0; + XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++; + XtSetArg(args[i], XtNfromHoriz, messageWidget); i++; + XtSetValues(buttonBarWidget, args, i); + } + } + } else { + i = 0; + XtSetArg(args[i], XtNfromVert, menuBarWidget); i++; + XtSetValues(whiteTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, menuBarWidget); i++; + XtSetArg(args[i], XtNfromHoriz, whiteTimerWidget); i++; + XtSetValues(blackTimerWidget, args, i); + i = 0; + XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++; + XtSetArg(args[i], XtNresizable, (XtArgVal) True); i++; + XtSetValues(messageWidget, args, i); + if (appData.showButtonBar) { + i = 0; + XtSetArg(args[i], XtNfromVert, whiteTimerWidget); i++; + XtSetArg(args[i], XtNfromHoriz, messageWidget); i++; + XtSetValues(buttonBarWidget, args, i); + } + } + i = 0; + XtSetArg(args[0], XtNfromVert, messageWidget); + XtSetValues(boardWidget, args, 1); + + XtRealizeWidget(shellWidget); + + /* + * Correct the width of the message and title widgets. + * It is not known why some systems need the extra fudge term. + * The value "2" is probably larger than needed. + */ + XawFormDoLayout(formWidget, False); +#define WIDTH_FUDGE 2 + i = 0; + XtSetArg(args[i], XtNborderWidth, &bor); i++; + XtSetArg(args[i], XtNheight, &h); i++; + XtGetValues(messageWidget, args, i); + if (appData.showButtonBar) { + i = 0; + XtSetArg(args[i], XtNwidth, &w); i++; + XtGetValues(buttonBarWidget, args, i); + w = boardWidth - w - sep - 2*bor - WIDTH_FUDGE; + } else { + w = boardWidth - 2*bor + 1; /*!! +1 compensates for kludge below */ + } + + gres = XtMakeResizeRequest(messageWidget, w, h, &wr, &hr); + if (gres != XtGeometryYes && appData.debugMode) { + fprintf(stderr, "%s: messageWidget geometry error %d %d %d %d %d\n", + programName, gres, w, h, wr, hr); + } + + /* !! Horrible hack to work around bug in XFree86 4.0.1 (X11R6.4.3) */ + /* The size used for the child widget in layout lags one resize behind + its true size, so we resize a second time, 1 pixel smaller. Yeech! */ + w--; + gres = XtMakeResizeRequest(messageWidget, w, h, &wr, &hr); + if (gres != XtGeometryYes && appData.debugMode) { + fprintf(stderr, "%s: messageWidget geometry error %d %d %d %d %d\n", + programName, gres, w, h, wr, hr); + } + /* !! end hack */ + + if (appData.titleInWindow) { + i = 0; + XtSetArg(args[i], XtNborderWidth, &bor); i++; + XtSetArg(args[i], XtNheight, &h); i++; + XtGetValues(titleWidget, args, i); + if (smallLayout) { + w = boardWidth - 2*bor; + } else { + XtSetArg(args[0], XtNwidth, &w); + XtGetValues(menuBarWidget, args, 1); + w = boardWidth - w - sep - 2*bor - WIDTH_FUDGE; + } + + gres = XtMakeResizeRequest(titleWidget, w, h, &wr, &hr); + if (gres != XtGeometryYes && appData.debugMode) { + fprintf(stderr, + "%s: titleWidget geometry error %d %d %d %d %d\n", + programName, gres, w, h, wr, hr); + } + } + XawFormDoLayout(formWidget, True); + + xBoardWindow = XtWindow(boardWidget); + + /* + * Create X checkmark bitmap and initialize option menu checks. + */ + ReadBitmap(&xMarkPixmap, "checkmark.bm", + checkmark_bits, checkmark_width, checkmark_height); + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + if (appData.alwaysPromoteToQueen) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Always Queen"), + args, 1); + } + if (appData.animateDragging) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Animate Dragging"), + args, 1); + } + if (appData.animate) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Animate Moving"), + args, 1); + } + if (appData.autoComment) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Comment"), + args, 1); + } + if (appData.autoCallFlag) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Flag"), + args, 1); + } + if (appData.autoFlipView) { + XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Auto Flip View"), + args, 1); + } + if (appData.autoObserve) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Observe"), + args, 1); + } + if (appData.autoRaiseBoard) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Auto Raise Board"), args, 1); + } + if (appData.autoSaveGames) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"), + args, 1); + } + if (appData.saveGameFile[0] != NULLCHAR) { + /* Can't turn this off from menu */ + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"), + args, 1); + XtSetSensitive(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"), + False); + + } + if (appData.blindfold) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Blindfold"), args, 1); + } + if (appData.flashCount > 0) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Flash Moves"), + args, 1); + } + if (appData.getMoveList) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Get Move List"), + args, 1); + } +#if HIGHDRAG + if (appData.highlightDragging) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Highlight Dragging"), + args, 1); + } +#endif + if (appData.highlightLastMove) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Highlight Last Move"), + args, 1); + } + if (appData.icsAlarm) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.ICS Alarm"), + args, 1); + } + if (appData.ringBellAfterMoves) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Move Sound"), + args, 1); + } + if (appData.oldSaveStyle) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Old Save Style"), args, 1); + } + if (appData.periodicUpdates) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Periodic Updates"), args, 1); + } + if (appData.ponderNextMove) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Ponder Next Move"), args, 1); + } + if (appData.popupExitMessage) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Popup Exit Message"), args, 1); + } + if (appData.popupMoveErrors) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Popup Move Errors"), args, 1); + } + if (appData.premove) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Premove"), args, 1); + } + if (appData.quietPlay) { + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Quiet Play"), args, 1); + } + if (appData.showCoords) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Show Coords"), + args, 1); + } + if (appData.showThinking) { + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Show Thinking"), + args, 1); + } + if (appData.testLegality) { + XtSetValues(XtNameToWidget(menuBarWidget,"menuOptions.Test Legality"), + args, 1); + } + + /* + * Create an icon. + */ + ReadBitmap(&wIconPixmap, "icon_white.bm", + icon_white_bits, icon_white_width, icon_white_height); + ReadBitmap(&bIconPixmap, "icon_black.bm", + icon_black_bits, icon_black_width, icon_black_height); + iconPixmap = wIconPixmap; + i = 0; + XtSetArg(args[i], XtNiconPixmap, iconPixmap); i++; + XtSetValues(shellWidget, args, i); + + /* + * Create a cursor for the board widget. + */ + window_attributes.cursor = XCreateFontCursor(xDisplay, XC_hand2); + XChangeWindowAttributes(xDisplay, xBoardWindow, + CWCursor, &window_attributes); + + /* + * Inhibit shell resizing. + */ + shellArgs[0].value = (XtArgVal) &w; + shellArgs[1].value = (XtArgVal) &h; + XtGetValues(shellWidget, shellArgs, 2); + shellArgs[4].value = shellArgs[2].value = w; + shellArgs[5].value = shellArgs[3].value = h; + XtSetValues(shellWidget, &shellArgs[2], 4); + + CatchDeleteWindow(shellWidget, "QuitProc"); + + CreateGCs(); + CreateGrid(); +#if HAVE_LIBXPM + if (appData.bitmapDirectory[0] != NULLCHAR) { + CreatePieces(); + } else { + CreateXPMPieces(); + } +#else + CreateXIMPieces(); + /* Create regular pieces */ + if (!useImages) CreatePieces(); +#endif + + CreatePieceMenus(); + + if (appData.animate || appData.animateDragging) + CreateAnimVars(); + + XtAugmentTranslations(formWidget, + XtParseTranslationTable(globalTranslations)); + XtAugmentTranslations(boardWidget, + XtParseTranslationTable(boardTranslations)); + XtAugmentTranslations(whiteTimerWidget, + XtParseTranslationTable(whiteTranslations)); + XtAugmentTranslations(blackTimerWidget, + XtParseTranslationTable(blackTranslations)); + + /* Why is the following needed on some versions of X instead + * of a translation? */ + XtAddEventHandler(boardWidget, ExposureMask, False, + (XtEventHandler) EventProc, NULL); + /* end why */ + + InitBackEnd2(); + + if (errorExitStatus == -1) { + if (appData.icsActive) { + /* We now wait until we see "login:" from the ICS before + sending the logon script (problems with timestamp otherwise) */ + /*ICSInitScript();*/ + if (appData.icsInputBox) ICSInputBoxPopUp(); + } + + signal(SIGINT, IntSigHandler); + signal(SIGTERM, IntSigHandler); + if (*appData.cmailGameName != NULLCHAR) { + signal(SIGUSR1, CmailSigHandler); + } + } + + XtAppMainLoop(appContext); + return 0; +} + +void +ShutDownFrontEnd() +{ + if (appData.icsActive && oldICSInteractionTitle != NULL) { + DisplayIcsInteractionTitle(oldICSInteractionTitle); + } + unlink(gameCopyFilename); + unlink(gamePasteFilename); +} + +RETSIGTYPE +IntSigHandler(sig) + int sig; +{ + ExitEvent(sig); +} + +RETSIGTYPE +CmailSigHandler(sig) + int sig; +{ + int dummy = 0; + int error; + + signal(SIGUSR1, SIG_IGN); /* suspend handler */ + + /* Activate call-back function CmailSigHandlerCallBack() */ + OutputToProcess(cmailPR, (char *)(&dummy), sizeof(int), &error); + + signal(SIGUSR1, CmailSigHandler); /* re-activate handler */ +} + +void +CmailSigHandlerCallBack(isr, closure, message, count, error) + InputSourceRef isr; + VOIDSTAR closure; + char *message; + int count; + int error; +{ + BoardToTop(); + ReloadCmailMsgEvent(TRUE); /* Reload cmail msg */ +} +/**** end signal code ****/ + + +void +ICSInitScript() +{ + FILE *f; + char buf[MSG_SIZ]; + char *p; + + f = fopen(appData.icsLogon, "r"); + if (f == NULL) { + p = getenv("HOME"); + if (p != NULL) { + strcpy(buf, p); + strcat(buf, "/"); + strcat(buf, appData.icsLogon); + f = fopen(buf, "r"); + } + } + if (f != NULL) + ProcessICSInitScript(f); +} + +void +ResetFrontEnd() +{ + CommentPopDown(); + EditCommentPopDown(); + TagsPopDown(); + return; +} + +typedef struct { + char *name; + Boolean value; +} Enables; + +void +SetMenuEnables(enab) + Enables *enab; +{ + Widget w; + if (!menuBarWidget) return; + while (enab->name != NULL) { + w = XtNameToWidget(menuBarWidget, enab->name); + if (w == NULL) { + DisplayError(enab->name, 0); + } else { + XtSetSensitive(w, enab->value); + } + enab++; + } +} + +Enables icsEnables[] = { + { "menuFile.Mail Move", False }, + { "menuFile.Reload CMail Message", False }, + { "menuMode.Machine Black", False }, + { "menuMode.Machine White", False }, + { "menuMode.Analysis Mode", False }, + { "menuMode.Analyze File", False }, + { "menuMode.Two Machines", False }, +#ifndef ZIPPY + { "menuHelp.Hint", False }, + { "menuHelp.Book", False }, + { "menuStep.Move Now", False }, + { "menuOptions.Periodic Updates", False }, + { "menuOptions.Show Thinking", False }, + { "menuOptions.Ponder Next Move", False }, +#endif + { NULL, False } +}; + +Enables ncpEnables[] = { + { "menuFile.Mail Move", False }, + { "menuFile.Reload CMail Message", False }, + { "menuMode.Machine White", False }, + { "menuMode.Machine Black", False }, + { "menuMode.Analysis Mode", False }, + { "menuMode.Analyze File", False }, + { "menuMode.Two Machines", False }, + { "menuMode.ICS Client", False }, + { "menuMode.ICS Input Box", False }, + { "Action", False }, + { "menuStep.Revert", False }, + { "menuStep.Move Now", False }, + { "menuStep.Retract Move", False }, + { "menuOptions.Auto Comment", False }, + { "menuOptions.Auto Flag", False }, + { "menuOptions.Auto Flip View", False }, + { "menuOptions.Auto Observe", False }, + { "menuOptions.Auto Raise Board", False }, + { "menuOptions.Get Move List", False }, + { "menuOptions.ICS Alarm", False }, + { "menuOptions.Move Sound", False }, + { "menuOptions.Quiet Play", False }, + { "menuOptions.Show Thinking", False }, + { "menuOptions.Periodic Updates", False }, + { "menuOptions.Ponder Next Move", False }, + { "menuHelp.Hint", False }, + { "menuHelp.Book", False }, + { NULL, False } +}; + +Enables gnuEnables[] = { + { "menuMode.ICS Client", False }, + { "menuMode.ICS Input Box", False }, + { "menuAction.Accept", False }, + { "menuAction.Decline", False }, + { "menuAction.Rematch", False }, + { "menuAction.Adjourn", False }, + { "menuAction.Stop Examining", False }, + { "menuAction.Stop Observing", False }, + { "menuStep.Revert", False }, + { "menuOptions.Auto Comment", False }, + { "menuOptions.Auto Observe", False }, + { "menuOptions.Auto Raise Board", False }, + { "menuOptions.Get Move List", False }, + { "menuOptions.Premove", False }, + { "menuOptions.Quiet Play", False }, + + /* The next two options rely on SetCmailMode being called *after* */ + /* SetGNUMode so that when GNU is being used to give hints these */ + /* menu options are still available */ + + { "menuFile.Mail Move", False }, + { "menuFile.Reload CMail Message", False }, + { NULL, False } +}; + +Enables cmailEnables[] = { + { "Action", True }, + { "menuAction.Call Flag", False }, + { "menuAction.Draw", True }, + { "menuAction.Adjourn", False }, + { "menuAction.Abort", False }, + { "menuAction.Stop Observing", False }, + { "menuAction.Stop Examining", False }, + { "menuFile.Mail Move", True }, + { "menuFile.Reload CMail Message", True }, + { NULL, False } +}; + +Enables trainingOnEnables[] = { + { "menuMode.Edit Comment", False }, + { "menuMode.Pause", False }, + { "menuStep.Forward", False }, + { "menuStep.Backward", False }, + { "menuStep.Forward to End", False }, + { "menuStep.Back to Start", False }, + { "menuStep.Move Now", False }, + { "menuStep.Truncate Game", False }, + { NULL, False } +}; + +Enables trainingOffEnables[] = { + { "menuMode.Edit Comment", True }, + { "menuMode.Pause", True }, + { "menuStep.Forward", True }, + { "menuStep.Backward", True }, + { "menuStep.Forward to End", True }, + { "menuStep.Back to Start", True }, + { "menuStep.Move Now", True }, + { "menuStep.Truncate Game", True }, + { NULL, False } +}; + +Enables machineThinkingEnables[] = { + { "menuFile.Load Game", False }, + { "menuFile.Load Next Game", False }, + { "menuFile.Load Previous Game", False }, + { "menuFile.Reload Same Game", False }, + { "menuFile.Paste Game", False }, + { "menuFile.Load Position", False }, + { "menuFile.Load Next Position", False }, + { "menuFile.Load Previous Position", False }, + { "menuFile.Reload Same Position", False }, + { "menuFile.Paste Position", False }, + { "menuMode.Machine White", False }, + { "menuMode.Machine Black", False }, + { "menuMode.Two Machines", False }, + { "menuStep.Retract Move", False }, + { NULL, False } +}; + +Enables userThinkingEnables[] = { + { "menuFile.Load Game", True }, + { "menuFile.Load Next Game", True }, + { "menuFile.Load Previous Game", True }, + { "menuFile.Reload Same Game", True }, + { "menuFile.Paste Game", True }, + { "menuFile.Load Position", True }, + { "menuFile.Load Next Position", True }, + { "menuFile.Load Previous Position", True }, + { "menuFile.Reload Same Position", True }, + { "menuFile.Paste Position", True }, + { "menuMode.Machine White", True }, + { "menuMode.Machine Black", True }, + { "menuMode.Two Machines", True }, + { "menuStep.Retract Move", True }, + { NULL, False } +}; + +void SetICSMode() +{ + SetMenuEnables(icsEnables); +} + +void +SetNCPMode() +{ + SetMenuEnables(ncpEnables); +} + +void +SetGNUMode() +{ + SetMenuEnables(gnuEnables); +} + +void +SetCmailMode() +{ + SetMenuEnables(cmailEnables); +} + +void +SetTrainingModeOn() +{ + SetMenuEnables(trainingOnEnables); + if (appData.showButtonBar) { + XtSetSensitive(buttonBarWidget, False); + } + CommentPopDown(); +} + +void +SetTrainingModeOff() +{ + SetMenuEnables(trainingOffEnables); + if (appData.showButtonBar) { + XtSetSensitive(buttonBarWidget, True); + } +} + +void +SetUserThinkingEnables() +{ + if (appData.noChessProgram) return; + SetMenuEnables(userThinkingEnables); +} + +void +SetMachineThinkingEnables() +{ + if (appData.noChessProgram) return; + SetMenuEnables(machineThinkingEnables); + switch (gameMode) { + case MachinePlaysBlack: + case MachinePlaysWhite: + case TwoMachinesPlay: + XtSetSensitive(XtNameToWidget(menuBarWidget, + ModeToWidgetName(gameMode)), True); + break; + default: + break; + } +} + +#define Abs(n) ((n)<0 ? -(n) : (n)) + +/* + * Find a font that matches "pattern" that is as close as + * possible to the targetPxlSize. Prefer fonts that are k + * pixels smaller to fonts that are k pixels larger. The + * pattern must be in the X Consortium standard format, + * e.g. "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*". + * The return value should be freed with XtFree when no + * longer needed. + */ +char *FindFont(pattern, targetPxlSize) + char *pattern; + int targetPxlSize; +{ + char **fonts, *p, *best, *scalable, *scalableTail; + int i, j, nfonts, minerr, err, pxlSize; + + fonts = XListFonts(xDisplay, pattern, 999999, &nfonts); + if (nfonts < 1) { + fprintf(stderr, "%s: no fonts match pattern %s\n", + programName, pattern); + exit(2); + } + best = fonts[0]; + scalable = NULL; + minerr = 999999; + for (i=0; i 0 && err < 0 && -err == minerr)) { + best = fonts[i]; + minerr = err; + } + } + } + if (scalable && Abs(minerr) > appData.fontSizeTolerance) { + /* If the error is too big and there is a scalable font, + use the scalable font. */ + int headlen = scalableTail - scalable; + p = (char *) XtMalloc(strlen(scalable) + 10); + while (isdigit(*scalableTail)) scalableTail++; + sprintf(p, "%.*s%d%s", headlen, scalable, targetPxlSize, scalableTail); + } else { + p = (char *) XtMalloc(strlen(best) + 1); + strcpy(p, best); + } + if (appData.debugMode) { + fprintf(debugFP, "resolved %s at pixel size %d\n to %s\n", + pattern, targetPxlSize, p); + } + XFreeFontNames(fonts); + return p; +} + +void CreateGCs() +{ + XtGCMask value_mask = GCLineWidth | GCLineStyle | GCForeground + | GCBackground | GCFunction | GCPlaneMask; + XGCValues gc_values; + GC copyInvertedGC; + + gc_values.plane_mask = AllPlanes; + gc_values.line_width = lineGap; + gc_values.line_style = LineSolid; + gc_values.function = GXcopy; + + gc_values.foreground = XBlackPixel(xDisplay, xScreen); + gc_values.background = XBlackPixel(xDisplay, xScreen); + lineGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = XBlackPixel(xDisplay, xScreen); + gc_values.background = XWhitePixel(xDisplay, xScreen); + coordGC = XtGetGC(shellWidget, value_mask, &gc_values); + XSetFont(xDisplay, coordGC, coordFontID); + + if (appData.monoMode) { + gc_values.foreground = XWhitePixel(xDisplay, xScreen); + gc_values.background = XWhitePixel(xDisplay, xScreen); + highlineGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = XWhitePixel(xDisplay, xScreen); + gc_values.background = XBlackPixel(xDisplay, xScreen); + lightSquareGC = wbPieceGC + = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = XBlackPixel(xDisplay, xScreen); + gc_values.background = XWhitePixel(xDisplay, xScreen); + darkSquareGC = bwPieceGC + = XtGetGC(shellWidget, value_mask, &gc_values); + + if (DefaultDepth(xDisplay, xScreen) == 1) { + /* Avoid XCopyPlane on 1-bit screens to work around Sun bug */ + gc_values.function = GXcopyInverted; + copyInvertedGC = XtGetGC(shellWidget, value_mask, &gc_values); + gc_values.function = GXcopy; + if (XBlackPixel(xDisplay, xScreen) == 1) { + bwPieceGC = darkSquareGC; + wbPieceGC = copyInvertedGC; + } else { + bwPieceGC = copyInvertedGC; + wbPieceGC = lightSquareGC; + } + } + } else { + gc_values.foreground = highlightSquareColor; + gc_values.background = highlightSquareColor; + highlineGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = premoveHighlightColor; + gc_values.background = premoveHighlightColor; + prelineGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = lightSquareColor; + gc_values.background = darkSquareColor; + lightSquareGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = darkSquareColor; + gc_values.background = lightSquareColor; + darkSquareGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = jailSquareColor; + gc_values.background = jailSquareColor; + jailSquareGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = whitePieceColor; + gc_values.background = darkSquareColor; + wdPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = whitePieceColor; + gc_values.background = lightSquareColor; + wlPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = whitePieceColor; + gc_values.background = jailSquareColor; + wjPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = blackPieceColor; + gc_values.background = darkSquareColor; + bdPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = blackPieceColor; + gc_values.background = lightSquareColor; + blPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + + gc_values.foreground = blackPieceColor; + gc_values.background = jailSquareColor; + bjPieceGC = XtGetGC(shellWidget, value_mask, &gc_values); + } +} + +void loadXIM(xim, xmask, filename, dest, mask) + XImage *xim; + XImage *xmask; + char *filename; + Pixmap *dest; + Pixmap *mask; +{ + int x, y, w, h, p; + FILE *fp; + Pixmap temp; + XGCValues values; + GC maskGC; + + fp = fopen(filename, "rb"); + if (!fp) { + fprintf(stderr, "%s: error loading XIM!\n", programName); + exit(1); + } + + w = fgetc(fp); + h = fgetc(fp); + + for (y=0; ydepth); + XPutImage(xDisplay, *dest, lightSquareGC, xim, + 0, 0, 0, 0, w, h); + + /* create Pixmap of clipmask + Note: We assume the white/black pieces have the same + outline, so we make only 6 masks. This is okay + since the XPM clipmask routines do the same. */ + if (xmask) { + temp = XCreatePixmap(xDisplay, DefaultRootWindow(xDisplay), + w, h, xim->depth); + XPutImage(xDisplay, temp, lightSquareGC, xmask, + 0, 0, 0, 0, w, h); + + /* now create the 1-bit version */ + *mask = XCreatePixmap(xDisplay, DefaultRootWindow(xDisplay), + w, h, 1); + + values.foreground = 1; + values.background = 0; + + /* Don't use XtGetGC, not read only */ + maskGC = XCreateGC(xDisplay, *mask, + GCForeground | GCBackground, &values); + XCopyPlane(xDisplay, temp, *mask, maskGC, + 0, 0, squareSize, squareSize, 0, 0, 1); + XFreePixmap(xDisplay, temp); + } +} + +void CreateXIMPieces() +{ + int piece, kind; + char buf[MSG_SIZ]; + u_int ss; + static char *ximkind[] = { "ll", "ld", "dl", "dd" }; + XImage *ximtemp; + + ss = squareSize; + + /* The XSynchronize calls were copied from CreatePieces. + Not sure if needed, but can't hurt */ + XSynchronize(xDisplay, True); /* Work-around for xlib/xt + buffering bug */ + + /* temp needed by loadXIM() */ + ximtemp = XGetImage(xDisplay, DefaultRootWindow(xDisplay), + 0, 0, ss, ss, AllPlanes, XYPixmap); + + if (strlen(appData.pixmapDirectory) == 0) { + useImages = 0; + } else { + useImages = 1; + if (appData.monoMode) { + DisplayFatalError("XIM pieces cannot be used in monochrome mode", + 0, 2); + ExitEvent(2); + } + fprintf(stderr, "\nLoading XIMs...\n"); + /* Load pieces */ + for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) { + fprintf(stderr, "%d", piece+1); + for (kind=0; kind<4; kind++) { + fprintf(stderr, "."); + sprintf(buf, "%s/%c%s%u.xim", + ExpandPathName(appData.pixmapDirectory), + ToLower(PieceToChar((ChessSquare)piece)), + ximkind[kind], ss); + ximPieceBitmap[kind][piece] = + XGetImage(xDisplay, DefaultRootWindow(xDisplay), + 0, 0, ss, ss, AllPlanes, XYPixmap); + if (appData.debugMode) + fprintf(stderr, "(File:%s:) ", buf); + loadXIM(ximPieceBitmap[kind][piece], + ximtemp, buf, + &(xpmPieceBitmap[kind][piece]), + &(ximMaskPm[piece%6])); + } + fprintf(stderr," "); + } + /* Load light and dark squares */ + /* If the LSQ and DSQ pieces don't exist, we will + draw them with solid squares. */ + sprintf(buf, "%s/lsq%u.xim", ExpandPathName(appData.pixmapDirectory), ss); + if (access(buf, 0) != 0) { + useImageSqs = 0; + } else { + useImageSqs = 1; + fprintf(stderr, "light square "); + ximLightSquare= + XGetImage(xDisplay, DefaultRootWindow(xDisplay), + 0, 0, ss, ss, AllPlanes, XYPixmap); + if (appData.debugMode) + fprintf(stderr, "(File:%s:) ", buf); + + loadXIM(ximLightSquare, NULL, buf, &xpmLightSquare, NULL); + fprintf(stderr, "dark square "); + sprintf(buf, "%s/dsq%u.xim", + ExpandPathName(appData.pixmapDirectory), ss); + if (appData.debugMode) + fprintf(stderr, "(File:%s:) ", buf); + ximDarkSquare= + XGetImage(xDisplay, DefaultRootWindow(xDisplay), + 0, 0, ss, ss, AllPlanes, XYPixmap); + loadXIM(ximDarkSquare, NULL, buf, &xpmDarkSquare, NULL); + xpmJailSquare = xpmLightSquare; + } + fprintf(stderr, "Done.\n"); + } + XSynchronize(xDisplay, False); /* Work-around for xlib/xt buffering bug */ +} + +#if HAVE_LIBXPM +void CreateXPMPieces() +{ + int piece, kind, r; + char buf[MSG_SIZ]; + u_int ss = squareSize; + XpmAttributes attr; + static char *xpmkind[] = { "ll", "ld", "dl", "dd" }; + XpmColorSymbol symbols[4]; + +#if 0 + /* Apparently some versions of Xpm don't define XpmFormat at all --tpm */ + if (appData.debugMode) { + fprintf(stderr, "XPM Library Version: %d.%d%c\n", + XpmFormat, XpmVersion, (char)('a' + XpmRevision - 1)); + } +#endif + + /* The XSynchronize calls were copied from CreatePieces. + Not sure if needed, but can't hurt */ + XSynchronize(xDisplay, True); /* Work-around for xlib/xt buffering bug */ + + /* Setup translations so piece colors match square colors */ + symbols[0].name = "light_piece"; + symbols[0].value = appData.whitePieceColor; + symbols[1].name = "dark_piece"; + symbols[1].value = appData.blackPieceColor; + symbols[2].name = "light_square"; + symbols[2].value = appData.lightSquareColor; + symbols[3].name = "dark_square"; + symbols[3].value = appData.darkSquareColor; + + attr.valuemask = XpmColorSymbols; + attr.colorsymbols = symbols; + attr.numsymbols = 4; + + if (appData.monoMode) { + DisplayFatalError("XPM pieces cannot be used in monochrome mode", + 0, 2); + ExitEvent(2); + } + if (strlen(appData.pixmapDirectory) == 0) { + XpmPieces* pieces = builtInXpms; + useImages = 1; + /* Load pieces */ + while (pieces->size != squareSize && pieces->size) pieces++; + if (!pieces->size) { + fprintf(stderr, "No builtin XPM pieces of size %d\n", squareSize); + exit(1); + } + for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) { + for (kind=0; kind<4; kind++) { + + if ((r=XpmCreatePixmapFromData(xDisplay, xBoardWindow, + pieces->xpm[piece][kind], + &(xpmPieceBitmap[kind][piece]), + NULL, &attr)) != 0) { + fprintf(stderr, "Error %d loading XPM image \"%s\"\n", + r, buf); + exit(1); + } + } + } + useImageSqs = 0; + xpmJailSquare = xpmLightSquare; + } else { + useImages = 1; + + fprintf(stderr, "\nLoading XPMs...\n"); + + /* Load pieces */ + for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) { + fprintf(stderr, "%d ", piece+1); + for (kind=0; kind<4; kind++) { + sprintf(buf, "%s/%c%s%u.xpm", + ExpandPathName(appData.pixmapDirectory), + ToLower(PieceToChar((ChessSquare)piece)), + xpmkind[kind], ss); + if (appData.debugMode) { + fprintf(stderr, "(File:%s:) ", buf); + } + if ((r=XpmReadFileToPixmap(xDisplay, xBoardWindow, buf, + &(xpmPieceBitmap[kind][piece]), + NULL, &attr)) != 0) { + fprintf(stderr, "Error %d loading XPM file \"%s\"\n", + r, buf); + exit(1); + } + } + } + /* Load light and dark squares */ + /* If the LSQ and DSQ pieces don't exist, we will + draw them with solid squares. */ + fprintf(stderr, "light square "); + sprintf(buf, "%s/lsq%u.xpm", ExpandPathName(appData.pixmapDirectory), ss); + if (access(buf, 0) != 0) { + useImageSqs = 0; + } else { + useImageSqs = 1; + if (appData.debugMode) + fprintf(stderr, "(File:%s:) ", buf); + + if ((r=XpmReadFileToPixmap(xDisplay, xBoardWindow, buf, + &xpmLightSquare, NULL, &attr)) != 0) { + fprintf(stderr, "Error %d loading XPM file \"%s\"\n", r, buf); + exit(1); + } + fprintf(stderr, "dark square "); + sprintf(buf, "%s/dsq%u.xpm", + ExpandPathName(appData.pixmapDirectory), ss); + if (appData.debugMode) { + fprintf(stderr, "(File:%s:) ", buf); + } + if ((r=XpmReadFileToPixmap(xDisplay, xBoardWindow, buf, + &xpmDarkSquare, NULL, &attr)) != 0) { + fprintf(stderr, "Error %d loading XPM file \"%s\"\n", r, buf); + exit(1); + } + } + xpmJailSquare = xpmLightSquare; + fprintf(stderr, "Done.\n"); + } + XSynchronize(xDisplay, False); /* Work-around for xlib/xt + buffering bug */ +} +#endif /* HAVE_LIBXPM */ + +#if HAVE_LIBXPM +/* No built-in bitmaps */ +void CreatePieces() +{ + int piece, kind; + char buf[MSG_SIZ]; + u_int ss = squareSize; + + XSynchronize(xDisplay, True); /* Work-around for xlib/xt + buffering bug */ + + for (kind = SOLID; kind <= (appData.monoMode ? OUTLINE : SOLID); kind++) { + for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) { + sprintf(buf, "%c%u%c.bm", ToLower(PieceToChar((ChessSquare)piece)), + ss, kind == SOLID ? 's' : 'o'); + ReadBitmap(&pieceBitmap[kind][piece], buf, NULL, ss, ss); + } + } + + XSynchronize(xDisplay, False); /* Work-around for xlib/xt + buffering bug */ +} +#else +/* With built-in bitmaps */ +void CreatePieces() +{ + BuiltInBits* bib = builtInBits; + int piece, kind; + char buf[MSG_SIZ]; + u_int ss = squareSize; + + XSynchronize(xDisplay, True); /* Work-around for xlib/xt + buffering bug */ + + while (bib->squareSize != ss && bib->squareSize != 0) bib++; + + for (kind = SOLID; kind <= (appData.monoMode ? OUTLINE : SOLID); kind++) { + for (piece = (int) WhitePawn; piece <= (int) WhiteKing; piece++) { + sprintf(buf, "%c%u%c.bm", ToLower(PieceToChar((ChessSquare)piece)), + ss, kind == SOLID ? 's' : 'o'); + ReadBitmap(&pieceBitmap[kind][piece], buf, + bib->bits[kind][piece], ss, ss); + } + } + + XSynchronize(xDisplay, False); /* Work-around for xlib/xt + buffering bug */ +} +#endif + +void ReadBitmap(pm, name, bits, wreq, hreq) + Pixmap *pm; + String name; + unsigned char bits[]; + u_int wreq, hreq; +{ + int x_hot, y_hot; + u_int w, h; + int errcode; + char msg[MSG_SIZ], fullname[MSG_SIZ]; + + if (*appData.bitmapDirectory != NULLCHAR) { + strcpy(fullname, appData.bitmapDirectory); + strcat(fullname, "/"); + strcat(fullname, name); + errcode = XReadBitmapFile(xDisplay, xBoardWindow, fullname, + &w, &h, pm, &x_hot, &y_hot); + if (errcode != BitmapSuccess) { + switch (errcode) { + case BitmapOpenFailed: + sprintf(msg, "Can't open bitmap file %s", fullname); + break; + case BitmapFileInvalid: + sprintf(msg, "Invalid bitmap in file %s", fullname); + break; + case BitmapNoMemory: + sprintf(msg, "Ran out of memory reading bitmap file %s", + fullname); + break; + default: + sprintf(msg, "Unknown XReadBitmapFile error %d on file %s", + errcode, fullname); + break; + } + fprintf(stderr, "%s: %s...using built-in\n", + programName, msg); + } else if (w != wreq || h != hreq) { + fprintf(stderr, + "%s: Bitmap %s is %dx%d, not %dx%d...using built-in\n", + programName, fullname, w, h, wreq, hreq); + } else { + return; + } + } + if (bits == NULL) { + fprintf(stderr, "%s: No built-in bitmap for %s; giving up\n", + programName, name); + exit(1); + } else { + *pm = XCreateBitmapFromData(xDisplay, xBoardWindow, (char *) bits, + wreq, hreq); + } +} + +void CreateGrid() +{ + int i; + + if (lineGap == 0) return; + for (i = 0; i < BOARD_SIZE + 1; i++) { + gridSegments[i].x1 = 0; + gridSegments[i].x2 = + lineGap + BOARD_SIZE * (squareSize + lineGap); + gridSegments[i].y1 = gridSegments[i].y2 + = lineGap / 2 + (i * (squareSize + lineGap)); + + gridSegments[i + BOARD_SIZE + 1].y1 = 0; + gridSegments[i + BOARD_SIZE + 1].y2 = + BOARD_SIZE * (squareSize + lineGap); + gridSegments[i + BOARD_SIZE + 1].x1 = + gridSegments[i + BOARD_SIZE + 1].x2 + = lineGap / 2 + (i * (squareSize + lineGap)); + } +} + +static void MenuBarSelect(w, addr, index) + Widget w; + caddr_t addr; + caddr_t index; +{ + XtActionProc proc = (XtActionProc) addr; + + (proc)(NULL, NULL, NULL, NULL); +} + +void CreateMenuBarPopup(parent, name, mb) + Widget parent; + String name; + Menu *mb; +{ + int j; + Widget menu, entry; + MenuItem *mi; + Arg args[16]; + + menu = XtCreatePopupShell(name, simpleMenuWidgetClass, + parent, NULL, 0); + j = 0; + XtSetArg(args[j], XtNleftMargin, 20); j++; + XtSetArg(args[j], XtNrightMargin, 20); j++; + mi = mb->mi; + while (mi->string != NULL) { + if (strcmp(mi->string, "----") == 0) { + entry = XtCreateManagedWidget(mi->string, smeLineObjectClass, + menu, args, j); + } else { + entry = XtCreateManagedWidget(mi->string, smeBSBObjectClass, + menu, args, j); + XtAddCallback(entry, XtNcallback, + (XtCallbackProc) MenuBarSelect, + (caddr_t) mi->proc); + } + mi++; + } +} + +Widget CreateMenuBar(mb) + Menu *mb; +{ + int j; + Widget anchor, menuBar; + Arg args[16]; + char menuName[MSG_SIZ]; + + j = 0; + XtSetArg(args[j], XtNorientation, XtorientHorizontal); j++; + XtSetArg(args[j], XtNvSpace, 0); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + menuBar = XtCreateWidget("menuBar", boxWidgetClass, + formWidget, args, j); + + while (mb->name != NULL) { + strcpy(menuName, "menu"); + strcat(menuName, mb->name); + j = 0; + XtSetArg(args[j], XtNmenuName, XtNewString(menuName)); j++; + if (tinyLayout) { + char shortName[2]; + shortName[0] = mb->name[0]; + shortName[1] = NULLCHAR; + XtSetArg(args[j], XtNlabel, XtNewString(shortName)); j++; + } + XtSetArg(args[j], XtNborderWidth, 0); j++; + anchor = XtCreateManagedWidget(mb->name, menuButtonWidgetClass, + menuBar, args, j); + CreateMenuBarPopup(menuBar, menuName, mb); + mb++; + } + return menuBar; +} + +Widget CreateButtonBar(mi) + MenuItem *mi; +{ + int j; + Widget button, buttonBar; + Arg args[16]; + + j = 0; + XtSetArg(args[j], XtNorientation, XtorientHorizontal); j++; + if (tinyLayout) { + XtSetArg(args[j], XtNhSpace, 0); j++; + } + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNvSpace, 0); j++; + buttonBar = XtCreateWidget("buttonBar", boxWidgetClass, + formWidget, args, j); + + while (mi->string != NULL) { + j = 0; + if (tinyLayout) { + XtSetArg(args[j], XtNinternalWidth, 2); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + } + button = XtCreateManagedWidget(mi->string, commandWidgetClass, + buttonBar, args, j); + XtAddCallback(button, XtNcallback, + (XtCallbackProc) MenuBarSelect, + (caddr_t) mi->proc); + mi++; + } + return buttonBar; +} + +Widget +CreatePieceMenu(name, color) + char *name; + int color; +{ + int i; + Widget entry, menu; + Arg args[16]; + ChessSquare selection; + + menu = XtCreatePopupShell(name, simpleMenuWidgetClass, + boardWidget, args, 0); + + for (i = 0; i < PIECE_MENU_SIZE; i++) { + String item = pieceMenuStrings[color][i]; + + if (strcmp(item, "----") == 0) { + entry = XtCreateManagedWidget(item, smeLineObjectClass, + menu, NULL, 0); + } else { + entry = XtCreateManagedWidget(item, smeBSBObjectClass, + menu, NULL, 0); + selection = pieceMenuTranslation[color][i]; + XtAddCallback(entry, XtNcallback, + (XtCallbackProc) PieceMenuSelect, + (caddr_t) selection); + if (selection == WhitePawn || selection == BlackPawn) { + XtSetArg(args[0], XtNpopupOnEntry, entry); + XtSetValues(menu, args, 1); + } + } + } + return menu; +} + +void +CreatePieceMenus() +{ + int i; + Widget entry; + Arg args[16]; + ChessSquare selection; + + whitePieceMenu = CreatePieceMenu("menuW", 0); + blackPieceMenu = CreatePieceMenu("menuB", 1); + + XtRegisterGrabAction(PieceMenuPopup, True, + (unsigned)(ButtonPressMask|ButtonReleaseMask), + GrabModeAsync, GrabModeAsync); + + XtSetArg(args[0], XtNlabel, "Drop"); + dropMenu = XtCreatePopupShell("menuD", simpleMenuWidgetClass, + boardWidget, args, 1); + for (i = 0; i < DROP_MENU_SIZE; i++) { + String item = dropMenuStrings[i]; + + if (strcmp(item, "----") == 0) { + entry = XtCreateManagedWidget(item, smeLineObjectClass, + dropMenu, NULL, 0); + } else { + entry = XtCreateManagedWidget(item, smeBSBObjectClass, + dropMenu, NULL, 0); + selection = dropMenuTranslation[i]; + XtAddCallback(entry, XtNcallback, + (XtCallbackProc) DropMenuSelect, + (caddr_t) selection); + } + } +} + +void SetupDropMenu() +{ + int i, j, count; + char label[32]; + Arg args[16]; + Widget entry; + char* p; + + for (i=0; itype != ButtonPress) return; + if (errorUp) ErrorPopDown(); + switch (gameMode) { + case EditPosition: + case IcsExamining: + whichMenu = params[0]; + break; + case IcsPlayingWhite: + case IcsPlayingBlack: + case EditGame: + case MachinePlaysWhite: + case MachinePlaysBlack: + if (appData.testLegality && + gameInfo.variant != VariantBughouse && + gameInfo.variant != VariantCrazyhouse) return; + SetupDropMenu(); + whichMenu = "menuD"; + break; + default: + return; + } + + if (((pmFromX = EventToSquare(event->xbutton.x, BOARD_SIZE)) < 0) || + ((pmFromY = EventToSquare(event->xbutton.y, BOARD_SIZE)) < 0)) { + pmFromX = pmFromY = -1; + return; + } + if (flipView) + pmFromX = BOARD_SIZE - 1 - pmFromX; + else + pmFromY = BOARD_SIZE - 1 - pmFromY; + + XtPopupSpringLoaded(XtNameToWidget(boardWidget, whichMenu)); +} + +static void PieceMenuSelect(w, piece, junk) + Widget w; + ChessSquare piece; + caddr_t junk; +{ + if (pmFromX < 0 || pmFromY < 0) return; + EditPositionMenuEvent(piece, pmFromX, pmFromY); +} + +static void DropMenuSelect(w, piece, junk) + Widget w; + ChessSquare piece; + caddr_t junk; +{ + if (pmFromX < 0 || pmFromY < 0) return; + DropMenuEvent(piece, pmFromX, pmFromY); +} + +void WhiteClock(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (gameMode == EditPosition || gameMode == IcsExamining) { + SetWhiteToPlayEvent(); + } else if (gameMode == IcsPlayingBlack || gameMode == MachinePlaysWhite) { + CallFlagEvent(); + } +} + +void BlackClock(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (gameMode == EditPosition || gameMode == IcsExamining) { + SetBlackToPlayEvent(); + } else if (gameMode == IcsPlayingWhite || gameMode == MachinePlaysBlack) { + CallFlagEvent(); + } +} + + +/* + * If the user selects on a border boundary, return -1; if off the board, + * return -2. Otherwise map the event coordinate to the square. + */ +int EventToSquare(x, limit) + int x; +{ + if (x <= 0) + return -2; + if (x < lineGap) + return -1; + x -= lineGap; + if ((x % (squareSize + lineGap)) >= squareSize) + return -1; + x /= (squareSize + lineGap); + if (x >= limit) + return -2; + return x; +} + +static void do_flash_delay(msec) + unsigned long msec; +{ + TimeDelay(msec); +} + +static void drawHighlight(file, rank, gc) + int file, rank; + GC gc; +{ + int x, y; + + if (lineGap == 0 || appData.blindfold) return; + + if (flipView) { + x = lineGap/2 + ((BOARD_SIZE-1)-file) * + (squareSize + lineGap); + y = lineGap/2 + rank * (squareSize + lineGap); + } else { + x = lineGap/2 + file * (squareSize + lineGap); + y = lineGap/2 + ((BOARD_SIZE-1)-rank) * + (squareSize + lineGap); + } + + XDrawRectangle(xDisplay, xBoardWindow, gc, x, y, + squareSize+lineGap, squareSize+lineGap); +} + +int hi1X = -1, hi1Y = -1, hi2X = -1, hi2Y = -1; +int pm1X = -1, pm1Y = -1, pm2X = -1, pm2Y = -1; + +void +SetHighlights(fromX, fromY, toX, toY) + int fromX, fromY, toX, toY; +{ + if (hi1X != fromX || hi1Y != fromY) { + if (hi1X >= 0 && hi1Y >= 0) { + drawHighlight(hi1X, hi1Y, lineGC); + } + if (fromX >= 0 && fromY >= 0) { + drawHighlight(fromX, fromY, highlineGC); + } + } + if (hi2X != toX || hi2Y != toY) { + if (hi2X >= 0 && hi2Y >= 0) { + drawHighlight(hi2X, hi2Y, lineGC); + } + if (toX >= 0 && toY >= 0) { + drawHighlight(toX, toY, highlineGC); + } + } + hi1X = fromX; + hi1Y = fromY; + hi2X = toX; + hi2Y = toY; +} + +void +ClearHighlights() +{ + SetHighlights(-1, -1, -1, -1); +} + + +void +SetPremoveHighlights(fromX, fromY, toX, toY) + int fromX, fromY, toX, toY; +{ + if (pm1X != fromX || pm1Y != fromY) { + if (pm1X >= 0 && pm1Y >= 0) { + drawHighlight(pm1X, pm1Y, lineGC); + } + if (fromX >= 0 && fromY >= 0) { + drawHighlight(fromX, fromY, prelineGC); + } + } + if (pm2X != toX || pm2Y != toY) { + if (pm2X >= 0 && pm2Y >= 0) { + drawHighlight(pm2X, pm2Y, lineGC); + } + if (toX >= 0 && toY >= 0) { + drawHighlight(toX, toY, prelineGC); + } + } + pm1X = fromX; + pm1Y = fromY; + pm2X = toX; + pm2Y = toY; +} + +void +ClearPremoveHighlights() +{ + SetPremoveHighlights(-1, -1, -1, -1); +} + +static void BlankSquare(x, y, color, piece, dest) + int x, y, color; + ChessSquare piece; + Drawable dest; +{ + if (useImages && useImageSqs) { + Pixmap pm; + switch (color) { + case 1: /* light */ + pm = xpmLightSquare; + break; + case 0: /* dark */ + pm = xpmDarkSquare; + break; + case 2: /* neutral */ + default: + pm = xpmJailSquare; + break; + } + XCopyArea(xDisplay, pm, dest, wlPieceGC, 0, 0, + squareSize, squareSize, x, y); + } else { + GC gc; + switch (color) { + case 1: /* light */ + gc = lightSquareGC; + break; + case 0: /* dark */ + gc = darkSquareGC; + break; + case 2: /* neutral */ + default: + gc = jailSquareGC; + break; + } + XFillRectangle(xDisplay, dest, gc, x, y, squareSize, squareSize); + } +} + +/* + I split out the routines to draw a piece so that I could + make a generic flash routine. +*/ +static void monoDrawPiece_1bit(piece, square_color, x, y, dest) + ChessSquare piece; + int square_color, x, y; + Drawable dest; +{ + /* Avoid XCopyPlane on 1-bit screens to work around Sun bug */ + switch (square_color) { + case 1: /* light */ + case 2: /* neutral */ + default: + XCopyArea(xDisplay, (int) piece < (int) BlackPawn + ? *pieceToOutline(piece) + : *pieceToSolid(piece), + dest, bwPieceGC, 0, 0, + squareSize, squareSize, x, y); + break; + case 0: /* dark */ + XCopyArea(xDisplay, (int) piece < (int) BlackPawn + ? *pieceToSolid(piece) + : *pieceToOutline(piece), + dest, wbPieceGC, 0, 0, + squareSize, squareSize, x, y); + break; + } +} + +static void monoDrawPiece(piece, square_color, x, y, dest) + ChessSquare piece; + int square_color, x, y; + Drawable dest; +{ + switch (square_color) { + case 1: /* light */ + case 2: /* neutral */ + default: + XCopyPlane(xDisplay, (int) piece < (int) BlackPawn + ? *pieceToOutline(piece) + : *pieceToSolid(piece), + dest, bwPieceGC, 0, 0, + squareSize, squareSize, x, y, 1); + break; + case 0: /* dark */ + XCopyPlane(xDisplay, (int) piece < (int) BlackPawn + ? *pieceToSolid(piece) + : *pieceToOutline(piece), + dest, wbPieceGC, 0, 0, + squareSize, squareSize, x, y, 1); + break; + } +} + +static void colorDrawPiece(piece, square_color, x, y, dest) + ChessSquare piece; + int square_color, x, y; + Drawable dest; +{ + switch (square_color) { + case 1: /* light */ + XCopyPlane(xDisplay, *pieceToSolid(piece), + dest, (int) piece < (int) BlackPawn + ? wlPieceGC : blPieceGC, 0, 0, + squareSize, squareSize, x, y, 1); + break; + case 0: /* dark */ + XCopyPlane(xDisplay, *pieceToSolid(piece), + dest, (int) piece < (int) BlackPawn + ? wdPieceGC : bdPieceGC, 0, 0, + squareSize, squareSize, x, y, 1); + break; + case 2: /* neutral */ + default: + XCopyPlane(xDisplay, *pieceToSolid(piece), + dest, (int) piece < (int) BlackPawn + ? wjPieceGC : bjPieceGC, 0, 0, + squareSize, squareSize, x, y, 1); + break; + } +} + +static void colorDrawPieceImage(piece, square_color, x, y, dest) + ChessSquare piece; + int square_color, x, y; + Drawable dest; +{ + int kind; + + switch (square_color) { + case 1: /* light */ + case 2: /* neutral */ + default: + if ((int)piece < (int) BlackPawn) { + kind = 0; + } else { + kind = 2; + piece -= BlackPawn; + } + break; + case 0: /* dark */ + if ((int)piece < (int) BlackPawn) { + kind = 1; + } else { + kind = 3; + piece -= BlackPawn; + } + break; + } + XCopyArea(xDisplay, xpmPieceBitmap[kind][piece], + dest, wlPieceGC, 0, 0, + squareSize, squareSize, x, y); +} + +typedef void (*DrawFunc)(); + +DrawFunc ChooseDrawFunc() +{ + if (appData.monoMode) { + if (DefaultDepth(xDisplay, xScreen) == 1) { + return monoDrawPiece_1bit; + } else { + return monoDrawPiece; + } + } else { + if (useImages) + return colorDrawPieceImage; + else + return colorDrawPiece; + } +} + +void DrawSquare(row, column, piece, do_flash) + int row, column, do_flash; + ChessSquare piece; +{ + int square_color, x, y, direction, font_ascent, font_descent; + int i; + char string[2]; + XCharStruct overall; + DrawFunc drawfunc; + int flash_delay; + + /* Calculate delay in milliseconds (2-delays per complete flash) */ + flash_delay = 500 / appData.flashRate; + + if (flipView) { + x = lineGap + ((BOARD_SIZE-1)-column) * + (squareSize + lineGap); + y = lineGap + row * (squareSize + lineGap); + } else { + x = lineGap + column * (squareSize + lineGap); + y = lineGap + ((BOARD_SIZE-1)-row) * + (squareSize + lineGap); + } + + square_color = ((column + row) % 2) == 1; + + if (piece == EmptySquare || appData.blindfold) { + BlankSquare(x, y, square_color, piece, xBoardWindow); + } else { + drawfunc = ChooseDrawFunc(); + if (do_flash && appData.flashCount > 0) { + for (i=0; itype) { + case Expose: + if (event->xexpose.count > 0) return; /* no clipping is done */ + XDrawPosition(widget, True, NULL); + break; + default: + return; + } +} +/* end why */ + +void DrawPosition(fullRedraw, board) + /*Boolean*/int fullRedraw; + Board board; +{ + XDrawPosition(boardWidget, fullRedraw, board); +} + +/* Returns 1 if there are "too many" differences between b1 and b2 + (i.e. more than 1 move was made) */ +static int too_many_diffs(b1, b2) + Board b1, b2; +{ + int i, j; + int c = 0; + + for (i=0; i 4) /* Castling causes 4 diffs */ + return 1; + } + } + } + + return 0; +} + +/* Matrix describing castling maneuvers */ +/* Row, ColRookFrom, ColKingFrom, ColRookTo, ColKingTo */ +static int castling_matrix[4][5] = { + { 0, 0, 4, 3, 2 }, /* 0-0-0, white */ + { 0, 7, 4, 5, 6 }, /* 0-0, white */ + { 7, 0, 4, 3, 2 }, /* 0-0-0, black */ + { 7, 7, 4, 5, 6 } /* 0-0, black */ +}; + +/* Checks whether castling occurred. If it did, *rrow and *rcol + are set to the destination (row,col) of the rook that moved. + + Returns 1 if castling occurred, 0 if not. + + Note: Only handles a max of 1 castling move, so be sure + to call too_many_diffs() first. + */ +static int check_castle_draw(newb, oldb, rrow, rcol) + Board newb, oldb; + int *rrow, *rcol; +{ + int i, *r, j; + int match; + + /* For each type of castling... */ + for (i=0; i<4; ++i) { + r = castling_matrix[i]; + + /* Check the 4 squares involved in the castling move */ + match = 0; + for (j=1; j<=4; ++j) { + if (newb[r[0]][r[j]] == oldb[r[0]][r[j]]) { + match = 1; + break; + } + } + + if (!match) { + /* All 4 changed, so it must be a castling move */ + *rrow = r[0]; + *rcol = r[3]; + return 1; + } + } + return 0; +} + +static int damage[BOARD_SIZE][BOARD_SIZE]; + +/* + * event handler for redrawing the board + */ +void XDrawPosition(w, repaint, board) + Widget w; + /*Boolean*/int repaint; + Board board; +{ + int i, j, do_flash; + static int lastFlipView = 0; + static int lastBoardValid = 0; + static Board lastBoard; + Arg args[16]; + int rrow, rcol; + + if (board == NULL) { + if (!lastBoardValid) return; + board = lastBoard; + } + if (!lastBoardValid || lastFlipView != flipView) { + XtSetArg(args[0], XtNleftBitmap, (flipView ? xMarkPixmap : None)); + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Flip View"), + args, 1); + } + + /* + * It would be simpler to clear the window with XClearWindow() + * but this causes a very distracting flicker. + */ + + if (!repaint && lastBoardValid && lastFlipView == flipView) { + + /* If too much changes (begin observing new game, etc.), don't + do flashing */ + do_flash = too_many_diffs(board, lastBoard) ? 0 : 1; + + /* Special check for castling so we don't flash both the king + and the rook (just flash the king). */ + if (do_flash) { + if (check_castle_draw(board, lastBoard, &rrow, &rcol)) { + /* Draw rook with NO flashing. King will be drawn flashing later */ + DrawSquare(rrow, rcol, board[rrow][rcol], 0); + lastBoard[rrow][rcol] = board[rrow][rcol]; + } + } + + /* First pass -- Draw (newly) empty squares and repair damage. + This prevents you from having a piece show up twice while it + is flashing on its new square */ + for (i = 0; i < BOARD_SIZE; i++) + for (j = 0; j < BOARD_SIZE; j++) + if ((board[i][j] != lastBoard[i][j] && board[i][j] == EmptySquare) + || damage[i][j]) { + DrawSquare(i, j, board[i][j], 0); + damage[i][j] = False; + } + + /* Second pass -- Draw piece(s) in new position and flash them */ + for (i = 0; i < BOARD_SIZE; i++) + for (j = 0; j < BOARD_SIZE; j++) + if (board[i][j] != lastBoard[i][j]) { + DrawSquare(i, j, board[i][j], do_flash); + } + } else { + if (lineGap > 0) + XDrawSegments(xDisplay, xBoardWindow, lineGC, + gridSegments, (BOARD_SIZE + 1) * 2); + + for (i = 0; i < BOARD_SIZE; i++) + for (j = 0; j < BOARD_SIZE; j++) { + DrawSquare(i, j, board[i][j], 0); + damage[i][j] = False; + } + } + + CopyBoard(lastBoard, board); + lastBoardValid = 1; + lastFlipView = flipView; + + /* Draw highlights */ + if (pm1X >= 0 && pm1Y >= 0) { + drawHighlight(pm1X, pm1Y, prelineGC); + } + if (pm2X >= 0 && pm2Y >= 0) { + drawHighlight(pm2X, pm2Y, prelineGC); + } + if (hi1X >= 0 && hi1Y >= 0) { + drawHighlight(hi1X, hi1Y, highlineGC); + } + if (hi2X >= 0 && hi2Y >= 0) { + drawHighlight(hi2X, hi2Y, highlineGC); + } + + /* If piece being dragged around board, must redraw that too */ + DrawDragPiece(); + + XSync(xDisplay, False); +} + + +/* + * event handler for redrawing the board + */ +void DrawPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + XDrawPosition(w, True, NULL); +} + + +/* + * event handler for parsing user moves + */ +void HandleUserMove(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + int x, y; + Boolean saveAnimate; + static int second = 0; + + if (w != boardWidget || errorExitStatus != -1) return; + + if (event->type == ButtonPress) ErrorPopDown(); + + if (promotionUp) { + if (event->type == ButtonPress) { + XtPopdown(promotionShell); + XtDestroyWidget(promotionShell); + promotionUp = False; + ClearHighlights(); + fromX = fromY = -1; + } else { + return; + } + } + + x = EventToSquare(event->xbutton.x, BOARD_SIZE); + y = EventToSquare(event->xbutton.y, BOARD_SIZE); + if (!flipView && y >= 0) { + y = BOARD_SIZE - 1 - y; + } + if (flipView && x >= 0) { + x = BOARD_SIZE - 1 - x; + } + + if (fromX == -1) { + if (event->type == ButtonPress) { + /* First square */ + if (OKToStartUserMove(x, y)) { + fromX = x; + fromY = y; + second = 0; + DragPieceBegin(event->xbutton.x, event->xbutton.y); + if (appData.highlightDragging) { + SetHighlights(x, y, -1, -1); + } + } + } + return; + } + + /* fromX != -1 */ + if (event->type == ButtonPress && gameMode != EditPosition && + x >= 0 && y >= 0) { + ChessSquare fromP; + ChessSquare toP; + /* Check if clicking again on the same color piece */ + fromP = boards[currentMove][fromY][fromX]; + toP = boards[currentMove][y][x]; + if ((WhitePawn <= fromP && fromP <= WhiteKing && + WhitePawn <= toP && toP <= WhiteKing) || + (BlackPawn <= fromP && fromP <= BlackKing && + BlackPawn <= toP && toP <= BlackKing)) { + /* Clicked again on same color piece -- changed his mind */ + second = (x == fromX && y == fromY); + if (appData.highlightDragging) { + SetHighlights(x, y, -1, -1); + } else { + ClearHighlights(); + } + if (OKToStartUserMove(x, y)) { + fromX = x; + fromY = y; + DragPieceBegin(event->xbutton.x, event->xbutton.y); + } + return; + } + } + + if (event->type == ButtonRelease && x == fromX && y == fromY) { + DragPieceEnd(event->xbutton.x, event->xbutton.y); + if (appData.animateDragging) { + /* Undo animation damage if any */ + DrawPosition(FALSE, NULL); + } + if (second) { + /* Second up/down in same square; just abort move */ + second = 0; + fromX = fromY = -1; + ClearHighlights(); + gotPremove = 0; + ClearPremoveHighlights(); + } else { + /* First upclick in same square; start click-click mode */ + SetHighlights(x, y, -1, -1); + } + return; + } + + /* Completed move */ + toX = x; + toY = y; + saveAnimate = appData.animate; + if (event->type == ButtonPress) { + /* Finish clickclick move */ + if (appData.animate || appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } else { + ClearHighlights(); + } + } else { + /* Finish drag move */ + if (appData.highlightLastMove) { + SetHighlights(fromX, fromY, toX, toY); + } else { + ClearHighlights(); + } + DragPieceEnd(event->xbutton.x, event->xbutton.y); + /* Don't animate move and drag both */ + appData.animate = FALSE; + } + if (IsPromotion(fromX, fromY, toX, toY)) { + if (appData.alwaysPromoteToQueen) { + UserMoveEvent(fromX, fromY, toX, toY, 'q'); + if (!appData.highlightLastMove || gotPremove) ClearHighlights(); + if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY); + fromX = fromY = -1; + } else { + SetHighlights(fromX, fromY, toX, toY); + PromotionPopUp(); + } + } else { + UserMoveEvent(fromX, fromY, toX, toY, NULLCHAR); + if (!appData.highlightLastMove || gotPremove) ClearHighlights(); + if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY); + fromX = fromY = -1; + } + appData.animate = saveAnimate; + if (appData.animate || appData.animateDragging) { + /* Undo animation damage if needed */ + DrawPosition(FALSE, NULL); + } +} + +void AnimateUserMove (Widget w, XEvent * event, + String * params, Cardinal * nParams) +{ + DragPieceMove(event->xmotion.x, event->xmotion.y); +} + +Widget CommentCreate(name, text, mutable, callback, lines) + char *name, *text; + int /*Boolean*/ mutable; + XtCallbackProc callback; + int lines; +{ + Arg args[16]; + Widget shell, layout, form, edit, b_ok, b_cancel, b_clear, b_close, b_edit; + Dimension bw_width; + int j; + + j = 0; + XtSetArg(args[j], XtNwidth, &bw_width); j++; + XtGetValues(boardWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; +#if TOPLEVEL + shell = + XtCreatePopupShell(name, topLevelShellWidgetClass, + shellWidget, args, j); +#else + shell = + XtCreatePopupShell(name, transientShellWidgetClass, + shellWidget, args, j); +#endif + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, shell, + layoutArgs, XtNumber(layoutArgs)); + form = + XtCreateManagedWidget("form", formWidgetClass, layout, + formArgs, XtNumber(formArgs)); + + j = 0; + if (mutable) { + XtSetArg(args[j], XtNeditType, XawtextEdit); j++; + XtSetArg(args[j], XtNuseStringInPlace, False); j++; + } + XtSetArg(args[j], XtNstring, text); j++; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainRight); j++; + XtSetArg(args[j], XtNresizable, True); j++; + XtSetArg(args[j], XtNwidth, bw_width); j++; /*force wider than buttons*/ +#if 0 + XtSetArg(args[j], XtNscrollVertical, XawtextScrollWhenNeeded); j++; +#else + /* !!Work around an apparent bug in XFree86 4.0.1 (X11R6.4.3) */ + XtSetArg(args[j], XtNscrollVertical, XawtextScrollAlways); j++; +#endif + XtSetArg(args[j], XtNautoFill, True); j++; + XtSetArg(args[j], XtNwrap, XawtextWrapWord); j++; + edit = + XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j); + + if (mutable) { + j = 0; + XtSetArg(args[j], XtNfromVert, edit); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_ok = + XtCreateManagedWidget("ok", commandWidgetClass, form, args, j); + XtAddCallback(b_ok, XtNcallback, callback, (XtPointer) 0); + + j = 0; + XtSetArg(args[j], XtNfromVert, edit); j++; + XtSetArg(args[j], XtNfromHoriz, b_ok); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_cancel = + XtCreateManagedWidget("cancel", commandWidgetClass, form, args, j); + XtAddCallback(b_cancel, XtNcallback, callback, (XtPointer) 0); + + j = 0; + XtSetArg(args[j], XtNfromVert, edit); j++; + XtSetArg(args[j], XtNfromHoriz, b_cancel); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_clear = + XtCreateManagedWidget("clear", commandWidgetClass, form, args, j); + XtAddCallback(b_clear, XtNcallback, callback, (XtPointer) 0); + } else { + j = 0; + XtSetArg(args[j], XtNfromVert, edit); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_close = + XtCreateManagedWidget("close", commandWidgetClass, form, args, j); + XtAddCallback(b_close, XtNcallback, callback, (XtPointer) 0); + + j = 0; + XtSetArg(args[j], XtNfromVert, edit); j++; + XtSetArg(args[j], XtNfromHoriz, b_close); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_edit = + XtCreateManagedWidget("edit", commandWidgetClass, form, args, j); + XtAddCallback(b_edit, XtNcallback, callback, (XtPointer) 0); + } + + XtRealizeWidget(shell); + + if (commentX == -1) { + int xx, yy; + Window junk; + Dimension pw_height; + Dimension ew_height; + + j = 0; + XtSetArg(args[j], XtNheight, &ew_height); j++; + XtGetValues(edit, args, j); + + j = 0; + XtSetArg(args[j], XtNheight, &pw_height); j++; + XtGetValues(shell, args, j); + commentH = pw_height + (lines - 1) * ew_height; + commentW = bw_width - 16; + + XSync(xDisplay, False); +#ifdef NOTDEF + /* This code seems to tickle an X bug if it is executed too soon + after xboard starts up. The coordinates get transformed as if + the main window was positioned at (0, 0). + */ + XtTranslateCoords(shellWidget, + (bw_width - commentW) / 2, 0 - commentH / 2, + &commentX, &commentY); +#else /*!NOTDEF*/ + XTranslateCoordinates(xDisplay, XtWindow(shellWidget), + RootWindowOfScreen(XtScreen(shellWidget)), + (bw_width - commentW) / 2, 0 - commentH / 2, + &xx, &yy, &junk); + commentX = xx; + commentY = yy; +#endif /*!NOTDEF*/ + if (commentY < 0) commentY = 0; /*avoid positioning top offscreen*/ + } + j = 0; + XtSetArg(args[j], XtNheight, commentH); j++; + XtSetArg(args[j], XtNwidth, commentW); j++; + XtSetArg(args[j], XtNx, commentX); j++; + XtSetArg(args[j], XtNy, commentY); j++; + XtSetValues(shell, args, j); + XtSetKeyboardFocus(shell, edit); + + return shell; +} + +/* Used for analysis window and ICS input window */ +Widget MiscCreate(name, text, mutable, callback, lines) + char *name, *text; + int /*Boolean*/ mutable; + XtCallbackProc callback; + int lines; +{ + Arg args[16]; + Widget shell, layout, form, edit; + Position x, y; + Dimension bw_width, pw_height, ew_height, w, h; + int j; + int xx, yy; + Window junk; + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; +#if TOPLEVEL + shell = + XtCreatePopupShell(name, topLevelShellWidgetClass, + shellWidget, args, j); +#else + shell = + XtCreatePopupShell(name, transientShellWidgetClass, + shellWidget, args, j); +#endif + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, shell, + layoutArgs, XtNumber(layoutArgs)); + form = + XtCreateManagedWidget("form", formWidgetClass, layout, + formArgs, XtNumber(formArgs)); + + j = 0; + if (mutable) { + XtSetArg(args[j], XtNeditType, XawtextEdit); j++; + XtSetArg(args[j], XtNuseStringInPlace, False); j++; + } + XtSetArg(args[j], XtNstring, text); j++; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainRight); j++; + XtSetArg(args[j], XtNresizable, True); j++; +#if 0 + XtSetArg(args[j], XtNscrollVertical, XawtextScrollWhenNeeded); j++; +#else + /* !!Work around an apparent bug in XFree86 4.0.1 (X11R6.4.3) */ + XtSetArg(args[j], XtNscrollVertical, XawtextScrollAlways); j++; +#endif + XtSetArg(args[j], XtNautoFill, True); j++; + XtSetArg(args[j], XtNwrap, XawtextWrapWord); j++; + edit = + XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j); + + XtRealizeWidget(shell); + + j = 0; + XtSetArg(args[j], XtNwidth, &bw_width); j++; + XtGetValues(boardWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNheight, &ew_height); j++; + XtGetValues(edit, args, j); + + j = 0; + XtSetArg(args[j], XtNheight, &pw_height); j++; + XtGetValues(shell, args, j); + h = pw_height + (lines - 1) * ew_height; + w = bw_width - 16; + + XSync(xDisplay, False); +#ifdef NOTDEF + /* This code seems to tickle an X bug if it is executed too soon + after xboard starts up. The coordinates get transformed as if + the main window was positioned at (0, 0). + */ + XtTranslateCoords(shellWidget, (bw_width - w) / 2, 0 - h / 2, &x, &y); +#else /*!NOTDEF*/ + XTranslateCoordinates(xDisplay, XtWindow(shellWidget), + RootWindowOfScreen(XtScreen(shellWidget)), + (bw_width - w) / 2, 0 - h / 2, &xx, &yy, &junk); +#endif /*!NOTDEF*/ + x = xx; + y = yy; + if (y < 0) y = 0; /*avoid positioning top offscreen*/ + + j = 0; + XtSetArg(args[j], XtNheight, h); j++; + XtSetArg(args[j], XtNwidth, w); j++; + XtSetArg(args[j], XtNx, x); j++; + XtSetArg(args[j], XtNy, y); j++; + XtSetValues(shell, args, j); + + return shell; +} + + +static int savedIndex; /* gross that this is global */ + +void EditCommentPopUp(index, title, text) + int index; + char *title, *text; +{ + Widget edit; + Arg args[16]; + int j; + + savedIndex = index; + if (text == NULL) text = ""; + + if (editShell == NULL) { + editShell = + CommentCreate(title, text, True, EditCommentCallback, 4); + XtRealizeWidget(editShell); + CatchDeleteWindow(editShell, "EditCommentPopDown"); + } else { + edit = XtNameToWidget(editShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, text); j++; + XtSetValues(edit, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++; + XtSetValues(editShell, args, j); + } + + XtPopup(editShell, XtGrabNone); + + editUp = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Edit Comment"), + args, j); +} + +void EditCommentCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name, val; + Arg args[16]; + int j; + Widget edit; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, "ok") == 0) { + edit = XtNameToWidget(editShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, &val); j++; + XtGetValues(edit, args, j); + ReplaceComment(savedIndex, val); + EditCommentPopDown(); + } else if (strcmp(name, "cancel") == 0) { + EditCommentPopDown(); + } else if (strcmp(name, "clear") == 0) { + edit = XtNameToWidget(editShell, "*form.text"); + XtCallActionProc(edit, "select-all", NULL, NULL, 0); + XtCallActionProc(edit, "kill-selection", NULL, NULL, 0); + } +} + +void EditCommentPopDown() +{ + Arg args[16]; + int j; + + if (!editUp) return; + j = 0; + XtSetArg(args[j], XtNx, &commentX); j++; + XtSetArg(args[j], XtNy, &commentY); j++; + XtSetArg(args[j], XtNheight, &commentH); j++; + XtSetArg(args[j], XtNwidth, &commentW); j++; + XtGetValues(editShell, args, j); + XtPopdown(editShell); + editUp = False; + j = 0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Edit Comment"), + args, j); +} + +void ICSInputBoxPopUp() +{ + Widget edit; + Arg args[16]; + int j; + char *title = "ICS Input"; + XtTranslations tr; + + if (ICSInputShell == NULL) { + ICSInputShell = MiscCreate(title, "", True, NULL, 1); + tr = XtParseTranslationTable(ICSInputTranslations); + edit = XtNameToWidget(ICSInputShell, "*form.text"); + XtOverrideTranslations(edit, tr); + XtRealizeWidget(ICSInputShell); + CatchDeleteWindow(ICSInputShell, "ICSInputBoxPopDown"); + + } else { + edit = XtNameToWidget(ICSInputShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, ""); j++; + XtSetValues(edit, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++; + XtSetValues(ICSInputShell, args, j); + } + + XtPopup(ICSInputShell, XtGrabNone); + XtSetKeyboardFocus(ICSInputShell, edit); + + ICSInputBoxUp = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.ICS Input Box"), + args, j); +} + +void ICSInputSendText() +{ + Widget edit; + int j; + Arg args[16]; + String val; + + edit = XtNameToWidget(ICSInputShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, &val); j++; + XtGetValues(edit, args, j); + SendMultiLineToICS(val); + XtCallActionProc(edit, "select-all", NULL, NULL, 0); + XtCallActionProc(edit, "kill-selection", NULL, NULL, 0); +} + +void ICSInputBoxPopDown() +{ + Arg args[16]; + int j; + + if (!ICSInputBoxUp) return; + j = 0; + XtPopdown(ICSInputShell); + ICSInputBoxUp = False; + j = 0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.ICS Input Box"), + args, j); +} + +void CommentPopUp(title, text) + char *title, *text; +{ + Arg args[16]; + int j; + Widget edit; + + if (commentShell == NULL) { + commentShell = + CommentCreate(title, text, False, CommentCallback, 4); + XtRealizeWidget(commentShell); + CatchDeleteWindow(commentShell, "CommentPopDown"); + } else { + edit = XtNameToWidget(commentShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, text); j++; + XtSetValues(edit, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++; + XtSetValues(commentShell, args, j); + } + + XtPopup(commentShell, XtGrabNone); + XSync(xDisplay, False); + + commentUp = True; +} + +void AnalysisPopUp(title, text) + char *title, *text; +{ + Arg args[16]; + int j; + Widget edit; + + if (analysisShell == NULL) { + analysisShell = MiscCreate(title, text, False, NULL, 4); + XtRealizeWidget(analysisShell); + CatchDeleteWindow(analysisShell, "AnalysisPopDown"); + + } else { + edit = XtNameToWidget(analysisShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, text); j++; + XtSetValues(edit, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) title); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) title); j++; + XtSetValues(analysisShell, args, j); + } + + if (!analysisUp) { + XtPopup(analysisShell, XtGrabNone); + } + XSync(xDisplay, False); + + analysisUp = True; +} + +void CommentCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + int j; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, "close") == 0) { + CommentPopDown(); + } else if (strcmp(name, "edit") == 0) { + CommentPopDown(); + EditCommentEvent(); + } +} + + +void CommentPopDown() +{ + Arg args[16]; + int j; + + if (!commentUp) return; + j = 0; + XtSetArg(args[j], XtNx, &commentX); j++; + XtSetArg(args[j], XtNy, &commentY); j++; + XtSetArg(args[j], XtNwidth, &commentW); j++; + XtSetArg(args[j], XtNheight, &commentH); j++; + XtGetValues(commentShell, args, j); + XtPopdown(commentShell); + XSync(xDisplay, False); + commentUp = False; +} + +void AnalysisPopDown() +{ + if (!analysisUp) return; + XtPopdown(analysisShell); + XSync(xDisplay, False); + analysisUp = False; +} + + +void FileNamePopUp(label, def, proc, openMode) + char *label; + char *def; + FileProc proc; + char *openMode; +{ + Arg args[16]; + Widget popup, layout, dialog, edit; + Window root, child; + int x, y, i; + int win_x, win_y; + unsigned int mask; + + fileProc = proc; /* I can't see a way not */ + fileOpenMode = openMode; /* to use globals here */ + + i = 0; + XtSetArg(args[i], XtNresizable, True); i++; + XtSetArg(args[i], XtNwidth, DIALOG_SIZE); i++; + fileNameShell = popup = + XtCreatePopupShell("File name prompt", transientShellWidgetClass, + shellWidget, args, i); + + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, popup, + layoutArgs, XtNumber(layoutArgs)); + + i = 0; + XtSetArg(args[i], XtNlabel, label); i++; + XtSetArg(args[i], XtNvalue, def); i++; + XtSetArg(args[i], XtNborderWidth, 0); i++; + dialog = XtCreateManagedWidget("fileName", dialogWidgetClass, + layout, args, i); + + XawDialogAddButton(dialog, "ok", FileNameCallback, (XtPointer) dialog); + XawDialogAddButton(dialog, "cancel", FileNameCallback, + (XtPointer) dialog); + + XtRealizeWidget(popup); + CatchDeleteWindow(popup, "FileNamePopDown"); + + XQueryPointer(xDisplay, xBoardWindow, &root, &child, + &x, &y, &win_x, &win_y, &mask); + + XtSetArg(args[0], XtNx, x - 10); + XtSetArg(args[1], XtNy, y - 30); + XtSetValues(popup, args, 2); + + XtPopup(popup, XtGrabExclusive); + filenameUp = True; + + edit = XtNameToWidget(dialog, "*value"); + XtSetKeyboardFocus(popup, edit); +} + +void FileNamePopDown() +{ + if (!filenameUp) return; + XtPopdown(fileNameShell); + XtDestroyWidget(fileNameShell); + filenameUp = False; + ModeHighlight(); +} + +void FileNameCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + + XtSetArg(args[0], XtNlabel, &name); + XtGetValues(w, args, 1); + + if (strcmp(name, "cancel") == 0) { + FileNamePopDown(); + return; + } + + FileNameAction(w, NULL, NULL, NULL); +} + +void FileNameAction(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + char buf[MSG_SIZ]; + String name; + FILE *f; + char *p, *fullname; + int index; + + name = XawDialogGetValueString(w = XtParent(w)); + + if ((name != NULL) && (*name != NULLCHAR)) { + strcpy(buf, name); + XtPopdown(w = XtParent(XtParent(w))); + XtDestroyWidget(w); + filenameUp = False; + + p = strrchr(buf, ' '); + if (p == NULL) { + index = 0; + } else { + *p++ = NULLCHAR; + index = atoi(p); + } + fullname = ExpandPathName(buf); + if (!fullname) { + ErrorPopUp("Error", "Can't open file", FALSE); + } + else { + f = fopen(fullname, fileOpenMode); + if (f == NULL) { + DisplayError("Failed to open file", errno); + } else { + (void) (*fileProc)(f, index, buf); + } + } + ModeHighlight(); + return; + } + + XtPopdown(w = XtParent(XtParent(w))); + XtDestroyWidget(w); + filenameUp = False; + ModeHighlight(); +} + +void PromotionPopUp() +{ + Arg args[16]; + Widget dialog, layout; + Position x, y; + Dimension bw_width, pw_width; + int j; + + j = 0; + XtSetArg(args[j], XtNwidth, &bw_width); j++; + XtGetValues(boardWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; + promotionShell = + XtCreatePopupShell("Promotion", transientShellWidgetClass, + shellWidget, args, j); + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, promotionShell, + layoutArgs, XtNumber(layoutArgs)); + + j = 0; + XtSetArg(args[j], XtNlabel, "Promote pawn to what?"); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + dialog = XtCreateManagedWidget("promotion", dialogWidgetClass, + layout, args, j); + + XawDialogAddButton(dialog, "Queen", PromotionCallback, + (XtPointer) dialog); + XawDialogAddButton(dialog, "Rook", PromotionCallback, + (XtPointer) dialog); + XawDialogAddButton(dialog, "Bishop", PromotionCallback, + (XtPointer) dialog); + XawDialogAddButton(dialog, "Knight", PromotionCallback, + (XtPointer) dialog); + if (!appData.testLegality || gameInfo.variant == VariantSuicide) { + XawDialogAddButton(dialog, "King", PromotionCallback, + (XtPointer) dialog); + } + XawDialogAddButton(dialog, "cancel", PromotionCallback, + (XtPointer) dialog); + + XtRealizeWidget(promotionShell); + CatchDeleteWindow(promotionShell, "PromotionPopDown"); + + j = 0; + XtSetArg(args[j], XtNwidth, &pw_width); j++; + XtGetValues(promotionShell, args, j); + + XtTranslateCoords(boardWidget, (bw_width - pw_width) / 2, + lineGap + squareSize/3 + + ((toY == 7) ^ (flipView) ? + 0 : 6*(squareSize + lineGap)), &x, &y); + + j = 0; + XtSetArg(args[j], XtNx, x); j++; + XtSetArg(args[j], XtNy, y); j++; + XtSetValues(promotionShell, args, j); + + XtPopup(promotionShell, XtGrabNone); + + promotionUp = True; +} + +void PromotionPopDown() +{ + if (!promotionUp) return; + XtPopdown(promotionShell); + XtDestroyWidget(promotionShell); + promotionUp = False; +} + +void PromotionCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + int promoChar; + + XtSetArg(args[0], XtNlabel, &name); + XtGetValues(w, args, 1); + + PromotionPopDown(); + + if (fromX == -1) return; + + if (strcmp(name, "cancel") == 0) { + fromX = fromY = -1; + ClearHighlights(); + return; + } else if (strcmp(name, "Knight") == 0) { + promoChar = 'n'; + } else { + promoChar = ToLower(name[0]); + } + + UserMoveEvent(fromX, fromY, toX, toY, promoChar); + + if (!appData.highlightLastMove || gotPremove) ClearHighlights(); + if (gotPremove) SetPremoveHighlights(fromX, fromY, toX, toY); + fromX = fromY = -1; +} + + +void ErrorCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + errorUp = False; + XtPopdown(w = XtParent(XtParent(XtParent(w)))); + XtDestroyWidget(w); + if (errorExitStatus != -1) ExitEvent(errorExitStatus); +} + + +void ErrorPopDown() +{ + if (!errorUp) return; + errorUp = False; + XtPopdown(errorShell); + XtDestroyWidget(errorShell); + if (errorExitStatus != -1) ExitEvent(errorExitStatus); +} + +void ErrorPopUp(title, label, modal) + char *title, *label; + int modal; +{ + Arg args[16]; + Widget dialog, layout; + Position x, y; + int xx, yy; + Window junk; + Dimension bw_width, pw_width; + Dimension pw_height; + int i; + + i = 0; + XtSetArg(args[i], XtNresizable, True); i++; + XtSetArg(args[i], XtNtitle, title); i++; + errorShell = + XtCreatePopupShell("errorpopup", transientShellWidgetClass, + shellWidget, args, i); + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, errorShell, + layoutArgs, XtNumber(layoutArgs)); + + i = 0; + XtSetArg(args[i], XtNlabel, label); i++; + XtSetArg(args[i], XtNborderWidth, 0); i++; + dialog = XtCreateManagedWidget("dialog", dialogWidgetClass, + layout, args, i); + + XawDialogAddButton(dialog, "ok", ErrorCallback, (XtPointer) dialog); + + XtRealizeWidget(errorShell); + CatchDeleteWindow(errorShell, "ErrorPopDown"); + + i = 0; + XtSetArg(args[i], XtNwidth, &bw_width); i++; + XtGetValues(boardWidget, args, i); + i = 0; + XtSetArg(args[i], XtNwidth, &pw_width); i++; + XtSetArg(args[i], XtNheight, &pw_height); i++; + XtGetValues(errorShell, args, i); + +#ifdef NOTDEF + /* This code seems to tickle an X bug if it is executed too soon + after xboard starts up. The coordinates get transformed as if + the main window was positioned at (0, 0). + */ + XtTranslateCoords(boardWidget, (bw_width - pw_width) / 2, + 0 - pw_height + squareSize / 3, &x, &y); +#else + XTranslateCoordinates(xDisplay, XtWindow(boardWidget), + RootWindowOfScreen(XtScreen(boardWidget)), + (bw_width - pw_width) / 2, + 0 - pw_height + squareSize / 3, &xx, &yy, &junk); + x = xx; + y = yy; +#endif + if (y < 0) y = 0; /*avoid positioning top offscreen*/ + + i = 0; + XtSetArg(args[i], XtNx, x); i++; + XtSetArg(args[i], XtNy, y); i++; + XtSetValues(errorShell, args, i); + + errorUp = True; + XtPopup(errorShell, modal ? XtGrabExclusive : XtGrabNone); +} + +/* Disable all user input other than deleting the window */ +static int frozen = 0; +void FreezeUI() +{ + if (frozen) return; + /* Grab by a widget that doesn't accept input */ + XtAddGrab(messageWidget, TRUE, FALSE); + frozen = 1; +} + +/* Undo a FreezeUI */ +void ThawUI() +{ + if (!frozen) return; + XtRemoveGrab(messageWidget); + frozen = 0; +} + +char *ModeToWidgetName(mode) + GameMode mode; +{ + switch (mode) { + case BeginningOfGame: + if (appData.icsActive) + return "menuMode.ICS Client"; + else if (appData.noChessProgram || + *appData.cmailGameName != NULLCHAR) + return "menuMode.Edit Game"; + else + return "menuMode.Machine Black"; + case MachinePlaysBlack: + return "menuMode.Machine Black"; + case MachinePlaysWhite: + return "menuMode.Machine White"; + case AnalyzeMode: + return "menuMode.Analysis Mode"; + case AnalyzeFile: + return "menuMode.Analyze File"; + case TwoMachinesPlay: + return "menuMode.Two Machines"; + case EditGame: + return "menuMode.Edit Game"; + case PlayFromGameFile: + return "menuFile.Load Game"; + case EditPosition: + return "menuMode.Edit Position"; + case Training: + return "menuMode.Training"; + case IcsPlayingWhite: + case IcsPlayingBlack: + case IcsObserving: + case IcsIdle: + case IcsExamining: + return "menuMode.ICS Client"; + default: + case EndOfGame: + return NULL; + } +} + +void ModeHighlight() +{ + Arg args[16]; + static int oldPausing = FALSE; + static GameMode oldmode = (GameMode) -1; + char *wname; + + if (!boardWidget || !XtIsRealized(boardWidget)) return; + + if (pausing != oldPausing) { + oldPausing = pausing; + if (pausing) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Pause"), + args, 1); + + if (appData.showButtonBar) { +#if 0 + if (pausing) { + XtSetArg(args[0], XtNbackground, buttonForegroundPixel); + XtSetArg(args[1], XtNforeground, buttonBackgroundPixel); + } else { + XtSetArg(args[0], XtNbackground, buttonBackgroundPixel); + XtSetArg(args[1], XtNforeground, buttonForegroundPixel); + } +#else + /* Always toggle, don't set. Previous code messes up when + invoked while the button is pressed, as releasing it + toggles the state again. */ + { + Pixel oldbg, oldfg; + XtSetArg(args[0], XtNbackground, &oldbg); + XtSetArg(args[1], XtNforeground, &oldfg); + XtGetValues(XtNameToWidget(buttonBarWidget, PAUSE_BUTTON), + args, 2); + XtSetArg(args[0], XtNbackground, oldfg); + XtSetArg(args[1], XtNforeground, oldbg); + } +#endif + XtSetValues(XtNameToWidget(buttonBarWidget, PAUSE_BUTTON), args, 2); + } + } + + wname = ModeToWidgetName(oldmode); + if (wname != NULL) { + XtSetArg(args[0], XtNleftBitmap, None); + XtSetValues(XtNameToWidget(menuBarWidget, wname), args, 1); + } + wname = ModeToWidgetName(gameMode); + if (wname != NULL) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + XtSetValues(XtNameToWidget(menuBarWidget, wname), args, 1); + } + oldmode = gameMode; + + /* Maybe all the enables should be handled here, not just this one */ + XtSetSensitive(XtNameToWidget(menuBarWidget, "menuMode.Training"), + gameMode == Training || gameMode == PlayFromGameFile); +} + + +/* + * Button/menu procedures + */ +void ResetProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ResetGameEvent(); + AnalysisPopDown(); +} + +int LoadGamePopUp(f, gameNumber, title) + FILE *f; + int gameNumber; + char *title; +{ + cmailMsgLoaded = FALSE; + if (gameNumber == 0) { + int error = GameListBuild(f); + if (error) { + DisplayError("Cannot build game list", error); + } else if (!ListEmpty(&gameList) && + ((ListGame *) gameList.tailPred)->number > 1) { + GameListPopUp(f, title); + return TRUE; + } + GameListDestroy(); + gameNumber = 1; + } + return LoadGame(f, gameNumber, title, FALSE); +} + +void LoadGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + Reset(FALSE, TRUE); + } + FileNamePopUp("Load game file name?", "", LoadGamePopUp, "r"); +} + +void LoadNextGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadGame(1); +} + +void LoadPrevGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadGame(-1); +} + +void ReloadGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadGame(0); +} + +void LoadNextPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadPosition(1); +} + +void LoadPrevPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadPosition(-1); +} + +void ReloadPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadPosition(0); +} + +void LoadPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + Reset(FALSE, TRUE); + } + FileNamePopUp("Load position file name?", "", LoadPosition, "r"); +} + +void SaveGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + FileNamePopUp("Save game file name?", + DefaultFileName(appData.oldSaveStyle ? "game" : "pgn"), + SaveGame, "a"); +} + +void SavePositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + FileNamePopUp("Save position file name?", + DefaultFileName(appData.oldSaveStyle ? "pos" : "fen"), + SavePosition, "a"); +} + +void ReloadCmailMsgProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ReloadCmailMsgEvent(FALSE); +} + +void MailMoveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + MailMoveEvent(); +} + +/* this variable is shared between CopyPositionProc and SendPositionSelection */ +static char *selected_fen_position=NULL; + +static Boolean +SendPositionSelection(Widget w, Atom *selection, Atom *target, + Atom *type_return, XtPointer *value_return, + unsigned long *length_return, int *format_return) +{ + char *selection_tmp; + + if (!selected_fen_position) return False; /* should never happen */ + if (*target == XA_STRING){ + /* note: since no XtSelectionDoneProc was registered, Xt will + * automatically call XtFree on the value returned. So have to + * make a copy of it allocated with XtMalloc */ + selection_tmp= XtMalloc(strlen(selected_fen_position)+16); + strcpy(selection_tmp, selected_fen_position); + + *value_return=selection_tmp; + *length_return=strlen(selection_tmp); + *type_return=XA_STRING; + *format_return = 8; /* bits per byte */ + return True; + } else { + return False; + } +} + +/* note: when called from menu all parameters are NULL, so no clue what the + * Widget which was clicked on was, or what the click event was + */ +void CopyPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; + { + int ret; + + if (selected_fen_position) free(selected_fen_position); + selected_fen_position = (char *)PositionToFEN(currentMove); + if (!selected_fen_position) return; + ret = XtOwnSelection(menuBarWidget, XA_PRIMARY, + CurrentTime, + SendPositionSelection, + NULL/* lose_ownership_proc */ , + NULL/* transfer_done_proc */); + if (!ret) { + free(selected_fen_position); + selected_fen_position=NULL; + } + } + +/* function called when the data to Paste is ready */ +static void +PastePositionCB(Widget w, XtPointer client_data, Atom *selection, + Atom *type, XtPointer value, unsigned long *len, int *format) +{ + char *fenstr=value; + if (value==NULL || *len==0) return; /* nothing had been selected to copy */ + fenstr[*len]='\0'; /* normally this string is terminated, but be safe */ + EditPositionPasteFEN(fenstr); + XtFree(value); +} + +/* called when Paste Position button is pressed, + * all parameters will be NULL */ +void PastePositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + XtGetSelectionValue(menuBarWidget, XA_PRIMARY, XA_STRING, + /* (XtSelectionCallbackProc) */ PastePositionCB, + NULL, /* client_data passed to PastePositionCB */ + + /* better to use the time field from the event that triggered the + * call to this function, but that isn't trivial to get + */ + CurrentTime + ); + return; +} + +static Boolean +SendGameSelection(Widget w, Atom *selection, Atom *target, + Atom *type_return, XtPointer *value_return, + unsigned long *length_return, int *format_return) +{ + char *selection_tmp; + + if (*target == XA_STRING){ + FILE* f = fopen(gameCopyFilename, "r"); + long len; + size_t count; + if (f == NULL) return False; + fseek(f, 0, 2); + len = ftell(f); + rewind(f); + selection_tmp = XtMalloc(len + 1); + count = fread(selection_tmp, 1, len, f); + if (len != count) { + XtFree(selection_tmp); + return False; + } + selection_tmp[len] = NULLCHAR; + *value_return = selection_tmp; + *length_return = len; + *type_return = XA_STRING; + *format_return = 8; /* bits per byte */ + return True; + } else { + return False; + } +} + +/* note: when called from menu all parameters are NULL, so no clue what the + * Widget which was clicked on was, or what the click event was + */ +void CopyGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + int ret; + + ret = SaveGameToFile(gameCopyFilename, FALSE); + if (!ret) return; + + ret = XtOwnSelection(menuBarWidget, XA_PRIMARY, + CurrentTime, + SendGameSelection, + NULL/* lose_ownership_proc */ , + NULL/* transfer_done_proc */); +} + +/* function called when the data to Paste is ready */ +static void +PasteGameCB(Widget w, XtPointer client_data, Atom *selection, + Atom *type, XtPointer value, unsigned long *len, int *format) +{ + FILE* f; + if (value == NULL || *len == 0) { + return; /* nothing had been selected to copy */ + } + f = fopen(gamePasteFilename, "w"); + if (f == NULL) { + DisplayError("Can't open temp file", errno); + return; + } + fwrite(value, 1, *len, f); + fclose(f); + XtFree(value); + LoadGameFromFile(gamePasteFilename, 0, gamePasteFilename, FALSE); +} + +/* called when Paste Game button is pressed, + * all parameters will be NULL */ +void PasteGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + XtGetSelectionValue(menuBarWidget, XA_PRIMARY, XA_STRING, + /* (XtSelectionCallbackProc) */ PasteGameCB, + NULL, /* client_data passed to PasteGameCB */ + + /* better to use the time field from the event that triggered the + * call to this function, but that isn't trivial to get + */ + CurrentTime + ); + return; +} + + +void AutoSaveGame() +{ + SaveGameProc(NULL, NULL, NULL, NULL); +} + + +void QuitProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ExitEvent(0); +} + +void PauseProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + PauseEvent(); +} + + +void MachineBlackProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + MachineBlackEvent(); +} + +void MachineWhiteProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + MachineWhiteEvent(); +} + +void AnalyzeModeProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (!first.analysisSupport) { + char buf[MSG_SIZ]; + sprintf(buf, "%s does not support analysis", first.tidy); + DisplayError(buf, 0); + return; + } + if (!appData.showThinking) + ShowThinkingProc(w,event,prms,nprms); + + AnalyzeModeEvent(); +} + +void AnalyzeFileProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (!first.analysisSupport) { + char buf[MSG_SIZ]; + sprintf(buf, "%s does not support analysis", first.tidy); + DisplayError(buf, 0); + return; + } + Reset(FALSE, TRUE); + + if (!appData.showThinking) + ShowThinkingProc(w,event,prms,nprms); + + AnalyzeFileEvent(); + FileNamePopUp("File to analyze", "", LoadGamePopUp, "r"); + AnalysisPeriodicEvent(1); +} + +void TwoMachinesProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + TwoMachinesEvent(); +} + +void IcsClientProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + IcsClientEvent(); +} + +void EditGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + EditGameEvent(); +} + +void EditPositionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + EditPositionEvent(); +} + +void TrainingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + TrainingEvent(); +} + +void EditCommentProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (editUp) { + EditCommentPopDown(); + } else { + EditCommentEvent(); + } +} + +void IcsInputBoxProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (ICSInputBoxUp) { + ICSInputBoxPopDown(); + } else { + ICSInputBoxPopUp(); + } +} + +void AcceptProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + AcceptEvent(); +} + +void DeclineProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + DeclineEvent(); +} + +void RematchProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + RematchEvent(); +} + +void CallFlagProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + CallFlagEvent(); +} + +void DrawProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + DrawEvent(); +} + +void AbortProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + AbortEvent(); +} + +void AdjournProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + AdjournEvent(); +} + +void ResignProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ResignEvent(); +} + +void EnterKeyProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (ICSInputBoxUp == True) + ICSInputSendText(); +} + +void StopObservingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + StopObservingEvent(); +} + +void StopExaminingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + StopExaminingEvent(); +} + + +void ForwardProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ForwardEvent(); +} + + +void BackwardProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + BackwardEvent(); +} + +void ToStartProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ToStartEvent(); +} + +void ToEndProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + ToEndEvent(); +} + +void RevertProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + RevertEvent(); +} + +void TruncateGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + TruncateGameEvent(); +} +void RetractMoveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + RetractMoveEvent(); +} + +void MoveNowProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + MoveNowEvent(); +} + + +void AlwaysQueenProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.alwaysPromoteToQueen = !appData.alwaysPromoteToQueen; + + if (appData.alwaysPromoteToQueen) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Always Queen"), + args, 1); +} + +void AnimateDraggingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.animateDragging = !appData.animateDragging; + + if (appData.animateDragging) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + CreateAnimVars(); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Animate Dragging"), + args, 1); +} + +void AnimateMovingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.animate = !appData.animate; + + if (appData.animate) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + CreateAnimVars(); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Animate Moving"), + args, 1); +} + +void AutocommProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoComment = !appData.autoComment; + + if (appData.autoComment) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Comment"), + args, 1); +} + + +void AutoflagProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoCallFlag = !appData.autoCallFlag; + + if (appData.autoCallFlag) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Flag"), + args, 1); +} + +void AutoflipProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoFlipView = !appData.autoFlipView; + + if (appData.autoFlipView) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Flip View"), + args, 1); +} + +void AutobsProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoObserve = !appData.autoObserve; + + if (appData.autoObserve) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Observe"), + args, 1); +} + +void AutoraiseProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoRaiseBoard = !appData.autoRaiseBoard; + + if (appData.autoRaiseBoard) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Raise Board"), + args, 1); +} + +void AutosaveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.autoSaveGames = !appData.autoSaveGames; + + if (appData.autoSaveGames) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Auto Save"), + args, 1); +} + +void BlindfoldProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.blindfold = !appData.blindfold; + + if (appData.blindfold) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Blindfold"), + args, 1); + + DrawPosition(True, NULL); +} + +void TestLegalityProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.testLegality = !appData.testLegality; + + if (appData.testLegality) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Test Legality"), + args, 1); +} + + +void FlashMovesProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + if (appData.flashCount == 0) { + appData.flashCount = 3; + } else { + appData.flashCount = -appData.flashCount; + } + + if (appData.flashCount > 0) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Flash Moves"), + args, 1); +} + +void FlipViewProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + flipView = !flipView; + DrawPosition(True, NULL); +} + +void GetMoveListProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.getMoveList = !appData.getMoveList; + + if (appData.getMoveList) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + GetMoveListEvent(); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Get Move List"), + args, 1); +} + +#if HIGHDRAG +void HighlightDraggingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.highlightDragging = !appData.highlightDragging; + + if (appData.highlightDragging) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Highlight Dragging"), args, 1); +} +#endif + +void HighlightLastMoveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.highlightLastMove = !appData.highlightLastMove; + + if (appData.highlightLastMove) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Highlight Last Move"), args, 1); +} + +void IcsAlarmProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.icsAlarm = !appData.icsAlarm; + + if (appData.icsAlarm) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.ICS Alarm"), args, 1); +} + +void MoveSoundProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.ringBellAfterMoves = !appData.ringBellAfterMoves; + + if (appData.ringBellAfterMoves) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Move Sound"), + args, 1); +} + + +void OldSaveStyleProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.oldSaveStyle = !appData.oldSaveStyle; + + if (appData.oldSaveStyle) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Old Save Style"), + args, 1); +} + +void PeriodicUpdatesProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + PeriodicUpdatesEvent(!appData.periodicUpdates); + + if (appData.periodicUpdates) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Periodic Updates"), + args, 1); +} + +void PonderNextMoveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + PonderNextMoveEvent(!appData.ponderNextMove); + + if (appData.ponderNextMove) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Ponder Next Move"), + args, 1); +} + +void PopupExitMessageProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.popupExitMessage = !appData.popupExitMessage; + + if (appData.popupExitMessage) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Popup Exit Message"), args, 1); +} + +void PopupMoveErrorsProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.popupMoveErrors = !appData.popupMoveErrors; + + if (appData.popupMoveErrors) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Popup Move Errors"), + args, 1); +} + +void PremoveProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.premove = !appData.premove; + + if (appData.premove) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, + "menuOptions.Premove"), args, 1); +} + +void QuietPlayProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.quietPlay = !appData.quietPlay; + + if (appData.quietPlay) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Quiet Play"), + args, 1); +} + +void ShowCoordsProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + appData.showCoords = !appData.showCoords; + + if (appData.showCoords) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Show Coords"), + args, 1); + + DrawPosition(True, NULL); +} + +void ShowThinkingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + ShowThinkingEvent(!appData.showThinking); + + if (appData.showThinking) { + XtSetArg(args[0], XtNleftBitmap, xMarkPixmap); + } else { + XtSetArg(args[0], XtNleftBitmap, None); + } + XtSetValues(XtNameToWidget(menuBarWidget, "menuOptions.Show Thinking"), + args, 1); +} + +void InfoProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + char buf[MSG_SIZ]; + sprintf(buf, "xterm -e info --directory %s --directory . -f %s &", + INFODIR, INFOFILE); + system(buf); +} + +void ManProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + char buf[MSG_SIZ]; + String name; + if (nprms && *nprms > 0) + name = prms[0]; + else + name = "xboard"; + sprintf(buf, "xterm -e man %s &", name); + system(buf); +} + +void HintProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + HintEvent(); +} + +void BookProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + BookEvent(); +} + +void AboutProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + char buf[MSG_SIZ]; +#if ZIPPY + char *zippy = " (with Zippy code)"; +#else + char *zippy = ""; +#endif + sprintf(buf, "%s%s\n\n%s\n%s\n\n%s%s\n%s", + programVersion, zippy, + "Copyright 1991 Digital Equipment Corporation", + "Enhancements Copyright 1992-2001 Free Software Foundation", + PRODUCT, " is free software and carries NO WARRANTY;", + "see the file COPYING for more information."); + ErrorPopUp("About XBoard", buf, FALSE); +} + +void DebugProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + appData.debugMode = !appData.debugMode; +} + +void AboutGameProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + AboutGameEvent(); +} + +void NothingProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + return; +} + +void Iconify(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + + fromX = fromY = -1; + XtSetArg(args[0], XtNiconic, True); + XtSetValues(shellWidget, args, 1); +} + +void DisplayMessage(message, extMessage) + char *message, *extMessage; +{ + char buf[MSG_SIZ]; + Arg arg; + + if (extMessage) { + if (*message) { + sprintf(buf, "%s %s", message, extMessage); + message = buf; + } else { + message = extMessage; + } + } + XtSetArg(arg, XtNlabel, message); + XtSetValues(messageWidget, &arg, 1); +} + +void DisplayTitle(text) + char *text; +{ + Arg args[16]; + int i; + char title[MSG_SIZ]; + char icon[MSG_SIZ]; + + if (text == NULL) text = ""; + + if (appData.titleInWindow) { + i = 0; + XtSetArg(args[i], XtNlabel, text); i++; + XtSetValues(titleWidget, args, i); + } + + if (*text != NULLCHAR) { + strcpy(icon, text); + strcpy(title, text); + } else if (appData.icsActive) { + sprintf(icon, "%s", appData.icsHost); + sprintf(title, "%s: %s", programName, appData.icsHost); + } else if (appData.cmailGameName[0] != NULLCHAR) { + sprintf(icon, "%s", "CMail"); + sprintf(title, "%s: %s", programName, "CMail"); + } else if (appData.noChessProgram) { + strcpy(icon, programName); + strcpy(title, programName); + } else { + strcpy(icon, first.tidy); + sprintf(title, "%s: %s", programName, first.tidy); + } + i = 0; + XtSetArg(args[i], XtNiconName, (XtArgVal) icon); i++; + XtSetArg(args[i], XtNtitle, (XtArgVal) title); i++; + XtSetValues(shellWidget, args, i); +} + + +void DisplayError(message, error) + String message; + int error; +{ + char buf[MSG_SIZ]; + + if (error == 0) { + if (appData.debugMode || appData.matchMode) { + fprintf(stderr, "%s: %s\n", programName, message); + } + } else { + if (appData.debugMode || appData.matchMode) { + fprintf(stderr, "%s: %s: %s\n", + programName, message, sys_errlist[error]); + } + sprintf(buf, "%s: %s", message, sys_errlist[error]); + message = buf; + } + ErrorPopUp("Error", message, FALSE); +} + + +void DisplayMoveError(message) + String message; +{ + fromX = fromY = -1; + ClearHighlights(); + DrawPosition(FALSE, NULL); + if (appData.debugMode || appData.matchMode) { + fprintf(stderr, "%s: %s\n", programName, message); + } + if (appData.popupMoveErrors) { + ErrorPopUp("Error", message, FALSE); + } else { + DisplayMessage(message, ""); + } +} + + +void DisplayFatalError(message, error, status) + String message; + int error, status; +{ + char buf[MSG_SIZ]; + + errorExitStatus = status; + if (error == 0) { + fprintf(stderr, "%s: %s\n", programName, message); + } else { + fprintf(stderr, "%s: %s: %s\n", + programName, message, sys_errlist[error]); + sprintf(buf, "%s: %s", message, sys_errlist[error]); + message = buf; + } + if (appData.popupExitMessage && boardWidget && XtIsRealized(boardWidget)) { + ErrorPopUp(status ? "Fatal Error" : "Exiting", message, TRUE); + } else { + ExitEvent(status); + } +} + +void DisplayInformation(message) + String message; +{ + ErrorPopDown(); + ErrorPopUp("Information", message, TRUE); +} + +static int +NullXErrorCheck(dpy, error_event) + Display *dpy; + XErrorEvent *error_event; +{ + return 0; +} + +void DisplayIcsInteractionTitle(message) + String message; +{ + if (oldICSInteractionTitle == NULL) { + /* Magic to find the old window title, adapted from vim */ + char *wina = getenv("WINDOWID"); + if (wina != NULL) { + Window win = (Window) atoi(wina); + Window root, parent, *children; + unsigned int nchildren; + int (*oldHandler)() = XSetErrorHandler(NullXErrorCheck); + for (;;) { + if (XFetchName(xDisplay, win, &oldICSInteractionTitle)) break; + if (!XQueryTree(xDisplay, win, &root, &parent, + &children, &nchildren)) break; + if (children) XFree((void *)children); + if (parent == root || parent == 0) break; + win = parent; + } + XSetErrorHandler(oldHandler); + } + if (oldICSInteractionTitle == NULL) { + oldICSInteractionTitle = "xterm"; + } + } + printf("\033]0;%s\007", message); + fflush(stdout); +} + +char pendingReplyPrefix[MSG_SIZ]; +ProcRef pendingReplyPR; + +void AskQuestionProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (*nprms != 4) { + fprintf(stderr, "AskQuestionProc needed 4 parameters, got %d\n", + *nprms); + return; + } + AskQuestionEvent(prms[0], prms[1], prms[2], prms[3]); +} + +void AskQuestionPopDown() +{ + if (!askQuestionUp) return; + XtPopdown(askQuestionShell); + XtDestroyWidget(askQuestionShell); + askQuestionUp = False; +} + +void AskQuestionReplyAction(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + char buf[MSG_SIZ]; + int err; + String reply; + + reply = XawDialogGetValueString(w = XtParent(w)); + strcpy(buf, pendingReplyPrefix); + if (*buf) strcat(buf, " "); + strcat(buf, reply); + strcat(buf, "\n"); + OutputToProcess(pendingReplyPR, buf, strlen(buf), &err); + AskQuestionPopDown(); + + if (err) DisplayFatalError("Error writing to chess program", err, 0); +} + +void AskQuestionCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + + XtSetArg(args[0], XtNlabel, &name); + XtGetValues(w, args, 1); + + if (strcmp(name, "cancel") == 0) { + AskQuestionPopDown(); + } else { + AskQuestionReplyAction(w, NULL, NULL, NULL); + } +} + +void AskQuestion(title, question, replyPrefix, pr) + char *title, *question, *replyPrefix; + ProcRef pr; +{ + Arg args[16]; + Widget popup, layout, dialog, edit; + Window root, child; + int x, y, i; + int win_x, win_y; + unsigned int mask; + + strcpy(pendingReplyPrefix, replyPrefix); + pendingReplyPR = pr; + + i = 0; + XtSetArg(args[i], XtNresizable, True); i++; + XtSetArg(args[i], XtNwidth, DIALOG_SIZE); i++; + askQuestionShell = popup = + XtCreatePopupShell(title, transientShellWidgetClass, + shellWidget, args, i); + + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, popup, + layoutArgs, XtNumber(layoutArgs)); + + i = 0; + XtSetArg(args[i], XtNlabel, question); i++; + XtSetArg(args[i], XtNvalue, ""); i++; + XtSetArg(args[i], XtNborderWidth, 0); i++; + dialog = XtCreateManagedWidget("question", dialogWidgetClass, + layout, args, i); + + XawDialogAddButton(dialog, "enter", AskQuestionCallback, + (XtPointer) dialog); + XawDialogAddButton(dialog, "cancel", AskQuestionCallback, + (XtPointer) dialog); + + XtRealizeWidget(popup); + CatchDeleteWindow(popup, "AskQuestionPopDown"); + + XQueryPointer(xDisplay, xBoardWindow, &root, &child, + &x, &y, &win_x, &win_y, &mask); + + XtSetArg(args[0], XtNx, x - 10); + XtSetArg(args[1], XtNy, y - 30); + XtSetValues(popup, args, 2); + + XtPopup(popup, XtGrabExclusive); + askQuestionUp = True; + + edit = XtNameToWidget(dialog, "*value"); + XtSetKeyboardFocus(popup, edit); +} + + +void +PlaySound(name) + char *name; +{ + if (*name == NULLCHAR) { + return; + } else if (strcmp(name, "$") == 0) { + putc(BELLCHAR, stderr); + } else { + char buf[2048]; + sprintf(buf, "%s '%s' &", appData.soundProgram, name); + system(buf); + } +} + +void +RingBell() +{ + PlaySound(appData.soundMove); +} + +void +PlayIcsWinSound() +{ + PlaySound(appData.soundIcsWin); +} + +void +PlayIcsLossSound() +{ + PlaySound(appData.soundIcsLoss); +} + +void +PlayIcsDrawSound() +{ + PlaySound(appData.soundIcsDraw); +} + +void +PlayIcsUnfinishedSound() +{ + PlaySound(appData.soundIcsUnfinished); +} + +void +PlayAlarmSound() +{ + PlaySound(appData.soundIcsAlarm); +} + +void +EchoOn() +{ + system("stty echo"); +} + +void +EchoOff() +{ + system("stty -echo"); +} + +void +Colorize(cc, continuation) + ColorClass cc; + int continuation; +{ + char buf[MSG_SIZ]; + int count, outCount, error; + + if (textColors[(int)cc].bg > 0) { + if (textColors[(int)cc].fg > 0) { + sprintf(buf, "\033[0;%d;%d;%dm", textColors[(int)cc].attr, + textColors[(int)cc].fg, textColors[(int)cc].bg); + } else { + sprintf(buf, "\033[0;%d;%dm", textColors[(int)cc].attr, + textColors[(int)cc].bg); + } + } else { + if (textColors[(int)cc].fg > 0) { + sprintf(buf, "\033[0;%d;%dm", textColors[(int)cc].attr, + textColors[(int)cc].fg); + } else { + sprintf(buf, "\033[0;%dm", textColors[(int)cc].attr); + } + } + count = strlen(buf); + outCount = OutputToProcess(NoProc, buf, count, &error); + if (outCount < count) { + DisplayFatalError("Error writing to display", error, 1); + } + + if (continuation) return; + switch (cc) { + case ColorShout: + PlaySound(appData.soundShout); + break; + case ColorSShout: + PlaySound(appData.soundSShout); + break; + case ColorChannel1: + PlaySound(appData.soundChannel1); + break; + case ColorChannel: + PlaySound(appData.soundChannel); + break; + case ColorKibitz: + PlaySound(appData.soundKibitz); + break; + case ColorTell: + PlaySound(appData.soundTell); + break; + case ColorChallenge: + PlaySound(appData.soundChallenge); + break; + case ColorRequest: + PlaySound(appData.soundRequest); + break; + case ColorSeek: + PlaySound(appData.soundSeek); + break; + case ColorNormal: + case ColorNone: + default: + break; + } +} + +char *UserName() +{ + return getpwuid(getuid())->pw_name; +} + +static char *ExpandPathName(path) + char *path; +{ + static char static_buf[2000]; + char *d, *s, buf[2000]; + struct passwd *pwd; + + s = path; + d = static_buf; + + while (*s && isspace(*s)) + ++s; + + if (!*s) { + *d = 0; + return static_buf; + } + + if (*s == '~') { + if (*(s+1) == '/') { + strcpy(d, getpwuid(getuid())->pw_dir); + strcat(d, s+1); + } + else { + strcpy(buf, s+1); + *strchr(buf, '/') = 0; + pwd = getpwnam(buf); + if (!pwd) + { + fprintf(stderr, "ERROR: Unknown user %s (in path %s)\n", + buf, path); + return NULL; + } + strcpy(d, pwd->pw_dir); + strcat(d, strchr(s+1, '/')); + } + } + else + strcpy(d, s); + + return static_buf; +} + +char *HostName() +{ + static char host_name[MSG_SIZ]; + +#if HAVE_GETHOSTNAME + gethostname(host_name, MSG_SIZ); + return host_name; +#else /* not HAVE_GETHOSTNAME */ +# if HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H + sysinfo(SI_HOSTNAME, host_name, MSG_SIZ); + return host_name; +# else /* not (HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H) */ + return "localhost"; +# endif/* not (HAVE_SYSINFO && HAVE_SYS_SYSTEMINFO_H) */ +#endif /* not HAVE_GETHOSTNAME */ +} + +XtIntervalId delayedEventTimerXID = 0; +DelayedEventCallback delayedEventCallback = 0; +void +ScheduleDelayedEvent(cb, millisec) + DelayedEventCallback cb; long millisec; +{ + delayedEventCallback = cb; + delayedEventTimerXID = + XtAppAddTimeOut(appContext, millisec, (XtTimerCallbackProc) cb, + (XtPointer) 0); +} + +DelayedEventCallback +GetDelayedEvent() +{ + if (delayedEventTimerXID) { + return delayedEventCallback; + } else { + return NULL; + } +} + +void +CancelDelayedEvent() +{ + if (delayedEventTimerXID) { + XtRemoveTimeOut(delayedEventTimerXID); + delayedEventTimerXID = 0; + } +} + +XtIntervalId loadGameTimerXID = 0; + +int LoadGameTimerRunning() +{ + return loadGameTimerXID != 0; +} + +int StopLoadGameTimer() +{ + if (loadGameTimerXID != 0) { + XtRemoveTimeOut(loadGameTimerXID); + loadGameTimerXID = 0; + return TRUE; + } else { + return FALSE; + } +} + +void +LoadGameTimerCallback(arg, id) + XtPointer arg; + XtIntervalId *id; +{ + loadGameTimerXID = 0; + AutoPlayGameLoop(); +} + +void +StartLoadGameTimer(millisec) + long millisec; +{ + loadGameTimerXID = + XtAppAddTimeOut(appContext, millisec, + (XtTimerCallbackProc) LoadGameTimerCallback, + (XtPointer) 0); +} + +XtIntervalId analysisClockXID = 0; + +void +AnalysisClockCallback(arg, id) + XtPointer arg; + XtIntervalId *id; +{ + if (gameMode == AnalyzeMode || gameMode == AnalyzeFile) { + AnalysisPeriodicEvent(0); + StartAnalysisClock(); + } +} + +void +StartAnalysisClock() +{ + analysisClockXID = + XtAppAddTimeOut(appContext, 2000, + (XtTimerCallbackProc) AnalysisClockCallback, + (XtPointer) 0); +} + +XtIntervalId clockTimerXID = 0; + +int ClockTimerRunning() +{ + return clockTimerXID != 0; +} + +int StopClockTimer() +{ + if (clockTimerXID != 0) { + XtRemoveTimeOut(clockTimerXID); + clockTimerXID = 0; + return TRUE; + } else { + return FALSE; + } +} + +void +ClockTimerCallback(arg, id) + XtPointer arg; + XtIntervalId *id; +{ + clockTimerXID = 0; + DecrementClocks(); +} + +void +StartClockTimer(millisec) + long millisec; +{ + clockTimerXID = + XtAppAddTimeOut(appContext, millisec, + (XtTimerCallbackProc) ClockTimerCallback, + (XtPointer) 0); +} + +void +DisplayTimerLabel(w, color, timer, highlight) + Widget w; + char *color; + long timer; + int highlight; +{ + char buf[MSG_SIZ]; + Arg args[16]; + + if (appData.clockMode) { + sprintf(buf, "%s: %s", color, TimeString(timer)); + XtSetArg(args[0], XtNlabel, buf); + } else { + sprintf(buf, "%s ", color); + XtSetArg(args[0], XtNlabel, buf); + } + + if (highlight) { + XtSetArg(args[1], XtNbackground, timerForegroundPixel); + XtSetArg(args[2], XtNforeground, timerBackgroundPixel); + } else { + XtSetArg(args[1], XtNbackground, timerBackgroundPixel); + XtSetArg(args[2], XtNforeground, timerForegroundPixel); + } + + XtSetValues(w, args, 3); +} + +void +DisplayWhiteClock(timeRemaining, highlight) + long timeRemaining; + int highlight; +{ + Arg args[16]; + DisplayTimerLabel(whiteTimerWidget, "White", timeRemaining, highlight); + if (highlight && iconPixmap == bIconPixmap) { + iconPixmap = wIconPixmap; + XtSetArg(args[0], XtNiconPixmap, iconPixmap); + XtSetValues(shellWidget, args, 1); + } +} + +void +DisplayBlackClock(timeRemaining, highlight) + long timeRemaining; + int highlight; +{ + Arg args[16]; + DisplayTimerLabel(blackTimerWidget, "Black", timeRemaining, highlight); + if (highlight && iconPixmap == wIconPixmap) { + iconPixmap = bIconPixmap; + XtSetArg(args[0], XtNiconPixmap, iconPixmap); + XtSetValues(shellWidget, args, 1); + } +} + +#define CPNone 0 +#define CPReal 1 +#define CPComm 2 +#define CPSock 3 +#define CPLoop 4 +typedef int CPKind; + +typedef struct { + CPKind kind; + int pid; + int fdTo, fdFrom; +} ChildProc; + + +int StartChildProcess(cmdLine, dir, pr) + char *cmdLine; + char *dir; + ProcRef *pr; +{ + char *argv[64], *p; + int i, pid; + int to_prog[2], from_prog[2]; + ChildProc *cp; + char buf[MSG_SIZ]; + + if (appData.debugMode) { + fprintf(stderr, "StartChildProcess (dir=\"%s\") %s\n",dir, cmdLine); + } + + /* We do NOT feed the cmdLine to the shell; we just + parse it into blank-separated arguments in the + most simple-minded way possible. + */ + i = 0; + strcpy(buf, cmdLine); + p = buf; + for (;;) { + argv[i++] = p; + p = strchr(p, ' '); + if (p == NULL) break; + *p++ = NULLCHAR; + } + argv[i] = NULL; + + SetUpChildIO(to_prog, from_prog); + + if ((pid = fork()) == 0) { + /* Child process */ + dup2(to_prog[0], 0); + dup2(from_prog[1], 1); + close(to_prog[0]); + close(to_prog[1]); + close(from_prog[0]); + close(from_prog[1]); + dup2(1, fileno(stderr)); /* force stderr to the pipe */ + + if (dir[0] != NULLCHAR && chdir(dir) != 0) { + perror(dir); + exit(1); + } + + execvp(argv[0], argv); + + /* If we get here, exec failed */ + perror(argv[0]); + exit(1); + } + + /* Parent process */ + close(to_prog[0]); + close(from_prog[1]); + + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPReal; + cp->pid = pid; + cp->fdFrom = from_prog[0]; + cp->fdTo = to_prog[1]; + *pr = (ProcRef) cp; + return 0; +} + +void +DestroyChildProcess(pr, signal) + ProcRef pr; + int signal; +{ + ChildProc *cp = (ChildProc *) pr; + + if (cp->kind != CPReal) return; + cp->kind = CPNone; + if (signal) { + kill(cp->pid, SIGTERM); + } + /* Process is exiting either because of the kill or because of + a quit command sent by the backend; either way, wait for it to die. + */ + wait((int *) 0); + close(cp->fdFrom); + close(cp->fdTo); +} + +void +InterruptChildProcess(pr) + ProcRef pr; +{ + ChildProc *cp = (ChildProc *) pr; + + if (cp->kind != CPReal) return; + (void) kill(cp->pid, SIGINT); /* stop it thinking */ +} + +int OpenTelnet(host, port, pr) + char *host; + char *port; + ProcRef *pr; +{ + char cmdLine[MSG_SIZ]; + + if (port[0] == NULLCHAR) { + sprintf(cmdLine, "%s %s", appData.telnetProgram, host); + } else { + sprintf(cmdLine, "%s %s %s", appData.telnetProgram, host, port); + } + return StartChildProcess(cmdLine, "", pr); +} + +int OpenTCP(host, port, pr) + char *host; + char *port; + ProcRef *pr; +{ +#if OMIT_SOCKETS + DisplayFatalError("Socket support is not configured in", 0, 2); +#else /* !OMIT_SOCKETS */ + int s; + struct sockaddr_in sa; + struct hostent *hp; + unsigned short uport; + ChildProc *cp; + + if ((s = socket(AF_INET, SOCK_STREAM, 6)) < 0) { + return errno; + } + + memset((char *) &sa, (int)0, sizeof(struct sockaddr_in)); + sa.sin_family = AF_INET; + sa.sin_addr.s_addr = INADDR_ANY; + uport = (unsigned short) 0; + sa.sin_port = htons(uport); + if (bind(s, (struct sockaddr *) &sa, sizeof(struct sockaddr_in)) < 0) { + return errno; + } + + memset((char *) &sa, (int)0, sizeof(struct sockaddr_in)); + if (!(hp = gethostbyname(host))) { + int b0, b1, b2, b3; + if (sscanf(host, "%d.%d.%d.%d", &b0, &b1, &b2, &b3) == 4) { + hp = (struct hostent *) calloc(1, sizeof(struct hostent)); + hp->h_addrtype = AF_INET; + hp->h_length = 4; + hp->h_addr_list = (char **) calloc(2, sizeof(char *)); + hp->h_addr_list[0] = (char *) malloc(4); + hp->h_addr_list[0][0] = b0; + hp->h_addr_list[0][1] = b1; + hp->h_addr_list[0][2] = b2; + hp->h_addr_list[0][3] = b3; + } else { + return ENOENT; + } + } + sa.sin_family = hp->h_addrtype; + uport = (unsigned short) atoi(port); + sa.sin_port = htons(uport); + memcpy((char *) &sa.sin_addr, hp->h_addr, hp->h_length); + + if (connect(s, (struct sockaddr *) &sa, + sizeof(struct sockaddr_in)) < 0) { + return errno; + } + + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPSock; + cp->pid = 0; + cp->fdFrom = s; + cp->fdTo = s; + *pr = (ProcRef) cp; + +#endif /* !OMIT_SOCKETS */ + + return 0; +} + +int OpenCommPort(name, pr) + char *name; + ProcRef *pr; +{ + int fd; + ChildProc *cp; + + fd = open(name, 2, 0); + if (fd < 0) return errno; + + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPComm; + cp->pid = 0; + cp->fdFrom = fd; + cp->fdTo = fd; + *pr = (ProcRef) cp; + + return 0; +} + +int OpenLoopback(pr) + ProcRef *pr; +{ + ChildProc *cp; + int to[2], from[2]; + + SetUpChildIO(to, from); + + cp = (ChildProc *) calloc(1, sizeof(ChildProc)); + cp->kind = CPLoop; + cp->pid = 0; + cp->fdFrom = to[0]; /* note not from[0]; we are doing a loopback */ + cp->fdTo = to[1]; + *pr = (ProcRef) cp; + + return 0; +} + +int OpenRcmd(host, user, cmd, pr) + char *host, *user, *cmd; + ProcRef *pr; +{ + DisplayFatalError("internal rcmd not implemented for Unix", 0, 1); + return -1; +} + +#define INPUT_SOURCE_BUF_SIZE 8192 + +typedef struct { + CPKind kind; + int fd; + int lineByLine; + char *unused; + InputCallback func; + XtInputId xid; + char buf[INPUT_SOURCE_BUF_SIZE]; + VOIDSTAR closure; +} InputSource; + +void +DoInputCallback(closure, source, xid) + caddr_t closure; + int *source; + XtInputId *xid; +{ + InputSource *is = (InputSource *) closure; + int count; + int error; + char *p, *q; + + if (is->lineByLine) { + count = read(is->fd, is->unused, + INPUT_SOURCE_BUF_SIZE - (is->unused - is->buf)); + if (count <= 0) { + (is->func)(is, is->closure, is->buf, count, count ? errno : 0); + return; + } + is->unused += count; + p = is->buf; + while (p < is->unused) { + q = memchr(p, '\n', is->unused - p); + if (q == NULL) break; + q++; + (is->func)(is, is->closure, p, q - p, 0); + p = q; + } + q = is->buf; + while (p < is->unused) { + *q++ = *p++; + } + is->unused = q; + } else { + count = read(is->fd, is->buf, INPUT_SOURCE_BUF_SIZE); + if (count == -1) + error = errno; + else + error = 0; + (is->func)(is, is->closure, is->buf, count, error); + } +} + +InputSourceRef AddInputSource(pr, lineByLine, func, closure) + ProcRef pr; + int lineByLine; + InputCallback func; + VOIDSTAR closure; +{ + InputSource *is; + ChildProc *cp = (ChildProc *) pr; + + is = (InputSource *) calloc(1, sizeof(InputSource)); + is->lineByLine = lineByLine; + is->func = func; + if (pr == NoProc) { + is->kind = CPReal; + is->fd = fileno(stdin); + } else { + is->kind = cp->kind; + is->fd = cp->fdFrom; + } + if (lineByLine) { + is->unused = is->buf; + } + + is->xid = XtAppAddInput(appContext, is->fd, + (XtPointer) (XtInputReadMask), + (XtInputCallbackProc) DoInputCallback, + (XtPointer) is); + is->closure = closure; + return (InputSourceRef) is; +} + +void +RemoveInputSource(isr) + InputSourceRef isr; +{ + InputSource *is = (InputSource *) isr; + + if (is->xid == 0) return; + XtRemoveInput(is->xid); + is->xid = 0; +} + +int OutputToProcess(pr, message, count, outError) + ProcRef pr; + char *message; + int count; + int *outError; +{ + ChildProc *cp = (ChildProc *) pr; + int outCount; + + if (pr == NoProc) + outCount = fwrite(message, 1, count, stdout); + else + outCount = write(cp->fdTo, message, count); + + if (outCount == -1) + *outError = errno; + else + *outError = 0; + + return outCount; +} + +/* Output message to process, with "ms" milliseconds of delay + between each character. This is needed when sending the logon + script to ICC, which for some reason doesn't like the + instantaneous send. */ +int OutputToProcessDelayed(pr, message, count, outError, msdelay) + ProcRef pr; + char *message; + int count; + int *outError; + long msdelay; +{ + ChildProc *cp = (ChildProc *) pr; + int outCount = 0; + int r; + + while (count--) { + r = write(cp->fdTo, message++, 1); + if (r == -1) { + *outError = errno; + return outCount; + } + ++outCount; + if (msdelay >= 0) + TimeDelay(msdelay); + } + + return outCount; +} + +/**** Animation code by Hugh Fisher, DCS, ANU. + + Known problem: if a window overlapping the board is + moved away while a piece is being animated underneath, + the newly exposed area won't be updated properly. + I can live with this. + + Known problem: if you look carefully at the animation + of pieces in mono mode, they are being drawn as solid + shapes without interior detail while moving. Fixing + this would be a major complication for minimal return. +****/ + +/* Masks for XPM pieces. Black and white pieces can have + different shapes, but in the interest of retaining my + sanity pieces must have the same outline on both light + and dark squares, and all pieces must use the same + background square colors/images. */ + +static void +CreateAnimMasks (pieceDepth) + int pieceDepth; +{ + ChessSquare piece; + Pixmap buf; + GC bufGC, maskGC; + int kind, n; + unsigned long plane; + XGCValues values; + + /* Need a bitmap just to get a GC with right depth */ + buf = XCreatePixmap(xDisplay, xBoardWindow, + 8, 8, 1); + values.foreground = 1; + values.background = 0; + /* Don't use XtGetGC, not read only */ + maskGC = XCreateGC(xDisplay, buf, + GCForeground | GCBackground, &values); + XFreePixmap(xDisplay, buf); + + buf = XCreatePixmap(xDisplay, xBoardWindow, + squareSize, squareSize, pieceDepth); + values.foreground = XBlackPixel(xDisplay, xScreen); + values.background = XWhitePixel(xDisplay, xScreen); + bufGC = XCreateGC(xDisplay, buf, + GCForeground | GCBackground, &values); + + for (piece = WhitePawn; piece <= BlackKing; piece++) { + /* Begin with empty mask */ + xpmMask[piece] = XCreatePixmap(xDisplay, xBoardWindow, + squareSize, squareSize, 1); + XSetFunction(xDisplay, maskGC, GXclear); + XFillRectangle(xDisplay, xpmMask[piece], maskGC, + 0, 0, squareSize, squareSize); + + /* Take a copy of the piece */ + if (White(piece)) + kind = 0; + else + kind = 2; + XSetFunction(xDisplay, bufGC, GXcopy); + XCopyArea(xDisplay, xpmPieceBitmap[kind][((int)piece) % 6], + buf, bufGC, + 0, 0, squareSize, squareSize, 0, 0); + + /* XOR the background (light) over the piece */ + XSetFunction(xDisplay, bufGC, GXxor); + if (useImageSqs) + XCopyArea(xDisplay, xpmLightSquare, buf, bufGC, + 0, 0, squareSize, squareSize, 0, 0); + else { + XSetForeground(xDisplay, bufGC, lightSquareColor); + XFillRectangle(xDisplay, buf, bufGC, 0, 0, squareSize, squareSize); + } + + /* We now have an inverted piece image with the background + erased. Construct mask by just selecting all the non-zero + pixels - no need to reconstruct the original image. */ + XSetFunction(xDisplay, maskGC, GXor); + plane = 1; + /* Might be quicker to download an XImage and create bitmap + data from it rather than this N copies per piece, but it + only takes a fraction of a second and there is a much + longer delay for loading the pieces. */ + for (n = 0; n < pieceDepth; n ++) { + XCopyPlane(xDisplay, buf, xpmMask[piece], maskGC, + 0, 0, squareSize, squareSize, + 0, 0, plane); + plane = plane << 1; + } + } + /* Clean up */ + XFreePixmap(xDisplay, buf); + XFreeGC(xDisplay, bufGC); + XFreeGC(xDisplay, maskGC); +} + +static void +InitAnimState (anim, info) + AnimState * anim; + XWindowAttributes * info; +{ + XtGCMask mask; + XGCValues values; + + /* Each buffer is square size, same depth as window */ + anim->saveBuf = XCreatePixmap(xDisplay, xBoardWindow, + squareSize, squareSize, info->depth); + anim->newBuf = XCreatePixmap(xDisplay, xBoardWindow, + squareSize, squareSize, info->depth); + + /* Create a plain GC for blitting */ + mask = GCForeground | GCBackground | GCFunction | + GCPlaneMask | GCGraphicsExposures; + values.foreground = XBlackPixel(xDisplay, xScreen); + values.background = XWhitePixel(xDisplay, xScreen); + values.function = GXcopy; + values.plane_mask = AllPlanes; + values.graphics_exposures = False; + anim->blitGC = XCreateGC(xDisplay, xBoardWindow, mask, &values); + + /* Piece will be copied from an existing context at + the start of each new animation/drag. */ + anim->pieceGC = XCreateGC(xDisplay, xBoardWindow, 0, &values); + + /* Outline will be a read-only copy of an existing */ + anim->outlineGC = None; +} + +static void +CreateAnimVars () +{ + static int done = 0; + XWindowAttributes info; + + if (done) return; + done = 1; + XGetWindowAttributes(xDisplay, xBoardWindow, &info); + + InitAnimState(&game, &info); + InitAnimState(&player, &info); + + /* For XPM pieces, we need bitmaps to use as masks. */ + if (useImages) + CreateAnimMasks(info.depth); +} + +#ifndef HAVE_USLEEP + +static Boolean frameWaiting; + +static RETSIGTYPE FrameAlarm (sig) + int sig; +{ + frameWaiting = False; + /* In case System-V style signals. Needed?? */ + signal(SIGALRM, FrameAlarm); +} + +static void +FrameDelay (time) + int time; +{ + struct itimerval delay; + + XSync(xDisplay, False); + + if (time > 0) { + frameWaiting = True; + signal(SIGALRM, FrameAlarm); + delay.it_interval.tv_sec = + delay.it_value.tv_sec = time / 1000; + delay.it_interval.tv_usec = + delay.it_value.tv_usec = (time % 1000) * 1000; + setitimer(ITIMER_REAL, &delay, NULL); +#if 0 + /* Ugh -- busy-wait! --tpm */ + while (frameWaiting); +#else + while (frameWaiting) pause(); +#endif + delay.it_interval.tv_sec = delay.it_value.tv_sec = 0; + delay.it_interval.tv_usec = delay.it_value.tv_usec = 0; + setitimer(ITIMER_REAL, &delay, NULL); + } +} + +#else + +static void +FrameDelay (time) + int time; +{ + XSync(xDisplay, False); + if (time > 0) + usleep(time * 1000); +} + +#endif + +/* Convert board position to corner of screen rect and color */ + +static void +ScreenSquare(column, row, pt, color) + int column; int row; XPoint * pt; int * color; +{ + if (flipView) { + pt->x = lineGap + ((BOARD_SIZE-1)-column) * (squareSize + lineGap); + pt->y = lineGap + row * (squareSize + lineGap); + } else { + pt->x = lineGap + column * (squareSize + lineGap); + pt->y = lineGap + ((BOARD_SIZE-1)-row) * (squareSize + lineGap); + } + *color = ((column + row) % 2) == 1; +} + +/* Convert window coords to square */ + +static void +BoardSquare(x, y, column, row) + int x; int y; int * column; int * row; +{ + *column = EventToSquare(x, BOARD_SIZE); + if (flipView && *column >= 0) + *column = BOARD_SIZE - 1 - *column; + *row = EventToSquare(y, BOARD_SIZE); + if (!flipView && *row >= 0) + *row = BOARD_SIZE - 1 - *row; +} + +/* Utilities */ + +#undef Max /* just in case */ +#undef Min +#define Max(a, b) ((a) > (b) ? (a) : (b)) +#define Min(a, b) ((a) < (b) ? (a) : (b)) + +static void +SetRect(rect, x, y, width, height) + XRectangle * rect; int x; int y; int width; int height; +{ + rect->x = x; + rect->y = y; + rect->width = width; + rect->height = height; +} + +/* Test if two frames overlap. If they do, return + intersection rect within old and location of + that rect within new. */ + +static Boolean +Intersect(old, new, size, area, pt) + XPoint * old; XPoint * new; + int size; XRectangle * area; XPoint * pt; +{ + if (old->x > new->x + size || new->x > old->x + size || + old->y > new->y + size || new->y > old->y + size) { + return False; + } else { + SetRect(area, Max(new->x - old->x, 0), Max(new->y - old->y, 0), + size - abs(old->x - new->x), size - abs(old->y - new->y)); + pt->x = Max(old->x - new->x, 0); + pt->y = Max(old->y - new->y, 0); + return True; + } +} + +/* For two overlapping frames, return the rect(s) + in the old that do not intersect with the new. */ + +static void +CalcUpdateRects(old, new, size, update, nUpdates) + XPoint * old; XPoint * new; int size; + XRectangle update[]; int * nUpdates; +{ + int count; + + /* If old = new (shouldn't happen) then nothing to draw */ + if (old->x == new->x && old->y == new->y) { + *nUpdates = 0; + return; + } + /* Work out what bits overlap. Since we know the rects + are the same size we don't need a full intersect calc. */ + count = 0; + /* Top or bottom edge? */ + if (new->y > old->y) { + SetRect(&(update[count]), old->x, old->y, size, new->y - old->y); + count ++; + } else if (old->y > new->y) { + SetRect(&(update[count]), old->x, old->y + size - (old->y - new->y), + size, old->y - new->y); + count ++; + } + /* Left or right edge - don't overlap any update calculated above. */ + if (new->x > old->x) { + SetRect(&(update[count]), old->x, Max(new->y, old->y), + new->x - old->x, size - abs(new->y - old->y)); + count ++; + } else if (old->x > new->x) { + SetRect(&(update[count]), new->x + size, Max(new->y, old->y), + old->x - new->x, size - abs(new->y - old->y)); + count ++; + } + /* Done */ + *nUpdates = count; +} + +/* Generate a series of frame coords from start->mid->finish. + The movement rate doubles until the half way point is + reached, then halves back down to the final destination, + which gives a nice slow in/out effect. The algorithmn + may seem to generate too many intermediates for short + moves, but remember that the purpose is to attract the + viewers attention to the piece about to be moved and + then to where it ends up. Too few frames would be less + noticeable. */ + +static void +Tween(start, mid, finish, factor, frames, nFrames) + XPoint * start; XPoint * mid; + XPoint * finish; int factor; + XPoint frames[]; int * nFrames; +{ + int fraction, n, count; + + count = 0; + + /* Slow in, stepping 1/16th, then 1/8th, ... */ + fraction = 1; + for (n = 0; n < factor; n++) + fraction *= 2; + for (n = 0; n < factor; n++) { + frames[count].x = start->x + (mid->x - start->x) / fraction; + frames[count].y = start->y + (mid->y - start->y) / fraction; + count ++; + fraction = fraction / 2; + } + + /* Midpoint */ + frames[count] = *mid; + count ++; + + /* Slow out, stepping 1/2, then 1/4, ... */ + fraction = 2; + for (n = 0; n < factor; n++) { + frames[count].x = finish->x - (finish->x - mid->x) / fraction; + frames[count].y = finish->y - (finish->y - mid->y) / fraction; + count ++; + fraction = fraction * 2; + } + *nFrames = count; +} + +/* Draw a piece on the screen without disturbing what's there */ + +static void +SelectGCMask(piece, clip, outline, mask) + ChessSquare piece; GC * clip; GC * outline; Pixmap * mask; +{ + GC source; + + /* Bitmap for piece being moved. */ + if (appData.monoMode) { + *mask = *pieceToSolid(piece); + } else if (useImages) { +#if HAVE_LIBXPM + *mask = xpmMask[piece]; +#else + *mask = ximMaskPm[piece%6]; +#endif + } else { + *mask = *pieceToSolid(piece); + } + + /* GC for piece being moved. Square color doesn't matter, but + since it gets modified we make a copy of the original. */ + if (White(piece)) { + if (appData.monoMode) + source = bwPieceGC; + else + source = wlPieceGC; + } else { + if (appData.monoMode) + source = wbPieceGC; + else + source = blPieceGC; + } + XCopyGC(xDisplay, source, 0xFFFFFFFF, *clip); + + /* Outline only used in mono mode and is not modified */ + if (White(piece)) + *outline = bwPieceGC; + else + *outline = wbPieceGC; +} + +static void +OverlayPiece(piece, clip, outline, dest) + ChessSquare piece; GC clip; GC outline; Drawable dest; +{ + int kind; + + if (!useImages) { + /* Draw solid rectangle which will be clipped to shape of piece */ + XFillRectangle(xDisplay, dest, clip, + 0, 0, squareSize, squareSize); + if (appData.monoMode) + /* Also draw outline in contrasting color for black + on black / white on white cases */ + XCopyPlane(xDisplay, *pieceToOutline(piece), dest, outline, + 0, 0, squareSize, squareSize, 0, 0, 1); + } else { + /* Copy the piece */ + if (White(piece)) + kind = 0; + else + kind = 2; + XCopyArea(xDisplay, xpmPieceBitmap[kind][((int)piece) % 6], + dest, clip, + 0, 0, squareSize, squareSize, + 0, 0); + } +} + +/* Animate the movement of a single piece */ + +static void +BeginAnimation(anim, piece, startColor, start) + AnimState *anim; + ChessSquare piece; + int startColor; + XPoint * start; +{ + Pixmap mask; + + /* The old buffer is initialised with the start square (empty) */ + BlankSquare(0, 0, startColor, EmptySquare, anim->saveBuf); + anim->prevFrame = *start; + + /* The piece will be drawn using its own bitmap as a matte */ + SelectGCMask(piece, &anim->pieceGC, &anim->outlineGC, &mask); + XSetClipMask(xDisplay, anim->pieceGC, mask); +} + +static void +AnimationFrame(anim, frame, piece) + AnimState *anim; + XPoint *frame; + ChessSquare piece; +{ + XRectangle updates[4]; + XRectangle overlap; + XPoint pt; + int count, i; + + /* Save what we are about to draw into the new buffer */ + XCopyArea(xDisplay, xBoardWindow, anim->newBuf, anim->blitGC, + frame->x, frame->y, squareSize, squareSize, + 0, 0); + + /* Erase bits of the previous frame */ + if (Intersect(&anim->prevFrame, frame, squareSize, &overlap, &pt)) { + /* Where the new frame overlapped the previous, + the contents in newBuf are wrong. */ + XCopyArea(xDisplay, anim->saveBuf, anim->newBuf, anim->blitGC, + overlap.x, overlap.y, + overlap.width, overlap.height, + pt.x, pt.y); + /* Repaint the areas in the old that don't overlap new */ + CalcUpdateRects(&anim->prevFrame, frame, squareSize, updates, &count); + for (i = 0; i < count; i++) + XCopyArea(xDisplay, anim->saveBuf, xBoardWindow, anim->blitGC, + updates[i].x - anim->prevFrame.x, + updates[i].y - anim->prevFrame.y, + updates[i].width, updates[i].height, + updates[i].x, updates[i].y); + } else { + /* Easy when no overlap */ + XCopyArea(xDisplay, anim->saveBuf, xBoardWindow, anim->blitGC, + 0, 0, squareSize, squareSize, + anim->prevFrame.x, anim->prevFrame.y); + } + + /* Save this frame for next time round */ + XCopyArea(xDisplay, anim->newBuf, anim->saveBuf, anim->blitGC, + 0, 0, squareSize, squareSize, + 0, 0); + anim->prevFrame = *frame; + + /* Draw piece over original screen contents, not current, + and copy entire rect. Wipes out overlapping piece images. */ + OverlayPiece(piece, anim->pieceGC, anim->outlineGC, anim->newBuf); + XCopyArea(xDisplay, anim->newBuf, xBoardWindow, anim->blitGC, + 0, 0, squareSize, squareSize, + frame->x, frame->y); +} + +static void +EndAnimation (anim, finish) + AnimState *anim; + XPoint *finish; +{ + XRectangle updates[4]; + XRectangle overlap; + XPoint pt; + int count, i; + + /* The main code will redraw the final square, so we + only need to erase the bits that don't overlap. */ + if (Intersect(&anim->prevFrame, finish, squareSize, &overlap, &pt)) { + CalcUpdateRects(&anim->prevFrame, finish, squareSize, updates, &count); + for (i = 0; i < count; i++) + XCopyArea(xDisplay, anim->saveBuf, xBoardWindow, anim->blitGC, + updates[i].x - anim->prevFrame.x, + updates[i].y - anim->prevFrame.y, + updates[i].width, updates[i].height, + updates[i].x, updates[i].y); + } else { + XCopyArea(xDisplay, anim->saveBuf, xBoardWindow, anim->blitGC, + 0, 0, squareSize, squareSize, + anim->prevFrame.x, anim->prevFrame.y); + } +} + +static void +FrameSequence(anim, piece, startColor, start, finish, frames, nFrames) + AnimState *anim; + ChessSquare piece; int startColor; + XPoint * start; XPoint * finish; + XPoint frames[]; int nFrames; +{ + int n; + + BeginAnimation(anim, piece, startColor, start); + for (n = 0; n < nFrames; n++) { + AnimationFrame(anim, &(frames[n]), piece); + FrameDelay(appData.animSpeed); + } + EndAnimation(anim, finish); +} + +/* Main control logic for deciding what to animate and how */ + +void +AnimateMove(board, fromX, fromY, toX, toY) + Board board; + int fromX; + int fromY; + int toX; + int toY; +{ + ChessSquare piece; + int hop; + XPoint start, finish, mid; + XPoint frames[kFactor * 2 + 1]; + int nFrames, startColor, endColor; + + /* Are we animating? */ + if (!appData.animate || appData.blindfold) + return; + + if (fromY < 0 || fromX < 0 || toX < 0 || toY < 0) return; + piece = board[fromY][fromX]; + if (piece >= EmptySquare) return; + +#if DONT_HOP + hop = FALSE; +#else + hop = (piece == WhiteKnight || piece == BlackKnight); +#endif + + if (appData.debugMode) { + printf("AnimateMove: piece %d %s from %d,%d to %d,%d \n", + piece, hop ? "hops" : "slides", fromX, fromY, toX, toY); + } + + ScreenSquare(fromX, fromY, &start, &startColor); + ScreenSquare(toX, toY, &finish, &endColor); + + if (hop) { + /* Knight: make diagonal movement then straight */ + if (abs(toY - fromY) < abs(toX - fromX)) { + mid.x = start.x + (finish.x - start.x) / 2; + mid.y = finish.y; + } else { + mid.x = finish.x; + mid.y = start.y + (finish.y - start.y) / 2; + } + } else { + mid.x = start.x + (finish.x - start.x) / 2; + mid.y = start.y + (finish.y - start.y) / 2; + } + + /* Don't use as many frames for very short moves */ + if (abs(toY - fromY) + abs(toX - fromX) <= 2) + Tween(&start, &mid, &finish, kFactor - 1, frames, &nFrames); + else + Tween(&start, &mid, &finish, kFactor, frames, &nFrames); + FrameSequence(&game, piece, startColor, &start, &finish, frames, nFrames); + + /* Be sure end square is redrawn */ + damage[toY][toX] = True; +} + +static void +DragPieceBegin(x, y) + int x; int y; +{ + int boardX, boardY, color; + XPoint corner; + + /* Are we animating? */ + if (!appData.animateDragging || appData.blindfold) + return; + + /* Figure out which square we start in and the + mouse position relative to top left corner. */ + BoardSquare(x, y, &boardX, &boardY); + player.startBoardX = boardX; + player.startBoardY = boardY; + ScreenSquare(boardX, boardY, &corner, &color); + player.startSquare = corner; + player.startColor = color; +#if 0 + /* Start from exactly where the piece is. This can be confusing + if you start dragging far from the center of the square; most + or all of the piece can be over a different square from the one + the mouse pointer is in. */ + player.mouseDelta.x = x - corner.x; + player.mouseDelta.y = y - corner.y; +#else + /* As soon as we start dragging, the piece will jump slightly to + be centered over the mouse pointer. */ + player.mouseDelta.x = squareSize/2; + player.mouseDelta.y = squareSize/2; +#endif + /* Initialise animation */ + player.dragPiece = PieceForSquare(boardX, boardY); + /* Sanity check */ + if (player.dragPiece >= 0 && player.dragPiece < EmptySquare) { + player.dragActive = True; + BeginAnimation(&player, player.dragPiece, color, &corner); + /* Mark this square as needing to be redrawn. Note that + we don't remove the piece though, since logically (ie + as seen by opponent) the move hasn't been made yet. */ + damage[boardY][boardX] = True; + } else { + player.dragActive = False; + } +} + +static void +DragPieceMove(x, y) + int x; int y; +{ + XPoint corner; + + /* Are we animating? */ + if (!appData.animateDragging || appData.blindfold) + return; + + /* Sanity check */ + if (! player.dragActive) + return; + /* Move piece, maintaining same relative position + of mouse within square */ + corner.x = x - player.mouseDelta.x; + corner.y = y - player.mouseDelta.y; + AnimationFrame(&player, &corner, player.dragPiece); +#if HIGHDRAG + if (appData.highlightDragging) { + int boardX, boardY; + BoardSquare(x, y, &boardX, &boardY); + SetHighlights(fromX, fromY, boardX, boardY); + } +#endif +} + +static void +DragPieceEnd(x, y) + int x; int y; +{ + int boardX, boardY, color; + XPoint corner; + + /* Are we animating? */ + if (!appData.animateDragging || appData.blindfold) + return; + + /* Sanity check */ + if (! player.dragActive) + return; + /* Last frame in sequence is square piece is + placed on, which may not match mouse exactly. */ + BoardSquare(x, y, &boardX, &boardY); + ScreenSquare(boardX, boardY, &corner, &color); + EndAnimation(&player, &corner); + + /* Be sure end square is redrawn */ + damage[boardY][boardX] = True; + + /* This prevents weird things happening with fast successive + clicks which on my Sun at least can cause motion events + without corresponding press/release. */ + player.dragActive = False; +} + +/* Handle expose event while piece being dragged */ + +static void +DrawDragPiece () +{ + if (!player.dragActive || appData.blindfold) + return; + + /* What we're doing: logically, the move hasn't been made yet, + so the piece is still in it's original square. But visually + it's being dragged around the board. So we erase the square + that the piece is on and draw it at the last known drag point. */ + BlankSquare(player.startSquare.x, player.startSquare.y, + player.startColor, EmptySquare, xBoardWindow); + AnimationFrame(&player, &player.prevFrame, player.dragPiece); + damage[player.startBoardY][player.startBoardX] = TRUE; +} + diff --git a/xboard.h b/xboard.h new file mode 100644 index 0000000..119d604 --- /dev/null +++ b/xboard.h @@ -0,0 +1,117 @@ +/* + * xboard.h -- Parameter definitions for X front end + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#include + +#define ICS_LOGON ".icsrc" +#define INFOFILE "xboard.info" +#define MANPAGE "xboard.6" +#define CLOCK_FONT "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*" +#define COORD_FONT "-*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*" +#define DEFAULT_FONT "-*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*" +#define COLOR_SHOUT "green" +#define COLOR_SSHOUT "green,black,1" +#define COLOR_CHANNEL1 "cyan" +#define COLOR_CHANNEL "cyan,black,1" +#define COLOR_KIBITZ "magenta,black,1" +#define COLOR_TELL "yellow,black,1" +#define COLOR_CHALLENGE "red,black,1" +#define COLOR_REQUEST "red" +#define COLOR_SEEK "blue" +#define COLOR_NORMAL "default" + +typedef struct { + char *name; + int squareSize; + int lineGap; + int clockFontPxlSize; + int coordFontPxlSize; + int fontPxlSize; + int smallLayout; + int tinyLayout; + int minScreenSize; +} SizeDefaults; + +#define SIZE_DEFAULTS \ +{ { "Titanic", 129, 4, 34, 14, 14, 0, 0, 1200 }, \ + { "Colossal", 116, 4, 34, 14, 14, 0, 0, 1200 }, \ + { "Giant", 108, 3, 34, 14, 14, 0, 0, 1024 }, \ + { "Huge", 95, 3, 34, 14, 14, 0, 0, 1024 }, \ + { "Big", 87, 3, 34, 14, 14, 0, 0, 864 }, \ + { "Large", 80, 3, 34, 14, 14, 0, 0, 864 }, \ + { "Bulky", 72, 3, 34, 12, 14, 0, 0, 864 }, \ + { "Medium", 64, 3, 34, 12, 14, 0, 0, 768 }, \ + { "Moderate", 58, 3, 34, 12, 14, 0, 0, 768 }, \ + { "Average", 54, 2, 30, 11, 12, 0, 0, 600 }, \ + { "Middling", 49, 2, 24, 10, 12, 0, 0, 600 }, \ + { "Mediocre", 45, 2, 20, 10, 12, 1, 0, 600 }, \ + { "Small", 40, 2, 20, 10, 12, 1, 0, 480 }, \ + { "Slim", 37, 2, 20, 10, 12, 1, 0, 480 }, \ + { "Petite", 33, 1, 15, 9, 11, 1, 0, 480 }, \ + { "Dinky", 29, 1, 15, 9, 11, 1, 0, 480 }, \ + { "Teeny", 25, 1, 12, 8, 11, 1, 1, 480 }, \ + { "Tiny", 21, 1, 12, 8, 11, 1, 1, 0 }, \ + { NULL, 0, 0, 0, 0, 0, 0 } } + +#define BORDER_X_OFFSET 3 +#define BORDER_Y_OFFSET 27 +#define FIRST_CHESS_PROGRAM "gnuchessx" +#define SECOND_CHESS_PROGRAM "gnuchessx" + +/* Default to no flashing (the "usual" XBoard behavior) */ +#define FLASH_COUNT 0 /* Number of times to flash */ +#define FLASH_RATE 5 /* Flashes per second */ + +/* Default delay per character (in msec) while sending login script */ +#define MS_LOGIN_DELAY 0 + +typedef int (*FileProc) P((FILE *f, int n, char *title)); +void CatchDeleteWindow(Widget w, String procname); + +#define TOPLEVEL 1 /* preference item; 1 = make popup windows toplevel */ + diff --git a/xboard.man b/xboard.man new file mode 100644 index 0000000..e19628b --- /dev/null +++ b/xboard.man @@ -0,0 +1,2381 @@ +.\" $Id$ +.TH xboard 6 "$Date$" "GNU" +.SH NAME +.PP +xboard \- X user interface for GNU Chess, Crafty, the Internet Chess Server (ICS), +and electronic mail correspondence chess. +.SH SYNOPSIS +.PP +To run with GNU Chess: +.B xboard [options] +.br +To run with Crafty: +.B xboard -fcp crafty -fd \fIcrafty's-directory\fB [options] +.br +To run with the ICS: +.B xboard -ics -icshost hostname [options] +.br +To play email chess: See +.BR cmail (6). +.br +To run standalone: +.B xboard -ncp [options] +.br +To use in a pipeline: +.B |pxboard +.SH DESCRIPTION +.PP +.BR xboard +is a graphical chessboard that can serve as a +user interface to the GNU Chess and Crafty chess engines, the +Internet Chess Servers, +electronic mail correspondence chess, or your own collection of saved games. +.PP +As an interface to GNU Chess or Crafty, +xboard +lets you play a game against the machine, +set up arbitrary positions, +force variations, or watch +a game between two machines. +.PP +As an interface to Crafty, +xboard +also lets you interactively analyze your stored games +or set up and analyze arbitrary positions. +.PP +As an interface to the Internet Chess Server (ICS), +.B xboard -ics +lets you play against other ICS users, +observe games they are playing, or review +games that have recently finished. +Most of the "wild" chess variants on ICS are supported, +including bughouse. +.PP +As an interface to electronic mail correspondence chess, +xboard +works with the +.BR cmail (6) +program. See its manual page for instructions. +.PP +You can also use +xboard +as a chessboard to play through games. +It will read and write game files and allow you to play +through variations manually. +You can use it to browse games off the net +or review games you have saved. +These features are available at all times; if you want to use +them without starting a chess engine or connecting to the ICS, +you can do so with the command +.BR "xboard -ncp" . +.PP +To view games from a netnews reader like +.BR rn (1) +or +.BR xrn (1), +use the news reader's Save command and specify "|pxboard" +as the save +file name. This pipes the article to +.BR pxboard , +a simple shell script that saves the article to a temporary file and runs +xboard +in the background. See the script itself for more information. +.PP +To move a piece, either drag it with the left mouse button, +or click the left mouse button once on the piece, then once more on +the destination square. +To drop a new piece on a square (when applicable), +press button 2 or 3 over the square and select from the popup menu. +.PP +When +xboard +is iconized, its graphical icon is a white knight if it is White's turn to +move, a black knight if it is Black's turn. See +.B Iconize +below if you have problems getting this feature to work. +.SH MENU COMMANDS, BUTTONS, AND KEYS +.PP +All +xboard +commands are available on menus. The most frequently used +commands also have shortcut keys or on-screen buttons. +.SH File Menu +.TP 8 +.B Reset +Resets +xboard +and the chess engine to the beginning of a new chess game. +The "r" key is a keyboard equivalent. +In Internet Chess Server mode, clears the current state of +xboard, +then resynchronizes with ICS by sending a +.IR refresh +command. +If you want to stop playing, observing, or examining a game +on ICS, use an appropriate command from the +Action menu, not Reset. +.TP 8 +.B Load Game +Plays a game from a record file. +The "g" key is a keyboard equivalent. +A popup dialog prompts you for the file name. +If the file contains more than one game, a second popup dialog displays +a list of games (with information drawn from their PGN tags, if any), and you +can select the one you want. +Alternatively, you can load the +.IR N th +game in the file directly from the file name dialog, by typing the number +.IR N +after the file name, separated by a space. + +The game file parser will accept PGN (portable game notation), or +in fact almost any file that contains moves in algebraic notation. +Notation of the form "P@f7" is accepted for piece-drops in bughouse games; +this is a nonstandard extension to PGN. +If the file includes a PGN position (FEN tag), or an old-style +xboard +position diagram +bracketed by "[--" and "--]" before the +first move, the game starts from that position. +Text enclosed in parentheses, square brackets, or curly braces +is assumed to be commentary and is displayed in a pop-up window. +Any other text in the file is ignored. PGN variations (enclosed in +parentheses) are treated as comments; +xboard +is not able to walk variation trees. +The nonstandard PGN tag [Variant "varname"] functions similarly to +the -variant command-line option (see below), allowing games in certain chess +variants to be loaded. There is also a heuristic to +recognize chess variants from the Event tag, by looking for the strings +that the Internet Chess Servers put there when saving variant ("wild") games. +.TP 8 +.B Load Next Game +Loads the next game from the last game record file you loaded. +The shifted "N" key is a keyboard equivalent. +.TP 8 +.B Load Previous Game +Loads the previous game from the last game record file you loaded. +The shifted "P" key is a keyboard equivalent. +Not available if the last game was loaded from a pipe. +.TP 8 +.B Reload Same Game +Reloads the last game you loaded. +Not available if the last game was loaded from a pipe. +.TP 8 +.B Save Game +Appends a record of the current game to a file. +A popup dialog prompts you for the file name. +If the game did not begin with the standard starting position, +the game file includes the starting position used. +Games are saved in the PGN (portable game notation) format, +unless the oldSaveStyle option is +True, in which case they are saved in an older format that is specific to +xboard. +Both formats are human-readable, and both can be read back by the Load Game +command. +Notation of the form "P@f7" is generated for piece-drops in bughouse games; +this is a nonstandard extension to PGN. +.TP 8 +.B Copy Game +Copies a record of the current game to an internal clipboard in PGN +format and sets the X selection to the game text. The game can be +pasted to another application (such as a text editor or another copy +of xboard) using that application's paste command. In many X +applications, such as xterm and emacs, the middle mouse button can be +used for pasting; in xboard, you must use the Paste Game command. +.TP 8 +.B Paste Game +Interprets the current X selection as a game record and loads it, as +with Load Game. +.TP 8 +.B Load Position +Sets up a position from a position file. +A popup dialog prompts you for the file name. +If the file contains more than one saved position, and you want +to load the +.IR N th +one, type the number +.IR N +after the file name, separated by a space. +Position files must be in FEN (Forsythe-Edwards notation), or in the format +that the Save Position command writes when oldSaveStyle is turned on. +.TP 8 +.B Load Next Position +Loads the next position from the last position file you loaded. +.TP 8 +.B Load Previous Position +Loads the previous position from the last position file you loaded. +Not available if the last position was loaded from a pipe. +.TP 8 +.B Reload Same Position +Reloads the last position you loaded. +Not available if the last position was loaded from a pipe. +.TP 8 +.B Save Position +Appends a diagram of the current position to a file. +A popup dialog prompts you for the file name. +Positions are saved in FEN (Forsythe-Edwards notation) format unless +the oldSaveStyle option is True, in which case they are saved in an older, +human-readable format that is specific to +xboard. +Both formats can be read back by the Load Position command. +.TP 8 +.B Copy Position +Copies the current position to an internal clipboard in FEN format and +sets the X selection to the position text. The position can be pasted +to another application (such as a text editor or another copy of +xboard) using that application's paste command. In many X +applications, such as xterm and emacs, the middle mouse button can be +used for pasting; in xboard, you must use the Paste Position command. +.TP 8 +.B Paste Position +Interprets the current X selection as a FEN position and loads it, as +with Load Position. +.TP 8 +.B Mail Move +.PD 0 +.TP 8 +.B Reload CMail Message +See the manual page for +.BR cmail (6). +.PD +.TP 8 +.B Exit +Exits from +xboard. +The shifted "Q" key is a keyboard equivalent. +.SH Mode Menu +.TP 8 +.B Machine White +Tells the chess engine to play White. +.TP 8 +.B Machine Black +Tells the chess engine to play Black. +.TP 8 +.B Two Machines +Plays a game between two chess engines. +.TP 8 +.B Analysis Mode +Puts XBoard in analysis mode on the current edited position or game. +This mode requires that you use a chess engine that supports analysis, +such as Crafty; GNU Chess will not work. +See the manual section +GETTING CRAFTY +for more information on getting and installing Crafty. +.TP 8 +.B Analyze File +This mode lets you load a game from a file (PGN, etc.) and use a chess engine +to interactively analyze it. +This mode requires that you use a chess engine that supports analysis, +such as Crafty; GNU Chess will not work. +See the manual section +GETTING CRAFTY +for more information on getting and installing Crafty. +.TP 8 +.B ICS Client +This is the normal mode when +.I xboard +is connected to a chess server. If you have moved into +Edit Game or Edit Position mode, you can select this option to get out. + +To use xboard in ICS mode, run it in the foreground with the -ics +option, and use the +terminal you started it from to type commands and receive text responses +from the chess server. Useful ICS commands include +.IR who +to see who is logged on, +.IR games +to see what games are being played, +.IR match +to challenge another player to a game, +.IR observe +to observe an ongoing game, +.IR examine +or +.IR oldmoves +to review a recently completed game, +and of course +.IR help . + +Some special +xboard +features are activated when you are in +.IR examine +or +.IR bsetup +mode on ICS. See the descriptions of the menu commands +Forward, Backward, Pause, ICS Client, and Stop Examining below. +You can also issue the ICS position-editing commands with the mouse. +Move pieces by dragging with mouse button 1. +To drop a new piece on a square, press mouse button 2 or 3 +over the square. This brings up a menu of white pieces (button 2) or black +pieces (button 3). Additional menu choices let you empty the square or +clear the board. Click on the White or Black clock to set the side to play. +You cannot set the side to play or drag pieces to arbitrary squares while +examining on ICC, but you can do so in bsetup mode on FICS. + +If you are playing a bughouse game on the ICS, you can drop an offboard piece +by pressing mouse button 2 or 3 over an empty square to bring up a piece menu. +It makes no difference which button you use. A list of the offboard pieces +each player has available is shown in the window title after the player's name. +.TP 8 +.B Edit Game +Allows you to make moves for both Black and White, and +to change moves after backing up with the Backward command. +The clocks do not run. + +In chess engine mode, the chess engine continues to check moves for +legality but does not participate in the game. You can bring the +chess engine back into the game by selecting Machine White, Machine Black, +or Two Machines. + +In ICS mode, the moves are not sent to the ICS: +Edit Game takes +xboard +out of ICS Client mode and lets you edit games locally. +If you want to edit +games on ICS in a way that other ICS users can see, +use the ICS +.IR examine +command or start an ICS match against yourself. +.TP 8 +.B Edit Position +Lets you set up an arbitrary board position. +Use mouse button 1 to drag pieces to new squares, or to +delete a piece by dragging it off the board or dragging an empty square +on top of it. To drop a new piece on a square, press mouse button 2 or 3 +over the square. This brings up a menu of white pieces (button 2) or black +pieces (button 3). Additional menu choices let you empty the square or +clear the board. You can set the side to play next +by clicking on the White or Black indicator at the top of the screen. +Selecting Edit Position causes +xboard +to discard all remembered moves in the current game. + +In ICS mode, changes made to the position by Edit Position +are not sent to the ICS: Edit Position takes +xboard +out of ICS Client mode and lets you edit positions locally. +If you want to edit +positions on ICS in a way that other ICS users can see, +use the ICS +.IR examine +command, or start an ICS match against yourself. +(See also the ICS Client topic above.) +.TP 8 +.B Training +Training mode lets you interactively guess the moves of a game for one +of the players. You guess the next move of the game by playing the +move on the board. If the move played matches the next move of the +game, the move is accepted and the opponent's response is autoplayed. +If the move played is incorrect, an error message is displayed. You +can select this mode only while loading a game (that is, after +selecting Load Game from the File menu). While xboard is in Training +mode, the navigation buttons are disabled. +.TP 8 +.B Show Game List +Shows or hides the list of games generated by the last Load Game command. +.TP 8 +.B Edit Tags +Lets you edit the PGN (portable game notation) +tags for the current game. After editing, the tags must still conform to +the PGN tag syntax: + +.nf + ::= + + ::= [ ] + ::= + ::= +.fi + +See the PGN Standard for full details. Here is an example: + +.nf + [Event "Portoroz Interzonal"] + [Site "Portoroz, Yugoslavia"] + [Date "1958.08.16"] + [Round "8"] + [White "Robert J. Fischer"] + [Black "Bent Larsen"] + [Result "1-0"] +.fi + +Any characters that do not match this syntax are silently ignored. Note that +the PGN standard requires all games to have at least the seven tags shown +above. Any that you omit will be filled in by +xboard +with "?" (unknown value), or "-" (inapplicable value). +.TP 8 +.B Edit Comment +Adds or modifies a comment on the current position. Comments are +saved by Save Game and are displayed by Load Game, Forward, and Backward. +.TP 8 +.B ICS Input Box +If this mode is on in ICS mode, +xboard +creates an extra window that you can use for typing in ICS commands. +The input box is especially useful if you want to type in something long or do +some editing on your input, because output from ICS doesn't get mixed +in with your typing as it would in the main terminal window. +.TP 8 +.B Pause +Pauses updates to the board, and if you are playing +against a local chess engine, also pauses your clock. +To continue, select Pause again, and the display will automatically +update to the latest position. +The [P] button and keyboard "p" key are equivalents. + +If you select Pause when you are playing against a local chess engine and +it is not your move, the engine's clock +will continue to run and it will eventually make a move, at which point +both clocks will stop. Since board updates are paused, however, +you will not see the move until you exit from Pause mode (or select Forward). +This behavior is meant to simulate adjournment with a sealed move. + +If you select Pause while you are in +.IR examine +mode on ICS, you can step +backward and forward in the current history of the examined game without +affecting the other observers and examiners. Select Pause again to reconnect +yourself to the current state of the game on ICS. + +If you select Pause while you are loading a game, the +game stops loading. +You can load more moves manually by selecting Forward, or resume automatic +loading by selecting Pause again. +.SH Action Menu +.TP 8 +.B Accept +Accepts a pending ICS match offer. +If there is more than one offer pending, you will have to type in a more +specific command instead of using this menu choice. +.TP 8 +.B Decline +Declines a pending ICS offer (match, draw, adjourn, etc.). +If there is more than one offer pending, you will have to type in a more +specific command instead of using this menu choice. +.TP 8 +.B Call Flag +Calls your opponent's flag, claiming a win on time, or claiming a draw +if you are both out of time. You can also call your opponent's flag +by clicking on his clock or by pressing the keyboard "t" key. +.TP 8 +.B Draw +Offers a draw to your opponent, accepts a pending draw offer +from your opponent, or claims a draw by repetition or the 50-move +rule, as appropriate. The "d" key is a keyboard equivalent. +.TP 8 +.B Adjourn +Asks your opponent to agree to adjourning the current game, or +agrees to a pending adjournment offer from your opponent. +.TP 8 +.B Abort +Asks your opponent to agree to aborting the current game, or +agrees to a pending abort offer from your opponent. +An aborted ICS game ends immediately without affecting either player's rating. +.TP 8 +.B Resign +Resigns the game to your opponent. The shifted "R" key is a keyboard +equivalent. +.TP 8 +.B Stop Observing +Ends your participation in observing a game, by issuing the ICS +.IR observe +command with no arguments. +.TP 8 +.B Stop Examining +Ends your participation in examining a game, by issuing the ICS +.IR unexamine +command. +.SH Step Menu +.TP 8 +.B Backward +Steps backward through a series of remembered moves. +The [<] button and the "b" key are equivalents. +In addition, pressing the Control key steps back one move, and releasing +it steps forward again. + +In most modes, Backward only lets you look back at +old positions; it does not retract moves. +This is the case if you are playing against a local chess engine, playing or +observing a game on the ICS, or loading a game. If you select Backward in any +of these situations, you will not be allowed to make a different move. +Use Retract Move or Edit Game if you want to change past moves. + +If you are examining a game on ICS, the behavior of +Backward depends on whether +xboard +is in Pause mode. +If Pause mode is off, Backward issues the ICS +.IR backward +command, which +backs up everyone's view of the game and allows you to make a different move. +If Pause mode is on, Backward only backs up your local view. +.TP 8 +.B Forward +Steps forward through a series of remembered moves (undoing the effect of +Backward) or forward through a game file. +The [>] button and the f key are equivalents. + +If you are examining a game on ICS, the behavior of +Forward depends on whether +xboard +is in Pause mode. +If Pause mode is off, Forward issues the ICS +.IR forward +command, which +moves everyone's view of the game forward along the current line. +If Pause mode is on, Forward only moves your local view forward, and it +will not go past the position that the game was in when you paused. +.TP 8 +.B Back to Start +Jumps backward to the first remembered position in the game. +The [<<] button and the shifted "B" key are equivalents. + +In most modes, Back to Start only lets you look back at +old positions; it does not retract moves. +This is the case if you are playing against a local chess engine, playing or +observing a game on the ICS, or loading a game. If you select Back to +Start in any +of these situations, you will not be allowed to make different moves. +Use Retract Move or Edit Game if you want to change past moves; or +use Reset to start a new game. + +If you are examining a game on ICS, the behavior of +Back to Start depends on whether +xboard +is in Pause mode. +If Pause mode is off, Back to Start issues the ICS +.I backward 999999 +command, which +backs up everyone's view of the game to the start and allows you to make +different moves. +If Pause mode is on, Back to Start only backs up your local view. +.TP 8 +.B Forward to End +Jumps forward to the last remembered position in the game. +The [>>] button and the shifted "F" key are equivalents. + +If you are examining a game on ICS, the behavior of +Forward to End depends on whether +xboard +is in Pause mode. +If Pause mode is off, Forward to End issues the ICS +.I forward 999999 +command, which moves everyone's view of the game forward to the end +of the current line. +If Pause mode is on, Forward to End only moves your local view forward, and it +will not go past the position that the game was in when you paused. +.TP 8 +.B Revert +If you are examining a game on ICS and Pause mode is off, +issues the ICS command +.IR revert . +.TP 8 +.B Truncate Game +Discards all remembered moves of the game beyond the current position. +Puts +xboard +into Edit Game mode if it was not there already. +.TP 8 +.B Move Now +Forces the chess engine to move immediately. May not work with all +chess engines. +.TP 8 +.B Retract Move +Retracts your last move. +When playing a local chess engine, you can do this only after the +engine has replied to your move; if it is still thinking, use Move Now first. +In ICS mode, Retract Move issues the command +.I takeback 1 +or +.I takeback 2 +depending on whether it is your opponent's move or yours. +.SH Options Menu +.TP 8 +.B Always Queen +If this option is off, +xboard +brings up a dialog box whenever you move a pawn to the last rank, +asking what piece you want to promote it to. +If the option is on, your pawns are always promoted to +queens. Your opponent can still underpromote. +.TP 8 +.B Animate Dragging +If Animate Dragging is on, while you are dragging a piece with the +mouse, an image of the piece follows the mouse cursor. +If Animate Dragging is off, there is no visual feedback while you are +dragging a piece, but if Animate Moving is on, the move will be +animated when it is complete. +.TP 8 +.B Animate Moving +If Animate Moving is on, all piece moves are animated. An image of the +piece is shown moving from the old square to the new square when the +move is completed (unless the move was already animated by Animate Dragging). +If Animate Moving is off, a moved piece instantly disappears from its +old square and reappears on its new square when the move is complete. +.TP 8 +.B Auto Comment +If this option is on, any remarks made on ICS while you are observing or +playing a game are recorded as a comment on the current move. This includes +remarks made with the ICS commands +.I say, tell, whisper, +and +.I kibitz. +Limitation: remarks that you type yourself are not recognized; +xboard +scans only the output from ICS, not the input you type to it. +.TP 8 +.B Auto Flag +If this option is on and one player runs out of time +before the other, +xboard +will automatically call his flag, claiming a win on time. +In ICS mode, Auto Flag will only call your opponent's flag, not yours, +and the ICS may award you a draw instead of a win if you have +insufficient mating material. In local chess engine mode, +xboard +may call either player's flag and will not take material into account. +.TP 8 +.B Auto Flip View +If the Auto Flip View option is on when you start a game, the board +will be automatically oriented so that your pawns move from the bottom +of the window towards the top. +.TP 8 +.B Auto Observe +If this option is on and you add a player to your +.IR gnotify +list on ICS, +xboard +will automatically observe all of that player's games, unless you are +doing something else (such as observing or playing a game of your own) when +one starts. +The games are displayed +from the point of view of the player on your gnotify list; that is, his +pawns move from the bottom of the window towards the top. +Exceptions: If both players in a game are on your gnotify list, if +your ICS +.IR highlight +variable is set to 0, or if the ICS you are using does not +properly support observing from Black's point of view, +you will see the game from White's point of view. +.TP 8 +.B Auto Raise Board +If this option is on, whenever a new game begins, the chessboard window +is deiconized (if necessary) and raised to the top of the stack of windows. +.TP 8 +.B Auto Save +If this option is on, at the end of every game +xboard +prompts you for a file name and appends a record +of the game to the file you specify. Disabled if the saveGameFile +option is set, as in that case all games are saved to the specified file. +.TP 8 +.B Blindfold +If this option is on, xboard displays the board as usual but does +not display pieces or move highlights. You can still move in the +usual way (with the mouse or by typing moves in ICS mode), even though +the pieces are invisible. +.TP 8 +.B Flash Moves +If this option is on, whenever a move is completed, the moved piece flashes. +The number of times to flash is set by the flashCount command-line +option; it defaults to 3 if Flash Moves is first turned on from the menu. +.TP 8 +.B Flip View +Inverts your view of the chess board for the duration of the current +game. Starting a new game returns the board to normal. +The "v" key is a keyboard equivalent. + +If you are +playing a game on the ICS, the board is always +oriented at the start of the game so that your +pawns move from the bottom of the window towards the top. +Otherwise, the starting orientation is determined by the flipView command line +option; if it is False (the default), White's pawns move from bottom +to top at the start of each game; if it is True, Black's pawns move +from bottom to top. +.TP 8 +.B Get Move List +If this option is on, whenever +xboard +receives the first board of a new ICS game (or a different ICS game from +the one it is currently displaying), it +retrieves the list of past moves from the ICS. +You can then review the moves with the Forward and Backward commands +or save them with Save Game. You might want to +turn off this option if you are observing several blitz games at once, +to keep from wasting time and network bandwidth fetching the move lists over +and over. +When you turn this option on from the menu, +xboard +immediately fetches the move list of the current game (if any). +.TP 8 +.B Highlight Last Move +If Highlight Last Move is on, after a move is made, the starting and +ending squares remain highlighted. In addition, after you use Backward +or Back to Start, the starting and ending squares of the last move to +be unmade are highlighted. +.TP 8 +.B Move Sound +If this option is on, +xboard +alerts you by playing a sound after each +of your opponent's moves (or after every move if +you are observing a game on the Internet Chess Server). +The sound is not played after moves you make +or moves read from a saved game file. By default, the +sound is the terminal bell, but on some systems you can change it +to a sound file using the soundMove option; see below. + +If you turn on this option when using +xboard +with the Internet Chess Server, you will probably want to +give the +.I "set bell 0" +command to the ICS, since otherwise the ICS +will ring the terminal bell after every move. +.TP 8 +.B ICS Alarm +When this option is on, an alarm sound is played when your clock +counts down to the icsAlarmTime (by default, 5 seconds) in an ICS +game. For games with time controls that include an increment, the +alarm will sound each time the clock counts down to the icsAlarmTime. +By default, the alarm sound is the terminal bell, but on some systems +you can change it to a sound file using the soundIcsAlarm option; see +below. +.TP 8 +.B Old Save Style +If this option is off, +xboard +saves games in PGN (portable game notation) and positions in FEN +(Forsythe-Edwards notation). If the option is on, +a save style that is compatible with older versions of +xboard +is used instead. The old position style is more human-readable than +FEN; the old game style has no particular advantages. +.TP 8 +.B Periodic Updates +If this option is off (or if +you are using a chess engine that does not support periodic updates), +the analysis window +will be updated only when the analysis changes. If this option is +on, the Analysis Window will be updated every two seconds. +.TP 8 +.B Ponder Next Move +If this option is off, the chess engine will think only when it is on +move. If the option is on, the engine will also think while waiting +for you to make your move. +.TP 8 +.B Popup Exit Message +If this option is on, when xboard wants to display a message just +before exiting, it brings up a modal dialog box and waits for you to +click OK before exiting. If the option is off, xboard prints the +message to standard error (the terminal) and exits immediately. +.TP 8 +.B Popup Move Errors +If this option is off, when you make an error in moving (such as +attempting an illegal move or moving the wrong color piece), the +error message is displayed in the message area. If the option is +on, move errors are displayed in small popup windows like other errors. +You can dismiss an error popup either by clicking its OK button or by +clicking anywhere on the board, including downclicking to start a move. +.TP 8 +.B Premove +If this option is on while playing a game on ICS, you can register +your next planned move before it is your turn. Move the piece with +the mouse in the ordinary way, and the starting and ending squares +will be highlighted with a special color (red by default). When it is +your turn, if your registered move is legal, xboard will send it to +ICS immediately; if not, it will be ignored and you can make a +different move. If you change your mind about your premove, either +make a different move, or double-click on any piece to cancel the move +entirely. +.TP 8 +.B Quiet Play +If this option is on, +xboard +will automatically issue an ICS +.I "set shout 0" +command whenever you start an ICS +game and a +.I "set shout 1" +command whenever you finish one. Thus you +will not be distracted by shouts from other ICS users while playing. +.TP 8 +.B Show Coords +If this option is on, +xboard +displays algebraic coordinates along the board's left and bottom edges. +.TP 8 +.B Show Thinking +If this option is on, the chess engine's notion of the score and best +line of play +from the current position is displayed as it is thinking. The score indicates +how many pawns ahead (or if negative, behind) the engine thinks it is. +When GNU Chess is thinking on your time, this thinking is not shown if GNU +Chess was compiled with the -DQUIETBACKGROUND option. +In matches between two machines, the score is prefixed by W or B to indicate +whether the display is of White's thinking or Black's, and thinking on the +opponent's time is never shown. +.TP 8 +.B Test Legality +If this option is on, xboard +tests whether moves you try to make with the mouse are legal, and +refuses to let you make an illegal move. Moves loaded from a file +with Load Game are also checked. +If the option is off, all moves are accepted, but +if a local chess engine or the ICS is active, +they will still reject illegal moves. Turning off this option is +useful if you are playing a chess variant with rules that +xboard +does not understand. (Bughouse, suicide, and wild variants where +the king may castle after starting on the d file are generally +supported with Test Legality on.) +.SH Help Menu +.TP 8 +.B Info XBoard +Displays the xboard +info file in a new window. For this feature to work, +you must have the GNU info program installed on your system, +and the file xboard.info must either be present in the current +working directory, or have been installed by +the +.I "make install" +command when you built +xboard. +.TP 8 +.B Man XBoard +Displays this man page in a new window. For this feature to work, +the file xboard.6 must have been installed by +the +.I "make install" +command when you built +xboard, +and the +directory it was placed in must be on the search path for your system's +.BR man (1) +command. +.TP 8 +.B Hint +Displays a move hint from the local chess engine. +.TP 8 +.B Book +Displays a list of possible moves from the local chess engine's opening book. +The first column gives moves, the second column gives one possible response +for each move, and the third column shows the number of lines in the +book that include the move from the first column. If you select this option +and nothing happens, the chess engine is out of its book or does not +support this command. +.TP 8 +.B About XBoard +Shows the current +xboard +version number. +.SH Other shortcut keys +.TP 8 +.B Iconize +Pressing the i or c key iconizes +xboard. +The graphical icon displays a white knight if it is White's move, or a +black knight if it is Black's move. If your X window manager displays only +text icons, not graphical ones, check its documentation; there is probably a +way to enable graphical icons. If you are running the Motif window manager +.BR mwm (1), +add these lines to your \&.Xdefaults file and restart mwm: + +.nf + Mwm*iconDecoration: activelabel label image + Mwm*XBoard*iconImageBackground: White + Mwm*XBoard*iconImageForeground: Black +.fi + +The first line above enables graphical icons in +.BR mwm ; +you don't need it if you already have them. +The next two lines force the white knights to come out white and the black +knights black. Unfortunately these resources can't be set from inside +xboard; +you have to set them in your \&.Xdefaults. +.PP +You can add or remove +xboard +shortcut keys +using the X resource +.IR form.translations . +Here is an example of what would go in your \&.Xdefaults file: + +.nf + XBoard*form.translations: \\ + Shift?: AboutGameProc() \\n \\ + y: AcceptProc() \\n \\ + n: DeclineProc() \\n \\ + i: NothingProc() +.fi + +Binding a key to NothingProc makes it do nothing, thus removing it as a +shortcut key. +The +xboard +functions that can be bound to keys are: + +.nf +AbortProc, AboutGameProc, AboutProc, AcceptProc, +AdjournProc, AlwaysQueenProc, AnalysisModeProc, +AnalyzeFileProc, AnimateDraggingProc, AnimateMovingProc, +AutobsProc, AutoflagProc, AutoflipProc, AutoraiseProc, +AutosaveProc, BackwardProc, BlindfoldProc, BookProc, +CallFlagProc, CopyGameProc, CopyPositionProc, DebugProc, +DeclineProc, DrawProc, EditCommentProc, EditGameProc, +EditPositionProc, EditTagsProc, EnterKeyProc, +FlashMovesProc, FlipViewProc, ForwardProc, +GetMoveListProc, HighlightLastMoveProc, HintProc, +Iconify, IcsAlarmProc, IcsAlarmProc, IcsClientProc, +IcsInputBoxProc, InfoProc, LoadGameProc, +LoadNextGameProc, LoadNextPositionProc, LoadPositionProc, +LoadPrevGameProc, LoadPrevPositionProc, LoadSelectedProc, +MachineBlackProc, MachineWhiteProc, MailMoveProc, +ManProc, MoveNowProc, MoveSoundProc, NothingProc, +OldSaveStyleProc, PasteGameProc, PastePositionProc, +PauseProc, PeriodicUpdatesProc, PonderNextMoveProc, +PopupExitMessageProc, PopupMoveErrorsProc, PremoveProc, +QuietPlayProc, QuitProc, ReloadCmailMsgProc, +ReloadGameProc, ReloadPositionProc, RematchProc, +ResetProc, ResignProc, RetractMoveProc, RevertProc, +SaveGameProc, SavePositionProc, ShowCoordsProc, +ShowGameListProc, ShowThinkingProc, StopExaminingProc, +StopObservingProc, TestLegalityProc, ToEndProc, +ToStartProc, TrainingProc, TruncateGameProc, and +TwoMachinesProc. +.fi +.SH OPTIONS +.PP +This section documents the command-line options to +xboard. +You can set these options in two ways: by typing them on the shell +command line you use to start +xboard, +or by setting them as X resources (typically in your \&.Xdefaults file). +Many of the options cannot be changed while +xboard +is running; others set the initial state of items +that can be changed with the Options menu. +.PP +Most of the +options have both a long name and a short name. +To turn a boolean option on or off from the command line, either give +its long name followed by the value True or False +.RI ( -longOptionName +True), or give +just the short name to turn the option on +.RI ( -opt ), +or the short name preceded by "x" to turn the option off +.RI ( - x opt ). +For options that take strings or numbers as values, you can use the long or +short option names interchangeably. +.PP +Each option corresponds to an X resource +with the same name, so if you like, you can set options in your +.IR \&.Xdefaults +file or in a file named XBoard in your home directory. +For options that have two names, the longer +one is the name of the corresponding X resource; the short name is not +recognized. +To turn a boolean option on or off as an X resource, +give its long name followed by the value True or False +.RI (XBoard* longOptionName : +True). +.SH Chess Engine Options +All of these options apply to both the GNU Chess and Crafty +chess engines. +.TP 8 +.B -tc \fRor\fB -timeControl minutes[:seconds] +Each player begins with his clock set to the timeControl period. +Default: 5 minutes. +The additional options movesPerSession and timeIncrement are mutually +exclusive. +.TP 8 +.B -mps \fRor\fB -movesPerSession moves +When both players have made movesPerSession moves, a +new timeControl period is added to both clocks. Default: 40 moves. +.TP 8 +.B -inc \fRor\fB -timeIncrement seconds +If this option is specified, movesPerSession is ignored. +Instead, after each player's move, timeIncrement seconds are +added to his clock. +Use -timeIncrement 0 if you want to require the entire +game to be played in one timeControl period, with no increment. +Default: -1, which specifies movesPerSession mode. +.TP 8 +.B -clock/-xclock \fRor\fB -clockMode True/False +Determines whether or not to display the chess clocks. +If clockMode is False, the clocks are not shown, but the +side that is to play next is still highlighted. Also, unless +searchTime is set, the chess engine still keeps track of the +clock time and uses it to determine how fast to make its moves. +.TP 8 +.B -st \fRor\fB -searchTime minutes[:seconds] +Tells the chess engine to spend at most the given amount of time searching +for each of its moves. Without this option, the engine chooses +its search time based on the number of moves and amount of time +remaining until the next time control. +Setting this option also sets clockMode to False. +.TP 8 +.B -depth \fRor\fB -searchDepth number +Tells the chess engine +to look ahead at most the given number of moves when searching +for a move to make. Without this option, the engine chooses +its search depth based on the number of moves and amount of time +remaining until the next time control. +With the option, +the engine will cut off its search early if it reaches the specified depth. +.TP 8 +.B -thinking/-xthinking \fRor\fB -showThinking True/False +Sets the Show Thinking menu option. Default: False. +.TP 8 +.B -ponder/-xponder \fRor\fB -ponderNextMove True/False +Sets the Ponder Next Move menu option. Default: True. +.TP 8 +.B -mg \fRor\fB -matchGames n +Automatically runs an \fIn\fP-game match between two chess engines, +with alternating colors. +If the loadGameFile or loadPositionFile option is set, +xboard +starts each game with the given opening moves or the given position; +otherwise, the games start with the standard initial chess position. +If the saveGameFile +option is set, a move record for the match +is appended to the specified file. +If the savePositionFile +option is set, the final position reached in each game of the match +is appended to the specified file. +When the match is over, +xboard +displays the match score and exits. Default: 0 (do not run a match). +.TP 8 +.B -mm/-xmm \fRor\fB -matchMode True/False +Provided for backward compatibility. +If true and matchGames is 0, sets matchGames to 1. +.TP 8 +.B -fcp \fRor\fB -firstChessProgram program +Name of first chess engine. +Default: +.IR gnuchessx . +.TP 8 +.B -scp \fRor\fB -secondChessProgram program +Name of second chess engine. +A second chess engine is started only in Two Machines (match) mode. +Default: +.IR gnuchessx . +.TP 8 +.B -fb/-xfb \fRor\fB -firstPlaysBlack True/False +In games between two chess engines, firstChessProgram normally +plays white. (This is a change from earlier versions of +xboard.) +If this option is True, firstChessProgram plays black. +In a multi-game match, this option affects the colors only for +the first game; they still alternate in subsequent games. +.TP 8 +.B -fh \fRor\fB -firstHost host +.PD 0 +.TP 8 +.B -sh \fRor\fB -secondHost host +Hosts on which the chess engines are to be run. +The default for each is +.IR localhost . +If you specify another host, +xboard +uses +.BR rsh (1) +to run the chess engine there. +(You can substitute a different remote shell program for rsh using the +remoteShell option described below.) +.PD +.TP 8 +.B -fd \fRor\fB -firstDirectory dir +.PD 0 +.TP 8 +.B -sd \fRor\fB -secondDirectory dir +Working directories in which the chess engines are to be run. +The default for both is "", which means to run the chess engine +in the same working directory as +xboard +itself. (See the CHESSDIR environment variable.) +This option is effective only when the chess engine is being run +on the local host; it does not work if the engine is run remotely +using the -fh or -sh option. +.PD +.TP 8 +.B -initString string +.PD 0 +.TP 8 +.B -secondInitString string +The string that is sent to initialize each chess engine for a new game. +Default: +.nf + new + random +.fi +Setting this option from the command line is tricky, +because you must type in real newline characters, including one at the end. +In most shells you can +do this by entering a "\\" character followed by a newline. +It is easier to set the option from your \&.Xdefaults file; +in that case you can include the character sequence "\\n" in the string, and +it will be converted to a newline. + +If you change this option, don't remove the +.I new +command; it is required by all chess engines to start a new game. + +You can remove the +.I random +command if you +like; including it causes GNU Chess to randomize its move selection slightly so +that it doesn't play the same moves in every game. +Even without +.IR random , +GNU Chess +randomizes its choice of moves from its opening book. Crafty +ignores this command; it randomizes by default. + +You can also try adding other commands to the initString; +see the GNU Chess or Crafty documentation for details. +.PD +.TP 8 +.B -firstComputerString string +.PD 0 +.TP 8 +.B -secondComputerString string +The string that is sent to the chess engine if its opponent is another +computer chess engine. The default is "computer\\n". Probably the +only useful alternative is the empty string (""), which keeps the +engine from knowing that it is playing another computer. +.PD +.TP 8 +.B -reuse/-xreuse \fRor\fB -reuseFirst True/False +.PD 0 +.TP 8 +.B -reuse2/-xreuse2 \fRor\fB -reuseSecond True/False +If the option is False, +xboard +kills off the chess engine after every game and starts it again +for the next game. +If the option is True (the default), +xboard +starts the chess engine only once +and uses it repeatedly to play multiple games. +Some chess engines may not work properly when +reuse is turned on, such as versions of Crafty earlier than 12.0, +but otherwise new games will start faster if it is left on. +.PD +.TP 8 +.B -firstProtocolVersion version-number +.PD 0 +.TP 8 +.B -secondProtocolVersion version-number +This option specifies which version of the chess engine communication +protocol to use. By default, version-number is 2. In version 1, the +"protover" command is not sent to the engine; since version 1 is a +subset of version 2, nothing else changes. Other values for +version-number are not supported. +.PD +.SH Internet Chess Server Options +.TP 8 +.B -ics/-xics \fRor\fB -internetChessServerMode True/False +Connect with an Internet Chess Server to play chess against +its other users, observe games they are playing, or +review games that have recently finished. Default: False. +.TP 8 +.B -icshost \fRor\fB -internetChessServerHost host +The Internet host name or address of the chess server to connect +to when in ICS mode. +Default: chessclub.com. +See the file +.I ics-addresses +in the +xboard +source distribution for a list of other addresses to try. +If your site doesn't have a working Internet name server, try +specifying the host address in numeric form. You may also need +to specify the numeric address when using the icshelper option +with timestamp or timeseal (see below). +At this writing, +chessclub.com is 207.99.5.190 and freechess.org (formerly fics.onenet.net) +is 164.58.253.13. +.TP 8 +.B -icsport \fRor\fB -internetChessServerPort port-number +The port number to use when connecting to a chess server in ICS mode. +Default: 5000. +.TP 8 +.B -icshelper \fRor\fB -internetChessServerHelper prog-name +An external helper program used to communicate with the chess server. +You would set it to "timestamp" for ICC (chessclub.com) or +"timeseal" for FICS (freechess.org, eics.daimi.aau.dk, etc.), after +obtaining the correct version of timestamp or timeseal for your +computer. See "help timestamp" on ICC and "help timeseal" on FICS. +This option is shorthand for "-useTelnet -telnetProgram program". +.TP 8 +.B -telnet/-xtelnet \fRor\fB -useTelnet True/False +This option is poorly named; it should be called useHelper. +If set to True, it instructs +xboard +to run an external program to communicate with the Internet Chess +Server. The program to use is given by the telnetProgram option. +If the option is False (the default), +xboard +opens a TCP socket and uses its own internal implementation +of the telnet protocol to communicate with the ICS. +See the FIREWALLS section +below for an explanation of when this option is useful. +.TP 8 +.B -telnetProgram prog-name +This option is poorly named; it should be called helperProgram. +It gives the name of the telnet program to be used with the +gateway and useTelnet options. The default is +.IR telnet . +The telnet program +is invoked with the value of internetChessServerHost as its first argument +and the value of internetChessServerPort as its second argument. +See the FIREWALLS section below for an explanation of when this option is +useful. +.TP 8 +.B -gateway host-name +If this option is set to a host name, +xboard +communicates with the Internet Chess Server by using +.BR rsh (1) +to run the telnetProgram +on the given host, instead of using its own internal implementation +of the telnet protocol. +You can substitute a different remote shell program for rsh with the +remoteShell option described below. +See the FIREWALLS section below for an explanation of when this option is +useful. +.TP 8 +.B -internetChessServerCommPort \fRor\fB -icscomm dev-name +If this option is set, +xboard +communicates with the ICS through the given character I/O device +instead of opening a TCP connection. +Use this option if your system +does not have any kind of Internet connection itself (not +even a SLIP or PPP connection), but you do have dialup access +(or a hardwired terminal line) to an Internet +service provider from which you can telnet to the ICS. + +The support for this option in +xboard +is minimal. You need to set all communication parameters and tty modes +before you enter +xboard. + +Use a script something like this: + +.nf + stty raw -echo 9600 > /dev/tty00 + xboard -ics -icscomm /dev/tty00 +.fi + +Here replace +.IR /dev/tty00 +with the name of the device that your +modem is connected to. +You might have to add several more options to these stty commands. See the +man pages for +.BR stty (1) +and +.BR tty (4) +if you run into problems. Also, on many systems +stty works on its standard input instead of standard output, so you +have to use "<" instead of ">". + +If you are using linux, try starting with the script below. Change it as +necessary for your installation. + +.nf + ################################################## + #!/bin/sh -f + # configure modem and fire up xboard + + # configure modem + ( stty 2400 ; stty raw ; stty hupcl ; stty -clocal + stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff + stty -iexten ; stty -echo ) < /dev/modem + + xboard -ics -icscomm /dev/modem + ################################################## +.fi + +After you start +xboard +in this way, type whatever commands are necessary to dial out to +your Internet provider and log in. +Then telnet to ICS, using a command like +.IR "telnet chessclub.com 5000" . +Important: See the paragraph in the LIMITATIONS section below +about extra echoes. +.TP 8 +.B -icslogon \fRor\fB -internetChessServerLogonScript file-name +Whenever +xboard +connects to the Internet Chess Server, if it finds a file with +the name given in this option, +it feeds the file's contents to the ICS as commands. +The default file name is +.IR .icsrc . +Usually the first two lines of the file should be your ICS user name +and password. +The file can be either in $CHESSDIR, in +xboard's +working directory if CHESSDIR is not set, or in your home directory. +.TP 8 +.B -msLoginDelay delay +If you experience trouble logging onto an ICS using the +.B -icslogon +option, inserting some delay between characters of the login +script may help. This option inserts +.B delay +milliseconds of delay per character. Good values to +try are 100 and 250. +.TP 8 +.B -icsinput/-xicsinput \fRor\fB -internetChessServerInputBox True/False +Sets ICS Input Box on the mode menu. Default: False. +.TP 8 +.B -autocomm/-xautocomm \fRor\fB -autoComment True/False +Sets the Auto Comment menu option. Default: False. +.TP 8 +.B -autoflag/-xautoflag \fRor\fB -autoCallFlag True/False +Sets the Auto Flag menu option. Default: False. +.TP 8 +.B -autobs/-xautobs \fRor\fB -autoObserve True/False +Sets the Auto Observe menu option. Default: False. +.TP 8 +.B -moves/-xmoves \fRor\fB -getMoveList True/False +Sets the Get Move List menu option. Default: True. +.TP 8 +.B -alarm/-xalarm \fRor\fB -icsAlarm True/False +Sets the ICS Alarm menu option. Default: True. +.TP 8 +.B -icsAlarmTime ms +Sets the time in milliseconds for the ICS Alarm menu option. Default: 5000. +.TP 8 +.B -pre/-xpre \fRor\fB -premove True/False +Sets the Premove menu option. Default: True. +.TP 8 +.B -quiet/-xquiet \fRor\fB -quietPlay True/False +Sets the Quiet Play menu option. Default: False. +Default: False. +.TP 8 +.B -colorize/-xcolorize \fRor\fB -colorizeMessages TrueFalse +Setting +.I colorizeMessages +to True causes +xboard +to colorize the messages received from the ICS. +Colorization works only if your xterm +supports ISO 6429 escape sequences for changing text colors. +.TP 8 +.B -colorShout foreground,background,bold +.PD 0 +.TP 8 +.B -colorSShout foreground,background,bold +.TP 8 +.B -colorChannel foreground,background,bold +.TP 8 +.B -colorKibitz foreground,background,bold +.TP 8 +.B -colorTell foreground,background,bold +.TP 8 +.B -colorChallenge foreground,background,bold +.TP 8 +.B -colorRequest foreground,background,bold +.TP 8 +.B -colorSeek foreground,background,bold +.TP 8 +.B -colorNormal foreground,background,bold +.PD +These options set the colors used when colorizing ICS messages. +All ICS messages are grouped into one of these categories: +shout, sshout, channel 1, other channel, kibitz, tell, challenge, +request (including abort, adjourn, draw, pause, and takeback), +seek, or normal (all other messages). + +Each foreground or background argument can be one of the following: +black, red, green, yellow, blue, magenta, cyan, white, or default. +Here "default" means the default foreground or background color of +your xterm. Bold can be 1 or 0. If background is omitted, "default" +is assumed; if bold is omitted, 0 is assumed. + +Here is an example of how to set the colors in your \&.Xdefaults file. +The colors shown here are the default values; you will get +them if you turn -colorize on without specifying your own colors. + +.nf + xboard*colorizeMessages: true + xboard*colorShout: green + xboard*colorSShout: green, black, 1 + xboard*colorChannel1: cyan + xboard*colorChannel: cyan, black, 1 + xboard*colorKibitz: magenta, black, 1 + xboard*colorTell: yellow, black, 1 + xboard*colorChallenge: red, black, 1 + xboard*colorRequest: red + xboard*colorSeek: blue + xboard*colorNormal: default +.fi +.TP 8 +.B -soundProgram progname +If this option is set to a sound-playing program that is installed and +working on your system, xboard can play sound files when certain +events occur, listed below. The default program name is "play". If +any of the sound options is set to "$", the event rings the terminal +bell by sending a ^G character to standard output, instead of playing +a sound file. If an option is set to the empty string "", no sound is +played for that event. +.TP 8 +.B -soundShout filename +.PD 0 +.TP 8 +.B -soundSShout filename +.TP 8 +.B -soundChannel filename +.TP 8 +.B -soundKibitz filename +.TP 8 +.B -soundTell filename +.TP 8 +.B -soundChallenge filename +.TP 8 +.B -soundRequest filename +.TP 8 +.B -soundSeek filename +.PD +These sounds are triggered in the same way as the colorization events +described above. They all default to "", no sound. They are played +only if the colorizeMessages is on. +.TP 8 +.B -soundMove filename +This sound is used by the Move Sound menu option. Default: "$". +.TP 8 +.B -soundIcsAlarm filename +This sound is used by the ICS Alarm menu option. Default: "$". +.TP 8 +.B -soundIcsWin filename +This sound is played when you win an ICS game. Default: "" (no sound). +.TP 8 +.B -soundIcsLoss filename +This sound is played when you lose an ICS game. Default: "" (no sound). +.TP 8 +.B -soundIcsDraw filename +This sound is played when you draw an ICS game. Default: "" (no sound). +.TP 8 +.B -soundIcsUnfinished filename +This sound is played when an ICS game that you are participating in is +aborted, adjourned, or otherwise ends inconclusively. Default: "" (no +sound). + +Here is an example of how to set the sounds in your \&.Xdefaults file. + +.nf + xboard*soundShout: shout.wav + xboard*soundSShout: sshout.wav + xboard*soundChannel1: channel1.wav + xboard*soundChannel: channel.wav + xboard*soundKibitz: kibitz.wav + xboard*soundTell: tell.wav + xboard*soundChallenge: challenge.wav + xboard*soundRequest: request.wav + xboard*soundSeek: seek.wav + xboard*soundMove: move.wav + xboard*soundIcsWin: win.wav + xboard*soundIcsLoss: lose.wav + xboard*soundIcsDraw: draw.wav + xboard*soundIcsUnfinished: unfinished.wav + xboard*soundIcsAlarm: alarm.wav +.fi +.SH Load and Save Options +.TP 8 +.B -lgf \fRor\fB -loadGameFile file +.PD 0 +.TP 8 +.B -lgi \fRor\fB -loadGameIndex index +If the loadGameFile option is set, +xboard +loads the specified game file at startup. +The file name "-" specifies the standard input. +If there is more than one game in the file, +xboard +pops up a menu of the available games, with entries based on their PGN +(portable game notation) tags. +If the loadGameIndex option is set to +.IR N , +the menu is suppressed and +the +.IR N th +game found in the file is loaded immediately. +The menu is also suppressed if matchMode is enabled or if the game file +is a pipe; in these cases the first game in +the file is loaded immediately. Use the +.BR pxboard +shell script if you want to pipe files containing multiple games into +xboard +and still see the menu. +.PD +.TP 8 +.B -td \fRor\fB -timeDelay seconds +Time delay between moves during \fBLoad Game\fR. +Fractional seconds are allowed; try -td 0.4. +A time delay value of -1 tells +xboard +not to step through game files automatically. +Default: 1 second. +.TP 8 +.B -sgf \fRor\fB -saveGameFile file +If this option is set, +xboard +appends a record of every game played to the specified file. +The file name "-" specifies the standard output. +.TP 8 +.B -autosave/-xautosave \fRor\fB -autoSaveGames True/False +Sets the Auto Save menu option. +Ignored if saveGameFile is set. +Default: False. +.TP 8 +.B -lpf \fRor\fB -loadPositionFile file +.PD 0 +.TP 8 +.B -lpi \fRor\fB -loadPositionIndex index +If the loadPositionFile option is set, +xboard +loads the specified position file at startup. +The file name "-" specifies the standard input. +If the loadPositionIndex option is set to +.IR N , +the +.IR N th +position found in the file is loaded; otherwise the first position is loaded. +.PD +.TP 8 +.B -spf \fRor\fB -savePositionFile file +If this option is set, +xboard +appends the final position reached in +every game played to the specified file. +The file name "-" specifies the standard output. +.TP 8 +.B -oldsave/-xoldsave \fRor\fB -oldSaveStyle True/False +Sets the Old Save Style menu option. Default: False. +.SH User Interface Options +.TP 8 +.B standard Xt options +xboard +accepts standard Xt options like -display, -geometry, and -iconic. +.TP 8 +.B -movesound/-xmovesound \fRor\fB -ringBellAfterMoves True/False +Sets the Move Sound menu option. Default: False. +For upward compatibility, -bell/-xbell are also accepted as abbreviations +for this option. +.TP 8 +.B -exit/-xexit \fRor\fB -popupExitMessage True/False +Sets the Popup Exit Message menu option. Default: True. +.TP 8 +.B -popup/-xpopup \fRor\fB -popupMoveErrors True/False +Sets the Popup Move Errors menu option. Default: False. +.TP 8 +.B -queen/-xqueen \fRor\fB -alwaysPromoteToQueen True/False +Sets the Always Queen menu option. Default: False. +.TP 8 +.B -legal/-xlegal \fRor\fB -testLegality True/False +Sets the Test Legality menu option. Default: True. +.TP 8 +.B -size \fRor\fB -boardSize "(sizeName | n1,n2,n3,n4,n5,n6,n7)" +Determines how large the board will be, by selecting the pixel size +of the pieces and setting a few related parameters. +The sizeName can be one of: Titanic, giving 129x129 pixel pieces, +Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, +Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre +45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, +or Tiny 21x21. +Pieces of all these sizes are built into xboard. Other sizes can +be used if you have them; see the pixmapDirectory and bitmapDirectory +options. +The default depends on the size of your screen; it is approximately the +largest size that will fit without clipping. + +You can select other sizes or vary other layout parameters by providing +a list of comma-separated values (with no spaces) as the argument. +You do not need to provide all the values; for any you omit from the +end of the list, defaults are taken from the nearest built-in size. +The value n1 gives the piece size, n2 the width of the black border +between squares, n3 the desired size for the +.IR clockFont , +n4 the desired size for the +.IR coordFont , +n5 the desired size for the default +.IR font , +n6 the smallLayout flag (0 or 1), and n7 the tinyLayout flag (0 or 1). +All dimensions are in pixels. +If the border between squares is eliminated (0 width), the various +highlight options will not work, as there is nowhere to draw the highlight. +If smallLayout is 1 and +.I titleInWindow +is True, +the window layout is rearranged to make more room for the title. +If tinyLayout is 1, the labels on the menu bar are abbreviated +to one character each and the buttons in the button bar are made narrower. +.TP 8 +.B -coords/-xcoords \fRor\fB -showCoords True/False +Sets the Show Coords menu option. Default: False. +The +.IR coordFont +option specifies what font to use. +.TP 8 +.B -autoraise/-xautoraise \fRor\fB -autoRaiseBoard True/False +Sets the Auto Raise Board menu option. Default: True. +.TP 8 +.B -autoflip/-xautoflip \fRor\fB -autoFlipView True/False +Sets the Auto Flip View menu option. Default: True. +.TP 8 +.B -flip/-xflip \fRor\fB -flipView True/False +If Auto Flip View is not set, or if you are observing but not participating +in a game, then the positioning of the board at the start of each game +depends on the flipView option. If flipView is False (the default), +the board is positioned so that the white pawns move from the bottom to the +top; if True, the black pawns move from the bottom to the top. +In any case, the Flip menu option can be used to flip the board after +the game starts. +.TP 8 +.B -title/-xtitle \fRor\fB -titleInWindow True/False +If this option is True, +xboard +displays player names (for ICS games) and game file names (for Load +Game) inside its main window. If the option is False (the default), +this information is displayed only in the window banner. You probably +won't want to set this option unless the information is not showing up +in the banner, as happens with a few X window managers. +.TP 8 +.B -buttons/-xbuttons \fRor\fB -showButtonBar True/False +If this option is False, xboard omits the [<<] [<] [P] [>] [>>] button +bar from the window, allowing the message line to be wider. You can +still get the functions of these buttons using the menus or their keyboard +shortcuts. Default: True. +.TP 8 +.B -mono/-xmono \fRor\fB -monoMode True/False +Determines whether +xboard +displays its pieces and squares with two colors (True) or four (False). +You shouldn't have to specify monoMode; +xboard +will determine if it is necessary. +.TP 8 +\fB\-flashCount\fP \fIcount\fP +.PD 0 +.TP 8 +\fB\-flashRate\fP \fIrate\fP +.TP 8 +\fB\-flash\fP +.TP 8 +\fB\-xflash\fP +These options enable flashing of pieces when they +land on their destination square. +.B flashCount +tells XBoard how many times to flash a piece after it +lands on its destination square. +.B flashRate +controls the rate of flashing (flashes/sec). +Abbreviations: +.B flash +sets flashCount to 3. +.B xflash +sets flashCount to 0. +Defaults: flashCount=0 (no flashing), flashRate=5. +.PD +.TP 8 +.B -highlight/-xhighlight \fRor\fB -highlightLastMove True/False +Sets the Highlight Last Move menu option. Default: False. +.TP 8 +.B -blind/-xblind \fRor\fB -blindfold True/False +Sets the Blindfold menu option. Default: False. +.TP 8 +.B -clockFont font +The font used for the clocks. +If the option +value is a pattern that does not specify the font size, +xboard +tries to choose an appropriate font for the board size being used. +Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*. +.TP 8 +.B -coordFont font +The font used for rank and file coordinate labels if +.IR showCoords +is True. +If the option +value is a pattern that does not specify the font size, +xboard +tries to choose an appropriate font for the board size being used. +Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*. +.TP 8 +.B -font font +The font used for popup dialogs, menus, comments, etc. +If the option +value is a pattern that does not specify the font size, +xboard +tries to choose an appropriate font for the board size being used. +Default: -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*. +.TP 8 +.B -fontSizeTolerance tol +In the font selection algorithm, a nonscalable font will be preferred +over a scalable font if the nonscalable font's size differs by tol pixels +or less from the desired size. A value of -1 will force +a scalable font to always be used if available; a value of 0 will +use a nonscalable font only if it is exactly the right size; +a large value (say 1000) will force a nonscalable font to always be +used if available. Default: 4. +.TP 8 +.B -bm \fRor\fB -bitmapDirectory dir +.PD 0 +.TP 8 +.B -pixmap \fRor\fB -pixmapDirectory dir +.PD +These options control what piece images xboard uses. The xboard +distribution includes one set of pixmap pieces in xpm format, in the +directory \fIpixmaps\fR, and two sets of bitmap pieces in xbm format, +in the directories \fIbitmaps\fR and \fIbitmaps.xchess\fR. Pixmap +pieces give a better appearance on the screen: the white pieces have +dark borders, and the black pieces have opaque internal details. With +bitmaps, neither piece color has a border, and the internal details +are transparent; you see the square color or other background color +through them. + +If xboard is configured and compiled on a system that includes libXpm, +the X pixmap library, the xpm pixmap pieces are compiled in as the +default. A different xpm piece set can be selected at runtime with +the -pixmapDirectory option, or a bitmap piece set can be selected +with the -bitmapDirectory option. + +If xboard is configured and compiled on a system that does not include +libXpm (or the --disable-xpm option is given to the configure +program), the bitmap pieces are compiled in as the default. It is not +possible to use xpm pieces in this case, but pixmap pieces in another +format called "xim" can be used by giving the -pixmapDirectory option. +Or again, a different bitmap piece set can be selected with the +-bitmapDirectory option. + +Files in the bitmapDirectory must be named as follows: +The first character of a piece bitmap name gives the piece it +represents (p, n, b, r, q, or k), +the next characters give the size in pixels, the +following character indicates whether the piece is solid or outline (s or o), +and the extension is ".bm". +For example, a solid 80x80 knight would be named "n80s.bm". +The outline bitmaps are used only in monochrome mode. +If bitmap pieces are compiled in and the bitmapDirectory is missing +some files, the compiled in pieces are used instead. + +If the bitmapDirectory option is given, +it is also possible to replace xboard's icons and menu checkmark, +by supplying files named "icon_white.bm", "icon_black.bm", and +"checkmark.bm". + +You can import pixmap pieces from the +.B ZIICS +distribution by using the +.B zic2xpm +program to convert them. This program produces both xpm and xim +pixmaps, so you can use these pieces even if you do not have xpm +support compiled into your xboard. ZIICS provides a large number of +piece sets to choose from. Here's how to import them: +.sp +1) Download the ZIICS distribution. It is available from + +.nf + ftp://ftp.freechess.org/pub/chess/DOS/ziics131.exe +.fi +.sp +2) Unzip it into a directory, for example: + +.nf + unzip -L ziics131.exe -d ~/ziics +.fi +.sp +3) Pick a chess set you want to use, for example the FRITZ4 set. +Create a directory to hold the pieces, then run the +.B zic2xpm +program to create the pieces: + +.nf + mkdir ~/fritz4 + cd ~/fritz4 + zic2xpm ~/ziics/fritz4.* +.fi +.sp +(The +.B zic2xpm +program is in the directory where +xboard +was compiled, +in case you didn't do a +.IR "make install" .) +.sp +4) Now, just add the +.B -pixmapDirectory +option when you start +xboard: + +.nf + xboard -pixmapDirectory ~/fritz4 +.fi +.sp +Or add the option to your .Xdefaults file: + +.nf + xboard*pixmapDirectory: ~/fritz4 +.fi +.TP 8 +.B -whitePieceColor color +.PD 0 +.TP 8 +.B -blackPieceColor color +.TP 8 +.B -lightSquareColor color +.TP 8 +.B -darkSquareColor color +.TP 8 +.B -highlightSquareColor color +.TP 8 +.B -premoveHighlightColor color +.PD +Colors to use for the pieces, squares, and square highlights. +Defaults: + +.nf + -whitePieceColor #FFFFCC + -blackPieceColor #202020 + -lightSquareColor #C8C365 + -darkSquareColor #77A26D + -highlightSquareColor #FFFF00 + -premoveHighlightColor #FF0000 +.fi + +If you are using a grayscale monitor, try setting the colors to: + +.nf + -whitePieceColor gray100 + -blackPieceColor gray0 + -lightSquareColor gray80 + -darkSquareColor gray60 + -highlightSquareColor gray100 + -premoveHighlightColor gray70 +.fi +.TP 8 +.B -drag/-xdrag \fRor\fB -animateDragging True/False +Sets the Animate Dragging menu option. Default: True. +.TP 8 +.B -animate/-xanimate \fRor\fB -animateMoving True/False +Sets the Animate Moving menu option. Default: True. +.TP 8 +.B -animateSpeed n +Number of milliseconds delay between each animation frame when Animate +Moves is on. +.SH Other Options +.TP 8 +.B -ncp/-xncp \fRor\fB -noChessProgram True/False +If this option is True, +xboard +acts as a passive chessboard; it does not +start a chess engine at all. +Turning on this option also turns off clockMode. +Default: False. +.TP 8 +.B -mode \fRor\fB -initialMode modename +If this option is given, xboard selects the given \fImodename\fP +from the Mode menu after starting and (if applicable) processing the +loadGameFile or loadPositionFile option. Default: "" (no selection). +Other supported values are +MachineWhite, MachineBlack, TwoMachines, Analysis, +AnalyzeFile, EditGame, EditPosition, and Training. +.TP 8 +.B -variant varname +Activates preliminary, partial support for playing chess variants +against a local engine or editing variant games. This flag is not +needed in ICS mode. Recognized variant names are: + +.nf + normal Normal chess + wildcastle Shuffle chess, king can castle from d file + nocastle Shuffle chess, no castling allowed + fischerandom Fischer Random shuffle chess + bughouse Bughouse, ICC/FICS rules + crazyhouse Crazyhouse, ICC/FICS rules + losers Lose all pieces or get mated (ICC wild 17) + suicide Lose all pieces including king (FICS) + giveaway Try to have no legal moves (ICC wild 26) + twokings Weird ICC wild 9 + kriegspiel Opponent's pieces are invisible + atomic Capturing piece explodes (ICC wild 27) + 3check Win by giving check 3 times (ICC wild 25) + shatranj An ancient precursor of chess (ICC wild 28) + unknown Catchall for other unknown variants +.fi + +In the shuffle variants, xboard does not shuffle the pieces, but +you can do it by hand using Edit Position. Some variants are +supported only in ICS mode, including fischerandom, bughouse, and +kriegspiel. The winning/drawing conditions in crazyhouse (offboard +interposition on mate), losers, suicide, giveaway, atomic, and 3check +are not fully understood. In crazyhouse, xboard does not yet keep +track of offboard pieces. Shatranj is unsupported, but it may be +usable if you turn off Test Legality. +.TP 8 +.B -debug/-xdebug \fRor\fB -debugMode True/False +Turns on debugging printout. +.TP 8 +.B -rsh \fRor\fB -remoteShell shell-name +Name of the command used to run programs remotely. +The default is +.I rsh +or +.IR remsh , +determined when +xboard +is configured and compiled. +.TP 8 +.B -ruser \fRor\fB -remoteUser user-name +User name on the remote system when running programs with the remoteShell. +The default is your local user name. +.SH ANALYSIS MODES +.PP +If you are using a chess engine that supports analysis, +such as Crafty, you can use xboard +to analyze your games. +GNU Chess does not support analysis. +See the section titled GETTING CRAFTY +for more information on obtaining and installing Crafty. +There are a few ways to analyze: +.sp +.RS +.6i +.ti -4 +.B Analyzing a stored game (PGN, etc): +Choose +.I Analyze File +from the +.I Mode Menu. +Type the name of the file you wish to load. +If the file contains multiple games, another popup will +appear to let you choose which game you want to analyze. +Use the arrow buttons to move through the game and watch +the engine's analysis. +.sp +.ti -4 +.B Setting up a position to analyze +Choose +.I Edit Position +from the +.I Mode Menu. +Edit the board (the right and middle mouse buttons bring up +the black/white piece menus). When finished editing, click on +either the White or Black clock to tell +xboard +whose turn it is +to move. Choose +.I Analysis Mode +from the +.I Mode Menu. +Watch the analysis, move pieces around, etc. +.sp +.ti -4 +.B Analyzing a new game +If you want to start a new analysis from a fresh board, +choose +.I Reset Game +from the +.I File Menu, +then choose +.I Analysis Mode +from the +.I Mode Menu. +Now you can move pieces around and watch the engine's analysis. +.RE +.SH GETTING CRAFTY +.PP +Crafty is a chess engine written by Bob Hyatt (hyatt@cis.uab.edu). +You can use XBoard to play a game against Crafty, hook Crafty up +to an ICS, or use Crafty to interactively analyze games and positions +for you. + +Crafty is a strong, rapidly evolving chess program. This rapid +pace of development is good, because it means Crafty is always +getting better. This can sometimes cause problems with +backwards compatibility, but usually the latest version of Crafty +will work well with the latest version of xboard. +Crafty can be obtained from its author's FTP site: +ftp://ftp.cis.uab.edu/hyatt/. + +To use Crafty with XBoard, give the -fcp and -fd options as follows, where +.I crafty's-directory +is the directory in which you installed Crafty +and placed its book and other support files. + +.nf + xboard -fcp crafty -fd \fIcrafty's-directory\fR +.fi +.SH FIREWALLS +.PP +By default, +.B xboard -ics +communicates with an Internet Chess Server by opening a TCP socket +directly from the machine it is running on to the ICS. If there is a +firewall between your machine and the ICS, this won't work. Here are some +recipes for getting around common kinds of firewalls using special options to +xboard. +Important: See the paragraph in the LIMITATIONS section below +about extra echoes. + +Suppose that you can't telnet directly to ICS, but you can telnet to a +firewall host, log in, and then telnet from there to ICS. Let's say the +firewall is called fire.wall.com. Set command-line options as +follows: + +.nf + xboard -ics -icshost fire.wall.com -icsport 23 +.fi + +Or in your \&.Xdefaults file: + +.nf + XBoard*internetChessServerHost: fire.wall.com + XBoard*internetChessServerPort: 23 +.fi + +Then when you run +xboard +in ICS mode, you will be prompted to log in to the firewall host. +(This works because port 23 is the standard telnet login service.) +Log in, then telnet to ICS, using a command like +.IR "telnet chessclub.com 5000" , +or whatever command the firewall provides for telnetting to port 5000. + +If your firewall lets you telnet (or rlogin) to remote hosts, but doesn't let +you telnet to port 5000, you will have to find some other host outside the +firewall that does let you do this, and hop through it. For instance, suppose +you have an account at foo.edu. Follow the recipe above, but +instead of typing +.I "telnet chessclub.com 5000" +to the firewall, type +.I "telnet foo.edu" +(or +.IR "rlogin foo.edu" ), +log in there, and +then type +.IR "telnet chessclub.com 5000" . + +Exception: chessclub.com itself lets you connect to the chess server on the +default telnet port (23), which is what you get if you don't specify a port +to the telnet program. But the other chess servers don't allow this. + +Suppose that you can't telnet directly to ICS, but you can use rsh to run +programs on a firewall host, and that host can telnet to ICS. Let's say the +firewall is called rsh.wall.com. Set command-line options as +follows: + +.nf + xboard -ics -gateway rsh.wall.com -icshost chessclub.com +.fi + +Or in your \&.Xdefaults file: + +.nf + XBoard*gateway: rsh.wall.com + XBoard*internetChessServerHost: chessclub.com +.fi + +Then when you run +xboard +in ICS mode, it will connect to the ICS by using rsh +to run the command +.I "telnet chessclub.com 5000" +on host rsh.wall.com. + +Suppose that you can telnet anywhere you want, but you have to run a special +program called +.BR ptelnet +to do so. + +First, we'll consider the easy case, in +which +.I "ptelnet chessclub.com 5000" +gets you to the chess server. +In this case set command line options as follows: + +.nf + xboard -ics -telnet -telnetProgram ptelnet +.fi + +Or in your \&.Xdefaults file: + +.nf + XBoard*useTelnet: true + XBoard*telnetProgram: ptelnet +.fi + +Then when you run +xboard +in ICS mode, it will issue the command +.I "ptelnet chessclub.com 5000" +to connect to the ICS. + +Next, suppose that +.I "ptelnet chessclub.com 5000" +doesn't work; that is, your ptelnet program +doesn't let you connect to alternative ports. In this case, +you will have to find some other host outside the +firewall that does let you do this, and hop through it. For instance, suppose +you have an account at foo.edu. Set command line options as +follows: + +.nf + xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport "" +.fi + +Or in your \&.Xdefaults file: + +.nf + XBoard*useTelnet: true + XBoard*telnetProgram: ptelnet + XBoard*internetChessServerHost: foo.edu + XBoard*internetChessServerPort: +.fi + +Then when you run +xboard +in ICS mode, it will issue the command +.I "ptelnet foo.edu" +to connect to your account at foo.edu. Log in there, then type +.IR "telnet chessclub.com 5000" . + +ICC timestamp and FICS timeseal do not work through many +firewalls. You can use them only if your firewall gives a clean TCP +connection with a full 8-bit wide path. If your firewall allows you +to get out only by running a special telnet program, you can't use +timestamp or timeseal across it. But if you have access to a +computer just outside your firewall, and you have much lower netlag +when talking to that computer than to the ICS, it might be worthwhile +running timestamp there. Follow the instructions above for hopping +through a host outside the firewall (foo.edu in the example), +but run timestamp or timeseal on that host instead of telnet. + +Suppose that you have a SOCKS firewall that requires you to go through +some extra level of authentication, but after that will give you a +clean 8-bit wide TCP connection to the chess server. In that case, +you could make a socksified version of xboard +and run that. If you are using timestamp or timeseal, +you will need to socksify it, not +xboard; +this may be difficult seeing that ICC and FICS do not +provide source code for these programs. +Socksification is beyond the scope of this document, but +see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html. + +.SH ENVIRONMENT +.PP +Game and position files +are found in the directory named by the CHESSDIR environment +variable. If this variable is not set, the current working +directory is used. +If CHESSDIR is set, +xboard +actually changes its working directory to $CHESSDIR, so +any files written by the chess engine will be placed there too. +.SH SEE ALSO +.PP +.BR gnuchess (6), +.BR cmail (6). +.SH LIMITATIONS +.PP +There is no way for two people running copies of +xboard +to play each other without going through the Internet Chess Server. +.PP +Under some circumstances, your ICS password may be echoed when you log on. +.PP +If you are connecting to the ICS by running telnet, timestamp, or +timeseal on an Internet provider +or firewall host, you may find that each line you type is echoed back an extra +time after you hit Return. If your Internet provider is a Unix system, you +can probably turn its echo off by typing +.I "stty -echo" +after you log in, and/or +typing ^E-Return (control-E followed by the Return key) to the telnet +program after you have logged into ICS. It is a good idea to do this if you +can, because otherwise the extra echo can occasionally confuse +xboard's +parsing routines. +.PP +The game parser recognizes only algebraic notation. +.PP +The internal move legality tester does not look at the game history, +so in some cases it misses illegal castling or en passant captures. +It permits castling with the king on the d file because this is possible in +some "wild 1" games on ICS. +However, if you attempt an illegal move when using +a chess engine or the ICS, +xboard +will accept the error message that comes +back, undo the move, and let you try another. +.PP +Fischer Random castling is not understood. You can probably play +Fischer Random chess successfully on ICS by typing castling moves into the ICS +Interaction window, but they will not be animated correctly, and saved +games will not be loaded correctly if castling occurs. +.PP +FEN positions saved by xboard +never include correct information about whether castling is legal or +how many half-moves have been made since the last irreversible move, +and sometimes may not correctly indicate when en passant capture is available. +.PP +The mate detector does not understand that non-contact mate is not really mate +in bughouse. The only problem this causes while playing is minor: a +"#" (mate indicator) character will show up after a non-contact mating move in +the move list; xboard will not assume the game is over at that point. +However, if you are editing +a game, Edit Game mode will be terminated by a non-contact mate. +.PP +Some +xboard +functions may not work with versions of GNU Chess earlier +than 4.0, patchlevel 77, +or with versions of Crafty earlier than 15.11. +A few functions work with GNU Chess but not Crafty, or vice versa. +.PP +The menus may not work if your keyboard is in Caps Lock or Num Lock mode. +This seems to be a problem with the Athena menu widget, not an xboard bug. +.PP +Also see the ToDo file included with the distribution for many other +possible bugs, limitations, and ideas for improvement that have been suggested. +.SH REPORTING PROBLEMS +.PP +Report bugs and problems with xboard +to . +Please use the +.BR script (1) +program to start a typescript, run xboard +with the -debug option, and include the typescript output in your message. +Also tell us what kind of machine and what operating system version +you are using. The command "uname -a" will often tell you this. +Here is a sample of approximately what you should type: + +.nf + script + uname -a + ./configure + make + ./xboard -debug + exit + mail tim@tim-mann.org + Subject: Your short description of the problem + Your detailed description of the problem + ~r typescript + . +.fi + +If you improve +xboard, +please send a message about your changes, +and we will get in touch with you about merging them in +to the main line of development. +.SH AUTHORS AND CONTRIBUTORS +.PP +Tim Mann has been responsible for +xboard +versions 1.3 and beyond, and for +.BR WinBoard , +a port of +xboard +to Microsoft Win32 (Windows NT and Windows 95). +.PP +Mark Williams +contributed the initial (WinBoard-only) implementation +of many new features added to both XBoard and WinBoard in version 4.1.0, +including copy/paste, premove, icsAlarm, autoFlipView, training mode, +auto raise, and blindfold. +Ben Nye contributed X copy/paste code for XBoard. +.PP +Hugh Fisher added animated piece movement to +xboard, +and Henrik Gram added it to WinBoard. +Frank McIngvale added click/click moving, the Analysis modes, piece flashing, +ZIICS import, and ICS text colorization to xboard. +Jochen Wiedmann ported xboard +to the Amiga, creating +.BR AmyBoard , +and converted the documentation to texinfo. +Elmar Bartel contributed the new piece bitmaps for version 3.2. +Evan Welsh wrote +.BR cmail. +John Chanak contributed the initial implementation of ICS mode. +The color scheme and the old 80x80 piece bitmaps were taken from +Wayne Christopher's +.BR XChess +program. +.PP +Chris Sears and Dan Sears wrote the original +xboard; +they were responsible for versions 1.0 through 1.2. +.SH COPYRIGHT +.PP +Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. +Enhancements Copyright 1992-95 Free Software Foundation, Inc. +.PP +XBoard's alternative piece bitmaps (bitmaps.xchess) are derived from the +bitmaps in the XChess program, which was written and is copyrighted by Wayne +Christopher. +.PP +The following terms apply to Digital Equipment Corporation's copyright +interest in XBoard: +.PP +.RS +All Rights Reserved +.PP +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. +.PP +DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING +ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL +DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR +ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, +ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS +SOFTWARE. +.RE +.PP +The following terms apply to this enhanced version of XBoard distributed +by the Free Software Foundation: +.PP +.RS +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. +.PP +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +.PP +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +.RE +.PP +.BR ZIICS +is a separate copyrighted work of Andy McFarland (Zek on ICC). Use +of +.BR ZIICS +falls under the ZIICS license, not the GPL. diff --git a/xboard.texi b/xboard.texi new file mode 100644 index 0000000..96b8cb5 --- /dev/null +++ b/xboard.texi @@ -0,0 +1,2846 @@ +@ifinfo + +This file documents version @value{VERSION} of @value{NAME}. +@value{NAME} +is a graphical chessboard that can serve as a +user interface to the GNU Chess and Crafty chess engines, the +Internet Chess Servers, +electronic mail correspondence chess, or your own collection of saved games. + +Copyright (C) 1991 Digital Equipment Corporation, Maynard, Massachusetts. + +All Rights Reserved. + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +Digital disclaims all warranties with regard to this software, including +all implied warranties of merchantability and fitness. In no event shall +Digital be liable for any special, indirect or consequential damages or +any damages whatsoever resulting from loss of use, data or profits, +whether in an action of contract, negligence or other tortious action, +arising out of or in connection with the use or performance of this +software. + +Enhancements copyright (C) 1992-2000 Free Software Foundation, Inc. + +Published by the Free Software Foundation +59 Temple Place - Suite 330 +Boston, MA 02111-1307 USA + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +section entitled ``GNU General Public License,'' +is included exactly as in the original, and provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the section entitled ``GNU General Public License,'' +and this permission notice, may be included in translations approved by +the Free Software Foundation instead of in the original English. +@end ifinfo + +@titlepage +@title @value{NAME} +@author Tim Mann + +@page +@vskip 0pt plus 1filll +Copyright @copyright{} 1991 Digital Equipment Corporation, Maynard, Massachusetts. + +All Rights Reserved + +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of Digital not be +used in advertising or publicity pertaining to distribution of the +software without specific, written prior permission. + +Digital disclaims all warranties with regard to this software, including +all implied warranties of merchantability and fitness. In no event shall +Digital be liable for any special, indirect or consequential damages or +any damages whatsoever resulting from loss of use, data or profits, +whether in an action of contract, negligence or other tortious action, +arising out of or in connection with the use or performance of this +software. + +Enhancements copyright @copyright{} 1992-2000 Free Software Foundation, Inc. + +@format +Published by the Free Software Foundation +59 Temple Place - Suite 330 +Boston, MA 02111-1307 USA +@end format + +Permission is granted to make and distribute verbatim copies of +this manual provided the copyright notice and this permission notice +are preserved on all copies. + +@ignore +Permission is granted to process this file through Tex and print the +results, provided the printed document carries copying permission +notice identical to this one except for the removal of this paragraph +(this paragraph not being relevant to the printed manual). + +@end ignore +Permission is granted to copy and distribute modified versions of this +manual under the conditions for verbatim copying, provided also that the +section entitled ``GNU General Public License,'' is +included exactly as in the original, and provided that the entire +resulting derived work is distributed under the terms of a permission +notice identical to this one. + +Permission is granted to copy and distribute translations of this manual +into another language, under the above conditions for modified versions, +except that the section entitled ``GNU General Public License,'' +and this permission notice, may be included in +translations approved by the Free Software Foundation instead of in the +original English. + +@end titlepage + +@node Top +@top Introduction +@cindex introduction + +This manual documents version @value{VERSION} of @value{NAME}. +@value{NAME} +is a graphical chessboard that can serve as a +user interface to the GNU Chess and Crafty chess engines, the +Internet Chess Servers, +electronic mail correspondence chess, or your own collection of saved games. + +@menu +* Installation:: How to configure, compile and install @value{NAME}. +* Invocation:: Command options supported by @value{NAME}. +* Menus:: Menus, Buttons and Keys. +* ICS:: Using @value{NAME} with an Internet Chess Server (ICS). +* Firewalls:: Connecting to the ICS through a firewall. +* Environment:: Environment variables. +* Limitations:: Known limitations and/or bugs. +* Problems:: How and where to report any problems you run into. +* Contributors:: People who have helped developing @value{NAME}. +* CMail:: Using @value{NAME} for electronic correspondence chess. +* Programs:: Other programs you can use with @value{NAME}. +* Copying:: The GNU General Public License. + +* Index:: Index of concepts and symbol names. +@end menu + +@ifset html +@node What is it? +@chapter What is it? +@cindex What is it? +@value{NAME} +is a graphical chessboard that can serve as a +user interface to the GNU Chess and Crafty chess engines, the +Internet Chess Servers, +electronic mail correspondence chess, or your own collection of saved games. +These Web pages document version @value{VERSION} of @value{NAME}. +@end ifset + +@node Installation +@chapter How to configure, compile and install @value{NAME} +@cindex Installation + +@value{NAME} is normally distributed as source, in a file with a name like +@file{xboard-*.tar.gz}. You need to unpack this file and compile the results +with a C compiler. + +First, decide where you want to install the xboard executable program and +documentation. The default is to put them under the @file{/usr/local} +directory tree. If you want to put them somewhere else, such as under your +home directory, change the value in the @samp{--prefix} option below. + +Use the following commands: + +@example +gzip -cd xboard-*.tar.gz | tar -xvf - +cd xboard-*/ +configure --prefix=/usr/local +make +make install +@end example + +If you have any problems with these steps, +see the file @file{INSTALL} in the @value{NAME} distribution for +detailed instructions on options you can give to @code{configure}, +and see the file @file{FAQ} for answers to frequently asked questions. + +If everything works, you can delete the whole @file{xboard-*} directory after +@samp{make install} is done. + +@node Invocation +@chapter Command options supported by @value{NAME} +@cindex Invocation +@cindex Options + +@value{NAME} always runs in one of four major modes: + +@table @asis +@item @value{LCNAME} [options] +runs @value{NAME} as an interface to a chess engine running +on your machine, such as GNU Chess or Crafty. In this mode, +@value{NAME} lets you play a game against the chess engine, set up +arbitrary positions, force variations, or watch a game between two +chess engines. +@item @value{LCNAME} -ics -icshost hostname [options] +runs @value{NAME} as an interface to the Internet Chess Server +(ICS). You can play against other ICS users, observe games they are +playing, or review games that have recently finished. @xref{ICS}. +All the ``wild'' chess variants on ICS are supported, including bughouse. +@item @value{LCNAME} -ncp [options] +lets you use @value{NAME} as a simple chessboard to play through +games. It will read and write game files and allow you to play +through variations manually. You can use it to browse games off the +net or review games you have saved. +These features are also available in the other modes. +If you want to pipe games into @value{NAME}, use the supplied +shell script @file{pxboard}. For example, from the news reader @file{xrn}, +find a message with one or more games in it, +click the Save button, and type @samp{|pxboard} as the file name. +@item cmail +uses @value{NAME} as an interface to electronic mail +correspondence chess. +@xref{CMail}. +@end table + +Most of the @value{NAME} options have both a long name and a short +name. To turn a boolean option on or off from the command line, +either give its long name followed by the value @code{true} or +@code{false} (@samp{-longOptionName true}), or give just the short +name to turn the option on (@samp{-opt}), or the short name +preceded by @samp{x} to turn the option off (@samp{-xopt}). For +options that take strings or numbers as values, you can use the +long or short option names interchangeably. + +Each option corresponds to an X resource with the same name, so +if you like, you can set options in your @file{.Xdefaults} file +or in a file named @file{XBoard} in your home directory. +For options that have two names, the longer one is the name of +the corresponding X resource; the short name is not recognized. +To turn a boolean option on or off as an +X resource, give its long name followed by the value +@code{true} or @code{false}: + +@example +XBoard*longOptionName: true +@end example + +@menu +* Chess engine options:: Controlling the chess engine. +* ICS options:: Connecting to and using ICS. +* I/O options:: Load and Save options. +* User interface options:: Look and Feel options. +* Other options:: Miscellaneous. +@end menu + +@node Chess engine options +@section Controlling the chess engine +@cindex options, Chess engine +@cindex Chess engine options +@table @asis +@item -tc or -timeControl minutes[:seconds] +@cindex tc, option +@cindex timeControl, option +Each player begins with his clock set to the @code{timeControl} period. +Default: 5 minutes. +The additional options @code{movesPerSession} and @code{timeIncrement} +are mutually exclusive. + +@item -mps or -movesPerSession moves +@cindex mps, option +@cindex movesPerSession, option +When both players have made @code{movesPerSession} moves, a +new @code{timeControl} period is added to both clocks. Default: 40 moves. + +@item -inc or -timeIncrement seconds +@cindex inc, option +@cindex timeIncrement, option +If this option is specified, @code{movesPerSession} is ignored. +Instead, after each player's move, @code{timeIncrement} seconds are +added to his clock. +Use @samp{-inc 0} if you want to require the entire +game to be played in one @code{timeControl} period, with no increment. +Default: -1, which specifies @code{movesPerSession} mode. + +@item -clock/-xclock or -clockMode True/False +@cindex clock, option +@cindex clockMode, option +Determines whether or not to display the chess clocks. If clockMode is +@samp{false}, the clocks are not shown, but the side that is to play next +is still highlighted. Also, unless @code{searchTime} +is set, the chess engine still keeps track of the clock time and uses it to +determine how fast to make its moves. + +@item -st or -searchTime minutes[:seconds] +@cindex st, option +@cindex searchTime, option +Tells the chess engine to spend at most the given amount of time +searching for each of its moves. Without this option, the chess engine +chooses its search time based on the number of moves and amount +of time remaining until the next time control. +Setting this option also sets clockMode to False. + +@item -depth or -searchDepth number +@cindex sd, option +@cindex searchDepth, option +Tells the chess engine to look ahead at most the given number of moves +when searching for a move to make. Without this option, the chess +engine chooses its search depth based on the number of moves and +amount of time remaining until the next time control. With the option, +the engine will cut off its search early if it reaches the specified depth. + +@item -thinking/-xthinking or -showThinking True/False +@cindex thinking, option +@cindex showThinking, option +Sets the Show Thinking option. @xref{Options Menu}. Default: false. + +@item -ponder/-xponder or -ponderNextMove True/False +@cindex ponder, option +@cindex ponderNextMove, option +Sets the Ponder Next Move menu option. @xref{Options Menu}. Default: True. + +@item -mg or -matchGames n +@cindex mg, option +@cindex matchGames, option +Automatically runs an n-game match between two chess engines, +with alternating colors. +If the @code{loadGameFile} or @code{loadPositionFile} option is set, +@value{NAME} +starts each game with the given opening moves or the given position; +otherwise, the games start with the standard initial chess position. +If the @code{saveGameFile} option is set, a move record for the +match is appended to the specified file. If the @code{savePositionFile} +option is set, the final position reached in each game of the match is appended +to the specified file. When the match is over, @value{NAME} +displays the match score and exits. Default: 0 (do not run a match). + +@item -mm/-xmm or -matchMode True/False +@cindex mm, option +@cindex matchMode, option +Abbreviation for -matchGames 1. + +@item -fcp or -firstChessProgram program +@cindex fcp, option +@cindex firstChessProgram, option +Name of first chess engine. +Default: @file{gnuchessx}. + +@item -scp or -secondChessProgram program +@cindex scp, option +@cindex secondChessProgram, option +Name of second chess engine, if needed. +A second chess engine is started only in Two Machines (match) mode. +Default: @file{gnuchessx}. + +@item -fb/-xfb or -firstPlaysBlack True/False +@cindex fb, option +@cindex firstPlaysBlack, option +In games between two chess engines, firstChessProgram normally +plays white. (This is a change from earlier versions of @value{NAME}.) +If this option is True, firstChessProgram plays black. +In a multi-game match, this option affects the colors only for +the first game; they still alternate in subsequent games. + +@item -fh or -firstHost host +@itemx -sh or -secondHost host +@cindex fh, option +@cindex firstHost, option +@cindex sh, option +@cindex secondHost, option +Hosts on which the chess engines are to run. The default for +each is @file{localhost}. If you specify another host, @value{NAME} +uses @file{rsh} (1) to run the chess engine there. (You can substitute a +different remote shell program for rsh using the @code{remoteShell} +option described below.) + +@item -fd or -firstDirectory dir +@itemx -sd or -secondDirectory dir +@cindex fd, option +@cindex firstDirectory, option +@cindex sd, option +@cindex secondDirectory, option +Working directories in which the chess engines are to be run. +The default is "", which means to run the chess engine +in the same working directory as @value{NAME} +itself. (See the CHESSDIR environment variable.) +This option is effective only when the chess engine is being run +on the local host; it does not work if the engine is run remotely +using the -fh or -sh option. + +@item -initString string +@itemx -secondInitString string +@cindex initString, option +@cindex secondInitString, option +The string that is sent to initialize each chess engine for a new game. +Default: + +@example +new +random +@end example +@noindent +Setting this option from the command line is tricky, because you must +type in real newline characters, including one at the very end. +In most shells you can do this by +entering a @samp{\} character followed by a newline. It is easier to set +the option from your @file{.Xdefaults} file; in that case you can +include the character sequence @samp{\n} in the string, and it will +be converted to a newline. + +If you change this option, don't remove the @samp{new} +command; it is required by all chess engines to +start a new game. + +You can remove the @samp{random} command if you like; +including it causes GNU Chess to randomize its move selection +slightly so that it doesn't play the same moves in every game. +Even without @samp{random}, GNU Chess randomizes its choice of moves +from its opening book. Crafty +ignores this command; it randomizes by default. + +You can also try adding other +commands to the initString; see the GNU Chess or Crafty documentation for +details. + +@item -firstComputerString string +@itemx -secondComputerString string +@cindex firstComputerString, option +@cindex secondComputerString, option +The string that is sent to the chess engine if its opponent is another +computer chess engine. The default is @samp{computer\n}. Probably the +only useful alternative is the empty string (@samp{}), which keeps the +engine from knowing that it is playing another computer. + +@item -reuse/-xreuse or -reuseFirst True/False +@itemx -reuse2/-xreuse2 or -reuseSecond True/False +@cindex reuse, option +@cindex reuseFirst, option +@cindex reuse2, option +@cindex reuseSecond, option +If the option is false, +@value{NAME} kills off the chess engine after every game and starts +it again for the next game. +If the option is true (the default), +@value{NAME} starts the chess engine only once +and uses it repeatedly to play multiple games. +Some chess engines may not work properly when +reuse is turned on, such as versions of Crafty earlier than 12.0, +but otherwise new games will start faster if it is left on. + +@item -firstProtocolVersion version-number +@itemx -secondProtocolVersion version-number +@cindex firstProtocolVersion, option +@cindex secondProtocolVersion, option +This option specifies which version of the chess engine communication +protocol to use. By default, version-number is 2. In version 1, the +"protover" command is not sent to the engine; since version 1 is a +subset of version 2, nothing else changes. Other values for +version-number are not supported. +@end table + +@node ICS options +@section Connecting to and using ICS +@cindex ICS options +@cindex Options, ICS +@table @asis +@item -ics/-xics or -internetChessServerMode True/False +@cindex ics, option +@cindex internetChessServerMode, option +Connect with an Internet Chess Server to play chess against its +other users, observe games they are playing, or review games +that have recently finished. Default: false. +To use @value{NAME} in ICS mode, run it in the foreground, and use the +terminal you started it from to type commands and receive text +responses from the chess server. +@xref{ICS}. @xref{File Menu}. @xref{Step Menu}. +@xref{Mode Menu}. + +@item -icshost or -internetChessServerHost host +@cindex icshost, option +@cindex internetChessServerHost, option +The Internet host name or address of the chess server to connect +to when in ICS mode. Default: @code{chessclub.com}. See the file +@file{ics-addresses} in the @value{NAME} +distribution for a list of other addresses to try. +If your site doesn't have a working Internet name server, try +specifying the host address in numeric form. +You may also need +to specify the numeric address when using the icshelper option +with timestamp or timeseal (see below). +At this writing +@code{chessclub.com} is @samp{207.99.5.190} and +@code{freechess.org} is @samp{164.58.253.13}. + +@item -icsport or -internetChessServerPort port-number +@cindex icsport, option +@cindex internetChessServerPort, option +The port number to use when connecting to a chess server in ICS +mode. Default: 5000. + +@item -icshelper or -internetChessServerHelper prog-name +@cindex icshelper, option +@cindex internetChessServerHelper, option +An external helper program used to communicate with the chess server. +You would set it to "timestamp" for ICC (chessclub.com) or +"timeseal" for FICS (freechess.org, eics.daimi.aau.dk, etc.), after +obtaining the correct version of timestamp or timeseal for your +computer. See "help timestamp" on ICC and "help timeseal" on FICS. +This option is shorthand for @code{-useTelnet -telnetProgram program}. + +@item -telnet/-xtelnet or -useTelnet True/False +@cindex telnet, option +@cindex useTelnet, option +This option is poorly named; it should be called useHelper. +If set to true, it instructs @value{NAME} to run an external +program to communicate with the Internet Chess Server. +The program to use is given by the telnetProgram option. +If the option is +false (the default), @value{NAME} opens a TCP socket and uses its own +internal implementation of the telnet protocol to communicate with the +ICS. @xref{Firewalls}. + +@item -telnetProgram prog-name +@cindex telnetProgram, option +This option is poorly named; it should be called helperProgram. +It gives the name of the telnet program to be used with +the @code{gateway} and @code{useTelnet} options. The default is +@file{telnet}. The telnet program is invoked with the value of +@code{internetChessServerHost} as its first argument and the value +of @code{internetChessServerPort} as its second argument. +@xref{Firewalls}. + +@item -gateway host-name +@cindex gateway, option +If this option is set to a host name, @value{NAME} uses @file{rsh} (1) to run +the @file{telnet} (1) program on the given host to communicate with the +Internet Chess Server instead of using its own internal implementation +of the telnet protocol. You can substitute a different remote shell +program for @file{rsh} using the @code{remoteShell} option described below. +@xref{Firewalls}. + +@item -internetChessServerCommPort or -icscomm dev-name +@cindex internetChessServerCommPort, option +@cindex icscomm, option +If this option is set, @value{NAME} communicates with the ICS through +the given character I/O device instead of opening a TCP connection. +Use this option if your system does not have any kind of +Internet connection itself (not even a SLIP or PPP connection), +but you do have dialup access (or a hardwired terminal line) to +an Internet service provider from which you can telnet to the +ICS. + +The support for this option in @value{NAME} is minimal. You need to +set all communication parameters and tty modes before you enter +@value{NAME}. + +Use a script something like this: + +@example +stty raw -echo 9600 > /dev/tty00 +@value{LCNAME} -ics -icscomm /dev/tty00 +@end example + +Here replace @samp{/dev/tty00} with the name of the device that your +modem is connected to. You might have to add several more +options to these stty commands. See the man pages for @file{stty} (1) +and @code{tty} (4) if you run into problems. Also, on many systems stty +works on its standard input instead of standard output, so you +have to use @samp{<} instead of @samp{>}. + +If you are using linux, try starting with the script below. +Change it as necessary for your installation. + +@example +#################################################### +#!/bin/sh -f +# configure modem and fire up @value{NAME} + +# configure modem +( + stty 2400 ; stty raw ; stty hupcl ; stty -clocal + stty ignbrk ; stty ignpar ; stty ixon ; stty ixoff + stty -iexten ; stty -echo +) < /dev/modem +@value{LCNAME} -ics -icscomm /dev/modem +#################################################### +@end example +@noindent +After you start @value{NAME} in this way, type whatever commands are +necessary to dial out to your Internet provider and log in. +Then telnet to ICS, using a command like + +@example +telnet chessclub.com 5000 +@end example +@noindent +Important: See the paragraph below about extra echoes, +in @ref{Limitations}. + +@item -icslogon or -internetChessServerLogonScript file-name +@cindex icslogon, option +@cindex internetChessServerLogonScript, option +@cindex .icsrc +Whenever @value{NAME} connects to the Internet Chess Server, +if it finds a file with the name given in this option, it feeds the +file's contents to the ICS as commands. The default file name +is @file{.icsrc}. +Usually the first two lines of the file should be +your ICS user name and password. +The file can be either in $CHESSDIR, in @value{NAME}'s working +directory if CHESSDIR is not set, or in your home directory. + +@item -msLoginDelay delay +@cindex msLoginDelay, option +If you experience trouble logging on to an ICS when using the +@code{-icslogon} option, inserting some delay between characters +of the logon script may help. This option adds @code{delay} +milliseconds of delay between characters. Good values to try +are 100 and 250. + +@item -icsinput/-xicsinput or -internetChessServerInputBox True/False +@cindex icsinput, option +@cindex internetChessServerInputBox, option +Sets the ICS Input Box menu option. @xref{Mode Menu}. Default: false. + +@item -autocomm/-xautocomm or -autoComment True/False +@cindex autocomm, option +@cindex autoComment, option +Sets the Auto Comment menu option. @xref{Options Menu}. Default: False. + +@item -autoflag/-xautoflag or -autoCallFlag True/False +@cindex autoflag, option +@cindex autoCallFlag, option +Sets the Auto Flag menu option. @xref{Options Menu}. Default: false. + +@item -autobs/-xautobs or -autoObserve True/False +@cindex autobs, option +@cindex autoObserve, option +Sets the Auto Observe menu option. @xref{Options Menu}. Default: false. + +@item -moves/-xmoves or -getMoveList True/False +@cindex moves, option +@cindex getMoveList, option +Sets the Get Move List menu option. @xref{Options Menu}. Default: true. + +@item -alarm/-xalarm or -icsAlarm True/False +@cindex alarm, option +@cindex icsAlarm, option +Sets the ICS Alarm menu option. @xref{Options Menu}. Default: true. + +@item -icsAlarmTime ms +@cindex icsAlarmTime, option +Sets the time in milliseconds for the ICS Alarm menu option. +@xref{Options Menu}. Default: 5000. + +@item -pre/-xpre \fRor\fB -premove True/False +@cindex pre, option +@cindex premove, option +Sets the Premove menu option. @xref{Options Menu}. Default: true. + +@item -quiet/-xquiet or -quietPlay True/False +@cindex quiet, option +@cindex quietPlay, option +Sets the Quiet Play menu option. @xref{Options Menu}. Default: false. + +@item -colorizeMessages or -colorize +@cindex Colors +@cindex colorize, option +Setting colorizeMessages +to True tells XBoard to colorize the messages received from +the ICS. Colorization works only if your xterm +supports ISO 6429 escape sequences for changing text colors. + +@item -colorShout foreground,background,bold +@itemx -colorSShout foreground,background,bold +@itemx -colorChannel1 foreground,background,bold +@itemx -colorChannel foreground,background,bold +@itemx -colorKibitz foreground,background,bold +@itemx -colorTell foreground,background,bold +@itemx -colorChallege foreground,background,bold +@itemx -colorRequest foreground,background,bold +@itemx -colorSeek foreground,background,bold +@itemx -colorNormal foreground,background,bold +@cindex Colors +@cindex colorShout, option +@cindex colorSShout, option +@cindex colorChannel1, option +@cindex colorChannel, option +@cindex colorKibitz, option +@cindex colorTell, option +@cindex colorChallenge, option +@cindex colorRequest, option +@cindex colorSeek, option +@cindex colorNormal, option +These options set the colors used when colorizing ICS messages. +All ICS messages are grouped into one of these categories: +shout, sshout, channel 1, other channel, kibitz, tell, challenge, +request (including abort, adjourn, draw, pause, and takeback), or +normal (all other messages). + +Each foreground or background argument can be one of the following: +black, red, green, yellow, blue, magenta, cyan, white, or default. +Here ``default'' means the default foreground or background color of +your xterm. Bold can be 1 or 0. If background is omitted, ``default'' +is assumed; if bold is omitted, 0 is assumed. + +Here is an example of how to set the colors in your @file{.Xdefaults} file. +The colors shown here are the default values; you will get +them if you turn @code{-colorize} on without specifying your own colors. +@example + xboard*colorizeMessages: true + xboard*colorShout: green + xboard*colorSShout: green, black, 1 + xboard*colorChannel1: cyan + xboard*colorChannel: cyan, black, 1 + xboard*colorKibitz: magenta, black, 1 + xboard*colorTell: yellow, black, 1 + xboard*colorChallenge: red, black, 1 + xboard*colorRequest: red + xboard*colorSeek: blue + xboard*colorNormal: default +@end example + +@item -soundProgram progname +@cindex soundProgram, option +@cindex Sounds +If this option is set to a sound-playing program that is installed and +working on your system, @value{NAME} can play sound files when certain +events occur, listed below. The default program name is "play". If +any of the sound options is set to "$", the event rings the terminal +bell by sending a ^G character to standard output, instead of playing +a sound file. If an option is set to the empty string "", no sound is +played for that event. + +@item -soundShout filename +@itemx -soundSShout filename +@itemx -soundChannel filename +@itemx -soundKibitz filename +@itemx -soundTell filename +@itemx -soundChallenge filename +@itemx -soundRequest filename +@itemx -soundSeek filename +@cindex soundShout, option +@cindex soundSShout, option +@cindex soundChannel, option +@cindex soundKibitz, option +@cindex soundTell, option +@cindex soundChallenge, option +@cindex soundRequest, option +@cindex soundSeek, option +These sounds are triggered in the same way as the colorization events +described above. They all default to "", no sound. They are played +only if the colorizeMessages is on. + +@item -soundMove filename +@cindex soundMove, option +This sound is used by the Move Sound menu option. Default: "$". + +@item -soundIcsAlarm filename +@cindex soundIcsAlarm, option +This sound is used by the ICS Alarm menu option. Default: "$". + +@item -soundIcsWin filename +@cindex soundIcsWin, option +This sound is played when you win an ICS game. Default: "" (no sound). + +@item -soundIcsLoss filename +@cindex soundIcsLoss, option +This sound is played when you lose an ICS game. Default: "" (no sound). + +@item -soundIcsDraw filename +@cindex soundIcsDraw, option +This sound is played when you draw an ICS game. Default: "" (no sound). + +@item -soundIcsUnfinished filename +@cindex soundIcsUnfinished, option +This sound is played when an ICS game that you are participating in is +aborted, adjourned, or otherwise ends inconclusively. Default: "" (no +sound). + +Here is an example of how to set the sounds in your .Xdefaults file. +@example + xboard*soundShout: shout.wav + xboard*soundSShout: sshout.wav + xboard*soundChannel1: channel1.wav + xboard*soundChannel: channel.wav + xboard*soundKibitz: kibitz.wav + xboard*soundTell: tell.wav + xboard*soundChallenge: challenge.wav + xboard*soundRequest: request.wav + xboard*soundSeek: seek.wav + xboard*soundMove: move.wav + xboard*soundIcsWin: win.wav + xboard*soundIcsLoss: lose.wav + xboard*soundIcsDraw: draw.wav + xboard*soundIcsUnfinished: unfinished.wav + xboard*soundIcsAlarm: alarm.wav +@end example +@end table + +@node I/O options +@section Load and Save options +@cindex Options, I/O +@cindex I/O options +@table @asis +@item -lgf or -loadGameFile file +@itemx -lgi or -loadGameIndex index +@cindex lgf, option +@cindex loadGameFile, option +@cindex lgi, option +@cindex loadGameIndex, option +If the @code{loadGameFile} option is set, @value{NAME} loads the specified +game file at startup. The file name @file{-} specifies the standard +input. If there is more than one game in the file, @value{NAME} +pops up a menu of the available games, with entries based on their PGN tags. +If the @code{loadGameIndex} option is set to @samp{N}, the menu is suppressed +and the N th game found in the file is loaded immediately. +The menu is also suppressed if @code{matchMode} is enabled or if the game file +is a pipe; in these cases the first game in the file is loaded immediately. +@ifset XBOARD +Use the @file{pxboard} shell script provided with @value{NAME} if you +want to pipe in files containing multiple games and still see the menu. +@end ifset + +@item -td or -timeDelay seconds +@cindex td, option +@cindex timeDelay, option +Time delay between moves during @samp{Load Game}. Fractional seconds +are allowed; try @samp{-td 0.4}. A time delay value of -1 tells +@value{NAME} not to step through game files automatically. Default: 1 +second. + +@item -sgf or -saveGameFile file +@cindex sgf, option +@cindex saveGameFile, option +If this option is set, @value{NAME} appends a record of every game +played to the specified file. The file name @file{-} specifies the +standard output. + +@item -autosave/-xautosave or -autoSaveGames True/False +@cindex autosave, option +@cindex autoSaveGames, option +Sets the Auto Save menu option. @xref{Options Menu}. Default: false. +Ignored if @code{saveGameFile} is set. + +@item -lpf or -loadPositionFile file +@itemx -lpi or -loadPositionIndex index +@cindex lpf, option +@cindex loadPositionFile, option +@cindex lpi, option +@cindex loadPositionIndex, option +If the @code{loadPositionFile} option is set, @value{NAME} loads the +specified position file at startup. The file name @file{-} specifies the +standard input. If the @code{loadPositionIndex} option is set to N, +the Nth position found in the file is loaded; otherwise the +first position is loaded. + +@item -spf or -savePositionFile file +@cindex spf, option +@cindex savePositionFile, option +If this option is set, @value{NAME} appends the final position reached +in every game played to the specified file. The file name @file{-} +specifies the standard output. + +@item -oldsave/-xoldsave or -oldSaveStyle True/False +@cindex oldsave, option +@cindex oldSaveStyle, option +Sets the Old Save Style menu option. @xref{Options Menu}. Default: false. +@end table + +@node User interface options +@section Look and Feel options +@cindex User interface options +@cindex Options, User interface +@table @asis +@item -display +@itemx -geometry +@itemx -iconic +@cindex display, option +@cindex geometry, option +@cindex iconic, option +These are just the standard Xt options accepted by @value{NAME}. + +@item -movesound/-xmovesound or -bell/-xbell or -ringBellAfterMoves True/False +@cindex movesound, option +@cindex bell, option +@cindex ringBellAfterMoves, option +Sets the Move Sound menu option. @xref{Options Menu}. Default: false. + +@item -exit/-xexit or -popupExitMessage True/False +@cindex exit, option +@cindex popupExitMessage, option +Sets the Popup Exit Message menu option. @xref{Options Menu}. Default: True. + +@item -popup/-xpopup or -popupMoveErrors True/False +@cindex popup, option +@cindex popupMoveErrors, option +Sets the Popup Move Errors menu option. @xref{Options Menu}. Default: False. + +@item -queen/-xqueen or -alwaysPromoteToQueen True/False +@cindex queen, option +@cindex alwaysPromoteToQueen, option +Sets the Always Queen menu option. @xref{Options Menu}. Default: false. + +@item -legal/-xlegal or -testLegality True/False +@cindex legal, option +@cindex testLegality, option +If this option is true (the default), +@value{NAME} +tests whether moves you try to make with the mouse are legal, and +refuses to let you make an illegal move. Moves loaded from a file +with @samp{Load Game} are also checked. +If the option is false, all moves are accepted. +If GNU Chess, Crafty, or the ICS is active, +they will still reject illegal moves. Turning off this option is +useful if you are playing a chess variant with rules that +@value{NAME} +does not understand. + +@item -size or -boardSize (sizeName | n1,n2,n3,n4,n5,n6,n7) +@cindex size, option +@cindex boardSize, option +@cindex board size +Determines how large the board will be, by selecting the pixel size +of the pieces and setting a few related parameters. +The sizeName can be one of: Titanic, giving 129x129 pixel pieces, +Colossal 116x116, Giant 108x108, Huge 95x95, Big 87x87, Large 80x80, Bulky 72x72, +Medium 64x64, Moderate 58x58, Average 54x54, Middling 49x49, Mediocre +45x45, Small 40x40, Slim 37x37, Petite 33x33, Dinky 29x29, Teeny 25x25, +or Tiny 21x21. +Pieces of all these sizes are built into @value{NAME}. +Other sizes can +be used if you have them; see the pixmapDirectory and bitmapDirectory +options. +The default depends on the size of your screen; it is approximately the +largest size that will fit without clipping. + +You can select other sizes or vary other layout parameters by providing +a list of comma-separated values (with no spaces) as the argument. +You do not need to provide all the values; for any you omit from the +end of the list, defaults are taken from the nearest built-in size. +The value @code{n1} gives the piece size, @code{n2} the width of the +black border +between squares, @code{n3} the desired size for the +clockFont, @code{n4} the desired size for the coordFont, +@code{n5} the desired size for the default font, +@code{n6} the smallLayout flag (0 or 1), +and @code{n7} the tinyLayout flag (0 or 1). +All dimensions are in pixels. +If the border between squares is eliminated (0 width), the various +highlight options will not work, as there is nowhere to draw the highlight. +If smallLayout is 1 and @code{titleInWindow} is True, +the window layout is rearranged to make more room for the title. +If tinyLayout is 1, the labels on the menu bar are abbreviated +to one character each and the buttons in the button bar are made narrower. + +@item -coords/-xcoords or -showCoords True/False +@cindex coords, option +@cindex showCoords, option +Sets the Show Coords menu option. @xref{Options Menu}. Default: false. +The @code{coordFont} option specifies what font to use. + +@item -autoraise/-xautoraise or -autoRaiseBoard True/False +@cindex autoraise, option +@cindex autoRaiseBoard, option +Sets the Auto Raise Board menu option. Default: true. + +@item -autoflip/-xautoflip or -autoFlipView True/False +@cindex autoflip, option +@cindex autoFlipView, option +Sets the Auto Flip View menu option. Default: true. + +@item -flip/-xflip or -flipView True/False +@cindex flip, option +@cindex flipView, option +If Auto Flip View is not set, or if you are observing but not participating +in a game, then the positioning of the board at the start of each game +depends on the flipView option. If flipView is False (the default), +the board is positioned so that the white pawns move from the bottom to the +top; if True, the black pawns move from the bottom to the top. +In any case, the Flip menu option can be used to flip the board after +the game starts. + +@item -title/-xtitle or -titleInWindow True/False +@cindex title, option +@cindex titleInWindow, option +If this option is true, @value{NAME} displays player names (for ICS +games) and game file names (for @samp{Load Game}) inside its main +window. If the option is false (the default), this information is +displayed only in the window banner. You probably won't want to +set this option unless the information is not showing up in the +banner, as happens with a few X window managers. + +@item -mono/-xmono or -monoMode True/False +@cindex mono, option +@cindex monoMode, option +Determines whether @value{NAME} displays its pieces and squares with +two colors (true) or four (false). You shouldn't have to +specify @code{monoMode}; @value{NAME} will determine if it is necessary. + +@item -flashCount count +@itemx -flashRate rate +@itemx -flash +@itemx -xflash +@cindex flashCount, option +@cindex flashRate, option +@cindex flash, option +@cindex xflash, option +These options enable flashing of pieces when they +land on their destination square. +@code{flashCount} +tells XBoard how many times to flash a piece after it +lands on its destination square. +@code{flashRate} +controls the rate of flashing (flashes/sec). +Abbreviations: +@code{flash} +sets flashCount to 3. +@code{xflash} +sets flashCount to 0. +Defaults: flashCount=0 (no flashing), flashRate=5. + +@item -highlight/-xhighlight or -highlightLastMove True/False +@cindex highlight, option +@cindex highlightLastMove, option +Sets the Highlight Last Move menu option. Default: false. + +@item -blind/-xblind or -blindfold True/False +@cindex blind, option +@cindex blindfold, option +Sets the Blindfold menu option. Default: false. + +@item -clockFont font +@cindex clockFont, option +@cindex Font, clock +The font used for the clocks. If the option value is a pattern +that does not specify the font size, @value{NAME} tries to choose an +appropriate font for the board size being used. +Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*. + +@item -coordFont font +@cindex coordFont, option +@cindex Font, coordinates +The font used for rank and file coordinate labels if @code{showCoords} +is true. If the option value is a pattern that does not specify +the font size, @value{NAME} tries to choose an appropriate font for +the board size being used. +Default: -*-helvetica-bold-r-normal--*-*-*-*-*-*-*-*. + +@item -font font +@cindex font, option +@cindex Font +The font used for popup dialogs, menus, comments, etc. +If the option value is a pattern that does not specify +the font size, @value{NAME} tries to choose an appropriate font for +the board size being used. +Default: -*-helvetica-medium-r-normal--*-*-*-*-*-*-*-*. + +@item -fontSizeTolerance tol +@cindex fontSizeTolerance, option +In the font selection algorithm, a nonscalable font will be preferred +over a scalable font if the nonscalable font's size differs by tol pixels +or less from the desired size. A value of -1 will force +a scalable font to always be used if available; a value of 0 will +use a nonscalable font only if it is exactly the right size; +a large value (say 1000) will force a nonscalable font to always be +used if available. Default: 4. + +@item -bm or -bitmapDirectory dir +@itemx -pixmap or -pixmapDirectory dir +@cindex bm, option +@cindex bitmapDirectory, option +@cindex pixmap, option +@cindex pixmapDirectory, option +These options control what piece images xboard uses. The @value{NAME} +distribution includes one set of pixmap pieces in xpm format, in the +directory @file{pixmaps}, and two sets of bitmap pieces in xbm format, +in the directories @file{bitmaps} and @file{bitmaps.xchess}. Pixmap +pieces give a better appearance on the screen: the white pieces have +dark borders, and the black pieces have opaque internal details. With +bitmaps, neither piece color has a border, and the internal details +are transparent; you see the square color or other background color +through them. + +If @value{NAME} is configured and compiled on a system that includes libXpm, +the X pixmap library, the xpm pixmap pieces are compiled in as the +default. A different xpm piece set can be selected at runtime with +the @code{pixmapDirectory} option, or a bitmap piece set can be selected +with the @code{bitmapDirectory} option. + +If @value{NAME} is configured and compiled on a system that does not include +libXpm (or the @code{--disable-xpm} option is given to the configure +program), the bitmap pieces are compiled in as the default. It is not +possible to use xpm pieces in this case, but pixmap pieces in another +format called "xim" can be used by giving the @code{pixmapDirectory} option. +Or again, a different bitmap piece set can be selected with the +@code{bitmapDirectory} option. + +Files in the @code{bitmapDirectory} must be named as follows: +The first character of a piece bitmap name gives the piece it +represents (@samp{p}, @samp{n}, @samp{b}, @samp{r}, @samp{q}, or @samp{k}), +the next characters give the size in pixels, the +following character indicates whether the piece is +solid or outline (@samp{s} or @samp{o}), +and the extension is @samp{.bm}. +For example, a solid 80x80 knight would be named @file{n80s.bm}. +The outline bitmaps are used only in monochrome mode. +If bitmap pieces are compiled in and the bitmapDirectory is missing +some files, the compiled in pieces are used instead. + +If the bitmapDirectory option is given, +it is also possible to replace xboard's icons and menu checkmark, +by supplying files named @file{icon_white.bm}, @file{icon_black.bm}, and +@file{checkmark.bm}. + +For more information about pixmap pieces and how to get additional +sets, see @ref{zic2xpm}. + +@item -whitePieceColor color +@itemx -blackPieceColor color +@itemx -lightSquareColor color +@itemx -darkSquareColor color +@itemx -highlightSquareColor color +@cindex Colors +@cindex whitePieceColor, option +@cindex blackPieceColor, option +@cindex lightSquareColor, option +@cindex darkSquareColor, option +@cindex highlightSquareColor, option +Colors to use for the pieces, squares, and square highlights. +Defaults: +@example +-whitePieceColor #FFFFCC +-blackPieceColor #202020 +-lightSquareColor #C8C365 +-darkSquareColor #77A26D +-highlightSquareColor #FFFF00 +-premoveHighlightColor #FF0000 +@end example + +On a grayscale monitor you might prefer: +@example +-whitePieceColor gray100 +-blackPieceColor gray0 +-lightSquareColor gray80 +-darkSquareColor gray60 +-highlightSquareColor gray100 +-premoveHighlightColor gray70 +@end example + +@item -drag/-xdrag or -animateDragging True/False +@cindex drag, option +@cindex animateDragging, option +Sets the Animate Dragging menu option. Default: True. + +@item -animate/-xanimate or -animateMoving True/False +@cindex animate, option +@cindex animateMoving, option +Sets the Animate Moving menu option. Default: True. + +@item -animateSpeed n +@cindex -animateSpeed, option +Number of milliseconds delay between each animation frame when Animate +Moves is on. +@end table + +@node Other options +@section Miscellaneous +@cindex Options, miscellaneous +@table @asis + +@item -ncp/-xncp or -noChessProgram True/False +@cindex ncp, option +@cindex noChessProgram, option +If this option is true, @value{NAME} acts as a passive chessboard; it +does not start a chess engine at all. Turning on this option +also turns off clockMode. Default: false. + +@item -mode or -initialMode modename +@cindex mode, option +@cindex initalMode, option +If this option is given, @value{NAME} selects the given modename +from the Mode menu after starting and (if applicable) processing the +loadGameFile or loadPositionFile option. Default: "" (no selection). +Other supported values are +MachineWhite, MachineBlack, TwoMachines, Analysis, +AnalyzeFile, EditGame, EditPosition, and Training. + +@item -variant varname +@cindex variant, option + +Activates preliminary, partial support for playing chess variants +against a local engine or editing variant games. This flag is not +needed in ICS mode. Recognized variant names are: + +@example + normal Normal chess + wildcastle Shuffle chess, king can castle from d file + nocastle Shuffle chess, no castling allowed + fischerandom Fischer Random shuffle chess + bughouse Bughouse, ICC/FICS rules + crazyhouse Crazyhouse, ICC/FICS rules + losers Lose all pieces or get mated (ICC wild 17) + suicide Lose all pieces including king (FICS) + giveaway Try to have no legal moves (ICC wild 26) + twokings Weird ICC wild 9 + kriegspiel Opponent's pieces are invisible + atomic Capturing piece explodes (ICC wild 27) + 3check Win by giving check 3 times (ICC wild 25) + shatranj An ancient precursor of chess (ICC wild 28) + unknown Catchall for other unknown variants +@end example + +In the shuffle variants, xboard does not shuffle the pieces, but +you can do it by hand using Edit Position. Some variants are +supported only in ICS mode, including fischerandom, bughouse, and +kriegspiel. The winning/drawing conditions in crazyhouse (offboard +interposition on mate), losers, suicide, giveaway, atomic, and 3check +are not fully understood. In crazyhouse, xboard does not yet keep +track of offboard pieces. Shatranj is unsupported, but it may be +usable if you turn off Test Legality. + +@item -debug/-xdebug or -debugMode True/False +@cindex debug, option +@cindex debugMode, option +Turns on debugging printout. + +@item -rsh or -remoteShell shell-name +@cindex rsh, option +@cindex remoteShell, option +Name of the command used to run programs remotely. The default +is @file{rsh} or @file{remsh}, determined when @value{NAME} is +configured and compiled. + +@item -ruser or -remoteUser user-name +@cindex ruser, option +@cindex remoteUser, option +User name on the remote system when running programs with the +@code{remoteShell}. The default is your local user name. +@end table + + +@node Menus +@chapter Menus, buttons and keys +@cindex Menus +To move a piece, either drag it with the left mouse button, +or click the left mouse button once on the piece, then once more on +the destination square. +To drop a new piece on a +square (when applicable), press the +middle or right mouse button over the square +and select from the popup menu. + +All other @value{NAME} commands are available from the menu bar. The most +frequently used commands also have shortcut keys or on-screen buttons. + +@menu +* File Menu:: Accessing external games and positions. +* Mode Menu:: Selecting @value{NAME}'s mode. +* Action Menu:: Talking to the chess engine or ICS opponents. +* Step Menu:: Controlling the game. +* Options Menu:: User preferences. +* Help Menu:: Getting help. +* Keys:: Other shortcut keys. +@end menu + +@node File Menu +@section Accessing external games and positions +@cindex File Menu +@cindex Menu, File +@table @asis +@item Reset +@cindex Reset, Menuitem +Resets @value{NAME} and the chess engine to the beginning of a new chess +game. The @samp{r} key is a keyboard equivalent. In Internet Chess +Server mode, clears the current state of @value{NAME}, then +resynchronizes with ICS by sending a refresh command. If you want to +stop playing, observing, or examining a game on ICS, use an +appropriate command from the Action menu, not @samp{Reset}. @xref{Action +Menu}. + +@item Load Game +@cindex Load Game, Menuitem +Plays a game from a record file. The @samp{g} key is a keyboard equivalent. +A popup dialog prompts you for the file name. If the file contains more +than one game, a second popup dialog +displays a list of games (with information drawn from their PGN tags, if +any), and you can select the one you want. Alternatively, you can load the +Nth game in the file directly, by typing the number @samp{N} after the +file name, separated by a space. + +The game file parser will accept PGN (portable game notation), +or in fact almost any file that contains moves in algebraic +notation. +Notation of the form @samp{P@@f7} +is accepted for piece-drops in bughouse games; +this is a nonstandard extension to PGN. +If the file includes a PGN position (FEN tag), or an +@value{NAME} position diagram bracketed by @samp{[--} and @samp{--]} +before the first move, the game starts from that position. Text +enclosed in parentheses, square brackets, or curly braces is assumed to +be commentary and is displayed in a pop-up window. Any other +text in the file is ignored. PGN variations (enclosed in +parentheses) are treated as comments; @value{NAME} is not able to walk +variation trees. +The nonstandard PGN tag [Variant "varname"] functions similarly to +the -variant command-line option (see below), allowing games in certain chess +variants to be loaded. There is also a heuristic to +recognize chess variants from the Event tag, by looking for the strings +that the Internet Chess Servers put there when saving variant ("wild") games. + +@item Load Next Game +@cindex Load Next Game, Menuitem +Loads the next game from the last game record file you loaded. +The shifted @samp{N} key is a keyboard equivalent. +Not available if the last game was loaded from a pipe. + +@item Load Previous Game +@cindex Load Previous Game, Menuitem +Loads the previous game from the last game record file you +loaded. The shifted @samp{P} key is a keyboard equivalent. +Not available if the last game was loaded from a pipe. + +@item Reload Same Game +@cindex Reload Same Game, Menuitem +Reloads the last game you loaded. + +@item Save Game +@cindex Save Game, Menuitem +Appends a record of the current game to a file. +A popup dialog +prompts you for the file name. If the game did not begin with +the standard starting position, the game file includes the +starting position used. Games are saved in the PGN (portable +game notation) format, unless the oldSaveStyle option is true, +in which case they are saved in an older format that is specific +to @value{NAME}. Both formats are human-readable, and both can be +read back by the @samp{Load Game} command. +Notation of the form @samp{P@@f7} +is accepted for piece-drops in bughouse games; +this is a nonstandard extension to PGN. + +@item Copy Game +@cindex Copy Game, Menuitem +Copies a record of the current game to an internal clipboard in PGN +format and sets the X selection to the game text. The game can be +pasted to another application (such as a text editor or another copy +of @value{NAME}) using that application's paste command. In many X +applications, such as xterm and emacs, the middle mouse button can be +used for pasting; in @value{NAME}, you must use the Paste Game command. + +@item Paste Game +@cindex Paste Game, Menuitem +Interprets the current X selection as a game record and loads it, as +with Load Game. + +@item Load Position +@cindex Load Position, Menuitem +Sets up a position from a position file. A popup dialog prompts +you for the file name. If the file contains more than one saved +position, and you want to load the Nth one, type the number N +after the file name, separated by a space. Position files must +be in FEN (Forsythe-Edwards notation), or in the format that the +Save Position command writes when oldSaveStyle is turned on. + +@item Load Next Position +@cindex Load Next Position, Menuitem +Loads the next position from the last position file you loaded. +Not available if the last position was loaded from a pipe. + +@item Load Previous Position +@cindex Load Previous Position, Menuitem +Loads the previous position from the last position file you +loaded. Not available if the last position was loaded from a pipe. + +@item Reload Same Position +@cindex Reload Same Position, Menuitem +Reloads the last position you loaded. + +@item Save Position +@cindex Save Game, Menuitem +Appends a diagram of the current position to a file. +A popup dialog +prompts you for the file name. Positions are saved in +FEN (Forsythe-Edwards notation) format unless the @code{oldSaveStyle} +option is true, in which case they are saved in an older, +human-readable format that is specific to @value{NAME}. Both formats +can be read back by the @samp{Load Position} command. + +@item Copy Position +@cindex Copy Position, Menuitem +Copies the current position to an internal clipboard in FEN format and +sets the X selection to the position text. The position can be pasted +to another application (such as a text editor or another copy of +@value{NAME}) using that application's paste command. In many X +applications, such as xterm and emacs, the middle mouse button can be +used for pasting; in @value{NAME}, you must use the Paste Position command. + +@item Paste Position +@cindex Paste Position, Menuitem +Interprets the current X selection as a FEN position and loads it, as +with Load Position. + +@item Mail Move +@itemx Reload CMail Message +@cindex Mail Move, Menuitem +@cindex Reload CMail Message, Menuitem +See @ref{CMail}. + +@item Exit +@cindex Exit, Menuitem +Exits from @value{NAME}. The shifted @samp{Q} key is a keyboard equivalent. +@end table + + +@node Mode Menu +@section Selecting @value{NAME}'s mode +@cindex Menu, Mode +@cindex Mode Menu +@table @asis +@item Machine White +@cindex Machine White, Menuitem +Forces the chess engine to play White. + +@item Machine Black +@cindex Machine Black, Menuitem +Forces the chess engine to play Black. + +@item Two Machines +@cindex Two Machines, Menuitem +Plays a game between two chess engines. + +@item Analysis Mode +@cindex Analysis Mode, Menuitem +XBoard with Crafty only. +For information on getting Crafty, see @ref{Crafty}. + +XBoard tells Crafty to start analyzing the current game/position +and shows you the analysis as you move pieces around. + +To setup a position to analyze, you do the following: + +1. Select Edit Position from the Mode Menu + +2. Setup the position (use the right and middle buttons to +bring up the Black/White piece menus). + +3. When you are finished, click on either the Black or White +clock to tell XBoard which side moves first. + +4. Select Analysis Mode from the Mode Menu to start the analysis. + +@item Analyze File +@cindex Analyze File, Menuitem +XBoard with Crafty only. +For information on getting Crafty, see @ref{Crafty}. + +This option lets you load a game from a file (PGN, XBoard format, etc.) +and analyze it. When you select this menu item, a popup window appears +and asks for a filename to load. +If the file contains multiple games, another popup appears that lets +you select which game you wish to analyze. +After a game is loaded, use the XBoard arrow buttons to step +forwards/backwards through the game and watch Crafty's analysis. + +@item ICS Client +@cindex ICS Client, Menuitem +ICS mode only. Takes @value{NAME} out of the Edit Game or +Edit Position state. + +While you are examining a game on the ICS, you can issue the ICS +position-editing commands with the mouse. Do this with @samp{ICS +Client} selected on the Mode menu, not @samp{Edit Position}; the latter +edits only your local copy of the position. + +To drop a new piece on a square, press mouse button 2 or 3 over +the square. This brings up a menu of white pieces (button 2) or +black pieces (button 3). +Additional menu choices let you empty the square or clear the board. +You cannot set the side to play or drag pieces to arbitrary squares +while examining on ICS, however; the ICS permits only legal moves +in this mode. + +If you are playing a bughouse game on the ICS, you can drop an offboard piece +by pressing mouse button 2 or 3 over an empty square to bring up a piece menu. +It makes no difference which button you use. +A list of the offboard pieces +each player has available is shown in the window title after the player's name. + +@item Edit Game +@cindex Edit Game, Menuitem +Allows you to make moves for both Black and White, and to change +moves after backing up with the @samp{Backward} command. The clocks do +not run. + +In GNU Chess mode, the chess engine continues to check moves for legality +but does not participate in the game. You can bring the chess engine +into the game by selecting @samp{Machine White}, @samp{Machine Black}, +or @samp{Two Machines}. + +In ICS mode, the moves are not sent to the ICS: @samp{Edit Game} takes +@value{NAME} out of ICS Client mode and lets you edit games locally. +If you want to edit games on ICS in a way that other ICS users +can see, use the ICS examine command or start an ICS match +against yourself. + +@item Edit Position +@cindex Edit Position, Menuitem +Lets you set up an arbitrary board position. +Use mouse button 1 to drag pieces to new squares, or to delete a piece +by dragging it off the board or dragging an empty square on top of it. +To drop a new piece on a square, press mouse button 2 or 3 over the +square. This brings up a menu of white pieces (button 2) or +black pieces (button 3). Additional menu choices let you empty the +square or clear the board. You can set the side to play next by +clicking on the White or Black indicator at the top of the screen. +Selecting @samp{Edit Position} causes @value{NAME} to discard +all remembered moves in the current game. + +In ICS mode, changes made to the position by @samp{Edit Position} are +not sent to the ICS: @samp{Edit Position} takes @value{NAME} out of +@samp{ICS Client} mode and lets you edit positions locally. If you want to +edit positions on ICS in a way that other ICS users can see, use +the @samp{ICS examine} command, or start an ICS match against yourself. +(See also the ICS Client topic above.) + +@item Training +@cindex Training, Menuitem +Training mode lets you interactively guess the moves of a game for one +of the players. You guess the next move of the game by playing the +move on the board. If the move played matches the next move of the +game, the move is accepted and the opponent's response is autoplayed. +If the move played is incorrect, an error message is displayed. You +can select this mode only while loading a game (that is, after +selecting Load Game from the File menu). While @value{NAME} is in Training +mode, the navigation buttons are disabled. + +@item Show Game List +@cindex Show Game List, Menuitem +Shows or hides the list of games generated by the last @samp{Load Game} +command. + +@item Edit Tags +@cindex Edit Tags, Menuitem +Lets you edit the PGN (portable game notation) +tags for the current game. After editing, the tags must still conform to +the PGN tag syntax: + +@example + ::= + + ::= [ ] + ::= + ::= +@end example +@noindent +See the PGN Standard for full details. Here is an example: + +@example +[Event "Portoroz Interzonal"] +[Site "Portoroz, Yugoslavia"] +[Date "1958.08.16"] +[Round "8"] +[White "Robert J. Fischer"] +[Black "Bent Larsen"] +[Result "1-0"] +@end example +@noindent +Any characters that do not match this syntax are silently ignored. Note that +the PGN standard requires all games to have at least the seven tags shown +above. Any that you omit will be filled in by @value{NAME} +with @samp{?} (unknown value), or @samp{-} (inapplicable value). + +@item Edit Comment +@cindex Edit Comment, Menuitem +Adds or modifies a comment on the current position. Comments are +saved by @samp{Save Game} and are displayed by @samp{Load Game}, +@samp{Forward}, and @samp{Backward}. + +@item ICS Input Box +@cindex ICS Input Box, Menuitem +If this option is set in ICS mode, +@value{NAME} +creates an extra window that you can use for typing in ICS commands. +The input box is especially useful if you want to type in something long or do +some editing on your input, because output from ICS doesn't get mixed +in with your typing as it would in the main terminal window. + +@item Pause +@cindex Pause, Menuitem +Pauses updates to the board, and if you are playing against a chess engine, +also pauses your clock. To continue, select @samp{Pause} again, and the +display will automatically update to the latest position. +The @samp{P} button and keyboard @samp{p} key are equivalents. + +If you select Pause when you are playing against a chess engine and +it is not your move, the chess engine's clock +will continue to run and it will eventually make a move, at which point +both clocks will stop. Since board updates are paused, however, +you will not see the move until you exit from Pause mode (or select Forward). +This behavior is meant to simulate adjournment with a sealed move. + +If you select Pause while you are in +@code{examine} mode on ICS, you can step backward and forward in the +current history of the examined game without affecting the other observers +and examiners. Select Pause again to reconnect yourself to the current state +of the game on ICS. + +If you select @samp{Pause} while you are loading a game, the game stops +loading. You can load more moves manually by selecting @samp{Forward}, or +resume automatic loading by selecting @samp{Pause} again. +@end table + + +@node Action Menu +@section Talking to GNU chess or ICS opponents +@cindex Menu, Action +@cindex Action, Menu +@table @asis +@item Accept +@cindex Accept, Menuitem +Accepts a pending match offer. If there is more than one offer +pending, you will have to type in a more specific command +instead of using this menu choice. ICS mode only. + +@item Decline +@cindex Decline, Menuitem +Declines a pending offer (match, draw, adjourn, etc.). If there +is more than one offer pending, you will have to type in a more +specific command instead of using this menu choice. ICS mode only. + +@item Call Flag +@cindex Call Flag, Menuitem +Calls your opponent's flag, claiming a win on time, or claiming +a draw if you are both out of time. You can also call your +opponent's flag by clicking on his clock or by pressing the +keyboard @samp{t} key. + +@item Draw +@cindex Draw, Menuitem +Offers a draw to your opponent, accepts a pending draw offer +from your opponent, or claims a draw by repetition or the 50-move +rule, as appropriate. The @samp{d} key is a keyboard equivalent. +Not available in GNU Chess mode. + +@item Adjourn +@cindex Adjourn, Menuitem +Asks your opponent to agree to adjourning the current game, or +agrees to a pending adjournment offer from your opponent. ICS +mode only. + +@item Abort +@cindex Abort, Menuitem +Asks your opponent to agree to aborting the current game, or +agrees to a pending abort offer from your opponent. An aborted +game ends immediately without affecting either player's rating. + +@item Resign +@cindex Resign, Menuitem +Resigns the game to your opponent. The shifted @samp{R} key is a +keyboard equivalent. + +@item Stop Observing +@cindex Stop Observing, Menuitem +Ends your participation in observing a game, by issuing the ICS +observe command with no arguments. ICS mode only. + +@item Stop Examining +@cindex Stop Examining, Menuitem +Ends your participation in examining a game, by issuing the ICS +unexamine command. ICS mode only. +@end table + + +@node Step Menu +@section Controlling the game +@cindex Step Menu +@cindex Menu, Step +@table @asis +@item Backward +@cindex Backward, Menuitem +@cindex <, Button +Steps backward through a series of remembered moves. +The @samp{[<]} button and the @samp{b} key are equivalents. +In addition, pressing the Control key steps back one move, and releasing +it steps forward again. + +In most modes, @samp{Backward} only lets you look back at old positions; +it does not retract moves. This is the case if you are playing against +a chess engine, playing or observing a game on the ICS, or loading a game. +If you select @samp{Backward} in any of these situations, you will not +be allowed to make a different move. Use @samp{Retract Move} or +@samp{Edit Game} if you want to change past moves. + +If you are examining a game on ICS, the behavior of @samp{Backward} +depends on whether @value{NAME} is in Pause mode. If Pause mode is +off, @samp{Backward} issues the ICS backward command, which backs up +everyone's view of the game and allows you to make a different +move. If Pause mode is on, @samp{Backward} only backs up your local +view. + +@item Forward +@cindex Forward, Menuitem +@cindex >, Button +Steps forward through a series of remembered moves (undoing the +effect of @samp{Backward}) or forward through a game file. The +@samp{[>]} button and the @samp{f} key are equivalents. + +If you are examining a game on ICS, the behavior of Forward +depends on whether @value{NAME} is in Pause mode. If Pause mode is +off, @samp{Forward} issues the ICS forward command, which moves +everyone's view of the game forward along the current line. If +Pause mode is on, @samp{Forward} only moves your local view forward, +and it will not go past the position that the game was in when +you paused. + +@item Back to Start +@cindex Back to Start, Menuitem +@cindex <<, Button +Jumps backward to the first remembered position in the game. +The @samp{[<<]} button and the shifted @samp{B} key are equivalents. + +In most modes, Back to Start only lets you look back at old +positions; it does not retract moves. This is the case if you +are playing against GNU chess, playing or observing a game on +the ICS, or loading a game. If you select @samp{Back to Start} in any +of these situations, you will not be allowed to make different +moves. Use @samp{Retract Move} or @samp{Edit Game} if you want to change past +moves; or use Reset to start a new game. + +If you are examining a game on ICS, the behavior of @samp{Back to +Start} depends on whether @value{NAME} is in Pause mode. If Pause mode +is off, @samp{Back to Start} issues the ICS @samp{backward 999999} +command, which backs up everyone's view of the game to the start and +allows you to make different moves. If Pause mode is on, @samp{Back +to Start} only backs up your local view. + +@item Forward to End +@cindex Forward to End, Menuitem +@cindex >>, Button +Jumps forward to the last remembered position in the game. The +@samp{[>>]} button and the shifted @samp{F} key are equivalents. + +If you are examining a game on ICS, the behavior of @samp{Forward to +End} depends on whether @value{NAME} is in Pause mode. If Pause mode +is off, @samp{Forward to End} issues the ICS @samp{forward 999999} +command, which moves everyone's view of the game forward to the end of +the current line. If Pause mode is on, @samp{Forward to End} only moves +your local view forward, and it will not go past the position +that the game was in when you paused. + +@item Revert +@cindex Revert, Menuitem +If you are examining a game on ICS and Pause mode is off, issues +the ICS command @samp{revert}. + +@item Truncate Game +@cindex Truncate Game, Menuitem +Discards all remembered moves of the game beyond the current +position. Puts @value{NAME} into @samp{Edit Game} mode if it was not there +already. + +@item Move Now +@cindex Move Now, Menuitem +Forces the chess engine to move immediately. GNU Chess mode only. + +@item Retract Move +@cindex Retract Move, Menuitem +Retracts your last move. In GNU Chess mode, you can do this only +after the chess engine has replied to your move; if the chess engine is still +thinking, use @samp{Move Now} first. In ICS mode, @samp{Retract Move} +issues the command @samp{takeback 1} or @samp{takeback 2} +depending on whether it is your opponent's move or yours. +@end table + + +@node Options Menu +@section User Preferences +@cindex Menu, Options +@cindex Options Menu +@table @asis +@item Always Queen +@cindex Always Queen, Menuitem +If this option is off, @value{NAME} brings up a dialog +box whenever you move a pawn to the last rank, asking what piece +you want to promote it to. If the option is true, your pawns are +always promoted to queens. Your opponent can still underpromote, +however. +@item Animate Dragging +@cindex Animate Dragging, Menuitem +If Animate Dragging is on, while you are dragging a piece with the +mouse, an image of the piece follows the mouse cursor. +If Animate Dragging is off, there is no visual feedback while you are +dragging a piece, but if Animate Moving is on, the move will be +animated when it is complete. +@item Animate Moving +@cindex Animate Moving, Menuitem +If Animate Moving is on, all piece moves are animated. An image of the +piece is shown moving from the old square to the new square when the +move is completed (unless the move was already animated by Animate Dragging). +If Animate Moving is off, a moved piece instantly disappears from its +old square and reappears on its new square when the move is complete. +@item Auto Comment +@cindex Auto Comment, Menuitem +If this option is on, any remarks made on ICS while you are observing or +playing a game are recorded as a comment on the current move. This includes +remarks made with the ICS commands @kbd{say}, @kbd{tell}, @kbd{whisper}, +and @kbd{kibitz}. +Limitation: remarks that you type yourself are not recognized; +@value{NAME} scans only the output from ICS, not the input you type to it. +@item Auto Flag +@cindex Auto Flag, Menuitem +If this option is on and one player runs out of time +before the other, +@value{NAME} +will automatically call his flag, claiming a win on time. +In ICS mode, Auto Flag will only call your opponent's flag, not yours, +and the ICS may award you a draw instead of a win if you have +insufficient mating material. In local chess engine mode, +@value{NAME} +may call either player's flag and will not take material into account. +@item Auto Flip View +@cindex Auto Flip View, Menuitem +If the Auto Flip View option is on when you start a game, the board +will be automatically oriented so that your pawns move from the bottom +of the window towards the top. +@item Auto Observe +@cindex Auto Observe, Menuitem +If this option is on and you add a player to your @code{gnotify} +list on ICS, @value{NAME} will automatically observe all of that +player's games, unless you are doing something else (such as +observing or playing a game of your own) when one starts. +The games are displayed +from the point of view of the player on your gnotify list; that is, his +pawns move from the bottom of the window towards the top. +Exceptions: If both players in a game are on your gnotify list, if +your ICS +@code{highlight} +variable is set to 0, or if the ICS you are using does not +properly support observing from Black's point of view, +you will see the game from White's point of view. +@item Auto Raise Board +@cindex Auto Raise Board, Menuitem +If this option is on, whenever a new game begins, the chessboard window +is deiconized (if necessary) and raised to the top of the stack of windows. +@item Auto Save +@cindex Auto Save, Menuitem +If this option is true, at the end of every game @value{NAME} prompts +you for a file name and appends a record of the game to the file +you specify. +Disabled if the @code{saveGameFile} command-line +option is set, as in that case all games are saved to the specified file. +@xref{I/O options}. +@item Blindfold +@cindex Blindfold, Menuitem +If this option is on, @value{NAME} displays the board as usual but does +not display pieces or move highlights. You can still move in the +usual way (with the mouse or by typing moves in ICS mode), even though +the pieces are invisible. +@item Flash Moves +@cindex Flash Moves, Menuitem +If this option is on, whenever a move is completed, the moved piece flashes. +The number of times to flash is set by the flashCount command-line +option; it defaults to 3 if Flash Moves is first turned on from the menu. + +@item Flip View +@cindex Flip View, Menuitem +Inverts your view of the chess board for the duration of the +current game. Starting a new game returns the board to normal. +The @samp{v} key is a keyboard equivalent. + +If you are playing a game on the ICS, the board is always +oriented at the start of the game so that your pawns move from +the bottom of the window towards the top. Otherwise, the starting +orientation is determined by the @code{flipView} command line option; +if it is false (the default), White's pawns move from bottom to top +at the start of each game; if it is true, Black's pawns move from +bottom to top. @xref{User interface options}. + +@item Highlight Last Move +@cindex Highlight Last Move, Menuitem +If Highlight Last Move is on, after a move is made, the starting and +ending squares remain highlighted. In addition, after you use Backward +or Back to Start, the starting and ending squares of the last move to +be unmade are highlighted. + +@item Move Sound +@cindex Move Sound, Menuitem +If this option is on, @value{NAME} alerts you by playing a sound +after each of your opponent's moves (or after every +move if you are observing a game on the Internet Chess Server). +The sound is not played after moves you make or moves read from a +saved game file. By default, the +sound is the terminal bell, but on some systems you can change it +to a sound file using the soundMove option; see below. + +If you turn on this option when using @value{NAME} with the Internet +Chess Server, you will probably want to give the + +@example +set bell 0 +@end example +@noindent +command to the ICS, since otherwise the ICS will ring the terminal bell +after every move (not just yours). (The @file{.icsrc} file +is a good place for this, @pxref{ICS options}) + +@item ICS Alarm +@cindex ICS Alarm, Menuitem +When this option is on, an alarm sound is played when your clock +counts down to the icsAlarmTime (by default, 5 seconds) in an ICS +game. For games with time controls that include an increment, the +alarm will sound each time the clock counts down to the icsAlarmTime. +By default, the alarm sound is the terminal bell, but on some systems +you can change it to a sound file using the soundIcsAlarm option; see +below. + +@item Get Move List +@cindex Get Move List, Menuitem +If this option is on, whenever @value{NAME} +receives the first board of a new game (or a different game from +the one it is currently displaying), it +retrieves the list of past moves from the ICS. +You can then review the moves with the @samp{Forward} and @samp{Backward} +commands +or save them with @samp{Save Game}. You might want to +turn off this option if you are observing several blitz games at once, +to keep from wasting time and network bandwidth fetching the move lists over +and over. +When you turn this option on from the menu, @value{NAME} +immediately fetches the move list of the current game (if any). + +@item Old Save Style +@cindex Old Save Style, Menuitem +If this option is off, @value{NAME} saves games in PGN +(portable game notation) and positions in FEN (Forsythe-Edwards +notation). If the option is on, a save style that is compatible +with older versions of @value{NAME} is used instead. +The old position style is more human-readable +than FEN; the old game style has no particular advantages. + +@item Periodic Updates +@cindex Periodic Updates, Menuitem +If this option is off (or if +you are using a chess engine that does not support periodic updates), +the analysis window +will only be updated when the analysis changes. If this option is +on, the Analysis Window will be updated every two seconds. + +@item Ponder Next Move +@cindex Ponder Next Move, Menuitem +If this option is off, the chess engine will think only when it is on +move. If the option is on, the engine will also think while waiting +for you to make your move. + +@item Popup Exit Message +@cindex Popup Exit Message, Menuitem +If this option is on, when @value{NAME} wants to display a message just +before exiting, it brings up a modal dialog box and waits for you to +click OK before exiting. If the option is off, @value{NAME} prints the +message to standard error (the terminal) and exits immediately. + +@item Popup Move Errors +@cindex Popup Move Errors, Menuitem +If this option is off, when you make an error in moving (such as +attempting an illegal move or moving the wrong color piece), the +error message is displayed in the message area. If the option is +on, move errors are displayed in small popup windows like other errors. +You can dismiss an error popup either by clicking its OK button or by +clicking anywhere on the board, including downclicking to start a move. + +@item Premove +@cindex Premove, Menuitem +If this option is on while playing a game on ICS, you can register +your next planned move before it is your turn. Move the piece with +the mouse in the ordinary way, and the starting and ending squares +will be highlighted with a special color (red by default). When it is +your turn, if your registered move is legal, xboard will send it to +ICS immediately; if not, it will be ignored and you can make a +different move. If you change your mind about your premove, either +make a different move, or double-click on any piece to cancel the move +entirely. + +@item Quiet Play +@cindex Quiet Play, Menuitem +If this option is on, @value{NAME} will automatically issue an ICS + +@example +set shout 0 +@end example +@noindent +command whenever you start a game and a + +@example +set shout 1 +@end example +@noindent +command whenever you finish one. Thus, you will not be distracted +by shouts from other ICS users while playing. + +@item Show Coords +@cindex Show Coords, Menuitem +If this option is on, @value{NAME} displays algebraic coordinates +along the board's left and bottom edges. + +@item Show Thinking +@cindex Show Thinking, Menuitem +If this option is set, the chess engine's notion of the score and best +line of play from the current position is displayed as it is +thinking. The score indicates how many pawns ahead (or if negative, +behind) the chess engine thinks it is. In matches between two +machines, the score is prefixed by @samp{W} or @samp{B} to indicate +whether it is showing White's thinking or Black's. +@end table + +@node Help Menu +@section Getting help +@cindex Menu, Help +@cindex Help Menu +@table @asis +@item Info @value{NAME} +@cindex Info @value{NAME}, Menuitem +Displays this info file in a new window. For this feature to work, +you must have the GNU info program installed on your system, +and the file @file{xboard.info} must either be present in the current +working directory, or have been installed by +the @samp{make install} command when you built @value{NAME}. +@item Man @value{NAME} +@cindex Man @value{NAME}, Menuitem +Displays the @value{NAME} man page in a new window. For this feature to work, +the file @file{xboard.6} must have been installed by +the @samp{make install} command when you built @value{NAME}, and the +directory it was placed in must be on the search path for your system's +@samp{man} command. +@item Hint +@cindex Hint, Menuitem +Displays a move hint from GNU Chess. GNU Chess mode only. +@item Book +@cindex Book, Menuitem +Displays a list of possible moves from GNU Chess's opening book. +The first column gives moves, the second column gives one possible +response for each move, and the third column shows the +number of lines in the book that include the move from the first +column. If you select this option and nothing happens, GNU +Chess is out of its book. GNU Chess mode only. + +@item About @value{NAME} +@cindex About @value{NAME}, Menuitem +Shows the current @value{NAME} version number. +@end table + + +@node Keys +@section Other shortcut keys +@cindex Keys +@cindex Shortcut keys +@table @asis +@item Iconize +Pressing the @samp{i} or @samp{c} key iconizes @value{NAME}. The graphical +icon displays a white knight if it is white's move, or a black knight, +if it is Black's move. If your X window manager displays only text icons, +not graphical ones, check its documentation; there is probably a way to +enable graphical icons. If you are running the Motif window manager +@file{mwm} (1), add these lines to your @file{.Xdefaults} file and +restart mwm: + +@example +Mwm*iconDecoration: activelabel label image +Mwm*@value{NAME}*iconImageBackground: White +Mwm*@value{NAME}*iconImageForeground: Black +@end example +@noindent +The first line above enables graphical icons in mwm; you don't need it +if you already have them. The next two lines force the white knights to +come out white and the black knights black. Unfortunately these resources +can't be set from inside @value{NAME}; you have to set them in your +@file{.Xdefaults} file. +@end table + +You can add or remove shortcut keys using the X resources +@code{form.translations}. Here is an example of what would go in your +@file{.Xdefaults} file: + +@example +@value{NAME}*form.translations: Shift?: AboutGameProc() \n\ +y: AcceptProc() \n\ +n: DeclineProc() \n\ +i: NothingProc() +@end example +@noindent +Binding a key to @code{NothingProc} makes it do nothing, thus removing +it as a shortcut key. The @value{NAME} commands that can be bound to keys +are: + +@example +AbortProc, AboutGameProc, AboutProc, AcceptProc, AdjournProc, +AlwaysQueenProc, AnalysisModeProc, AnalyzeFileProc, AnimateDraggingProc, +AnimateMovingProc, AutobsProc, AutoflagProc, AutoflipProc, +AutoraiseProc, AutosaveProc, BackwardProc, BlindfoldProc, BookProc, +CallFlagProc, CopyGameProc, CopyPositionProc, DebugProc, DeclineProc, +DrawProc, EditCommentProc, EditGameProc, EditPositionProc, EditTagsProc, +EnterKeyProc, FlashMovesProc, FlipViewProc, ForwardProc, +GetMoveListProc, HighlightLastMoveProc, HintProc, Iconify, IcsAlarmProc, +IcsAlarmProc, IcsClientProc, IcsInputBoxProc, InfoProc, LoadGameProc, +LoadNextGameProc, LoadNextPositionProc, LoadPositionProc, +LoadPrevGameProc, LoadPrevPositionProc, LoadSelectedProc, +MachineBlackProc, MachineWhiteProc, MailMoveProc, ManProc, MoveNowProc, +MoveSoundProc, NothingProc, OldSaveStyleProc, PasteGameProc, +PastePositionProc, PauseProc, PeriodicUpdatesProc, PonderNextMoveProc, +PopupExitMessageProc, PopupMoveErrorsProc, PremoveProc, QuietPlayProc, +QuitProc, ReloadCmailMsgProc, ReloadGameProc, ReloadPositionProc, +RematchProc, ResetProc, ResignProc, RetractMoveProc, RevertProc, +SaveGameProc, SavePositionProc, ShowCoordsProc, ShowGameListProc, +ShowThinkingProc, StopExaminingProc, StopObservingProc, +TestLegalityProc, ToEndProc, ToStartProc, TrainingProc, +TruncateGameProc, and TwoMachinesProc. +@end example + +@node ICS +@chapter Using @value{NAME} with an Internet Chess Server (ICS) +@cindex ICS +@cindex ICS, addresses +@cindex Internet Chess Server +An @dfn{Internet Chess Server}, or @dfn{ICS}, is a place on the +Internet where people can get together to play chess, +watch other people's games, or just chat. +You can use either @code{telnet} or +a client program like @value{NAME} to connect to the server. +ICS is getting more and more important for chess players: +There are thousands of registered users on the different +ICS hosts, and it is not unusual to meet 200 on both ICC and FICS. +The number is increasing rapidly. + +Most people can just type + +@example +@value{LCNAME} -ics +@end example +@noindent +to start @value{NAME} as +an ICS client. Invoking @value{NAME} in this way connects you to +the Internet Chess Club (ICC), a commercial ICS. You can log in there as +a guest even if you do not have a paid account. To connect to +the largest Free ICS (FICS), use the command + +@example +@value{LCNAME} -ics -icshost freechess.org +@end example +@noindent +instead, or substitute a different host name to connect to your +favorite ICS. +The @file{ics-addresses} in the +@value{NAME} distribution includes a list of ICS hosts. +For a full description of command-line options that control +the connection to ICS and change the default values of ICS options, see +@ref{ICS options}. + +While you are running @value{NAME} as an ICS client, +you use the terminal window that you started @value{NAME} from +as a place to type in commands and read information that is +not available on the chessboard. + +The first time you need to use the terminal is to enter your login name +and password, if you are a registered player. (You don't need to do +this manually; the @code{icsLogon} option can do it for you. +@pxref{ICS options}) If you are not registered, enter any name. +If someone has already registered under that name, you'll be +asked for a password; just hit return and try again. +Or on ICC, you can enter @samp{g} as your name, and ICC will pick a +unique (but boring) name for you. + +Some useful ICS commands +include +@table @kbd +@item help +@cindex help, ICS command +to get help on the given . To get a list of possible topics type +@dfn{help} without topic. Try the help command before you ask other +people on the server for help. + +For example @kbd{help register} tells you how to become a registered +ICS player. +@item who +@cindex who, ICS command +to see a list of people who are logged on. Administrators +(people you should talk to if you have a problem) are marked +with the character @samp{*}, an asterisk. The allow you to +display only selected players: For example, @kbd{who of} shows a +list of players who are interested in playing but do not have +an opponent. +@item games +@cindex games, ICS command +to see what games are being played +@item match [] [] +to challenge another player to a game. Both opponents get minutes +for the game, and seconds will be added after each move. +If another player challenges you, the server asks if you want to +accept the challenge; use the @kbd{accept} or @kbd{decline} commands +to answer. +@item accept +@itemx decline +@cindex accept, ICS command +@cindex decline, ICS command +to accept or decline another player's offer. +The offer may be to start a new game, or to agree to a +@kbd{draw}, @kbd{adjourn} or @kbd{abort} the current game. @xref{Action Menu}. + +If you have more than one pending offer (for example, if more than one player +is challenging you, or if your opponent offers both a draw and to adjourn the +game), you have to supply additional information, by typing something +like @kbd{accept }, @kbd{accept draw}, or @kbd{draw}. + +@item draw +@itemx adjourn +@itemx abort +@cindex draw, ICS command +@cindex adjourn, ICS command +@cindex abort, ICS command +asks your opponent to terminate a game by mutual agreement. Adjourned +games can be continued later. +Your opponent can either @kbd{decline} your offer or accept it (by typing the +same command or typing @kbd{accept}). In some cases these commands work +immediately, without asking your opponent to agree. For example, you can +abort the game unilaterally if your opponent is out of time, and you can claim +a draw by repetition or the 50-move rule if available simply by typing +@kbd{draw}. +@item finger +@cindex finger, ICS command +to get informations about the given . (Default: yourself.) +@item vars +@cindex vars, ICS command +to get a list of personal settings +@item set +@cindex set, ICS command +to modify these settings +@item observe +@cindex observe, ICS command +to observe an ongoing game of the given . +@item examine +@itemx oldmoves +@cindex examine, ICS command +@cindex oldmoves, ICS command +to review a recently completed game +@end table + +Some special @value{NAME} features are activated when you are +in examine mode on ICS. See the descriptions of the menu commands +@samp{Forward}, @samp{Backward}, @samp{Pause}, @samp{ICS Client}, +and @samp{Stop Examining} on the @ref{Step Menu}, @ref{Mode Menu}, and +@ref{Options Menu}. + +@node Firewalls +@chapter Connecting to the ICS through a firewall +By default, @value{NAME} communicates with an Internet Chess Server +by opening a TCP socket directly from the machine it is running on +to the ICS. If there is a firewall between your machine and the ICS, +this won't work. Here are some recipes for getting around common +kinds of firewalls using special options to @value{NAME}. +Important: See the paragraph in the below about extra echoes, in +@ref{Limitations}. + +Suppose that you can't telnet directly to ICS, but you can telnet +to a firewall host, log in, and then telnet from there to ICS. +Let's say the firewall is called @samp{fire.wall.com}. Set +command-line options as follows: + +@example +xboard -ics -icshost fire.wall.com -icsport 23 +@end example +@noindent +Or in your @file{.Xdefaults} file: + +@example +XBoard*internetChessServerHost: fire.wall.com +XBoard*internetChessServerPort: 23 +@end example +@noindent +Then when you run @value{NAME} in ICS mode, you will be prompted +to log in to the firewall host. (This works because port 23 is the +standard telnet login service.) Do so, then telnet to ICS, using a +command like @samp{telnet chessclub.com 5000}, or whatever command +the firewall provides for telnetting to port 5000. + +If your firewall lets you telnet (or rlogin) to remote hosts, but +doesn't let you telnet to port 5000, you will have to find some +other host outside the firewall that does let you do this, and +hop through it. For instance, suppose you have an account at +@samp{foo.edu}. Follow the recipe above, but instead of typing +@samp{telnet chessclub.com 5000} to the firewall, type +@samp{telnet foo.edu} (or @samp{rlogin foo.edu}), log in there, and +then type @samp{telnet chessclub.com 5000}. + +Exception: chessclub.com itself lets you connect to the chess server on the +default telnet port (23), which is what you get if you don't specify a port +to the telnet program. But the other chess servers don't allow this. + +Suppose that you can't telnet directly to ICS, but you can use rsh +to run programs on a firewall host, and that host can telnet to ICS. +Let's say the firewall is called @samp{rsh.wall.com}. Set +command-line options as follows: + +@example +xboard -ics -gateway rsh.wall.com -icshost chessclub.com +@end example +@noindent +Or in your @file{.Xdefaults} file: + +@example +XBoard*gateway: rsh.wall.com +XBoard*internetChessServerHost: chessclub.com +@end example +Then when you run @value{NAME} in ICS mode, it will connect to +the ICS by using @file{rsh} to run the command @samp{telnet +chessclub.com 5000} on host @samp{rsh.wall.com}. + +Suppose that you can telnet anywhere you want, but you have to +run a special program called @file{ptelnet} to do so. + +First, we'll consider the easy case, in which +@samp{ptelnet chessclub.com 5000} gets you to the chess server. +In this case set command line options as follows: + +@example +xboard -ics -telnet -telnetProgram ptelnet +@end example +@noindent +Or in your @file{.Xdefaults} file: + +@example +XBoard*useTelnet: true +XBoard*telnetProgram: ptelnet +@end example +@noindent +Then when you run @value{NAME} in ICS mode, it will issue the +command @samp{ptelnet chessclub.com 5000} to connect to the ICS. + +Next, suppose that @samp{ptelnet chessclub.com 5000} doesn't work; +that is, your @file{ptelnet} program doesn't let you connect to +alternative ports. In this case, you will have to find some other +host outside the firewall that does let you do this, and hop +through it. For instance, suppose you have an account at +@samp{foo.edu}. Set command line options as follows: + +@example +xboard -ics -telnet -telnetProgram ptelnet -icshost foo.edu -icsport "" +@end example +@noindent +Or in your @file{.Xdefaults} file: + +@example +XBoard*useTelnet: true +XBoard*telnetProgram: ptelnet +XBoard*internetChessServerHost: foo.edu +XBoard*internetChessServerPort: +@end example +@noindent +Then when you run @value{NAME} in ICS mode, it will issue the +command @samp{ptelnet foo.edu} to connect to your account at +@samp{foo.edu}. Log in there, then type @samp{telnet chessclub.com 5000}. + +ICC timestamp and FICS timeseal do not work through many +firewalls. You can use them only if your firewall gives a clean TCP +connection with a full 8-bit wide path. If your firewall allows you +to get out only by running a special telnet program, you can't use +timestamp or timeseal across it. But if you have access to a +computer just outside your firewall, and you have much lower netlag +when talking to that computer than to the ICS, it might be worthwhile +running timestamp there. Follow the instructions above for hopping +through a host outside the firewall (foo.edu in the example), +but run timestamp or timeseal on that host instead of telnet. + +Suppose that you have a SOCKS firewall that requires you to go through +some extra level of authentication, but after that will give you a +clean 8-bit wide TCP connection to the chess server. In that case, +you could make a socksified version of +@value{NAME} +and run that. If you are using timestamp or timeseal, +you will to socksify it, not +@value{NAME}; +this may be difficult seeing that ICC and FICS do not +provide source code for these programs. +Socksification is beyond the scope of this document, but +see the SOCKS Web site at http://www.socks.nec.com/how2socksify.html. + +@node Environment +@chapter Environment variables +@cindex Environment variables +@cindex CHESSDIR +Game and position files are found in a directory named by the +@code{CHESSDIR} environment variable. If this variable is not set, the +current working directory is used. If @code{CHESSDIR} is set, +@value{NAME} actually changes its working directory to +@code{$CHESSDIR}, so GNU Chess listing files will also be stored there +as well. + +@node Limitations +@chapter Known limitations and bugs +@cindex Limitations +@cindex Bugs +There is no way for two people running copies of @value{NAME} to play +each other without going through the @code{Internet Chess Server}. + +Under some circumstances, your ICS password may be echoed when you log on. + +If you are connecting to the ICS by running telnet on an Internet provider +or firewall host, you may find that each line you type is echoed back an extra +time after you hit Return. If your Internet provider is a Unix system, you can +probably turn its echo off by typing + +@example +stty -echo +@end example +@noindent +after you log in, and/or typing @key{^E-Return} (@key{control-E} followed by +the @key{Return} key) to the telnet program after you have logged into ICS. +It is a good idea to do this if you can, because the extra echo can +occasionally confuse @value{NAME}'s parsing routines. + +The game parser recognizes only algebraic notation. + +The internal move legality tester does not look at the game history, +so in some cases it misses illegal castling or en passant captures. +It permits castling with the king on the d file because this is possible in +some "wild 1" games on ICS. It does not check +piece drops in bughouse and crazyhouse to see if you actually +hold the piece you are trying to drop. +However, if you attempt an illegal move when using +GNU Chess (or the ICS), @value{NAME} will accept the error message +that comes back, undo the move, and let you try another. + +Fischer Random castling is not understood. You can probably play +Fischer Random successfully on ICS by typing castling moves into the ICS +Interaction window, but they will not be animated correctly, and saved +games will not be loaded correctly if castling occurs. + +FEN positions saved by @value{NAME} +never include correct information about whether castling is legal or +how many half-moves have been made since the last irreversible move, +and sometimes may not correctly indicate when en passant capture is available. + +The mate detector does not understand that non-contact mate is not +really mate in bughouse and crazyhouse. The only problem this causes +while playing is minor: a @samp{#} (mate indicator) character will show +up after a non-contact mating move in the move list; @value{NAME} will +not assume the game is over at that point. However, if you are editing +a game, Edit Game mode will be terminated by a non-contact mate. + +Some @value{NAME} functions may not work with versions of GNU Chess earlier +than 4.0, patchlevel 77, +or with versions of Crafty earlier than 15.11. +A few functions work with GNU Chess but not Crafty, or vice versa. + +The menus may not work if your keyboard is in Caps Lock or Num Lock mode. +This seems to be a problem with the Athena menu widget, +not an @value{NAME} bug. + +Also see the ToDo file included with the distribution for many other +possible bugs, limitations, and ideas for improvement that have been +suggested. +@node Problems +@chapter Reporting problems +@cindex Bugs +@cindex Bug reports +@cindex Reporting bugs +@cindex Problems +@cindex Reporting problems + +Report bugs and problems with @value{NAME} to +@example +tim@@tim-mann.org. +@end example + +Please use the @file{script} program to start a typescript, run +@value{NAME} with the @samp{-debug} option, and include the typescript +output in your message. +Also tell us what kind of machine and what operating system version +you are using. The command @samp{uname -a} will often tell you this. +Here is a sample of approximately what you should type: + +@example +script +uname -a +./configure +make +./xboard -debug +exit +mail tim@@tim-mann.org +Subject: Your short description of the problem +Your detailed description of the problem +~r typescript +. +@end example + +If you improve @value{NAME}, please send a message about your changes, +and we will get in touch with you about merging them in +to the main line of development. + +Send CMail bug reports/suggestions to +@example +evan@@quadstone.co.uk +@end example + +@node Contributors +@chapter Authors and contributors to @value{NAME} +@cindex Authors +@cindex Contributors +@table @asis +@item Tim Mann (tim@@tim-mann.org) +has been responsible for XBoard versions 1.3 and beyond, and for +WinBoard, a port of XBoard to Microsoft Win32 (Windows NT and +Windows 95) + +@item Mark Williams +contributed the initial (WinBoard-only) implementation +of many new features added to both XBoard and WinBoard in version 4.1.0, +including copy/paste, premove, icsAlarm, autoFlipView, training mode, +auto raise, and blindfold. + +@item Ben Nye contributed X copy/paste code for XBoard. + +@item Hugh Fisher (Hugh.Fisher@@cs.anu.edu.au) +added animated piece movement to XBoard, and +Henrik Gram (henrikg@@funcom.com) added it to WinBoard. + +@item Frank McIngvale (frankm@@hiwaay.net) +added click/click moving, the Analysis modes, +piece flashing, ZIICS import, and ICS text colorization to XBoard. + +@item Jochen Wiedmann (wiedmann@@neckar-alb.de) +ported XBoard to the Amiga, creating AmyBoard, and converted the +documentation to texinfo. He was responsible for AmyBoard versions through +330.5 (based on xboard 3.3.pl0). + +@item Elmar Bartel +contributed the new piece bitmaps introduced in version 3.2. + +@item Evan Welsh (Evan.Welsh@@msdw.com) +wrote @code{CMail}. + +@item Patrick Surry +helped with design, testing and documenting CMail. + +@item John Chanak +contributed the initial implementation of ICS mode. + +@item Wayne Christopher +created @code{XChess}; the color scheme and the old 80x80 piece bitmaps +were taken from it. + +@item Chris Sears and Dan Sears +wrote the original XBoard. They were responsible for versions 1.0 +through 1.2. +@end table + +@node CMail +@chapter Using @value{NAME} for electronic correspondence chess +@cindex cmail +The @file{cmail} program will help you play chess by email with opponents of +your choice using @value{NAME} as an interface. + +You will usually run @file{cmail} without giving any options. + +@menu +* CMail options:: Invoking CMail. +* CMail game:: Starting a CMail game. +* CMail answer:: Answering a move. +* CMail trouble:: Known CMail problems. +@end menu + + +@node CMail options +@section Invoking CMail. +@table @asis +@item -h +Displays @file{cmail} usage information. +@item -c +Shows the conditions of the GNU General Public License. +@xref{Copying}. +@item -w +Shows the warranty notice of the GNU General Public License. +@xref{Copying}. +@item -v +@itemx -xv +Provides or inhibits verbose output from @file{cmail} and @value{NAME}, +useful for debugging. The +@code{-xv} +form also inhibits the cmail introduction message. +@item -mail +@itemx -xmail +Invokes or inhibits the sending of a mail message containing the move. +@item -xboard +@itemx -xxboard +Invokes or inhibits the running of @value{NAME} on the game file. +@item -reuse +@itemx -xreuse +Invokes or inhibits the reuse of an existing @value{NAME} to display the +current game. +@item -remail +Resends the last mail message for that game. This inhibits running +@value{NAME}. +@item -game +The name of the game to be processed. +@item -wgames +@itemx -bgames +@itemx -games +Number of games to start as White, as Black or in total. Default is 1 as +white and none as black. If only one color is specified then none of the +other color is assumed. If no color is specified then equal numbers of +White and Black games are started, with the extra game being as White if an +odd number of total games is specified. +@item -me +@itemx -opp +A one-word alias for yourself or your opponent. +@item -wname +@itemx -bname +@itemx -name +@itemx -oppname +The full name of White, Black, yourself or your opponent. +@item -wna +@itemx -bna +@itemx -na +@itemx -oppna +The email address of White, Black, yourself or your opponent. +@item -dir +The directory in which @file{cmail} keeps its files. This defaults to the +environment variable @code{$CMAIL_DIR} or failing that, @code{$CHESSDIR}, +@file{$HOME/Chess} or @file{~/Chess}. It will be created if it does not exist. +@item -arcdir +The directory in which @file{cmail} archives completed games. Defaults to +the environment variable @code{$CMAIL_ARCDIR} or, in its absence, the same +directory as cmail keeps its working files (above). +@item -mailprog +The program used by cmail to send email messages. This defaults to the +environment variable @code{$CMAIL_MAILPROG} or failing that +@file{/usr/ucb/Mail}, @file{/usr/ucb/mail} or @file{Mail}. You will need +to set this variable if none of the above paths fit your system. +@item -gamesFile +@cindex .cmailgames +A file containing a list of games with email addresses. This defaults to +the environment variable @code{$CMAIL_GAMES} or failing that +@file{.cmailgames}. +@item -aliasesFile +@cindex .cmailaliases +A file containing one or more aliases for a set of email addresses. This +defaults to the environment variable @code{$CMAIL_ALIASES} or failing +that @file{.cmailaliases}. +@item -logFile +A file in which to dump verbose debugging messages that are invoked with +the @samp{-v} +option. +@item -event +The PGN Event tag (default @samp{Email correspondence game}). +@item -site +The PGN Site tag (default @samp{NET}). +@item -round +The PGN Round tag (default @samp{-}, not applicable). +@item -mode +The PGN Mode tag (default @samp{EM}, Electronic Mail). +@item OTHER OPTIONS +Any unrecognized flags will be passed to @value{NAME}. +Those most relevant for use with Icmail\fP are +@samp{-timeDelay}, @samp{-noChessProgram}, @samp{-searchTime}, +@samp{-searchDepth}, @samp{-saveGameFile}, @samp{-autosave}, +@samp{-savePositionFile} and @samp{-boardSize}. @xref{Invocation}. +@end table + + +@node CMail game +@section Starting a CMail game. +Type @file{cmail} from a shell to start a game as white. After an opening +message, you will be prompted for a game name, which is optional -- if you +simply press return, the game name will take the form +@samp{you-VS-opponent}. You will next be prompted for the short name +of your opponent. If you haven't played this person before, you will also +be prompted for his/her email address. @file{cmail} will then invoke +@value{NAME} in the background. Make your first move and select +@samp{Mail Move} from the @samp{File} menu. @xref{File Menu}. If all is well, +@file{cmail} will mail a copy of the move to your opponent. If you select +@samp{Exit} without having selected @samp{Mail Move} then no move will be +made. + + +@node CMail answer +@section Answering a move. +When you receive a message from an opponent containing a move in one of +your games, simply pipe the message through @file{cmail}. In some mailers +this is as simple as typing @kbd{| cmail} when viewing the message, while in +others you may have to save the message to a file and do @kbd{cmail < file} +at the command line. In either case @file{cmail} will display the game using +@value{NAME}. If you didn't exit @value{NAME} when you made your first move +then @file{cmail} will do its best to use the existing @value{NAME} instead +of starting a new one. As before, simply make a move and select +@samp{Mail Move} from the @samp{File} menu. @xref{File Menu}. @file{cmail} +will try to use the +@value{NAME} that was most recently used to display the current game. This +means that many games can be in progress simultaneously, each with its own +active @value{NAME}. + +If you want to look at the history or explore a variation, go ahead, but +you must return to the current position before @value{NAME} will allow you +to mail a move. If you edit the game's history you must select +@samp{Reload Same Game} from the @samp{File} menu to get back to the original +position, then make the move you want and select @samp{Mail Move}. +As before, if you decide you aren't ready to make a move just yet you can +either select @samp{Exit} without sending a move or just leave +@value{NAME} running until you are ready. + +Because @value{NAME} can now detect checkmate and stalemate, @file{cmail} +now handles game termination sensibly. As well as resignation, the +@samp{Action} menu now allows draws to be offered and accepted for +@file{cmail} games. + +For multi-game messages, only unfinished and just-finished games will be +included in email messages. When all the games are finished, they are +archived in the user's archive directory, and similarly in the opponent's +when he or she pipes the final message through @file{cmail}. The archive +file name includes the date the game was started. + +It's possible to have a @file{cmail} message carry more than one game. +This feature was implemented to handle IECG (International Email Chess +Group) matches, where a match consists of 1 game as white and 1 as black, +with moves transmitted simultaneously. In case there are more general uses, +@file{cmail} itself places no limit on the number of black/white games +contained in a message; however, @value{NAME} does. + + +@node CMail trouble +@section Known CMail problems. +It's possible that a strange conjunction of conditions may occasionally +mean that @file{cmail} has trouble reactivating an existing +@value{NAME}. If this should happen, simply trying it again should work. +If not, remove the file that stores the @value{NAME}'s PID +(@file{game.pid}) or use the @samp{-xreuse} option to force +@file{cmail} to start a new @value{NAME}. + +Versions of @file{cmail} after 2.16 no longer understand the old file format +that @value{NAME} used to use and so cannot be used to correspond with +anyone using an older version. + +Versions of @file{cmail} older than 2.11 do not handle multi-game messages, +so multi-game correspondence is not possible with opponents using an older +version. + +@node Programs +@chapter Other programs you can use with @value{NAME} +@cindex Programs + +Here are some other programs you can use with @value{NAME} + +@menu +* GNU Chess:: The GNU Chess engine +* Crafty:: The Crafty chess engine +* zic2xpm:: The program used to import chess sets from ZIICS +@end menu + +@node GNU Chess +@section GNU Chess + +The GNU Chess engine is available from: + +ftp://ftp.gnu.org/gnu/gnuchess/ + +You can use XBoard to play a game against GNU Chess, or to +interface GNU Chess to an ICS. + +@node Crafty +@section Crafty + +Crafty is a chess engine written by Bob Hyatt (hyatt@@cis.uab.edu). +You can use XBoard to play a game against Crafty, hook Crafty up +to an ICS, or use Crafty to interactively analyze games and positions +for you. + +Crafty is a strong, rapidly evolving chess program. This rapid +pace of development is good, because it means Crafty is always +getting better. This can sometimes cause problems with +backwards compatibility, but usually the latest version of Crafty +will work well with the latest version of @value{NAME}. +Crafty can be obtained from its author's FTP site: +ftp://ftp.cis.uab.edu/hyatt/. + +To use Crafty with XBoard, give the -fcp and -fd options as follows, where + is the directory in which you installed Crafty +and placed its book and other support files. + +@node zic2xpm +@section zic2xpm + +The ``zic2xpm'' program is used to import chess sets from the ZIICS(*) +program into XBoard. ``zic2xpm'' is part of the XBoard distribution. +ZIICS is available from: + +ftp://ftp.freechess.org/pub/chess/DOS/ziics131.exe + + +To import ZIICS pieces, do this: + +@table @asis +@item 1. Unzip ziics131.exe into a directory: + +@example +unzip -L ziics131.exe -d ~/ziics +@end example + +@item 2. Use zic2xpm to convert a set of pieces to XBoard format. + +For example, let's say you want to use the +FRITZ4 set. These files are named ``fritz4.*'' in the ZIICS distribution. + +@example +mkdir ~/fritz4 +cd ~/fritz4 +zic2xpm ~/ziics/fritz4.* +@end example + +@item 3. Now, either give XBoard the ``-pixmap'' option when starting up, e.g.: + +@example +xboard -pixmap ~/fritz4 +@end example + +Or, add this line to your .Xdefaults file: + +@example +xboard*pixmapDirectory: ~/fritz4 +@end example +@end table + +(*) ZIICS is a separate copyrighted work of Andy McFarland (Zek on ICS). +The ``ZIICS pieces'' are copyrighted works of their respective +creators. Files produced by ``zic2xpm'' are for PERSONAL USE ONLY +and may NOT be redistributed without explicit permission from +the original creator(s) of the pieces. + +@node Copying +@unnumbered GNU GENERAL PUBLIC LICENSE +@include gpl.texinfo + +@node Index +@unnumbered Index + + +@printindex cp +@contents + diff --git a/xboard.texinfo.in b/xboard.texinfo.in new file mode 100644 index 0000000..ffc2af9 --- /dev/null +++ b/xboard.texinfo.in @@ -0,0 +1,26 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header +@setfilename xboard.info +@settitle XBoard +@c %**end of header + + +@set VERSION @VERSION@.@PATCHLEVEL@ + +@set XBOARD +@set NAME XBoard +@set LCNAME xboard +@clear WINBOARD +@clear AMYBOARD + +@ifinfo +@format +INFO-DIR-SECTION Games +START-INFO-DIR-ENTRY +* xboard: (xboard). An X Window System graphical chessboard. +END-INFO-DIR-ENTRY +@end format +@end ifinfo + +@include xboard.texi +@bye diff --git a/xedittags.c b/xedittags.c new file mode 100644 index 0000000..9e07bf0 --- /dev/null +++ b/xedittags.c @@ -0,0 +1,433 @@ +/* + * xedittags.c -- Tags edit window, part of X front end for XBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "config.h" + +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_UNISTD_H +# include +#endif + +#include +#include +#include +#include +#if USE_XAW3D +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "xboard.h" +#include "xedittags.h" + +extern Widget formWidget, shellWidget, boardWidget, menuBarWidget; +extern Display *xDisplay; +extern int squareSize; +extern Pixmap xMarkPixmap; +extern char *layoutName; + +Position tagsX = -1, tagsY = -1; +int tagsUp = False, editTagsUp = False; +Widget tagsShell, editTagsShell; + +static Arg layoutArgs[] = { + { XtNborderWidth, 0 }, + { XtNdefaultDistance, 0 } +}; + +void TagsCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + int j; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, "close") == 0) { + TagsPopDown(); + } else if (strcmp(name, "edit") == 0) { + TagsPopDown(); + EditTagsEvent(); + } +} + + +void EditTagsCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name, val; + Arg args[16]; + int j; + Widget textw; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, "ok") == 0) { + textw = XtNameToWidget(editTagsShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, &val); j++; + XtGetValues(textw, args, j); + ReplaceTags(val, &gameInfo); + TagsPopDown(); + } else if (strcmp(name, "cancel") == 0) { + TagsPopDown(); + } else if (strcmp(name, "clear") == 0) { + textw = XtNameToWidget(editTagsShell, "*form.text"); + XtCallActionProc(textw, "select-all", NULL, NULL, 0); + XtCallActionProc(textw, "kill-selection", NULL, NULL, 0); + } +} + +Widget TagsCreate(name, text, msg, mutable, callback) + char *name, *text, *msg; + int /*Boolean*/ mutable; + XtCallbackProc callback; +{ + Arg args[16]; + Widget shell, form, textw, msgw, layout; + Widget b_ok, b_cancel, b_close, b_edit, b; + Dimension bw_width, pw_width; + Dimension pw_height; + int j, xx, yy; + Window junk; + + j = 0; + XtSetArg(args[j], XtNwidth, &bw_width); j++; + XtGetValues(boardWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; +#if TOPLEVEL + shell = + XtCreatePopupShell(name, topLevelShellWidgetClass, + shellWidget, args, j); +#else + shell = + XtCreatePopupShell(name, transientShellWidgetClass, + shellWidget, args, j); +#endif + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, shell, + layoutArgs, XtNumber(layoutArgs)); + j = 0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + form = + XtCreateManagedWidget("form", formWidgetClass, layout, args, j); + + j = 0; + if (mutable) { + XtSetArg(args[j], XtNeditType, XawtextEdit); j++; + XtSetArg(args[j], XtNuseStringInPlace, False); j++; + } + XtSetArg(args[j], XtNstring, text); j++; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtRubber); j++; + XtSetArg(args[j], XtNresizable, True); j++; + XtSetArg(args[j], XtNwidth, bw_width/2); j++; + XtSetArg(args[j], XtNheight, bw_width/3); j++; +#if 0 + XtSetArg(args[j], XtNscrollVertical, XawtextScrollWhenNeeded); j++; +#else + /* !!Work around an apparent bug in XFree86 4.0.1 (X11R6.4.3) */ + XtSetArg(args[j], XtNscrollVertical, XawtextScrollAlways); j++; +#endif + XtSetArg(args[j], XtNautoFill, False); j++; + textw = + XtCreateManagedWidget("text", asciiTextWidgetClass, form, args, j); + + if (cmailMsgLoaded && !mutable) { + j = 0; + XtSetArg(args[j], XtNfromVert, textw); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainRight); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNjustify, XtJustifyLeft); j++; + XtSetArg(args[j], XtNlabel, msg); j++; + msgw = + XtCreateManagedWidget("msg", labelWidgetClass, form, args, j); + } else { + msgw = textw; + } + if (mutable) { + j = 0; + XtSetArg(args[j], XtNfromVert, msgw); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_ok = b = + XtCreateManagedWidget("ok", commandWidgetClass, form, args, j); + XtAddCallback(b_ok, XtNcallback, callback, (XtPointer) 0); + + j = 0; + XtSetArg(args[j], XtNfromVert, msgw); j++; + XtSetArg(args[j], XtNfromHoriz, b); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_cancel = b = + XtCreateManagedWidget("cancel", commandWidgetClass, form, args, j); + XtAddCallback(b_cancel, XtNcallback, callback, (XtPointer) 0); + +#if 0 + j = 0; + XtSetArg(args[j], XtNfromVert, msgw); j++; + XtSetArg(args[j], XtNfromHoriz, b); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_clear = b = + XtCreateManagedWidget("clear", commandWidgetClass, form, args, j); + XtAddCallback(b_clear, XtNcallback, callback, (XtPointer) 0); +#endif + } else { + j = 0; + XtSetArg(args[j], XtNfromVert, msgw); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_close = b = + XtCreateManagedWidget("close", commandWidgetClass, form, args, j); + XtAddCallback(b_close, XtNcallback, callback, (XtPointer) 0); + + j = 0; + XtSetArg(args[j], XtNfromVert, msgw); j++; + XtSetArg(args[j], XtNfromHoriz, b); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_edit = b = + XtCreateManagedWidget("edit", commandWidgetClass, form, args, j); + XtAddCallback(b_edit, XtNcallback, callback, (XtPointer) 0); + } + + XtRealizeWidget(shell); + CatchDeleteWindow(shell, "TagsPopDown"); + + if (tagsX == -1) { + j = 0; + XtSetArg(args[j], XtNwidth, &bw_width); j++; + XtGetValues(boardWidget, args, j); + j = 0; + XtSetArg(args[j], XtNwidth, &pw_width); j++; + XtSetArg(args[j], XtNheight, &pw_height); j++; + XtGetValues(shell, args, j); + +#ifdef NOTDEF + /* This code seems to tickle an X bug if it is executed too soon + after xboard starts up. The coordinates get transformed as if + the main window was positioned at (0, 0). + */ + XtTranslateCoords(boardWidget, (bw_width - pw_width) / 2, + 0 - pw_height + squareSize / 3, &x, &y); +#else + XTranslateCoordinates(xDisplay, XtWindow(boardWidget), + RootWindowOfScreen(XtScreen(boardWidget)), + (bw_width - pw_width) / 2, + 0 - pw_height + squareSize / 3, &xx, &yy, &junk); + tagsX = xx; + tagsY = yy; +#endif + if (tagsY < 0) tagsY = 0; /*avoid positioning top offscreen*/ + } + j = 0; + XtSetArg(args[j], XtNx, tagsX - appData.borderXoffset); j++; + XtSetArg(args[j], XtNy, tagsY - appData.borderYoffset); j++; + XtSetValues(shell, args, j); + XtSetKeyboardFocus(shell, textw); + + return shell; +} + + +void TagsPopUp(tags, msg) + char *tags, *msg; +{ + Arg args[16]; + int j; + Widget textw, msgw; + + if (editTagsUp) TagsPopDown(); + if (tagsShell == NULL) { + tagsShell = + TagsCreate("Tags", tags, msg, False, TagsCallback); + } else { + textw = XtNameToWidget(tagsShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, tags); j++; + XtSetValues(textw, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) "Tags"); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) "Tags"); j++; + XtSetValues(tagsShell, args, j); + msgw = XtNameToWidget(tagsShell, "*form.msg"); + if (msgw) { + j = 0; + XtSetArg(args[j], XtNlabel, msg); j++; + XtSetValues(msgw, args, j); + } + } + + XtPopup(tagsShell, XtGrabNone); + XSync(xDisplay, False); + + tagsUp = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Edit Tags"), + args, j); +} + + +void EditTagsPopUp(tags) + char *tags; +{ + Widget textw; + Arg args[16]; + int j; + + if (tagsUp) TagsPopDown(); + if (editTagsShell == NULL) { + editTagsShell = + TagsCreate("Edit tags", tags, NULL, True, EditTagsCallback); + } else { + textw = XtNameToWidget(editTagsShell, "*form.text"); + j = 0; + XtSetArg(args[j], XtNstring, tags); j++; + XtSetValues(textw, args, j); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) "Edit Tags"); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) "Edit Tags"); j++; + XtSetValues(editTagsShell, args, j); + } + + XtPopup(editTagsShell, XtGrabNone); + + editTagsUp = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Edit Tags"), + args, j); +} + +void TagsPopDown() +{ + Arg args[16]; + int j; + Widget w; + + if (tagsUp) { + w = tagsShell; + } else if (editTagsUp) { + w = editTagsShell; + } else { + return; + } + j = 0; + XtSetArg(args[j], XtNx, &tagsX); j++; + XtSetArg(args[j], XtNy, &tagsY); j++; + XtGetValues(w, args, j); + XtPopdown(w); + XSync(xDisplay, False); + tagsUp = editTagsUp = False; + j = 0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Edit Tags"), + args, j); +} + +void +EditTagsProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (tagsUp) TagsPopDown(); + if (editTagsUp) { + TagsPopDown(); + } else { + EditTagsEvent(); + } +} diff --git a/xedittags.h b/xedittags.h new file mode 100644 index 0000000..3281818 --- /dev/null +++ b/xedittags.h @@ -0,0 +1,34 @@ +/* + * xedittags.h + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#ifndef _XEDITTAGS_H +#define _XEDITTAGS_H 1 + +void EditTagsProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); + +#endif diff --git a/xgamelist.c b/xgamelist.c new file mode 100644 index 0000000..403db04 --- /dev/null +++ b/xgamelist.c @@ -0,0 +1,470 @@ +/* + * xgamelist.c -- Game list window, part of X front end for XBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "config.h" + +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_UNISTD_H +# include +#endif + +#include +#include +#include +#include +#if USE_XAW3D +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#else +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#endif + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "xboard.h" +#include "xgamelist.h" + +extern Widget formWidget, shellWidget, boardWidget, menuBarWidget; +extern Display *xDisplay; +extern int squareSize; +extern Pixmap xMarkPixmap; +extern char *layoutName; + +char gameListTranslations[] = + "(2): LoadSelectedProc() \n \ + Return: LoadSelectedProc() \n"; + +typedef struct { + Widget shell; + Position x, y; + Dimension w, h; + Boolean up; + FILE *fp; + char *filename; + char **strings; +} GameListClosure; + +static Arg layoutArgs[] = { + { XtNborderWidth, 0 }, + { XtNdefaultDistance, 0 } +}; + +Widget +GameListCreate(name, callback, client_data) + char *name; + XtCallbackProc callback; + XtPointer client_data; +{ + Arg args[16]; + Widget shell, form, viewport, listwidg, layout; + Widget b_load, b_loadprev, b_loadnext, b_close; + Dimension fw_width; + int j; + GameListClosure *glc = (GameListClosure *) client_data; + + j = 0; + XtSetArg(args[j], XtNwidth, &fw_width); j++; + XtGetValues(formWidget, args, j); + + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; + XtSetArg(args[j], XtNallowShellResize, True); j++; +#if TOPLEVEL + shell = + XtCreatePopupShell(name, topLevelShellWidgetClass, + shellWidget, args, j); +#else + shell = + XtCreatePopupShell(name, transientShellWidgetClass, + shellWidget, args, j); +#endif + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, shell, + layoutArgs, XtNumber(layoutArgs)); + j = 0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + form = + XtCreateManagedWidget("form", formWidgetClass, layout, args, j); + + j = 0; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainRight); j++; + XtSetArg(args[j], XtNresizable, False); j++; + XtSetArg(args[j], XtNwidth, fw_width); j++; + XtSetArg(args[j], XtNallowVert, True); j++; + viewport = + XtCreateManagedWidget("viewport", viewportWidgetClass, form, args, j); + + j = 0; + XtSetArg(args[j], XtNlist, glc->strings); j++; + XtSetArg(args[j], XtNdefaultColumns, 1); j++; + XtSetArg(args[j], XtNforceColumns, True); j++; + XtSetArg(args[j], XtNverticalList, True); j++; + listwidg = + XtCreateManagedWidget("list", listWidgetClass, viewport, args, j); + XawListHighlight(listwidg, 0); + XtAugmentTranslations(listwidg, + XtParseTranslationTable(gameListTranslations)); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_load = + XtCreateManagedWidget("load", commandWidgetClass, form, args, j); + XtAddCallback(b_load, XtNcallback, callback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_load); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_loadprev = + XtCreateManagedWidget("prev", commandWidgetClass, form, args, j); + XtAddCallback(b_loadprev, XtNcallback, callback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_loadprev); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_loadnext = + XtCreateManagedWidget("next", commandWidgetClass, form, args, j); + XtAddCallback(b_loadnext, XtNcallback, callback, client_data); + + j = 0; + XtSetArg(args[j], XtNfromVert, viewport); j++; + XtSetArg(args[j], XtNfromHoriz, b_loadnext); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + b_close = + XtCreateManagedWidget("close", commandWidgetClass, form, args, j); + XtAddCallback(b_close, XtNcallback, callback, client_data); + + if (glc->x == -1) { + Position y1; + Dimension h1; + int xx, yy; + Window junk; + + j = 0; + XtSetArg(args[j], XtNheight, &h1); j++; + XtSetArg(args[j], XtNy, &y1); j++; + XtGetValues(boardWidget, args, j); + glc->w = fw_width * 3/4; + glc->h = squareSize * 3; + + XSync(xDisplay, False); +#ifdef NOTDEF + /* This code seems to tickle an X bug if it is executed too soon + after xboard starts up. The coordinates get transformed as if + the main window was positioned at (0, 0). + */ + XtTranslateCoords(shellWidget, (fw_width - glc->w) / 2, + y1 + (h1 - glc->h + appData.borderYoffset) / 2, + &glc->x, &glc->y); +#else /*!NOTDEF*/ + XTranslateCoordinates(xDisplay, XtWindow(shellWidget), + RootWindowOfScreen(XtScreen(shellWidget)), + (fw_width - glc->w) / 2, + y1 + (h1 - glc->h + appData.borderYoffset) / 2, + &xx, &yy, &junk); + glc->x = xx; + glc->y = yy; +#endif /*!NOTDEF*/ + if (glc->y < 0) glc->y = 0; /*avoid positioning top offscreen*/ + } + j = 0; + XtSetArg(args[j], XtNheight, glc->h); j++; + XtSetArg(args[j], XtNwidth, glc->w); j++; + XtSetArg(args[j], XtNx, glc->x - appData.borderXoffset); j++; + XtSetArg(args[j], XtNy, glc->y - appData.borderYoffset); j++; + XtSetValues(shell, args, j); + + XtRealizeWidget(shell); + CatchDeleteWindow(shell, "GameListPopDown"); + + return shell; +} + +void +GameListCallback(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + String name; + Arg args[16]; + int j; + Widget listwidg; + GameListClosure *glc = (GameListClosure *) client_data; + XawListReturnStruct *rs; + int index; + + j = 0; + XtSetArg(args[j], XtNlabel, &name); j++; + XtGetValues(w, args, j); + + if (strcmp(name, "close") == 0) { + GameListPopDown(); + return; + } + listwidg = XtNameToWidget(glc->shell, "*form.viewport.list"); + rs = XawListShowCurrent(listwidg); + if (strcmp(name, "load") == 0) { + index = rs->list_index; + if (index < 0) { + DisplayError("No game selected", 0); + return; + } + } else if (strcmp(name, "next") == 0) { + index = rs->list_index + 1; + if (index >= ((ListGame *) gameList.tailPred)->number) { + DisplayError("Can't go forward any further", 0); + return; + } + XawListHighlight(listwidg, index); + } else if (strcmp(name, "prev") == 0) { + index = rs->list_index - 1; + if (index < 0) { + DisplayError("Can't back up any further", 0); + return; + } + XawListHighlight(listwidg, index); + } + if (cmailMsgLoaded) { + CmailLoadGame(glc->fp, index + 1, glc->filename, True); + } else { + LoadGame(glc->fp, index + 1, glc->filename, True); + } +} + +static GameListClosure *glc = NULL; + +void +GameListPopUp(fp, filename) + FILE *fp; + char *filename; +{ + Arg args[16]; + int j, nstrings; + Widget listwidg; + ListGame *lg; + char **st; + + if (glc == NULL) { + glc = (GameListClosure *) calloc(1, sizeof(GameListClosure)); + glc->x = glc->y = -1; + } + + if (glc->strings != NULL) { + st = glc->strings; + while (*st) { + free(*st++); + } + free(glc->strings); + } + + nstrings = ((ListGame *) gameList.tailPred)->number; + glc->strings = (char **) malloc((nstrings + 1) * sizeof(char *)); + st = glc->strings; + lg = (ListGame *) gameList.head; + while (nstrings--) { + *st++ = GameListLine(lg->number, &lg->gameInfo); + lg = (ListGame *) lg->node.succ; + } + *st = NULL; + + glc->fp = fp; + + if (glc->filename != NULL) free(glc->filename); + glc->filename = StrSave(filename); + + if (glc->shell == NULL) { + glc->shell = GameListCreate(filename, GameListCallback, glc); + } else { + listwidg = XtNameToWidget(glc->shell, "*form.viewport.list"); + XawListChange(listwidg, glc->strings, 0, 0, True); + XawListHighlight(listwidg, 0); + j = 0; + XtSetArg(args[j], XtNiconName, (XtArgVal) filename); j++; + XtSetArg(args[j], XtNtitle, (XtArgVal) filename); j++; + XtSetValues(glc->shell, args, j); + } + + XtPopup(glc->shell, XtGrabNone); + glc->up = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Game List"), + args, j); +} + +void +GameListDestroy() +{ + if (glc == NULL) return; + GameListPopDown(); + if (glc->strings != NULL) { + char **st; + st = glc->strings; + while (*st) { + free(*st++); + } + free(glc->strings); + } + free(glc); + glc = NULL; +} + +void +ShowGameListProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Arg args[16]; + int j; + + if (glc == NULL) { + DisplayError("There is no game list", 0); + return; + } + if (glc->up) { + GameListPopDown(); + return; + } + XtPopup(glc->shell, XtGrabNone); + glc->up = True; + j = 0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Game List"), + args, j); +} + +void +LoadSelectedProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + Widget listwidg; + XawListReturnStruct *rs; + int index; + + if (glc == NULL) return; + listwidg = XtNameToWidget(glc->shell, "*form.viewport.list"); + rs = XawListShowCurrent(listwidg); + index = rs->list_index; + if (index < 0) return; + if (cmailMsgLoaded) { + CmailLoadGame(glc->fp, index + 1, glc->filename, True); + } else { + LoadGame(glc->fp, index + 1, glc->filename, True); + } +} + +void +GameListPopDown() +{ + Arg args[16]; + int j; + + if (glc == NULL) return; + j = 0; + XtSetArg(args[j], XtNx, &glc->x); j++; + XtSetArg(args[j], XtNy, &glc->y); j++; + XtSetArg(args[j], XtNheight, &glc->h); j++; + XtSetArg(args[j], XtNwidth, &glc->w); j++; + XtGetValues(glc->shell, args, j); + XtPopdown(glc->shell); + XtSetKeyboardFocus(shellWidget, formWidget); + glc->up = False; + j = 0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Game List"), + args, j); +} + +void +GameListHighlight(index) + int index; +{ + Widget listwidg; + if (glc == NULL || !glc->up) return; + listwidg = XtNameToWidget(glc->shell, "*form.viewport.list"); + XawListHighlight(listwidg, index - 1); +} diff --git a/xgamelist.h b/xgamelist.h new file mode 100644 index 0000000..7b74352 --- /dev/null +++ b/xgamelist.h @@ -0,0 +1,36 @@ +/* + * xgamelist.h -- Game list window, part of X front end for XBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#ifndef _XGAMEL_H +#define _XGAMEL_H 1 + +void ShowGameListProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void LoadSelectedProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); + +#endif /* _XGAMEL_H */ diff --git a/xhistory.c b/xhistory.c new file mode 100644 index 0000000..bcb71e9 --- /dev/null +++ b/xhistory.c @@ -0,0 +1,484 @@ +/* + * xhistory.c -- Move list window, part of X front end for XBoard + * $Id$ + * + * Copyright 2000 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#include "config.h" + +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if HAVE_UNISTD_H +# include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "common.h" +#include "frontend.h" +#include "backend.h" +#include "xboard.h" +#include "xhistory.h" + + +#define _LL_ 100 + +extern Widget formWidget, shellWidget, boardWidget, menuBarWidget; +extern Display *xDisplay; +extern int squareSize; +extern Pixmap xMarkPixmap; +extern char *layoutName; + +struct History{ + String *Nr,*white,*black; + int aNr; /* space actually alocated */ + Widget mvn,mvw,mvb,vbox,viewport,sh; + char Up; +}; + +struct History *hist=0; +String dots=" ... "; + +void +HistoryPopDown(w, client_data, call_data) + Widget w; + XtPointer client_data, call_data; +{ + Arg args[16]; + int j; + if(hist) + + XtPopdown(hist->sh); + hist->Up=False; + + j=0; + XtSetArg(args[j], XtNleftBitmap, None); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Move List"), + args, j); +} + +void HistoryMoveProc(Widget w, XtPointer closure, XtPointer call_data) +{ + int to; + XawListReturnStruct *R = (XawListReturnStruct *) call_data; + if (w == hist->mvn || w == hist->mvw) { + to=2*R->list_index-1; + ToNrEvent(to); + } + else if (w == hist->mvb) { + to=2*R->list_index; + ToNrEvent(to); + } +} + +void HistoryAlloc(int len){ + int i; + if(hist){ + free(hist->Nr[0]);free(hist->white[0]);free(hist->black[0]); + free(hist->Nr);free(hist->white);free(hist->black); + } + else{ + hist=(struct History*)malloc(sizeof(struct History)); + } + hist->aNr=len; + hist->Nr=(String*)malloc(hist->aNr*sizeof(String*)); + hist->white=(String*)malloc(hist->aNr*sizeof(String*)); + hist->black=(String*)malloc(hist->aNr*sizeof(String*)); + + hist->Nr[0]=(String)malloc(hist->aNr*6); + hist->white[0]=(String)malloc(hist->aNr*MOVE_LEN); + hist->black[0]=(String)malloc(hist->aNr*MOVE_LEN); + + sprintf(hist->Nr[0]," "); + sprintf(hist->white[0],"White "); + sprintf(hist->black[0],"Black "); + for(i=1;iaNr;i++){ + hist->Nr[i]= hist->Nr[i-1]+6; + hist->white[i]= hist->white[i-1]+MOVE_LEN; + hist->black[i]= hist->black[i-1]+MOVE_LEN; + sprintf(hist->Nr[i],"%i.",i); + sprintf(hist->white[i],"-----"); + sprintf(hist->black[i],"-----"); + } +} + + +#if 1 +/* Find empty space inside vbox form widget and redistribute it amongst + the list widgets inside it. */ +/* This version sort of works */ +void +HistoryFill() +{ + Dimension w, bw; + long extra; + Position x, x1, x2; + int j, dd; + Arg args[16]; + + j = 0; + XtSetArg(args[j], XtNx, &x); j++; + XtSetArg(args[j], XtNwidth, &w); j++; + XtSetArg(args[j], XtNborderWidth, &bw); j++; + XtGetValues(hist->mvb, args, j); + x1 = x + w + 2*bw; + + j = 0; + XtSetArg(args[j], XtNwidth, &w); j++; + XtSetArg(args[j], XtNdefaultDistance, &dd); j++; + XtGetValues(hist->vbox, args, j); + x2 = w - dd; + + extra = x2 - x1; + if (extra < 0) { + extra = -((-extra)/2); + } else { + extra = extra/2; + } + + j = 0; + XtSetArg(args[j], XtNwidth, &w); j++; + XtGetValues(hist->mvw, args, j); + w += extra; + j = 0; + XtSetArg(args[j], XtNwidth, w); j++; + XtSetValues(hist->mvw, args, j); + + j = 0; + XtSetArg(args[j], XtNwidth, &w); j++; + XtGetValues(hist->mvb, args, j); + w += extra; + j = 0; + XtSetArg(args[j], XtNwidth, w); j++; + XtSetValues(hist->mvb, args, j); +} +#else +/* Find empty space inside vbox form widget and redistribute it amongst + the list widgets inside it. */ +/* This version doesn't work */ +void +HistoryFill() +{ + Arg args[16]; + Dimension fw, niw, wiw, biw, nbw, wbw, bbw; + int j, nl, wl, bl, fdd; + long extra; + + j = 0; + XtSetArg(args[j], XtNwidth, &fw); j++; + XtSetArg(args[j], XtNdefaultDistance, &fdd); j++; + XtGetValues(hist->vbox, args, j); + + j = 0; + XtSetArg(args[j], XtNlongest, &nl); j++; + XtSetArg(args[j], XtNinternalWidth, &niw); j++; + XtSetArg(args[j], XtNborderWidth, &nbw); j++; + XtGetValues(hist->mvn, args, j); + + j = 0; + XtSetArg(args[j], XtNlongest, &wl); j++; + XtSetArg(args[j], XtNinternalWidth, &wiw); j++; + XtSetArg(args[j], XtNborderWidth, &wbw); j++; + XtGetValues(hist->mvw, args, j); + + j = 0; + XtSetArg(args[j], XtNlongest, &bl); j++; + XtSetArg(args[j], XtNinternalWidth, &biw); j++; + XtSetArg(args[j], XtNborderWidth, &bbw); j++; + XtGetValues(hist->mvb, args, j); + + extra = fw - 4*fdd - + nl - 1 - 2*niw - 2*nbw - wl - 2*wiw - 2*wbw - bl - 2*biw - 2*bbw; + if (extra < 0) extra = 0; + + j = 0; + XtSetArg(args[j], XtNwidth, nl + 1 + 2*niw); j++; + XtSetValues(hist->mvn, args, j); + + j = 0; + XtSetArg(args[j], XtNwidth, wl + 2*wiw + extra/2); j++; + XtSetValues(hist->mvw, args, j); + + j = 0; + XtSetArg(args[j], XtNwidth, bl + 2*biw + extra/2); j++; + XtSetValues(hist->mvb, args, j); +} +#endif + +void HistorySet(char movelist[][2*MOVE_LEN],int first,int last,int current){ + int i,b,m; + if(hist){ + if(last >= hist->aNr) HistoryAlloc(last+_LL_); + for(i=0;iwhite[i/2+1], movelist[i], p-movelist[i]); + hist->white[i/2+1][p-movelist[i]] = NULLCHAR; + } else { + strcpy(hist->white[i/2+1],movelist[i]); + } + } else { + strcpy(hist->white[i/2+1],dots); + } + } else { + if(movelist[i][0]) { + char* p = strchr(movelist[i], ' '); + if (p) { + strncpy(hist->black[i/2+1], movelist[i], p-movelist[i]); + hist->black[i/2+1][p-movelist[i]] = NULLCHAR; + } else { + strcpy(hist->black[i/2+1],movelist[i]); + } + } else { + strcpy(hist->black[i/2+1],""); + } + } + } + strcpy(hist->black[last/2+1],""); + b=first/2; + m=(last+3)/2-b; + XawFormDoLayout(hist->vbox, False); + XawListChange(hist->mvn,hist->Nr+b,m,0,True); + XawListChange(hist->mvw,hist->white+b,m,0,True); + XawListChange(hist->mvb,hist->black+b,m,0,True); + HistoryFill(); + XawFormDoLayout(hist->vbox, True); + if(current<0){ + XawListUnhighlight(hist->mvw); + XawListUnhighlight(hist->mvb); + } + else if((current%2)==0){ + XawListHighlight(hist->mvw, current/2+1); + XawListUnhighlight(hist->mvb); + } + else{ + XawListUnhighlight(hist->mvw); + if(current) XawListHighlight(hist->mvb, current/2+1); + else XawListUnhighlight(hist->mvb); + } + } +} + +Widget HistoryCreate() +{ + Arg args[16]; + int i,j; + + Widget layout,form,b_close; + String trstr= + "Up: BackwardProc() \n \ + Left: BackwardProc() \n \ + Down: ForwardProc() \n \ + Right: ForwardProc() \n"; + /*--- allocate memory for move-strings ---*/ + HistoryAlloc(_LL_); + + /*-------- create the widgets ---------------*/ + j = 0; + XtSetArg(args[j], XtNresizable, True); j++; + XtSetArg(args[j], XtNallowShellResize, True); j++; +#if TOPLEVEL + hist->sh = + XtCreatePopupShell("Move list", topLevelShellWidgetClass, + shellWidget, args, j); +#else + hist->sh = + XtCreatePopupShell("Move list", transientShellWidgetClass, + shellWidget, args, j); +#endif + j = 0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNdefaultDistance, 0); j++; + layout = + XtCreateManagedWidget(layoutName, formWidgetClass, hist->sh, + args, j); + + j = 0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNresizable, True); j++; + + form = + XtCreateManagedWidget("form", formWidgetClass, layout, args, j); + j=0; + + j = 0; + + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainRight); j++; + + XtSetArg(args[j], XtNborderWidth, 1); j++; + XtSetArg(args[j], XtNresizable, False); j++; + XtSetArg(args[j], XtNallowVert, True); j++; + XtSetArg(args[j], XtNallowHoriz, True); j++; + XtSetArg(args[j], XtNforceBars, False); j++; + XtSetArg(args[j], XtNheight, 280); j++; + hist->viewport = + XtCreateManagedWidget("viewport", viewportWidgetClass, + form, args, j); + j=0; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNorientation,XtorientHorizontal);j++; + hist->vbox = + XtCreateManagedWidget("vbox", formWidgetClass, hist->viewport, args, j); + + j=0; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainTop); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + + XtSetArg(args[j], XtNdefaultColumns, 1); j++; + XtSetArg(args[j], XtNforceColumns, True); j++; + XtSetArg(args[j], XtNverticalList, True); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNresizable,True);j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + hist->mvn = XtCreateManagedWidget("movesn", listWidgetClass, + hist->vbox, args, j); + XtAddCallback(hist->mvn, XtNcallback, HistoryMoveProc, (XtPointer) hist); + + j=0; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainTop); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtRubber); j++; + + XtSetArg(args[j], XtNdefaultColumns, 1); j++; + XtSetArg(args[j], XtNforceColumns, True); j++; + XtSetArg(args[j], XtNverticalList, True); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNresizable,True);j++; + XtSetArg(args[j], XtNfromHoriz, hist->mvn); j++; + hist->mvw = XtCreateManagedWidget("movesw", listWidgetClass, + hist->vbox, args, j); + XtAddCallback(hist->mvw, XtNcallback, HistoryMoveProc, (XtPointer) hist); + + j=0; + XtSetArg(args[j], XtNtop, XtChainTop); j++; + XtSetArg(args[j], XtNbottom, XtChainTop); j++; + XtSetArg(args[j], XtNleft, XtRubber); j++; + XtSetArg(args[j], XtNright, XtRubber); j++; + + XtSetArg(args[j], XtNdefaultColumns, 1); j++; + XtSetArg(args[j], XtNforceColumns, True); j++; + XtSetArg(args[j], XtNverticalList, True); j++; + XtSetArg(args[j], XtNborderWidth, 0); j++; + XtSetArg(args[j], XtNresizable,True);j++; + XtSetArg(args[j], XtNfromHoriz, hist->mvw); j++; + hist->mvb = XtCreateManagedWidget("movesb", listWidgetClass, + hist->vbox, args, j); + XtAddCallback(hist->mvb, XtNcallback, HistoryMoveProc, (XtPointer) hist); + + j=0; + XtSetArg(args[j], XtNbottom, XtChainBottom); j++; + XtSetArg(args[j], XtNtop, XtChainBottom); j++; + XtSetArg(args[j], XtNleft, XtChainLeft); j++; + XtSetArg(args[j], XtNright, XtChainLeft); j++; + XtSetArg(args[j], XtNfromVert, hist->viewport); j++; + b_close= XtCreateManagedWidget("Close", commandWidgetClass, + form, args, j); + XtAddCallback(b_close, XtNcallback, HistoryPopDown, (XtPointer) 0); + + XtAugmentTranslations(hist->sh,XtParseTranslationTable (trstr)); + + XtRealizeWidget(hist->sh); + CatchDeleteWindow(hist->sh, "HistoryPopDown"); + + for(i=1;iaNr;i++){ + strcpy(hist->white[i],dots); + strcpy(hist->black[i],""); + } + + return hist->sh; +} + +void +HistoryPopUp() +{ + Arg args[16]; + int j; + + if(!hist) HistoryCreate(); + XtPopup(hist->sh, XtGrabNone); + j=0; + XtSetArg(args[j], XtNleftBitmap, xMarkPixmap); j++; + XtSetValues(XtNameToWidget(menuBarWidget, "menuMode.Show Move List"), + args, j); + hist->Up=True; +} + + +void +HistoryShowProc(w, event, prms, nprms) + Widget w; + XEvent *event; + String *prms; + Cardinal *nprms; +{ + if (!hist) { + HistoryCreate(); + HistoryPopUp(); + } else if (hist->Up) { + HistoryPopDown(0,0,0); + } else { + HistoryPopUp(); + } + ToNrEvent(currentMove); +} + diff --git a/xhistory.h b/xhistory.h new file mode 100644 index 0000000..61af988 --- /dev/null +++ b/xhistory.h @@ -0,0 +1,37 @@ +/* + * xgamelist.h -- Game list window, part of X front end for XBoard + * $Id$ + * + * Copyright 1995 Free Software Foundation, Inc. + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + * + * See the file ChangeLog for a revision history. + */ + +#ifndef _XHISTL_H +#define _XHISTL_H 1 + +void HistoryShowProc P((Widget w, XEvent *event, + String *prms, Cardinal *nprms)); +void HistoryPopDown P((Widget w, XtPointer client_data, + XtPointer call_data)); + +#endif /* _XHISTL_H */ + diff --git a/zic2xpm.c b/zic2xpm.c new file mode 100644 index 0000000..7d816ed --- /dev/null +++ b/zic2xpm.c @@ -0,0 +1,602 @@ +/* + zic2xpm.c + + Program to convert pieces from ZIICS format to XPM & XIM format. + (C version) By Frank McIngvale . + + Copyright (C) 1996 Free Software Foundation, Inc. + + NOTICE: The piece images distributed with ZIICS are + copyrighted works of their original creators. Images + converted with zic2xpm may not be redistributed without + the permission of the copyright holders. Do not contact + the authors of zic2xpm or of ZIICS itself to request + permission. + + NOTICE: The format of the ZIICS piece file was gleaned from + SHOWSETS.PAS, a part of ZIICS. Thanks to Andy McFarland + (Zek on ICC) for making this source available! ZIICS is a + completely separate and copyrighted work of Andy + McFarland. Use and distribution of ZIICS falls under the + ZIICS license, NOT the GNU General Public License. + + NOTICE: The format of the VGA imageblocks was determined + by experimentation, and without access to any + of Borland Inc.'s BGI library source code. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. However, the above notices + MUST BE RETAINED in any copy that you redistribute or modify. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA. + + ** If you find a bug in zic2xpm.c, please report it to me, + Frank McIngvale (frankm@hiwaay.net) so that I may fix it. ** +*/ + +/* + Usage: zic2xpm file1 [file2 ...] + + We split the ZIICS file(s) into 24 XPM & 24 XIM files with names: + + .(xpm|xim). + + Where: + piece = p, n, b, r, q, k + type = ll, ld, dl, dd + size = Piece size. + + Plus 4 files for the light & dark squares. + + This means that you can extract multiple SIZES in one directory + without name clashes. Extracting two sets of the SAME + size in a directory will cause the second to overwrite + the first. +*/ + +/* + Technical note: Yes, this file is huge. I made it by cramming + `zic2xpm' and `zic2xim' together. This should + be less confusing to use, though. +*/ + +#include "config.h" +#include +#if STDC_HEADERS +#include +#endif + +#ifndef SEEK_SET +#define SEEK_SET 0 +#endif + +/* + XIM file format: + + width byte + height byte + + Data (1 byte per pixel, row major) +*/ + +/* + Map colors from ZIICS -> XIM : + + 0 0 Dark piece + 2 1 Dark square + 15 2 Light piece + 14 3 Light square +*/ + +typedef struct { + int zval; /* ZIICS value */ + int xval; /* XIM value */ +} z2xim; + +/* Associate VGA color with XPM color/sym */ + +typedef struct { + int cval; /* VGA pixel value */ + char xchar; /* XPM character for this color */ + char *csym; /* Symbolic name */ + char *cdefault; /* Default color */ +} z2xpm; + +#define NR_ZIICS_COLORS 4 + +/* SHOWSETS.PAS (from ZIICS) states that images may only + use color numbers 0, 2, 14, and 15 */ + +z2xim z2xim_tab[NR_ZIICS_COLORS] = { + { 0, 0 }, + { 2, 1 }, + { 15, 2 }, + { 14, 3 } }; + +z2xpm z2xpm_tab[NR_ZIICS_COLORS] = { + { 15, 'X', "light_piece", "white" }, + { 0, ' ', "dark_piece", "black" }, + { 14, '*', "light_square", "gray" }, + { 2, '.', "dark_square", "green" } }; + +void fatal( str ) + char *str; +{ + printf("Fatal error: %s\n", str ); + exit(1); +} + +z2xim *lookup_xim_color( color ) + int color; +{ + int i; + + for( i=0; i 0; --i, --w ) + { + byte = 0; + + /* 1 bit from each plane */ + for( j=0; j<4; ++j ) + { + bit = b[j]; + bit &= (1 << i); + bit >>= i; + bit <<= 3-j; + byte |= bit; + } + + *(dest++) = byte; + } + + return dest; +} + +/* + W is width of image in PIXELS. + SRC is in packed pixel format. + DEST is filled with 1 BYTE per PIXEL. +*/ +unsigned char *decode_line( dest, src, w ) + unsigned char *dest, *src; + int w; +{ + unsigned int w8; + unsigned int bpp; + unsigned char b[4]; + int i; + unsigned char *p; + + p = src; + w8 = up8( w ); + + /* 4 planes, bpp BYTES per plane */ + /* Planes are MSB -> LSB */ + bpp = w8 >> 3; + + while( w > 0 ) + { + for( i=0; i<4; ++i ) + b[i] = p[i*bpp]; + + if ( w > 8 ) + dest = decode_byte( dest, b, 8 ); + else + dest = decode_byte( dest, b, w ); + + w -= 8; + ++p; + } + + return (src + bpp * 4); +} + +int write_xim_header( fp, w, h ) + FILE *fp; + int w, h; +{ + fputc( w, fp ); + fputc( h, fp ); + + return 0; +} + +int write_xpm_header( fp, w, h ) + FILE *fp; + int w, h; +{ + int i; + z2xpm *cv; + + fprintf(fp, "/* XPM */\n"); + fprintf(fp, "/* This file was automatically generated from the file %s\n", + src_name ); + fprintf(fp, "using the program ``zic2xpm''.\n"); + fprintf(fp, "\n %s\n %s\n %s\n %s\n %s\n %s */\n", + "NOTICE: The piece images distributed with ZIICS are", + " copyrighted works of their original creators. Images", + " converted with zic2xpm may not be redistributed without", + " the permission of the copyright holders. Do not contact", + " the authors of zic2xpm or of ZIICS itself to request", + " permission."); + fprintf( fp, "static char * image_name[] = {\n" ); + fprintf( fp, "\"%d %d %d 1\",\n", h, w, NR_ZIICS_COLORS ); + + cv = z2xpm_tab; + + for( i=0; ixchar, + cv->cdefault, cv->csym ); + } + + return 0; +} + +void create_piece_xim( outname, fpin, W, H ) + char *outname; + FILE *fpin; + int W, H; +{ + FILE *fpout; + int w, h, i, j, c; + unsigned char *lump, *p, *line; + long size; + z2xim *ent; + + fpout = fopen( outname, "wb" ); + if ( !fpout ) + fatal( "Can't create output file."); + + /* Header is two ints -- Width then Height, x86 format */ + c = fgetc( fpin ); + w = (fgetc(fpin) << 8) | c; + + c = fgetc( fpin ); + h = (fgetc(fpin) << 8) | c; + + ++w; ++h; + + if ( w != W || h != H ) + fatal( "Bad header." ); + + size = vga_imagesize( w, h ) - 4; + lump = (unsigned char*)malloc( size ); + line = (unsigned char*)malloc( w ); + + if ( !lump || !line ) + fatal( "Out of memory." ); + + fread( lump, 1, size, fpin ); + + /* Write XIM header */ + write_xim_header( fpout, w, h ); + + p = lump; + + /* Write XIM data */ + for( i=0; ixval, fpout ); + } + } + + free( lump ); + free( line ); + fclose( fpout ); +} + +void create_piece_xpm( outname, fpin, W, H ) + char *outname; + FILE *fpin; + int W, H; +{ + FILE *fpout; + int w, h, i, j, c; + unsigned char *lump, *p, *line; + long size; + z2xpm *cv; + + fpout = fopen( outname, "wb" ); + if ( !fpout ) + fatal( "Can't create output file."); + + /* Header is two ints -- Width then Height, x86 format */ + c = fgetc( fpin ); + w = (fgetc(fpin) << 8) | c; + + c = fgetc( fpin ); + h = (fgetc(fpin) << 8) | c; + + ++w; ++h; + + if ( w != W || h != H ) + fatal( "Bad header." ); + + size = vga_imagesize( w, h ) - 4; + lump = (unsigned char*)malloc( size ); + line = (unsigned char*)malloc( w ); + + if ( !lump || !line ) + fatal( "Out of memory." ); + + fread( lump, 1, size, fpin ); + + /* Write XPM header */ + write_xpm_header( fpout, w, h ); + + p = lump; + + /* Write XPM data */ + for( i=0; ixchar ); + } + fprintf( fpout, "\",\n" ); + } + + fprintf( fpout, "};\n" ); + + free( lump ); + free( line ); + fclose( fpout ); +} + +/* The order of the pieces in the ZIICS piece file (from SHOWSETS.PAS) */ +char *pieces = "prkqbn"; +char *pname[] = { "Pawn", "Rook", "King", "Queen", "Bishop", "Knight" }; + +/* The suborder - Light/Light, Light/Dark, etc. */ +char *prefixes[] = { "ll", "ld", "dl", "dd" }; + +int process_file_xim( filename ) + char *filename; +{ + int w, h, piece, kind, c; + int nr_pieces = 6; + int nr_kinds = 4; + FILE *fp; + char buf[100]; + + src_name = filename; + + fp = fopen( filename, "rb" ); + if ( !fp ) + fatal( "Can't open input file." ); + + /* Header is two ints -- Width then Height, x86 format */ + c = fgetc( fp ); + w = (fgetc(fp) << 8) | c; + + c = fgetc( fp ); + h = (fgetc(fp) << 8) | c; + + ++w; ++h; + + if ( w != h ) + { + printf("ERROR: Can only convert square pieces.\n"); + printf(" (This set is %dx%d)\n", w, h ); + exit(1); + } + + printf("Creating XIM files...\n"); + printf("File: %s, W=%d, H=%d\n", filename, w, h ); + fseek( fp, 0, SEEK_SET ); + + /* Write .XIM files */ + for( piece = 0; piece < nr_pieces; ++piece ) + { + printf("%s ", pname[piece] ); + + for( kind = 0; kind < nr_kinds; ++kind ) + { + printf( "." ); + /* Form output filename -- .xim */ + sprintf(buf, "%c%s%d.xim", pieces[piece], prefixes[kind], w); + create_piece_xim( buf, fp, w, h ); + } + printf("\n"); + } + + /* Write the light & dark squares */ + sprintf( buf, "lsq%d.xim", w ); + printf("Light Square" ); + create_piece_xim( buf, fp, w, h ); + + sprintf( buf, "dsq%d.xim", w ); + printf("\nDark Square" ); + create_piece_xim( buf, fp, w, h ); + printf("\n"); + + printf("Successfully converted!!\n" ); + + fclose( fp ); + + return 0; +} + +int process_file_xpm( filename ) + char *filename; +{ + int w, h, piece, kind, c; + int nr_pieces = 6; + int nr_kinds = 4; + FILE *fp; + char buf[100]; + + src_name = filename; + + fp = fopen( filename, "rb" ); + if ( !fp ) + fatal( "Can't open input file." ); + + /* Header is two ints -- Width then Height, x86 format */ + c = fgetc( fp ); + w = (fgetc(fp) << 8) | c; + + c = fgetc( fp ); + h = (fgetc(fp) << 8) | c; + + ++w; ++h; + + if ( w != h ) + { + printf("ERROR: Can only convert square pieces.\n"); + printf(" (This set is %dx%d)\n", w, h ); + exit(1); + } + + printf("Creating XPM files...\n"); + printf("File: %s, W=%d, H=%d\n", filename, w, h ); + fseek( fp, 0, SEEK_SET ); + + /* Write .XPM files */ + for( piece = 0; piece < nr_pieces; ++piece ) + { + printf("%s ", pname[piece] ); + + for( kind = 0; kind < nr_kinds; ++kind ) + { + printf( "." ); + /* Form output filename -- .xpm */ + sprintf(buf, "%c%s%d.xpm", pieces[piece], prefixes[kind], w); + create_piece_xpm( buf, fp, w, h ); + } + printf("\n"); + } + + /* Write the light & dark squares */ + sprintf( buf, "lsq%d.xpm", w ); + printf("Light Square" ); + create_piece_xpm( buf, fp, w, h ); + + sprintf( buf, "dsq%d.xpm", w ); + printf("\nDark Square" ); + create_piece_xpm( buf, fp, w, h ); + printf("\n"); + + printf("Successfully converted!!\n" ); + + fclose( fp ); + + return 0; +} + +int main( argc, argv ) + int argc; + char *argv[]; +{ + int i; + + if ( argc < 2 ) + { + printf("ZIC2XPM 2.01 - by Frank McIngvale (frankm@hiwaay.net)\n"); + printf("Copyright (C) 1996 Free Software Foundation, Inc.\n\n"); + printf("Usage: zic2xpm file1 [file2 ...]\n\n"); + printf(" Splits each file (ZIICS piece files) into 26 XPM & XIM files\n"); + printf(" suitable for use in XBoard 3.5 or later.\n"); + printf("\n* ZIICS is a copyrighted work of Andy McFarland (Zek on ICC) *\n"); + return 1; + } + + + setbuf( stdout, NULL ); + + for( i=1; i + http://www.tim-mann.org/chess.html + +* * * + +Unix: To build the Zippy version of xboard, on most systems just do: + configure --enable-zippy + make + +Windows: WinBoard.exe (versions 3.5 and later) includes the Zippy +code. There is no longer a distinct WinZippy.exe. + +In both xboard and WinBoard, the Zippy features are off by default. +You can activate them with two new resources/command line options, and +you can fine-tune them with some new environment variables, all +described below. + +You will probably want to make a shell script or Windows .BAT file +that sets the environment variables you want to use and invokes Zippy +with the right command line options for your situation. Some examples +are at the bottom of this file. + +If you have problems building or running Zippy, see the rest of the +xboard documentation: INSTALL documents the configure program, while +READ_ME and xboard.man (or xboard.doc) document xboard itself, and +WinBoard.hlp documents WinBoard. FAQ answers some frequently asked +questions. The file engine-intf.html contains some information about +the interface between xboard/WinBoard and GNU Chess (or other chess +engines). + +=========== +NEW OPTIONS +=========== + + -zippyPlay True/False or -zp/-xzp + If zippyPlay is set to True, when xboard is in -ics mode, it + will interface a chess engine to the ICS instead of letting you + play. You must also set -ics when you use this mode. + + In zippyPlay mode, xboard blindly issues an accept command for + every (well, almost every, see below) challenge it gets, + without remembering anything about the challenge afterwards. + This means that often it will get several challenges very + close together and try to accept them all! ICS gives an error + message for every accept command after the one that actually + starts a match, but xboard just happily ignores the message. + xboard doesn't actually start the chess engine playing until + the first board image comes in from ICS. + + The getMoveList option controls how adjourned games are + continued. If it is True (the default), xboard fetches the + move list from ICS and feeds it into the chess program before + having the program start play. If False, xboard feeds the + current position into the chess program and has it start from + there. The latter option gets the program going sooner, but + can cause problems with detection of en passant legality, + castling legality (if a king or rook has moved and then + returned to its home square), draw by repetition, and draw by + the 50 move rule. + + In zippyPlay mode, colorization in the ICS interaction window, + and the sounds corresponding to colors in that window, do not + work. zippyPassword and related features (see below) capture + the tells, etc., before they can be matched by the color/sound + code. + + -zippyTalk True/False or -zt/-xzt + If zippyTalk is set to True and xboard is in -ics mode: + + (1) It will reply to anything said to it with a saying (if + there is a file of sayings in its working directory). This + includes channel tells and shouts where its name is mentioned. + Some things it says to opponents in specific situations will + also be made Zippy-ish; you might want to change that. See + zippyLines below for the file format. + + (2) If a player XXX in your notify list logs on, xboard sends + the command "greet XXX" to ICS and tells XXX something from + its sayings file. You can alias this to whatever you like. + If XXX is censoring you, he is automatically removed from your + notify list. + + (3) If a player XXX in your notify list logs off, xboard sends + the command "farewell XXX" to ICS. You can alias this to + whatever you like. Note that the player is already gone, so + telling him something is futile. + + If zippyTalk is on, colorization in the ICS interaction + window, and the sounds corresponding to colors in that window, + do not work. The reply feature captures the tells, etc., + before they can be matched by the color/sound code. + + In both -zp and -zt modes, if admin X spoofs Zippy, Zippy sends the + command "spoofedby X" to ICS. You can alias this to something if you + want; otherwise it will produce a harmless error message. + + -zippyPinhead string + In zippyTalk mode, if user XXX shouts anything containing + this string, xboard sends the command "insult XXX" to ICS. + You can alias "insult" to whatever you like. This feature is + disabled if the option is not set. + + -zippyPassword string + If someone does an ICS "tell" to xboard that begins with this + password, it will type the same string back as a command with + the password stripped off. For example, if the password is + !%%! and xboard sees the string "Darooha tells you: !%%!shout + Hi there", it will type the command "shout Hi there" to the + ICS. This feature is disabled if the option is not set. + + -zippyPassword2 string + If someone does an ICS "tell" to xboard that begins with this + password, it will send the same string directly to the chess + engine with the password stripped off. This feature is + disabled if the option is not set. Use with caution. + + -zippyWrongPassword string + This is a joke feature. If player XXX does an ICS "tell" to + xboard that begins with this password, it will send the + command "wrong XXX" to ICS. ICS does not define a "wrong" + command, but you can alias it to whatever you like. The + feature is supposed to be used after you've changed the + zippyPassword, so that people who knew the old password get a + funny message. Disabled if not set. + + -zippyUseI True/False or -zui/-xzui + If this option is true, Zippy's shouts use the "i" command with + funny verbs; otherwise they use the "shout" command. Default + is true. The variable is automatically set to false if the "i" + command is disabled on ICS by the admins. + + -zippyLines filename + Name of the file Zippy looks in for sayings when -zt is set. + Default: yow.lines. File format: There must be a single ^ + character or null character (control-@, ASCII code \000) after + each saying. Sayings can have newlines in them; Zippy will + remove them. Sayings can be at most about 250 characters; + longer ones will be ignored. The first saying in the file is + never used; you should put a comment there. If you have only + one or two sayings in your file, Zippy may get into a loop + trying to choose one. Zippy chooses a saying by seeking to a + random character position in the file, skipping ahead to the + *next* null character, and printing the saying that starts + there. If it hits end of file without finding a new saying, + it tries again. Yes, this is a dumb algorithm. + + -zippyAcceptOnly string + Normally, Zippy automatically accepts challenges from all + opponents. If this option is set to an ICS login name, Zippy + will auto-accept challenges only from that opponent. Set the + option to an invalid name like "0" if you don't want Zippy to + auto-accept any challenges. You can still accept challenges + manually. Setting this option also suppresses the + zippyGameEnd feature described below. Default: not set. + + -zippyNoplayCrafty True/False or -znc/-xznc + If this option is set to True, if Zippy's opponent kibitzes + "Hello from Crafty" within the first couple of moves, Zippy + will abort the game and add the opponent to his noplay list. + Default: False. + + -zippyGameStart string + At the start of each game Zippy plays (including resuming from + adjournment), it sends this string to ICS, followed by a newline. + If the option is not set, nothing is sent. + + -zippyGameEnd string + At the end of each game, Zippy sends this string to ICS, + followed by a newline. If you do not set this option, the + string "gameend" is sent. This is not a legal ICS command, + but you can alias it to whatever you like, or you can leave + it undefined, which will cause ICS to print a harmless error + message after each game. If you want to send more than one + command at the end of the game, on ICC you can alias gameend + to a "multi" command (see the ICC help files), but on FICS that + does not work. Instead, use the -zippyGameEnd option to have + a string of several commands sent, with newlines in between. + For example, you could give WinBoard the command line option + -zippyGameEnd='say thanks\nseek 5 0\nseek 2 12\n' + You could give xboard the command line option + -xrm '*zippyGameEnd: say thanks\nseek 5 0\nseek 2 12\n' + + -zippyAdjourn True/False or -zadj/-xzadj + Zippy will allow its opponent to adjourn if this option is + set to true. Default: False. + + -zippyAbort True/False or -zab/-xzab + Zippy will allow its opponent to abort if this option is + set to true. Default: False. + + -zippyVariants string + Zippy will decline to play chess variants unless their names + (as given in engine-intf.html) are listed in this option. + Default: "normal". Example: "suicide,losers,bughouse,normal". + + Obviously, zippyVariants other than "normal" will work only + if your chess engine can play those variants. GNU Chess + certainly cannot, but there are some suicide and bughouse + engines available. While playing bughouse, Zippy passes + certain extra information on to the engine; see + engine-intf.html. + + -zippyBughouse int + This option controls how Zippy handles bughouse partner + requests. If zippyBughouse is set to 0, Zippy will decline + any offers of partnership and tell the offerer that it cannot + play bughouse. If zippyBughouse is set to 1, Zippy will + decline offers, but you can make Zippy your partner by having + *it* offer *you* partnership (by using zippyPassword or typing + directly into its window). If zippyBughouse is set to 2, + Zippy will accept all offers of partnership, even if it + already has a partner. zippyBughouse must be at least 1 for + partner tells to be relayed to the engine with the ptell + command. + + -zippyMaxGames int + -zippyReplayTimeout + If zippyMaxGames > 0, Zippy will play at most the given number + of consecutive games against the same opponent. Thereafter, + Zippy will decline all challenges from that opponent (with an + explanatory tell) until either someone else has played or + zippyReplayTimeout seconds have elapsed. Defaults: + zippyMaxGames=0, zippyReplayTimeout=120. + + Note: If you use these options and you have Zippy doing seeks, + be sure to include the "m" flag in the ICS seek command. If + you use "seek m", when a player responds to the seek, the ICS + gives Zippy a challenge that it can either accept or decline. + If you use a seek without the "m" flag, the ICS immediately + starts a game between Zippy and the first opponent to respond, + giving Zippy no choice about whether to accept or decline. + +===================== +ENVIRONMENT VARIABLES +===================== + + For backward compatibility with version 4.0.2 and earlier only, most + of the command line options listed above can also be set as + environment variables. For boolean options, use 0 for false, 1 for + true in the corresponding environment variable. The following + environment variables are supported.: + + ZIPPYPINHEAD, ZIPPYPASSWORD, ZIPPYPASSWORD2, ZIPPYWRONGPASSWORD, + ZIPPYUSEI, ZIPPYLINES, ZIPPYACCEPTONLY, ZIPPYNOPLAYCRAFTY, + ZIPPYGAMESTART, ZIPPYGAMEEND, ZIPPYADJOURN, ZIPPYABORT, + ZIPPYVARIANTS, ZIPPYBUGHOUSE + + Warnings: (1) If both the command line option and the corresponding + environment variable are set, the environment variable takes + precedence! (2) Some of the environment variables have names that + are too long for Solaris 2.5's /bin/csh. Use the command line + options instead. (3) Newer options DO NOT have environment + variables. If you don't see it in the list above, it doesn't exist. + (4) In the future the environment variables may go away entirely. + It would be a good idea to stop using them now and switch to the + command line options. + +You may also want to customize other things by editing zippy.c and +recompiling the program. + +===================== +ICS VARIABLE SETTINGS +===================== + +You need to do the following settings on ICS: + + set highlight 0 <-- I'm not sure this is still needed + set oldmatch 0 + set examine 0 + +If you want to use the zippyPassword remote-control feature, it's a +good idea to do the following, so that commands you give Zippy won't +be truncated because the ICS wrapped a "tell" to a new line: + + set wrap 0 <-- on ICC, or + set width 255 <-- on FICS + +You will probably want to turn on server-side autoflagging too: + + set autoflag 1 + +====== +SIMULS +====== + +It has been discovered that Zippy can play simuls on ICC (but not on +FICS). If you arrange for Zippy to send the ICC command "simulize" in +the -zippyGameStart string, it will accept additional games while +playing. Zippy will use the same engine for every game, so whenever +it switches opponents, the engine's state will be reset with the "new" +command. This will of course weaken its play, so don't enable simuls +if you want your engine to have the highest possible rating. + +Zippy was never designed to work with simuls; it just works by +accident, and it hasn't been tested much. So please report any bugs +you notice, but don't expect them to be fixed rapidly. + +Be sure to use xboard/WinBoard 4.2.4 or later for simuls, because some +obscure bugs are fixed in that version that affect starting a game in +the middle (as with resuming from adjournments or switching opponents +in a simul). + +======== +EXAMPLES +======== + +Here are some small example command lines. You may want to use more +options; see the man page, info file, or help file, and perhaps the +FAQ file too. You may want to put the command line into a Unix shell +script or Windows .BAT file, which is simply a text file of commands. +On Unix, turn on execute permission for the file (chmod a+x file); on +Windows, give it the extension .BAT. You can then run it just like an +ordinary program. Please do not ask me questions about how to make a +shell script or .BAT file; these are not functions of xboard/WinBoard, +but basic operating system features that you can learn about from +introductory books, friends, teachers, or the online help for your +system. The examples below should be more than enough to get you +started. + +Unix command lines: + +# xboard + GNU Chess on chessclub.com +xboard -zp -ics -icshost chessclub.com -icshelper timestamp \ + -zippyPassword beer + +# xboard + GNU Chess on freechess.org +xboard -zp -ics -icshost freechess.org -icshelper timeseal \ + +# xboard + Crafty on chessclub.com +xboard -zp -ics -icshost chessclub.com \ + -fd /home/crafty -fcp crafty -icshelper timestamp \ + -zippyPassword beer + +# xboard + Crafty on freechess.org +xboard -zp -ics -icshost freechess.org -autoflag \ + -fd /home/crafty -fcp crafty -icshelper timeseal \ + -zippyPassword beer + +Windows command lines: + +REM WinBoard + GNU Chess on chessclub.com +WinBoard -zp -ics -icshost chessclub.com -fcp GNUChess -icshelper timestamp -zippyPassword beer + +REM WinBoard + GNU Chess on freechess.org +WinBoard -zp -ics -icshost freechess.org -fcp GNUChess -icshelper timeseal -zippyPassword beer + +REM WinBoard + Crafty on chessclub.com +WinBoard -zp -ics -icshost chessclub.com -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer + +REM WinBoard + Crafty on freechess.org +WinBoard -zp -ics -icshost freechess.org -fd C:\Crafty -fcp WCrafty -icshelper timestamp -zippyPassword beer diff --git a/zippy.c b/zippy.c new file mode 100644 index 0000000..b1a7fc8 --- /dev/null +++ b/zippy.c @@ -0,0 +1,1071 @@ +/* + * zippy.c -- Implements Zippy the Pinhead chess player on ICS in XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-2001 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +#include "config.h" + +#include +#include +#include +#include +#include + +#if STDC_HEADERS +# include +# include +#else /* not STDC_HEADERS */ +extern char *getenv(); +# if HAVE_STRING_H +# include +# else /* not HAVE_STRING_H */ +# include +# endif /* not HAVE_STRING_H */ +#endif /* not STDC_HEADERS */ + +#if TIME_WITH_SYS_TIME +# include +# include +#else +# if HAVE_SYS_TIME_H +# include +# else +# include +# endif +#endif +#define HI "hlelo " + +#if HAVE_UNISTD_H +# include +#endif + +#include "common.h" +#include "zippy.h" +#include "frontend.h" +#include "backend.h" +#include "backendz.h" + +static char zippyPartner[MSG_SIZ]; +static char zippyLastOpp[MSG_SIZ]; +static int zippyConsecGames; +static time_t zippyLastGameEnd; + +void ZippyInit() +{ + char *p; + + /* Get name of Zippy lines file */ + p = getenv("ZIPPYLINES"); + if (p != NULL) { + appData.zippyLines = p; + } + + /* Get word that Zippy thinks is insulting */ + p = getenv("ZIPPYPINHEAD"); + if (p != NULL) { + appData.zippyPinhead = p; + } + + /* What password is used for remote control? */ + p = getenv("ZIPPYPASSWORD"); + if (p != NULL) { + appData.zippyPassword = p; + } + + /* What password is used for remote commands to gnuchess? */ + p = getenv("ZIPPYPASSWORD2"); + if (p != NULL) { + appData.zippyPassword2 = p; + } + + /* Joke feature for people who try an old password */ + p = getenv("ZIPPYWRONGPASSWORD"); + if (p != NULL) { + appData.zippyWrongPassword = p; + } + + /* While testing, I want to accept challenges from only one person + (namely, my "anonymous" account), so I set an environment + variable ZIPPYACCEPTONLY. */ + p = getenv("ZIPPYACCEPTONLY"); + if ( p != NULL ) { + appData.zippyAcceptOnly = p; + } + + /* Should Zippy use "i" command? */ + /* Defaults to 1=true */ + p = getenv("ZIPPYUSEI"); + if (p != NULL) { + appData.zippyUseI = atoi(p); + } + + /* How does Zippy handle bughouse partnering? */ + /* 0=say we can't play, 1=manual partnering, 2=auto partnering */ + p = getenv("ZIPPYBUGHOUSE"); + if (p != NULL) { + appData.zippyBughouse = atoi(p); + } + + /* Does Zippy abort games with Crafty? */ + /* Defaults to 0=false */ + p = getenv("ZIPPYNOPLAYCRAFTY"); + if (p != NULL) { + appData.zippyNoplayCrafty = atoi(p); + } + + /* What ICS command does Zippy send at game end? Default: "gameend". */ + p = getenv("ZIPPYGAMEEND"); + if (p != NULL) { + appData.zippyGameEnd = p; + } + + /* What ICS command does Zippy send at game start? Default: none. */ + p = getenv("ZIPPYGAMESTART"); + if (p != NULL) { + appData.zippyGameStart = p; + } + + /* Should Zippy accept adjourns? */ + /* Defaults to 0=false */ + p = getenv("ZIPPYADJOURN"); + if (p != NULL) { + appData.zippyAdjourn = atoi(p); + } + + /* Should Zippy accept aborts? */ + /* Defaults to 0=false */ + p = getenv("ZIPPYABORT"); + if (p != NULL) { + appData.zippyAbort = atoi(p); + } + + /* Should Zippy play chess variants (besides bughouse)? */ + p = getenv("ZIPPYVARIANTS"); + if (p != NULL) { + appData.zippyVariants = p; + } + strcpy(first.variants, appData.zippyVariants); + + srandom(time(NULL)); +} + +/* + * Routines to implement Zippy talking + */ + + +char *swifties[] = { + "i acclaims:", "i admonishes:", "i advertises:", "i advises:", + "i advocates:", "i affirms:", "i alleges:", "i anathematizes:", + "i animadverts:", "i announces:", "i apostrophizes:", + "i appeals:", "i applauds:", "i approves:", "i argues:", + "i articulates:", "i asserts:", "i asseverates:", "i attests:", + "i avers:", "i avows:", "i baas:", "i babbles:", "i banters:", + "i barks:", "i bawls:", "i bays:", "i begs:", "i belches:", + "i bellows:", "i belts out:", "i berates:", "i beshrews:", + "i blabbers:", "i blabs:", "i blares:", "i blasphemes:", + "i blasts:", "i blathers:", "i bleats:", "i blithers:", + "i blubbers:", "i blurts out:", "i blusters:", "i boasts:", + "i brags:", "i brays:", "i broadcasts:", "i burbles:", + "i buzzes:", "i cachinnates:", "i cackles:", "i caterwauls:", + "i calumniates:", "i caws:", "i censures:", "i chants:", + "i chatters:", "i cheeps:", "i cheers:", "i chides:", "i chins:", + "i chirps:", "i chortles:", "i chuckles:", "i claims:", + "i clamors:", "i clucks:", "i commands:", "i commends:", + "i comments:", "i commiserates:", "i communicates:", + "i complains:", "i concludes:", "i confabulates:", "i confesses:", + "i coos:", "i coughs:", "i counsels:", "i cries:", "i croaks:", + "i crows:", "i curses:", "i daydreams:", "i debates:", + "i declaims:", "i declares:", "i delivers:", "i denounces:", + "i deposes:", "i directs:", "i discloses:", "i disparages:", + "i discourses:", "i divulges:", "i documents:", "i drawls:", + "i dreams:", "i drivels:", "i drones:", "i effuses:", + /*"i ejaculates:",*/ "i elucidates:", "i emotes:", "i endorses:", + "i enthuses:", "i entreats:", "i enunciates:", "i eulogizes:", + "i exclaims:", "i execrates:", "i exhorts:", "i expatiates:", + "i explains:", "i explicates:", "i explodes:", "i exposes:", + "i exposits:", "i expounds:", "i expresses:", "i extols:", + "i exults:", "i fantasizes:", "i fibs:", "i filibusters:", + "i flatters:", "i flutes:", "i fools:", "i free-associates:", + "i fulminates:", "i gabbles:", "i gabs:", "i gasps:", + "i giggles:", "i gossips:", "i gripes:", "i groans:", "i growls:", + "i grunts:", "i guesses:", "i guffaws:", "i gushes:", "i hails:", + "i hallucinates:", "i harangues:", "i harmonizes:", "i hectors:", + "i hints:", "i hisses:", "i hollers:", "i honks:", "i hoots:", + "i hosannas:", "i howls:", "i hums:", "i hypothecates:", + "i hypothesizes:", "i imagines:", "i implies:", "i implores:", + "i imprecates:", "i indicates:", "i infers:", + "i informs everyone:", "i instructs:", "i interjects:", + "i interposes:", "i intimates:", "i intones:", "i introspects:", + "i inveighs:", "i jabbers:", "i japes:", "i jests:", "i jibes:", + "i jives:", "i jokes:", "i joshes:", "i keens:", "i laments:", + "i lauds:", "i laughs:", "i lectures:", "i lies:", "i lilts:", + "i lisps:", "i maintains:", "i maledicts:", "i maunders:", + "i meows:", "i mewls:", "i mimes:", "i minces:", "i moans:", + "i moos:", "i mourns:", "i mouths:", "i mumbles:", "i murmurs:", + "i muses:", "i mutters:", "i nags:", "i natters:", "i neighs:", + "i notes:", "i nuncupates:", "i objurgates:", "i observes:", + "i offers:", "i oinks:", "i opines:", "i orates:", "i orders:", + "i panegyrizes:", "i pantomimes:", "i pants:", "i peals:", + "i peeps:", "i perorates:", "i persuades:", "i petitions:", + "i phonates:", "i pipes up:", "i pitches:", "i pleads:", + "i points out:", "i pontificates:", "i postulates:", "i praises:", + "i prates:", "i prattles:", "i preaches:", "i prescribes:", + "i prevaricates:", "i proclaims:", "i projects:", "i pronounces:", + "i proposes:", "i proscribes:", "i quacks:", "i queries:", + "i questions:", "i quips:", "i quotes:", "i rages:", "i rambles:", + "i rants:", "i raps:", "i rasps:", "i rattles:", "i raves:", + "i reacts:", "i recites:", "i recommends:", "i records:", + "i reiterates:", "i rejoins:", "i releases:", "i remarks:", + "i reminisces:", "i remonstrates:", "i repeats:", "i replies:", + "i reports:", "i reprimands:", "i reproaches:", "i reproves:", + "i resounds:", "i responds:", "i retorts:", "i reveals:", + "i reviles:", "i roars:", "i rumbles:", "i sanctions:", + "i satirizes:", "i sauces:", "i scolds:", "i screams:", + "i screeches:", "i semaphores:", "i sends:", "i sermonizes:", + "i shrieks:", "i sibilates:", "i sighs:", "i signals:", + "i signifies:", "i signs:", "i sings:", "i slurs:", "i snaps:", + "i snarls:", "i sneezes:", "i snickers:", "i sniggers:", + "i snivels:", "i snores:", "i snorts:", "i sobs:", + "i soliloquizes:", "i sounds off:", "i sounds out:", "i speaks:", + "i spews:", "i spits out:", "i splutters:", "i spoofs:", + "i spouts:", "i sputters:", "i squalls:", "i squawks:", + "i squeaks:", "i squeals:", "i stammers:", "i states:", + "i stresses:", "i stutters:", "i submits:", "i suggests:", + "i summarizes:", "i sums up:", "i swears:", "i talks:", + "i tattles:", "i teases:", "i telegraphs:", "i testifies:", + "i threatens:", "i thunders:", "i titters:", "i tongue-lashes:", + "i toots:", "i transcribes:", "i transmits:", "i trills:", + "i trumpets:", "i twaddles:", "i tweets:", "i twitters:", + "i types:", "i upbraids:", "i urges:", "i utters:", "i ventures:", + "i vibrates:", "i vilifies:", "i vituperates:", "i vocalizes:", + "i vociferates:", "i voices:", "i waffles:", "i wails:", + "i warbles:", "i warns:", "i weeps:", "i wheezes:", "i whimpers:", + "i whines:", "i whinnies:", "i whistles:", "i wisecracks:", + "i witnesses:", "i woofs:", "i writes:", "i yammers:", "i yawps:", + "i yells:", "i yelps:", "i yodels:", "i yowls:", "i zings:", +}; + +#define MAX_SPEECH 250 + +void Speak(how, whom) + char *how, *whom; +{ + static FILE *zipfile = NULL; + static struct stat zipstat; + char zipbuf[MAX_SPEECH + 1]; + static time_t lastShout = 0; + time_t now; + char *p; + int c, speechlen; + Boolean done; + + if (strcmp(how, "shout") == 0) { + now = time((time_t *) NULL); + if (now - lastShout < 1*60) return; + lastShout = now; + if (appData.zippyUseI) { + how = swifties[random() % (sizeof(swifties)/sizeof(char *))]; + } + } + + if (zipfile == NULL) { + zipfile = fopen(appData.zippyLines, "r"); + if (zipfile == NULL) { + DisplayFatalError("Can't open Zippy lines file", errno, 1); + return; + } + fstat(fileno(zipfile), &zipstat); + } + + for (;;) { + fseek(zipfile, random() % zipstat.st_size, 0); + do { + c = getc(zipfile); + } while (c != NULLCHAR && c != '^' && c != EOF); + if (c == EOF) continue; + while ((c = getc(zipfile)) == '\n') ; + if (c == EOF) continue; + break; + } + done = FALSE; + + /* Don't use ics_prefix; we need to let FICS expand the alias i -> it, + but use the real command "i" on ICC */ + strcpy(zipbuf, how); + strcat(zipbuf, " "); + if (whom != NULL) { + strcat(zipbuf, whom); + strcat(zipbuf, " "); + } + speechlen = strlen(zipbuf); + p = zipbuf + speechlen; + + while (++speechlen < MAX_SPEECH) { + if (c == NULLCHAR || c == '^') { + *p++ = '\n'; + *p = '\0'; + SendToICS(zipbuf); + return; + } else if (c == '\n') { + *p++ = ' '; + do { + c = getc(zipfile); + } while (c == ' '); + } else if (c == EOF) { + break; + } else { + *p++ = c; + c = getc(zipfile); + } + } + /* Tried to say something too long, or junk at the end of the + file. Try something else. */ + Speak(how, whom); /* tail recursion */ +} + +int ZippyCalled(str) + char *str; +{ + return ics_handle[0] != NULLCHAR && StrCaseStr(str, ics_handle) != NULL; +} + +static char opp_name[128][32]; +static int num_opps=0; + +int ZippyControl(buf, i) + char *buf; + int *i; +{ + char *player, *p; + char reply[MSG_SIZ]; + +#if TRIVIA +#include "trivia.c" +#endif + + /* Possibly reject Crafty as opponent */ + if (appData.zippyPlay && appData.zippyNoplayCrafty && forwardMostMove < 4 + && looking_at(buf, i, "* kibitzes: Hello from Crafty")) { + player = StripHighlightAndTitle(star_match[0]); + if ((gameMode == IcsPlayingWhite && + StrCaseCmp(player, gameInfo.black) == 0) || + (gameMode == IcsPlayingBlack && + StrCaseCmp(player, gameInfo.white) == 0)) { + + sprintf(reply, "%ssay This computer does not play Crafty clones\n%sabort\n%s+noplay %s\n", + ics_prefix, ics_prefix, ics_prefix, player); + SendToICS(reply); + } + return TRUE; + } + + /* If this is a computer, save the name. Then later, once the */ + /* game is really started, we will send the "computer" notice to */ + /* the engine. */ + if (appData.zippyPlay && + looking_at(buf, i, "* is in the computer list")) { + int i; + for (i=0;i= num_opps) strcpy(opp_name[num_opps++],star_match[0]); + } + if (appData.zippyPlay && looking_at(buf, i, "* * is a computer *")) { + int i; + for (i=0;i= num_opps) strcpy(opp_name[num_opps++],star_match[1]); + } + + /* Tells and says */ + if (appData.zippyPlay && + (looking_at(buf, i, "* offers to be your bughouse partner") || + looking_at(buf, i, "* tells you: [automatic message] I chose you"))) { + player = StripHighlightAndTitle(star_match[0]); + if (appData.zippyBughouse > 1 && first.initDone) { + sprintf(reply, "%spartner %s\n", ics_prefix, player); + SendToICS(reply); + if (strcmp(zippyPartner, player) != 0) { + strcpy(zippyPartner, player); + SendToProgram(reply + strlen(ics_prefix), &first); + } + } else if (appData.zippyBughouse > 0) { + sprintf(reply, "%sdecline %s\n", ics_prefix, player); + SendToICS(reply); + } else { + sprintf(reply, "%stell %s This computer cannot play bughouse\n", + ics_prefix, player); + SendToICS(reply); + } + return TRUE; + } + + if (appData.zippyPlay && appData.zippyBughouse && first.initDone && + looking_at(buf, i, "* agrees to be your partner")) { + player = StripHighlightAndTitle(star_match[0]); + sprintf(reply, "partner %s\n", player); + if (strcmp(zippyPartner, player) != 0) { + strcpy(zippyPartner, player); + SendToProgram(reply, &first); + } + return TRUE; + } + + if (appData.zippyPlay && appData.zippyBughouse && first.initDone && + (looking_at(buf, i, "are no longer *'s partner") || + looking_at(buf, i, + "* tells you: [automatic message] I'm no longer your"))) { + player = StripHighlightAndTitle(star_match[0]); + if (strcmp(zippyPartner, player) == 0) { + zippyPartner[0] = NULLCHAR; + SendToProgram("partner\n", &first); + } + return TRUE; + } + + if (appData.zippyPlay && appData.zippyBughouse && first.initDone && + (looking_at(buf, i, "no longer have a bughouse partner") || + looking_at(buf, i, "partner has disconnected") || + looking_at(buf, i, "partner has just chosen a new partner"))) { + zippyPartner[0] = NULLCHAR; + SendToProgram("partner\n", &first); + return TRUE; + } + + if (appData.zippyPlay && appData.zippyBughouse && first.initDone && + looking_at(buf, i, "* (your partner) tells you: *")) { + /* This pattern works on FICS but not ICC */ + player = StripHighlightAndTitle(star_match[0]); + if (strcmp(zippyPartner, player) != 0) { + strcpy(zippyPartner, player); + sprintf(reply, "partner %s\n", player); + SendToProgram(reply, &first); + } + sprintf(reply, "ptell %s\n", star_match[1]); + SendToProgram(reply, &first); + return TRUE; + } + + if (looking_at(buf, i, "* tells you: *") || + looking_at(buf, i, "* says: *")) { + player = StripHighlightAndTitle(star_match[0]); + if (appData.zippyPassword[0] != NULLCHAR && + strncmp(star_match[1], appData.zippyPassword, + strlen(appData.zippyPassword)) == 0) { + p = star_match[1] + strlen(appData.zippyPassword); + while (*p == ' ') p++; + SendToICS(p); + SendToICS("\n"); + } else if (appData.zippyPassword2[0] != NULLCHAR && first.initDone && + strncmp(star_match[1], appData.zippyPassword2, + strlen(appData.zippyPassword2)) == 0) { + p = star_match[1] + strlen(appData.zippyPassword2); + while (*p == ' ') p++; + SendToProgram(p, &first); + SendToProgram("\n", &first); + } else if (appData.zippyWrongPassword[0] != NULLCHAR && + strncmp(star_match[1], appData.zippyWrongPassword, + strlen(appData.zippyWrongPassword)) == 0) { + p = star_match[1] + strlen(appData.zippyWrongPassword); + while (*p == ' ') p++; + sprintf(reply, "wrong %s\n", player); + SendToICS(reply); + } else if (appData.zippyBughouse && first.initDone && + strcmp(player, zippyPartner) == 0) { + SendToProgram("ptell ", &first); + SendToProgram(star_match[1], &first); + SendToProgram("\n", &first); + } else if (strncmp(star_match[1], HI, 6) == 0) { + extern char* programVersion; + sprintf(reply, "%stell %s %s\n", + ics_prefix, player, programVersion); + SendToICS(reply); + } else if (strncmp(star_match[1], "W0W!! ", 6) == 0) { + extern char* programVersion; + sprintf(reply, "%stell %s %s\n", ics_prefix, + player, programVersion); + SendToICS(reply); + } else if (appData.zippyTalk && ((random() % 10) < 9)) { + if (strcmp(player, ics_handle) != 0) { + Speak("tell", player); + } + } + return TRUE; + } + + if (looking_at(buf, i, "* spoofs you:")) { + player = StripHighlightAndTitle(star_match[0]); + sprintf(reply, "spoofedby %s\n", player); + SendToICS(reply); + } + return FALSE; +} + +int ZippyConverse(buf, i) + char *buf; + int *i; +{ + static char lastgreet[MSG_SIZ]; + char reply[MSG_SIZ]; + int oldi; + + /* Shouts and emotes */ + if (looking_at(buf, i, "--> * *") || + looking_at(buf, i, "* shouts: *")) { + if (appData.zippyTalk) { + char *player = StripHighlightAndTitle(star_match[0]); + if (strcmp(player, ics_handle) == 0) { + return TRUE; + } else if (appData.zippyPinhead[0] != NULLCHAR && + StrCaseStr(star_match[1], appData.zippyPinhead) != NULL) { + sprintf(reply, "insult %s\n", player); + SendToICS(reply); + } else if (ZippyCalled(star_match[1])) { + Speak("shout", NULL); + } + } + return TRUE; + } + + if (looking_at(buf, i, "* kibitzes: *")) { + if (appData.zippyTalk && (random() % 10) < 9) { + char *player = StripHighlightAndTitle(star_match[0]); + if (strcmp(player, ics_handle) != 0) { + Speak("kibitz", NULL); + } + } + return TRUE; + } + + if (looking_at(buf, i, "* whispers: *")) { + if (appData.zippyTalk && (random() % 10) < 9) { + char *player = StripHighlightAndTitle(star_match[0]); + if (strcmp(player, ics_handle) != 0) { + Speak("whisper", NULL); + } + } + return TRUE; + } + + /* Messages */ + if ((looking_at(buf, i, ". * (*:*): *") && isdigit(star_match[1][0])) || + looking_at(buf, i, ". * at *:*: *")) { + if (appData.zippyTalk) { + FILE *f; + char *player = StripHighlightAndTitle(star_match[0]); + + if (strcmp(player, ics_handle) != 0) { + if ((random() % 10) < 9) + Speak("message", player); + f = fopen("zippy.messagelog", "a"); + fprintf(f, "%s (%s:%s): %s\n", player, + star_match[1], star_match[2], star_match[3]); + fclose(f); + } + } + return TRUE; + } + + /* Channel tells */ + oldi = *i; + if (looking_at(buf, i, "*(*: *")) { + char *player; + char *channel; + if (star_match[0][0] == NULLCHAR || + strchr(star_match[0], ' ') || + strchr(star_match[1], ' ')) { + /* Oops, did not want to match this; probably a message */ + *i = oldi; + return FALSE; + } + if (appData.zippyTalk) { + player = StripHighlightAndTitle(star_match[0]); + channel = strrchr(star_match[1], '('); + if (channel == NULL) { + channel = star_match[1]; + } else { + channel++; + } + channel[strlen(channel)-1] = NULLCHAR; +#if 0 + /* Always tell to the channel (probability 90%) */ + if (strcmp(player, ics_handle) != 0 && (random() % 10) < 9) { + Speak("tell", channel); + } +#else + /* Tell to the channel only if someone mentions our name */ + if (ZippyCalled(star_match[2])) { + Speak("tell", channel); + } +#endif + } + return TRUE; + } + + if (!appData.zippyTalk) return FALSE; + + if ((looking_at(buf, i, "You have * message") && + atoi(star_match[0]) != 0) || + looking_at(buf, i, "* has left a message for you") || + looking_at(buf, i, "* just sent you a message")) { + sprintf(reply, "%smessages\n%sclearmessages *\n", + ics_prefix, ics_prefix); + SendToICS(reply); + return TRUE; + } + + if (looking_at(buf, i, "Notification: * has arrived")) { + if ((random() % 3) == 0) { + char *player = StripHighlightAndTitle(star_match[0]); + strcpy(lastgreet, player); + sprintf(reply, "greet %s\n", player); + SendToICS(reply); + Speak("tell", player); + } + } + + if (looking_at(buf, i, "Notification: * has departed")) { + if ((random() % 3) == 0) { + char *player = StripHighlightAndTitle(star_match[0]); + sprintf(reply, "farewell %s\n", player); + SendToICS(reply); + } + } + + if (looking_at(buf, i, "Not sent -- * is censoring you")) { + char *player = StripHighlightAndTitle(star_match[0]); + if (strcmp(player, lastgreet) == 0) { + sprintf(reply, "%s-notify %s\n", ics_prefix, player); + SendToICS(reply); + } + } + + if (looking_at(buf, i, "command is currently turned off")) { + appData.zippyUseI = 0; + } + + return FALSE; +} + +void ZippyGameStart(white, black) + char *white, *black; +{ + if (!first.initDone) { + /* Game is starting prematurely. We can't deal with this */ + SendToICS(ics_prefix); + SendToICS("abort\n"); + SendToICS(ics_prefix); + SendToICS("say Sorry, the chess program is not initialized yet.\n"); + return; + } + + if (appData.zippyGameStart[0] != NULLCHAR) { + SendToICS(appData.zippyGameStart); + SendToICS("\n"); + } +} + +void ZippyGameEnd(result, resultDetails) + ChessMove result; + char *resultDetails; +{ + if (appData.zippyAcceptOnly[0] == NULLCHAR && + appData.zippyGameEnd[0] != NULLCHAR) { + SendToICS(appData.zippyGameEnd); + SendToICS("\n"); + } + zippyLastGameEnd = time(0); +} + +/* + * Routines to implement Zippy playing chess + */ + +void ZippyHandleChallenge(srated, swild, sbase, sincrement, opponent) + char *srated, *swild, *sbase, *sincrement, *opponent; +{ + char buf[MSG_SIZ]; + int base, increment; + char rated; + VariantClass variant; + char *varname; + + rated = srated[0]; + variant = StringToVariant(swild); + varname = VariantName(variant); + base = atoi(sbase); + increment = atoi(sincrement); + + /* If desired, you can insert more code here to decline matches + based on rated, variant, base, and increment, but it is + easier to use the ICS formula feature instead. */ + + if (variant == VariantLoadable) { + sprintf(buf, + "%stell %s This computer can't play wild type %s\n%sdecline %s\n", + ics_prefix, opponent, swild, ics_prefix, opponent); + SendToICS(buf); + return; + } + if (StrStr(appData.zippyVariants, varname) == NULL) { + sprintf(buf, + "%stell %s This computer can't play %s [%s], only %s\n%sdecline %s\n", + ics_prefix, opponent, swild, varname, appData.zippyVariants, + ics_prefix, opponent); + SendToICS(buf); + return; + } + + /* Are we blocking match requests from all but one person? */ + if (appData.zippyAcceptOnly[0] != NULLCHAR && + StrCaseCmp(opponent, appData.zippyAcceptOnly)) { + /* Yes, and this isn't him. Ignore challenge. */ + return; + } + + /* Too many consecutive games with same opponent? If so, make him + wait until someone else has played or a timeout has elapsed. */ + if (appData.zippyMaxGames && + strcmp(opponent, zippyLastOpp) == 0 && + zippyConsecGames >= appData.zippyMaxGames && + difftime(time(0), zippyLastGameEnd) < appData.zippyReplayTimeout) { + sprintf(buf, "%stell %s Sorry, you have just played %d consecutive games against %s. To give others a chance, please wait %d seconds or until someone else has played.\n%sdecline %s\n", + ics_prefix, opponent, zippyConsecGames, ics_handle, + appData.zippyReplayTimeout, ics_prefix, opponent); + SendToICS(buf); + return; + } + + /* Engine not yet initialized or still thinking about last game? */ + if (!first.initDone || first.lastPing != first.lastPong) { + sprintf(buf, "%stell %s I'm not quite ready for a new game yet; try again soon.\n%sdecline %s\n", + ics_prefix, opponent, ics_prefix, opponent); + SendToICS(buf); + return; + } + + sprintf(buf, "%saccept %s\n", ics_prefix, opponent); + SendToICS(buf); + if (appData.zippyTalk) { + Speak("tell", opponent); + } +} + + +/* Accept matches */ +int ZippyMatch(buf, i) + char *buf; + int *i; +{ + if (looking_at(buf, i, "* * match * * requested with * (*)")) { + + ZippyHandleChallenge(star_match[0], star_match[1], + star_match[2], star_match[3], + StripHighlightAndTitle(star_match[4])); + return TRUE; + } + + /* Old FICS 0-increment form */ + if (looking_at(buf, i, "* * match * requested with * (*)")) { + + ZippyHandleChallenge(star_match[0], star_match[1], + star_match[2], "0", + StripHighlightAndTitle(star_match[3])); + return TRUE; + } + + if (looking_at(buf, i, + "* has made an alternate proposal of * * match * *.")) { + + ZippyHandleChallenge(star_match[1], star_match[2], + star_match[3], star_match[4], + StripHighlightAndTitle(star_match[0])); + return TRUE; + } + + /* FICS wild/nonstandard forms */ + if (looking_at(buf, i, "Challenge: * (*) *(*) * * * * Loaded from *")) { + /* note: star_match[2] can include "[white] " or "[black] " + before our own name. */ + ZippyHandleChallenge(star_match[4], star_match[8], + star_match[6], star_match[7], + StripHighlightAndTitle(star_match[0])); + return TRUE; + } + + if (looking_at(buf, i, + "Challenge: * (*) *(*) * * * * : * * Loaded from *")) { + /* note: star_match[2] can include "[white] " or "[black] " + before our own name. */ + ZippyHandleChallenge(star_match[4], star_match[10], + star_match[8], star_match[9], + StripHighlightAndTitle(star_match[0])); + return TRUE; + } + + /* Regular forms */ + if (looking_at(buf, i, "Challenge: * (*) *(*) * * * * : * *") | + looking_at(buf, i, "Challenge: * (*) *(*) * * * * * *")) { + /* note: star_match[2] can include "[white] " or "[black] " + before our own name. */ + ZippyHandleChallenge(star_match[4], star_match[5], + star_match[8], star_match[9], + StripHighlightAndTitle(star_match[0])); + return TRUE; + } + + if (looking_at(buf, i, "Challenge: * (*) *(*) * * * *")) { + /* note: star_match[2] can include "[white] " or "[black] " + before our own name. */ + ZippyHandleChallenge(star_match[4], star_match[5], + star_match[6], star_match[7], + StripHighlightAndTitle(star_match[0])); + return TRUE; + } + + if (looking_at(buf, i, "offers you a draw")) { + if (first.sendDrawOffers && first.initDone) { + SendToProgram("draw\n", &first); + } + return TRUE; + } + + if (looking_at(buf, i, "requests that the game be aborted") || + looking_at(buf, i, "would like to abort")) { + if (appData.zippyAbort || + (gameMode == IcsPlayingWhite && whiteTimeRemaining < 0) || + (gameMode == IcsPlayingBlack && blackTimeRemaining < 0)) { + SendToICS(ics_prefix); + SendToICS("abort\n"); + } else { + SendToICS(ics_prefix); + if (appData.zippyTalk) + SendToICS("say Whoa no! I am having FUN!!\n"); + else + SendToICS("say Sorry, this computer doesn't accept aborts.\n"); + } + return TRUE; + } + + if (looking_at(buf, i, "requests adjournment") || + looking_at(buf, i, "would like to adjourn")) { + if (appData.zippyAdjourn) { + SendToICS(ics_prefix); + SendToICS("adjourn\n"); + } else { + SendToICS(ics_prefix); + if (appData.zippyTalk) + SendToICS("say Whoa no! I am having FUN playing NOW!!\n"); + else + SendToICS("say Sorry, this computer doesn't accept adjourns.\n"); + } + return TRUE; + } + + return FALSE; +} + +/* Initialize chess program with data from the first board + * of a new or resumed game. + */ +void ZippyFirstBoard(moveNum, basetime, increment) + int moveNum, basetime, increment; +{ + char buf[MSG_SIZ]; + int w, b; + char *opp = (gameMode==IcsPlayingWhite ? gameInfo.black : gameInfo.white); + Boolean sentPos = FALSE; + + if (!first.initDone) { + /* Game is starting prematurely. We can't deal with this */ + SendToICS(ics_prefix); + SendToICS("abort\n"); + SendToICS(ics_prefix); + SendToICS("say Sorry, the chess program is not initialized yet.\n"); + return; + } + + /* Send the variant command if needed */ + if (gameInfo.variant != VariantNormal) { + sprintf(buf, "variant %s\n", VariantName(gameInfo.variant)); + SendToProgram(buf, &first); + } + + if ((startedFromSetupPosition && moveNum == 0) || + (!appData.getMoveList && moveNum > 0)) { + SendToProgram("force\n", &first); + SendBoard(&first, moveNum); + sentPos = TRUE; + } + + sprintf(buf, "level 0 %d %d\n", basetime, increment); + SendToProgram(buf, &first); + + /* Count consecutive games from one opponent */ + if (strcmp(opp, zippyLastOpp) == 0) { + zippyConsecGames++; + } else { + zippyConsecGames = 1; + strcpy(zippyLastOpp, opp); + } + + /* Send the "computer" command if the opponent is in the list + we've been gathering. */ + for (w=0; w= 0) ? gameInfo.whiteRating : 0; + b = (gameInfo.blackRating >= 0) ? gameInfo.blackRating : 0; + + firstMove = FALSE; + if (gameMode == IcsPlayingWhite) { + if (first.sendName) { + sprintf(buf, "name %s\n", gameInfo.black); + SendToProgram(buf, &first); + } + strcpy(ics_handle, gameInfo.white); + sprintf(buf, "rating %d %d\n", w, b); + SendToProgram(buf, &first); + if (sentPos) { + /* Position sent above, engine is in force mode */ + if (WhiteOnMove(moveNum)) { + /* Engine is on move now */ + if (first.sendTime) { + if (first.useColors) { + SendToProgram("black\n", &first); /*gnu kludge*/ + SendTimeRemaining(&first, TRUE); + SendToProgram("white\n", &first); + } else { + SendTimeRemaining(&first, TRUE); + } + } + SendToProgram("go\n", &first); + } else { + /* Engine's opponent is on move now */ + if (first.usePlayother) { + if (first.sendTime) { + SendTimeRemaining(&first, TRUE); + } + SendToProgram("playother\n", &first); + } else { + /* Need to send a "go" after opponent moves */ + firstMove = TRUE; + } + } + } else { + /* Position not sent above, move list might be sent later */ + if (moveNum == 0) { + /* No move list coming; at start of game */ + if (first.sendTime) { + if (first.useColors) { + SendToProgram("black\n", &first); /*gnu kludge*/ + SendTimeRemaining(&first, TRUE); + SendToProgram("white\n", &first); + } else { + SendTimeRemaining(&first, TRUE); + } + } + SendToProgram("go\n", &first); + } + } + } else if (gameMode == IcsPlayingBlack) { + if (first.sendName) { + sprintf(buf, "name %s\n", gameInfo.white); + SendToProgram(buf, &first); + } + strcpy(ics_handle, gameInfo.black); + sprintf(buf, "rating %d %d\n", b, w); + SendToProgram(buf, &first); + if (sentPos) { + /* Position sent above, engine is in force mode */ + if (!WhiteOnMove(moveNum)) { + /* Engine is on move now */ + if (first.sendTime) { + if (first.useColors) { + SendToProgram("white\n", &first); /*gnu kludge*/ + SendTimeRemaining(&first, FALSE); + SendToProgram("black\n", &first); + } else { + SendTimeRemaining(&first, FALSE); + } + } + SendToProgram("go\n", &first); + } else { + /* Engine's opponent is on move now */ + if (first.usePlayother) { + if (first.sendTime) { + SendTimeRemaining(&first, FALSE); + } + SendToProgram("playother\n", &first); + } else { + /* Need to send a "go" after opponent moves */ + firstMove = TRUE; + } + } + } else { + /* Position not sent above, move list might be sent later */ + /* Nothing needs to be done here */ + } + } +} + + +void +ZippyHoldings(white_holding, black_holding, new_piece) + char *white_holding, *black_holding, *new_piece; +{ + char buf[MSG_SIZ]; + if (gameMode != IcsPlayingBlack && gameMode != IcsPlayingWhite) return; + sprintf(buf, "holding [%s] [%s] %s\n", + white_holding, black_holding, new_piece); + SendToProgram(buf, &first); +} diff --git a/zippy.h b/zippy.h new file mode 100644 index 0000000..1a80b67 --- /dev/null +++ b/zippy.h @@ -0,0 +1,57 @@ +/* + * zippy.h -- Interface to zippy.c module in XBoard + * $Id$ + * + * Copyright 1991 by Digital Equipment Corporation, Maynard, Massachusetts. + * Enhancements Copyright 1992-95 Free Software Foundation, Inc. + * + * The following terms apply to Digital Equipment Corporation's copyright + * interest in XBoard: + * ------------------------------------------------------------------------ + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appear in all copies and that + * both that copyright notice and this permission notice appear in + * supporting documentation, and that the name of Digital not be + * used in advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * + * DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING + * ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL + * DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR + * ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS + * SOFTWARE. + * ------------------------------------------------------------------------ + * + * The following terms apply to the enhanced version of XBoard distributed + * by the Free Software Foundation: + * ------------------------------------------------------------------------ + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * ------------------------------------------------------------------------ + */ + +void ZippyInit P((void)); +int ZippyControl P((char *buf, int *i)); +int ZippyConverse P((char *buf, int *i)); +void ZippyGameStart P((char *white, char *black)); +int ZippyMatch P((char *buf, int *i)); +void ZippyFirstBoard P((int moveNum, int basetime, int increment)); +void ZippyGameEnd P((ChessMove result, char *resultDetails)); +void ZippyHoldings P((char *white_holding, char *black_holding, + char *new_piece)); diff --git a/zippy.lines b/zippy.lines new file mode 100644 index 0000000..247b127 --- /dev/null +++ b/zippy.lines @@ -0,0 +1,33 @@ +This is a sample zippy.lines file for xboard/WinBoard 4.0.4 or later. +Text before the first caret, like this text, is a comment. +^ +Here is the first saying. Sayings are separated by caret characters, +like the character that appears on the next line. +^ +Here is the second saying. +^ +Here is saying #3. Note you don't need newlines before the caret characters.^ +Here is saying #4 -- note that it's okay for a saying +to extend across more than one line. The line breaks are ignored. +^Saying #5: You don't need newlines after the caret characters either, +but don't put two carets in a row. +^ +Our sixth bit of wisdom is that you can use ASCII NUL characters +(character code \000) instead of carets, but carets are easier to deal with +in most text editors. In version 4.0.3 and earlier, carets did not work; +only NULs were allowed. +^ +The seventh thing you should remember is that any saying more than 250 +characters long will not be used. Therefore, because this saying is +more than 250 characters long, it will never be used. This is an +extra sentence to make the saying more than 250 characters long so +that the previous sentence will be true. +^ +The eighth item to know is that when you are testing, you had better have +several valid sayings in your file; for various reasons, having too few +sayings can cause Zippy to get into an endless loop, or to be very slow. +^ +As the ninth and final saying, let me add that you need a caret +at the end of the file; any junk after the last caret is ignored. +^ + -- 1.7.0.4