Provided by: xmabacus_7.6.8-2build1_amd64 bug

NAME

       xabacus - Abacus X widget

SYNOPSIS

       /usr/games/xabacus   [-geometry   [{width}][x{height}][{+-}{xoff}[{+-}{yoff}]]]  [-display
       [{host}]:[{vs}]]    [-[no]mono]     [-[no]{reverse|rv}]     [-{foreground|fg}     {color}]
       [-{background|bg}  {color}]  [-{border|bd}  {color}]  [-frame  {color}] [-primaryBeadColor
       {color}] [-leftAuxBeadColor  {color}]  [-rightAuxBeadColor  {color}]  [-secondaryBeadColor
       {color}]  [-highlightBeadColor  {color}]  [-primaryRailColor {color}] [-secondaryRailColor
       {color}] [-highlightRailColor {color}]  [-bumpSound  {filename}]  [-moveSound  {filename}]
       [-[no]sound]    [-delay    msecs]    [-[no]script]    [-[no]demo]    [-demopath    {path}]
       [-{demofont|demofn}   {fontname}]    [-{demoforeground|demofg}    {color}]    [-[no]teach]
       [-[no]rightToLeftAdd]  [-[no]rightToLeftMult]  [-[no]lee]  [-rails  {int}]  [-leftAuxRails
       {int}]   [-rightAuxRails   {int}]   [-[no]vertical]   [-colorScheme   {int}]   [-[no]slot]
       [-[no]diamond]  [-railIndex {int}] [-[no]topOrient] [-[no]bottomOrient] [-topNumber {int}]
       [-bottomNumber  {int}]  [-topFactor  {int}]  [-bottomFactor  {int}]   [-topSpaces   {int}]
       [-bottomSpaces  {int}]  [-topPiece  {int}]  [-bottomPiece  {int}] [-topPiecePercent {int}]
       [-bottomPiecePercent  {int}]  [-shiftPercent  {int}]  [-subdeck  {int}]  [-subbead  {int}]
       [-[no]sign]  [-decimalPosition  {int}] [-[no]group] [-groupSize {int}] [-[no]decimalComma]
       [-base {int}] [-[no]eighth] [-anomaly  {int}]  [-shiftAnomaly  {int}]  [-anomalySq  {int}]
       [-shiftAnomalySq   {int}]  [-displayBase  {int}]  [-[no]pressOffset]  [-[no]romanNumerals]
       [-[no]latin]                    [-[no]ancientRoman]                     [-[no]modernRoman]
       [-{chinese|japanese|korean|roman|russian|danish|generic}] [-{it|uk|fr}] [-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, normally 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.   Multiplication  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.  Also the  last  column
       was a combination of halves, quarters, and twelfths of an ounce and had no slot in the top
       deck and 4 beads at the bottom (beads did not have to come to the top to be counted but at
       one  of 3 marked points where the top bead was for halves, the next bead for quarters, and
       the last two beads for twelfths).  In another surviving example:  the  2  special  columns
       were  switched and the combination column was broken into 3 separate slots.  If available,
       decimal input is ignored.

       The Russian abacus was invented in the 17th century, here the beads are moved  from  right
       to  left.   It  has  colored  beads in the middle for ease of use.  Quarters represent 1/4
       Rubles and are only present historically on the Russian  abacus  (Schoty).   Some  of  the
       older  Schoty  have  a  extra place for the 1/4 Kopek (quarter percent) as well as the 1/4
       Ruble (quarter).

       The Danish abacus was used in the early 20th century in elementary schools as  a  teaching
       aid.

       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.

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

       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 (topFactor 3, bottomNumber 2, base
       12, displayBase 12), it is easy to relate the two.

       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 negatives.  "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 area of the column that was clicked.

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

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

       Press "$" key to toggle the teach mode.

       In  teach  mode,  "+" key toggles starting side to sum, ""*" key toggles for starting side
       for multiplicand.

       Press "~" or "`" keys to complement the beads on the rails.

       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, Russian, and
       Danish formats.  There is an extra "Generic" format, this allows one to break  some  rules
       binding  the  other  formats  (for  example,  if one wanted more beads on top deck than on
       bottom deck you would use this, in addition to resource option changes).

       Press "M" or "m" keys to switch between it, uk, and fr museum formats.

       Press "V" or "v" keys to toggle Roman  Nvmerals.   (Pardon  typo/humor,  but  ran  out  of
       letters).

       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 the Russian Abacus.

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

       Press "T" or "t" keys to toggle the availability of twelfth beads.  (Mutually exclusive to
       quarter beads).  Intended for the Roman Abacus.

       Press "B" or "b" keys to toggle the availability of subdecks.  (Dependent on twelfth beads
       (or  quarter beads) and Roman format).  Intended for the Roman Abacus, the lowest value of
       two of the rightmost beads are a twelfth of the column second from right.

       Press "E" or "e" keys to toggle the availability of subdecks.  (Dependent on twelfth beads
       (or  quarter beads) and Roman format).  Intended for the Roman Abacus, the lowest value of
       three of the rightmost beads are an eighth of the column second from right.

       Press "L" or "l" keys to toggle the availability of anomaly bars.   Intended  to  be  used
       with  Japanese  Abacus  and  base  20 for the Mesoamerican Abacus.  (Mutually exclusive to
       watch bars).

       Press "W" or "w" keys to toggle the availability of watch  bars.   Intended  to  represent
       seconds where hours and minutes can be set.  (Mutually exclusive to anomaly bars).

       Press  ">"  or  "." keys to speed up the movement of beads.  Press "<" or "," keys to slow
       down the movement of beads.

       Press "@" key to toggle the sound.

       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  presented  that  should  be  placed  directly  below   the
       abacus-window.  Descriptive 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 lesson).

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  it
               were monochrome (resource name "mono").

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

       -{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").

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

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

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

       -leftAuxBeadColor color
               This option specifies the foreground of the beads for the left auxiliary abacus in
               Lee's Abacus (resource name "leftAuxBeadColor").

       -rightAuxBeadColor color
               This  option  specifies the foreground of the beads for the right auxiliary abacus
               in Lee's Abacus (resource name "rightBeadColor").

       -secondaryBeadColor color
               This  option  specifies  the  secondary  color  of  the   beads   (resource   name
               "secondaryBeadColor").

       -highlightBeadColor color
               This   option   specifies   the  highlight  color  of  the  beads  (resource  name
               "highlightBeadColor").

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

       -secondaryRailColor color
               This   option   specifies   the  secondary  color  of  the  rails  (resource  name
               "secondaryRailColor").

       -highlightRailColor color
               This  option  specifies  the  highlight  color  of  the   rails   (resource   name
               "highlightRailColor").

       -bumpSound filename
               This  option  specifies  the file for the bump sound for the movement of the beads
               (resource name "bumpSound").

       -moveSound filename
               This option specifies the file for the move sound for the sliding of  the  decimal
               point marker (resource name "moveSound").

       -[no]sound
               This  option specifies if a sliding bead should make a sound or not (resource name
               "sound").

       -delay msecs
               This option specifies the number of milliseconds it takes to  move  a  bead  or  a
               group of beads one space (resource name "delay").

       -[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  auxiliary,  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
               numbers and the number of lines constant.  (Windows version writes to Abacus.les.)

       -[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 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 lesson).
               The demo uses Abacus1.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.

       -demopath path
               This  option  specifies  the  path  for  the   demo,   possibly   something   like
               /usr/local/share/games/xabacus (resource name "demoPath").  It initially looks for
               Abacus1_1.les, for first chapter, lesson 1.  If it finds that, it will later  look
               for Abacus1_2.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]teach
               This  option  specifies  to  run  in  teach  mode.   In  this  mode, the abacus is
               controlled by 2 numbers separated by  an  operator:  "+"  for  addition,  "-"  for
               subtraction,  "*"  for  multiplication,  and   "/"  for division.  The square root
               operation is represented by the number to be operated on followed by the character
               "v"  (this leaves you with an answer from which you must divide by 2).  Similarly,
               the cube root operation is represented by the number to be operated on followed by
               the  character  "u"  (this leaves you with an answer from which you must divide by
               3).  Press return key to progress through the steps (resource name "teach").

       -[no]rightToLeftAdd
               This option  specifies  the  order  for  teach  starting  side  for  addition  and
               subtraction.   The  default is the traditional left to right.  Right to left seems
               easier though (resource name "rightToLeftAdd").

       -[no]rightToLeftMult
               This option specifies the order for teach starting side for  multiplication.   The
               default  is  the  traditional  left  to  right.  Right to left seems more straight
               forward (resource name "rightToLeftMult").

       -[no]lee
               This option allows you to turn on and off the two extra auxiliary abaci  (resource
               name "lee").

       -rails int
               This option specifies the number of rails (resource name "rails").

       -leftAuxRails int
               This  option  allows  you  to  set  the number of the rails for the left auxiliary
               abacus in Lee's Abacus (resource name "leftAuxRails").

       -rightAuxRails int
               This option allows you to set the number of the  rails  for  the  right  auxiliary
               abacus in Lee's Abacus (resource name "rightAuxRails").

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

       -colorScheme int
               This  option  specifies  the  color  scheme  for   the   abacus   (resource   name
               "colorScheme")  where 0-> none, 1-> color middle (2 beads beads but if odd color 1
               bead), 2-> color first of group, 3-> both 1 and 2, 4-> color first  half  (but  if
               odd color middle bead).

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

       -[no]diamond
               This  option  allows  you  to  have  either  diamond or round beads (resource name
               "diamond").

       -railIndex int
               This option specifies the index of color for the rails  of  the  abacus  (resource
               name "railIndex") where a value is 0 or 1.

       -[no]topOrient
               This  option  specifies  the  orientation  of  the  beads  on  top  (resource name
               "topOrient").

       -[no]bottomOrient
               This option specifies the orientation  of  the  beads  on  bottom  (resource  name
               "bottomOrient").

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

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

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

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

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

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

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

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

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

       -bottomPiecePercent 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").

       -subdeck int
               This option specifies the special subdecks column (resource name "subdeck").

       -subbead int
               This option specifies the special subbeads (resource name "subbead").

       -[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").

       -[no]group
               This  option  allows  you  to group the displayed digits for readability (resource
               name "group").

       -groupSize int
               This option specifies the group size to the left of the decimal point (normally 3)
               (resource name "groupSize").

       -[no]decimalComma
               This  option  allows you to swap "." for "," to allow for different display format
               (resource name "decimalComma").

       -base int
               This option specifies the base used on abacus (default is base 10) (resource  name
               "base").   By default, one has to set the format mode to not be "Generic" for this
               to work (unless you know what you are doing).

       -[no]eighth
               This option specifies the base for the Roman subdeck, (if set, the resource is set
               to 8, else it is set to 12) (resource name "subbase").

       -anomaly int
               This  option specifies the offset from the base for a multiplicative factor of the
               rail with the anomaly (if none, this is set to 0) (resource name "anomaly").

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

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

       -shiftAnomalySq int
               This option specifies the offset in rails  from  the  first  anomaly  (usually  2)
               (resource name "shiftAnomalySq").  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  calculation 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]pressOffset
               This option allows you to put a pixel space between all the beads so there is room
               for the bead to move when pressed (resource name "pressOffset").

       -[no]romanNumerals
               This option allows you to set the abacus to allow Roman  Numerals  (resource  name
               "romanNumerals").  Roman Numerals above 3999 are normally represented with bars on
               top,  due  to  ASCII  constraints  this  is  represented  instead  in  lower  case
               (historically  case  was  ignored).   Roman  Numerals  above  3,999,999  were  not
               represented  historically.   Roman  numerals  change  with   displayBase   in   an
               "experimental"  way.  When used with twelfths and subdecks, named fraction symbols
               are used.  Due to ASCII constraints the sigma is represented as E, the backwards C
               is  represented  as a Q, the mu as a u, and the Z with a - through the center as a
               z.  If available, decimal input is ignored.

       -[no]latin
               This option allows you to set the abacus  to  allow  latin  fractions  instead  of
               symbolic in the Roman numeral output (resource name "latin").

       -[no]ancientRoman
               This  option  allows you to set the abacus to allow ancient Roman numerals instead
               of the modern in the Roman numeral output (resource name "ancientRoman").

       -[no]modernRoman
               This option allows you to set the abacus to allow modern Roman numerals instead of
               the ancient on the Roman Hand abacus (resource name "modernRoman").

       -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.

       -roman  This option specifies the format on the abacus (resource name "format") to "Roman"
               for the Roman Hand Abacus,  note  beads  move  in  slots.   To  complete,  specify
               romanNumerals".

       -russian
               This  option  specifies  the  format  on  the  abacus  (resource name "format") to
               "Russian" for the Russian Schoty.  To complete, specify piece" to be  4,  for  the
               older Schoty also specify piecePercent" to be 4.

       -danish This  option  specifies  the  format  of  the  abacus  (resource name "format") to
               "Danish" for the Danish Elementary School Abacus teaching aid.

       -generic
               This option specifies the  format  on  the  abacus  (resource  name  "format")  to
               "Generic".   This  option  specifies  a  format that is more configurable by using
               resources, since there are few rules to govern its behavior.

       -it     This option specifies the subformat of the abacus in Museum of the Thermae, Rome.

       -uk     This option specifies the subformat of the abacus in British Museum in London.

       -fr     This option specifies the  subformat  of  the  abacus  in  Cabinet  de  medailles,
               Bibliotheque nationale, Paris.

       -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 Publications, Inc 1958, pp
       156-195.

SEE ALSO

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

COPYRIGHTS

       ® Copyright 1994-2010, David A. Bagley

       Luis  Fernandes,  <elf@ee.ryerson.ca>  wrote  an independent program (xabacus 1.00) with a
       demo mode and postscript file.  I tried, with his permission, 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, <saratcmahadevan@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 A. Bagley, <bagleyd@tux.org>

       The latest version is currently at:
              http://www.tux.org/~bagleyd/abacus.html
              ftp://ibiblio.org/pub/Linux/apps/math