[comp.sys.handhelds] Undocumented HP48SX features

ard@pva.bristol.ac.uk (Tony Duell) (08/25/90)

There has been much talk on the net about bugs in various versions of the
HP48SX ROM. However, there are several features and commands that are not
documented, but are certainly not bugs. Here are a few, many of which I have
not seen mentioned before on Comp.sys.handhelds.

1) The PC kermit REMOTE HOST command works on the HP48 in server mode.
To try it out.
a) connect your HP48 to the PC with a serial cable or IR link
b) boot up PC-Kermit
c) set baud rates, parity etc on the HP48 and PC
d) Press server (I/O menu) on the HP48
e) Type REMOTE HOST followed by an HP48 command (which must be in upper case)
   on the PC. 
The HP48 will execute the command and transmit a stack display back to the 
PC screen

2) It is possible to receive a file as a string, without the HP48 attempting
to interpret it. This can be useful if you want to transfer a text file for
example. Here's how to do it
a) Link the HP48 to the PC, load PC-Kermit and set up the baud rate etc
b) Type SERVER on the PC
c) Put the following on the HP48 stack
    2:          "filename"
    1:                 "R"
where level 2 contains the filename to transfer as a string
d) Press PCKT on the HP48 (I/O menu page 2)
The file will be transferred and left as a string in level 1 of the stack.

3) there is a command \->TRG on the EQUATION RULES menu for the EXP(X) function
which is not in the manual. It converts EXP(X) into COS(X/i)+i*SIN(X/i)

4) Just as on the HP28C/S, ? is a valid unit, of different dimensions to all
other units, and so may be used as a base for user units (e.g. of money)

5) Further to this, _Any_ string may be attached to a number as a unit. Commands
that do not check for dimensional consistency (e.g. *) work correctly, but 
those that do check units give an 'Invalid Unit' error

6) Infra-Red communications between machines are at 2400 baud, independent of
the I/O setup menu

7) The Infra-Red port has 2 distinct formats, as follows:
a) When used as a printer port (Flag -34 clear), the data is sent as 
12-bit error correcting code, as explained on Comp.sys.handhelds previously
b) When used for data transmission, the data is sent as 8-bits, in identical
format to the RS232 port and with 1 start bit. A mark (1) is send as a 416uS
pause, and a Space (0) as 208uS pause followed by 208uS I/R pulse (See my
message on serial cables).

8) Flag -34 is mis-documented in the manual. Here is the correct definition
clear : send printer data to the I/R port in 12-bit HP printer format
set   : send printer data to the device specified by flag -33, in
        8-bit (standard serial) format.
Thus, if both flags -33 and -34 are set, the printer data is sent to the
I/R port in a format similar to that used for the kermit transmissions
(My I/R decoder can thus send that data to a PC).

--
Tony Duell, Particle Physics, H.H.Wills Physics Labs, Bristol University,
Tyndall Avenue, Bristol, England