Subject: 28/48 FAQ
From: Jeremy Smith <[email-masked]>

28/48 FAQs (Frequently Asked Questions)
                    about the HP 28C, HP 28S, and HP 48SX.
                               (October 2, 1992)

FAQs
====
This file (replaces FAQ2848.old on seq.uncwil.edu) is compiled by
  [email-masked], to which any additions and corrections should
  be sent.

FAQ3 - HP-48SX Q&A & Useful tidbits (60950 bytes.  Includes \->ASC and
  vectored enter articles).  See hp48/FAQ3 on seq.uncwil.edu (or to:
  [email-masked] send message: send FAQ3).

95FAQ - A draft 95 FAQ has been posted to comp.sys.palmtops

HP 28 stuff
===========
To find out the version of your HP 28C execute HEX then #A SYSEVAL.  It will
  be 1BB or 1CC.

The version of your HP 28S is 2BB

HP 28 and 48 stuff

Flickering display - caused by fluorescent lights.

Split a matrix in rows by using \Gs-

Build a matrix from rows by using \Gs+

Your calculator is very accurate, but not infinite.  Don't expect 'SQ(\v/2)'
  to be exactly 2.

Mind the values of your symbolic, constant, function evaluation flags.

The 28 speed nybble has a value 0-f (default 7) which can be changed by
  software; the 48 is 'hard-wired' to top speed - 2MHz and cannot be
  changed.

Transmitting data from the HP28 to the HP48 is done with INPRT which comes on
  the floppies included with the HP48 cable.  INPRT is available from
  seq.uncwil.edu binaries/inprt.tar.Z

What is the difference between the 28 & 48?  ftp seq.uncwil.edu
desc/from28to48.Z

HP 48 stuff
===========
Infinite Results and Related Flags.

  Flag -20 set causes a positive or negative underflow to be treated as an
  error.  If flag -20 is clear, an underflow causes an Error.  No matter
  whether or not flag -20 is set, flag -23 gets set if a negative number
  underflows, or flag -24 gets set if a positive number underflows.  (For
  example:  -1E-499 10 / will cause a negative underflow.)  It appears that
  flags -23 and -24 stay set until they are cleared by the user.  They can
  be tested with FS? or FC? or FS?C or FC?C whenever desired.

  For Overflows flag -21 does the same as flag -20 and flag -25 does the
  same as flags -23 and -24.  No sign distinction for overflows.

  For Infinite Results, flag -22 does the same as flag -20 and flag -26 does
  the same as flags -23 and -24.

HP48 Owner's Manual, new single volume, Edition 1, 11/91, part number
  00048-90091.

Adding temperatures
  The notation: 1 ^oF (1 degree Fahrenheit) means 1 degree on the absolute
  scale, while 1 F^o  (1 Fahrenheit degree) means an increment of 1 degree. 
  With that in mind define two new units:

      Celsius degrees: 1_K, 'C^o' (where ^o is the degree symbol alpha-
                                                    right shift-6), STO
      Fahrenheit degrees: 1_^oR, 'F^o', STO

  Ex:  To add an increment of 10 Celsius degrees to 100 degrees Fahrenheit: 
  10_C^o 100_^oF + (returns 118^oF) - note that the most recent (top) unit
  on the stack is the one that the answer ends up in, so that 100_^oF 10_C^o
  + returns 65.5555555556_C^o which must then been converted to Fahrenheit
  (1_^oF CONVERT) so that it is in absolute temperature units.

Deleting a library.  To delete library 1234:    HOME (or change to the
  directory where the library was attached), 1234 DETACH, :0: 1234 PURGE,
  powercycle.

To find out the version type ON-D, Backspace, EVAL.  Type ON-C to get back to
  the real world.  Also << #30794h SYSEVAL >>

Type ON-x as follows: press ON, press x, release ON, release x.

Stopping TAYLR gone mad; ON-C halts any operation & doesn't erase variables.

Press \pi \->NUM to get pi.  Same for e, i, MINR, MAXR.

Flag 19 determines whether 2D makes a vector or a complex number

MEM invokes garbage collection (memory cleanup).  Garbage collection occurs
  automatically at intervals causing the 48 to pause for a moment.  Use less
  stack to make it faster.

ON-C gets all memory back, except variables.  PICT, last stack, last arg, the
  stack, etc all use up memory.

\Ga and other characters preceded by \ - see manual (II) p627.

Vectored ENTER refers to \GaENTER and \GbENTER.  See desc/vect.enter.Z on
  seq.uncwil.edu (or to: [email-masked] send message: send
  hardware/vector.ENTER.Z).

Tetris - get games/ml.tetris on seq.uncwil.edu (or to:
  [email-masked] send message: send games/ml.tetris).

\->ASC is a 48 program that converts a binary object to an ascii string (like
  uuencode) and ASC\-> reverses the process.  Use \->ASC to post binary
  objects.  \->ASC available as comp.sources.hp48/volume01/asc.Z on
  seq.uncwil.edu (or to: [email-masked] send message: send
  comp.sources.hp48/volume01/asc.Z).

Bugs in the 48.  See desc/bugs.Z on seq.uncwil.edu (or to:
  [email-masked] send message: send desc/bugs.Z).

HP 48 System RPL, System Tools, Machine Language & related notes
================================================================
Saturn is the code name for HP's 4-bit proprietary microprocessor with a 1M-
  nybble address space (RAM+ROM), first used in the HP-71.  It has been
  upgraded with some additional (ML) instructions for use in the HP 48. 
  (System) RPL (Reverse Polish Lisp) is the language developed to implement
  the 48 functionality on the Saturn, and was designed to be portable to
  other CPUs.

The programming language defined in the Owner's Manual is called "User RPL",
  which is a subset of a much larger and more powerful language called
  "System RPL".  Some differences between User RPL and System RPL which
  spring to <[email-masked]>'s mind are listed below:

            User RPL                          System RPL

1.  To use a command, you just       The commands have no names and can
    type its name.  The HP 48        only be used with SYSEVAL or by
    recognizes the name because      directly embedding the "External"
    it's in the built-in list of     code in a program using various
    command names.                   System RPL programming tools.

2.  The commands are safe to use     The commands are dangerous to use
    because they have built-in       because they assume the stack has
    argument type checking.          the correct arguments on it, and may
                                     wipeout if not.

3.  Slower (because of #2)           Faster (because of #2)

4.  You can view, print, and edit    The only way to view, print, or edit
    programs directly on the HP 48   programs is with System RPL
    without any extra software       developer's software in the HP 48 or
    needed.                          on a computer.

5.  You can only handle a few of     You can handle all 29 object types
    the HP 48's object types.        directly.

6.  You can only do "supported"      You have total control of the HP 48
    things in the Manual.            and can do "impossible" things.

7.  Impresses the natives.           Impresses hackers.

Joe Horn's Library ID list: see hp48/Library.IDS on seq.uncwil.edu

48tools - RPL Development System.  See hp_tools/tools.exe on seq.uncwil.edu
  (or to: [email-masked] send message: send
  hp_tools/tools.exe).  Or get EduCALC Goodies Disk #4, complete docs
  included.

Machine Language (ML).  Every thing you need to learn to program the 48 in
  both RPL and Assembler (ML) is on EduCalc's goodies disk #4. ML runs even
  faster than System RPL, but it takes much longer to write large
  applications in ML than in System RPL. You can learn and develop ML
  software with HP's System RPL development system (TOOLS.EXE) because it
  includes a complete assembler with complete docs and uses HP's mnemonics. 
  Jan Brittenson has written an assembler called STAR which the oldtimers
  like because it has "personality" (viz. bugs, sparse documentation, and
  uses AG mnemonics); many of the goodies posted by the net gods are
  developed with STAR.

  Mnemonics for machine language come in two flavors: AG (Alonzo Gariepy)
  and HP (Hewlett-Packard).

Alonzo's 48 internals: see hardware/innards.Z on seq.uncwil.edu (or to:
  [email-masked] send message: send hardware/innards.Z).

ASAP - A Saturn Assembler Program, written in perl (unix)

Chip48 is a machine language program which interprets Chip8, a game language
  used on small systems in the 1970s.  CHIP48 is "a small interpreted
  language designed specifically for writing simple video games".  Written
  by Andreas Gustafsson, CHIP48 was the platform for many delightful games
  for the HP 48, such as SYZYGY by Roy Trevino.  Chip8 games appear as an
  undecipherable string on the stack, but can be run using the Chip48
  interpreter.  It was upgraded by Erik Bryntse to support higher resolution
  and screen scrolling; he called this version SCHIP (for "Super CHIP"). 
  SCHIP games include the famous IN SEARCH OF COKE (aka "ANT") by Paul
  Raines, and H.PIPER! by Erin Catto.  Hans Christian Egeberg wrote a
  CHIP48/SCHIP assembler called CHIPPER that can be run on a PC.  All six of
  the programs mentioned in this paragraph are available on EduCALC Goodies
  Disks.  See also chip8/*.* on seq.uncwil.edu (or to:
  [email-masked] send message: send chip8/super-chip_v1.0.Z).

STAR - A macro assembler for saturn code, written in C, uses AG mnemonics:
  see hardware/star-1.04.4.tar.Z on seq.uncwil.edu (or to:
  [email-masked] send message: send
  hardware/star-1.04.4.tar.Z).

SAD - Saturn Disassembler is available as pub/sad-1.03.tar.Z from
  ftp.ai.mit.edu (128.52.38.46).  These notes from the author
  ([email-masked]): "SAD ports with relative ease to any machine/compiler
  with sizeof (int) >= 4.  It is a disassembler run from a SAD-specific GNU
  Emacs mode (read README and load sad.el), which disassembles using AG
  mnemonics.  It is capable of optionally producing output that can be fed
  as input to STAR, although they are not entirely compatible (minor
  changes, I may perhaps update SAD upon request).  The Emacs mode allows
  you to disassemble ROM segments in different buffers/windows, as well as
  interactively adding info the comments/symbol/format databases (just edit
  the buffer and press C-c C-c)."

SASS - Saturn Assembler, written in C.  SASS compiled for the PC is available
  from seq.uncwil.edu: hardware/sassPC.tar.Z and gmuvax2.gnu.edu:
  hp48/sass231.zip (source: hp48/sass23.tar).

Voyager (by Derek Nickel), disassembler running under DOS.  Uses HP
  mnemonics.  See hardware/voyager7.exe on seq.uncwil.edu (or to:
  [email-masked] send message: send hardware/voyager7.exe).

MLDL - Machine Language Development Lab (by Jan Brittenson) available as
  software and also on a card.  (Named after similar development tools for
  HP-41 ML development.)  Uses AG mnemonics.

HP 48 hardware    (see hardware/*.* on seq.uncwil.edu)
==============
6-foot serial 9-pin cable $15.95 from EduCALC (Stock #2609, page 49 in
  catalog #55).

HP 48 accessories: see hp48/desc/educalc.51.Z on seq.uncwil.edu (or to:
  [email-masked] send message: send desc/educalc.51.Z).

The HP 41 Emulator Card allows you to write HP 41 programs and run them on
  the 48.  It's also called the Lobotomy Card.

Difference between the HP 48SX and the HP 48S is that the latter lacks the
  card bay, and the circuitry to enable cards. They have the same IR and
  serial capabilities.

Non-HP RAM cards.  Read HP's point of view (appendix B in hp48/FAQ3 on
  seq.uncwil.edu) and compare a hacker's point of view (hardware/ram.cards.Z
  on seq.uncwil.edu).

The RESET! button: under rubber forefoot - left US, right - non US.  Push an
  opened paperclip into the little hole (has the letter `R' beside it) to
  activate.

PC is DTE, modem is DCE.  Use null modem &/or gender bender.

Pinouts for serial cables, looking at them end on:

                           +-----------7 sgnd                    +-----5 rx
  +-----4 signal ground    |       +---3 rx     +-----5 sgnd     | +---4 sgnd
  | +---3 rx (input)       |       | +-2 tx     |   +-3 tx       | |   3 tx
  | | +-2 tx (output)      |       | | 1 shield |   | 2 rx       | |   |
  | | | 1 shield           |       | | |        |   | |          v v   v
  | | | |                  v       v v v        v   v v        ___________
  v v v v     ___________________________      ___________     | ------- |
 _________    \o o o o o o o o o o o o o/      \o o o o o/     |/ o o o \|
 |o o o o|     \o o o o o o o o o o o o/        \o o o o/      ||o o   o||
 `-------'      -----------------------          -------       |\ o  o  /|
               25                     14         9     6       | ------- |
                                                               `---------'
  HP 48               PC (25 pin)               PC (9 pin)      Macintosh

HP BBS
======
HP's calculator BBS: (503) 750-4448 @ 2400 baud N81, and (503) 750-3277 @
  9600 baud v.32 N81.  Also (from Internet sites): telnet hpcvbbs.cv.hp.com

handheld ftp sites     (the archive sites - Lots of articles, information and
==================     neat public domain HP 28 & HP 48 software)
[IP#_________] [site____________] [directory______________] [__________Notes]
15.255.240.16  hpcsos.col.hp.com  pub
15.255.72.15   hpcvaaz.cv.hp.com  pub
15.255.72.16   hpcvbbs.cv.hp.com  pub/readme login: new (HP's calculator BBS)
36.14.0.43     calvin.stanford.edu
128.109.221.20 sec.uncwil.edu     hp48/  hp28/    (start here for HP48 stuff)
128.214.6.100  nic.funet.fi       pub/archive/comp.sources.hp48/index
129.174.1.8    gmuvax2.gmu.edu    hp28  new/hp28    hp48
129.186.99.31  telnet DIAL: me\16125 (Iowa State)
130.39.128.96  max.ee.lsu.edu     hp48sx
131.188.1.43   faui43.informatik.uni-erlangen.de   pub/hp28    pub/hp48
134.129.111.64 plains.nodak.edu   pub/hpcalc/hp28
146.169.2.1    src.doc.ic.ac.uk   pub/computing/systems/handhelds/hp48
(206) 562-7083 sci-fac bbs ] Science     [ SCIence-FACtor BBS
(206) 644-4569 sci-fac bbs ] Math        [ sysop Bruce N. Baker
(206) 747-5329 sci-fac bbs ] Engineering [ a PCboard BBS
(403) 487-6947 HP BBS Edmonton
(414) 362-2020 9600n81 Milwaukee HP48BBS
(416) 968-6633 2400n81 Raiders of the Lost Arg BBS  [email-masked]
(503) 750-4448 2400 baud N81                              HP's calculator BBS
(503) 750-3277 9600 baud v.32 N81                         HP's calculator BBS
(517) 886-0836 2400n81 Dan's BBS Extravaganza      [email-masked]

palmtop sites:       (Usenet: comp.sys.palmtops draft FAQ: [email-masked])
==============
18.62.0.6     eddie.mit.edu distrib/hp95lx/...                        (HP 95)
128.32.183.94 math.berkeley.edu                                (sharp wizard)
129.89.8.4    csd4.csd.uwm.edu pub/Psion pub/Palmtop (HP 95 Pofo Poqet Psion)
131.254.254.2 ftp.irisa.fr                                            (HP 95)
141.211.164.8 atari.archive.umich.edu usenet:comp.sys.atari.st (Atari PortFo)
146.169.2.1   src.doc.ic.ac.uk public/packages/psion                  (Psion)
mail [email-masked] message: send {help|index|newsletter}(AgendA)
0271-24458 AgendA BBS                                                (AgendA)
+81 03-3299-8661 2400n81 guest ID: SHRAP999      Japanese BBS Kanji (PC-E500)

Mailing lists, mail servers
===========================
Handhelds Mailing list:                      (forwarded to comp.sys.handhelds)
  To join mailing list send message
      SUBSCRIBE  HANDHELDS  your_real_name
  To abdicate from mailing list send message
      UNSUBSCRIBE  HANDHELDS  or    SIGNOFF HANDHELDS
  to [email-masked] (Internet) or [email-masked] (Bitnet)
  To post message on mailing list (forwarded to comp.sys.handhelds), send to:
  [email-masked] (Internet) or [email-masked] (Bitnet)

  To join comp.sys.hp48 and comp.sources.hp48 mailing list send mail to:
      [email-masked]
  To abdicate from comp.sys.hp48 & comp.sources.hp48 mailing list, mail to:
      [email-masked]

  To submit an article to comp.sources.hp48 send it to:
      [email-masked]

Handhelds mail server
  To: [email-masked]
  Subject: don't care
      send HELP INDEX         (help on using this server, and index of files)
      HP28     (specify this only if you want files from the HP 28 directory)

The newsgroups
==============
Charter     comp.sys.handhelds

  This newsgroup will contain all the same postings the inet group contains
  of the same name.  Voting on this will just make comp.sys.handhelds an
  official Usenet newsgroup.  Nothing else will change.  If the vote fails
  comp.sys.handhelds will just remain an inet only group.

Charter     comp.sys.palmtops

  This newsgroup will contain all discussion related to any machine
  classified as a palmtop.  The Wizard, BOSS, HP95, the rumored Sony/Mac
  machine, that new CMOS Cray (the one with antigrav units) are considered
  palmtops.

Charter     comp.sys.hp48

  This newsgroup will contain all discussion pertaining to the HP48
  calculator and accessories.  HP28 discussion is also invited and welcome. 
  Anything that is normally posted to comp.sys.handhelds about the HP48
  should be posted here with the exception of programs in any form. 
  Programs should be posted to the source group, assuming that it passes. 
  Otherwise, all programs will be posted here.

Charter     comp.sources.hp48

  This moderated newsgroup will contain all program postings and anything
  that needs to be archived.  All programs can and should be posted here. 
  It will not matter if they are rpl source, assembly source, uuencoded
  binaries, asc encoded binaries, or any other format that might come up in
  the foreseeable future.  It would be good to post large documents like the
  internals list here for archiving and to keep the bytes down in the
  discussion group.  This is not a requirement, only a suggestion.

  Each posting will contain rkive(1) headers so that rkive(1) can be used to
  automatically archive each posting.  Hopefully the sites that archive
  comp.sources.* will also archive the HP48 source.  There will be at least
  one archive site, seq.uncwil.edu.

  Each posting will also contain a version number so that it will be much
  easier to keep track of newer versions and to purge old versions.

  Since most HP28 programs run on the HP48, they are welcome.  The postings
  will be identified by HP28 in the subject line of each message.

  The moderator will be Chris Spell ([email-masked]) until such time
  as he decides to name a successor.

Mail Order  HP 48sx and accessories available from:
==========
EduCalc Mail Store  (714) 582-2637 (also overseas)
27953 Cabot Road                                                              
Laguna Niguel, CA 92677 USA                                                   
(800) 677-7001  fax: (714) 582-1445                                           

Calculators, Inc.                                                             
Minneapolis                                                                   
(612) 866-8908                                                                

Elek-Tek  (708) 677-7660
7350 North Linder Avenue
Skokie, Illinois 60077
(800) 395-1000  fax: (708) 677-7168

Surveyors Supply Co.  (919) 362-7000
Hwy 64 at Salem Street  P.O. Box 809
Apex, NC 27502
(800) 334-0095  fax: (919) 362-7077

File Formats (There are hundreds.  These few are most generally encountered
============  in the HP 48 world)
.asc   HP 48 ASCII string.  Download to your 48 and use ASC-> to convert to
       48 program
.lib   HP 48 library file
.ps    PostScript document.  First line should start with the two characters:
       %! (more often: %!PS-Adobe-2.0...). Send this file to a postscript
       printer.
.tar   unix archiving utility that can store numerous files (and directories
       of files) in one file.tar.  It stands for Tape ARchive, and originally
       was developed to archive files to tape.  To untar a tar file type: tar
       xvf file.tar.  A DOS version of tar is available from
       wuarchive.wustl.edu mirrors/msdos/filutl/pdtar.zip
.uue   A uuencoded file.  type: uudecode file.uue to generate file, which may
       be any other format requiring further processing.  uudecode is native
       on unix systems and available for most other systems.
.Z     A unix compressed file.  Type: uncompress file.Z to generate file.  A
       DOS version of uncompress is available from wuarchive.wustl.edu
       mirrors/msdos/compress/comp430d.zip
.zip   A PKzip'd file
binary Most files obtained from ftp sites should be transferred in binary
       mode.

ftp, telnet, Bitftp, & DECwrl
=============================
ftp allows you to logon to a remote site and list and get (and put) files. 
  This is generally available only from Internet sites, but see DECwrl below
  for subterfuge.  From your terminal prompt type:

  ftp machine.site.domain
  login: anonymous                    (anonymous is usual public access name)
  password: your_email_address        (not required but preferred, for stats)
  cd directory                                                 (usually pub/)
  cd sub_directory                                   (often self descriptive)
  get README |more (more README to your screen without actually getting file)
  type binary                                                     (see below)
  get file_of_interest                            (download file_of_interest)

telnet allows you to log in to a remote machine as if you are connected to a
  directly attached terminal.  This is generally available only from
  Internet sites.  From your terminal prompt type:

  telnet machine.site.domain {port}

At the login prompt put login_name (it is not given if none is required):

  login: login_name

BITftp - How to ftp through BITftp:  Send the message 'HELP' to BITFTP@PUCC
  (Bitnet) or to [email-masked] (Internet).  It sends you
  everything you'll need.

DECwrl - How to ftp through DECwrl:  Send to [email-masked] the
  message:

  connect         (defaults to decwrl.dec.com)
  get README.ftp  (the help file @decwrl.dec.com)
  quit