SYNOPSIS
       xabacus
        [-geometry   [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]   [-display
       [{host}]:[{vs}]]  [-[no]mono]   [-[no]{reverse|rv}]   [-{foreground|fg}
       {color}]  [-{background|bg}  {color}]  [-bead {color}] [-frame {color}]
       [-rail {color}]  [-{border|bd}  {color}]  [-delay  msecs]  [-[no]sound]
       [-bumpSound    {filename}]    [-moveSound    {filename}]    [-[no]demo]
       [-[no]script]  [-demopath   {path}]   [-{demofont|demofn}   {fontname}]
       [-{demoforeground|demofg}    {color}]    [-[no]vertical]    [-[no]slot]
       [-[no]diamond] [-[no]torient] [-[no]borient] [-tnumber {int}] [-bnumber
       {int}]  [-tfactor  {int}]  [-bfactor  {int}] [-tspaces {int}] [-bspaces
       {int}]  [-tpiece  {int}]   [-bpiece   {int}]   [-tpiecePercent   {int}]
       [-bpiecePercent {int}] [-shiftPercent {int}] [-[no]sign] [-decimalPosi-
       tion {int}] [-groupSize {int}] [-rails {int}] [-base  {int}]  [-anomaly
       {int}]  [-shiftAnomaly] [-anomalySq {int}] [-shiftAnomalySq] [-display-
       Base {int}] [-[no]romanNumerals]  [-{chinese|japanese|korean|roman|rus-
       sian|other}] [-version]

DESCRIPTION
       This  is  an  implementation  of  the classic Chinese abacus (Saun-pan)
       which has its origins in the 12th century.

       The device has two decks.  Each deck, separated by  a  partition,  nor-
       mally  has  13  rails on which are mounted beads.  Each rail on the top
       deck contains 1 or 2 beads, and each rod on the bottom deck contains  4
       or  5  beads.   Each  bead on the upper deck has a value of five, while
       each bead on the lower deck has value of  one.   Beads  are  considered
       counted, when moved towards the partition separating the decks, i.e. to
       add a value of one a bead in the bottom deck is moved up and to  add  a
       value of 5 a bead in the top deck is moved down.

       The  basic operations of the abacus are addition and subtraction.  Mul-
       tiplication can be done by mentally multiplying the digits  and  adding
       up  the  intermediate results on the abacus.  Division would be similar
       where the intermediate results are subtracted.   There  are  techniques
       like  using  your  thumb and forefinger which does not apply with mouse
       entry.  Also with multiplication, one can  carry  out  calculations  on
       different parts of the abacus for scratch work, here it is nice to have
       a long abacus.

       The pre-WWII Japanese abacus (Soroban) (or Korean Supan) is similar  to
       the Chinese abacus but has only one bead per rail on the top deck.  The
       later Japanese abacus was further simplified to have only 4  beads  per
       rail on the bottom deck.

       The  Roman  hand-abacus predates the Chinese abacus and is very similar
       to the later Japanese abacus, but seems to have fallen out of use  with
       the  Fall of the Roman Empire (at least 3 are in existence).  The Roman
       abaci are brass plates where the beads move in slots.  In  addition  to
       the normal 7 columns of beads, they generally have 2 special columns on
       the right side. In two examples: the first special column was for 12ths
       (12  uncia  (ounces) = 1 as) and had one extra bead in the bottom deck.
       Schoty have a extra place for the 1/4 Kopek (quarter percent)  as  well
       as the 1/4 Ruble (quarter).

       The  Mesoamerican  Nepohualtzintzin  is a Japanese abacus base 20.  The
       Mesoamericans had base 20 with the exception of the 3rd  decimal  place
       where instead of 20*20=400 the third place marked 360 and the 4th place
       was 20*360, etc..  They independently  created  their  own  zero  (only
       Babylon  (base  60) and India (base 10) have done this) but the anomaly
       took away its true power.  Disable anomaly by setting anomaly to 0.

       The Chinese Solid-and-Broken-Bar System is a base 12  numbering  system
       and not really an abacus.  When the abacus is setup in this way though,
       it is easy to relate the two.

       An easy way of figuring out time in seconds given hours,  minutes,  and
       seconds, can be done on the Roman abacus or on the Japanese abacus with
       special "anomaly" settings.

       The signed bead is an invention of the author, and is  not  present  on
       any historical abacus (to his knowledge) and is used to represent nega-
       tives.  "New & Improved" abacus models have two auxiliary decks stacked
       above  the principal deck that enable multiplication, division, square-
       root, and cube-root computations to be performed  with  equal  ease  as
       addition and subtraction.

FEATURES
       Click  "mouse-left"  button on a bead you want to move.  The beads will
       shift themselves to vacate the column that was clicked.

       Click "mouse-right" button, or press "C" or "c" keys, to clear the aba-
       cus.

       Press "O" or "o" keys to toggle the demo mode.

       Press "I" or "i" keys to increment the number of rails.

       Press "D" or "d" keys to decrement the number of rails.

       Press  "F"  or  "f"  keys  to switch between Chinese, Japanese, Korean,
       Roman, and Russian formats.

       Press "M" or "m" keys to toggle Roman Numerals.

       Press "S" or "s" keys to toggle the availability of a sign bead.

       Press "U" or "u" keys to toggle  the  availability  of  quarter  beads.
       (Mutually exclusive to twelfth beads).  Intended for Russian Abacus.

       Press  "P"  or  "p"  keys to toggle the availability of quarter percent
       beads.  Intended for the older Russian Abacus.

       Press "T" or "t" keys to toggle  the  availability  of  twelfth  beads.
       Press "Esc" key to hide program.

       Press "Q", "q", or "CTRL-C" keys to kill program.

       The abacus may be resized.  Beads will reshape depending  on  the  room
       they  have.   Demo  Mode: In this mode, the abacus is controlled by the
       program.  When started with the demo option, a second  window  is  pre-
       sented that should be placed directly below the abacus-window. Descrip-
       tive text, and user prompts are displayed in this window.  Pressing 'q'
       during  the demo will quit it.  Clicking the left mouse-button with the
       pointer in the window will restart the demo (beginning of current  les-
       son).

OPTIONS
       -geometry {+|-}X{+|-}Y
               This  option  sets  the  initial  position of the abacus window
               (resource name "geometry").

       -display host:dpy
               This option specifies the X server to contact.

       -[no]mono
               This option allows you to display the abacus window on a  color
               screen as if was monochrome (resource name "mono").

       -[no]{reverse|rv}
               This  option  allows  you  to  see the abacus window in reverse
               video (resource name "reverse").

       -{foreground|fg} color
               This option specifies  the  foreground  of  the  abacus  window
               (resource name "foreground").

       -{background|bg} color
               This  option  specifies  the  background  of  the abacus window
               (resource name "background").

       -frame color
               This option specifies the foreground  of  the  frame  (resource
               name "frameColor").

       -rail color
               This  option  specifies  the  foreground of the rails (resource
               name "railColor").

       -bead color
               This option specifies the foreground  of  the  beads  (resource
               name "beadColor").

       -{border|bd} color
               This  option  specifies  the  foreground  of  the  bead  border
               (resource name "borderColor").

       -moveSound filename
               This option specifies the file for  the  move  sound  (resource
               name "moveSound").

       -[no]demo
               This  option  specifies to run in demo mode.  In this mode, the
               abacus is controlled  by  the  current  lesson  (resource  name
               "demo").   When started with the demo option, a window contains
               descriptive text, and user prompts are displayed in  this  win-
               dow.   Pressing 'q' during the demo will quit it.  Clicking the
               left mouse-button with the pointer in the window  will  restart
               the  demo  (beginning  of  current lesson).  The demo uses Aba-
               cus1.les for the first Chinese Abacus lesson, Abacusjp1.les for
               the first Japanese (and Roman) Abacus lesson, Abacusko1.les for
               the Korean Abacus, and Abacusru1.les for the Russian Abacus.

       -[no]script
               This option specifies to log application to stdout, every  time
               the user clicks to move the beads (resource name "script"). The
               output is a set of deck, rail, beads added or  subtracted,  and
               the  number  of text lines (4).  This can be edited to add text
               to the lesson and used as a new demo keeping the generated num-
               bers  and  the  number of lines constant.  If you want to add a
               "do nothing", the first line generated is an example  of  that.
               For example: "xabacus -script > Abacus5.les"

       -demopath path
               This option specifies the path for the demo, possibly something
               like /usr/share/games/xabacus (resource name  "demoPath").   It
               initially  looks  for  Abacus1.les.   If it finds that, it will
               later look for Abacus2.les, etc.

       -demofont fontstring
               This option specifies the font for the  explanatory  text  that
               appears  in the secondary window, during the demo.  The default
               font is 18 point  Times-Roman  (-*-times-*-r-*-*-*-180-*).  The
               alternate font is 8x13.

       -demofg color
               This  option specifies the foreground of the abacus demo window
               (resource name "demoForeground").

       -demobg color
               This option specifies the background of the abacus demo  window
               (resource name "demoBackground").

       -[no]vertical
               This  option  allows  you  to set the abacus to allow a Russian
               orientation (resource name "vertical").

       -[no]slot
               This option allows you to have either slots or rails  (resource

       -tnumber int
               This option specifies the number of beads on top (resource name
               "topNumber").

       -bnumber int
               This  option  specifies the number of beads on bottom (resource
               name "bottomNumber").

       -tfactor int
               This option specifies the multiply factor for the beads on  top
               (resource name "topFactor").

       -bfactor int
               This option specifies the multiply factor for the beads on bot-
               tom (resource name "bottomFactor").

       -tspaces int
               This option specifies the number of  spaces  on  top  (resource
               name "topSpaces").

       -bspaces int
               This  option specifies the number of spaces on bottom (resource
               name "bottomSpaces").

       -tpiece int
               This option specifies the number of  pieces  on  top  (resource
               name "topPiece").

       -bpiece int
               This  option specifies the number of pieces on bottom (resource
               name "bottomPiece").

       -tpiecePercent int
               This option specifies the  number  of  piece  percents  on  top
               (resource name "topPiecePercent").

       -bpiecePercent int
               This  option  specifies  the number of piece percents on bottom
               (resource name "bottomPiecePercent").

       -shiftPercent int
               This option specifies the shift of rails for piece percents and
               also  may  influence the precision of the calculation (resource
               name "shiftPercent").

       -[no]sign
               This option allows you to set the  abacus  to  allow  negatives
               (resource name "sign").

       -decimalPosition int
               This  option  specifies the number of rails to the right of the
               decimal point (normally 2) (resource name "decimalPosition").

       -anomaly int
               This  option  specifies  the  offset from the base for a multi-
               plicative factor of the rail with the anomaly (if none, this is
               set to 0) (resource name "anomaly").  Currently, this only per-
               missable if carries are not possible on abacus (such as a Roman
               or a Japanese abacus without Quarters or Twelfths).

       -anomalyShift int
               This  option  specifies  the  offset from decimal point for the
               anomaly (usually 2) (resource name "anomalyShift").

       -anomalySq int
               This option specifies the  offset  from  base  for  the  second
               anomaly  (if  none,  this  is  set to 0) (resource name "anoma-
               lySq").

       -anomalySqShift int
               This option specifies  the  offset  in  rails  from  the  first
               anomaly  (usually 2) (resource name "anomalySqShift").  doing).

       -displayBase int
               This option specifies the base displayed (default is  base  10)
               (resource  name  "displayBase").   If  this  is  different then
               "base" then it is implemented using "long long" and the  calcu-
               lation is limited by its bounds.  Also the fractional part does
               not scale with the "displayBase" so  if  the  "displayBase"  is
               greater  than  the  "base"  it  looses some precision.  Also no
               rounding is done.

       -[no]romanNumerals
               This option allows you to set the abacus to allow Roman  Numer-
               als (resource name "romanNumerals").  Roman Numerals above 3999
               are normally represented with bars on top, due  to  ASCII  con-
               straints  this  is  represented instead in lower case (histori-
               cally case was ignored).  Roman Numerals above  3,999,999  were
               not  represented historically.  Roman numerals change with dis-
               playBase in an "experimental" way.

       -chinese
               This option specifies the format on the abacus  (resource  name
               "format") to "Chinese" for the Chinese Saun-pan.

       -japanese
               This  option  specifies the format on the abacus (resource name
               "format") to "Japanese" for  the  Japanese  post-WWII  Soroban.
               This is also similar to the Roman Hand Abacus.

       -korean This  option  specifies the format on the abacus (resource name
               "format") to "Korean" for the Korean Supan or Japanese pre-WWII
               Soroban.


       -version
               This option tells you what version of xabacus you have.

REFERENCES
       Luis Fernandes  http://www.ee.ryerson.ca/~elf/abacus/

       Lee Kai-chen, How to Learn Lee's Abacus, 1958, 58 pages.

       Abacus Guide Book, 57 pages.

       Georges  Ifrah,  The Universal History of Numbers, Wiley Press 2000, pp
       209-211, 288-294.

       Review of the above: http://www.ams.org/notices/200201/rev-dauben.pdf

       David Eugene Smith, History of Mathematics Volume  II,  Dover  Publica-
       tions, Inc 1958, pp 156-195.0

SEE ALSO
       X(1), xrubik(6), xskewb(6), xdino(6), xpyraminx(6), xoct(6), xmball(6),
       xmlink(6), xpanex(6), xcubes(6), xtriangles(6), xhexagons(6)

COPYRIGHTS
       (R) Copyright 1994-2006, David Albert Bagley

       Luis Fernandes, <elf@ee.ryerson.ca> wrote an independent program (xaba-
       cus 1.00) with a demo mode and postscript file.  I tried, with his per-
       mission, to take the best features of both into one  program.   Also  I
       had help with some of the abacus in the Java version by Sarat Chandran,
       <aratcmahadevan@yahoo.com> and some of these  ideas  were  ported  back
       into this X version.

BUG REPORTS AND PROGRAM UPDATES
       Send bugs (or their reports, or fixes) to the author:
              David Albert Bagley, <bagleyd@tux.org>

       The latest version is currently at:
              ftp://ftp.tux.org/pub/tux/bagleyd/xabacus
              ftp://ibiblio.org/pub/Linux/apps/math



V7.1.7                            01 Jan 2006                        ABACUS(6)

Man(1) output converted with man2html