Provided by: xmabacus_8.2.1-1_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}] [-lineRailColor  {color}]  [-bumpSound  {filename}]
       [-moveSound  {filename}] [-dripSound {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|russian|danish|roman|medieval|generic}]           [-{it|uk|fr}]
       [-version]

DESCRIPTION

       This is an implementation of the classic Chinese Abacus (Suanpan) 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 Jupan) 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  beads  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 (Schety).  Some of the
       older Schety 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 Medieval Counter is a primitive form of the abacus and was used in Europe as  late  as
       the  1600s.   It  was useful considering they were using it with Roman Numerals.   This is
       similar to the Salamis Greek Tablet from 4th or 5th Century BCE.

       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,  topNumber  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  (well, so I have read).

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, Russian, Danish, Roman,
       and  Medieval  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  "V"  or  "v"  keys  to  toggle  Roman Nvmerals.  (Pardon typo/humor, but ran out of
       letters).

       Press "X" or "x" keys to toggle Ancient Roman Numerals (when Roman Nvmerals is activated).

       Press "Y" or "y" keys to toggle Latin Numerals (when Roman Nvmerals and quarter  beads  or
       twelfth beads are activated).

       Press "S" or "s" keys to toggle the 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 "T" or "t" keys to toggle the availability of twelfth beads.  (Mutually exclusive to
       quarter beads).  Intended for the Roman 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 "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, where the lowest
       value of two at bottom of the rightmost column of 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,  where  the  lowest
       value  of  three  at  bottom  of the rightmost column of beads are an eighth of the column
       second from right.

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

       Press "Z" or "z" keys to toggle Modern Numerals on frame (when showing Roman Hand Abacus).

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

       -lineRailColor color
               This  option  specifies  the color of the lines when using checkers (resource name
               "lineRailColor").

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

       -dripSound filename
               This option specifies the  file  for  the  drip  sound  for  changing  the  format
               (resource name "dripSound").

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

       -[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 abacusDemo.xml and currently there are 4 editions possible (Chinese,
               Japanese (and Roman), Korean, and Russian (and Danish)).

       -demopath path
               This   option   specifies   the   path  for  the  demo,  possibly  something  like
               /usr/local/share/games/xabacus (resource name "demoPath"), with the file  name  of
               abacusDemo.xml.   For this to work, the program must be compiled with XML2 or else
               will use a brief static fallback demo.

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

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

       -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 Jupan or Japanese pre-WWII Soroban.

       -russian
               This  option  specifies  the  format  on  the  abacus  (resource name "format") to
               "Russian" for the Russian Schety.  To complete, specify piece" to be  4,  for  the
               older Schety 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.

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

       -medieval
               This option specifies the  format  of  the  abacus  (resource  name  "format")  to
               "Medieval" for the Medieval Counter, with counters instead of beads.

       -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-2017, David A. Bagley

       Luis Fernandes, <elf AT 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  AT 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 AT verizon.net>

       The latest version is currently at:
              http://www.sillycycle.com/abacus.html
              http://ibiblio.org/pub/Linux/apps/math