X-BASED ABACUS ============== Abacus X widget, V5.5.2 Primary site: ftp://ftp.tux.org/pub/tux/bagleyd/xabacus Secondary site: ftp://ftp.x.org/contrib/applications Web page: http://www.tux.org/~bagleyd/abacus.html Maintainer: David A. Bagley <bagleyd@tux.org> It has been tested on the following platforms: Sun Ultra SunOS 5.6-5.7 PC Pentium Linux 2.0.9 IBM PowerPC AIX 4.3.1.0 HP 898 HP-UX 10.20 Previous versions tested on: Sun SPARC SunOS 5.5.1 (X11R5 & X11R6) Sun SPARC SunOS 4.1.3 PC 486 Linux1.2.13 DEC VAX & ALPHA VMS 6.1 HP 3xx & 700 HPUX 9.01 SGI IRIX 5.3 If you have to do any editing to get this to work, please mail me the changes. HOW TO BUILD? An ANSI C compiler is required for build. To build, it should be easy. There are 3 choices. configure: and DATAFILE in Makefile.in . configure ; make imake: Sometimes this is not setup correctly by the distributer ... i.e. not my fault. You may want to set SCOREFILE and DATAFILE in Imakefile . If you have Motif you may want to do this quick edit in the Imakefile: Uncomment line "#define XpmLibrary". xmkmf ; make make.com (VMS users only): You may want to set SCOREFILE and DATAFILE in make.com . @make Then just run "xabacus" (or "xmabacus" if you have Motif). You should have Abacus.ad (or Korean.ad) copied to $(HOME)/Abacus or /usr/lib/X11/app-defaults/Abacus to run, especially if the background is similar to the beads. Edit this file for your preferences. For monochrome, the bead color needs to be brighter. You might want to move xabacus into /usr/bin/X11 (or wherever your X binaries are). You might also want to move xabacus.man to /usr/man/man1/xabacus.1 Essentially, this is a proof by induction that a computer is more powerful than an abacus, since a computer program can contain an abacus. (But then again, you can simulate a computer within a computer, so what does that show). Actually, with a real abacus, one can move more than one row at a time with 10 fingers. But on the other hand, a real abacus does not have the current sum displayed as an integer. Try resizing the abacus. Notice the shape and size change of the beads. Try copying the file Abacusjp.ad to $(HOME)/Abacus (where Abacus is the file name) and running xabacus again. You now have the faster (and more cryptic) Japanese Abacus. Keep in mind that the Abacus is a widget that can be simply stuck in other X programs. (If you find a use for this, let me know). It has a built-in demo-mode that teaches the user: - how to count (from 1 to 20) using the abacus - how to perform simple additions - how to perform simple subtractions. In addition, there is a rudimentary facility for generating data that may be used to write customized scripts for teaching other concepts. The PostScript document, Abacus.ps, included in the distribution, describes every possible techinique for performing additions and subtractions using an abacus (typing "make ps" will build the file). Refer to the man page for detailed command line options. FOUND A BUG? Send bugs reports and fixes to the author. For bugs, please include as much information as to their location as possible, since I may not be able to duplicate the problems with my limited resources. HISTORY [Aug 11, 99] V5.5.2: Fixed runtime library problems when using configure, added text to README and xabacus.man, fixed confusing demo start. [Jul 31, 99] V5.5.1: Removed HP usleep warning. [Jun 20, 99] V5.5: Combined the independent work of Luis Fernandes' xabacus 1.00, also started in 1991. This includes all the features to teach the users how to use the abacus (-demo) and a more solid frame (its sturdier :) ). -bars changed to -rails to conform with the terminology. Now defaults to the top beads up. (My instructions (now lost), I believe had these beads down, but Luis' way is probably more widely used.) Abacus.ps and Lesson?.cmd are written entirely by Luis Fernandes <elf@ee.ryerson.ca>. (Also see http://www.ee.ryerson.ca/~elf/abacus). Added -rv and -mono options. Implemented -base option, can now go up to base 36, yeah I got carried away here (it should even work with EBCDIC though untested (really carried away)). Dynamic number of rails, with calculations saved with each change. [Jan 01, 97] V5.4: configure, man page updates. [Apr 22, 96] V5.3: You can now see beads move one unit space at a time. This is governed by a new resource, "delay". [Feb 12, 96] V5.2.1: beads now invert when pressed, wprintf name may conflict with other UNIX libraries - changed to motif_printf, keyboard may not work with motif - fixed. [Jan 31, 96] V5.2: Dynamic number of rails (well, the widget is dynamic but xabacus.c limits it to around 300 for the title text), fixed another bug when resized (negative radius circles). [Dec 15, 95] V5.1: Fixed a bug when resized. [Sep 30, 95] V5.0: Xt/Motif, your choice. [May 16, 95] V4.10: Warnings removed from Sun's cc and lint. [Mar 13, 95] V4.3: Removed lint warnings and added a VMS make.com . [Nov 08, 94] V4.2: Removed gcc -Wall warnings. [Jun 03, 94] V4.1: R6. [May 07, 94] V4.0: Xt version. [Feb 03, 93] V3.0: Motif version. I got some good ideas from Douglas A. Young's book: "The X Window System Programming and Applications with Xt OSF/Motif Edition", particularly his dial widget. I got some good ideas on presentation from Q. Zhao's tetris. [Dec 17, 91] V2.0: XView version. [Feb 14, 91] V1.0: SunView version.