nungeste@hpspkla.HP.COM (Dick L. Nungester) (08/30/88)
Rush Systems provides an HP-17B/18C/19B/27S/28C/28S/41 Infra-Red output to RS-232 converter for $72.95 as advertised in the EduCALC catalog. It works only on IBM-PC compatibles. The product is called the Hook-uP (where the "u" is a greek "mu"). A drawback of the Hook-uP is that its file output uses the full 8-bit IBM-US symbol set. There is no way to get readable output of just 7-bit printable ASCII characters (making uploading of programs to nets like this very labor intensive). The following program (written in Turbo PASCAL v. 3.0) provides the necessary conversion. It should be easy to translate to other languages if desired. For more information on the Hook-uP (which seems to work well with a Vectra) ask for a catalog from EduCALC or write Rush Systems directly: EduCALC Mail Store Rush Systems 27953 Cabot Rd. P.O. Box 723 Laguna Niguel, CA 92677 Bethel, CT 06801 program read28s; (********************************************************************) (* Translation of HP-28S ".TXT" files produced by Rush Systems "Hook-uP" (* product. Dick Nungester, 08/18/88. The Hook-uP translates from the (* HP-28S character set to the IBM-US symbol set. This translates the (* resulting IBM-US symbol set to all printable ASCII (characters $20 (* through $7E), plus CR and LF. (********************************************************************) var ReadFile :file of char; I :integer; ch :char; str :string[10]; begin if ParamCount = 0 then begin writeln('usage: "read28s <filename>.txt" where <filename>.txt is a'); writeln('file created by Rush Systems "Hook-uP" HP-28S translator.'); end else begin Assign(ReadFile, ParamStr(1)); Reset(ReadFile); for I := 1 to FileSize(ReadFile) do begin read(ReadFile, ch); case Ord(ch) of (* All 256 IBM-US characters are translated into ASCII *) (* characters $20..$7e (all printables) and CR, LF. The *) (* displayable HP-28S characters LF, CR, and $20..$93 are *) (* as shown below. All other 28S characters show "`?`". *) $0a, $0d, $20..$7e : str := ch; (* 28S LF, CR, printables *) $b1 : str := '`grid`'; (* 28S $7f *) (* $20 : str := ch; *) (* 28S $80 *) $f6 : str := '/'; (* 28S $81 *) (* $2a : str := ch; *) (* 28S $82 *) $fb : str := '`root`'; (* 28S $83 *) $9f : str := '`integral`'; (* 28S $84 *) $e4 : str := '`sigma`'; (* 28S $85 *) $10 : str := '`right`'; (* 28S $86 *) $e3 : str := '`pi`'; (* 28S $87 *) $eb : str := '`deriv`'; (* 28S $88 *) $f3 : str := '<='; (* 28S $89 *) $f2 : str := '>='; (* 28S $8a *) (* $23 : str := ch; *) (* 28S $8b *) $e0 : str := '`alpha`'; (* 28S $8c *) $1a : str := '->'; (* 28S $8d *) $1b : str := '<-'; (* 28S $8e *) $e6 : str := '`mu`'; (* 28S $8f *) $c6 : str := '`lf`'; (* 28S $90 *) $f8 : str := '`degrees`'; (* 28S $91 *) $ae : str := '<<'; (* 28S $92 *) $af : str := '>>'; (* 28S $93 *) else str := '`?`'; end; (* case *) write(str); end; close(ReadFile); end; end.