conte@uicsrd.UUCP (02/07/87)
This may be interesting to some newsgroups I don't know about, so please cross post it (with discretion). (*Is* there a comp.sys.ppc or something?) FIRST LOOK: THE NEW HP-28C The HP-28C is HP's newest calculator. It is contained in a clamshell case with the alpha keys in the lid. The display is 4 lines by 23 characters, dot-matrix, with keyboard adjustable contrast. The lefthand lid can be folded back behind the display/calculator half to hold it in the hand, or it can be left spread out on a desk. It measures 7 1/2" X 6 1/4" X 1/2" when spread out. The top row on the display/calculator half has a set of six menu keys and most functions are accessed my selecting a menu and hitting one of the keys. Each menu can have up to four `menu lines', and NEXT and [//] PREV (where [//] is the burgundy shift key) take you through them. I got my HP-29C from Educalc of Laguana Niguel, CA. It took 8 days to get to Illinois. By the way, Elek-Tek of Chicago, IL, sells it for a little less (but I would have had to pay tax....). See the February Spectrum for the adds. Functionally, the 28C is a superset of older HP calculators. It has a dynamic stack, as opposed to 4 levels like most other HP's. Everything is put in a `command line' below the stack, and ENTER puts the command line onto the stack, or, if the command line contained a function, it executes the function. Symbolic equations may be written out using FORTRAN expression syntax, entered on the stack, and operated on. The operations include symbolic differentiation, (limited) symbolic integration, numeric integration, Taylor series (about x=0), and numeric and (limited) symbolic solving for an unknown. (After controlled experimentation I have determined that these features are addictive.) The symbolic integration is limited because it only attempts to integrate polynomials, and does a Taylor series and then integrates anything else (i.e., don't throw away your CRC math tables). The symbolic solving is limited because sometimes it can't isolate a variable. There is an expression editor, but it is non-obvious how to use it. Sort of a poor-man's MACSYMA. It has such interesting operations as, `Merge Right Factors M->', `Distribute to the left <-D', etc. These strange operations appear in the ALGEBRA menu and beep if they are non-applicable to the current cursor position in the current expression. (Usually I get a concert of beeps and after trying to figure out what I am supposed to do (i.e., intelligently), I resort to pushing every key in the menu.) The beep can be turned off via a flag setting (thank God). The menus are: ARRAY The 28C can handle vectors and matrices, including inversion and multiplication. The nicest thing is that you can see the whole matrix at once. It can do dot and cross product of vectors also. The elements of the matrix/vector can be real or complex, too. BINARY The 28C supports HEX/OCT/BIN arithmetic/conversions with a setable wordsize (up to 64 bits). CMPLX Complex numbers are represented as two numbers in parentheses, seperated by a comma. Functions include taking the conjugate, doing rectangular/polar conversions, and arithmetic. STRING There is a string data type (object), delimitted by double quotes. Things on the stack can be made into strings and vice-versa, ascii from/to conversion is provided, as is a POS (search) and lenght function. The alpha keyboard provides upper *and* lower case, a nice touch. LIST A list is a set of other objects, seperated by spaces. A specified number of stack levels can be made into a list, or a list can be exploded into the stack. Lists are used by some functions as parameters. REAL Real numbers have a 12-digit mantissa and a 3-digit (-499 to 499) exponent. They again are shown in the display in FORTRAN (or `E') notation (e.g., 1.23*10^4 is shown as 1.23E4). Oh yes, the 28C has a built-in random number generator with a user-settable seed. STACK There are all types of stack manipulations provided, I won't enumerate them. STORE Storage registers are no longer numbered locations in memory as in other calculators. In the 28C, they are named variables. However, the old HP ST+, ST-, ST*, ST/, etc. are provided. The named variables are nice, the memory is limiting (see below). ALGEBRA The 28C works on expressions, doing things like expanding `(A+B)^2'. I had considerable trouble getting it to expand `(A+B)^5', though, again because of memory problems. Other features include the `FORM editor' that I described earlier, and ways to pick out, or substitute in subexpressions in an expression being edited. PRINT The printer for the 28C is `connected' via an infrared LED, no cables. Since I don't have the printer, I can't say anything about it. Program features are included in three menus: CTRL, BRANCH, and TEST. A program is an object on the stack (!) delimited by `<<' and '>>'. These program objects can be stored in named registers and then executed using the USER menu. Program control functions include single step, halt, abort, etc. Branch functions are the biggest surprise, they include IF/THEN, IF/THEN/ELSE, WHILE, FOR/NEXT, REPEAT/UNTIL, block-oriented Pascal/Algol like functions. The expression for the IF, WHILE, etc., is in RPN, however. These are generated using tests, like flag tests, AND, OR, NOT, ==, etc. There can be arguments to functions (which are also local variables), recursion, etc. Pretty powerful. CATALOG A catalog of functions is provided with a nice touch: you can hit a key and see the arguments the function expects to see on the stack. Not exactly a self-documenting feature because it doesn't tell you what the function does, but it is (really) useful. UNITS The 28C has 120 built-in units defined (from are (=100 m^2) to yr (year, = 31536000 s).) It allows unit conversions between any of these units, has provisions for creating ones own units, and the units can be scanned in a fashion similar to the CATALOG display. MODE Scientific, engineering, and fixed-point notation are provided. As a nice touch, HP (finally) has provided a floating-point format much like TI calculators. Also, one can set degrees/radians mode. Interestingly, gradians are not supported on the 28C, not that I ever used the mode on my 41C. There are three types of ways to recover from errors: COMMAND, UNDO, and LAST. COMMAND recalls the previous contents of the command line before the last ENTER (or a function that executes and ENTER automatically). UNDO restores the entire state of the stack, and LAST puts the elements the last command took off the stack back onto it. All of these can be disabled, since they use memory. TRIG, LOGS Trig and log functions are provided in a menu that is pretty straight forward. I won't elaborate here. SOLV The Solver is a menu and a routine for getting the solution of an equation. The ISOL (isolate) function tries to solve expressions symbolically (but doesn't always succeed, as per the discussion above). The solver, when active, displays the variable names in the menu line. You can either enter a value onto the stack, press the key, and then press EXPR=, to get the value of the expression at that point. Or, you can press [//] and the variable and the 28C does a numerical approximation of the zero. There is also a way to find min/max of equations using the Solver. All very nice. STAT Statistics include MEAN, SDEV, VAR (variance), CORR (correlation coefficient), COV (covariance), LR (linear regression), and PREDV (linear predictive value). A good feature is the sigma- function. It is basically an undo from the sigmaDAT register, and it returns the last value (pair) to the stack. This is a multiple undo. This beats the old method of having to remember the last value entered. USER Any variables (named objects in 28C parlance) appear as keys in the USER menu. If the variables contain a program, the program is executed. If they contain an algebraic expression, it is put onto the stack. This I suppose is the 28C's answer to the 41C's user mode. Named objects are listed in the menu by order of creation, newest first. An ORDER command is provided to let you reorder them however you want (you supply a list of the names in the order you wish them to be put in). PLOT This is cool, the 28C can plot functions and, after it is done, a crosshair appears and can be put on a point and the point digitized. The plot can be zoomed (well, you have to re-plot), and portions of the plot can be selected and plotted using the digitizing function to define two corners of a rectangle. Statistical data can be scatter plotted, and program functions are provided to turn on pixels. The Cursor Menu When the <^> (or something that looks close to that) is pressed, the cursor menu is selected. This allows editing of an expression as it goes into the command line. There is no menu bar, the functions are printed in white above the menu keys (INS, DEL, and four arrow keys), and the whole display is used to display the stack (allowing one to see four levels). EDIT can be used to edit the object in the first level of the stack using the menu keys. When the editing is complete, ENTER puts the new copy back onto the stack. VISIT works like EDIT, but it edits a named object's contents, and when ENTER is pressed the new expression goes back into storage. Some notes/opinions: All in all, the 28C has only one major and serious flaw: its memory capacity. It has only 2K bytes to work with, and that gets real limiting real fast. Sometimes integration or ISOL will fail with `Insufficient Memory', even though the stack was clear before the start, and there are few or no variables in user memory. This is (very needless to say) frustraiting. The manual handwaves it away with the line, "keep in mind that [the 28C] is a *calculator* for interactive problem solving. Its power is in its built-in operations, not in its capacity to store large databases or program libraries." That's a crock and a shame. It means that all the very nice programming constructs can't really be used for anything serious because the resulting program encroaches on the memory the calculator needs. In this day and age of 4Mbit memory chips, and lesser volume but cheap and available memory chips, I don't see why HP blundered here. My guess is that the 28C is implemented on a monolithic custom CMOS VLSI chip and they didn't have any more room to put in more RAM. If this is the case, the 28C is probably never going to come out with more RAM either. Another quam I have is the 28C is totally closed. There are no visible ways to expand it, save the infrared printer port, no ways to save programs to any permanent medium. If there had been, the limited memory wouldn't have been so bad. Now I doubt I will ever program the thing except for curiousity. This is another blunder on HP's part. They should have made the infrared connector an HP-IL connector instead and then all the IL peripherals could have been used with the 28C (or at least the cassette drive!). I guess my recommendation is if you don't expect to do much programming, but you want to take advantage of some of the 28C's capabilities, get it. It's a smoothly engineered calculator with a well thought out operating system. If you own a 41C{,X,V}, though, don't sell it. The 28C doesn't replace the 41. ...no connections with HP, Educalc, Elek-Tek, etc. Tom Conte Center for Supercomputing Research & Development University of Illinois uucp: {ihnp4,seismo,pur-ee,convex}!uiucdcs!uicsrd!conte arpanet: conte%uicsrd@a.cs.uiuc.edu or conte@huey.udel.edu csnet: conte%uicsrd@uiuc.csnet bitnet: conte@uicsrd.csrd.uiuc.edu usnail: 208 W. Oregon, Urbana, IL 61801