[comp.sys.handhelds] HP Comparison

dan@Apple.COM (Dan Allen) (03/28/90)

   HP Handhelds of the 1980s: The HP-75, HP-71, HP-28, HP-42S & HP-48SX
                        By Dan Allen  6 March 1990
                           Updated 27 March 1990

One year ago (almost to the day), I compared the four major portable 
computational devices that Hewlett-Packard introduced during the 1980s: the 
HP-75C, HP-71B, the HP-28S, and the HP-41/42S.  This list is not exhaustive 
but is representative of the four major thrusts towards portable scientific 
computation that were accomplished in the decade.

A new decade has dawned, and with it Hewlett-Packard introduced on March 6th a 
new top-of-the-line HP calculator, the HP-48SX.  The HP-48SX stands for 
Scientific Expandable.  It is a blend of the HP-28S and the HP-41CX, hence its 
moniker.  HP has gone back to its original vertical-style calculator case; 
indeed, the 48SX looks like an HP-42S, although a bit longer and fatter.  Gone 
are the poor display and case of the HP-28!  But the great software remainsI...

Here are the basic hardware specs:
  * "Saturn" CPU at 2 MHz, nibble-oriented 20-bit bus, 64-bit registers
  *  256 KB of ROM
  *  32 KB of RAM, expandable to 288 KB
  *  2 slots for RAM/ROM expansion (main memory, ROM applications, backup RAM)
  *  Infrared bidirectional IO at 2400 baud for printing & IO to other 48s
  *  Serial port for 9600 baud communication with a PC or Macintosh
  *  49 keys: 4 rows of 6 keys followed by 5 rows of 5 keys (like HP-41/42)
  *  131 x 64 pixel LCD display (3 font sizes)
  *  3 AAA batteries
  
The display allows the four level stack, a row of softkeys, and a status area 
all to be displayed at once.  The status area displays the current PATH, and 
optionally a continuously updated display of the current date and time, as 
well as other messages when appropriate.  The display contrast is better than 
the 28S and 42S.

Here is a comparison of these machines by the number of features and functions 
that they offer.  The machines are listed chronologically by date of 
introduction.  This evaluation has merged some of the features compared to 
last years comparison, so both tests are shown in the table below:

# of Functions   HP-75C*    HP-71B*   HP-28S   HP-42S   HP-48SX
----------------------------------------------------------------
March 89 Test  |  325        284       252      221
March 90 Test  |  286        268       247      200       353

* - Note: the HP-75C includes the Math and I/O ROMs, while the HP-71B includes 
the Math and HP-IL ROMs for this comparison.

A most important fact is to be seen from this table: the trend prior to the 
HP-48SX was declining functionality.  A prediction from linear regression 
would have the fifth generation machine have 180 functions, but instead it has 
over 350!

This year our review will be divided into twenty categories: binary, complex, 
control, display, files, graphics, IO, keys, logical, math, matrix, memory, 
number theory, printing, stack, stats, strings, symbolic, system, and time.


                             ----------------------

BINARY NUMBERS
This category includes all bit-level operations as well as working in 
different bases.  The 75C's I/O ROM provided a great set of functions for 
shifting, rotating, ANDing, and ORing ASCII strings, HEX strings, and 
converting from any base to any base.  The 71B provided very little 
functionality in this area, and limited its BINAND type functions to 20 bit 
integers, which was not too useful.  The 28S featured a variable wordsize up 
to 64 bits, but the range of its operations was somewhat limited.  For 
example, there are 8 different functions for rotating and shifting in various 
ways when 2 would have offered the basic functionality.  Meanwhile, there is 
no facility for simply testing if a bit is set.

How does the 48SX stack up?  Well, it is almost exactly the same as the HP-
28S, so this is one of the few areas that is still somewhat weak in the HP-48.  
There is still no facility to do bit testing in a simple way.  Binary numbers 
take precedence in a calculation, with a real and a binary always resulting in 
a binary number.  Unfortunately binary numbers are not automatically converted 
to reals, so all transcendental operations are not allowed on binary numbers.  
You must use B->R beforehand.

The biggest shortcoming of the HP-48's binary arithmetic is that it does not 
support any signed binary numbers.  Binary numbers are always unsigned, so the 
typical question "what is $FFDE in decimal?" will always be 65502 rather than 
-34 in 2's complement or -33 in 1's complement.  The HP-48SX is better than 
the 28S in that it does allow you to use the +/- key (similar to the 41/42 CHS 
key) to calculate the negative value (an invalid operation on the 28S), but 
#65502d +/- with a word size of 16 yields #34d, the 2's complement of #FFDEh 
but with the wrong sign.  A step in the right direction...

I guess the saddest fact is that all of the HP machines are still short of the 
HP-16C in functionality, and now that the HP-16C is no longer made, there is a 
real need for progress here.  None have the masking, left justify, carry flag, 
and complement modes that the HP-16C had.  The good news is that now that we 
can create plug-in cards, a lot of the HP-16C like functionality can be added 
to a card.  Wouldn't it be neat to be able to buy a 68000 card that emulates a 
68000 and its instructions?  The HP-48SX offers the ability to do something 
like that.  Until someone does, hold on to your HP-16C!

WINNER: Those that have an HP-16C are the winners.  Next runner up is the 
48SX.

                             ----------------------
 
COMPLEX NUMBERS
Complex arithmetic as a new data type was first found on the HP-15C. The BASIC 
machines then got complex arithmetic with their Math ROMs.  The 75C was the 
most awkward, as complex numbers were 2x1 matrices.  The 71B, and consequently 
the 28S, used a set of parenthesis to specify a complex pair, which was much 
better. The 15C and 42S required the use of two of the stack registers to 
input a complex number, but once it was input it then occupied just one level 
of the stack.  The 75C and 15C offered all trig functions and their inverses 
in complex mode, but then the 71B came along and the inverse complex trig 
functions were gone!  The 28S, 42S, and 48SX have brought them back, however.  
The 71B and 75C had the finite Fourier transform built in; it has been absent 
on all later models.  The 71B would not take the determinant of a complex 
matrix: all others will.  The 71B did, however, support IEEE math and complex 
numbers; all others do not.  The 71B and 75C also supported PROOT, a full 
polynomial root finder with real and complex roots.  Although the Solver of 
the 28S and 48SX is nice, it will not deliver all of the roots of a polynomial 
equation.  Using TAYLR and ROOT one can obtain the real roots, but PROOT is 
still sadly missed in the 48SX for complex roots.

For ease of use, the 28S and 48SX are very good when dealing with complex 
numbers.  The 42S offered the display of complex numbers in either rectangular 
or polar coordinates, a most welcome feature that gives a real feel for 2D 
vector analysis.  The HP-48SX has combined the 28S and 42S to bring these fine 
features together.  In addition, this functionality has also been extended to 
2D and 3D vectors, with cylindrical and spherical coordinate modes shown as 
well.  

Gradually complex numbers have become first class citizens.  Taking the square 
root of a negative number used to be a grievous error that stopped programs in 
their tracks.  Now the 48SX always allows complex results from real functions, 
so SQRT(-1) always is a valid operation, returning (0,1), as it should be.

WINNER: Although I miss PROOT, FOUR, and IEEE complex math, the HP-48SX still 
is the best complex machine in town.  In fact the HP-48SX quite possibly is 
the finest complex arithmetic environment around, on any computer.  (The only 
other environment which may approach the 48 for its good treatment of complex 
math is perhaps the Common Lisp environment.)  If you need to do complex math, 
get an HP-48SX.  You will not regret it.

                             ----------------------

CONTROL STRUCTURES
The early machine offered little in the way of structured control constructs.  
Although HP's BASIC has been one of the better BASICs around, the 75C and 71B 
seem primitive, as does the 41/42 style of RPN programming.  The 28 and 48 
style of programming is definitely a giant step forward.

RPL, as it is called, stands for Reverse Polish Lisp.  Indeed, reading the 
Common Lisp language reference with its many data types does remind one of RPL 
and its 20 different object types supported on the 48SX.  The SX is a step 
forward from even the 28S in that it offers a CASE statement, typing aids for 
inserting a whole statement template, and better debugging.  Lists provide a 
very versatile way of handling information.

So is RPL ready to compete with C and Pascal?  Well, RPL handles the following 
basic data types:

    Booleans: 0 = FALSE, non-zero = TRUE
    Numeric types: 64-bit unsigned integers, 12 digit reals
    Strings (any length) of 8-bit characters (no separate char type)
    Symbolic names (local and global)
    Graphics object (1 bit per pixel bitmap)
    Algebraic expressions
    Programs

Composite data types include:

    Tagged objects (any object with an associated label)
    Unit objects (a real with an associated physical unit)
    Complex numbers (a pair of real numbers)
    Arrays of reals or complex numbers (1 and 2 dimensions only)
    Lists, composed of elements of any data types, including lists
    Directories, composed of a hierarchy of objects, including directories
    Backup objects (like a directory but with a checksum)
    Library and XLIB (two extensible code types)

Many of the RPL data types, such as lists, algebraics, and programs, are very 
powerful and have no counterpart in traditional programming languages like C 
or Pascal.  They are in fact what make symbolic math possible.  However, RPL 
is still somewhat limited: it does not have any record, set, or enumerated 
data types; arrays are limited strictly to real numbers; and there is no 
signed integer type.  Pointers are absent, but this is probably no great loss, 
as pointers are the data type equivalent of the GOTO statement and cause many 
programming errors.  Like many LISP systems, dynamic memory allocation is 
standard, with automatic garbage collection, so there is no need for malloc-
like dynamic allocation.

WINNER: The HP-48SX is clearly the most sophisticated programming environment 
of any HP handheld so far.  RPL and lists provide a very powerful environment.

                             ----------------------

DISPLAY
The HP-75C still has the widest display yet offered on an HP portable; ensuing 
machines had terrible displays, with the 28S and 42S being very poor in 
display quality.  The 48SX is a step forward at last, with a nice, readable 
display of up to 10 lines (depending on font size).  However, the RPL machines 
are very poor when it comes to formatting output.  Yes, they do have the STD, 
FIX, SCI, and ENG modes which the 75C did not have, but there is no equivalent 
of C's printf.  The 70 series machines had DISP USING and IMAGE statements 
which allowed many formatting options (almost as many as printf); they also 
supported multiple display devices, including regular monitors via HP-IL.

As far as menus go, the 70 series had none, which was not all bad.  The 42S is 
an improvement on the 28S with it automatically popping back out of a menu 
after you have used it, but menus still are slow to use.  The 48 is 
unfortunate in its having 28-like menus rather than 42-like menus.  The on-
line listing of parameters to 28S functions is laudable, and is also missed in 
the 48SX.

Having said all that, the 48SX does greatly improve on the 28S, with better 
control of menus (MENU,TMENU,CST), freezing parts of the screen (FREEZE), and 
prompting for input (INPUT, PROMPT, WAIT).

WINNER: Again the HP-48SX comes in number one, but the competition is not too 
stiff here.  Add a printf/scanf set of routines and more fluid handling of 
menus, and then you would have a real winner.
 
                             ----------------------

FILES
The 75C and 71B supported a flat file system.  The 28S and 42S do not support 
any files whatsoever.  This is a major weakness of the new machines.  (The 28S 
hierarchical directories are only for variables.)  The 75C I/O ROM provided a 
full set of operations for dealing with records and fields in a file.  And of 
course only the HP-75 had a nice text editor built-in for manipulating text 
files.  Its built-in FIND was particularly nice.

The HP-48SX, like the 28s, does not have a file system, per se.  Its variables 
are arranged in a hierarchy, but variables do not have any date, time, access, 
or privilege information maintained by the system.  The 48 does add operations 
to backup, archive, and restore its directories of information, which is very 
handy.  Still, there is little protection from yourself.  Variables are always 
purgeable and writable, for example.  The HP-71B allowed files to be made 
read-only, something that can be done on a 48SX only moving something into a 
RAM card and then setting the external physical switch to read-only.  It must 
be pointed out that the main use of the HP-48 is supposed to be mathematics, 
not as a database, but darn it, I want to keep names and addresses with me as 
well.

WINNER: The HP-75C is still the best HP portable for note taking, small 
databases, writing notes and brief letters.  Its support for file, record, and 
field IO was decent; all others since have been abysmal.
 
                             ----------------------

GRAPHICS
The 75C had none.  The 71B offered bit-twiddling, but with a uselessly small 
display.  The result was laughable.  The 42S graphics were very slow, too 
small, and generally worthless as well.  The 28S had the first passable 
graphics due to a higher display.  Its ability to plot an equation or a 
scatter plot of data provided actually useful capabilities.  The 48SX has a 
display twice the height of the 28S, and its functionality has likewise been 
more than doubled.  The 48 also adds a few interactive drawing tools for 
drawing lines, rectangles, and circles.

WINNER: Clearly the HP-48SX.  Although it is not a Macintosh yet, its tools 
are well crafted for the plotting needs of scientists and engineers.  The HP-
48SX is a solid step forward.
 
                             ----------------------

INPUT/OUTPUT
The 28S and 42S only support the O of IO, and that in a pretty dismal way.  
The 75C and 71B both tried to make HP-IL a success, but to no avail.  HP-IL 
effectively was a closed system due to its being hard to interface to the 
outside world.

The 48SX has bi-directional IO via infrared or serial ports.  The HP-48SX 
contains a built-in Kermit application, for easily moving information to the 
world of personal computers today.  Its use is incredibly simple: plug a cord 
into the back of your Macintosh or PC, plug it into the 48; run Kermit on the 
Mac, say send or receive file, and press the opposite on the 48 IO menu, and 
everything is done.  I did it the first time in about 1 minute.  And 48 to 48 
communications are even easier, as you just point both of them towards each 
other and presto, the data is magically exchanged.  Basic serial primitives 
are also supported, so you can roll your own protocol if you desire (as long 
as RS-232 can deal with it).

WINNER: The HP-48SX is a clear, significant step forward in this area.  This 
is the way computers are meant to communicate: fast, easy, and transparent.  I 
do, however, miss the LAN aspects of HP-IL.  It was much more sophisticated in 
what it could do (remote controllers, parallel polling, etc.), but alas, HP-IL 
is gone.

                             ----------------------

KEYBOARD and KEYS
The 75C keyboard could be touch-typed upon.  Nothing since has had that 
ability, including the 71B QUERTY keyboard, due to its use of calculator keys.  
The folding 28 keyboard was the worst case design yet; the 42S the perfect, 
slim, well built keyboard.  Key entry of strings on the 42S was a nuisance at 
best.  The 48SX has an alpha lock like the original HP-41, which is actually 
quite good.  The 48 case design is very good, and considering the immense 
amount of functionality, it is even better.  The 28S was pretty weak in its 
ability to poll the keyboard; the 48SX is better with its extended WAIT 
command.

The 75C and 71B had user definable keyboards.  The 28S had no keyboard 
customization.  The 42S had some, but not like the original 41.  The 48SX has 
brought back the completely user definable keyboard.  Also latent in the 48SX 
is the ability to define a custom version of the ENTER key via flag -63.  This 
intriguing capability is nowhere further explained, so it is something that 
can be explored in the coming months.

WINNER: A hard call: the 75C still has the best keyboard feel, but the 48SX 
does a good job packing lots of functions onto its keyboard.
 
                             ----------------------

LOGICAL OPERATIONS
The progression in functionality of logical operators has been one in which 
each succeeding model has been better than the past.  The 75C had the basic 
Booleans; the 71B added flags; the HP-48SX is identical in functionality to 
the 28S and 42S in both its support of the full range of Boolean functions as 
well as flags.

WINNER: Three-way tie for first by the 28S, 42S, and 48SX.
 
                             ----------------------

MATH and ARITHMETIC
This category includes the basic mathematical operations that are built-in.  
The number of operations has stayed relatively constant until the 48SX came 
along.  Some machines have included a few simple operations which are not 
really needed but which are handy.  The 75C alone had CSC, SEC, and COT; the 
75C and 71B had LOG2 (VERY handy and missed in later machines); the 28S and 
48SX have %, %CH, and %T.  Starting with the 71B machines had LN(1+X) and its 
inverse EXP(X)-1.  Although these seem unneeded at first glance, they are 
invaluable in offering a special degree of precision that is needed for 
solving financial equations.  The trig functions are quite similar overall; 
minor differences include GRAD mode and polar display mode on the 42S and 
48SX.

When the 15C was introduced, it added to the repertoire of a scientific 
calculator four new features that bring together much of numerical analysis: 
complex arithmetic (covered above), matrices (covered below), root finding, 
and numerical integration.  Root finding has progressed greatly from the 
original machines to a full-blown solver that incorporates symbolics in order 
to find the variables of an equation.  The Solver of the 28s was the first 
solver in this symbolic league.  The 42S Solver is not as sophisticated as the 
28S Solver in that it does not rearrange terms and solve the resulting 
equation directly as the 28S does, but the 42S did add a nice touch: it shows 
the convergence/divergence of guesses as it goes.  At first glance the 48SX 
Solver omitted this handy feature, but it turns out a key press will enable 
it.

Integration was fairly straightforward on the 75C; it got better with the 71B, 
as double and triple integration was supported.  The 28S was pretty good; the 
42S was a small step backward (awkward interface); the 48SX perhaps the 
easiest, as the EquationWriter application allows a very simple entry in a 
typographical manner.  Integration with the 48SX can also be symbolic, and 
although its built-in pattern matching does not cover lots of cases, it is 
still a nice step forward.

One last area of note is unit conversions.  The 28S was so neat in having all 
of the metric conversion constants built-in.  The only problem was that using 
these constants was awkward and a pain at best.  In fact, using the 
conversions was so bad that no one uses them.  Well, the 48SX has done an 
about face, and its unit conversions are so slick it is hard to think of ever 
solving another physics problem without a 48 at hand.  Units stick to real 
numbers with the underscore character and can flow through equations, plots, 
etc.  Dimensional analysis is performed along the way as a double-check on the 
proper use of equations.  I am sure you will see this feature appear on HP's 
less expensive machines in the coming years, and by the end of this 
decade/century, all scientific calculators will have unit conversions as 
standard equipment.  They are just too useful to not be.

WINNER: The HP-48SX.  Even if it only had unit conversions it would be the 
winner.  Add to them the mature, full featured Solver, integration facilities, 
and a nice set of standard math functions, and you will find a machine that 
scores very close to a perfect 10.  (Add LOG2 and I'd give it a ten.)

 
                             ----------------------
MATRIX MATH
Probably the purest form of "number crunching" is doing array manipulations.  
The 15C introduced some basic array handling, but input of array elements was 
a pain.  The 75C and 71B offered some pretty heavy duty capabilities, but they 
too had an entry problem.  The 28S allowed you to see all of say, a 3x3 
matrix, but getting quickly to elements in a large matrix was slow.  The 42S 
added a nice matrix editor for interactive editing of a matrix which evolved 
into the 48SX MatrixWriter application for a mini-spreadsheet view of a 
matrix.  (Of course the HP-75C had a Visi-Calc ROM that provided a 42S-like 
view, but that is another story.)

As far as individual matrix operations is concerned, the 42S is interesting in 
that it allows any math function to work on a matrix, so that taking the LN of 
a matrix actually takes the LN of each element, as an example.  The 28S/48SX 
instead say that taking the log of a matrix does not make sense, so the 
operations are invalid.  I think I would prefer the 42S method... 

A few other useful functions have been spread across various machines: the 75C 
could create vectors of row and column totals (RSUM, CSUM), give an LU 
decomposition (LUFACT), and either transpose or conjugate transpose a complex 
matrix.  (All other machines only do conjugate transpose of a complex matrix.)  
All have the DOT product operation; all but the 71B offer the CROSS product.  
The 75C/71B allowed SHORT elements and INTEGER matrices so matrices did not 
take up as much room.  The 15C, 28S, and 48SX offer a residual function.  The 
42S has a few other nice features: it can insert or delete or swap rows of a 
matrix programmatically, and it has a unit vector function.

As far as programmatically manipulating the individual elements of an array, 
call me old fashion if you want, but the simple array subscripting of BASIC 
still seems simpler than having to create an algebraic expression in RPL.  And 
having to check a flag when using GETI and PUTI on the 28S and 48SX is not as 
nice as just incrementing a pointer to array elements, like on the 42S.  RPL 
still needs a bit of work with arrays.

WINNER: The 75C, 42S, and 48SX all have nice features that the others do not.  
However, there is no clear winner, as each has major shortcomings as well.

                             ----------------------

MEMORY
The 71B wins in the realm of being able to manipulate memory in any way you 
want.  It has built-in PEEK, POKE, and ADDR$.  (Actually the 28S, 42S, and 
48SX probably have these capabilities built into their undocumented 
debuggers.)  Variable arithmetic is provided for in the 42S, 28S, and to a 
greater degree in the 48SX.  The 48SX also has a BYTES function which 
checksums and gives the size of any object.  Both the 71B and 48SX provide 
memory partitions.  Both the 71 and 75 allowed different sizes of variables, 
including INTEGER, SHORT, and REAL.

WINNER: HP-48SX.
 
                             ----------------------

NUMBER THEORY
This category considers the operations that relate to parts of numbers, such 
as modulo, as well as to the IEEE standard of arithmetic with its insistence 
upon the proper handling of rounding, infinity, and exceptional conditions.

To put it succinctly, the 71B was superb, being the only HP handheld to fully 
conform to the IEEE standard.  Unfortunately, all machines since have thrown 
out some of the work put into the 71B.

The 71B offered 3 different types of modulo operations, for example.  The 71B 
offered different rounding modes, and supported NaNs (Not A Number), 
infinities, and infinity arithmetic.  Exceptions were flagged, and could also 
be trapped on.  Denormalized numbers were supported; relational comparisons 
handled unordered relations; signed zeros were supported; several constants 
were built-in to specify machine limits.

Now some of this functionality survives today in the 28S, and to a greater 
degree in the 48SX.  But the loss of the 71B meant the loss of a very special 
machine.  The only other source of truly conforming IEEE machines is Apple's 
Macintosh, and the Macintosh Portable still has a lot of weight to lose to 
become a handheld.

WINNER: Not clear.  The main omissions of NaNs and infinities are missed
since the HP-71B, but the HP-48SX routines are much smaller and faster
as a result.  The precision and proper rounding are maintained in the
HP-48, so it may be a nice compromise.  
                             ----------------------

PRINTING
71 and 75 were good, as they supported real printers.  The toy infrared 
printer supported by the 28S, 42S, and 48SX is neat only because it does not 
need a cord.  Fortunately the 48SX also supports a serial interface, so you 
can use your 48SX to drive your Apple LaserWriter if you want!  The 48SX is 
also great because you can transfer all your information to a Macintosh and 
then use a LaserWriter there, which is what I do.  The 48SX offers a few more 
flags to control various aspects of printing when compared to the 28S.

WINNER: HP-48SX.
 
                             ----------------------

STACK
The 28S has a lot of stack operators, which is necessary due to the language.  
The 42's operators are sufficient for RPN.  Stacks are automatically handled 
internally by the 71 and 75.  The 48SX builds upon the 28S by having an 
interactive "point and shoot" stack mode, which is quite handy.

WINNER: HP-48SX.
 
                             ----------------------

STATISTICS
The 75 had relatively little support for stats, the 71B a bit more, adding 
linear regression.  The 71B curve fitting ROM, however, offered a tremendous 
amount of power.  The 28S introduced several different probability 
distributions, of which the Normal distribution should be on all machines.  
(It was on the original HP-27!)  The 42S has done the best job of generalized 
curve fitting, with its BEST fit function.  The 48SX added the BESTFIT 
function to its statistics functions, and that combined with its graphics 
plotting ability makes it the machine of choice for statistics.  Many new 
types of charts have been added, such as histograms, that make routine 
statistics easy.  It would be nice to add a user specified custom model to the 
set of models to be fitted to your data.

WINNER: For built-in stats, the HP-48SX is the best statistics machine yet.  
Although the 71B Curve Fitting ROM and Statistics ROMs offered more power, 
that same functionality can appear in a HP-48SX ROM someday, and with much 
better graphics.  For stats, the 48 is great.
 
                             ----------------------
STRINGS
By far and away, the HP-75C with I/O ROM is the string manipulation king.  All 
of the other machines provide just a few very simple functions.  The 75 did 
mapping, trimming, underscoring, shifting, finding, replacing, spanning, 
filling, you name it.  These functions were very handy for manipulating text 
and printing it.  This went along well with the 75's record and field 
manipulation tools.  The 48SX could use a String/File/IO ROM.

WINNER: HP-75C. No contest.

                             ----------------------
SYMBOLIC
Only the 28S and 48SX do symbolic manipulation.  The 48 improves upon the 28S 
by doing more symbolic integration, decimal approximation, separating an 
equation, and offering its EquationWriter application for entering formulas, 
fractions, etc.  These capabilities are further strengthened by the ability to 
break trig functions down into their logarithmic basis, and by arbitrary 
expression/pattern matching.  Maple on the Macintosh is a bit faster (well, 
okay; a lot faster), but that is mainly due to hardware, not software.  Still 
the 48SX has grown into a fairly sophisticated symbolic tool.

WINNER: HP-48SX. No contest.
 
                             ----------------------

SYSTEM
This is the miscellaneous category for debugging and beeping and other system 
types of things.  The 75C and 71B were tied here, with a password lock, 
programmatic ways of turning on and off the machine, and with a flexible tone 
generator.  The 48SX needs the password lock.  It does not offer a continuous 
ON function, although for a battery only machine this is no great loss.

WINNER: 70 Series machines.
 
                             ----------------------

TIME
The HP-80 began it all with the ability to do date arithmetic.  Then the HP-45 
added HMS conversions.  Then the HP-55 added lap timers.  (Actually the HP-45 
had a hidden timer.)  Then the HP-41 had its Time Module, incorporating date 
arithmetic, lap timers, and appointment alarms.  It was awkward to schedule 
appointments, but had great lap timers down to 1/100 second.

Then the 75C came along with its superb time and appointment modes.  Simply 
input 7 AM FRI and it would figure out which Friday you meant.  Schedule an 
appointment for the 1st Friday of each month, no problem.  Make it repeat 
every year, no problem.  Its calendar spanned 9999 years.  Yet you could not 
do date and time arithmetic, or do HMS conversions.  And its 9999 programmable 
timers were awkward to use.

Then there was the 60 second disappointment.  The HP-71B had a built-in clock 
but no alarms, timers, or HMS conversions.  It was supposed to get a separate 
Alarm ROM, but it never appeared.

Next the 28S and 42S showed up without built-in clocks, but with HMS 
arithmetic and conversions.  No timers, no alarms, no date arithmetic.

How does the 48SX fare?  Well, not too bad.  It has date arithmetic; it has 
time arithmetic, and HMS conversions.  It has about an 8400 year calendar.  It 
has a real-time clock, even with a continually updated display.  It can return 
the system time to a resolution of 1/8192 of a second.  It has an appointment 
mode with repeating alarms.  It can set and clear alarms from a program, like 
the 41 Time Module.  It certainly is the best overall, but it lacks three 
features:

    Lap timers (for splits like the 41 Time Module)
    Time calibration (EXACT like the 75C/71B)
    True appointment scheduling (like the 75C)

There are programs included in the serial kit to do the first two
things, and a program can be written to do true appointment scheduling,
but it would be nice if all of this was built in.

This last feature is very important.  What it means is that you cannot use the 
48SX to set appointments of the style, "first Friday of the month", "the 15th 
of the month", or even birthdays.  You see, the 48SX only repeats by a fixed 
number of seconds.  It does not know about months.  Yes, it can schedule an 
appointment every so many minutes, hours, days, or weeks, but not months, and 
there lies the tragic flaw.

WINNER: Well, if you have a 75C for appointments and a 41 with Time Module for 
timing events, you have the best of all worlds, except for the fact that you 
have to carry two worlds with you.  The 48SX is the best in one case, but it 
needs improvement. 
    
 
                             ----------------------

SUMMARY
What to take to a desert island?  For computer science, a 16C; for time and 
strings and files, a 75C; for IEEE math, a 71B; for math and stats and 
graphics and programming and symbolics and IO, a 48SX.  If I had to have one 
machine, it would be the 48SX and I would write a custom ROM to improve its 
appointment mode and matrix handling, add IEEE math and a 68000 emulator for 
binary operations, and a bunch of file/string handling routines for handling 
and indexing text.

In the meantime I am deliriously happy with the HP-48SX anyway.  Thanks go to 
Bill Wickes and the whole team for a great machine.  Just think what they'll 
be able to do with 512 KB of ROM...
 
Dan Allen
Apple Computer

bengsig@oracle.nl (Bjorn Engsig) (03/28/90)

Article <39865@apple.Apple.COM> by dan@Apple.COM (Dan Allen) says:
|
|One year ago (almost to the day), I compared the four major portable 
|computational devices that Hewlett-Packard introduced during the 1980s: the 
|HP-75C, HP-71B, the HP-28S, and the HP-41/42S.

First, thanks for the effort put into this article.  Since I own a HP-41 and
a HP-16 I would like to see the one year old article, which seems to include
more 41 comparisons than this one; could somebody mail me a copy of it?

It also seems that there is still no single replacement for my combination
of the 16 for bit-fiddling at work and 41 with Finance module for home
calculations.

Thanks for your help on finding that old article,
-- 
Bjorn Engsig,	Domain:		bengsig@oracle.nl, bengsig@oracle.com
		Path:		uunet!mcsun!orcenl!bengsig