Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!newsswitch.lcs.mit.edu!newsfeed.berkeley.edu!nntp.cs.ubc.ca!news.UVic.CA!aschoorl
From: [email protected] (Andre Schoorl)
Newsgroups: comp.sys.hp48,comp.sources.hp48,comp.answers,news.answers
Subject: comp.sys.hp48 FAQ : 1 of 4 - Common Questions
Followup-To: comp.sys.hp48
Date: 14 April 2000 22:00:01 GMT
Organization: University of Victoria, Victoria, BC, Canada
Lines: 3316
Approved: [email protected]
Expires: 12 May 2000 22:00:01 GMT
Message-ID: <[email protected]>
Reply-To: [email protected]
NNTP-Posting-Host: cognac.uvic.ca
X-Trace: uvaix7e1.comp.UVic.CA 955779036 167252 142.104.113.129 (15 Apr 2000 06:10:36 GMT)
X-Complaints-To: [email protected]
NNTP-Posting-Date: 15 Apr 2000 06:10:36 GMT
Summary: Answers to Frequently Asked Questions about HP48 calculators
Keywords: FAQ, HP48
X-Url: http://www.engr.uvic.ca/~aschoorl/faq/
User-Agent: slrn/0.9.5.7 (UNIX)
Xref: senator-bedfellow.mit.edu comp.sys.hp48:114891 comp.sources.hp48:750 comp.answers:40473 news.answers:181585

Archive-name: hp/hp48-faq/part1
Last-modified: 4/14/2000
Version: 4.62
Posting-Frequency: Every 14 days or so

New in v4.62

 o  Added another alternate solution to Compact Data Storage problem

 o  Gave proper credit to Dave Hicks for his Q/A on RPN


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

 HP48 Frequently Asked Questions List (FAQ)
 Andre Schoorl <[email protected]>
 v4.62, 14 April 2000

 Answers to Frequently Asked Questions about HP48 calculators
 ______________________________________________________________________

 Table of Contents


 1. Introduction

    1.1 Overview
    1.2 This FAQ in Other Formats
    1.3 Translations of this FAQ

 2. Miscellaneous Questions

    2.1 I'm a novice, and I have some questions.  Where should I start?
    2.2 What Usenet Newsgroups are there for the HP48?
    2.3 What are some good sites for the HP48?
    2.4 Are there any good WWW links for HP48 stuff?
    2.5 Is there an HP48 IRC Channel?
    2.6 How can I search for a specific HP48 file?
    2.7 What are good places to buy HP48's and accessories?
    2.8 What happened to EduCalc?
    2.9 Are there any CD-ROMs with HP48 software?
    2.10 Where can I find HP conference videotapes?
    2.11 Are there any HP48 Emulators?
    2.12 How can I make a dump of my HP48 ROM?
    2.13 Is the HP48 Allowed on SATs, AP, or ACT Tests? (U.S.)
    2.14 What is the HP49G?
    2.15 How does the HP48 compare with other calculators?
    2.16 What is the Universal Font Library (UFL)?
    2.17 What are the best alternate editors?
    2.18 Are there any PC fonts for the HP48?
    2.19 Is the HP48 serial number available in memory?
    2.20 What is the format of the HP48 serial number?

 3. Questions about ROM versions

    3.1 What does the SX/GX have that the S/G doesn't?
    3.2 What is the difference between the HP48 G/GX and the HP48 S/SX?
    3.3 What is the HP48 G+?
    3.4 How can I tell what ROM revision I have?
    3.5 What bugs exist in the various versions of the HP48?
    3.6 What is new with the revision "J" ROM? (S/SX)
    3.7 What happened to ROM revisions G, H, I, O, and Q?
    3.8 Can I upgrade my HP48 S/SX?
    3.9 Can I upgrade my buggy GX to the latest ROM revision?
    3.10 What's the latest ROM version?
    3.11 Why would I buy a S/SX rather than a G/GX?

 4. Questions about the Operating System and Using the HP

    4.1 How do I find the checksum of an object?
    4.2 I typed RULES on my G/GX and got a crossword puzzle!
    4.3 Why does my HP48 occasionally "freeze" for a moment?
    4.4 What do I do if my HP48 locks up?
    4.5 My HP48 seems to take longer to turn on and off.
    4.6 What are all the different ON-KEY combinations?
    4.7 What are the different interactive self-tests?
    4.8 Why do I get an ESD error when I check my batteries with the self test?
    4.9 I can't account for some of the RAM in the HP48!
    4.10 What are the best methods for installing and removing libraries?
    4.11 How can I attach large libraries?
    4.12 What are those little numbers near the top of my screen?
    4.13 Can I use my HP48 as a remote control?
    4.14 Can the HP48 be used as a DTMF phone dialer?
    4.15 How can I run a program on warmstarts and/or power-up?
    4.16 I could speed up my HP-28S.  How can I speed up my HP48?
    4.17 What is the hidden directory and how do I access it?
    4.18 How can I recall one object from a memory archive?
    4.19 Are there any key combinations that aren't in the manual?
    4.20 How do I find out about commands not in the GX manual?
    4.21 How can one delete (or purge) an entire directory?
    4.22 How does binary wordsize affect my calculations?
    4.23 Can I add my own equations to HP's Equation Library?

 5. Questions about Math, Plotting, and Equations

    5.1 Why does (1/3)*3 equal 0.999999999999?
    5.2 Why does my HP say that 0 to the power of 0 equals 1?
    5.3 What is RPN?
    5.4 Why did HP use RPN in their calculators?
    5.5 Is there an alternative to calculating in RPN?
    5.6 Why do I get unexpected values when I add temperatures?
    5.7 How can I add my own units?  What's the 1_? unit for?
    5.8 I want `pi' to be a numeric value, not a symbol.
    5.9 What tricks are there for manipulating matrices?
    5.10 Can I make my HP graph any faster?
    5.11 How do I plot inequalities?
    5.12 How do I take the logarithm of a base other than 10 or e?
    5.13 How do I solve quadratic equations?
    5.14 Why do I get a complex answers for roots of negative numbers?
    5.15 Why doesn't '(-8)^(2/3)' give me the right answer (4)?
    5.16 How do I solve polynomials?
    5.17 How can I do statistics for grouped data?
    5.18 How do I generate a function table?

 6. Questions about cards, data transfers, batteries, and hardware

    6.1 My HP48 seems to making a high pitched noise.
    6.2 Can I upgrade my S or G to more than 32K ram?
    6.3 Can I add a lithium battery backup?
    6.4 How can I get/build a cable for my HP48?
    6.5 HP seems to offer two link kits with different prices.
    6.6 Is there any communications software available?
    6.7 Why doesn't the I/R port work farther than a few inches?
    6.8 Can my HP48 talk to my HP100LX via Infrared?
    6.9 Can I use my HP48 to communicate with IrDA devices?
    6.10 Can I print to a LaserJet printer with an HP48?
    6.11 I downloaded a program but all I get is "HPHP48-..."!
    6.12 What is the structure of HP48 ASCII headers?
    6.13 Why do Kermit transfers seem to get slower?
    6.14 Why does XRECV not work sometimes? (GX)
    6.15 Additional Tips on Transfers
    6.16 What do the funny symbols in this document mean?
    6.17 What are the pinouts for the HP48 serial connector?
    6.18 Is there any information on interfacing to the HP48?
    6.19 How can I transfer programs/data from my HP-28S to my HP48?
    6.20 Can I use rechargeable batteries with the HP48?
    6.21 How can I tell, from within a program, if the battery is low?
    6.22 I lost the information on my RAM Card when I changed the battery!
    6.23 Why do I get an "Invalid card data" error when I merge a RAM card?
    6.24 I've heard about other manufacturer's RAM cards.  Will they work?
    6.25 How does RAM card locking work?
    6.26 What are the advantages and disadvantages of covered ports? (GX)
    6.27 Why does the HP48 display flicker slightly?
    6.28 I broke the LCD screen - is there an easy way to get another?
    6.29 How can I protect my LCD?
    6.30 Is there a rigid (protective) case for the HP48?
    6.31 Can I use my Amateur Radio with my HP48?

 7. Questions about programs

    7.1 Where can I get programs and information for the HP48?
    7.2 What are the Goodies Disks and where do I get them?
    7.3 How do I get access to the HP Calculator BBS?
    7.4 What are files that end with ".zip", ".Z", ".gz", or ".bz2"?
    7.5 What is a "ship" file?
    7.6 What is the ASC format and how can I use it?
    7.7 What is the HYDE library, and how do I get rid of it?
    7.8 What is the Minehunt game, and how do I use it?

 8. Questions about programming and advanced user functions

    8.1 I've heard the names RPL, Saturn, STAR, GL etc...  What are they?
    8.2 Is there a C compiler for the HP48?
    8.3 Why do SysRPL programs run faster than UserRPL programs?
    8.4 What is a good reference for learning SysRPL and ML?
    8.5 Can I make my own libraries?  Can I split others?
    8.6 How do I know what library ID number to use for my program?
    8.7 What information is there on the internals of the HP48?
    8.8 Where can I get some programming development tools?
    8.9 I know UserRPL.  How do I get started in SysRPL?
    8.10 Are there any viruses for the HP48?
    8.11 How do I store fields of variable length effectively?
    8.12 What is "Vectored Enter", and how do I use it?
    8.13 What is "WSLOG"?
    8.14 What are SYSEVALs?
    8.15 What are some useful SYSEVALs?
    8.16 What are LIBEVALs?
    8.17 What are some useful LIBEVALs? (GX)
    8.18 What is the format of a GROB object?
    8.19 What is the AUR and what information does it contain?
    8.20 What is the syntax for INFORM, CHOOSE, and MSGBOX? (GX)
    8.21 How do I put checkfields in my INFORM menus?
    8.22 What is the syntax for the INPUT command?

 9. Appendix A: Various Useful Functions

    9.1 ASC Functions
    9.2 OBJFIX
    9.3 FIXIT
    9.4 LASTX
    9.5 Compact Data Storage
    9.6 HP82240B Printer Codes

 10. Appendix B: GX Specific Information

    10.1 What's new in the HP48 G/GX?
    10.2 Examples of INFORM, CHOOSE, and MSGBOX
    10.3 Some useful LIBEVALs

 11. Appendix C: Details of Bugs

    11.1 The EquationWriter Bug
    11.2 Rotation Rate to Angular Frequency Conversion Bug

 12. Appendix D: Hardware Additions

    12.1 How to Make a Serial Cable
    12.2 Using a modem with the HP48
    12.3 Additional Information on the HP48 and RS-232
    12.4 Using Non-HP RAM Cards
    12.5 Where can one obtain third party RAM cards?

 13. Appendix E: Where to get HP48 Programs

    13.1 Best Programs and Where to Get Them List
    13.2 Other Web / FTP Sites
    13.3 FTP by Electronic Mail
    13.4 Bulletin Boards with HP48 Programs
    13.5 HP Goodies Disks

 14. Contributors

 ______________________________________________________________________

 1.  Introduction

 This FAQ is maintained by Andre Schoorl <[email protected]>

 It was previously maintained by Keith Maddock, and was originally
 compiled by Darryl Okahata.  Many thanks to both for their time and
 contributions!

 I rely on your input in order to keep this FAQ up to date.  If you
 have any suggestions or updates, feel free to mail them to me.  If you
 have a correction or suggestion to make, please include the name of a
 specific question rather than its number as the number is
 automatically generated and can change between versions.


 1.1.  Overview

 The purpose of this FAQ is to provide answers to commonly asked
 questions about the Hewlett Packard HP48 family of scientific
 calculators.  This list contains information which has not necessarily
 been verified, and is not guaranteed to be correct.  It has been
 compiled from various postings in the newsgroups comp.sys.hp48 and
 comp.sys.handhelds, as well as other sources.  In particular, some
 parts were taken from older HP48 SX "FAQ Lists".

 For some questions, there may be different answers for each calculator
 (G/GX vs. S/SX).  In this case S/SX specific information is preceeded
 by an "SX:" on the left margin of the first line of each S/SX specific
 paragraph.  G/GX information is denoted by a "GX:" in the same place.
 If a paragraph has no notation, then it is valid for all versions.


 1.2.  This FAQ in Other Formats

 This document was made using the SGML-Tools (Standard Generalized
 Markup Language) package and is available in ASCII, HTML, and
 PostScript versions.  All versions come from the same source, and are
 thus updated simultaneously.

 The URL for the HTML version is
 <http://www.engr.uvic.ca/~aschoorl/faq/>.  The other formats are also
 available here in separate zip files.

 The PostScript version is formatted for letter size paper, but it is
 also possible to create PostScript for legal size paper.  Furthermore,
 DVI, LaTeX, Lyx, Info, and RTF forms of the FAQ are also possible.
 Since it is impractical to provide all of these formats, the SGML
 source is available in case anyone wants to create one of these
 formats on their own.

 Text only versions of the FAQ will be posted to the newsgroup
 comp.sys.hp48 as needed (usually every two weeks).  Also, remember
 that all official FAQs (including this one) are mirrored at
 <ftp://rtfm.mit.edu/>.

 Furthermore, it is posted to comp.answers and news.answers.

 I will sign all text versions with PGP (Pretty Good Privacy) using the
 following key for authenticity, and provide MD5 Checksums for the
 remaining files.  You can get a copy of this public key from the
 keyserver at <http://pgpkeys.mit.edu/>, or through the URL above.


 Type Bits KeyID    Created    Expires    Algorithm       Use
 sec+ 1024 2CFAA0BB 1997-06-21 ---------- DSS             Sign and Encrypt
 sub  2048 F940E148 1997-06-21 ---------- Diffie-Hellman
 uid  Andre P. Schoorl <[email protected]>


 Alternatively, you can download the FAQ at one the following
 locations:


    North America:

    o  <http://www.hpcalc.org/docs/faq/>

    Europe:

    o  <ftp://ftp.stud.fh-heilbronn.de/pub/systems/hp48/incoming/>

    o  <ftp://ftp.stud.fh-heilbronn.de/pub/systems/hp48/info/FAQ/>


 1.3.  Translations of this FAQ

 These translations may not be as up to date as the main FAQ, but
 should still be useful for international users who are more
 comfortable with their native language.


    Portugese:

    o  <http://members.tripod.com/~area48/> by Carlos Alberto Marangon

    Spanish:

    o  <http://www.alumnos.utfsm.cl/~aarrieta/hp48.html> by Alejandro
       Arrieta Rios and Guido Carvajal


 2.  Miscellaneous Questions

 2.1.  I'm a novice, and I have some questions.  Where should I start?

 Start by perusing the HP48 manuals.  You'd be amazed how many
 questions can be answered if you read the manuals.


    SX:
       Earlier HP48 S/SX manuals came in two volumes. The first volume
       dealt with operating instructions, and the second volume dealt
       with programming.  Later HP48 S/SX manuals combined these two
       volumes into one.

    GX:
       HP48 G/GX models come with a one-volume owners manual that
       covers all of the non-programming aspects of the calculator.  An
       Advanced User's Reference (AUR) is available that covers
       programming aspects.  It is highly recommended.  They also come
       with a Quick Start Guide, a guided tour of some of the HP48's
       capabilities.

 Also, look over the section "Answers to Common Questions", in Appendix
 A of the manual.  If you have a two-volume manual, it will be in
 volume II.


 2.2.  What Usenet Newsgroups are there for the HP48?


    comp.sys.hp48
       Primary HP48 newsgroup.

    comp.sys.handhelds
       Occasionally, HP48 information is posted to this newsgroup.

    comp.sources.hp48
       This newsgroup has been dead for years, but was once a moderated
       group for HP48 Programs.

    es.comp.sistemas.hp48
       Is a spanish newsgroup for the HP48.

 Articles posted to the newsgroup comp.sys.hp48 are archived at
 <ftp://wuarchive.wustl.edu/usenet/comp.sys.hp48/>.  Articles are
 archived by year and month, with a general index covering
 approximately the past two years.

 The AltaVista search engine at  <http://www.altavista.digital.com>
 also accesses these archives (for a Usenet search), and automatically
 uncompresses any relevant articles you may select.

 DejaNews  <http://www.dejanews.com/> is another fast Usenet
 archiver/searcher, with many extra features such as Author profile and
 article search.  The only drawback is that it strips attachments from
 posts (uuencode, MIME) to save space.

 Another good way to find HP48 posts is through one of the various
 search engines available on the web.  For example, Netscape, Lycos,
 and Magellan and others all seem to be able to find Usenet articles on
 the HP48.  The search may even find articles that have long since
 expired from your local news server!


 2.3.  What are some good sites for the HP48?

 Many HP48 programs can be found on the following FTP sites:

 o  <http://www.hpcalc.org/>

 o  <ftp://ftp.hp.com/pub/calculators/>

 o  <ftp://wuarchive.wustl.edu/systems/hp/hp48/>

    For a list of other HP48 FTP sites, see Appendix E-2.


 2.4.  Are there any good WWW links for HP48 stuff?

 Rather than list out a long list of HP48 related WWW resources, here
 is a single HP48 Page which contains links to other HP48 pages:

 o  <http://www.gmi.edu/~madd0118/hp48/>

 Another well maintained site is  <http://www.hpcalc.org/>.


 2.5.  Is there an HP48 IRC Channel?

 Yes, try connecting to an EFNet server and join channel #hp48.  Many
 of the most knowledgeable HP48 users frequent it, making it a nice
 place to get your questions answered.  There are even two IRC robots
 (hp48b and RPL) on the channel.  The following information will get
 you started:

 First, download an appropriate IRC client.  Collection of clients are
 available at  <http://www.irchelp.org> or <ftp://ftp.undernet.org/>

 Second, find a working EFNet server and join #hp48.  A list of servers
 is given at
 <http://www.irchelp.org/irchelp/networks/servers/efnet.html>


 2.6.  How can I search for a specific HP48 file?

 If you know the all or part of the filename of an HP48 program, you
 can use the proper Internet search services instead of bothering all
 the readers of the newsgroup.  The following server is especially
 good, it seems to find HP48 files from just about anywhere.


      <http://ftpsearch.ntnu.no/ftpsearch>


 2.7.  What are good places to buy HP48's and accessories?


    X-Philes CD-ROM:
       There is a CD-ROM called the X-Philes on the market that
       includes many HP48 files.  See the next question for more
       details.

    Office Max:


         Toll Free: (800) 788-8080


    Wholesale Products:
       This is another company on the web that sells HP handhelds,
       including the HP48.  Their address is
       <http://www.wholesaleproducts.com> or you can mail inquiries to
       <[email protected]>


         The Mall At Wholesale Products
         400 West Cummings Park
         Suite 1725-122
         Woburn, MA 01801
         781-438-8622 (Telephone, 9 a.m. - 5 p.m. Boston time)
         781-438-8307 (FAX, 24 hours a day, 7 days a week, from anywhere)
         E-mail: [email protected]


    Web:
       North America:

    o  <http://www.wholesaleadvantage.com/hpcalcs.html>

    o  <http://www.waterw.com/~jake-s/handyclc.htm>


    o  <http://www.dvtg.com/>

    o  <http://www.smi.com/>

    o  <http://www.tdsway.com/>

    o  <http://www.ramss.com/>

    o  <http://www.chotkeh.com/>

    o  <http://muffet.com/samsoncables/>

    o  <http://www.calculatorsinc.com/>

       Europe:

    o  <http://members.aol.com/weidatec/>

    o  <http://www.Digitalis.de/>

    o  <http://stolte-edv.com/>

    o  <http://home.t-online.de/home/FFFFF/>

    o  <http://www.bbm.e.se/>

    o  <http://www.geocities.com/Eureka/Enterprises/3190/>


    Others:


         Global Connections Incorporated (formerly Connection Point, Inc.)
         50 South River Street, Suite 105, Janesville, WI 53545
         Tel: (608)-752-9548 or (608)-752-1537

         Oxford Educational Supplies (U.K.)
         Tel: 01869 343369 (mail order)
         Notes: No shipping charge for within U.K.

         Spectrum Office Equipment
         22 Stokes Croft Bristol (U.K.).
         0117 9428278

         Best (Western U.S., used to be La Belles) 1-800-950-2378

         Calculators Inc., Minneapolis, MN, U.S. (612) 866-8908

         Carrington, (800) 982-3731

         J&R Music World - Computer World 1-800-221-8180

         Office Depot (U.S. and Canada)

         Service Merchandise (East Coast U.S.)


 2.8.  What happened to EduCalc?

 EduCalc, which had been one of the best sources for HP48's and
 accessories, went out of business on 31 December 1997.


 2.9.  Are there any CD-ROMs with HP48 software?

 Yes, there are a few CD-ROMs with HP48 software I know of:

    HP48 Archive CD:
       The most current set of files at  <http://www.hpcalc.org/> is
       always available on a custom burnt CD-R.  Details are at the
       same URL.

    X-Philes:
       The X-Philes is a CD-ROM made by Synchron Data that contains
       most HP48 programs to date.  All together the CD-ROM contains
       over 21,000 files and more than 620 MB of information, mostly
       zipped.

       The HP48 sections contain 3194 files and make up 38.5 MB of the
       total.  This includes all of the Goodies disks (aka Horn disks)
       1 through 10.

       There are also files for HP95, Psion, TI-82 and TI-85
       calculators, as well as information and programs on:

       Jokes, Star Trek, Sports, Midi, History, Strange files,
       Conspiracy, Law and Business, Internet & Networks, Atari, BBS-
       Systems, Hardware, Computers, 3D-Objects, Anarchy, Hacking,
       Movies, X-Files, Music, Magazines, Science, UFO and Aliens,
       Occult, Security & Privacy, Amiga, Cyberspace, Subcultures,
       Radio, Virus hunting, Survival, Phreaking, PC utilities, Game
       cheats and levels, and Programming.

       The CD comes with easy to use Windows software for browsing and
       searching for keywords.  This software contains an upload
       feature that allows you to transfer programs directly to your HP
       (or modem) using X-Modem.

       More information on obtaining the X-Philes CD-ROM is at:

       WWW:  <http://www.algonet.se/~synchron/>

       E-Mail: <[email protected]>

       Regular Post:


         Synchron Data
         Tranbarsvagen 25:14
         372 38 Ronneby
         Sweden


    SHAREWARE Volume 1 for Hewlett-Packard:
       There is a CD-ROM by a German company called Yellow Computing
       named SHAREWARE Volume 1 for Hewlett-Packard.  It sells for DEM
       49.80 (U.S.$ 34.00), and is distributed from:


         Yellow Computing                Phone +49 7136 951143
         Computersysteme GmbH              Fax +49 7136 951111
         Postfach 1136
         D-74173 Bad Friedrichshall
         Germany

    This is the German company which offers PC <-> HP-48 transfer
    cables together with Windows software for transfering files (the
    "Transfile Win 48" package).

    The CD-ROM comes with a 16 page booklet in German and English which
    shows how to use the included Windows 3.1 transfer program (with
    program and catalogue files in both languages).

    It's sampled in Aug 95, pressed Oct 95 and contains about 85 MB of
    software for the HP48 SX/GX, 95LX, 100LX and 200LX; the Horn disks
    1 through 9, and about 710 additional HP-48 programs in the 9
    categories: Animation, Data, Games, Graphic, Programming, Maths,
    Memory, Science, Utility and Communications.  It also has about 200
    other unsorted, compressed HP48 files.  Decompression software is
    included.

    It's not an ISO CD-ROM, since it contains directories and files,
    whose names contain exclamation marks, hyphens and dollar signs.


    Handheld HP CD-ROM Library:
       This collection contains 13,611 files for a total of 314 MB of
       compressed software for HP Handhelds.  The principal groups of
       this collection are:


       1. HP28C/S (up to 2.5 Mb) Applications, Games, Utils, Docs.

       2. HP48S/SX (up to 48 Mb) Applications, Business, Chemistry,
          Communications, Emulators, Games, Graphics, Math, Physics,
          Programming, Sound, Time, Utils, Docs.

       3. HP48G/GX (up to 40 Mb) Applications, Business, Chemistry,
          Communications, Games, Graphics, Math, Physics, Programming,
          Sound, Time, Utils, Docs, Sys-RPL.

       4. HP38G (up to 2 Mb) Applets, Applet Development Kit, Docs.

       Platform files total 30 MB, additional documentation is 18 MB,
       various collections including the Horn disks and SysRPL
       collection total 106 MB, and finally 58 MB of information from
       HP groups around the world.

       For more information, orders, and pricing send e-mail to
       <[email protected]>


    Ingenieur Professional CD ROM
       This is another German CD issued by Harald Kresin and Franz
       Lorenz.  It contains roughly 67 MB of HP Software.  Their web
       page is <http://home.t-online.de/home/05713201317> and their e-
       mail is <[email protected];

       Their address is


         Franz Lorenz
         Pocketcomputer & Zubehoer
         Bruchstr. 51, D-32423 Minden Germany


 2.10.  Where can I find HP conference videotapes?

 Jake Schwartz maintains a list of videotapes of HP handhelds meetings
 / demos / conferences going back as far as 1986 and the intro of the
 HP18C.  They are available at relatively low cost to anyone who is
 interested.  The URL is <http://www.waterw.com/~jake-s/video.htm>.


 2.11.  Are there any HP48 Emulators?

 A fully functional HP48 emulator by Eddie Dost called "x48" is
 available.  It runs in X-Windows on any Unix based operating system
 like Linux or Solaris.  However, it requires a ROM dump of an HP48 to
 run.  Of course, due to copyright laws such a ROM dump cannot be
 distributed with the x48 package.

 Therefore, you must be the proud owner of an HP48 (S/SX or G/GX) in
 order to create your own ROM dump.  The emulator will look and act
 either like a S/SX or a G/GX, depending on what type of ROM dump you
 give it.  Further instructions are contained in the x48 package
 itself.  The latest version of x48 is available at
 <http://www.hpcalc.org/pc/emulators/>

 There is also a freeware emulator for Windows called Emu48.  It is
 written by Sebastien Carlier, and runs under either Windows 95 or NT.
 It offers many exciting features, including fast speed, saving of
 memory, direct loading of files onto the stack, a greatly customizable
 interface, and support for ports through 33.  It supports both S/SX
 and G/GX ROM dumps, and comes with a "RomDump Wizard" to help you
 create one.

 The binaries and full C++ source code, distributed under the GNU
 Public License, as well as more information, are available at
 <http://www.epita.fr:8000/~sebc/Emu48/>.  There are also a series of
 "Unofficial Service Packs" available at
 <http://privat.swol.de/ChristophGiesselink/>.

 An emulator for the HP38, based on Emu48 has also been created.  It is
 available at  <http://www.epita.fr/~avenar_j/hp/38.html>

 There is also an HP48 S/SX/G/GX Emulator for Amiga computers called
 Alcuin.  See  <http://www.cis.tu-
 graz.ac.at/home/schupfer/Alcuin/index.html> for more information.


 2.12.  How can I make a dump of my HP48 ROM?

 Emulators for the HP48 generally require an image of your HP48's
 internal ROM, also known as a "ROM Dump".  Currently the best program
 to make a dump of your ROM is ROMDump Wizard by Christoph Giesselink.
 It is available at  <http://privat.swol.de/ChristophGiesselink/>


 2.13.  Is the HP48 Allowed on SATs, AP, or ACT Tests? (U.S.)

 From: Jack Levy

 The S/SX/G/GX are allowed on the SAT's.  The S/SX/G/GX are allowed on
 the SAT II Math IIc test, but no calculators are allowed on any of the
 others.  The S/SX/G/GX are allowed on the AP Calculus exam.  However,
 only the S/SX are allowed on the AP Chem and AP Physics exams because
 the G/GX has the built in equation library.

 Update from: Sandler Rubin


 As of 1996, HP 48G calculators are allowed on the physics and
 chemistry APs, but only for the free response section.  All
 calculators are now banned on the multiple choice sections on the
 physics and chemistry APs.  As for calculus, the HP 48G is allowed on
 one half of the multiple choice and all of the free response.  The
 other half of the multiple choice on the calculus test must be
 completed without any calculator.

 These changes have occurred because the AP tests are now more
 conceptual and depend less on pure "number-crunching".  In the free
 response sections of the chemistry and physics tests, lists of
 important physics equations are include for student use which
 basically make the HP 48G EqLib redundant.

 Update from: John Goerzen

 After a lot of discussion with Candance Noble <[email protected]> of ACT,
 they changed their policy to allow it only if the IR port is covered
 with opaque tape.  Their response follows:

 This notice is in response to questions ACT has received about
 acceptable calculators.  Please pass this clarification on to others.

 Effective Fall 1996, examinees may use calculators on the ACT
 Assessment and PLAN Mathematics Tests.  Students taking the ACT
 Assessment should review page 3 of Registering for the ACT Assessment.
 Students taking PLAN should review page 4 of the Planning Guide for
 Students and Parents.  All makes and models of calculators are
 acceptable -- including programmable calculators and hinged
 calculators with mathematical formulas printed by the manufacturer on
 the inside flap -- provided the calculator does not have any of the
 unacceptable features specified in the ACT publications noted above
 and further clarified below.  Examinees using unacceptable calculators
 will be dismissed from testing.

 The following information is provided to help students select an
 acceptable calculator if they choose to use one on the ACT Assessment
 or PLAN Mathematics Test.


    POCKET ORGANIZERS, HANDHELD OR LAPTOP COMPUTERS
       All such devices are prohibited.


    ELECTRONIC WRITING PADS/PEN INPUT DEVICES
       Such models are readily recognizable due to the pen or stylus
       used to input data.  All such devices are prohibited.


       The term QWERTY derives from the first six letter keys (left to
       right) of the top row of typewriters, personal computers, most
       handheld and laptop computers, pocket organizers, and
       specialized calculators.  All models with QWERTY keyboards are
       prohibited.


    PAPER TAPE
       If a calculator has a feature that provides paper output, the
       paper must be removed to make the calculator acceptable.


    NOISE
       Calculators that have a "talking" or audio feature are
       acceptable in a group testing situation only if the sound
       feature has been turned off.
    WIRELESS COMMUNICATION
       Calculators that can communicate (transfer data or information)
       wirelessly with other calculators can be recognized by the
       "window" or infrared data port on the top edge of the
       calculator, similar to one on a television remote control.  Such
       calculators are acceptable only if the wireless transfer
       capability is disabled by placing opaque material (such as
       masking tape) over the infrared data port.


    POWER CORD
       If a calculator can run on either battery or electrical cord,
       the electrical cord must be removed to make the calculator
       acceptable.


 2.14.  What is the HP49G?

 On May 21st, 1999, at the OpenHP Conference in Paris, France, Hewlett
 Packard announced the HP49G graphic calculator. The following
 information comes from Jean-Yves Avenard of HP's ACO (Australian
 Calculator Operation).


    Hardware

    o  512KB of RAM

    o  2MB of flash memory (1MB used for upgradable ROM, 1MB available
       to user)

    o  4MHz Saturn CPU

    o  131x64 pixel screen (black instead of blue, so higher contrast)

    o  51-key keyboard with tactile rubber keys


    o  This is not the same type of keyboard as the HP48 has but it is
       still an HP quality keyboard. Rubber keys don't always mean bad
       quality, as there are a lot of mechanical parts to make a
       keyboard.

    o  The feeling is extremely similar to the HP48 keyboard. Do you
       really think that HP could let a new product go out of its doors
       with a keyboard that will break after 6 months?


    o  New keyboard layout - a user friendly keyboard that incorporates
       the strengths of the existing RPN keyboard layout and the more
       familiar algebraic style keyboard layouts on the HP 38G, TI-83
       and TI-89.

    o  Metallic blue case with a translucent blue-tint slide-on cover.
       You can put it in the HP48's case if you prefer a soft case.

    o  No IR, but an HP49<->HP49 cable is provided (adapter included
       for connection to HP48). There were problems in some countries
       with some teachers fearing the HP48 would be used to cheat
       because of the IR port.

    o  RS-232 serial port with Kermit (binary, ASCII) and Xmodem (128
       checksum, 1K, 1K CRC) running at 9600 bps (15360 bps internally,
       but no PCs support that speed).

    o  Any unit may be directly connected to a data-logger, overhead
       projector, a personal computer or another HP 48G Series or HP
       49G graphing calculator.

    o  The hardware is not expandable, but the ROM can be software-
       upgraded and there is plenty of memory, so this should not be a
       problem.


    Memory Management

    o  Even though the Saturn can only access 512K of memory, a new
       bank switching routine is used, in addition to absolute
       addresses, making it much faster.

    o  The user sees three ports of memory: Internal System RAM (256KB,
       port 0), Extended RAM (256KB, port 1), and Flash User ROM (1MB,
       port 2).

    o  The system will manage how to copy your files for you, so there
       is no need to get lost in a bank.


    Software

    o  Step-by-step solving option that enables you to learn how to get
       the right answer numerically or symbolically.

    o  The most complete built-in Computer Algebra System (CAS)
       currently available on a calculator for fast, advanced symbolic
       manipulation and solving.


    o  Imagine an HP48 with Erable and ALG48 plus everything that is
       missing. Now speed it up so it can compete (and be faster) than
       anything else on the calculator market. That's the HP49's CAS.


    o  Inferential and Descriptive Statistics (suitable for Advanced
       Placement and College/University level statistics).

    o  A fast, flexible and intelligent Editor for isolating, editing,
       manipulating and evaluating text, equations, expressions, sub-
       expressions, programs and graphs.

    o  Input and Output Customization - choose between "textbook" form
       (pretty print), algebraic and RPN input and "textbook" and
       algebraic output in various font styles and sizes.


    o  When you first boot the machine, it's an algebraic machine.  If
       you don't like algebraic mode, simply press Mode, select "RPN"
       and that's it. You're back to the HP48 Reverse Polish Notation
       mode forever and ever (at least until you clear the memory or
       manually switch back to algebraic). It works EXACTLY like the
       HP48, but faster.


    o  Between 10 and 100 times faster than the existing HP 48G Series


    o  The OS has been completely rewritten, mainly in assembly
       language, so nearly everything that was slow on the HP48 works
       faster, including input forms, choose boxes, stack display,
       command line, file manager, etc. When I say faster, I mean MUCH
       faster. The HP49 is even faster than an HP48 with the MetaKernel
       running in it.


    o  There is no longer a built-in equation library but the constants
       library remains.

    o  Do you think the 4MHz CPU is slow? The 3D real-time plotter can
       draw 6 frames (for a 14*14 points matrix) per second... It's
       faster than any current competitors! You can rotate in real time
       over the X axis, Y axis and even the Z axis.


    Programming

    o  Provides four programming languages:


       1. HP Basic: like a hybrid between RPL and Basic. This does not
          have GOTO and cannot really be called Basic, as it looks like
          the HP38G's programming language. Example code:


            FOR(i,1,100)
                DISP(i,1);
                IF I+1-5==50 THEN DISP("Hello World",2) ELSE DISP("I'm off",2) END
            STEP(1)


       2. User RPL: Just like the HP48's built-in language. To reuse a
          User RPL program from an HP48, send it to the 49 using ASCII
          Kermit.

       3. System RPL: Development software, including disassembler,
          built into ROM but not supported.

       4. Assembly language: Development software, including
          disassembler, built into ROM but not supported


    o  Grayscale support (in ASM as well as System RPL). All System RPL
       graphic routines work on grayscale graphics.

    o  Vectorized Interrupt System (add your own interrupt handler)

    o  To run an HP48 application on the HP49, just recompile it. It
       will probably run faster, too, especially if it uses the GUI.

    o  Entry points have moved to make the ROM easier to maintain, but
       programs will still be compatible at the source code level.

 The HP49 is the most powerful calculator ever announced at any time.
 It works in two ways: one fully compatible with the HP48 series,
 including RPN but faster, and the other algebraic, easy for users of
 other calculator brands to learn to use.

 Although you may not agree with some of the specifications above,
 please wait until you touch it before complaining. After all, the HP49
 was developed by HP48 users and tested by HP48 users!

 For more information, visit the HP Calculator Archive at
 <http://www.hpcalc.org/>

 2.15.  How does the HP48 compare with other calculators?

 From: Chin-Yu Hsu <[email protected]>

 What are the differences between the HP48 and the TI?

 Before listing the differences, I wish to let you know that the HP48
 has much more functionality than the TI's. However, these additional
 functions are usually of no help in high school than the TI. Instead,
 they are only helpful in college depending on the course you take. The
 TI is probably a better choice on tests in high school since it is
 easier to use (to most people) and does calculations faster (because
 it offers speed at the expense of the higher precision of the HP48).
 Please note that the HP also offers the HP38 which is more comparable
 to a TI-82.

 Also, you should realize that if you want support for the graphing
 calculator, the HP48 is the one to get. Although you can get support
 from Texas Instrument (by phone and by web), and also by teachers in
 school, you can get support for the HP48 from a larger group in the
 world. There are far more web sites related to the HP48 than to the TI
 graphing calculators. Also, the HP48 has its own newsgroup and its own
 IRC channel (usually up 24 hours a day and maintained by a bot that
 can send you programs at your request).  Please note that although the
 calculation and graphing capabilities may not be available for a
 particular calculator, you can usually download a program that extends
 such a capability to it.

 If you find that part of the information below is incorrect, please
 tell me about it. You may need to provide additional proof, if I am
 unable to confirm it.  Any additional information on the TI-92 is
 helpful because much about it is still a mystery.


    General Differences:


          Calculator            HP38     HP48(2)  TI-82(3)    TI-85      TI-92

          List Price(4)         $109   $135/$265    $125       $135       $250

          Available Mem.(5)     32KB    32/128KB   28.2KB     28.2KB     70.0KB

          Batteries Req.(6)     3AAA      3AAA     4AAA+1     4AAA+1     4AA+1

          Plug-in Cards          No      Yes(7)      No         No      Yes (Plus)

          Infrared Transmit.     Yes     Yes(8)      No         No          No

          Wire Transmit.         Yes      Yes       Yes        Yes         Yes

          Cal-to-PC trans(9)     Yes      Yes       Yes        Yes         Yes

          Overhead display       Yes     Yes(10)    Yes        Yes         Yes

          CBL support(11)        No        No*      Yes        Yes         Yes

          QWERTY keys(12)        No        No*       No         No         Yes

          Screen capture         Yes      Yes     via link   via link    via link

          Screen Resolution   131x64    131x64     96x62      128x64     240x128

          Character Display    22x8      22x8      16x8        21x8      ?????


    Miscellaneous Functions:


          Calculator            HP38     HP48(2)  TI-82(3)    TI-85      TI-92

          Simple Eq. Solver      Yes      Yes        No        Yes         Yes

          Simult. Eq. Solver    ?????     Yes        No        Yes         Yes

          Poly. Root Finder   No limit  No limit     No     30th order     Yes

          # of matrices          10     No limit      5      No limit    No limit

          max matrix size(12) No limit  125x125    15x15      30x30       99x999


    Graphing Functions:


          Calculator            HP38     HP48(2)  TI-82(3)    TI-85      TI-92

          Simultaneous Graph  Up to 10  No limit  Up to 10   Up to 99   Up to 99

          Zoom features          14        15        13         15       ?????

          Graph Tracing          Yes      Yes       Yes        Yes         Yes

          Fnc. Value Tables      Yes       No       Yes         No         Yes

          Parametric Graphs      Yes      Yes       Yes        Yes         Yes

          Polar Graphs           Yes      Yes       Yes        Yes         Yes

          Recur. Seq. Graphs     Yes      Yes       Yes        Yes         Yes

          Diff. Graphs           No       Yes        No         No          No

          Conic Graphs           No       Yes        No         No          No

          3-D graphs             No     7 types      No         No         Yes

          Area under Curve       No       Yes       Yes        Yes         Yes

          Extremum               Yes      Yes       Yes        Yes         Yes

          Roots                  Yes      Yes       Yes        Yes         Yes

          Slopes                 Yes      Yes       Yes        Yes         Yes

          Tangent Lines          No       Yes        No         No         ???


    Statistical Functions:


     Calculator            HP38     HP48(2)  TI-82(3)    TI-85      TI-92

     Scatter Graphs         Yes      Yes       Yes        Yes         Yes

     X-Y line Graphs        No        No        No         No         Yes

     Box-Whisker Plots      Yes       No       Yes         No         Yes

     Histogram Plots        Yes      Yes       Yes        Yes         Yes

     Regression Graphs      No       Yes       Yes        Yes         Yes

     Bar Graphs             Yes      Yes       Yes        Yes         Yes

     Truth Graphs           Yes      Yes        No         No          No


 Notes:


 1. In the specifications, "no limit" usually means that it is limited
    by memory only.

 2. There are five different HP48 calculators. There are the HP48S,
    HP48SX, HP48G, HP48G+, and HP48GX.  The S and SX models are older
    models, and no one would be getting them anymore since the G, G+
    and then GX offer all the same features, but with additional
    enhancements to make the features easier to use.  The G, G+, and GX
    are also 40% faster than the S and SX models.  The difference
    between the G and the GX is that the G has 32K of RAM, and no
    expandability, while the GX has 128K of RAM and the ability to have
    two additional plug in cards.  The G+ is in between, having 128K of
    RAM but no expandability.

 3. There is a new version of the TI-82, called the TI-83 which should
    be available soon. It offers all the features of the TI-82, except
    it has additional statistics and financial functions, as well as
    displaying a table and a graph side by side. Please note that this
    feature is not available on the HP48, but is available on the HP38.
    Also, the TI-83 has an equation solver like the HPs.

 4. Cost for HP calculators does not include cables because they can
    transfer data via infrared. The price for TI's include the cables
    for linking one TI to another. Also, the HP48G's list price is
    $135.00, while the HP48GX's list price is $265.00.

 5. The available memory listed for the HPs are slightly lower than the
    given values. The available memory for the HP48G is only 32 K. The
    HP48GX has 128K of available RAM, and is expandable to 4.5 megs!

 6. The batteries used by these calculators are AAA batteries.
    Rechargeable batteries are not recommended because they have a much
    lower life span than alkaline batteries. The TI's require an
    additional CR1616 battery to retain their memory power. The HP's do
    not need this additional battery, but once you take out the AAA
    batteries, you have about 3 minutes to replace them with new ones
    before it loses its memory. The RAM cards for the HP48GX requires
    an CR1616 battery, however, if you plan to store it outside of the
    HP.

 7. Only the HP48GX support plug-in cards. The HP48G doesn't.

 8. If you are thinking of getting the HP's to cheat on tests because
    of the infrared capability, forget about it. The infrared receivers
    on the HP's only have a maximum range of THREE inches (The HP's
    transmitter has a longer range, up to several feet, but that will
    not help at all unless you are using it as a remote control to
    watch TV, or you are sending to an infrared device connected to an
    AC power source, such as the HP LaserJet 5 printers).

 9. The Calculator to PC (or MAC) requires additional cable and
    software. For the HP, you only need to get the cable, which can be
    made from standard computer parts (a DB-9 and CD cable totaling
    about $15). No additional software is needed because you can use
    any communications program of your choice.  For the TI, you can
    either need to purchase a proprietary software and cable for about
    $60 to $80 at stores or you can download the software free at TI's
    web site, and try to make your own cable.  The same type of package
    is available from HP, but offers programming tools and debuggers,
    and costs about the same price.

 10.
    The overhead display unit for overhead projectors is available only
    for the HP48GX because the HP48G does not have the available
    extension slot to install the necessary interface card.

 11.
    The CBL stands for Computer Based Laboratory. It is created by TI,
    so it is not available on the HP of course. It simply allows you to
    collect data from different sources (sounds, temperature) at set
    intervals and can be analyzed on the calculator. The CBL unit's
    list price is approximately $225. Please note that there is a
    similar device for the HP-48, called the ADCM-48 which is a A-to-D
    converter and I/O interface that can read from four analog and four
    digital inputs.

 12.
    Please note that calculators with QWERTY keys are not allowed on
    the SAT exams.  The HP calculators do not have QWERTY type
    keyboards, but you can connect it to your computer and have the
    keys from your computer echo on to the HP calculator after
    installing a simple freeware program such as those found in
    <http://www.engr.uvic.ca/~aschoorl/archive/as-comm.zip>.

 13.
    The maximum matrix size on the HP48G is only 42x42. The maximum
    matrix size on the HP48GX is 85x85, but it can be expanded to
    125x125 with the addition of an extra RAM card.

 14.
    The TI-92 manual states lists can be up to 999 elements, and data
    can be arranged in 99 columns of 999 elements each.

 From: Bernard Parisse


 o  Overhead display: there are special models of the TI92 to do this,
    standard models give bad results

 o  Memory: The TI92-II model has 198K memory (price in France 1890 FF
    instead of 1390 FF)

 o  Processor: Modified 68010 at 10MHz

 o  Cabri-Geometre is very slow on the TI, the teachers I met at my
    lecture told me that they never use Cabri on the TI.

 o  Numeric computations: The HP clearly beats the TI, especially in
    linear algebra (factorization of matrices,
    eigenvalues/eigenvectors, etc...)
 o  Symbolic computations: The TI clearly beats the HP... without
    addition of any math programs.  Hence I compared the TI adding the
    best programs available on the net (i.e.  ntheory (10K) for number
    theory, odeproj for ordinary differential equations (40K), that was
    all since I had only a 70K TI92) with my HP loaded with Alg48 and
    Erable.  The main advantage of the TI92 is speed (about 5-10 times
    faster than Erable, 1-2 times faster than Alg48).  The main
    drawback on the HP48 side is the lack of a limit instruction.  Some
    features of Alg48 and Erable are not provided by the TI92:

 o  Factorization of integers (limited to factors less than or equal to
    65520 on the TI92, integers may not have more than 614 digits on
    the TI92) and of polynomials (e.g. the expanded form of:


      (x^4+x^3+1)*(x^4+x+1)


 is not factored on the TI92).

 o  Integration: the Risch algorithm is not implemented in the TI, e.g.
    it can not find the antiderivative of


      (1+2x^2)*exp(x^2)


 o  Taylor series: This feature is probably implemented like in the
    HP48 ROM, hence the TI can not solve series(sin(x)/(exp(x)-1)) at
    x=0 for order greater than 4.

 o  Eigenvalues/Eigenvectors/Jordanisation of matrices

 o  Systems of polynomials equations (Groebner bases)

 o  Ordinary differential equations are only solved with programs like
    odeproj, no support for Laplace or inverse Laplace transform

 o  A lot of internal programs are not accessible to the end-user on
    the TI92, as the source code of Alg48 and Erable is freely
    available.

 o  Programming: Assembler is now available on the TI, but there is no
    counterpart to SysRPL and the build-in language is comparable to a
    shell-script langage (with some limitations e.g. for usage of
    programs in functions)


 2.16.  What is the Universal Font Library (UFL)?

 The Universal Font Library, or UFL for short, is a set of libraries
 designed to help reduce the overhead of replacement fonts between a
 number of major HP48 programs.  The basic idea is instead of each
 program containing its own replacement font(s), the fonts are stored
 in a cetral library to save room.  In addition, the UFL comes with a
 Font Maintenance Library (FMnt).

 If you use some of the programs in the Best Programs List, you may
 find you need a particular UFL library installed in order to use the
 program.  The UFL is maintained by Andre Schoorl and is distributed
 under the GNU General Public License.  For more information and to
 obtain the UFL package, see <http://www.engr.uvic.ca/~aschoorl/ufl/>.
 2.17.  What are the best alternate editors?

 If you like a smaller font, I would recommend TED by Mika Heiskanen,
 or MiniWriter by Jean-Yves Avenard.  Both use FNT1 from the Universal
 Font Library (UFL) to allow font customization and to save space.

 MiniWriter is very small and fast, and has cut, copy, paste, and
 search features.  It is available at http://www.epita.fr/~avenar_j/

 TED has slightly more features, such as a character map, but as a
 result is larger.  TED is based on ED, which is the editor that comes
 with the Jazz library.  The latest version is available at
 <http://www.engr.uvic.ca/~aschoorl/>.

 If you prefer the medium font, I would recommend HP-Writer by Paquot
 Christophe.  It's quite small, fast, and uses FNT2 from the UFL.  Its
 features include cut, copy, and paste, as well as a macro key and
 built in User RPL key support.  However, it only works on G/GX.  The
 current version is available at
 <http://www.geocities.com/SiliconValley/Lab/1930/>.

 Other editors include StringWriter, also by Jean-Yves Avenard, which
 is a very complete and full featured library.  EDEN, by HPFox, is
 another popular editor in France.  Another is QED, which was
 originally written by Lutz Vieweg but is now maintained by Rick
 Grevelle.


 2.18.  Are there any PC fonts for the HP48?

 Yes, there are several fonts on the Goodies Disks (see the Appendix),
 as well as some TrueType fonts available at
 <http://www.hpcalc.org/pc/misc/>


 2.19.  Is the HP48 serial number available in memory?

 No.  There is no electronic version of the HP48 serial number.  This
 was apparently considered by the design team, but it was determined
 that the costs would greatly outweigh the benefits.


 2.20.  What is the format of the HP48 serial number?

 The HP48 serial number is printed on the back of the HP48, just above
 the battery compartment.  There are two different serial number
 formats.  The older format was used when the HP48 was first introduced
 and continued through the first part of 1997.  The newer format has
 been used on HP palmtops since about 1993 and was started on the HP
 calculators in the first part of 1997.

 The new serial numbers are in this format:


      ccywwnnnnn


    cc Place of manufacture (new two-letter code)

       The known codes are:


    o  SG = Singapore

    o  ID = Indonesia

    o  MY = Malaysia

    y  Year of manufacture.  This represents the last digit of the
       year.  A 7 would mean 1997.

    ww Week of manufacture (01-53).

    nnnnn
       The unit number for that week. (first unit on Monday is 00001)

 For example, if your serial number were SG72706543, the unit was the
 6543rd unit manufactured in Singapore during the 27th week of 1997.

 The old serial numbers are in this format:


      yywwMnnnnn


    yy The year the unit was made (add 1960 to this value)

    ww Week of manufacture (01-53).

    M  The manufacturing location (A for America, S for Singapore)

    nnnnn
       The unit number for that week.  (first unit on Monday is 00001)

 For example, if your serial number were 3321S07509, the unit was the
 7,509th unit manufactured in Singapore during the 21st week of 1993.


 3.  Questions about ROM versions

 3.1.  What does the SX/GX have that the S/G doesn't?


    SX:
       The HP48 S is the same as the HP48 SX except that the HP48 S
       does not have the two expansion slots of the HP48 SX.  This
       means that the HP48 S cannot be expanded and can only access 32K
       of memory, versus 288K for the HP48 SX (two 128K RAM cards).
       (Actually, there are third-party RAM cards that contain 256K or
       512K on a single card -- this memory is accessed via a bank-
       switching mechanism.)


    GX:
       The HP48 G is the same as the GX except for two differences.
       The GX has the 2 expansion ports, and also has 128K RAM built
       in, whereas the G only has 32K.

       If you plan on heavily using your calculator, you will probably
       find that 32K is not enough memory.  In fact, some of the best
       HP48 Programs will not even fit in this memory!


 3.2.  What is the difference between the HP48 G/GX and the HP48 S/SX?

 The HP48 G/GX calculators are, basically, slightly faster (by 40%)
 versions of the HP48 S and HP48 SX calculators, with more features,
 such as 3D-plotting and a new forms-based interface.  Much of the HP
 Solve Equation Library card is now built-in.  See Appendix B-1 for a
 detailed list of GX features.

 Note, however, that the HP48 G/GX is different from the HP48 S/SX in a
 number of significant areas:


 1. The HP48 GX comes with 128KB RAM, as opposed to 32KB RAM in the
    HP48 SX.  The HP48 G still has 32KB RAM, however.  The HP48 G/GX
    also has twice the ROM (512K), compared the HP48 S/SX (256K).

 2. Much of the HP48 G/GX internals have changed, compared with the
    HP48 S/SX.  Unfortunately, this means that many programs written in
    assembly language or System RPL won't work on the HP48 G/GX.  This
    is especially true of any program that tried to access the display
    memory directly.

 3. The HP48 G/GX CPU runs at 4 MHz, instead of the 2 MHz used with the
    HP48 S/SX CPUs.  However, due to various overheads (memory bank
    switching, etc.), the speed increase between the S/SX and G/GX is
    less than 2 times.  G/GX throughput is approximately 40% faster.

 4. Slot 2 of the HP48 GX can access up to 32 ports (ports 2-33) by
    bank switching.  Each port is 128KB, for a maximum total of 4 MB in
    slot 2.


 3.3.  What is the HP48 G+?

 The HP48 G+ was announced 30 March 1998.  It is essentially a HP48 G
 with more memory - it has 128K of memory instead of 32K.  All G+
 machines have revision R ROMs.

 There is no change to other aspects of the calculator model offerings.
 Specifically, it looks like HP has added to the HP48 family without
 withdrawing anything.  The G, G+, and GX will all continue to be sold.

 The press release for the HP48 G+ is at:
 <http://www.hp.com/pressrel/mar98/30mar98.htm>


 3.4.  How can I tell what ROM revision I have?


    GX:
       Type the command "VERSION".  Note that this command is not part
       of any key or menu, and so you must spell it out.

       Type #30794h SYSEVAL.  It returns a string, "HPHP48-x", where x
       is your ROM revision.  This works for both SX and GX.

    SX:

       1. Turn the calculator on (press ON and then release).

       2. Press ON again, and hold it down.

       3. While holding down the ON key, press and hold down the "D"
          key (the fourth white key in the top row).


       4. While holding down the "D" key, release the ON key.

       5. Release the "D" key.  The display should be blank, with the
          exception of three vertical lines (one down the centre, and
          one down each of the right and left sides).

       6. Press the backspace key (it says DROP and CLR over it).  A
          meaningless string of digits should appear in the top line of
          the display (mine says "705D9:1B8DA178E5A111B6" -- yours may
          be different).

       7. Press and hold down the EVAL key.  It should say something
          like the following, where the ? is an uppercase letter
          indicating the ROM version:


            Version HP48-?
            Copyright HP 1989


       8. Release the EVAL key.  Hold down ON and hit "C" (the third
          white key in the top row.  This is a general reset operation
          that returns the calculator to normal from the diagnostic
          stuff (which is where ON-D puts you).


 3.5.  What bugs exist in the various versions of the HP48?


    Rom: A

    o  DEFINE rounds numbers in user-defined functions if STD is not
       the current display mode.

    o  KGET on a zero length file from another machine will cause the
       calculator memory to be cleared.

    o  NXEQ from the Graphics Environment with flag -3 set (SYM off in
       Modes) can overwrite the current equation with a number.

    o  Displaying the clock in 24-hour format causes the one-digits for
       minutes to be incorrect in the alarm catalog.

    Roms: A-C

    o  INV returns an incorrect result if used on an 8x8 or larger
       matrix.  To get around this problem, divide the identity matrix
       with the matrix to invert.

    Roms: A-D

    o  Entering a symbolic complex number in polar form like (A,<B)
       (where < is really the funny little angle symbol), gives an
       expression in A and B that is wrong (the A and B are
       interchanged so A is the angle and B is the magnitude).

    o  If the clock is displayed during an ARCHIVE via RS-232, there is
       a chance (not 100%) that calculator memory will be cleared,
       after the transfer.  The work-around is to turn the clock
       display off before doing the transfer.  Should your memory be
       cleared, you will have to restore the contents of memory from
       the archive.


    o  TRNC and RND allow for an array in level 2 and a symbolic in
       level 1 of the stack. This allows you to put an array in a
       symbolic.  Example: [ 2 3 ] '7/8' RND returns

    Roms: A-E

    o  There's a bug in the EquationWriter that is "fixed" in the Rev J
       ROM.  See Appendix C-1 for details.

    Roms: E, J

    o  BESTFIT: Occurs when a two dimensional array is stored in \GSDAT
       (SigmaDAT).  Pressing the BESTFIT softkey multiple times will
       leave a lot of useless reals on the stack.

    Rom: K

    o  First HP48 G/GX released; includes various bugs affecting ports.
       Therefore, the version K ROM was only used in HP48 G units.

    Roms: K, L, M, P

    o  XROOT Function fails when used with list processing unless X=Y.
       It does not corrupt memory.

       FIX: Preceed any XROOT which will use list processing with a
       SWAP

    Rom: L

    o  Second HP48 G/GX released; fixed the port bugs.  This ROM
       version is that present in the 2,000 HP48 GXs sold at the ASEE
       conference for $90 apiece.

    Roms: L, M

    o  HP48 GX may lose all of user memory when: clock is displayed, a
       library object is be stored in user memory, and a RAM card is
       lugged in to port one and merged with User Memory.  If all four
       of these conditions are present and the calculator is turned on
       when the clock is being updated by the system, a loss of all
       User Memory may occur.

       FIX: Just type the following in on your calculator:


         << RCLF -> f << -40 CF OFF f STOF >> >> 91.3 ASN

         Then turn on USER mode


    o  EquationWriter/Character Picker Bug: If the size of the equation
       is greater than the regular size of the screen, calling the
       Character Picker in Equation Writer will garble the screen.

    o  If you store an object into a port > 1 while there is a card
       installed in slot 1, the end-of-obj-sequence marker (00000) is
       written to port 1 instead to the destination port.  This will
       cause the 'Invalid Card Data' warning to pop up each power on
       after a while and, in addition, the memory of port 1 gets
       currupted (if it's writeable).  A temporary fix is to remove the
       card from slot 1 when changing the contents of the card in slot
       2.  However a better fix is to get the STOFIX library (available
       on GD#10 or at HPCVBBS, ~1K in size).
    o  Tail Bug: The TAIL command returns an error on single length
       strings.  This was fixed to return an empty string in later
       Roms.  Examples:


         "X" TAIL --> Error: Invalid Dimension (Rom M)

         "X" TAIL --> "" (Rom R)


    Rom: M

    o  Evaluating a tagged object which contains an operator (+, -, *,
       /, etc) as the second or subsequent character will leave an
       External and System Binary on the stack, as well as the original
       object.

    Roms: L, M, P

    o  SigmaDAT: Put a NON-MATRIX in \GSDAT (SigmaDAT), run STAT
       graphical apps, edit \GSDAT.  Causes a crash.

    o  XRECV will fail or cause memory lost if the amount of free RAM
       left is not about twice the size of the expected file.

       FIX: See FXRECV on GD 9.  Note that FXRECV is not necessary for
       Rom R, and in fact will not even run properly on Rom R.

    o  RREF does not transform the matrix into Row Reduced Echelon Form
       correctly if the first column of the matrix consists entirely of
       zeros.  It may also return incorrect answers in some matrices.

       A work-around for this bug is to delete any leading all-zero
       column(s) from the matrix; this may be done using the Matrix
       Writer, via its -COL menu key, or via commands: 1 COL- DROP (to
       drop the first column).  Since row-reduction operations never
       change any all-zero column, you already know in advance that the
       given column(s) must be all-zero in the final result.

    Roms: L, M, P, R

    o  portnum: { dir ... var } RCL/EVAL fails if portnum >= 2

    o  Rotation rate to angular frequency conversion bug.  See Appendix
       C-2 for a complete write-up.

    Roms: M, P, R

    o  Repeated executions of FFT or IFFT can cause a memory loss.  The
       FFT and IFFT warmstart problem is caused by a CPU return stack
       overflow during interrupt handling.  The problem can only occur
       when the argument to FFT or IFFT is an MxN matrix with both M >
       1 and N > 1.  The vector argument case is immune to this
       problem.

       FIX: To compute the FFT of a matrix without risking warmstart,
       expand the matrix into its row vectors using ->ROW, compute the
       FFT of each row vector, collect the results into a matrix using
       ROW->, expand the matrix into its column vectors using ->COL,
       compute the FFT of each column vector, and finally collect the
       results into a matrix using COL->.  Except for less precision,
       this is the same result as would be obtained by applying FFT on
       the original matrix.  Use the same procedure with FFT replaced
       by IFFT to compute the IFFT of a matrix.
       Here are program examples implementing the "Matrix FFT" and
       "Matrix IFFT":


         MFFT     << ->ROW FFTLP ROW-> ->COL FFTLP COL-> >>
         MIFFT    << ->ROW IFFTLP ROW-> ->COL IFFTLP COL-> >>
         FFTLP    << -> n << 1 n START n ROLL FFT NEXT n >> >>
         IFFTLP   << -> n << 1 n START n ROLL IFFT NEXT n >> >>


    o  Equation Writer/Equation Library interaction bug: If you pick an
       equation from the EQ library, enter solver for that equation,
       enter an algebraic on the stack like 'X^2', and press the down
       arrow key to view algebraic in EquationWriter, the name of the
       equation will appear in the EquationWriter along with the
       unassociated algebraic.

    Roms: M, P

    o  BESTFIT: Occurs when a two dimensional array is stored in \GSDAT
       (SigmaDAT).  Pressing the BESTFIT softkey multiple times quickly
       can cause a warmstart, or SigmaDAT to be erased. This occurs
       sometimes just by pressing BESTFIT repeatedly, regardless of
       \GSDAT content.  This bug can also be triggered by pressing the
       BESTFIT softkey quickly after pressing any other key.  Simply
       pressing MODL then BESTKEY quickly will trigger the bug.

    Rom: P

    o  PROOT: If you put a matrix of coefficients on the stack and
       press PROOT repeatedly, you will get a warmstart.

    Roms: A-R

    o  MatrixWriter Bug: This shows up when deactivating and
       reactivating any of the two direction movement fields.  If you
       do this, the active matrix field won't move as it's supposed to.
       For example: Launch the matrix writer (check that your GOFORWARD
       field is activated).  Type [1] [ENTER]. The active matrix field
       moves forward as it should.  Deactivate the GOFORWARD field and
       activate it again.  Now enter [2] [ENTER] [3] [ENTER]. The
       digits should show up on the same row, but they don't, because
       after you deactivated and reactivated the GOFORWARD field, the
       active matrix field stops moving according to the movement
       fields.

    o  DTAG Bug: When the DTAG command is executed without any
       arguments on the stack, the error message "XLIB 0 0 Error" is
       given, which is non-standard.

    Roms: K-R

    o  Equation Library Solver and Multiple Equation Solver Bug:
       Pressing MSOLVR or MUSER after setting user flag 63 can cause
       Memory Clear.  Example: CLEAR, 63 CF, EQNLIB, down-arrow, ENTER,
       down-arrow, [SOLV], NXT, 63 SF, right-shift MUSER, DROP  -->
       Memory Clear.  This bug is also found in the HP Solve Equation
       Library Card (HP 82211B, but not 82211A) for the SX.


 3.6.  What is new with the revision "J" ROM? (S/SX)

 The revision J ROM has a faster equation writer, as well as some bug
 fixes.  Scrolling of graphics is also faster.
 One "problem" is that the revision J ROM changed some undocumented ROM
 entry points, which broke those programs that used them.  If you have
 a Rev J ROM, you will not be able to run some old programs.


 3.7.  What happened to ROM revisions G, H, I, O, and Q?

 These versions either were never released to the public, or were
 skipped over.

 I have received confirmation of the existence of a HP48 S with ROM
 revision F.  So it appears revision F was in fact released to the
 public, although very few must have made before revision J came out.


 3.8.  Can I upgrade my HP48 S/SX?

 When the G/GX first came out, HP had a trade in program.  This is no
 longer in operation.  The only option remaining is to try to sell your
 S/SX privately.


 3.9.  Can I upgrade my buggy GX to the latest ROM revision?

 As far as I know, not any more.  They had a program a in early '94,
 but it is over now.  Contact the following for more info:


      Hewlett-Packard Corporation
      Calculator Support
      1000 NE Circle Blvd
      Corvallis, OR 97330

      Phone: (970)-392-1001


 3.10.  What's the latest ROM version?


 o  Revision R is the latest ROM version of the G/GX series.

 o  Revision J is the last ROM version of the S/SX series.


 3.11.  Why would I buy a S/SX rather than a G/GX?

 Here's the top reasons to buy a S/SX instead of a G/GX (Thanks to all
 who contributed):


 1. May be slightly cheaper, having only 32K RAM.

 2. It isn't THAT outdated.

 3. So what if it's a little slower?

 4. You didn't need all those useless equations, graphics capabilities,
    and math and science functions anyways!

 5. If you break it, you're out of less money!

 6. You like seeing how much you can fit into 32K RAM.

 7. You like slow file transfers, using Kermit instead of X-Modem.

 8. You want to be able to use all those lists of SYSEVALs for the SX.

 9. You like having only 3 ports available max.  33 is ridiculous!

 10.
    Since it doesn't have a built in equations library it is less
    likely to be banned on tests.

 11.
    Only wimps need GUI's, dialog boxes, and choose lists.


 4.  Questions about the Operating System and Using the HP

 4.1.  How do I find the checksum of an object?

 Many documents (including this FAQ) make references to the "checksum"
 of an object.  This is a 16-bit user binary resulting from a CRC
 calculation on the contents of an object.  This binary is supposed to
 be relatively unique, with only 1 change in 65536 of accidental equal
 checksums on two different objects.  This allows you to distinguish
 programs that look the same but may be quite different (even if the
 size of them is the same).  It is also often used to verify correct
 transmission of files.

 You can find the checksum of an object using the BYTES command.  This
 will return you two things - the size of the object in bytes on level
 1, and the checksum on level two.  Note that while the checksum of a
 variable name is the same as running the checksum on the object
 itself, the sizes will be differ by 4.5 bytes + the size of the
 variable name itself.

 In rare cases the checksum of two objects can be the same, even if the
 objects are different.  This is due to the limited nature of the
 HP48's checksum function.  You can use the SAME command in these
 cases.


 4.2.  I typed RULES on my G/GX and got a crossword puzzle!

 From: Joe Horn

 Many commercial programs (like Windows) have similar hidden screens
 that list the program's design team.  Since they are always so cute
 and well hidden, they are often referred to as "Easter eggs".  The
 RULES command on the G/GX is one such example.

 Try using the RULES command.  The names you see are as follows:


      /----------------------\
      |            M G       |
      |      P   DIANA       |
      |    CHARLIE X B     D |
      | BILL U   N  TED    A |
      | O  A L   N    ALCUIN |
      | B  I    JIM   V      |
      |  RON     S    E      |
      \----------------------/


 ALCUIN was the HP-internal code name of the HP48 G during development,
 because Alcuin was Charlemagne's teacher, and Charlemagne, as you
 remember, was the code name of the HP48 SX.

 The other names in the "Easter egg" above belong to:


 o  BILL Wickes (list processing; "Father of RPL")

 o  CHARLIE Patton (RPL operating system)

 o  TED Beers (parameterized outer loop; interactive stack; key
    handling system; high-level display management; input forms)

 o  DIANA Byrne (project manager; plotting; graphics)

 o  GABE Eisenstein (EquationWriter)

 o  BOB Worsley (I/O)

 o  PAUL McClellan (unit management; math)

 o  CLAIN Anderson (product manager; marketing)

 o  DENNIS York (manager)

 o  JIM Donnelly (EQ LIB; list processing; variable tic logic;
    developer support)

 o  MAX Jones (menu system; editing)

 o  DAVE Arnett (hardware)

 o  DAN Coffin (manuals)

 o  RON Brooks (marketing)


 4.3.  Why does my HP48 occasionally "freeze" for a moment?

 The HP48 must occasionally do "garbage collection" to free up unused
 memory, and it is this garbage collection that is causing the
 momentary "freeze".  "Garbage collection" is where the HP48 scans
 through memory, looking for objects that are no longer used.

 Using less stack supposedly makes garbage collection go faster.

 The easiest way to force a garbage collection is to run MEM DROP.
 Otherwise you can use #05F42h SYSEVAL or the SysRPL command GARBAGE.


 4.4.  What do I do if my HP48 locks up?


 o  NOTE: If you have it, read the sections in the GX manual starting
    on page 5-16, "Special Memory Operations", and "Testing Calculator
    Operation" on page A-9.

 o  NOTE: under most circumstances, your calculator should never lock
    up.  Some earlier versions of the G/GX do this due to bugs.  Of
    course, depending on the program being run, it may appear to lock
    up, but pressing the "ON" key usually interrupts whatever the
    calculator is doing.  If it does lock up, this is usually caused by
    a buggy assembly-language or system RPL program, and, chances are,
    the memory contents of your HP48 are gone (as in "destroyed",
    "terminated", "wiped out", "deleted", etc.).
 1. First, check the batteries to make sure that they are installed
    correctly.

 2. Next, try is pressing the "ON" key again and again very RAPIDLY.
    The operative word here is "rapidly".  It's possible to write a
    program that can only be interrupted during a very narrow window,
    and so you must press the "OK" key again and again very rapidly to
    interrupt the program.  If the calculator doesn't respond within
    ten or so seconds, go on to the next step.

 3. Press "ON-+" a couple of times, just in case the LCD display
    intensity was turned down.  Here, "ON-+" means:

 o  Press and HOLD DOWN the "ON" key.

 o  Press and release the "+" key, WHILE HOLDING DOWN THE "ON" KEY.

 o  Release the "ON" key.

 4. If this doesn't work, the next thing to try is ON-C.  This is a
    "warm-start" or "system halt".   Note that this will CLEAR the
    stack.  Here, "ON-C" means:

 o  Press and HOLD DOWN the "ON" key.

 o  Press and release the "C" key, WHILE HOLDING DOWN THE "ON" KEY.

 o  Release the "ON" key.

 5. If this still does not work, it is possible that the HP is not
    responding because it is not accepting input from the keyboard.  It
    is possible to execute a system halt without the keyboard using the
    hidden reset button.  The reset button is hidden under one of the
    two upper rubber feet on the bottom of the calculator (it's under
    one of the two feet near the serial connector and I/R port).  Note
    that the location of the reset button (under which foot) varies
    from calculator to calculator.  If you gently pull out the rubber
    feet, you'll notice that there is a small hole under each foot.
    The reset button is located in the hole that has an "R" next to it.
    Once you've located the correct hole, you press the button by
    GENTLY sticking an unbent paper clip, into the hole with the "R"
    next to it.  Hold for one second and remove.

 6. The next thing to try is a complete memory reset.  Depending on the
    state of your calculator, this may or may not preserve the contents
    of memory.  At the very least, even if the contents are preserved,
    the contents of the HOME directory will probably be moved into a
    new directory below HOME (HOME will be empty with the exception of
    this new directory); you'll have to manually move the items back
    into HOME.  To perform a complete memory reset, press ON-A-F.  This
    means:

 o  Press and HOLD DOWN the "ON" key.

 o  Press and HOLD DOWN THE "A" key, WHILE HOLDING DOWN THE "ON" KEY.

 o  Press and HOLD DOWN THE "F" key, WHILE HOLDING DOWN THE "ON" AND
    "A" KEYS.

 o  Release all of the keys.

 o  At this point, the calculator will ask you if you want to recover
    memory.  Answer "yes" to this question.  Note that this can take a
    long time.  If you answer "no", all of memory will be cleared (the
    old contents will be lost).

 7. If that fails, you should still be able to induce a complete memory
    reset by removing your batteries and pressing ON several dozen
    times.  This will drain the capacitor that stores information when
    the batteries are removed, and you should get a "Try to Recover
    Memory?" prompt if you have pressed ON enough times to reset your
    calculator.  If this doesn't work you can try taking the batteries
    out for a few hours and then putting them back again.  You should
    definitely try this method before even considering the next step!

 8. WARNING: the next method is HIGHLY unrecommended!  Permanent damage
    to your HP can result if you try this.  In particular, you could
    fry a couple diodes used to protect your HP48.  You have been
    warned!

    If your HP48 does not respond to any of the above attempts, you
    might consider reversing the polarity of 2 of the 3 batteries VERY
    BRIEFLY, pressing ON, then correcting the batteries.  Your HP48
    should start with a "Try to Recover Memory?" prompt.  Even
    reversing only 2 of the 3 batteries is dangerous, but it is safer
    than reversing all 3 batteries.

    Note that simply shorting the battery terminals will not discharge
    the storage capacitors.  There are diodes between the battery
    terminal and the storage capacitors which prevent the DC current
    from flowing backward.

    This method apparently drains the capacitors and reverse charges
    them by running current through the parasitic input protection
    diodes in the various CMOS chips.

 9. If all of the above fail, or if you decide not to try the last
    step, you may have to contact Hewlett Packard for service.


 4.5.  My HP48 seems to take longer to turn on and off.

 The usual causes for this are RAM/ROM cards and libraries.  When you
 turn the calculator on, it checks RAM (the more you have, the longer
 it takes), and checks to see if any libraries need initializing.

 Also, having a lot of alarms can supposedly also cause this.


 4.6.  What are all the different ON-KEY combinations?

 From: Dave Arnett


    ON In most cases, this will move you to, or toward, the stack
       environment.


    ON+A+F
       This is the manual Coldstart.  It will break out of almost any
       hung program, and offer you the dreaded option... "Try to
       recover memory?"  Note that this is your next-to-last resort in
       a lock-up, so don't give your machine this three-fingered salute
       unless you really want to possibly clear memory.


    ON+B
       This is the Oops! key for ON codes.  For many ON sequences, this
       cancels the operation, so long as you press the B before
       releasing the ON key.  Try it sometime, if you must, just so you
       remember it.  It can be a life-saver, in case of an accidental
       ON+A+F in process, or even accidentally hitting ON during a
       plotting routine.


    ON+C
       This will initiate a Warmstart.  You'll lose the stack and PICT,
       but it will often get you out of a locked up program with memory
       intact.


    ON+D
       Enters interactive test mode.  Back up your own machine and play
       around.  Exit this test mode with Warmstart, ON+C.  See the next
       question for all the various tests available here.


    ON+E
       Starts a looping self-test mode.  Kinda dull after the first
       five minutes, but it keeps a rather solid tempo.  Exit with
       Warmstart, ON+C.


    ON+4
       Cancels repeating alarms.


    ON+1
       Screen dump utility.


    ON+'+' and ON+'-'
       Adjusts display contrast.


    ON+SPC
       Initiates Coma Mode and clears Warm Start Log.  In Coma mode,
       all the clocked activity is halted.  The battery power drain is
       basically the few nano-amps [nA] necessary to sustain your RAM
       contents.  The Warm Start Log is a nearly bullet-proof area of
       memory which keeps track of the last four hazardous events.
       View it using the command WSLOG.  This log is one of the few
       things not cleared by a Coldstart.  But it is cleared by ON+SPC.
       Enter Coma this way if you want to clear the Warm Start Log, if
       you are planning to study crystal healing in Tibet for a few
       years and want to keep your pirated version of Tetris alive, or
       you just have a low power fetish.  Exit Coma mode with the ON
       key (tough to remember, huh?), and plan to find your stack
       cleared out.

       Two additional notes on this Coma stuff.  First, I'm not gonna
       try to list the log codes in WSLOG.  Sorry!  Second, if your
       machine is on, and you drop the batteries out, you will usually
       end up in a coma mode to preserve power.  WSLOG will not be
       cleared.  Instead, you will find a code 1 entry there.  Some
       people are paranoid and want to be in Coma when they change
       batteries, just in case they have a sudden emergency call from
       the Prime Minister and don't get back to their battery change
       for a half hour.  If you are one of these...  shall I say,
       weenies?  No, that would be unprofessional ...users, then I
       recommend you use the ON+SPC entry route, rather than the
       kamikaze method of dropping batteries with the machine running.
       Myself, I just turn the machine OFF, like the manual says.

       Now, a Coma story... sort of.  During the G/GX development, I
       maintained a small number of units on which I changed ROM chips
       as incremental code releases came out.  This was so folks like
       Bill Wickes and Jim Donnelly could have fully-real hardware to
       test, instead of just the EPROM handsets some of you may have
       seen.  We always backed up anything of importance in the machine
       before we did this.  But I got into the habit of using ON+SPC
       before I opened up the calculator.  Better than half of the
       time, I could remove the batteries, open the case, desolder the
       old surface-mounted ROM chip, solder down a new chip, and
       reassemble the machine... with all of RAM intact!  When I
       pressed ON, I'd come right back up without a "Try to Recover
       Memory?" prompt.  Pretty good, huh?  The folks who put that mode
       into the machine certainly weren't in a coma.


 4.7.  What are the different interactive self-tests?

 Pressing ON-D enters the interactive self test function of the HP48.
 When you first press ON-D, your HP will beep and you will see 3
 vertical lines, one on each side of the screen and one in the middle.
 You can exit this mode with a Warmstart, ON-C.  The tests are:


    [A]
       Displays CPU speed

    [B]
       LCD test.  Press Enter to cycle through the tests

    [C]
       Internal ROM test

    [D]
       Internal RAM test

    [E]
       Keyboard test.  Starting with [A], press all the keys in order,
       left to right, top to bottom.  If all goes well, the HP will
       show "KBD1 OK".

    [F]
       Partial keyboard test

    [G]
       ESD test monitor.  Battery status is shown by bars.

    [H]
       UART loop-back test

    [I]
       Wired UART echo

    [J]
       Shows what cards are plugged in.  Press any key a few times.

    [K]
       Test RAM cards in ports

    [L]
       Blanks display

    [M]
       Sends system time from IR port

    [N]
       Receives system time from IR port (have another HP send it)


    [O]
       IR loop-back test

    [P]
       IR UART echo

    [S]
       Shows test start time

    [T]
       Shows test fail time

    [U V W X Y Z]
       Looping test

    [ENTER]
       Initialize test times

    [DEL]
       Test summary

    [BACKSPACE]
       Enters memory scanner (SX only)

 When the HP48 is in test mode (ON-D or ON-E), the test results that
 are displayed on the screen are also sent to the serial port at 9600
 baud, 8 bits, no parity, 1 stop bit.  This seems to be unaffected by
 any settings in IOPAR, PRTPAR, or the system flags.  I can only guess
 that this feature was included for factory testing purposes.  This
 does explain, however, why the I/O annunciator lights up so much
 during the self test.


 4.8.  Why do I get an ESD error when I check my batteries with the
 self test?

 From: Detlef Mueller

 If your HP48 batteries are low, try this test with fresh alkaline
 AAAs. This test first records the CRC of a RAM segment, then starts a
 loop where it creates power peaks and recalculates the CRC again until
 you press a key or the CRCs differ. In the latter case one or more
 cells of your RAM were "Electro-Statically Discharged" and the test
 exits with the last CRC done. If there's a hardwaer problem, this
 number should differ in consecutive executed ESD tests - with fresh
 AAA alkalines! Old ones or non alkaline batteries may cause trouble
 under this test condition.

 If the test runs continuously, the bars on the screen reflect the
 battery status (low bat if bar is there) of port 2 (below the 2), port
 1 (below the 1), and the main AAAs (below 0). If the AAAs are very
 low, the V bar comes up.


 4.9.  I can't account for some of the RAM in the HP48!

 The HP48 S/SX/G have 32K base memory, and the GX has 128K.  However
 not all this memory is available to the user.  The operating systems
 uses memory for system variables, flags, fonts, last stacks, last
 arguments, last menus, and such.  It also can be any one of a number
 of things:


 1. Enabling the use of LAST STACK, LAST ARG, LAST CMD, etc., uses up
    extra RAM, as the calculator has to keep track of the last stack,
    arguments, command, etc..  This is particularly important with LAST
    STACK if you have a large/complex stack, as the HP48 has to keep
    enough information around to recreate the stack after each
    operation.  You can clear out these variables by pressing ON-C (but
    also note that this will clear out the stack, the graphics PICT,
    etc.)

 2. From William Wickes, a member of the HP48 development team: Here's
    a candidate for "most obscure way to use up memory on the HP48 SX."
    When a program executes DOERR with a string argument, the string
    and hence the program too if the string is embedded in the program
    are referenced for the sake of the ERRM command.  Thus if you purge
    the program, the memory used by the program is not reclaimed until
    the ERRM reference is updated to a new string.  If the string is in
    a port, you will get the Object In Use error if you try to purge
    the library or backup object containing the string.  A system halt
    prior to a PURGE will not help unless the object is in port 1 or
    port 2 (it will reclaim memory held by a successfully purged but
    still referenced object).  For port 0 objects, the only way to
    break the reference is to execute DOERR again with a new string.

 3. Occasionally, I have had problems with libraries disappearing, but
    still taking up memory.  I found that an "ON-A-F" reset will cause
    these libraries to re-appear. If you still cannot account for a
    large chunk of memory, I would suggest a hardware reset, after
    backing up your memory.


 4.10.  What are the best methods for installing and removing
 libraries?

 To install a Library:

 1. Download it into a variable of the calc.

 2. Place the library on the stack.

 3. Type the number of the port in which you want to store the library
    in.  0 is appropriate if you do not have any expansion cards.

 4. Press STO to store the library in that port.

 5. Turn the calculator off and then on, or press ON-C, to finish
    installation of the library.

 Sometimes you have to purge the variable containing the library before
 storing it in a port, if you are low on memory.  See the next question
 for more information.

 If you have FXRECV installed: Just type a port number, hit FXRECV and
 the library will automatically go into the specified port.  All you
 have to do then in turn the calc off and then on to complete the
 installation.

 To delete a Library:

 Say you have library 1234 in port 0 that you want to delete.


 1. Go to the directory to which the library is attached.  In most
    cases this will be HOME.

 2. Enter :0: 1234

 3. Press [ENTER] or type DUP


 4. Type DETACH

 5. Type PURGE

 If this doesn't work, there may be a reference to the library still in
 temporary memory.  Try warmstarting with ON-C, then try again.

 Libraries with very low library numbers may require the addition of a
 constant in order to delete them.  For example, to delete a library 4
 in port 0 you can add 2048 to the library number, as follows:


 1. Type :0: 2052 DETACH

 2. Type :0: 4 PURGE

 Therefore, here is a fairly general program for detaching and purging
 most auto-attaching libraries; the only required argument being the
 real library number (e.g. 218 in the above case):


      \<< PATH SWAP HOME DUP 2048 + DETACH DTAG "&" \->TAG PURGE EVAL \>>


 4.11.  How can I attach large libraries?

 If have just successfully transferred a library to your HP, and try to
 store it in a port you may get an "Insufficient Memory" error.  This
 is because your HP is trying to make a duplicate copy to store in your
 port, but it doesn't have any memory to do so.  This is especially
 true on the HP48 S/SX/G since they only have 32K of memory built in.

 The solution is to push the library onto the stack, then purge the
 original variable containing the library.  At this point, the only
 copy of the library that exists is on the stack.  Now you can store
 the library in a port as usual.  This method avoids temporarily trying
 to have two identical copies in memory at the same time.

 For example, say you have a library in 'LIB' and you wish to store it
 in port 0.  You would enter the following:


 o  Go to the directory containing 'LIB'

 o  Recall the library to the stack: 'LIB' RCL

 o  Purge the original from user memory: 'LIB' PURGE

 o  Enter port number to store in: 0

 o  Press STO

 For the opposite problem - sending large libraries you can follow the
 reverse procedure.  That is, recall the object from the port to the
 stack, purge the original in the port, store it in a variable and then
 send it.

 Alternatively if the library is in a non-covered port (0/1/2 on SX or
 0/1 on GX) you can use the following simple program suggested by Dan
 Kirkland:


      \<< -> lib \<< 'lib' SEND \>> \>>


 This does not require a second copy of the library and avoids all the
 complications of trying to purge a library and then re-installing it.


 4.12.  What are those little numbers near the top of my screen?

 The little numbers are "user flags".  When you or a program sets any
 of the user flags 1 through 5, little numbers corresponding to the set
 flags are displayed at the top of the screen.

 The HP uses negative flags for setting various modes and functions,
 while positive flags were reserved for the use of the user.  To set a
 user flag type the number, then SF.  To clear a user flag type the
 number, then CF.

 Some programs will use the user flags without you being aware of it.
 So, if you have a "1" at the top of the screen you can type 1 CF to
 get rid of it.


 4.13.  Can I use my HP48 as a remote control?

 There are numerous programs available for using your HP48's IR port as
 a remote control.  However, the level of support depends on the
 particular unit you wish to control.  The HP48 is capable of
 reproducing many of the IR controls of many popular brands of
 appliances.

 However, some remotes run at speeds that the HP48 is unable to
 reproduce.  Due to their faster processor speed, the G/GX calculators
 are able to support more remote controls but are still limited in some
 cases.

 With typical remote programs you have to "teach" your HP48 by sending
 it the various IR sequences with the original remote control.  There
 are some advantages to using your HP48 however:


 o  You can impress your friends that you can use your calculator to
    control your TV!

 o  You can set alarms to turn your things on and off at predetermined
    times.

 o  You can use it as a universal remote.

 The best remote program by far is Remote by Bjorn Gahm.  It has a
 large database of existing remotes, meaning you may not have to
 "teach" your HP48 your specific remote if it is already supported.
 However it also have the ability to learn new codes.  See the best
 programs list (later in the FAQ) for the specific URL.


 4.14.  Can the HP48 be used as a DTMF phone dialer?

 To make phone dialing tones, you need to produce two simultaneous
 tones.  The tones used to dial phones are known as DTMF (dual tone
 multi frequency) tones, which consist of two tones at the same time.

 The speaker in the HP48 is not capable of supporting the DTMF tones
 because it can only make a single tone at a time.  The best the HP48
 can do is switch very quickly between one frequency and another.  Some
 attempts have been made in machine language to support DTMF, however
 they have been unsuccessful.  Therefore, you cannot use the HP48 as a
 phone dialer.


 4.15.  How can I run a program on warmstarts and/or power-up?

 You can use some of the utilities available on the Goodies Disks (see
 Appendix E.5 on where to obtain these):


 o  AUTOBOOT (GD #7) warmstarts every power-up

 o  AUTOEXEC (GD #10) Runs 'GO' every power-up

 o  AUTOPORT (GD #7) Runs &:AUTOEXEC every warmstart

 o  AUTOSTRT (GD #7) Runs AUTOEXEC every warmstart

 Some stack libraries come with support for AUTOEXEC or an equivalent
 built in (for example, the Java library supports AUTOEXEC).  If one of
 the libraries you have installed supports such a feature, you may not
 need any of the utilities above.


 4.16.  I could speed up my HP-28S.  How can I speed up my HP48?

 You can't, really.  Unlike the HP-28S, the clock speed in the HP48 SX
 is hardwired to 2 MHz, and to 4MHz in the HP48 GX.

 Digitalis  <http://www.Digitalis.de/> has a "speed-up" module
 available.  They sell 48G's with this module added (it looks like it
 adds about 50DM/$30 or so to the cost).  I'm not sure what it does,
 but I think it boosts the clock speed.  Apparently it can be turned on
 and off as needed, at the sacrifice of shorter battery life.

 However, in some cases, you can speed up the HP48 by turning off the
 display refresh, which supposedly takes up about 11% of the CPU time.
 Detlef Mueller submitted a program called SPEED to comp.sources.hp48
 that turns off the display refresh.  Of course, since it turns the
 display off, it is only suitable for long non-interactive runs like
 calculating large integrals, compiling, etc...  Look in the various
 HP48 archives for a copy.


 4.17.  What is the hidden directory and how do I access it?

 The "hidden directory" is a subdirectory of the HOME directory.  It is
 created on startup, and it contains variables with your alarms and
 user key configurations.    You can use the hidden directory to store
 whatever you want, however you CAN NOT ORDER the contents of this
 directory, as this causes memory loss.

 The name of the hidden directory is a null character, ''.  The only
 way to get a null character is to use a syseval.  You can use the
 following program to access the hidden directory:


          <<  HOME                            (changes to home dir)
              #15777h               (syseval to get null character)
              SYSEVAL                         (returns '' to stack)
              EVAL >>                       (changes to hidden dir)


 To exit the hidden directory, use HOME or UPDIR.  This will return you
 to the HOME directory.

 Also, by putting the null character as a part of your HOME custom
 directory, you can switch right into the directory by pressing the
 softkey.

 Note: The SysRPL command NULLID returns a null character to the stack;
 it is the same as doing #15777h SYSEVAL.


 4.18.  How can I recall one object from a memory archive?

 From: Joe Horn

 There is a little-known method of recalling objects from within
 archives.  Just make a list representing the PATH to the object, and
 tag the list with the port number.  Then hit RCL or EVAL.

 For example, if your archive in port 1 is called BKUP, and it contains
 a directory called GAMES which contains a program called REVERSI, you
 can run the game directly (without having a separate copy of REVERSI
 stored anywhere!) by:


      :1: { BKUP GAMES REVERSI } EVAL


 Or, you can RCL instead of EVAL, and it will be pushed onto the stack.


 o  This method only works in ports 0 and 1 in a GX.  It works on any
    port in the SX.

 o  This method works with directory objects stored as backup objects,
    as well as with the results of the ARCHIVE command, because they
    are both really the same thing.


 4.19.  Are there any key combinations that aren't in the manual?

 From: John Meyers

 Yes, on the G/GX there are a few keys that aren't mentionned.  They
 are:


 o  [right-shift] [down-arrow] = Review menu keys

 o  [right-shift] [right-arrow] = Kermit server mode

 [Right-shift] [View] is hidden in Appendix G (Operation Index) of the
 User's Guide [Edition 4] (which comes with the calc), among the
 several entries for the word VIEW.

 AUR [Edition 1] (in chapter 3, Command Reference, under SERVER) gives
 the alternate keys [right-shift] [cursor right] (but of course AUR
 doesn't come with the calc).  This alternative was left out of
 Appendix G of the User's Guide.  Donnelly's HP48 Handbook [2nd Ed.]
 even lists it first!


 4.20.  How do I find out about commands not in the GX manual?

 From: John Meyers

 Besides purchasing the Advanced User's Reference Manual (AUR), you can
 look in Appendix G of the G/GX User's Guide, which briefly summarizes
 every command available in the G/GX, including all the commands not
 mentioned anywhere else in the User's Guide.  Often even the brief
 description given in this Appendix is sufficient for you to use the
 command (and to know it exists!).

 Some notes on omissions, however:

 o  VERSION and "_" (attach unit) are missing in Edition 4.

 o  SUB works with arrays in the G/GX, but this is not in the HP
    manuals, nor in Donnelly's HP48 Handbook 2nd Ed 6/93.  You can
    specify any two "corners" of a rectangular sub-matrix (like with
    GET), and it extracts the sub-matrix.  Also works with vectors.


 4.21.  How can one delete (or purge) an entire directory?


 o  To purge a subdirectory and all that it contains, type in the name
    in single quotes, then PGDIR.

 o  To purge all variables in the current directory, but not the
    directory itself, type CLVAR.

 Note that with CLVAR, if the current directory contains a non-empty
 subdirectory, an error occurs at that point, and no subsequent
 variables are purged.


 4.22.  How does binary wordsize affect my calculations?

 From: John Meyers

 Some of the following (but not all) is in the User's Guide, under
 "Binary Arithmetic and Number Bases" (Chapter 15 of G/GX).

 The system flags contain a segment which specifies a "binary word
 size".  This word size limits how many low-order bits of a binary
 value are displayed on the stack, and equally determines how many low-
 order bits of the arguments and results of binary
 arithmetic/logical/shift operations are used.

 Curiously, the binary word size has no effect on entering values into
 the command line - what you originally enter is displayed in truncated
 form on the stack, but when you view it again in the command line
 (which temporarily reverts back to STD numeric display and 64-bit
 wordsize) you will find the complete value as entered is still intact.

 As soon as you begin using functions on that value, however, the
 arguments to binary functions get truncated to the current wordsize
 before the functions are executed, and then the final result of the
 function gets truncated again.

 You can recall the current wordsize using RCWS and set the wordsize
 using STWS.  STWS accepts a real number argument in the range 1-64
 (out of range values get adjusted to either 1 or 64), and it also
 accepts a binary argument, in which case the absolute value of the
 low-order 20 bits is used (just in case you wondered why #1048576d
 STWS RCWS gives an answer of 1).

 Don't try adjusting the binary wordsize in the hope of saving memory
 by using shorter values; every "user binary integer" (type 10)
 produced by User RPL occupies 13 bytes, no matter what the current
 wordsize; the HP48 just sets the leading bits to zero when displaying
 on the stack or performing calculations.


 4.23.  Can I add my own equations to HP's Equation Library?

 No, the Equation Library is in ROM, and can't be written to.  There
 are several programs which allow you to create your own equation
 library such as EQBrowser, EQ Lib, Equation Manager, and xMGR.LIB.
 All of these programs can be found at
 <http://www.hpcalc.org/utils/misc/>.


 5.  Questions about Math, Plotting, and Equations

 5.1.  Why does (1/3)*3 equal 0.999999999999?

 This is due to the way numbers are typically represented by computers
 and calculators.  There are infinitely many numbers, like `1/3' and
 `pi', that cannot be exactly represented internally (their decimal
 representations go on forever, and often cannot even be represented as
 a fraction, as in the example of `pi').  As a result, any calculations
 that use these numbers are bound to be off.


 5.2.  Why does my HP say that 0 to the power of 0 equals 1?

 Some claim that 0^0 is defined as 1, some claim it is indeterminate.
 The HP mathematicians decided to use the definition.  Here is some
 more concrete info shamelessly lifted from the Sci.Math-FAQ:


    Question:
       What is 0^0 ?

    Answer:
       According to some Calculus textbooks, 0^0 is an "indeterminate
       form". When evaluating a limit of the form 0^0, then you need to
       know that limits of that form are called "indeterminate forms",
       and that you need to use a special technique such as L'Hopital's
       rule to evaluate them. Otherwise, 0^0=1 seems to be the most
       useful choice for 0^0. This convention allows us to extend
       definitions in different areas of mathematics that otherwise
       would require treating 0 as a special case. Notice that 0^0 is a
       discontinuity of the function x^y.

       Rotando & Korn show that if f and g are real functions that
       vanish at the origin and are analytic at 0 (infinitely
       differentiable is not sufficient), then f(x)^g(x) approaches 1
       as x approaches 0 from the right.

       From Concrete Mathematics p.162 (R. Graham, D. Knuth, O.
       Patashnik):

       "Some textbooks leave the quantity 0^0 undefined, because the
       functions x^0 and 0^x have different limiting values when x
       decreases to 0.  But this is a mistake.  We must define:

       x^0 = 1 for all x,

       If the binomial theorem is to be valid when x=0, y=0, and/or
       x=-y.  The theorem is too important to be arbitrarily
       restricted! By contrast, the function 0^x is quite unimportant."
       Published by Addison-Wesley, 2nd printing Dec, 1988.

    References:
       H. E. Vaughan, The expression '0^0', Mathematics Teacher 63
       (1970), pp.111-112.

       Louis M. Rotando & Henry Korn, "The Indeterminate Form 0^0",
       Mathematics Magazine, Vol. 50, No. 1 (January 1977), pp. 41-42.

       L.J. Paige, A note on indeterminate forms, American Mathematical
       Monthly, 61 (1954), 189-190; reprinted in the Mathematical
       Association of America's 1969 volume, Selected Papers on
       Calculus, pp. 210-211.


 5.3.  What is RPN?

 Jan Lukasiewicz wrote a book on formal logic in 1951 that showed that
 mathematical expressions could be specified without parentheses by
 placing the operators before (Polish Notation) or after (Reverse
 Polish Notation) the operands.  For example, the expression:


      (4 + 5) * 6


 Could be expressed in RPN as:


      4 5 + 6 *
      6 4 5 + *


 Polish Notation is also known as prefix notation and Reverse Polish
 Notation (RPN) is also known as postfix notation.


 5.4.  Why did HP use RPN in their calculators?

 From: Dave Hicks <[email protected]>

 In the years that followed Lukasiewicz's book, computer scientists
 realized that RPN or postfix notation was very efficient for computer
 math.  As a postfix expression is scanned from left to right, operands
 are simply placed into a last-in, first-out (LIFO) stack and operators
 may be immediately applied to the operands at the bottom of the stack.
 By contrast, expressions with parentheses and precedence (infix
 notation) require that operators be delayed until some later point.
 Thus, the compilers on on almost all modern computers converted
 statements to RPN for execution. (In fact, some computer manufacturers
 designed their computers around postfix notation.)

 At the time that the HP-35 was introduced, other pocket calculators
 typically used a partial algebraic model.  That meant they could
 evaluate trivial expressions like 4+5 but couldn't handle anything
 that involved parentheses or algebraic precedence.  The technology of
 the time didn't allow for full algebraic compilers in pocket
 calculators.


 RPN allowed HP to produce a pocket calculator that could evaluate
 arbitrary expressions using the available technology.  For many,
 learning a new style of entry was a small price to pay to be able to
 evaluate arbitrary expressions on a calculator.  Once the technology
 to produce algebraic compilers could fit into a pocket calculator,
 most RPN users had decided that RPN was more efficient and consistent
 for the user as well as for the calculator.  Also, because
 subexpressions are evaluated as they are entered, entry errors are
 more obvious with RPN.

 Another advantage to RPN is consistency between machines.  Early
 algebraic models had differing limits of the complexity of the
 expressions they could evaluate.  For example, TI catalogs from the
 late 70's listed how many levels of parentheses and pending operations
 each model could handle.  Even today if you begin to use an algebraic
 calculator, you need to determine just "how algebraic" it really is.
 For example, some switch to RPN for unary operators (ie 5 SIN rather
 than SIN(5)) and some can't directly enter an expression like:


       4+5
      -----
       6+7


 5.5.  Is there an alternative to calculating in RPN?

 Many people just can't get used to the interaction with the stack to
 do calculations.  A simple alternative is to place your equation in
 tic marks like '8+10*3' and to use the EVAL as an equals key.  This
 way you can enter numbers just as you would write them on paper.


 5.6.  Why do I get unexpected values when I add temperatures?

 Example: I add two temperatures like 34 deg.F and 11 deg.F, and I get
 504.67 deg.F.  Why don't I get 45 deg.F?

 This occurs with the S/SX only.  This behaviour changed in the G/GX.
 With the G/GX, adding 34 deg.F and 11 deg.F will give 45 deg.F using
 TINC and TDELTA.  However, the G/GX will only add or subtract
 temperatures if the units are the same; it is now an error if they are
 not.

 If the units attached to the number consists only of a temperature and
 nothing else, operations are done using an absolute temperature scale
 (relative to absolute zero).  If the units consists of a temperature
 and something else, such as degrees/minute, the operation will not be
 done using an absolute temperature scale.

 It also does not make any physical sense to add two temperatures.  You
 can't add a cup of water at 20 degrees C to a cup of water at 30
 degrees C and end up with two cups of water at 50 degrees C.


 5.7.  How can I add my own units?  What's the 1_? unit for?

 Note: Some later editions of the G/GX series manuals have some similar
 information on this subject.

 Another feature is the generic unit, 1_?.  It seems to be intended as
 a generic unit, to allow you to make new units not based upon any of
 the built-in ones.  You could use it to create a conversion utility
 for currencies or bits and bytes.  Before you create either, check the
 FTP sites to see what others have done in this regard.


 o  User units may be defined by creating a variable of any name (the
    new unit name), into which you store its definition in terms of
    other units, e.g. 2_mph 'stroll' STO; you can also use other user
    units in a definition, e.g. 3_stroll 'run' STO.

 o  You can then use the new unit name(s) in any custom or temporary
    menu, just the same as any other unit in the built-in Units
    Catalog.  For example, { 1_stroll 1_run ... } TMENU


      Here's an example. Convert this using ASC\-> and save it as 'sample'.

      "69A20FF78E000000005046F6E6574750ADA209C2A2C2A2070000F368B01B2130
      E20005046F6A756E650ADA20339201000000000000210C2A20F000046F6E6574
      768B01B2130640005086F6D6562750ADA20339200000000000000510C2A20F00
      0046F6E65747C2A20B0000D696E686B0168B01B2130B5000303435453047A204
      7A20C2A20F000046F6E65747ADA209C2A2C2A20F000046F6E6574768B01B2130
      B213047A20C2A20F000046F6A756E6ADA209C2A2C2A20F000046F6A756E668B0
      1B2130B213047A20C2A20F000086F6D65627ADA209C2A2C2A20F000086F6D656
      2768B01B2130B2130B2130F0DA"


 This is a sample directory with a custom menu.  Enter the directory
 and press the CST key.  Here you will see three units (truncated to
 fit the softkeys): donut, dozen, and homer. A dozen is defined as
 12_donut, and a homer is a rate of 1.5_donut/min (not part of the SI
 system).  These units may take SI prefixes described on page 10-5 of
 the User's Guide, so you may convert the value of 3_MW*h/kdonut into
 units of erg/mdozen using CONVERT, for example.  The items in the CST
 menu have the usual abilities of unit menu objects as described on
 pages 10-2 and 10-3 of the User's Guide.  These units can be used for
 math operations described on page 10-7 of the User's Guide, such as
 adding 2_donut to 1_dozen.

 Example: At your power plant, you have four control room operators who
 have a combined consumption rate of 2.28 homers.  How many donuts will
 they use in 5 minutes and 17 seconds?


 o  Enter the rate.

      2.28 [homer]


 o  Enter the time.


      Right-shift UNITS [TIME]
      5 [min]
      17 [s] +


 o  Multiply the time by the rate (*)

 o  Convert to dozens:

 CST Left-shift [dozen]


 o  The answer is a little over 1.5 dozen.


 5.8.  I want `pi' to be a numeric value, not a symbol.

 You are using "Numeric Constants Mode".  To turn this mode on or off:


    SX:
       Type -2 SF.  This turns the numeric constants mode on.  To turn
       it off, type -2 CF.

    GX:
       Go to the MODES menu (press green/right-shift MODES).  Hit the
       key for FLAG submenu.  Toggle the second flag "Constant -> symb"
       to turn on and off.


 5.9.  What tricks are there for manipulating matrices?


    SX:
       You can build up a matrix by rows using \GS+.  You can take a
       matrix apart by rows using \GS- These two commands (\GS is Sigma
       (Greek E)) add and subtract rows from the SigmaDAT Statistics
       matrix.  \GS+ takes a vector row and adds it to SigmaDAT, and
       \GS- takes the bottom row away from SigmaDAT.  \GS+ is
       accessible from the STAT menu with its own softkey.  \GS- can be
       obtained by pressing left-shift /GS+, or by typing it in at the
       command line.

    GX:
       The GX has many matrix functions built in.  See Appendix B-1.


 5.10.  Can I make my HP graph any faster?

 Try lowering the plotting resolution by typing #2 RES.  You can use
 larger values for faster speed at the expense of number of points
 plotted.  In the GX Plotting Options Menu this setting is known as the
 "STEP" rate.

 Alternatively, if you have a G series machine, you could try
 SpeedGraph, a fast assembly language plotter replacement.  See
 <http://www.hpcalc.org/> for a copy.


 5.11.  How do I plot inequalities?

 In the user's manual, inequalities are referred to as "truth plots".
 They are defined as expressions that return true (any nonzero real
 number) or false (0) results.  In a truth plot, a pixel is turned on
 if the expression is true, it's unchanged if the expression is false.

 For example to plot the simple inequality 'X>0' you could do:


      TRUTH
      -20 20 XRNG
      -10 10 XRNG
      ERASE DRAX DRAW

 For more complicated examples see your manual, or on a G/GX you can
 type TEACH to look at some of the built-in examples.  It may also be
 useful to plot the lines defining the outline true region.  This is
 easily done by changing the plotting style to FUNCTION or CONIC and
 plotting again, taking care not to erase any previous plot.

 Note that unless otherwise specified, every pixel in the display must
 be evaluated.  As such, truth plots can be very slow.  If you have a
 general idea on which values are going to return true, you can speed
 up plotting by specifying a smaller x and y plotting range.  You can
 do this by setting the "LO" and "HI" input forms on a G/GX, which can
 be different than the actual display range.

 If you are plotting the area between two equations, you speed up
 plotting dramatically by avoiding a TRUTH plot entirely.  Store the
 two equations as the first two items in the current EQ list.  Using
 NXEQ in the FCN menu will rotate the list as desired to plot both
 functions.  Then the area between them can filled in very quickly
 using the SHADE key of the FCN menu (in the PICTURE environment).

 Another hint for speeding up Truth plots is to set the resolution, say
 to 2 pixels or more, which also results in a different "shading
 pattern".  The resolution can be set with the RES command.


 5.12.  How do I take the logarithm of a base other than 10 or e?

 To take the log of a number other than base 10 or e, say log x base y,
 you use the formula:


        ln x
      --------    where ln is natural log (log works too)
        ln y


 A quick program to do it would be: << SWAP LN SWAP LN / >>

 With the input of:


      2: x
      1: y


 5.13.  How do I solve quadratic equations?

 The QUAD command is designed to solve expressions at degree up to two.
 One would expect the result of the simple expression 5=x/(1+x) to be
 x=-5/4.  But using the QUAD command, the HP gives the complex solution
 (0.5, 2.17944947177)  i.e. the principal value (with flag 1 set).
 What is the reason for this?

 The QUAD command is designed to solve quadratic equations.  If the
 equation is not of the form:


      a*x^2 + b*x + c = d*x^2 + d*x + e

 The HP48 calculates a quadratic taylor series expansion which is then
 solved like a normal quadratic equation.  The HP does the same when
 the equation is of a higher order.  In the example above, the equation
 x/(1+x)-5=0 has the expansion:


      -x^2  + x - 5 = 0,


 Which has two complex conjugate solutions.  However, if you multiply
 the equation by (1+x)/, you get:


      x = 5 * (1+x)


 Which can be solved directly with QUAD.  If the equation contains the
 variable only once, it's the best way to use the ISOL command instead.


 5.14.  Why do I get a complex answers for roots of negative numbers?

 This typically occurs for the (2n+1) roots of negative numbers, where
 n is a positive integer.  For example, to calculate the fifth root of
 -3125 you can enter:


      -3125^0.2


 The result is the complex number (4.04508497187, 2.93892626146) or in
 DEG mode (4.99999999999, >36).  The reason for this answer is that
 -3125^(1/5) has five different answers - arranged in a pentagon in the
 complex plane.  In general, y^(1/x) has x different answers (y^x with
 x irrational has an infinite set of answers forming a circle on the
 complex plane).

 Since 180/5 = 36 [degrees], this is the correct principal "5th root"
 of the negative argument in the complex plane; the HP48, unlike older
 calculators, does not turn "complex mode" on or off, so all "analytic"
 functions in the HP48 always accept complex arguments, and always
 return valid complex answers if suitable.

 To calculate the desired solution, you have to use the right-shifted
 V-key with input like this:


      2:        -3125
      1:            5


 Or you can use 'XROOT(5,-3125)' since XROOT is defined to both accept
 and return real values only.

 5.15.  Why doesn't '(-8)^(2/3)' give me the right answer (4)?

 From: John Meyers

 The reason is that the function ^ accepts and returns complex values
 whenever appropriate, and also always returns the "principal" answer
 in the complex plane, which may not be real if the argument is
 negative, even if there exist other real-valued possible results.

 Here are some UserRPL programs which handle this sort of general "real
 power of real" question, even with fractional powers, including the
 sticky issue of getting the right sign.

 Note that the "power" argument (level 1) may be either a fraction or a
 real number; we use \->Q in all cases to convert it to a fraction,
 which may be necessary to determine the correct sign of the answer.


      \<< \->NUM DUP SIGN SWAP ABS \->Q
        IF DUP TYPE THEN OBJ\-> DROP2 ELSE 1 END
        4 ROLLD * ^ SWAP XROOT \>>


 The version above is generally satisfactory for fractional powers
 which do not have a large numerator; otherwise an intermediate result
 might overflow, giving an invalid result.

 The next version is overflow-resistant, but there is sometimes a
 slight roundoff error from using ^ ABS:


      \<< \->NUM DUP2 ^ ABS SWAP ABS \->Q
        IF DUP TYPE THEN OBJ\-> DROP2 ELSE 1 END
        4 ROLL SIGN ROT ^ SWAP XROOT * \>>


 Neither of the above programs ensures that its arguments are actually
 real; other arguments (e.g. complex) can sneak by, possibly producing
 meaningless answers.  You can prevent this in either program by
 following \->NUM with OVER R\->B OVER R\->B DROP2

 For example, with -8 and '2/3' as arguments, (or even -8 and
 .666666666667 as arguments), the answer is 4.  To make the above into
 a user-defined function which can be used in algebraic expressions:


      \<< \-> p r \<< r p \->NUM \->Q IF ... END \>> \>> 'XPOWR' STO


 Then 'XPOWR(2/3,-8)' EVAL ==> 4  [using XPOWR() just like XROOT()]

 Note: There are actually two different XROOT functions in the HP48;
 the algebraic version of XROOT expects its arguments in the opposite
 order from the stack-based version of XROOT (which inadvertently gave
 rise to a list-processing bug in early G-series ROM versions: K, L, M
 and P).

 If you define XPOWR for yourself, as above, you will have to make sure
 that you use a consistent argument order for both algebraic and stack
 usage, unless you either make two separate functions or get into some
 fancy library-making, to duplicate something akin to the built-in
 "dual" XROOT functions.


 5.16.  How do I solve polynomials?

 Another fast way to solve quadratic equations (or polynominals of
 higher degree) is by using the PROOT command.  Place a vector with the
 coefficients of the polynominal on the stack.

 For example:


      x^3 - 9*x^2 + 26*x - 24


 Would look like:


      [1 -9 26 -24]


 Then press left shift, SOLVE (key 7), POLY (key C), PROOT (key A).
 The result is [2 3 4], which are the roots of the equation.


 5.17.  How can I do statistics for grouped data?

 Excerpt of postings from John Meyers

 You must replicate the individual values or you can use a weighted
 analysis.  For weighted analysis, Joe Horn's WEIGHT2 directory which
 can be found on Goodies Disk 8.

 For weighted mean of numeric grades (or grade equivalents), with the
 number of credits for each course being the weight, you can use the
 program below.

 First, fill in the statistics matrix, using any of the built-in
 statistics applications, entering each numeric grade equivalent in
 column 1, and the corresponding number of credits in column 2.  Then
 press the key for the program below, which returns three results:


 o  Weighted mean of column 1, using weights from column 2

 o  Standard deviation (estimated from samples entered)

 o  Standard deviation (of population actually entered)

 If you select an "X-Column" and/or a "Y-Column" different from the
 defaults (columns 1 and 2), then the results reflect the values in the
 "X-Column" using weights from the "Y-Column".

 The program below is a slight improvement upon WEIGHT3, in that it no
 longer requires SigmaPAR to exist (the standard default columns are
 assumed if not).  Credits go to Bob Wheeler for coming up with the
 algorithm, and to John Meyers for implementing the following program:

      %%HP: T(3); @ \-> is right-arrow, \v/ is Square Root, \GS is Sigma
      @ WMS - Weighted Mean and Standard Deviation, HP48G/GX
      @ Stack diagram: ( SigmaDAT and SigmaPAR ) -->  Mean, SDev(S), SDev(P)
      @ If SigmaPAR does not exist, then
      @ Col 1 (XCOL) is value and Col 2 (YCOL) is weight, by default
      \<< '\GSPAR' DUP VTYPE 0 < { DROP 1 2 } { RCL 1 2 SUB EVAL } IFTE
            0 0 DUP2 \-> x f w d m v
        \<< RCL\GS x COL- SWAP DROP ARRY\-> EVAL \->LIST
            RCL\GS f COL- SWAP DROP ARRY\-> EVAL \->LIST
            2 \<< DUP2 'w' STO+ m - * DUP 'd' STO
            w / 'm' STO+ m - d * 'v' STO+ \>> DOLIST
            m v w DUP2 1 - / \v/ ROT ROT / \v/
        \>> \>>^


 If all you want is the weighted mean, and not the standard deviations,
 then you can dispense with all of the above, and just use a shortcut
 posted in GD7/MATH/WEIGHT.DOC by Joe Horn (basically, it is
 Sum(X*Y)/Sum(Y), where Y is the weight for X).

 If you would rather replicate data points, then read on - however, if
 the "weights" associated with your data points are either very large
 or non-integers, then the following will be either very cumbersome or
 not possible, respectively.  Press left-shift STAT DATA (on G/GX) to
 get to the menu containing the "Sigma+" "Sigma-" and "ClearSigma"
 commands.

 Press "ClearSigma" to remove the old SigmaDAT.  The first data must be
 entered as a vector: For example [2 4] and pressing "Sigma+".  Now all
 other data pairs are entered without the brackets just as a pair
 separated by a space: e.g. 4 3 and pressing "Sigma+" and so on.

 "Sigma-" in the HP48 does not accept data; rather, it simply removes
 the last-entered data point/row, popping it back onto the stack for
 you (the result is always one vector or scalar).  If every point is
 removed, the statistics matrix is also deleted.

 Now we can understand Joe Horn's program which accepts a data
 point/row, in whatever form the HP48 is prepared to accept it (single
 number, vector, or group of numbers), plus a frequency (integer only)
 on stack level 1, and then appends the data point/row the given number
 of times.  Note that you must always supply a frequency, even if it is
 1, and that any meaningless "frequency" less than 1 will be treated as
 1.


      \<< -55 CF 1 SWAP START \GS+ LASTARG NEXT DROP \>>


 Obviously, \GS+ and \GS- represent the "Sigma+" and "Sigma-" commands.

 Example: If the Statistics Matrix (SigmaDAT) already has two columns,
 and if we want to enter the new data pair [ 3 4 ] five times, we can
 simply type 3 4 5 and then press the key for the above program (don't
 forget to use a data vector for the very first data row).

 For large frequencies, as noted, you will find this to be slow, not to
 mention the memory required for the multiple matrix rows; however,
 once you have literally entered every single data row, you can then do
 all the regression analysis and plotting you want, without the need
 for additional programming.
 5.18.  How do I generate a function table?

 An easy and versatile way is to use the powerful list processing
 capabilities of the HP48.  Generate a list with the x values, then
 perform the operations on that list.  For example:

 { .1 2 2.5 5 123.4 } SQ will output { .01 4 6.25 25 15227.56 }

 There are also several programs/libs to create a function table.  Take
 a look at  <http://www.hpcalc.org/> and search for "MathTools" by Jack
 Levy or "Table" by Diego Berge.

 If you are low on memory or want a customizeable program you can use a
 tiny User-RPL program. Here are two suggestions with different forms
 of the output.  All programs use the SEQ command, which is the key
 command here! (for further information read the manual).  Input is for
 example:


      5:    'SQ(x)'
      4:         x
      3:        11    (start)
      2:        25    (end)
      1:         1    (step)


 The first mini program will output a matrix with the calculated values


      %%HP: T(3)A(R)F(.);
      \<< SEQ OBJ\-> COL\-> 1
      COL\->
      \>>


 The second one will give x and f(x) in an array


      %%HP: T(3)A(R)F(.);
      \<< 4 DUPN 4 PICK 4
      ROLLD SEQ OBJ\-> COL\->
      6 ROLLD SEQ OBJ\->
      COL\-> 2 COL\->
      \>>



-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.0i for non-commercial use
Charset: noconv

iQA/AwUBOPgDMOhzXOws+qC7EQLT0ACffjxiVgOX5r4RHhyet0+fNbC9IawAoIF2
ydoqncGJLbQpTFCPFpSZvqFK
=4Ghc
-----END PGP SIGNATURE-----