Luc Pauwels

HP28S Syseval Entries

Eric Toonen

This package consists of 9 files: One of them this text, and 8 files with SYSEVAL addresses:

The Hewlett Packard Scientific Calculators 28-C and 28-S have a function called SYSEVAL. With it, you can start routines of FORTH-alike code, which are in their ROM (or even RAM).

Before you try any of these SYSEVAL addresses, you must read and understand this total text(-file):

First, let me start by telling that these SYSEVALs are found by me, myself and I, and that they are not verified by Hewlett Packard, or someone else, for that matter. Because the total size of the files is about 40Kb, there are bound to be errors (one or two, that is) in them, most of them will be typo's.

If you find an error, or have something other interesting thing you want me to know, you can send it to the address at the end of this text.

The files are ordered numerically, and contain three columns. For example:

0000A    version

^    ^   ^
!    !   !
!    !   +-----This is the name. It is a short, self-explanatory
!    !         name. I hope...
!    !
!    +---------This is a one-character column, it either contains
!     a space, Or it contains a "!". CAUTION: You may
!     NEVER use this sys-
!     eval when there is a "!". This is because it:
!     A) Will crash when it is executed from RAM, or:
!     B) Can not execute in stack-mode, but only in some other
!        mode, like FORM, UNITS or CATALOG, or:
!     C) Returns an object to stack which can not be handled
!        by the display-routines, causing a crash, or:
!     D) Is a structural syseval, like an 'if', 'goto' or
!        the like, and can only be handled in the internal
!        format (*) way.
+--------------This is the number, it is in Hexadecimal, you must type a #
      before them, and maybe a h after them (if the default is not HEX).
at the moment I write this (september 1989) there are three HP28 Calculators: the 1BB and 1CC HP28C and the 2BB HP28S.

If you are not sure about the version of your calculator, you must type

and read the version off your screen.


entries with


The object-types are:
   code           code start (Internally used only)
                  (Cannot be typed in)
   pt             pointer (20 bit) (Cannot be typed in)
   real           real
   double         double precision real (Cannot be typed in)
   complex        (..,..) complex
   doublecomplex  double precision complex (Cannot be typed in)
   byte           byte (8 bit) (Cannot be typed in)
   array          U..e array
   string         ".." string
   binary         #.. binary
   list           .. list
   algebraic      '..' algebraic
   forth          forth start (Internally used only)
                  (Cannot be typed in)
   name           '..' any name
   globalname     '..' name of a global variable
   localname      '..' name of a local variable
   continue       forth end (Internally used only)
                  (Cannot be typed in)
   boolean        false/true (Cannot be typed in)
   o029E1         don't know
   o02A2C         don't know
   o02AB8         don't know
   o02C96         don't know
   o02D5C         don't know


Only the sysevals totally in capital letters (No lowercaseletters/underscores) check their arguments (that is: objecttypes and stack-depth). All the sysevals containing lowercase letters are bound to crash when the arguments are wrong!!

Non-ASCII letters:

Some letters have been converted to ASCII:
INTEGRAL          [SHIFT]-[5]
&                 [SHIFT]-[V] (sigma)
PI                [SHIFT]-[.]
D/DX              [SHIFT]-[6]
=<                [SHIFT]-[S] (lower or equal)
=>                [SHIFT]-[T] (larger or equal)
!=                [SHIFT]-[=] (not equal)
->                [SHIFT]-[U] (right arrow)
o                 [SHIFT]-[W] (degrees)
<<                (open structure)
>>                [SHIFT]-[<<] (close structure)
You might want to read through the sysevals, this will probably make them more understandable. And it's only useful if you know what all those sysevals are able to do...

These SYSEVAL addresses are put in the public domain, and are not to be sold for personal profit. You may not publish them, or a significant part of them, without my written permission. In any case my name and headers must remain above the listing(s), and this text must be with them.

If you want to publish them in a magazine, bulletin-board or public-domain disk(s), just write to me, you will probably receive your permission.

You can reach me via mail, (not computer mail; snailmail), but must keep these things in mind:

BTW: If you have access to USENET, you might want to read comp.sys.handhelds, I will have any bugreports (or typo-reports) posted there.

*) I will not explain the exact working of the HP28's own code, not in this text, and not via personal mail, because I don't want any trouble with HP. These sysevals are intended for USERS only!
Good luck, and ENJOY!