home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / xact.zip / X16.DOC < prev    next >
Text File  |  1991-02-01  |  87KB  |  2,154 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                           XACT-16C Programmer's Calculator
  8.  
  9.  
  10.                            The Hewlett-Packard Compatible
  11.                                Programmer's Calculator
  12.                             For Your IBM PC or Compatible
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                                 CalcTech Incorporated
  34.                                  6014 NE 60th Street
  35.                                    P.O. Box 15277
  36.                                Seattle, WA. 98115-0277
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.                                  Phone: 206-527-9950
  45.                                   Fax: 206-525-1331
  46.                                 Description
  47.  
  48.      XACT-16C is the Programmer's Calculator of  the  XACT CALCULATORS
  49.      series.   XACT  CALCULATORS  emulate  the  functions  of Hewlett-
  50.      Packard's  handheld  HP-11C  Scientific,  HP-12C  Financial,  and
  51.      HP-16C  Programmer's calculators and include additional  features
  52.      such  as  program  store  to  disk, simulated tape  display,  and
  53.      constant memory.
  54.  
  55.      XACT CALCULATORS includes an auxiliary shell program.  XSHELL.EXE
  56.      is a Terminate-Stay-Resident (TSR) program which  loads  and runs
  57.      all three calculators.  (Note:  A TSR is a program  which remains
  58.      loaded  but  inactive  after  it  finishes execution.   TSRs  are
  59.      usually made active by  pressing  a  "hot-key"  which pops up the
  60.      program,  even  if  another program is executing  at  the  time).
  61.      XSHELL.EXE has 3 hot-keys, one for each calculator.
  62.  
  63.      Normally, the disadvantage of TSRs is that they consume a  lot of
  64.      your computer's memory, even while they're inactive.  Thus if you
  65.      have  loaded  one  or more TSRs, there may not be enough RAM left
  66.      over  to  run  your  spreadsheet,  word processor, or  other  DOS
  67.      programs.  XSHELL.EXE helps reduce "RAM Cram" because it REQUIRES
  68.      ONLY  6K BYTES OF RAM!  In fact, If you have EMS memory installed
  69.      (see section  2.2) in your computer, XSHELL requires an amazingly
  70.      small 1.5K bytes of conventional DOS memory!.
  71.  
  72.      Each  calculator  can  be  run  individually as an  ordinary  DOS
  73.      program by running either X11.EXE,  X12.EXE, or X16.EXE.  Or, all
  74.      three  calculators  can  be  run  as  a  single  TSR  by  running
  75.      XSHELL.EXE.
  76.  
  77.      XSHELL.EXE will deactivate and unload  itself  from  RAM  after 8
  78.      minutes until you register your copy.  This will allow you to try
  79.      XACT CALCULATORS as a TSR before you register.    Once XSHELL.EXE
  80.      unloads itself, your computer  will  behave  as though XSHELL had
  81.      never been loaded in  the  first  place.   To re-activate XSHELL,
  82.      simply run the program again.  It will again  remain  loaded  for
  83.      another 8 minutes.
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.                                    - 2 -
  103.                   Quick Registration for XACT CALCULATORS
  104.  
  105.  
  106.      Registration for XACT  CALCULATORS  is only $27.00.  To register,
  107.      print  a  copy  of  the  file  ORDERFRM.DOC  and  fax or mail the
  108.      completed  form  to  us.  We will quickly fax (or mail) back your
  109.      registration serial number and personal  unlock  code.    Run the
  110.      QUICKREG.EXE program  entering  your  name,  serial  number,  and
  111.      unlock code  and  that's  it,  you're  registered!   QUICKREG.EXE
  112.      serializes XSHELL.EXE and "unlocks" it's 8 minute time limit.
  113.  
  114.      AFTER  YOU'VE  REGISTERED  AND  SUCCESSFULLY   RUN  QUICKREG.EXE,
  115.      XSHELL.EXE WILL NO LONGER HAVE AN  8  MINUTE TIME LIMIT.  It will
  116.      remain resident in your computer's  RAM (waiting for a hot-key to
  117.      become active) until you reboot or manually unload XSHELL.
  118.  
  119.      If you prefer to order your registered copy by mail, feel free to
  120.      mail in your completed form.  A copy of the file  ORDERFRM.DOC is
  121.      shown on the following page.
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.                                    - 3 -
  160.  
  161.      ----------------------------------------------------------------------
  162.                           FAX this form to: (206)-525-1331
  163.                                      or mail to:
  164.                                    CalcTech, Inc.
  165.                                  6014 NE 60th Street
  166.                                    P.O. Box 15277
  167.                               Seattle, WA.  98115-0277
  168.      ----------------------------------------------------------------------
  169.  
  170.                            XACT CALCULATORS - Version 5.1
  171.                                QUICK REGISTRATION FORM
  172.  
  173.        I wish to register  my copy of XACT CALCULATORS (includes XACT-11C
  174.        Scientific, XACT-12C Financial, and XACT-16C Programmer) today for
  175.        $27.00  (Washington  state residents add 8.2%  sales tax).  Please
  176.        (check one or more boxes below):
  177.  
  178.              [ ]  FAX  my serial number and personal unlock code
  179.                   as soon as possible.
  180.  
  181.                   My FAX number is: ____________________________
  182.  
  183.  
  184.              [ ]  Mail my serial number and personal unlock code
  185.                   as soon as possible.
  186.  
  187.  
  188.              [ ]  Send my  registered copy by mail.  (Enclose an
  189.                   an additional $5.00 for U.S. or Canada, $10.00
  190.                   for overseas air mail).  I prefer (check one):
  191.  
  192.                   [ ] 5.25"  or  [ ] 3.5"  diskettes
  193.  
  194.  
  195.      Name: ______________________________ Company:_________________________
  196.  
  197.      Phone: (Day) ______________________ (Evening) ________________________
  198.  
  199.      Address: _____________________________________________________________
  200.  
  201.      City: ______________________________ State: ________ Zip: ____________
  202.  
  203.      Comments: ____________________________________________________________
  204.  
  205.      ______________________________________________________________________
  206.  
  207.      (check one):      [ ] VISA     [ ] Mastercard     [ ] Check Enclosed
  208.  
  209.      Credit card #: ____________________________________ Expires: ____/____
  210.  
  211.      Cardholder's Name (Please print): ____________________________________
  212.  
  213.      Cardholder's Signature: ______________________________________________
  214.  
  215.  
  216.                                    - 4 -
  217.                           Background Information
  218.  
  219.  
  220.      CalcTech,  Inc.  is  a  company  with a respected history in  the
  221.      development of software calculators.   The  article  "TSR Desktop
  222.      Organizers", (PC  Magazine, Aug. 1987), contained a review of the
  223.      leading desk  accessory programs.  Three of the fourteen products
  224.      reviewed incorporated  calculators  developed  by  CalcTech.    A
  225.      CalcTech  calculator  has  also  won  PC  Magazine's  prestigious
  226.      "Editor's Choice" award.
  227.  
  228.      CalcTech has developed calculators for publishers and  OEM's such
  229.      as  Software  Publishing  Corp.,  Bellsoft  Inc.,  DAC  Software,
  230.      Popular Programs Inc., Timeworks Inc., Practical Peripherals, and
  231.      Monogram Software.
  232.  
  233.  
  234.      Here's What A Few Industry Experts Have To Say:
  235.  
  236.      "XACT-16C...  It has power to burn."    --Johnathan  Matzkin,  PC
  237.      Magazine.
  238.  
  239.      "PC-12C's (OEM version of  XACT-12C)  emulation  of the HP-12C is
  240.      exact, it gets my vote."  --Jim Seymour, PC Magazine
  241.  
  242.      "I found Bellsoft's (OEM version)  Pop-Up  calculator  to  be the
  243.      best for office work" --Mark J. Welch, BYTE.
  244.  
  245.      "When a program performs  flawlessly,  it  makes writing a review
  246.      hard.  Such  is  the  case  with  XACT  CALCULATORS."   --Jacques
  247.      Benavente, PCM Magazine
  248.  
  249.      XACT CALCULATORS have  won  PC Brand's 1989 award for outstanding
  250.      technical merit in a shareware program.
  251.  
  252.  
  253.  
  254.                An Important Note About The Shareware Concept
  255.  
  256.      XACT CALCULATORS are copyrighted shareware  programs.    They are
  257.      not freeware or public domain  software.  Payment is made through
  258.      registration and is on the "honor  system".   We ask that you pay
  259.      for  the programs by registration if  after  a  reasonable  trial
  260.      period, you find them to be  useful  in  your work.  We hope that
  261.      you appreciate the "try  before  you  buy" concept that shareware
  262.      products like XACT CALCULATORS provide and that you will take the
  263.      time to register.
  264.  
  265.      Anyone who has ever  purchased  expensive  (or  even inexpensive)
  266.      software can attest to  the  frustration  of  being "burned" by a
  267.      lousy product.   We think XACT CALCULATORS are excellent products
  268.      and we're giving you  the  opportunity to judge for yourself.  If
  269.      you agree, please take a moment to register.
  270.  
  271.  
  272.  
  273.                                    - 5 -
  274.                              Customer Support
  275.  
  276.      Support for XACT  CALCULATORS  is  provided  to  registered users
  277.      using our voice messaging "access code" feature.  You can call us
  278.      at (206)-527-9950  and leave your question on our voice messaging
  279.      system.  You will be given  an  "access code" which is a password
  280.      for your message.  You may then call back (usually within 1 day),
  281.      enter your access code using your touch-tone phone, and receive a
  282.      voice   message  response  to  your  question.     Alternatively,
  283.      registered users  can send your question via E-mail on CompuServe
  284.      at 71641,1721 or by U.S. mail.
  285.  
  286.      When  contacting  customer  support,  please  be  as  specific as
  287.      possible  with  your  question and be sure to mention the version
  288.      number of your copy of XACT CALCULATORS.
  289.  
  290.  
  291.            User Groups, Electronic Bulletin Boards, Disk Vendors
  292.  
  293.      User Groups, BBS SysOps, and Disk Vendors may receive an official
  294.      copy  of  the  latest shareware version of  XACT  CALCULATORS  by
  295.      submitting  a  written  request  to  CalcTech, Inc.   Please  add
  296.      CalcTech  to  your  organization's  mailing  list  and  send  any
  297.      appropriate  information  such  as  your  group's  newsletter  or
  298.      catalog.
  299.  
  300.  
  301.                       Private Labels, Custom Versions
  302.  
  303.      Private labellings and/or custom versions of XACT CALCULATORS can
  304.      be developed for your  organization.    Please  contact CalcTech,
  305.      Inc. by in writing for a quotation.
  306.  
  307.  
  308.               Government, Corporate, Academic Site Licensing
  309.  
  310.      A site license grants you the legal right to make multiple copies
  311.      of a  "master" registered version and it's documentation for your
  312.      organization or group.
  313.  
  314.      A  site   license  is  non-transferable.    We  accept  Visa  and
  315.      Mastercard, personal or corporate checks,  and  written  (fax ok)
  316.      purchase  orders  (NET  30, FOB Seattle, WA.)  for  site  license
  317.      registration.  The following page is a site license form  you can
  318.      use to fax or mail or mail to us for site licensing.
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.                                    - 6 -
  331.      ----------------------------------------------------------------------
  332.                      FAX this form to: (206)-525-1331
  333.                                 or mail to:
  334.                               CalcTech, Inc.
  335.                             6014 NE 60th Street
  336.                                P.O.Box 15277
  337.                          Seattle, WA.  98115-0277
  338.      ----------------------------------------------------------------------
  339.  
  340.                       XACT CALCULATORS - Version 5.1
  341.                       Site License Registration Form
  342.  
  343.  
  344.           Use  this form to obtain a site license for your company or
  345.           group.  Your  registered copy  will be  sent via U.S. mail.
  346.  
  347.           I wish to register XACT CALCULATORS under a multiple (site)
  348.           license agreement.  Please license my organization to allow
  349.           us to duplicate up to: (check one)
  350.  
  351.           [ ]  10 copies .................................... $100.00
  352.  
  353.           [ ]  100 copies ................................... $350.00
  354.  
  355.           [ ]  1000 copies ................................. $1000.00
  356.  
  357.                WA. state residents add 8.2% ................ $_______
  358.  
  359.                                                        TOTAL $_______
  360.  
  361.  
  362.      Company or Group Name: _______________________________________________
  363.  
  364.      Your Name: ___________________________________ Phone: ________________
  365.  
  366.      Address: _____________________________________________________________
  367.  
  368.      City: ______________________________ State: _________ Zip: ___________
  369.  
  370.  
  371.      Method of Payment: (check one)
  372.  
  373.          [ ]  Check enclosed
  374.  
  375.          [ ]  Bill Me.  Terms are NET 30, FOB Seattle, Washington
  376.               Our  Federal  taxpayer  I.D. number is:  91-1382828
  377.  
  378.               Purchase Order Number (optional): ___________________________
  379.  
  380.          [ ]  Charge my Visa or Mastercard
  381.  
  382.               Cardholder's Name: __________________________________________
  383.  
  384.               Credit Card #: ____________________________ Expires:____/____
  385.  
  386.  
  387.                                    - 7 -
  388.                              License Agreement
  389.  
  390.      You are hereby granted  permission  to  use  this software and to
  391.      distribute  copies  of  the  software  and  documentation  in its
  392.      original  form  as  long as it  is  not  distributed  for  profit
  393.      (handling fees  less  than  $5.00  are  ok).   ONLY COPIES OF THE
  394.      SHAREWARE VERSION  OF  THIS  SOFTWARE  AND  DOCUMENTATION  MAY BE
  395.      DISTRIBUTED  IN ANY FORM.  You are not  allowed  to  make  copies
  396.      (except for backup purposes only) or distribute this software and
  397.      documentation once the software has been registered.
  398.  
  399.      THE SOFTWARE HEREIN ARE PROVIDED  "AS IS" WITHOUT WARRANTY OF ANY
  400.      KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
  401.      THE IMPLIED  WARRANTIES  OF  MERCHANTABILITY  AND  FITNESS  FOR A
  402.      PARTICULAR PURPOSE.   THE  ENTIRE  RISK  AS  TO  THE  QUALITY AND
  403.      PERFORMANCE OF THE PROGRAMS IS WITH YOU.
  404.  
  405.      IN  NO  EVENT  SHALL CALCTECH OR ANY OF IT'S OFFICERS, DIRECTORS,
  406.      SHAREHOLDERS, EMPLOYEES,  AFFILIATES,  OWNERS,  OR  OTHER RELATED
  407.      PARTIES BE LIABLE  TO  YOU  OR  ANY OTHER THIRD PARTY FOR DAMAGES
  408.      INCLUDING ANY  LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR
  409.      CONSEQUENTIAL DAMAGES ARISING OUT OF  THE USE OF OR THE INABILITY
  410.      TO USE THIS PRODUCT OR AS TO THE PERFORMANCE OF THIS PRODUCT EVEN
  411.      IF WE HAVE  BEEN  ADVISED  OF  THE POSSIBILITY OF SUCH DAMAGES IN
  412.      ADVANCE.
  413.  
  414.      SOME STATES DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY
  415.      FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES SO  THE  ABOVE LIMITATION
  416.      OR EXCLUSION MAY NOT APPLY TO YOU.
  417.  
  418.      THIS  AGREEMENT  IS  GOVERNED  BY   THE  LAWS  OF  THE  STATE  OF
  419.      WASHINGTON.
  420.  
  421.  
  422.                            Trademarks/Copyrights
  423.  
  424.      HP-11C, HP-12C, and HP-16C are trademarks of Hewlett-Packard Co.
  425.      Lotus is a trademark of Lotus Development Corp.
  426.      Intel is a trademark of the Intel Corp.
  427.      PC-DOS, IBM-PC, PC-XT, PC-AT and PS/2 are trademarks of IBM.
  428.      MS-DOS, Microsoft Windows and Microsoft Word are trademarks of
  429.      Microsoft Corp.
  430.  
  431.      Copyright (C) 1987-1990, 1991 by CalcTech Inc.
  432.      All rights reserved.
  433.      Specifications herein are subject to change without notice.
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.                                    - 8 -
  445.                              TABLE OF CONTENTS
  446.  
  447.  
  448.      Section  Title                                                 Page
  449.  
  450.      1.  Getting Started  .......................................... 11
  451.  
  452.      1.1      Introduction ......................................... 11
  453.      1.2      Other Guides ......................................... 11
  454.      1.3      System Requirements .................................. 11
  455.      1.4      Installing XACT-16C and Making Backups ............... 12
  456.      1.5      Command Line Options & Changing Hot Keys ............. 12
  457.      1.6      Using XACT-16C with Microsoft Windows ................ 13
  458.      1.7      Using XACT-16C on a Network .......................... 13
  459.  
  460.      2.  Running XACT-16C .......................................... 14
  461.  
  462.      2.1      XACT-16C as a Standalone DOS Program ................. 14
  463.      2.2      XACT-16C as a TSR Program ............................ 14
  464.      2.3      XACT-16C as a Removable TSR Program .................. 15
  465.  
  466.      3.  XACT-16C Basics ........................................... 16
  467.  
  468.      3.1      Keyboard Conventions ................................. 16
  469.      3.2      Function Key Usage ................................... 16
  470.      3.3      Prefix Keys .......................................... 16
  471.  
  472.      4.  Features .................................................. 17
  473.      4.1      Getting Help ......................................... 17
  474.      4.2      Viewing the Tape ..................................... 17
  475.      4.3      Stamping the Tape .................................... 17
  476.      4.4      Printing the Tape .................................... 17
  477.      4.5      Storing the Tape ..................................... 17
  478.      4.6      Loading a Program .................................... 18
  479.      4.7      Storing a Program .................................... 18
  480.      4.8      ASCII Table .......................................... 18
  481.  
  482.      5.  USING XACT-16C ............................................ 18
  483.  
  484.      5.1      Prefix Keys .......................................... 18
  485.      5.2      Clearing the Display and Prefix Keys ................. 19
  486.      5.3      Entering Numbers ..................................... 19
  487.      5.4      Short Cut Keys ....................................... 20
  488.      5.5      RPN Logic, the Stack, and the ENTER key .............. 20
  489.      5.6      Stack Operations ..................................... 21
  490.      5.7      Memories and Memory Operations ....................... 21
  491.      5.8      The Index Register and Using Memories Indirectly ..... 22
  492.      5.9      Modes of Operation and Word Size ..................... 22
  493.      5.10     1's Complement Numbers ............................... 22
  494.      5.11     2's Complement Numbers ............................... 22
  495.      5.12     Unsigned Numbers ..................................... 23
  496.  
  497.  
  498.  
  499.  
  500.  
  501.                                    - 9 -
  502.      Section  Title                                                 Page
  503.  
  504.      5.13     Word Size ............................................ 23
  505.      5.14     "SHOW" Functions ..................................... 23
  506.      5.15     Display Windows ...................................... 24
  507.      5.16     Flags ................................................ 24
  508.      5.17     Status ............................................... 25
  509.  
  510.      6.  Arithmetic, Bit Manipulation, and Logical Functions ....... 26
  511.  
  512.      6.1      Addition and Subtraction ............................. 26
  513.      6.2      Multiplication and Division .......................... 26
  514.      6.3      Remainder after Division ............................. 27
  515.      6.4      Square Root .......................................... 27
  516.      6.5      Absolute Value ....................................... 27
  517.      6.6      Logical Functions .................................... 27
  518.      6.7      Bit Functions ........................................ 28
  519.      6.8      Summing Bits ......................................... 29
  520.      6.9      Masking .............................................. 29
  521.      6.10     Left Justify ......................................... 29
  522.  
  523.      7.  Shifting and Rotating Bits ................................ 30
  524.  
  525.      7.1      Shift Functions ...................................... 30
  526.      7.2      Rotate Functions ..................................... 30
  527.  
  528.      8.  Floating Point Mode ....................................... 31
  529.  
  530.      8.1      Converting to Floating Point Mode .................... 31
  531.      8.2      Floating Point Calculations .......................... 31
  532.      8.3      Returning to Integer Mode ............................ 32
  533.  
  534.      9.  Programming XACT-16C ...................................... 32
  535.  
  536.      9.1      Introduction to Programming .......................... 32
  537.      9.2      Entering a Program ................................... 32
  538.      9.3      Labels in Programs ................................... 34
  539.      9.4      Using Subroutines .................................... 34
  540.      9.5      Returning from a Program or Subroutine ............... 34
  541.      9.6      Entering Data and the Run/Stop Key ................... 34
  542.      9.7      Branching Using the Index Register ................... 35
  543.      9.8      Program Loops Using the Index Register ............... 35
  544.      9.9      Program Loops and Branches Using the X and Y Registers 36
  545.      9.10     Branching Using Flags ................................ 36
  546.      9.11     Branching On Bit Set/Clear ........................... 37
  547.      9.12     The Single-Step Instruction .......................... 37
  548.      9.13     Moving to a Program Line Number ...................... 37
  549.  
  550.      10.  Appendix ................................................. 38
  551.  
  552.      10.1  Error Conditions ........................................ 38
  553.  
  554.  
  555.  
  556.  
  557.  
  558.                                    - 10 -
  559.      1.  Getting Started
  560.  
  561.  
  562.      1.1  Introduction
  563.  
  564.  
  565.      XACT CALCULATORS  are software which emulate the functions of the
  566.      handheld  models  of  Hewlett-Packard's HP-11C Scientific, HP-12C
  567.      Financial, and  HP-16C  Programmer's  calculators.    If  you are
  568.      familiar with one or  more  of  these  calculators, you will find
  569.      that you  already  know  how  to  use  XACT CALCULATORS.  If not,
  570.      you'll find XACT CALCULATORS easy to learn and use.    They  will
  571.      become an invaluable tool in your work.
  572.  
  573.      XACT-16C   is   the   Programmer's   Calculator  program.    XACT
  574.      CALCULATORS  also incorporate the XACT-11C Scientific  Calculator
  575.      and the XACT-12C Financial Calculator.
  576.  
  577.      If you are already familiar with DOS and with the HP-16C, you may
  578.      only need to read Chapters 2 and 3.    This  will  provide enough
  579.      information to get you started.
  580.  
  581.      If you are new to DOS and/or the HP-16C, you may wish to read, or
  582.      at least skim, Chapters 1 through 8.
  583.  
  584.  
  585.      1.2  Other Guides
  586.  
  587.      There are a number  of  guides  and  references available for the
  588.      HP-16C  that  can  be  used  with  XACT-16C  as  well.  These are
  589.      generally available in bookstores and other places where Hewlett-
  590.      Packard calculators are sold.   Some  of  these  publications are
  591.      listed below
  592.  
  593.      "HP-16C  Owner's  Handbook  and  Problem  Solving  Guide"  Covers
  594.      general  operations, functions, applications, and programming  of
  595.      the HP-16C.  Published by the Hewlett-Packard Company.
  596.  
  597.      "An Easy Course in using the HP-16C" by Ed  Keefe.  Published  by
  598.      Grapevine Publishing, Inc. P.O. Box 118, Corvallis, OR, 97339.
  599.  
  600.  
  601.      1.3  System Requirements
  602.  
  603.      To operate the XACT-16C Calculator, you will need an IBM PC,  PC-
  604.      XT, PC-AT, PS/2, or close compatible equipped with  at  least the
  605.      following:
  606.  
  607.         256K RAM
  608.         PC-DOS or MS-DOS version 3.00 or later
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.                                    - 11 -
  616.      1.4  Installing XACT CALCULATORS and Making Backups
  617.  
  618.      You  should make a copy of the programs  contained  on  the  XACT
  619.      CALCULATORS diskette for  backup  purposes.  Use  the  DOS "copy"
  620.      command to copy all the files to another diskette or to your hard
  621.      disk.  There may be a file named README.DOC on your disk.  If so,
  622.      you should examine it using your word processor or the DOS "type"
  623.      command.
  624.  
  625.  
  626.      1.5  Command Line Options & Changing Hot-Keys
  627.  
  628.      A command line option  is  an  additional  command typed when you
  629.      first load X16.EXE or  XSHELL.EXE.    There  are several of these
  630.      options available.  For example, if you wish to start XACT-16C in
  631.      octal mode, you would type:
  632.  
  633.          x16  /radix=o  [ENTER]
  634.  
  635.      ([ENTER] means press the ENTER key). As another example, to start
  636.      up XACT-16C with an 8 bit word size and the mouse disabled:
  637.  
  638.          x16   /nomouse /wsize=8
  639.  
  640.      The  following  is  a list of available command line options when
  641.      running XACT-16C.
  642.  
  643.          /mono         Force XACT-16C into monochrome mode
  644.          /sci          Start up in scientific notation (XACT-11C only)
  645.          /nomouse      Disable mouse operation
  646.          /nosignon     Disable the signon screen
  647.          /swap=<path>  Directory/Path used to store swap files
  648.          /wsize=nn     Set word size (XACT-16C only). Valid settings
  649.                        for nn are 2 to 64.
  650.          /radix=n      Set radix (XACT-16C only). Valid settings for
  651.                        n are h,d,o,b, or f (hex,dec,oct,bin,float)
  652.  
  653.      There are additional command line options available  when running
  654.      the  program  XSHELL.EXE.   The following  is  a  list  of  these
  655.      options.
  656.  
  657.          /alt          Changes invocation key to Alt-s (XACT-11C),
  658.                        Alt-f (XACT-12C), Alt-p (XACT-16)
  659.          /alt-ctrl     Change invocation key to Alt-Ctrl-s (XACT-11C),
  660.                        Alt-Ctrl-f (XACT-12C), Alt-Ctrl-p (XACT-16C)
  661.          /mono         Force XACT CALCULATORS into monochrome mode
  662.          /sci          Set scientific notation (XACT-11C only)
  663.          /noems        Disable EMS memory usage (if EMS memory present)
  664.          /nomouse      Disable mouse operation
  665.          /nosignon     Disable the signon screen
  666.          /swap=<path>  Directory/Path used for swap files.  (See section
  667.                        on using XACT CALCULATORS on a network)
  668.          /wsize=nn     Set word size (XACT-16C only). Valid settings
  669.                        for nn are 2 to 64.
  670.  
  671.  
  672.                                    - 12 -
  673.          /radix=n      Set radix (XACT-16C only). Valid settings for
  674.                        n are h,d,o,b, or f (hex,dec,oct,bin,float)
  675.  
  676.      1.6 Using XACT-16C with Microsoft Windows
  677.  
  678.  
  679.      If you use Microsoft Windows, you  may  wish to set up Windows to
  680.      run  XACT-16C.    XACT-16C  will  run as an ordinary "text  mode"
  681.      application under Windows  which  can  be  set  up  to  be either
  682.      windowed or in full screen mode.
  683.  
  684.      To run XACT-16C under Windows, you should first create a PIF file
  685.      which is used to "describe" the program to Windows.  Use  the PIF
  686.      editor  (pifedit.exe)  to  create  an  x16.pif  file.    For  the
  687.      "optional parameters" field, type in /nosignon  so  that XACT-16C
  688.      won't  display  it's  startup screen every time you click on it's
  689.      icon.  Also make sure that the "KB required" field is set to 128.
  690.      (For additional information on using  the  PIF  editor,  see your
  691.      Windows documentation).
  692.  
  693.      Once you  have  created  a  PIF  file,  you will probably want to
  694.      create an icon  so  you  can  easily  invoke  XACT-16C  by double
  695.      clicking  on an icon.  We have supplied a custom icon you can use
  696.      to do  this.    From  the  Windows  program manager, create a new
  697.      program  item  and  in the "command line" field, type in x16.pif.
  698.      Then select the "change  icon"  button and type in xact.ico.  (If
  699.      you're unclear  on  these  procedures,  they're  also  covered in
  700.      Microsoft's Windows documentation).
  701.  
  702.      1.7  Using XACT-16C on a Network
  703.  
  704.      XACT-16C  and  all  XACT  CALCULATORS  are  compatible  with most
  705.      networks.    If  you  wish  to  use  them on a network, read  the
  706.      following information.
  707.  
  708.      All XACT CALCULATORS use a technique known as  swapping  in order
  709.      to save memory as well as save the state of each  calculator each
  710.      time  you  finish  using  it.    Swapping  creates  a  number  of
  711.      "temporary" files.  By default, these files are saved in the same
  712.      directory as the XACT CALCULATOR  programs themselves.  If two or
  713.      more  users on a network are running  a  calculator,  their  swap
  714.      files  will eventually corrupt each other, causing  unpredictable
  715.      results.  There are 2 different ways to avoid this problem.  Both
  716.      involve  changing  the  directory  in  which the swap  files  are
  717.      stored.
  718.  
  719.      The  first  method  is by using an environmental variable to tell
  720.      XACT  CALCULATORS  the  path to use to store its swap files.  For
  721.      example, assume you have  2  network users (Jan and Bill) each of
  722.      which  have access to network drive N:.   Assume  also  that  the
  723.      directorys  N:\USER\JAN\TEMP  and  N:\USER\BILL\TEMP have already
  724.      been created on drive  N:   The environmental variable can be set
  725.      by putting the following statement in Jan's AUTOEXEC.BAT file:
  726.  
  727.  
  728.  
  729.                                    - 13 -
  730.         SET XACT=N:\USER\JAN\TEMP
  731.  
  732.      whereas Bill's AUTOEXEC.BAT file would contain the statement:
  733.  
  734.         SET XACT=N:\USER\BILL\TEMP
  735.  
  736.      Now  even though Jan and Bill may be running the same copy of one
  737.      of the calculators, they would  each have separate copies of swap
  738.      files and there would be no conflict.
  739.  
  740.      The second method uses  the  same idea, however, the swap path is
  741.      chosen from the command line.  For example:
  742.  
  743.         X16 /SWAP=C:\TEMP
  744.  
  745.      would place the swap files  in the directory C:\Temp, assuming it
  746.      existed.
  747.  
  748.  
  749.  
  750.      2.   Running XACT-16C
  751.  
  752.  
  753.      2.1  Running XACT-16C as a stand-alone DOS program
  754.  
  755.      To run XACT-16C, at the DOS prompt type:
  756.  
  757.          x16  [ENTER]
  758.  
  759.  
  760.      2.2  Running XACT-16C as a TSR program
  761.  
  762.      To run XACT-16C as a TSR program, type
  763.  
  764.          xshell  [ENTER]
  765.  
  766.      You will see  the  copyright  message  appear on the screen.  The
  767.      computer  will then return to the DOS prompt  and  appear  as  if
  768.      nothing  had  happened.    However,  the  XACT  CALCULATORS shell
  769.      program  has now been loaded into your  computer's  memory.    To
  770.      activate XACT-16C, press:
  771.  
  772.          Alt-Shift-P
  773.  
  774.      XACT-16C  will  now  appear  on  your  screen,  ready to  perform
  775.      calculations.    To  exit from XACT-16C, press the Esc key.  In a
  776.      likewise fashion, to run the XACT-11C scientific  calculator, you
  777.      would  instead  press  Alt-Shift-S,  and  to  run   the  XACT-12C
  778.      Financial calculator you  would  press Alt-Shift-F.  You can also
  779.      unload XSHELL from RAM by pressing Alt-Shift-U.
  780.  
  781.      When you run XSHELL, it will use between  1.5K  and  6K  bytes of
  782.      your computer's RAM.  To determine exactly how much memory XSHELL
  783.      is using, you can run the DOS command "chkdsk"  both  before  and
  784.  
  785.  
  786.                                    - 14 -
  787.      after running XSHELL and  noting  the  difference in memory bytes
  788.      free.   If you are unfamiliar with this  command,  see  your  DOS
  789.      reference manual.
  790.  
  791.      EMS (Expanded memory specification)  memory  is  a type of memory
  792.      specification that was developed  jointly  by  Lotus,  Intel, and
  793.      Microsoft.   EMS memory was developed as  a  work-around  to  get
  794.      around the  640K  DOS  memory  limitation.    In order to use EMS
  795.      memory, a program must be  written specifically to use EMS memory
  796.      (if available).  XSHELL is such  a  program.   If you have an EMS
  797.      memory board installed in your  computer, XSHELL will put as much
  798.      of  itself  in  EMS memory as it can and will  also  "swap"  your
  799.      computer's memory to EMS memory  when  you  pop-up  a calculator.
  800.      With EMS memory installed, XSHELL  will require less than 1.5K of
  801.      DOS  memory!.    If  you  don't  have  EMS memory but have a  386
  802.      computer,  there are several commercial programs available  which
  803.      can "simulate" EMS memory.
  804.  
  805.      Even if you don't have EMS memory installed, XSHELL requires less
  806.      than 6K bytes  of  DOS  memory.   Without EMS memory, XSHELL will
  807.      swap to disk, creating the file XSHELL.SWP.  This file may  be as
  808.      large as 131k bytes.
  809.  
  810.      If you have not  registered  your  copy  of XACT CALCULATORS, you
  811.      will only be able to use them as  a  TSR  program  for 8  minutes
  812.      before they automatically unload themselves from memory.  After 8
  813.      minutes,  you  will  hear  a  tone  telling  you that  XSHELL  is
  814.      unloading.  You will have to run XSHELL  again  in  order  to use
  815.      XACT CALCULATORS as a TSR.  Once you have registered and received
  816.      your serial number and unlock code, you can  enter  these numbers
  817.      into  the program QUICKREG.EXE which will  remove  the  8  minute
  818.      limit from XSHELL.  You can always run X16.EXE as a (non-TSR) DOS
  819.      program without any limitations whatsoever.
  820.  
  821.  
  822.      2.3  XACT-16C as a Removable TSR Program
  823.  
  824.      When the shell program is loaded  as  a TSR program as in section
  825.      2.1 above, it remains loaded in your computer's memory until your
  826.      computer  is  rebooted  or powered off.    To  unload  the  shell
  827.      program, press:
  828.  
  829.          Alt-Shift-U
  830.  
  831.      Unloading the shell  program  will  not  work  if  any  other TSR
  832.      programs have been loaded after XSHELL.EXE.   Unfortunately, this
  833.      is a limitation of DOS itself.
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.                                    - 15 -
  844.      3.  XACT-16C Basics
  845.  
  846.  
  847.      3.1  Keyboard Conventions
  848.  
  849.      Throughout this manual, XACT-16C function keys are denoted within
  850.      a box.  For example, the  function  key  for a left shift (SL) is
  851.      shown as [SL].    In  the  case  of function keys which require a
  852.      prefix key (discussed in the next section), the prefix key is not
  853.      given in this manual since it can easily be determined.
  854.  
  855.      Keys on the PC keyboard are listed in this  manual  using  single
  856.      quotes  such as 'a'.  Numbers to be  entered  into  XACT-16C  are
  857.      shown  in normal type, except for the hex  numbers  A  through  F
  858.      which are shown as function keys.
  859.  
  860.  
  861.      3.2  Function Key Usage
  862.  
  863.      XACT-16C has approximately 70 different function keys arranged in
  864.      the same ordering as  on  the HP-16C.  Function keys are arranged
  865.      in  groups of up to 3 functions per key; an upper, a lower and  a
  866.      middle  function  all  correspond to one function key.  The upper
  867.      and  lower  functions  are invoked by first pressing a prefix key
  868.      (discussed in the next  section)  and then the function key.  The
  869.      middle function does not require the use of a prefix key.  The PC
  870.      keystroke corresponding to function key is  shown  immediately to
  871.      the left of the function box.
  872.  
  873.      The  first  row  of function keys use the PC keys F1 through F10.
  874.      The second through  fourth  rows use the alphabetic characters as
  875.      arranged left to right on your PC keyboard.
  876.  
  877.      For example,  the XACT-16C's [Sto] (store) function key is mapped
  878.      to the letter  'v'  on  the  PC  keyboard.    Likewise, the [ A ]
  879.      function key is invoked by pressing F1.
  880.  
  881.  
  882.      3.3  Prefix Keys
  883.  
  884.      The left and the right shift  keys  on the PC keyboard operate as
  885.      prefix keys, functionally equivalent to the gold [ f  ]  and  the
  886.      blue  [ g ] keys on the HP-16C.  They let you activate the  upper
  887.      and lower sets of functions assigned to a function key.  The left
  888.      shift key on the PC is used as a prefix key to activate the upper
  889.      set of functions.  The right shift key is used as a prefix key to
  890.      activate the lower set of functions.  For example, to  invoke the
  891.      [SR]  function,  you  would press and release the left shift key,
  892.      then press  F2.    To  invoke  the  [ASR] function, you press and
  893.      release the right shift key, then F2.  Likewise,  to  invoke  the
  894.      [sqrtx] function, you would press  and  release  the  right shift
  895.      key, then press 't'.
  896.  
  897.  
  898.  
  899.  
  900.                                    - 16 -
  901.      4.  Features
  902.  
  903.  
  904.      4.1  Getting Help
  905.  
  906.      A Help menu is available when you are working with XACT-16C.   To
  907.      obtain help press:
  908.  
  909.          Alt-F1
  910.  
  911.      An information screen will appear in a window.  The help menu can
  912.      be removed by pressing F1 again.
  913.  
  914.  
  915.      4.2  Viewing the Tape
  916.  
  917.      XACT-16C provides a  simulated  tape display which keeps a record
  918.      of your  calculations  as  you  perform  them.   To view the tape
  919.      press:
  920.  
  921.          Alt-F2
  922.  
  923.      The tape will appear in a window.  To remove  the  tape, press F2
  924.      again.
  925.  
  926.  
  927.      4.3  Stamping the Tape
  928.  
  929.      To stamp a message on the simulated tape press:
  930.  
  931.          Alt-F4
  932.  
  933.      The message will appear on the tape as  well  as  the  printer or
  934.      tape disk file if either of these options are being used.
  935.  
  936.  
  937.      4.4  Printing the Tape
  938.  
  939.      To print the tape as you make calculations press:
  940.  
  941.          Alt-F5
  942.  
  943.      To turn off printing, press F5 again.
  944.  
  945.  
  946.      4.5  Storing the Tape
  947.  
  948.      The simulated tape may be  saved  to  a  disk  file  as  you make
  949.      calculations.   Each  time  you  use  XACT-16C,  calculations are
  950.      appended to the tape file.  To store the tape, press
  951.  
  952.          Alt-F6
  953.  
  954.  
  955.  
  956.  
  957.                                    - 17 -
  958.      The tape will be saved under the name X16.ASC  in  the  directory
  959.      which you started XACT-16C in.
  960.  
  961.  
  962.      4.6  Loading a Program
  963.  
  964.      To load a program previously saved press:
  965.  
  966.          Alt-F7
  967.  
  968.      A window  will  appear  requesting  a  file  name.  Enter the DOS
  969.      filename of the program you wish to retrieve.
  970.  
  971.  
  972.      4.7  Storing a Program
  973.  
  974.      XACT-16C  allows  you  to save programs as disk files.  To save a
  975.      program on disk, press:
  976.  
  977.          Alt-F8
  978.  
  979.      A window will appear  prompting  you for comments.  You can enter
  980.      up to 3 lines of comments, associated with the  program  you  are
  981.      saving.  Press the  Esc  key after you have entered any comments.
  982.      Another window will appear prompting you for a  filename.   Enter
  983.      any valid DOS filename.
  984.  
  985.  
  986.      4.8 ASCII Table
  987.  
  988.      An ASCII table will appear in a window over XACT-16C by pressing
  989.  
  990.          Alt-F10
  991.  
  992.      Press the PgUp or PgDn keys  to  move through the ASCII table, or
  993.      press  Esc to remove the ASCII table.
  994.  
  995.  
  996.  
  997.      5.  USING XACT-16C
  998.  
  999.  
  1000.      5.1  Prefix Keys
  1001.  
  1002.      The left and the right shift  keys  on the PC keyboard operate as
  1003.      prefix keys, functionally equivalent to the gold [ f  ]  and  the
  1004.      blue  [ g ] keys on the HP-16C.  They let you activate the  upper
  1005.      and  lower sets of functions assigned to each PC  key.   The left
  1006.      shift key on the PC is used as a prefix key to activate the upper
  1007.      set of functions.  Likewise, the right shift  key  is  used  as a
  1008.      prefix key to activate the lower set of functions.    The  prefix
  1009.      keys are "sticky", that is, you press a prefix key and it remains
  1010.      set, even after you release the key.  When you press  and release
  1011.      a prefix key,  the  corresponding set of prefixes will highlight,
  1012.  
  1013.  
  1014.                                    - 18 -
  1015.      indicating which prefix was set.  To clear a prefix key,  use the
  1016.      [PRFX] function.
  1017.  
  1018.      For example, to activate the [HEX] function, press the letter 'e'
  1019.      on the PC keyboard.  On the other hand, the [DSZ] function key is
  1020.      mapped  to  the  same PC key as the [Hex] function but requires a
  1021.      prefix key.  To invoke the [DSZ] function, press and  release the
  1022.      right  shift  key,  (the  lower  prefix key), and then press  the
  1023.      letter 'e'.
  1024.  
  1025.      The prefix keys can also be invoked using the function keys [ f ]
  1026.      and [ g ].
  1027.  
  1028.  
  1029.      5.2  Clearing the Display and Prefix Keys
  1030.  
  1031.      To  clear  a number in the display,  press  the  [CLx]  (Clear  X
  1032.      Register) key.  The display will now contain the value 0.   While
  1033.      entering a number, you may clear the last digit entered  with the
  1034.      [BKSP] key.  For example, if  you  meant to enter the number 1234
  1035.      and mistakenly entered 1235,  press  [BKSP]  and  then press 4 to
  1036.      correct  the  number.   To clear a prefix key, i.e., the lower or
  1037.      the upper prefix, press the [PREFIX] key.  To  clear  all  memory
  1038.      storage registers, press  [REG].   This key doesn't affect values
  1039.      stored in the stack or the LastX register.
  1040.  
  1041.  
  1042.      5.3  Entering Numbers
  1043.  
  1044.      Numbers  are  entered  into XACT-16C by using the numeric keys or
  1045.      the  numeric keypad for the numbers 0 through  9,  and  the  keys
  1046.      mapped to the hex numbers A  through  F  on the PC keyboard.  The
  1047.      decimal point key is only  operational in floating point mode and
  1048.      is mapped to  the  '.'  key  on  the numeric keypad.  Notice that
  1049.      XACT-16C  will  not  accept  certain  numbers  in   integer  mode
  1050.      depending on the radix value being used.   If  the  radix  is Bin
  1051.      (Binary), XACT-16C will only accept the numeric digits  0  and 1,
  1052.      all others are  ignored.    When  using the Octal radix, only the
  1053.      digits  0  through  7 are valid, and so on.  XACT-16C will accept
  1054.      only  as  many  entered  digits  as  the  current word  size  and
  1055.      complement mode will allow.  For example:
  1056.  
  1057.      Keystroke                 Display        Comment
  1058.      ================================================================
  1059.      [Dec]                                    Set decimal mode
  1060.      8 [Wsize]
  1061.      [2's]                                    2's comp. 8 bit
  1062.  
  1063.      255                       -1 Dec
  1064.      [Unsgn]                  255 Dec
  1065.  
  1066.      The  number   255  (FF  Hex)  cannot  be  represented  using  2's
  1067.      complement  8 bit math. Since the high order bit  (interpreted as
  1068.      a sign bit)  is  a 1, the 2's complement of the number is formed.
  1069.  
  1070.  
  1071.                                    - 19 -
  1072.      When unsigned math  is used, the number is interpreted correctly.
  1073.      Notice that if you tried  to enter the number 256 (100 Hex) while
  1074.      operating with a word size  of 8 bits, the  last  digit would not
  1075.      be accepted since 256 requires  a word size of at least 9 bits to
  1076.      be represented.
  1077.  
  1078.  
  1079.      5.4  Short Cut Keys
  1080.  
  1081.      You can use the Enter key  on  the  PC, (also known as the Return
  1082.      key)  as the XACT-16C [ENTER] key as a short cut.  Also, the '+',
  1083.      '-', '*', and '/'  keys   adjacent to the numeric keypad function
  1084.      as you would expect.
  1085.  
  1086.  
  1087.      5.5  RPN Logic, the Stack, and the ENTER key
  1088.  
  1089.      You may already  be  familiar with Reverse Polish Notation (RPN).
  1090.      RPN  is a type of  calculator  logic that eliminates the need for
  1091.      the equals   key  and for parenthesis in calculator computations.
  1092.      Instead, operands   are entered into the calculator and separated
  1093.      using the [ENTER] key.  For example, to add the numbers 3 and 4:
  1094.  
  1095.      Keystroke                 Display        Comment
  1096.      ================================================================
  1097.      [Dec]                                    Decimal mode
  1098.      3 [ENTER]                 3 Dec
  1099.      4 [ + ]                   7 Dec          Add
  1100.  
  1101.      The result, 7, is now displayed.  To multiply this result by 5:
  1102.  
  1103.      Keystroke                 Display        Comment
  1104.      ================================================================
  1105.      5 [ * ]                   35 Dec
  1106.  
  1107.  
  1108.      The way that XACT-16C performs  these calculations with RPN is by
  1109.      using a stack.  The stack consists of 4 registers:  X,  Y, Z, and
  1110.      T.   It is not generally necessary  to  understand  the  internal
  1111.      workings of the stack but for completeness they  will  briefly be
  1112.      discussed below.
  1113.  
  1114.      Any number displayed is said to be in the X  register.   When the
  1115.      [ENTER] key is pressed, a number in the X Register is pushed into
  1116.      the Y  Register  and  the  previous  number  in the Y Register is
  1117.      pushed  into  the  Z  Register.    The  previous  number in the Z
  1118.      register   is pushed into the T Register.  T stands for "Top" and
  1119.      represents the top of  the  stack of numbers.  The previous value
  1120.      of the T register   is lost.  When a function key such as the [+]
  1121.      key  is pressed, the value held in the Y register is added to the
  1122.      X register  and  this  result  is  now  stored in the X register.
  1123.      Pressing  [ENTER]  does  one  other  thing, it leaves  the  stack
  1124.      disabled. This means that a  number entered after the [ENTER] key
  1125.      has  been pressed is not pushed on the stack, it remains in the X
  1126.  
  1127.  
  1128.                                    - 20 -
  1129.      register.  Most operations enable the stack so that  when  a  new
  1130.      number  is  entered,  the previous contents of the X register are
  1131.      pushed into the Y register.  The most notable exceptions  to this
  1132.      rule are the [ENTER] and the [Clx] function keys.
  1133.  
  1134.  
  1135.      5.6  Stack Operations
  1136.  
  1137.      Roll Up  -  The  [R|]  (shown on XACT-16C as a 'R' followed by an
  1138.      arrow pointing up) function  rolls  up the stack.  The X register
  1139.      is copied  into the Y  register.    The Y register is copied into
  1140.      the  Z  register,   and the Z  register  is  copied  into  the  T
  1141.      register.  The T register is "rolled around" into the X register.
  1142.  
  1143.      Roll Down - The [R|] (shown on XACT-16C as a  'R'  followed by an
  1144.      arrow pointing down)  function  rolls  down  the  stack.    The T
  1145.      register  is  copied   into the Z register.  The  Z  register  is
  1146.      copied  into  the  Y register,  and the Y register is copied into
  1147.      the  X  register.  The X register  is rolled around  into  the  T
  1148.      register.
  1149.  
  1150.      X exchange Y - The [x<>y] function exchanges the contents  of the
  1151.      X and Y registers.
  1152.  
  1153.      Last X register - The [LSTx] register holds the previous contents
  1154.      of the X register before an operation was performed.   The [LSTx]
  1155.      register  is  used  to restore the number entered if an incorrect
  1156.      function key is mistakenly pressed.
  1157.  
  1158.  
  1159.      5.7  Memories and Memory Operations
  1160.  
  1161.      XACT-16C  has  16  memories that can  be  used  for  storing  and
  1162.      recalling  numbers.    These memories are called memory registers
  1163.      and  are  referred   to as registers R0 through R9 and RA through
  1164.      RF. To store  a  number  in a memory, press [Sto] n, where n is a
  1165.      number 0 through 9 (using the numeric keypad)  or hex  number [A]
  1166.      through [F].
  1167.  
  1168.      For example:
  1169.  
  1170.      Keystroke                 Display        Comment
  1171.      ================================================================
  1172.      32 [Sto] [ A ]            32 Dec         32 in register RA
  1173.      14 [Sto] 2                14 Dec         14 in register R2
  1174.      [Rcl] [ A ]               32 Dec         Recall reg. RA
  1175.      [Rcl] 2 [ + ]             46 Dec         Add to reg. R2
  1176.  
  1177.  
  1178.      Notice in the preceding example that  the  [  A ] key is a mapped
  1179.      XACT-16C  key,  not  the letter 'A' on the  PC  keyboard  (it  is
  1180.      invoked by pressing the F1 key on the PC keyboard.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.                                    - 21 -
  1186.      5.8  The Index Register and Using Memories Indirectly
  1187.  
  1188.      Memories  can  also  be  accessed  indirectly  using   the  Index
  1189.      register.    The    index  register  is  accessed with the [ I  ]
  1190.      function key.    A  number  may  be  stored in the index register
  1191.      using  [Sto] [ I ] and recalled from  the  index  register  using
  1192.      [Rcl] [ I ].  Also, the [x<>I] function key  is  used to exchange
  1193.      the X register with the Index Register in the same fashion as the
  1194.      [x<>y] function key is used to exchange the X  and  Y  registers.
  1195.      For the examples below, assume STATUS= 2-16-0000.
  1196.  
  1197.      Keystroke                 Display        Comment
  1198.      ================================================================
  1199.      5 [Sto] [ I ]             5 Dec          Register I= 5
  1200.      20 [Sto] [(i)]           20 Dec          Register 5= 20
  1201.      [CLx]                     0 Dec          Clear X reg
  1202.      [Rcl] 5                  20 Dec          Reg 5= 20
  1203.  
  1204.  
  1205.      In the above example, the  Indirect Index Register [(i)] was used
  1206.      to store a number indirectly.  The memory register   accessed was
  1207.      determined by the contents  of  the  [I]  register.  Memories can
  1208.      also be recalled indirectly using  the operation [Rcl] [(i)], and
  1209.      exchanged  with  the  X  register  indirectly  using  the  [x(i)]
  1210.      function.
  1211.  
  1212.  
  1213.      5.9  Modes of Operation and Word Size
  1214.  
  1215.      XACT-16C operates in 2 modes, integer and floating point. Integer
  1216.      mode  is  active  when  any  of  the  following radix  conversion
  1217.      function  keys are pressed: [HEX], [DEC], [OCT], [BIN]
  1218.  
  1219.      These keys allow numbers in integer mode to be displayed  in hex,
  1220.      decimal, octal  and binary respectively.  In addition, numbers in
  1221.      integer mode may be  interpreted  as  unsigned  values, or as 1's
  1222.      complement or 2's complement numbers using word sizes  from  2 to
  1223.      64 bits.
  1224.  
  1225.  
  1226.      5.10  1's Complement Numbers
  1227.  
  1228.      To use 1's complement  arithmetic,  press  [1's]. All numbers and
  1229.      operations entered while in integer  mode  will be interpreted as
  1230.      1's complement numbers.  Pressing  the  [ChS]  function  key will
  1231.      display the 1's complement of a number  in the display.
  1232.  
  1233.  
  1234.      5.11  2's Complement Numbers
  1235.  
  1236.      Pressing [2's] will activate 2's  complement  arithmetic  when in
  1237.      integer mode.  All operations subsequently performed will be done
  1238.      using  2's complement arithmetic.  2's  complement  mode  is  the
  1239.      default mode when XACT-16C is first loaded.
  1240.  
  1241.  
  1242.                                    - 22 -
  1243.      5.12  Unsigned Numbers
  1244.  
  1245.      Pressing  [Unsgn]  will  activate  unsigned  arithmetic  when  in
  1246.      integer mode.   All  arithmetic  operations  will  be interpreted
  1247.      using unsigned math.   When  the [ChS] key is pressed, the result
  1248.      has  no  meaning.   However, the  2's complement of the number is
  1249.      displayed along with the Overflow flag, shown as  the  letter 'G'
  1250.      to the right of the number.
  1251.  
  1252.  
  1253.      5.13  Word Size
  1254.  
  1255.      In decimal mode, XACT-16C can operate using any word size  from 2
  1256.      to  64  bits.   To set the word size, enter a number from 2 to 64
  1257.      and  press [Wsize].  Notice that if you're  using  a  small  word
  1258.      size,  say 4 bits, you won't be able to enter the number into the
  1259.      calculator larger than +3 (if  you're  in  2's  complement mode).
  1260.      Thus, you won't be able  to increase the word size to say 16 bits
  1261.      without first resetting the word size to 64 bits.
  1262.  
  1263.      To reset the word size to  64  bits,  press 0 [Wsize].  This will
  1264.      allow    you  to then set a word size of  say  16  bits  if,  for
  1265.      example,  you  were   previously using a 4 bit word size and thus
  1266.      couldn't enter the number 16 to set a 16 bit word size.
  1267.  
  1268.      Changing  word  size  will affect numbers held  in  the  XACT-16C
  1269.      registers.  For example:
  1270.  
  1271.      Keystroke                 Display        Comment
  1272.      ================================================================
  1273.      [Dec]
  1274.      16 [Wsize]                               16 bit word size
  1275.      [2's] [Hex]                              2's compl, hex
  1276.      4E20 [ENTER]              4E20 Hex
  1277.      8 [Wsize]                   20 Hex       8 bits word size
  1278.  
  1279.      Notice when the  display  was  set  to  8 bits, the number in the
  1280.      display was truncated to 8 bits.
  1281.  
  1282.  
  1283.      5.14  "SHOW" Functions
  1284.  
  1285.      XACT-16C will display a  number  in a different radix for about 2
  1286.      seconds,  then revert  back  to  the  current radix, whenever the
  1287.      [Show]  function  key,  immediately  above  that  radix  key,  is
  1288.      pressed.   For instance, say you have  pressed  [Bin]  to  select
  1289.      binary as your default radix.  You may view a  number temporarily
  1290.      in hex by pressing the [Show] key immediately above the [Hex] key
  1291.      (press the left shift key, then press the letter 'e').
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.                                    - 23 -
  1300.      5.15  Display Windows
  1301.  
  1302.      In  decimal  mode,  XACT-16C  can  show  up  to  8 digits on it's
  1303.      display.  Since XACT-16C is capable of word sizes up to  64 bits,
  1304.      in  some cases, not all the digits can be shown on the display at
  1305.      a time.  For example:
  1306.  
  1307.      Keystroke                 Display        Comment
  1308.      ================================================================
  1309.      [Hex]
  1310.      10 [Wsize]                               16 bit word
  1311.      7B2 [Bin]            <- 10110010 Bin     More digits left
  1312.      [Wndo] 1                111 ->   Bin     Leftmost 8 bits.
  1313.      [Wndo] 0             <- 10110010 Bin     Reset window
  1314.  
  1315.  
  1316.      The number 7B2 Hex (11110110010 Bin) cannot be displayed within 8
  1317.      digits.  Only the lower order 8 bits are displayed.  The [Wndo] 1
  1318.      key sequence sets the display window to the next higher   order 8
  1319.      bits, bits 7 through 15.  Likewise, [Wndo]  2  would  be  used to
  1320.      display bits 8 through 23 and  so  on.   In  the current example,
  1321.      the number 7B2 is an 11 bit number. Setting [Wndo] 2 would show a
  1322.      blank display.
  1323.  
  1324.      Windows  may  also  be "scrolled" one digit at a time.  To scroll
  1325.      the   window  one  digit  to the right press [>>].  To scroll the
  1326.      digit to the left, press [<<]. Window scrolling is reset  back to
  1327.      window 0 whenever an  operation key affecting the value displayed
  1328.      is pressed.
  1329.  
  1330.  
  1331.  
  1332.      5.16  Flags
  1333.  
  1334.      XACT-16C  incorporates 6 built in "flags" which  may  be  set  or
  1335.      cleared  under either program control, or as  the  result  of  an
  1336.      operation, or both.  The flags  are  numbered 0 through 5.  Flags
  1337.      are active in integer mode.
  1338.  
  1339.      The first 3  flags,  0  through  2, are used in programming only.
  1340.      These flags can be  set,  cleared,  and  tested within a program.
  1341.      These  flags  are  discussed  in  detail  in  the  section  under
  1342.      Programming.
  1343.  
  1344.      Flag 3 is used to control the display of leading zeros in integer
  1345.      mode.  When  set,  a  number  in  the display will be padded with
  1346.      leading zeros (leading zeros will not be displayed when the [Dec]
  1347.      radix is used).  To set flag3:
  1348.  
  1349.      Keystroke                 Display        Comment
  1350.      ================================================================
  1351.      [Hex]
  1352.      10 [Wsize]                               16 bit word, hex
  1353.      3A [ENTER]                3A Hex
  1354.  
  1355.  
  1356.                                    - 24 -
  1357.      [SF] 3                  003A Hex         Set flag 3
  1358.      [CF] 3                    3A Hex         Clear flag 3
  1359.  
  1360.  
  1361.      Flag 4 is  also  known as the Carry (C) flag.  It is set when the
  1362.      result of an  algebraic  or bit manipulation function generates a
  1363.      carry.    When  performing a subtraction, a  carry  is  generated
  1364.      whenever there is a borrow in the most significant bit.
  1365.  
  1366.      Keystroke                 Display        Comment
  1367.      ================================================================
  1368.      [Hex]
  1369.      10 [Wsize] [2's]
  1370.      FF80 [ENTER]              FF80 Hex       (-128 Decimal)
  1371.      100  [ + ]                  80 Hex C     Carry generated
  1372.      1 [ + ]                     81 Hex       No carry
  1373.  
  1374.  
  1375.      Flag 5 is  also  known as the Overflow (G) flag.  It is set by an
  1376.      arithmetic operation which  would  result in a value which cannot
  1377.      be shown with the current word size and/or complement mode.  When
  1378.      Flag 5 is set, the letter 'G' appears in the  display, indicating
  1379.      an overflow.  For example:
  1380.  
  1381.  
  1382.  
  1383.      Keystroke                 Display        Comment
  1384.      ================================================================
  1385.      [Dec]
  1386.      16 [Wsize] [2's]
  1387.      32767 [ENTER]             32767 Dec
  1388.      16384 [ + ]              -16385 Dec G
  1389.  
  1390.  
  1391.      In the above example, the result created an overflow and  the 'G'
  1392.      flag (overflow) was displayed.
  1393.  
  1394.  
  1395.      5.17  Status
  1396.  
  1397.      Pressing the [Stat] function key temporarily  alters  the display
  1398.      to show the  current  complement  mode,  word  size  and  flags 0
  1399.      through 3. When [Stat] is pressed, the display appears similar to
  1400.      the following:
  1401.  
  1402.                2-16-0000
  1403.  
  1404.      The value above indicates 2's  complement mode, 16 bit word size,
  1405.      and flags 3,2,1,0 are all cleared.
  1406.  
  1407.      The first number, shown before the dash, indicates the complement
  1408.      mode.   It is either 0, 1, or 2, for unsigned, 1's complement, or
  1409.      2's   complement respectively.  The  next  number  indicates  the
  1410.      current word  size in bits.  It may range from 1 to 64.  The last
  1411.  
  1412.  
  1413.                                    - 25 -
  1414.      4  digits indicate  the status of flags 3,2,1,0 in that order.  A
  1415.      value of 1 indicates  the flag is set, 0 indicates it is cleared.
  1416.  
  1417.  
  1418.  
  1419.      6.  Arithmetic, Bit Manipulation, and Logical Functions
  1420.  
  1421.  
  1422.      6.1  Addition and Subtraction
  1423.  
  1424.      XACT-16C can perform the operations of  addition  and subtraction
  1425.      using  decimal,  hex,  binary,  and  octal radix types as well as
  1426.      floating point mode.  For example, to add the  numbers  3c0  hex,
  1427.      and 126 octal, and  then  subtract  35 decimal, (assuming STATUS=
  1428.      2-16-0000):
  1429.  
  1430.      Keystroke                 Display        Comment
  1431.      ================================================================
  1432.      [Hex]
  1433.      3C0 [ENTER]               3C0 Hex
  1434.      [Oct]                    1700 Oct
  1435.      126 [ + ]                2026 Oct
  1436.      [Dec]                    1046 Dec
  1437.      35 [ - ]                 1011 Dec
  1438.  
  1439.  
  1440.      The  result  is  1011 (decimal).  The carry flag will be set when
  1441.      the  addition  of  2  numbers  generates  a carry out of the most
  1442.      significant bit, or when the subtraction of 2 numbers generates a
  1443.      borrow from the most significant bit.
  1444.  
  1445.  
  1446.      6.2  Multiplication and Division
  1447.  
  1448.      Multiplication and division operations can  be  performed  in any
  1449.      available  radix.    Results of these operations may set or clear
  1450.      flag  4 (carry) and flag 5 (overflow) just  as  in  addition  and
  1451.      subtraction (except that multiplication does not affect  flag 4).
  1452.      In a division operation, only the integer portion  of  the result
  1453.      is returned, the decimal point part is truncated.  Flag 4 (carry)
  1454.      will  be  set  if the result  of  the  division  has  a  non-zero
  1455.      remainder.
  1456.  
  1457.      Keystroke                 Display        Comment
  1458.      ================================================================
  1459.      [Dec]
  1460.      12 [ENTER]                12 Dec         12 in X register
  1461.      4 [ * ]                   48 Dec         Multiply 12 * 4
  1462.      5 [ / ]                    9 Dec C       C Indicates remainder
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.                                    - 26 -
  1471.      6.3  Remainder after Division
  1472.  
  1473.      To compute the remainder after division, (also known  as  the mod
  1474.      function), use the [RMD] function key.  The [RMD] key  will yield
  1475.      the result of the Y register mod the X register  with the sign of
  1476.      the result set  to  be the same as the sign of X.  In the example
  1477.      below, assume STATUS= 2-16-0000.
  1478.  
  1479.      Keystroke                 Display        Comment
  1480.      ================================================================
  1481.      [Dec]
  1482.      52 [ENTER]                52 Dec         52 in Y register
  1483.      7 [RMD]                    3 Dec         Remainder
  1484.  
  1485.  
  1486.      6.4  Square Root
  1487.  
  1488.      The  [sqrtx]  function  can be used in either decimal or floating
  1489.      point mode.  In  decimal  mode, the fractional part of the result
  1490.      is truncated just as it is in division.  Likewise, flag 4 (carry)
  1491.      will be set if the fractional part of  the  square  root  is non-
  1492.      zero.  Assuming STATUS=  2-16-0000:
  1493.  
  1494.      Keystroke                 Display        Comment
  1495.      ================================================================
  1496.      [Dec]
  1497.      26 [sqrtx]                5 Dec C
  1498.  
  1499.  
  1500.      The carry flag indicates that a fractional part exists.
  1501.  
  1502.  
  1503.      6.5  Absolute Value
  1504.  
  1505.      This function will take the absolute  value  of a number in the X
  1506.      register  when the [Abs] key is pressed.  In unsigned  mode, this
  1507.      function has no effect.  Otherwise, a negative  number  will form
  1508.      the 1's or 2's complement of the number.
  1509.  
  1510.  
  1511.      6.6  Logical Functions
  1512.  
  1513.      The  [AND]  function  logically  and's together the corresponding
  1514.      bits in the X and Y registers  and  forms  the  result  in  the X
  1515.      register.  A particular bit of the result is set to 1 only if the
  1516.      corresponding  bits  in  both the X and Y registers was set to 1.
  1517.      For example (assume  STATUS= 2-16-0000):
  1518.  
  1519.      Keystroke                 Display        Comment
  1520.      ================================================================
  1521.      [Bin]
  1522.      1010 [ENTER]              1010 Bin
  1523.      11 [AND]                    10 Bin       Result of "and"
  1524.  
  1525.  
  1526.  
  1527.                                    - 27 -
  1528.      The [OR] function forms a result by or'ing together corresponding
  1529.      bits in the  X  and Y registers.  A bit in the result will be set
  1530.      to   1 if a corresponding bit in either the X or the Y  registers
  1531.      is set  to 1.  In the example below, assume STATUS= 2-16-0000:
  1532.  
  1533.      Keystroke                 Display        Comment
  1534.      ================================================================
  1535.      [Bin]
  1536.      1001 [ENTER]              1001 Bin
  1537.      11 [OR]                   1011 Bin       Result of OR
  1538.  
  1539.  
  1540.      With the [XOR] (Exclusive OR) function, a bit in  the  result  is
  1541.      set to 1 if either a corresponding bit in the X register or the Y
  1542.      register,  but  not  both, is set to 1.  In  the  example  below,
  1543.      assume STATUS= 2-16-0000:
  1544.  
  1545.      Keystroke                 Display        Comment
  1546.      ================================================================
  1547.      [Bin]
  1548.      1001 [ENTER]              1001 Bin
  1549.      11 [XOR]                  1010 Bin       Result of XOR
  1550.  
  1551.  
  1552.      The [Not] function complements all the bits of the value in the X
  1553.      register.    This  is equivalent to forming the 1's complement of
  1554.      the  number.  In the example below, assume  STATUS= 2-16-0000:
  1555.  
  1556.      Keystroke                 Display        Comment
  1557.      ================================================================
  1558.      [Hex] 9                   9 Hex
  1559.      [Not]                  FFF6 Hex          Result of NOT
  1560.  
  1561.  
  1562.      6.7  Bit Functions
  1563.  
  1564.      A specific bit can be set (1) or cleared (0) within a number.  To
  1565.      set a bit, the [SB] function key is used.   The  [CB] function is
  1566.      used to clear a bit.  A bit can also be tested   to  see  if it's
  1567.      set or cleared  with  the    [B?]  function.  (See the section on
  1568.      Programming for more information  on testing bits).  When setting
  1569.      or clearing a bit, the number in which the bit is to be set, must
  1570.      be in the Y register and the bit number in the  X  register.   In
  1571.      the example below, assume STATUS= 2-16-0000:
  1572.  
  1573.      Keystroke                 Display        Comment
  1574.      ================================================================
  1575.      [Bin]
  1576.      10000 [ENTER]             100000 Bin     100000 in Y register
  1577.      10 [SB]                    10100 Bin     Set bit 2
  1578.  
  1579.  
  1580.      To clear a bit in a number:
  1581.  
  1582.  
  1583.  
  1584.                                    - 28 -
  1585.      Keystroke                 Display        Comment
  1586.      ================================================================
  1587.      [Hex]
  1588.      FFFF [ENTER]              FFFF Hex       FFFF in Y register
  1589.      4 [CB]                    FFEF Hex       Clear bit 4
  1590.  
  1591.  
  1592.      6.8  Summing Bits
  1593.  
  1594.      The number of bits in a word  can  be  found  by  using  the [#B]
  1595.      function.  This function takes a number in the  X  register,  and
  1596.      returns the number of '1' bits, also in the X  register.   In the
  1597.      example below, assume STATUS= 2-16-0000:
  1598.  
  1599.      Keystroke                 Display        Comment
  1600.      ================================================================
  1601.      [Bin] 1101                1101 Bin
  1602.      [#B]                        11 Bin
  1603.      [DEC]                        3 Dec       3 bits were set
  1604.  
  1605.  
  1606.      6.9  Masking
  1607.  
  1608.      The mask functions form a mask of '1' bits in the X register. The
  1609.      number of '1' bits is set to the value in  the  X register before
  1610.      the  mask  function key was pressed.  A mask can be made as large
  1611.      as the  current word size.  The [MaskR] function  right justifies
  1612.      the mask and the [MaskL] function left justifies the  mask.    In
  1613.      the example below, assume STATUS= 2-16-0000:
  1614.  
  1615.      Keystroke                 Display        Comment
  1616.      ================================================================
  1617.      [Bin]
  1618.      100 [MaskR]               1111 Bin       Mask right
  1619.      [Hex]                        F Hex
  1620.      2 [MaskL]                 C000 Hex       Mask left
  1621.  
  1622.  
  1623.      6.10  Left Justify
  1624.  
  1625.      A word in  the  X  register  can be left-justified using the [LJ]
  1626.      function key.   This  operation returns the left justified number
  1627.      in the Y register.  The X register  contains  the  number  of '0'
  1628.      bits preceding the first '1' bit in the number before  being left
  1629.      justified.  In the example below, assume STATUS= 2-08-0000:
  1630.  
  1631.      Keystroke                 Display        Comment
  1632.      ================================================================
  1633.      [Bin]
  1634.      111 [LJ]                  101 Bin        5 leading zeros
  1635.      [R|]                 11100000 Bin        Roll Down stack
  1636.  
  1637.  
  1638.      Rolling down the stack shows the left justified number.
  1639.  
  1640.  
  1641.                                    - 29 -
  1642.      7.  Shifting and Rotating Bits
  1643.  
  1644.  
  1645.      7.1  Shift Functions
  1646.  
  1647.      XACT-16C can  perform shift operations on numbers when in integer
  1648.      mode.  Shifts  can  be  either  logical or arithmetic.  A logical
  1649.      shift simply shifts bits left or right, bringing in  a  zero  bit
  1650.      from  the end.  An arithmetic shift is  similar  except  that  it
  1651.      preserves the sign bit  when  shifting.  Both types of shifts can
  1652.      shift into the carry, causing flag 4 (C)  to  be  set  or cleared
  1653.      accordingly.  In the examples below, assume STATUS=  2-08-0000:
  1654.  
  1655.      Keystroke                 Display        Comment
  1656.      ================================================================
  1657.      [Bin]
  1658.      1001 [SL]                 10010 Bin      Logical shift left
  1659.      01000000 [SL]          10000000 Bin      Logical shift left
  1660.      [SL]                          0 Bin C    Shift into carry.
  1661.      100000000 [ASR]        11000000 Bin      Brings in sign bit
  1662.  
  1663.  
  1664.      7.2  Rotate Functions
  1665.  
  1666.      Rotate  functions  are  like shift functions except  that  a  bit
  1667.      shifted out of  one end of a word is brought back in at the other
  1668.      end.  As in shifting, rotations can be either left or right using
  1669.      the [RL] or the [RR] functions.  Assume STATUS= 2-08-0000:
  1670.  
  1671.      Keystroke                 Display        Comment
  1672.      ================================================================
  1673.      10000010 [RL]             101 Bin C
  1674.  
  1675.      Rotations may also be made "through the carry".   The  [RRC]  and
  1676.      the [RLC] functions respectively shift  the low order or the high
  1677.      order bit into the carry.  The carry flag (flag 4) will be set if
  1678.      the bit rotating into the carry was a '1'.  The previous state of
  1679.      the carry flag will be brought back around at the other end.
  1680.  
  1681.      Keystroke                 Display        Comment
  1682.      ================================================================
  1683.      1 [RRC]                   0 Bin C        Rotates to carry
  1684.      [RRC]              10000000 Bin          Carry rotates
  1685.  
  1686.      Rotate operations may also rotate more than 1 bit at a  time with
  1687.      the  [RRn]  [RLn]  [RRCn]  and  [RLCn] functions.  Each of  these
  1688.      functions use the value in the  X register as a count of how many
  1689.      times to rotate the value in the Y register.    Assuming  STATUS=
  1690.      2-08-0000:
  1691.  
  1692.      Keystroke                 Display        Comment
  1693.      ================================================================
  1694.      1000 [ENTER]              1000 Bin
  1695.      100 [RLn]             10000000 Bin       Rotate 4 times
  1696.  
  1697.  
  1698.                                    - 30 -
  1699.      8.  Floating Point Mode
  1700.  
  1701.  
  1702.      8.1  Converting to Floating Point Mode
  1703.  
  1704.      In addition to  integer  mode, XACT-16C also operates in floating
  1705.      point mode.    In  this  mode,  XACT-16C  acts much like a second
  1706.      "independent"  calculator.    Many  functions  operate  in either
  1707.      floating  point mode or integer mode,  for  example  the  [sqrtx]
  1708.      function.  However, unlike integer  mode, this function  will not
  1709.      truncate a result to an integer result, it will  return  a  value
  1710.      with up to 9 significant digits beyond the decimal point.
  1711.  
  1712.      To convert XACT-16C to floating point mode:
  1713.  
  1714.      Keystroke                 Display        Comment
  1715.      ================================================================
  1716.      [Float] 2                 0.00           2 dec pt digits
  1717.  
  1718.  
  1719.      You may press any number (using  the  numeric keypad) from 0 to 9
  1720.      after pressing the  [Float]  key.    The  number  you  press will
  1721.      determine  the  number  of  digits  past the decimal point to  be
  1722.      displayed.  For example:
  1723.  
  1724.      Keystroke                 Display        Comment
  1725.      ================================================================
  1726.      26 [sqrtx]                5.10           2 dec pt digits
  1727.      [Float] 5                 5.09902        5 dec pt digits
  1728.  
  1729.  
  1730.      Notice  that  when  using  2  digits  beyond  the decimal  point,
  1731.      XACT-16C will "round" the next digit into the number displayed.
  1732.  
  1733.  
  1734.      8.2  Floating Point Calculations
  1735.  
  1736.      Calculations in floating point mode work in the same  way  as  in
  1737.      integer  mode.  However, there are a  number  of  functions  that
  1738.      operate only in  integer  mode  and  some  that  operate  only in
  1739.      floating  point  mode.    Generally  speaking,  all  of  the  bit
  1740.      manipulation,  radix  conversion,  and  logical functions are not
  1741.      available in floating point mode.
  1742.  
  1743.      The reciprocal function [1/x] and the exponent function [EEx] are
  1744.      only available in floating point mode.  To  illustrate  them, for
  1745.      example:
  1746.  
  1747.      Keystroke                 Display        Comment
  1748.      ================================================================
  1749.      [Float] 4                                4 dec pt digits
  1750.      12 [EEx] 3                12.  +03
  1751.      [ChS]                     12.  -03
  1752.      [ENTER]                    0.0120
  1753.  
  1754.  
  1755.                                    - 31 -
  1756.      .001 [ - ]                 0.0110        Subtract
  1757.      [1/x]                     90.9091        Reciprocal
  1758.  
  1759.  
  1760.      8.3  Returning to Integer Mode
  1761.  
  1762.      To return to integer  mode,  press  any  of the following: [Hex],
  1763.      [Dec],  [Oct]  or [Bin].  You may  notice  that  the  same  value
  1764.      appears in the display as  before you converted to floating point
  1765.      mode.  In  fact,  all  the  memory  registers,  stack,  etc., are
  1766.      retained.
  1767.  
  1768.  
  1769.  
  1770.      9.  Programming XACT-16C
  1771.  
  1772.  
  1773.      9.1  Introduction to Programming
  1774.  
  1775.      XACT-16C may  be  programmed  to  "memorize"  keystrokes  for the
  1776.      purpose  of executing a program.  Programs may use  constructs of
  1777.      conventional   programming languages such as branching,  looping,
  1778.      data input and output,  etc.  The basics of  programming XACT-16C
  1779.      involve entering, editing,  debugging and finally  executing your
  1780.      program.
  1781.  
  1782.  
  1783.      9.2  Entering a Program
  1784.  
  1785.      To begin entering a new  program  into  XACT-16C,  the calculator
  1786.      must be placed in  program  mode  by  pressing the [P/R] function
  1787.      key.   When in program mode,  subsequent  keystrokes  are  simply
  1788.      stored in the calculator's internal memory. The [P/R] key toggles
  1789.      between program and run modes.
  1790.  
  1791.      Keystroke                 Display        Comment
  1792.      ================================================================
  1793.      [P/R]                     000-           Program mode
  1794.      [P/R]                     (as before)    Run mode
  1795.  
  1796.  
  1797.      The display shows 000-.  This represents the current program line
  1798.      number of the program you are  entering.   Line 000 is special in
  1799.      that    it  always represents the beginning  of  program  memory.
  1800.      Let's enter  a simple program:
  1801.  
  1802.      Keystroke                 Display        Comment
  1803.      ================================================================
  1804.      [P/R]
  1805.      [Prgm]                   000-            Clear pgm
  1806.      [Lbl] [ A ]              001- 43 22 A    Start pgm
  1807.      [Hex]                    002-      23
  1808.      3                        003-       3
  1809.      [ENTER]                  004-      36
  1810.  
  1811.  
  1812.                                    - 32 -
  1813.      4                        005-       4
  1814.      [ + ]                    006-      10
  1815.      [RTN]                    007-   43 21    Last pgm line
  1816.      [P/R]                                    Run mode
  1817.  
  1818.  
  1819.      This program simply adds the numbers 3 and 4 then finishes.   The
  1820.      first keystroke, [P/R] puts XACT-16C in program mode.  The [Prgm]
  1821.      key clears any  programs  previously in memory. Skipping over the
  1822.      [Lbl] instruction for the  moment,  the  [Hex]  key is the second
  1823.      program line in  the  program.    In the  display, 002- indicates
  1824.      program  line  2  (there  are  a  maximum  of  203  program lines
  1825.      available).  Just  to  the  right  of  the program line is a code
  1826.      which  represents  which  key was pressed. The first digit of the
  1827.      number indicates the row and the second indicates  the  column of
  1828.      where the key is positioned on the XACT-16C screen.  If you think
  1829.      of all the keystrokes on the calculator face as being in  a table
  1830.      with 4 rows and 10 columns, the [Hex] function key is  located in
  1831.      the 2nd row and  3rd  column, thus the program line displays 002-
  1832.      23.    Back  to the first line of the program,  it  contains  the
  1833.      keystrokes [Lbl] [  A ] to refer to that line as a label.  Labels
  1834.      are used in XACT-16C in much the same way as they are in assembly
  1835.      language or Basic programming.  Labels can be  locations  used to
  1836.      identify  the  start  of  a  program,  the  location  of  a  goto
  1837.      instruction,  or  the  location  to  call in a  subroutine  call.
  1838.      Programs  must  begin  with a label to identify where the program
  1839.      starts.  The program line  for our label reads 001-  43 22 A.  In
  1840.      this case, since the [Lbl] key requires a prefix, the position of
  1841.      the  prefix  key  is the first value shown to the  right  of  the
  1842.      program line number.  The number 43 indicates row  4,  column  3,
  1843.      which is the position of the [ g ] (or right shift) prefix key.
  1844.  
  1845.      The  last value displayed on program line 2  is  the  value  'A'.
  1846.      Notice that it is not referred  to by a  location  in the "table"
  1847.      of  XACT-16C function keys, but rather   by  it's  numeric  value
  1848.      itself.   All the numbers 0 through 9 and A through  F are  shown
  1849.      as their numeric values when in programming mode.
  1850.  
  1851.      Notice the use of the  [RTN]  function  key  at  the  end  of the
  1852.      program.    This  key  must  always  be  the  last entered, it is
  1853.      required to end the program.    In  the  very  last  line  of the
  1854.      program,  you will notice the [P/R] key.  It is used to exit from
  1855.      program mode so that we can  run the program.
  1856.  
  1857.      Now we have our program contained in memory,  we  can  run  it by
  1858.      typing:
  1859.  
  1860.      Keystroke                 Display        Comment
  1861.      ================================================================
  1862.      [GSB] [ A ]               7 Hex          Result
  1863.  
  1864.  
  1865.      The [GSB] (goto subroutine) function key is used to begin program
  1866.      execution at the  first  instruction in the program following the
  1867.  
  1868.  
  1869.                                    - 33 -
  1870.      label,   in this case the label was A.  The [GSB] instruction can
  1871.      also  be  used  within  a  program,  to  perform   a  call  to  a
  1872.      subroutine.
  1873.  
  1874.  
  1875.      9.3  Labels in Programs
  1876.  
  1877.      There are 16 labels  available  in programming, 0-9 and A-F.  The
  1878.      previous  example used a label to identify  the  beginning  of  a
  1879.      program.   In general, a label is always  necessary  to  begin  a
  1880.      program.    Labels  are also used  as  targets  of  [GTO]  (goto)
  1881.      instructions and [GSB] (goto  subroutine)  instructions.   Labels
  1882.      can  also  be  used to separate  programs  from  one  another  in
  1883.      XACT-16C's program  memory; as a way of keeping multiple programs
  1884.      in memory at one time (although this is  generally  not necessary
  1885.      since programs can be loaded as disk  files).
  1886.  
  1887.  
  1888.      9.4  Using Subroutines
  1889.  
  1890.      A program can call a subroutine from within the program  when the
  1891.      [GSB] instruction is used within  the program.  For instance, the
  1892.      instruction  [GSB]  5  will  transfer  control  to   the  program
  1893.      instruction  immediately    following  the  instruction  [Lbl]  5
  1894.      contained elsewhere within the program.  Control will transfer to
  1895.      the label that identifies the subroutine. Subroutines can "nest",
  1896.      that is one subroutine may call another which may call   another,
  1897.      and so on.  The maximum level of subroutine nesting is 4.
  1898.  
  1899.  
  1900.      9.5  Returning from a Program or Subroutine
  1901.  
  1902.      The last instruction in a program  must  always be a [RTN].  This
  1903.      tells the program to reset it's  program  line number  to 000 (go
  1904.      back to  the beginning) and stop executing. The [RTN] instruction
  1905.      is  also the last instruction in a subroutine.    In  this  case,
  1906.      after  the  execution  of  the  [RTN]  instruction,   control  is
  1907.      transferred back to the  instruction    following  the subroutine
  1908.      call.
  1909.  
  1910.  
  1911.      9.6  Entering Data and the Run/Stop Key
  1912.  
  1913.      There  are  generally  2 ways to get data into a  program.    The
  1914.      easiest  is  to  use  the  [Sto]  instruction  to store  data  in
  1915.      registers prior to running  the  program.    Then the program can
  1916.      contain [Rcl] instructions  to  fetch the data from the register.
  1917.      The second method is required when there is more data to be input
  1918.      than available storage registers.    It  involves using the [R/S]
  1919.      (run/stop) function key.  When  this  key  is  encountered during
  1920.      program execution, the program  stops.    At  this point, you can
  1921.      enter  new  data  and then press the [R/S] key.  The program will
  1922.      begin running again.
  1923.  
  1924.  
  1925.  
  1926.                                    - 34 -
  1927.      For  example,  let's  write  a  program which will  accept  input
  1928.      numbers, one at a  time,  and "exclusive or" each number with the
  1929.      number  3A9 Hex.  The program will  display  the  exclusive  or'd
  1930.      result after each input.
  1931.  
  1932.      Keystroke                 Display        Comment
  1933.      ================================================================
  1934.      [P/R]
  1935.      [Prgm]                                   Clear program memory
  1936.      [Lbl] 1               001-  43  22  1
  1937.      [Hex]                 002-         23
  1938.      1                     003-          1
  1939.      0                     004-          0
  1940.      [WSIZE]               005-     42  44
  1941.      0                     006-          0
  1942.      [ENTER]               007-         36
  1943.      [Lbl] 2               008-  43  22  2
  1944.      [R/S]                 009-         31
  1945.      [ENTER]               010-         36
  1946.      3                     011-          3
  1947.      A                     012-          A
  1948.      9                     013-          9
  1949.      [x<>y]                014-         34
  1950.      [XOR]                 015-     42  10
  1951.      [GTO] 2               016-     22   2
  1952.      [RTN]                 017-     43  21
  1953.      [P/R]                                    Return to RUN mode
  1954.  
  1955.  
  1956.      To execute the program:
  1957.  
  1958.      Keystroke                 Display        Comment
  1959.      ================================================================
  1960.      [Gsb] 1                   0            Wait for input data
  1961.      1 [R/S]                 3A8 Hex        Result of 3a9 xor 1
  1962.      F [R/S]                 3A6 Hex        Result of 3a9 xor F Hex
  1963.      20 [R/S]                389 Hex        Result of 3a9 xor 20 Hex
  1964.  
  1965.  
  1966.      9.7  Branching Using the Index Register
  1967.  
  1968.      In the previous example, we used a [Gto] instruction to branch to
  1969.      a label, in this  case,  label 2.  As previously mentioned, there
  1970.      are 16 available labels, 0-9 and A-F.  You can also use the index
  1971.      register [I] to indirectly branch  to a label, or indirectly call
  1972.      a subroutine.  If the [I] register contains a number representing
  1973.      a label, the instructions [GTO] [I] and [GSB] [I] will indirectly
  1974.      branch to a label or indirectly call a  subroutine.
  1975.  
  1976.  
  1977.      9.8  Program Loops Using the Index Register
  1978.  
  1979.      XACT-16C   contains  2  instructions  that  first  increment   or
  1980.      decrement  the  index  register and skip the next program line if
  1981.  
  1982.  
  1983.                                    - 35 -
  1984.      the  index  register  is  zero.    These  instructions are  [Isz]
  1985.      (increment  and  skip  if zero), and [Dsz] (decrement and skip if
  1986.      zero).  They can be used to control  loops  where  the  number of
  1987.      times to execute the  loop  is  contained  in the index register.
  1988.      For  example,   a  program  fragment  may  look  similar  to  the
  1989.      following:
  1990.  
  1991.         5 [STO] [ I ]
  1992.         [LBL] [ B ]
  1993.  
  1994.      (instructions within loop)
  1995.  
  1996.         [DSZ]
  1997.         [GTO] [ B ]
  1998.         [RTN]
  1999.  
  2000.      In this case, the instruction within the loop  between  the [Lbl]
  2001.      [B] program line and the [Gto] [B] program line will  be executed
  2002.      5 times.  After the 5th  time,  the index register will contain 0
  2003.      and the [Gto]  [B]    instruction  will be skipped.  Instead, the
  2004.      [Rtn] instruction will be executed.
  2005.  
  2006.  
  2007.      9.9  Program Loops and Branches Using the X and Y Registers
  2008.  
  2009.      XACT-16C can also  make  "conditional  tests"  based  upon values
  2010.      contained  in  the X and Y registers.    There  are  8  different
  2011.      possible conditions in all.   These  functions  each  execute the
  2012.      next instruction in the  program  if  the  condition is true, and
  2013.      skip over it  if  the  condition  is false.  The instructions are
  2014.      defined as
  2015.  
  2016.  
  2017.         [x<=y]   true if x less than or equal to y
  2018.         [x<0]    true if x less than 0
  2019.         [x>y]    true if x greater than y
  2020.         [x>0]    true if x greater than 0
  2021.         [x<>y]   true if x not equal to y
  2022.         [x<>0]   true if x not equal to 0
  2023.         [x=y]    true if y equal to y
  2024.         [x=0]    true if x equal to 0
  2025.  
  2026.  
  2027.      9.10  Branching Using Flags
  2028.  
  2029.      The [F?] (text flag) function can be used to branch based  on the
  2030.      status of the flags.  There are a total of  6  flags in XACT-16C,
  2031.      identified    as  flags  0-5.    The  first  3  flags  (0-2)  are
  2032.      programmable general purpose   flags.   Flag 3 is used to display
  2033.      leading  zeros. Flag 4 is the Carry  (C) flag, and Flag 5 is  the
  2034.      overflow (G) flag.  Any of the  flags  may    be  used  in branch
  2035.      tests.  The  example  below   illustrates   a   program  fragment
  2036.      utilizing flags testing:
  2037.  
  2038.  
  2039.  
  2040.                                    - 36 -
  2041.         (Program instructions)
  2042.  
  2043.        [Lbl] 3
  2044.        [SF] 3
  2045.        [Gto] [ B ]
  2046.  
  2047.        (Program instructions)
  2048.  
  2049.         [Lbl] 4
  2050.         [CF] 0
  2051.         [Gto] [ B ]
  2052.  
  2053.         (Program instructions)
  2054.  
  2055.  
  2056.         [Lbl] [ B ]
  2057.         [F?] 0          (test to see if flag 0 is set)
  2058.         [Gto] [ C ]     (transfer control to label C if flag 0 set)
  2059.         [Gto] [ D ]     (transfer control to label D if flag 0 clear)
  2060.  
  2061.      If  the program executes at label 3, flag 0 is set and control is
  2062.      transferred to label B.  At this point,  since  flag  0  was set,
  2063.      control  will  transfer  to  label  C.  Likewise, if the  program
  2064.      executes at label 4, flag 0    is cleared, and thus, when control
  2065.      is  transferred  to  label B, the flag test will fail.  This will
  2066.      cause the [Gto] [ D ] instruction to be executed.
  2067.  
  2068.  
  2069.      9.11  Branching On Bit Set/Clear
  2070.  
  2071.      Programs can branch on the status of a specific bit set  or clear
  2072.      using the [B?] function.  This function operates similarly to the
  2073.      [F?] function.
  2074.  
  2075.  
  2076.      9.12  The Single-Step Instruction
  2077.  
  2078.      The [SSt] (single-step) instruction can be used in either program
  2079.      mode or run mode.    In program mode, pressing [SSt] will display
  2080.      the next program  line  number  in  a  program.  In run mode, the
  2081.      [SSt] function can be used to execute a  program  one  step  at a
  2082.      time.  This is useful for program debugging.   The  [BSt]  (back-
  2083.      step) instruction works like  the  [SSt]  instruction  in program
  2084.      mode except that it displays  the previous program line number in
  2085.      a program.  The [Bst] instruction does not operate in run mode.
  2086.  
  2087.  
  2088.      9.13  Moving to a Program Line Number
  2089.  
  2090.      You can move to a specific line number in either program  mode or
  2091.      run mode.  Press [Gto] [ . ] nnn  where nnn is a  3  digit number
  2092.      between  0  and 203.  In run  mode,  pressing  [R/S]  will  begin
  2093.      execution at that line number.
  2094.  
  2095.  
  2096.  
  2097.                                    - 37 -
  2098.      10.  Appendix
  2099.  
  2100.  
  2101.      10.1  Error Conditions
  2102.  
  2103.      When an error  is  encountered  during  operation,  XACT-16C will
  2104.      display  the  word  "Error" in the calculator's display, followed
  2105.      by a 1 digit  error code.  These error codes are defined below:
  2106.  
  2107.  
  2108.      Error 0  -  Invalid math operation.  This  error  is  encountered
  2109.      when  an  operation  attempted division by 0 or square  root of a
  2110.      negative number.
  2111.  
  2112.      Error 1 - Invalid identifier.  A flag, window,  or  program  line
  2113.      number was out of range.
  2114.  
  2115.      Error  2  -  Invalid  Bit  Number.  This happens when  operations
  2116.      attempt to set bits, mask bits, or rotate  multiple  bits greater
  2117.      than the current word size.
  2118.  
  2119.      Error 3 -  Invalid  Register.    An  attempt was made to access a
  2120.      label or line number that is out of range.
  2121.  
  2122.      Error 4 - Invalid label or line number.  An  attempt  was made to
  2123.      access a label or line number that is out of range.
  2124.  
  2125.      Error  5  -  Invalid subroutine nesting.  A subroutine was nested
  2126.      more than 4 levels deep.
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.                                    - 38 -