[comp.sys.handhelds] HP-28 to HP-48 changes

edp@jareth.enet.dec.com (Eric Postpischil (Always mount a scratch monkey.)) (03/08/91)

I'm curious about the changes from the 28 that HP made in the 48.  Some
of these are obvious, like the change in the integration parameters
(needed to handle symbolic integration) and the ability to recall
directories.  But some are a bit more subtle.

On the 28, doing something (like plotting) that caused PPAR to be
created caused the 28 to scan the equation and select the first variable
as the independent variable.  On the 48, X is always assumed.  Why did
HP make this change?  One guess is that algebraics can now contain local
variables (because of the "where" and integration operators), so the
first variable seen is not necessarily a free variable of the
expression.  Is this why they made the change?

Another change is that storage arithmetic has been generalized.  It used
to be that STO+ would accept only certain objects to be added (real and
complex numbers, I think).  Now any objects acceptable to + are
acceptable to STO+, and similarly for the other STO operators.  Okay,
that change provides more function, as do the evaluation of lists and 0
WAIT.

Two items that fit into the category of trying to improve behavior are
that STO checks for directly recursive definition (putting 'var' in
'var') and plotting 'variable=expression' plots only the expression
(unless flag setting is changed).

ABORT is gone.  0 DOERR is not the same thing -- why was this function deleted?

== and != now properly compare reals and algebraics.  On the 28, (0,0)
did not equal 0, according to ==, but on the 48 they do.

Has anybody noticed other changes?


				-- edp (Eric Postpischil)
				"Always mount a scratch monkey."
				edp@jareth.enet.dec.com

jurjen@cwi.nl (Jurjen NE Bos) (03/08/91)

edp@jareth.enet.dec.com (Eric Postpischil (Always mount a scratch monkey.)) writes:

>I'm curious about the changes from the 28 that HP made in the 48.  Some
>of these are obvious, like the change in the integration parameters
>(needed to handle symbolic integration) and the ability to recall
>directories.  But some are a bit more subtle.

Of course, OBGET and OBPUT are vanished, and nothing has come to replace them.
One can disassemble algebraics with OBJ->, or use \v|MATCH, but sometimes you
wished they were there.  Same for EXGET and EXPUT.
What is also missing are the catalogs.  They were rather useful, especially
the units catalog, becuase it knew the full name of all the units.  And: USAG
is not a catalog.
One big missing function is VIEW\^| and VIEW\v|.  Why were these left out?  I
do not always have the memory to edit an object just to see a few more lines.
Well that's my list of missing HP28 features of the HP48.  Anybody else?

billw@hpcvra.cv.hp.com. (William C Wickes) (03/13/91)

From Eric Postpischil:
> 
> On the 28, doing something (like plotting) that caused PPAR to be
> created caused the 28 to scan the equation and select the first variable
> as the independent variable.  On the 48, X is always assumed.  Why did
> HP make this change?  One guess is that algebraics can now contain local
> variables (because of the "where" and integration operators), so the
> first variable seen is not necessarily a free variable of the
> expression.  Is this why they made the change?

This was just part of the general overhaul of the plotting interface.  It
appears that x (X) is the most common independent variable name used in
plotting discussions, just as y is commonly used as the dependent variable.
It also simplifies manual descriptions etc. to be able to use a specific
name.  Nothing profound here.

> Another change is that storage arithmetic has been generalized.  It used
> to be that STO+ would accept only certain objects to be added (real and
> complex numbers, I think).  Now any objects acceptable to + are
> acceptable to STO+, and similarly for the other STO operators.  Okay,
> that change provides more function, as do the evaluation of lists and 0
> WAIT.

STO+ and friends were originally written to allow "in-place" arithmetic
on stored numbers and arrays, primarily so that you could succeed in
performing some array operations for which there might otherwise not be
enough free memory.  Many people requested the extensions of STO+ that
are present in the 48.

> Two items that fit into the category of trying to improve behavior are
> that STO checks for directly recursive definition (putting 'var' in
> 'var')

This a property of certain keys (STO, solver menu keys, and left-shifted
VAR or CST menu keys), not of STO itself.

> and plotting 'variable=expression' plots only the expression
> (unless flag setting is changed).

It is common for people to say they are plotting "y=f(x)" even though they are
really just plotting f(x), so the 48 lets you define a plot with either
'f(x)' or 'y=f(x)'.  In the latter case, y is only used as an axis label.

> ABORT is gone.  0 DOERR is not the same thing -- why was this function 
> deleted?

People wanted the ability to abort a program with an error message, hence
DOERR.  0 DOERR is essentially equivalent to pressing ATTN, which is the
same as ABORT on the HP28, except that HP48 ATTN is a trappable error, whereas
ATTN was not trappable on the 28.

> == and != now properly compare reals and algebraics.  On the 28, (0,0)
> did not equal 0, according to ==, but on the 48 they do.

Call it a refinement.

From Jurjen NE Bos:

> Of course, OBGET and OBPUT are vanished, and nothing has come to replace them.
> One can disassemble algebraics with OBJ->, or use \v|MATCH, but sometimes you
> wished they were there.  Same for EXGET and EXPUT.

The problem is that with the advent of functions with an indefinite number
of arguments, plus the ability for libraries to define new functions, providing
a position argument for OBGET etc. becomes rather problematic.  The MATCH
commands plus OBJ-> provide more and better substitution/extraction
capabilities.

> What is also missing are the catalogs.  They were rather useful, especially
> the units catalog, becuase it knew the full name of all the units.  And: USAG
> is not a catalog.

We would have liked to have added output descriptions to the command catalog,
but this would have been very expensive in ROM, so we traded the catalogs
for the Quick Reference Guide.  And the UNITS menu is a more useful units
catalog than the HP28 units catalog, since the units are sorted by type
and the menu provides active entry/conversion facilities.  You can alway
get the full name of a unit with REVIEW.

> One big missing function is VIEW\^| and VIEW\v|.  Why were these left out?  I
> do not always have the memory to edit an object just to see a few more lines.

VIEWup and VIEWdown evolved into the interactive stack on the 48.  It's true
that editing an object can take more memory than VIEWdown, but even the
latter can run out of memory so it's only a question of the threshold of pain.
I generally find that if there isn't enough memory to edit an object, there
likely will not be enough memory to do much else with it.

Bill Wickes

mueller@schaefer.math.wisc.edu (Carl Mueller) (03/13/91)

Nobody has said anything about the difference in the number of key presses
for certain often used functions.  1/x, square root of x, sin, cos, tan,
y^x, and swap all required two key presses on the 28 and only 1 on the 48.

This tells me that some thought went into the design of the 48.  (And not
just thought about what wonderful functions can be crammed into one 
calculator.)

I just wanted the people at HP to know that I appreciated these seemingly
minor changes as well as the other more major changes between the two 
calculators.

Carl Mueller (mueller@math.wisc.edu)

hoford@bogaha.circ.upenn.edu (John Hoford CIRC) (03/14/91)

In article <1991Mar13.140731.11318@schaefer.math.wisc.edu> mueller@schaefer.UUCP (Carl Mueller) writes:
>This tells me that some thought went into the design of the 48.  (And not
>just thought about what wonderful functions can be crammed into one 
>calculator.)
>Carl Mueller (mueller@math.wisc.edu)

I am always amazed at how well all the functions fit
together and how they have designed this aspect of the 
keyboard.

Was there any formal Process used to improve the user interface?
Or was it just discussed internaly and a decision made?

eg.
Why was Y^X chosen over LOG as the top button? 
Was a survey taken of function usage to determine the choices?

John D. Hoford

sjthomas@cup.portal.com (Stephen J Thomas) (03/14/91)

Following is a reference article I wrote a couple of months ago.  It was
distributed at the Jan 1991 User's Meeting in Las Vegas which corresponded
with the WCES.  On seeing the recent 28 -> 48 postings, I realized I
never posted it.  It's about 6 type-written pages....under 16K.      
 
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



                         HP-28S TO HP 48SX TRANSITIONS
                              by Stephen J. Thomas


          This article is a summary of functional differences of HP-28S 
     operations as implemented on the HP 48SX.  It is not intended to 
     present all of the many improvements and new commands in the 48, but 
     is primarily an aid for 28 users who wish to use their previously-
     developed programs on the 48.  The comments on any given topic are 
     not exhaustive, but are quick summaries of operational differences.  
     Further reference should be made to the appropriate manual(s). 

          In addition, a number of non-programmable differences are 
     included, as well as a table showing differences in system flags.  

          I would appreciate receiving any corrections or additions from 
     the readers.  My mail and email addresses are listed at the end of 
     this article.

          [l-shft] and [r-shft] refer to the HP 48 orange left-shift and 
     blue right-shift keys, respectively.  "sigma" represents the Greek 
     upper-case letter sigma. 


     GENERAL COMMENTS:

          When a special display (message, plot, etc.) is created on the 
     HP-28S, it usually persists after program completion until a key is 
     pressed.  Alternatively, the command CLMF may be included in the 
     program to resume the normal stack display when the program is 
     completed.

          On the HP 48SX, special displays are normally cleared and the 
     stack (or graphics environment) display is resumed when a program is 
     completed -- unless the FREEZE command is included in the program. 

          The 48 does not contain the 28's R->P and P->R commands.  
     Instead, the calculator is set to one of rectangular, 
     polar/cylindrical or polar/spherical modes.  This mode affects the 
     interpretation of complex numbers.  Conversion is done by changing 
     the mode.  The rectangular form is always stored internally;  only 
     the DISPLAY of these values are converted when in a polar mode. 

          The 28 commands ARRY->, C->R, LIST-> and STR-> may be replaced 
     by the more general 48 command OBJ->, although the 48 does recognize 
     the 28 forms.

          The 28's ALGEBRA FORM environment has been changed and is now 
     incorporated in the EquationWriter Application.

          It is often possible to recover from accidentally PURGEing or 
     STOring into a global variable on the 48 via the LASTARG command.


          The HP 48 menus are completely reorganized and renumbered.  The 
     current custom menu list (or the name of a global variable containing 
     it) is stored in the variable 'CST', a distinct one of which may 
     exist in each subdirectory. 

          Custom input menus (created with STO as the first list element 
     on the 28) are not supported on the 48.  The [l-shft] key can be used 
     to store directly into global variables displayed in the menu line.  


          The MENU command will accept any object as its argument and 
     store it in 'CST'.  However, an error is generated if 'CST' does not 
     contain a list (or the name of a global variable containing a list) 
     when the custom menu is invoked.  Specific pages within a menu can be 
     specified by the fractional portion of the argument -- for example, 
     12.02 refers to page 2 of menu #12.  

          In a custom menu, labels other than the key actions can be 
     specified -- with either a string or 21x8 graphics object.  [l-shft] 
     and [r-shft] actions can also be specified. 

          The sixty-four user flags are represented by positive flag 
     numbers.  The sixty-four system flags are represented by negative 
     flag numbers.

          The PLOT system has been substantially enhanced, with multiple 
     plot types, increased functional abilities in the interactive 
     Graphics Environment, equation catalog, etc.  Points are digitized by 
     pressing ENTER in the Graphics Environment.  See the manual.



     SPECIFIC OPERATIONAL DIFFERENCES:

     ABORT  --  Is not recognized by the 48.  Use  0 DOERR.

     AXES  --  Can also be used to specify axis labels.

     CENTR  --  Also accepts a real number x corresponding to the point 
     (x,0) as the plot center.

     CHR  --  Some characters and character codes have been changed.

     CLLCD  --  Does not clear the menu line.  In a program, must be 
     followed by 7 FREEZE for the blank display to persist.

     CLMF  --  Is not supported by the 48.  See "General Comments" above.

     CLUSR  --  Is recognized with this spelling, but has been renamed 
     CLVAR, which can be placed in the command line with [r-shft] DEL.  
     CLUSR is "translated" to CLVAR in programs and lists.

     COLsigma  --  Is supported by the 48, but not listed in a menu.  It 
     is replaced by the separate commands XCOL and YCOL in the STAT menu.

     COMMAND --  (keyboard only)  Renamed LAST CMD.

     CONVERT  --  Has been redefined to function in the new Units 
     Management System:
          2:  x_sourceunit    CONVERT    1:  z_targetunit
          1:  y_targetunit    ------->           (y is ignored)

     C->R  --  Is provided on the 48, operating similarly to R->C (and 
     [l-shft] 2D and V-> ).   See R->C below.

     DGTIZ  --  Is not supported on the 48.  Instead, the interactive 
     Graphics Environment is entered with the GRAPH command.

     DISP  --  Now accepts arguments 1 - 7.  Must be followed by FREEZE 
     for the display to persist after program execution ends.

     DRAW  --  Does not erase previous graphics display before plotting. 

     DRWsigma  --  Is not supported by the 48.  It is replaced by 
     SCATRPLOT or SCATTER DRAW.

     EVAL  --  EVALuating a list on the 28 returns it unchanged.  On the 
     48, each element of the list is EVALuated in turn.

     EXGET  --  Not present in the 48.  It is replaced by the SUB
     command in the interactive EquationWriter Application. 

     EXSUB  --  Not present in the 48.  It is replaced by the REPL
     command in the interactive EquationWriter Application. 

     FACT  --  Is recognized with this spelling, but has been renamed !.  
     Only the ! form is in a menu.  ! requires postfix notation.

     FIX  --  In FIX display mode, real numbers are displayed with digit 
     separators, such as:  1,234,567.89  or  1.234.567,89  (depending on 
     the state of flag -51).

     GETI --  Wrap-around indicated by flag -64 rather than 46.

     IM  --  Performs conversion to rectangular value if in a polar mode.

     INDEP  --  Can also be used to specify the plotting range of the 
     independent variable.

     Integration  --  Completely redesigned.  Output uses the | (Where) 
     function.  Stack usage is different:
          4:  Lower limit                  1:  Expression representing
          3:  Upper limit          ===>        integral (can be EVAL'd)
          2:  Integrand
          1:  Variable of integ            Error stored in variable IERR

       Algebraic syntax:   $(lower limit, upper limit, integrand, name)
       where $ represents the integral character.

     KEY  --  On the 48, returns a 2-digit rc (row-column) keycode to 
     level 2, rather than a string representing the pressed key. 

     LAST  --  Is recognized with this spelling, but has been renamed 
     LASTARG.  It is displayed as ARG in the MODES menu to enable/disable.
     LAST is translated to LASTARGS in programs and lists.

     LCD->  --  Returns a graphics object (GROB), not a string.

     ->LCD  --  Argument is a graphics object (GROB), not a string.

     MENU  --  See "General Comments" above.

     NEG  --  Does not appear in a menu.  Use the +/- key.

     NUM  --  Some characters and character codes have been changed.

     OBGET  --  Not present in the 48.  It is replaced by the SUB
     command in the interactive EquationWriter Application.

     OBSUB  --  Not present in the 48.  It is replaced by the REPL 
     command in the interactive EquationWriter Application. 

     PIXEL  --  Is not recognized by the 48.  It is replaced by PIXON, 
     which accepts a complex number as a "user" unit coordinate, or a list 
     of two binary integers as a pixel coordinate.

     PMAX  --  Is supported by the 48, but is not in a menu.

     PMIN  --  Is supported by the 48, but is not in a menu.

     PPAR  --  Contains two additional elements:  plot type & dependent 
     variable.

     PREDV  --  Is recognized by the 48, but has been renamed PREDY.

     PRMD  --  Not present in the 48.

     PRUSR  --  Is not supported by the 48.  Use  VARS  PR1.

     PURGE  --  The contents of the PURGEd variable can be retrieved by 
     the LASTARG command when PURGE is executed from the keyboard.  
     Recovery is not possible when PURGE is executed from a program, the 
     command line, or when the argument is a list.   Use PGDIR to purge a 
     non-empty subdirectory. 

     PUTI  --  Wrap-around indicated by flag -64 rather than 46.

     P->R  --  Not provided.  See "General Comments" above.

     RCLF  --  Returns a list containing two binary integers -- the first 
     representing the states of the system flags (-1 thru -64) and the 
     second representing the user flags (1 thru 64).

     RCLsigma  --  Is supported on the 48.  Press [r-shft] STOsigma to 
     execute RCLsigma or place it in the command line.

     RDX,  --  Is renamed FM, (Fraction Mark) in the MODES menu.

     RE  --  Performs conversion to rectangular value if in a polar mode.

     RES  --  Accepts a binary value to specify pixel resolution (as a 
     real value does on the 28) or a real value to specify resolution in 
     "user" units.

     RND  --  On the 48, the value in level 2 is rounded as specified by
     the level 1 value:  
        0 <= n <= 11  --->  level 2 value rounded to n decimal places
      -11 <= n <= -1  --->  level 2 value rounded to n significant digits
       12  --->  level 2 value rounded according to current display format
                 (as the level 1 value is rounded on the 28).
     Also see TRNC (Truncate) in the 48 manual.

     R->C  --  Is provided on the 48.  If a polar mode is set, the values 
     are converted to polar form for display.  Also, if flag -19 is set, 
     [l-shft] 2D from the keyboard and the command ->V2 create a complex 
     number.  In this case, however, if a polar mode is set, the real 
     values are interpreted as already being polar and are not converted 
     for display.

     R->P  --  Not provided.  See "General Comments," above.

     SCLsigma  --  Is supported by the 48, but not listed in a menu.

     SIZE  --  Arguments which cause a "Bad Argument Type" error on the 28S 
     return the real value 1 to level 1 on the 48.

     STO  --  The previous contents of the global variable can be 
     retrieved by the LASTARG command to recover from accidental over-
     writing performed from the keyboard.  Recovery is not possible when 
     STO is executed from a program or the command line.

     STOF  --  If the argument is a single binary integer, it is 
     interpreted as the set of system flags and the user flags are left 
     unchanged.  If the argument is a list containing two binary integers, 
     the first corresponds to the system flags and the second to the user 
     flags.   See RCLF and "General Comments" above. 

     SYSEVAL  --  To get the ROM version on the 48, do #30794h SYSEVAL.

     TRAC  --  Printer Trace mode is not directly provided by the 48, but 
     may be implemented using Vectored ENTER.

     TYPE  --  Returns values from 0 thru 31.  On the 48, built-in 
     functions and commands return 18 and 19, respectively, compared to 8 
     on the 28. 

     UNDO  --  (keyboard only)  Renamed LAST STK and displayed as STK in 
     the MODES menu to enable/disable.

     VAR  --  Is supported on the 48, but not listed in a menu.

     WAIT  --  On the 48, arguments 0 and -1 interrupt program execution 
     until a key is pressed -- and then return its 3-digit rc.p 
     (row-column.plane) keycode. 

     +  --  If either level 1 xor level 2 contains a string, the other 
     object is converted to a string and they are concatenated. 


     Stephen J. Thomas  P.O. Box 371861  El Paso  TX  79937-1861
        sjthomas@cup.portal.com


                                   FLAG TABLE

          If there are no notations, the set and clear states function 
     similarly on the HP 48 as on the HP-28.    S = set   C = clear


      Description                 HP-28S                  HP 48SX
     ---------------------------------------------------------------------
     Last Arguments                 31                      -55
                          S = arguments saved      S = arguments not saved
                          C = arguments not saved  C = arguments saved

     Trace Mode                     32                   Not supported

     Auto CR Mode                   33                      -38

     Solution Mode                  34                      -1

     Constants Mode                 35                      -2
                          S = remain symbolic      S = eval to number
                          C = eval to number       C = remain symbolic

     Results Mode                   36                      -3
                              S = symbolic             S = numeric
                              C = numeric              C = symbolic

     Binary Wordsize             37 - 42                -5 - -10
     Binary Base                 43 - 44                -11 - -12

     Multiline Display              45                      -52
                                S = ML on                S = ML off
                                C = ML off               C = ML on

     Index Wraparound               46                      -64
     Double Space Print             47                      -37
     Radix/Fraction Mark            48                      -51
     Display Format              49 - 50                -49 - -50

     Beeper                         51             -56  Error/BEEP Command
                                                   -57  Alarm Beep

     Print Speed                    52             Controlled by DELAY

     Number of Decimal Digits    53 - 56                -45 - -48
     Underflow Action               57                      -20
     Overflow Action                58                      -21

     Infinite Result Action         59                      -22
                                S = error               S = return +/- MAXR
                                C = return +/- MAXR     C = error

     Angle Mode                     60                 -17 & -18
                                 S = radians            C  &  C = degrees
                                 C = degrees            S  &  C = radians
                                                        C  &  S = grads

     Negative Underflow             61                      -23
     Positive Underflow             62                      -24
     Overflow                       63                      -25
     Infinite Result                64                      -26



     Stephen J. Thomas  P.O. Box 371861  El Paso  TX  79937-1861
        sjthomas@cup.portal.com

rcoahk@chudich.co.rmit.oz (Alvaro Hui Kau) (03/17/91)

mueller@schaefer.math.wisc.edu (Carl Mueller) writes:

>Nobody has said anything about the difference in the number of key presses
>for certain often used functions.  1/x, square root of x, sin, cos, tan,
>y^x, and swap all required two key presses on the 28 and only 1 on the 48.

How about trying to type a >= or <= or a simple 'DUP'?
On the 28s, they are easy to find but on the 48sx, they are extremely
hard to find! Anyway, that's why the little reminder booklet is for...


>This tells me that some thought went into the design of the 48.  (And not
>just thought about what wonderful functions can be crammed into one 
>calculator.)

>I just wanted the people at HP to know that I appreciated these seemingly
>minor changes as well as the other more major changes between the two 
>calculators.

A new 48sx owner......

===============================================================================
	Alvaro Hui		|ACSnet		akkh@mullian.oz
    4th Year B.E.\ B.Sc.	|Internet &	akkh@mullian.ee.mu.OZ.AU
   University of Melbourne	|Arpanet	rcoahk@koel.co.rmit.OZ.AU 

sjthomas@cup.portal.com (Stephen J Thomas) (03/18/91)

On the 48,
  DUP  can be entered in a program by either [leftshift] [ENTER]  or
[rightshift] [ENTER] .
  
Stephen Thomas    sjthomas@cup.portal.com