home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume11 / reve / patch3a < prev    next >
Internet Message Format  |  1991-01-03  |  25KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v12i001:  reve - an othello game, Patch3a
  5. Message-ID: <6759@tekred.CNA.TEK.COM>
  6. Date: 21 Dec 90 20:47:13 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 616
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Rich Burridge <rburridge@sun.COM>
  12. Posting-number: Volume 12, Issue 1
  13. Archive-name: reve/Patch3a
  14. Patch-To: reve: Volume 11, Issue 52-58
  15. Environment: SunView, XView, X11R4, termcap
  16.  
  17.     [Also previously posted to comp.sources.games.bugs and
  18.     reposted here to get in the official archive.  -br]
  19.  
  20.  
  21. Just a couple of points before the patch:
  22.  
  23.   * Yves Galloty, the author of the computer strategy used in reve will be
  24.     leaving his current job on 20th December, and going to a new job in
  25.     France, which won't be so well connected to the net. We are going to
  26.     get one more patch out before then. After that, any problems related to
  27.     the computer strategy might take a lot longer to get fixed.
  28.  
  29.   * This patch is big. I've tried to test everything I've added, but with a
  30.     patch of this size, I'm sure I've screwed something up. If it's not
  31.     listed in the TODO file, could you please let me know, no matter how
  32.     trivial you might think the problem is.
  33.  
  34.  
  35. /*
  36.  *  Official patch #3 for Reve v1.1.
  37.  *
  38.  *  Copyright (C) 1990 - Rich Burridge & Yves Gallot.
  39.  *  All rights reserved.
  40.  *
  41.  *  Permission is granted to copy this patch, for redistribution
  42.  *  in patch form only, provided the news headers in "substantially
  43.  *  unaltered format" are retained, the introductory messages are not
  44.  *  removed, and no monies are exchanged.
  45.  *
  46.  *  Permission is also granted to copy this patch, without the news
  47.  *  headers, for the purposes of patching the Reve source and making
  48.  *  an executable copy by means of compilation, provided that such
  49.  *  copy will not be used for the purposes of competition in any othello
  50.  *  tournaments, without prior permission from the authors.
  51.  */
  52.  
  53. CONTENTS:
  54.  
  55. 1. What is reve?
  56. 2/ Changes made in this patch.
  57. 3/ How to install this patch.
  58. 4/ How to get previous patches.
  59.  
  60. ----------------
  61.  
  62. 1/ What is reve?
  63.  
  64. Reve is an othello game. It works under SunView, XView, X11 (Xlib) and on
  65. dumb tty terminals.
  66.  
  67. Reve has nine levels of difficulty. Levels 1-3 should be useful to beginners,
  68. levels 4-6 would satisfy amateurs, and the higher levels will give experts a
  69. good game. Level 8 (30 minutes) is the tournament level.
  70.  
  71. ----------------
  72.  
  73. 2/ Changes made in this patch.
  74.  
  75.        * Added a description of the -bestmove command line option to the
  76.          manual pages.
  77.  
  78.        * If you were using the -last option, and the window was iconified,
  79.          and there was only the initial four stones on the board, then
  80.          opening Reve, would incorrectly show the "last" square.
  81.  
  82.        * If you were using the -number option, and the window was iconified,
  83.          then when Reve was opened again, the number was not being displayed
  84.          on the last stone.
  85.  
  86.        * The display of a single digit on a stone (with the -number option)
  87.          was not centered correctly.
  88.  
  89.        * From Jonathan I. Kamens <jik@pit-manager.MIT.EDU>
  90.          Problems with the Imakefile. The line that says
  91.          "LIBDIR=$(USRLIBDIR)/reve" should be deleted, and both of the rules
  92.          that say "$(LIBDIR)$(PATHSEP)reve" should actually say
  93.          "$(USRLIBDIR)$(PATHSEP)reve".
  94.  
  95.          Also, the EDGENAMEFILE should be changed to
  96.          $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(ETABLE)
  97.  
  98.        * Added in X resources support for the X11(Xlib) and XView versions.
  99.          Currently, the resources read are:
  100.   
  101.            reve.animate:        (boolean) show animation.
  102.            reve.bestmove:       (boolean) show computer best move so far.
  103.            reve.difficulty:     (integer) computer difficulty level.
  104.            reve.last:           (boolean) show last move (with a square).
  105.            reve.log:            (boolean) write computer info to log file.
  106.            reve.notes:          (boolean) show computer notes.
  107.            reve.number:         (boolean) show last move (number on stone).
  108.            reve.quick:          (boolean) play quick game (don't flip stones).
  109.  
  110.        * From Valerie Haecky <vmh@Eng.Sun.COM>
  111.          Undo'ing is incorrect at the end game if the computer is playing
  112.          black.
  113.  
  114.        *  Need to allow options like -scale through on the command line. This
  115.           can be done by have an init_graphics() routine that gets called
  116.           right at the start, which strips off graphics specific options.
  117.  
  118.        *  The hourglass/watch cursor is turned on, when the computer is
  119.           suggesting a move.
  120.  
  121.        * If the bestmove option is on, and the computer suggested a move,
  122.          the last bestmove square wasn't being removed.
  123.  
  124.        * From Valerie Haecky <vmh@Eng.Sun.COM>
  125.          The show notes now also shows the current maximum depth for the
  126.          computer move.
  127.  
  128.        * From Valerie Haecky <vmh@Eng.Sun.COM>
  129.          Added to the README file, the address where people can get
  130.          information about tournaments, Othello Quarterly, and "Othello
  131.          Brief and Basic'
  132.  
  133.        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  134.          Because the default is now set not to show the last square, and
  135.          notes is initially set off, I think that a status message such as
  136.          'Black has moved on square <c-5>' should be displayed, otherwise
  137.          you've no idea where the computer moved.
  138.  
  139.        * Stones are numbered and the last square shown when a game is
  140.          being loaded, if these settings are on.
  141.  
  142.        * From Valerie Haecky <vmh@Eng.Sun.COM>
  143.          More work on the XView version. The control panel layout has been
  144.          rearranged, and a property window added. The Help button has been
  145.          removed from the control panel. Several options can now be set via
  146.          the property sheet. A new difficulty value has been added; the
  147.          ability to set a maximum computer search depth rather than the
  148.          computer doing a timed move.
  149.  
  150.        * A new XView version has been created. This forks off a separate
  151.          process to do the computer moves. This is to try to get around
  152.          the server hanging problem. This still can happen, but not so
  153.          frequently.
  154.  
  155.          Two new files have been created:
  156.  
  157.          common.c and reve_proc.c.
  158.  
  159.          The Makefile.dist, MANIFEST and FILES files have been updated.
  160.  
  161.        * From: robert@anucsd.anu.oz.au (Robert Cohen)
  162.          It would be nice to have some idea of how far reve was looking ahead.
  163.          So in the notes section for example you could report on the ply used
  164.          to find the solution. If the bestmove option was set it could be shown
  165.          dynamically as new solutions were found.
  166.  
  167.        * For the SunView and X11 versions the Done button has been replaced by
  168.          a Props button. Clicking on this will toggle the display of a property
  169.          window. The property window looks something like:
  170.  
  171.          Computer plays:  White | Black | Neither | Both
  172.          Difficulty:      1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  173.  
  174.          Options: [ ]    Animate Move
  175.                   [ ]    Show Current Best Move
  176.                   [ ]    Show Last Move
  177.                   [ ]    Show Evaluation Info.
  178.                   [ ]    Number Last Move
  179.                   [ ]    Don't Show Flip
  180.  
  181.          This introduce two new type of "panel" item, the toggle item
  182.          (P_TOGGLE) and the choice item (P_CHOICE). The cycle item has been
  183.          removed.
  184.  
  185.          Selecting the Both field on the Computer plays: option, will display
  186.          the message that this option is currently not implemented.
  187.  
  188.          The following changes have occured in the main reve window:
  189.  
  190.          The Black: and White: items are messages. The Difficulty: and
  191.          Show Notes: items will disappear, freeing up a row.
  192.  
  193.          Setting the Computer plays: option, alters the Black: and White:
  194.          options.
  195.  
  196.          The iteminfo structure will have five new fields:
  197.  
  198.            int lx ;              /* X position of the label. */
  199.            int ly ;              /* Y position of the label. */
  200.            char label[60] ;      /* Panel item label. */
  201.            char *options ;       /* Pointer to list of string choices. */
  202.            int nopts ;           /* Number of options in list. */
  203.  
  204.          Only certain fields are used with each type of panel "item". All
  205.          items are initialised in main.c.
  206.  
  207.          Two new files have been added to the images directory:
  208.  
  209.          images/Sch_off.icon
  210.          images/Sch_on.icon
  211.  
  212.          This solves the following problems:
  213.  
  214.        * From: robert@anucsd.anu.oz.au (Robert Cohen)
  215.          It would be nice to be able to change all the program parameters from
  216.          inside the game. For example being able to pull down a menu and turn
  217.          the bestmove option on or off.
  218.  
  219.        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  220.          I, and most of the users here, use a combination of X11R4, twm and
  221.          1024 by 768 colour or mono displays. The new Reve window now exceeds
  222.          the height of the screen minus the height of the twm title bar of the
  223.          window! Hence the bottom of half of row 8 and the a to h labelling
  224.          are no longer visible, even if the top of the twm title bar for the
  225.          Reve window is at the top of the screen!
  226.  
  227.        * From Soren Hein <shein@ferdowsi.berkeley.edu>
  228.          Why double switches for White, Black and Notes? Both halves of the
  229.          switches do the same thing.
  230.  
  231.        * Incorporated a new version of the rev_eval.c evaluation fuction from
  232.          Yves. There is also a complete new edge table to go with this. This
  233.          should be faster on RISC systems.
  234.  
  235.        * XResourceManagerString, which is now used as part of the X resources
  236.          support in the X11 and XView versions, appears to be an X11R4
  237.          functions. If you are trying to get the X11 version working with
  238.          X11R3, then there is a new definition in the Makefile[.dist] file
  239.          that you'll have to uncomment. The README file has been updated to
  240.          mention this.
  241.  
  242.        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  243.          Using the X11 interface, when I click on Suggest and get a cross
  244.          marking the suggested square, then the cross does not disappear when
  245.          I click on Undo (the position is different, so the suggested square
  246.          is no longer valid). This gets a bit confusing when you do a Suggest,
  247.          Undo and Suggest again sequence - you end up with 2 crosses on the
  248.          board.
  249.  
  250.        *  From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  251.           When compiling rev_ip.c on an HP-UX 9000 Series 300 machine (68020 or
  252.           68030), the HP-UX 7.0 C compiler crashes out with the following error:
  253.           C1 internal error in "tuplonges": invalid OREG in recognize_array()
  254.  
  255.           This problem has now been found, and the appropriate code is
  256.           #ifdef'ed in rev_ip.c.
  257.  
  258. ----------------
  259.  
  260. 3/ How to install this patch.
  261.  
  262. To cut down on the size of this patch (yes really!!), the packing is not
  263. so straight forward as it could have been.
  264.  
  265. This patch consists of nine parts. Save each one first. The first part
  266. consists of this introductory message, followed by a shar file containing
  267. the four new files:
  268.  
  269.           reve_proc.c
  270.           common.c
  271.           images/Sch_off.icon
  272.           images/Sch_on.icon
  273.  
  274. You should strip off all the initial lines (down to and including the CUT
  275. HERE line), and give to sh to unpack.
  276.  
  277. The second part consists of a new copy of reve.edge1, and the third part
  278. contains a new copy of reve.edge2. You should strip off the initial mail
  279. headers (down to and including the CUT HERE lines), and replace the existing
  280. files.
  281.  
  282. You should then use Larry Wall's patch program to apply the changes in the
  283. other six parts. Assuming the six files are called patch3-4, patch3-5, ...,
  284. patch3-9 do the following:
  285.  
  286. cd reve_src        # directory where your reve source files are.
  287. patch <patch3-4
  288. patch <patch3-5
  289. ...
  290. patch <patch3-9
  291.  
  292. Copy Makefile.dist to Makefile, and adjust for your site. See the README
  293. file for things you might have to tweak in order to get Reve to work on
  294. your machine.
  295.  
  296. You will then have to do the appropriate make, to generate the graphics
  297. version you require. Do a "make help" to obtain more information on this.
  298.           
  299. Finally, you should do a "make install". You will probably have to be
  300. super-user to do this.
  301.           
  302. If you have any problems with Reve after applying this patch, and your
  303. problem is not listed in the TODO file, please let us know.
  304.           
  305. ----------------
  306.  
  307. 4/ How to get previous patches.
  308.  
  309. If you need to get patches 1 or 2, then they can be obtained from the automatic
  310. mail archive server, by sending a message to rb-archive-server@Aus.Sun.COM
  311. containing the line:
  312.  
  313. send reve patchn
  314.  
  315. where n is the patch number you require.
  316.  
  317. You can also include a path line in these requests to indicate the mail
  318. path that the archive server should use to send the files to you. Such a
  319. path line could be:
  320.  
  321. path uunet.uu.net!hostname!user
  322.           
  323. Note that this is uunet.uu.net and not just uunet. Sun.COM doesn't recognise
  324. just uunet.
  325.  
  326. [NOTE: When unpacking the shars generated by the automatic mail service,
  327.        it is possible you will get error messages for incorrect length.
  328.        Please ignore; hopefully the files should still unpack correctly].
  329.          
  330. Rich Burridge           richb@Aus.Sun.COM
  331. Yves Gallot             galloty@cernvax.cern.ch
  332.  
  333. ------CUT HERE------patch 3 - part 1------CUT HERE------
  334. #! /bin/sh
  335. # This is a shell archive.  Remove anything before this line, then unpack
  336. # it by saving it into a file and typing "sh file".  To overwrite existing
  337. # files, type "sh file -c".  You can also feed this as standard input via
  338. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  339. # will see the following message at the end:
  340. #        "End of archive 1 (of 9)."
  341. # Contents:  common.c reve_proc.c images/Sch_off.icon
  342. #   images/Sch_on.icon
  343. # Wrapped by billr@saab on Fri Dec 21 11:24:19 1990
  344. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  345. echo shar: overwriting existing file \"'common.c'\"
  346. echo shar: Extracting \"'common.c'\" \(2435 characters\)
  347. sed "s/^X//" >'common.c' <<'END_OF_FILE'
  348. X/*  @(#)common.c 1.2 90/12/09
  349. X *
  350. X *  Common routine between reve and reve_proc.
  351. X *
  352. X *  Copyright (C) 1990 - Rich Burridge & Yves Gallot.
  353. X *  All rights reserved.
  354. X *
  355. X *  Permission is granted to copy this source, for redistribution
  356. X *  in source form only, provided the news headers in "substantially
  357. X *  unaltered format" are retained, the introductory messages are not
  358. X *  removed, and no monies are exchanged.
  359. X *
  360. X *  Permission is also granted to copy this source, without the
  361. X *  news headers, for the purposes of making an executable copy by
  362. X *  means of compilation, provided that such copy will not be used
  363. X *  for the purposes of competition in any othello tournaments, without
  364. X *  prior permission from the authors.
  365. X *
  366. X *  No responsibility is taken for any errors on inaccuracies inherent
  367. X *  either to the comments or the code of this program, but if reported
  368. X *  (see README file), then an attempt will be made to fix them.
  369. X */
  370. X
  371. X#include "reve.h"
  372. X#include "extern.h"
  373. X
  374. Xvoid
  375. Xinit_edge_table(edgefile)     /* Load reve edge table values. */
  376. Xchar *edgefile ;
  377. X{
  378. X  char buf[MAXLINE], *getenv(), name[MAXLINE], *paths, *ptr ;
  379. X  int i, line ;
  380. X  FILE *fp = NULL ;
  381. X
  382. X  i = 0 ;
  383. X  if ((fp = fopen(edgefile, "r")) == NULL)
  384. X    {
  385. X      paths = getenv("PATH") ;
  386. X      if ((ptr = paths) && edgefile[0] != '/')
  387. X        for (;;)
  388. X          if (*ptr == ':' || *ptr == 0)
  389. X            {
  390. X              if (*ptr == 0) break ;
  391. X              name[i++] = '/' ;
  392. X              name[i] = 0 ;
  393. X              STRCAT(name, edgefile) ;
  394. X              if ((fp = fopen(name, "r")) != NULL) break ;
  395. X              if (*ptr == '\0') break ;
  396. X              ptr++ ;
  397. X              i = 0 ;
  398. X            }
  399. X          else name[i++] = *ptr++ ;
  400. X    }
  401. X  if (fp == NULL)
  402. X    {
  403. X      FPRINTF(stderr, "Cannot open Edge Stability Table file\n") ;
  404. X      exit(1) ;
  405. X    }
  406. X  line = 0 ;
  407. X  while (fgets(buf, MAXLINE, fp) != NULL)
  408. X    {
  409. X      line++ ;
  410. X      if (buf[0] == '\n' || buf[0] == '#') continue ;
  411. X      if ((ptr = index(buf, '[')) == NULL)
  412. X        {
  413. X          FPRINTF(stderr, "Cannot read edge table file at line %d\n", line) ;
  414. X          exit(1) ;
  415. X        }
  416. X      SSCANF(ptr+1, "%d", &i) ;
  417. X      if ((ptr = index(buf, '=')) == NULL)
  418. X        {
  419. X          FPRINTF(stderr, "Cannot read edge table file at line %d\n", line) ;
  420. X          exit(1) ;
  421. X        }
  422. X      SSCANF(ptr+1, "%ld", &edges[i]) ;
  423. X    }
  424. X  FCLOSE(fp) ;
  425. X  for (i = 0 ; i < 3281; i++) edges[6560 - i] = - edges[i] ;
  426. X}
  427. END_OF_FILE
  428. if test 2435 -ne `wc -c <'common.c'`; then
  429.     echo shar: \"'common.c'\" unpacked with wrong size!
  430. fi
  431. # end of 'common.c'
  432. echo shar: overwriting  existing file \"'reve_proc.c'\"
  433. echo shar: Extracting \"'reve_proc.c'\" \(2755 characters\)
  434. sed "s/^X//" >'reve_proc.c' <<'END_OF_FILE'
  435. X
  436. X/*  @(#)reve_proc.c 1.2 90/12/09
  437. X *
  438. X *  Main routine for the separate play_reve program.
  439. X *
  440. X *  Copyright (C) 1990 - Rich Burridge & Yves Gallot.
  441. X *  All rights reserved.
  442. X *
  443. X *  Permission is granted to copy this source, for redistribution
  444. X *  in source form only, provided the news headers in "substantially
  445. X *  unaltered format" are retained, the introductory messages are not
  446. X *  removed, and no monies are exchanged.
  447. X *
  448. X *  Permission is also granted to copy this source, without the
  449. X *  news headers, for the purposes of making an executable copy by
  450. X *  means of compilation, provided that such copy will not be used
  451. X *  for the purposes of competition in any othello tournaments, without
  452. X *  prior permission from the authors.
  453. X *
  454. X *  No responsibility is taken for any errors on inaccuracies inherent
  455. X *  either to the comments or the code of this program, but if reported
  456. X *  (see README file), then an attempt will be made to fix them.
  457. X */
  458. X
  459. X#include "reve.h"
  460. X
  461. Xstruct reve_in in ;          /* Input supplied on standard input. */
  462. Xstruct reve_out out ;        /* Results written to standard output. */
  463. X
  464. Xint sin ;                    /* Size of the input buffer. */
  465. X
  466. Xint saveres = 0 ;            /* If set, save computer results to log file. */
  467. X
  468. X/* REVE global variables */
  469. X
  470. Xint damier[NIVEAUMAX][64] ;  /* Boards at different depth level */
  471. Xint tacouleur, macouleur ;   /* Your and my colors during evaluation */
  472. Xint mnb, profmax ;           /* Number of moves played, current max. depth */
  473. Xint max_depth = 2 ;          /* Computer strategy - maximum depth. */
  474. Xint vp0, vo0 ;               /* Current mobility components */
  475. Xlong c1, c2, c3 ;            /* Constants used in evaluation function */
  476. Xlong edges[6561] ;           /* Edges Stability Table */
  477. Xlong note ;                  /* Note value for current computer move. */
  478. Xtime_t timeleft ;            /* Amount of time left for computer moves. */
  479. X
  480. X
  481. X/*ARGSUSED*/
  482. Xmain(argc, argv)
  483. Xint argc ;
  484. Xchar *argv[] ;
  485. X{
  486. X  int reply ;
  487. X
  488. X  if (argv[1] != NULL) init_edge_table(argv[1]) ;
  489. X  for (;;)
  490. X    {
  491. X      sin = sizeof(struct reve_in) ;
  492. X      if ((reply = read(0, (char *) &in, sin)) > 0)
  493. X        {
  494. X               if (in.type == M_TIME)    timeleft  = in.timeleft ;
  495. X          else if (in.type == M_PROFMAX) max_depth = in.level ;
  496. X          else
  497. X            {
  498. X              play_reve(in.board, in.player, in.level, &out.move, &out.note) ;
  499. X              out.type = in.type ;
  500. X              WRITE(1, (char *) &out, sizeof(struct reve_out)) ;
  501. X            }
  502. X        }
  503. X      else if (reply == 0) exit(1) ;
  504. X    }
  505. X}
  506. X
  507. X
  508. Xvoid
  509. Xshow_best(move, note)
  510. Xint move ;
  511. Xlong note ;
  512. X{
  513. X  out.type  = M_BEST ;
  514. X  out.move  = move ;
  515. X  out.note  = note ;
  516. X  out.depth = profmax ;
  517. X  WRITE(1, (char *) &out, sizeof(struct reve_out)) ;
  518. X}
  519. END_OF_FILE
  520. if test 2755 -ne `wc -c <'reve_proc.c'`; then
  521.     echo shar: \"'reve_proc.c'\" unpacked with wrong size!
  522. fi
  523. # end of 'reve_proc.c'
  524. echo shar: overwriting existing file \"'images/Sch_off.icon'\"
  525. echo shar: Extracting \"'images/Sch_off.icon'\" \(1933 characters\)
  526. sed "s/^X//" >'images/Sch_off.icon' <<'END_OF_FILE'
  527. X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  528. X */
  529. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  530. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  531. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  532. X    0xFFE0,0x0000,0x0000,0x0000,0x8020,0x0000,0x0000,0x0000,
  533. X    0x8020,0x0000,0x0000,0x0000,0x8020,0x0000,0x0000,0x0000,
  534. X    0x8020,0x0000,0x0000,0x0000,0x8020,0x0000,0x0000,0x0000,
  535. X    0x8020,0x0000,0x0000,0x0000,0x8020,0x0000,0x0000,0x0000,
  536. X    0x8020,0x0000,0x0000,0x0000,0xFFE0,0x0000,0x0000,0x0000,
  537. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  538. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  539. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  540. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  541. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  542. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  543. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  544. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  545. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  546. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  547. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  548. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  549. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  550. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  551. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  552. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  553. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  554. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  555. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  556. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  557. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  558. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  559. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  560. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
  561. END_OF_FILE
  562. if test 1933 -ne `wc -c <'images/Sch_off.icon'`; then
  563.     echo shar: \"'images/Sch_off.icon'\" unpacked with wrong size!
  564. fi
  565. # end of 'images/Sch_off.icon'
  566. echo shar: overwriting existing file \"'images/Sch_on.icon'\"
  567. echo shar: Extracting \"'images/Sch_on.icon'\" \(1933 characters\)
  568. sed "s/^X//" >'images/Sch_on.icon' <<'END_OF_FILE'
  569. X/* Format_version=1, Width=64, Height=64, Depth=1, Valid_bits_per_item=16
  570. X */
  571. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  572. X    0x0000,0x0000,0x0000,0x0000,0x0002,0x0000,0x0000,0x0000,
  573. X    0x0007,0x0000,0x0000,0x0000,0x000E,0x0000,0x0000,0x0000,
  574. X    0xFFFC,0x0000,0x0000,0x0000,0x8038,0x0000,0x0000,0x0000,
  575. X    0x8070,0x0000,0x0000,0x0000,0x80E0,0x0000,0x0000,0x0000,
  576. X    0xB1E0,0x0000,0x0000,0x0000,0xBBA0,0x0000,0x0000,0x0000,
  577. X    0x9F20,0x0000,0x0000,0x0000,0x8E20,0x0000,0x0000,0x0000,
  578. X    0x8420,0x0000,0x0000,0x0000,0xFFE0,0x0000,0x0000,0x0000,
  579. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  580. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  581. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  582. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  583. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  584. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  585. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  586. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  587. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  588. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  589. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  590. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  591. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  592. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  593. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  594. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  595. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  596. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  597. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  598. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  599. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  600. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  601. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
  602. X    0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000
  603. END_OF_FILE
  604. if test 1933 -ne `wc -c <'images/Sch_on.icon'`; then
  605.     echo shar: \"'images/Sch_on.icon'\" unpacked with wrong size!
  606. fi
  607. # end of 'images/Sch_on.icon'
  608. echo shar: End of archive 1 \(of 9\).
  609. cp /dev/null ark1isdone
  610. MISSING=""
  611. for I in 1 2 3 4 5 6 7 8 9 ; do
  612.     if test ! -f ark${I}isdone ; then
  613.     MISSING="${MISSING} ${I}"
  614.     fi
  615. done
  616. if test "${MISSING}" = "" ; then
  617.     echo You have unpacked all 9 archives.
  618.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  619. else
  620.     echo You still need to unpack the following archives:
  621.     echo "        " ${MISSING}
  622. fi
  623. ##  End of shell archive.
  624. exit 0
  625.