[comp.sys.hp] Programming hp9000/300 keyboards

rjn@hpfcso.HP.COM (Bob Niland) (11/10/89)

re: "I would like to program the 8 grey function keys on the hp98700
     keyboards, without using X windows, hpwm or any such system."

I presume that, based on the subject line and the above sentence, that you
have a Series 300 computer with a 46020A or 46021A keyboard.  If so, the
keyboard interface (HP-HIL) is hosted by the SPU, and not the 98700A/H
graphics processor.  I also have to assume that you are running the HP-UX,
and not BASIC/WS or Pascal/WS operating system.  Further assuming the HP-UX
is a recent revision...

The manual "Facilities for Series 200, 300 and 500", part number 97089-90081
is what you need.  It is shipped with HP-UX, so you should have a copy.

If you are just trying to download to keys f1 thru f8, see the section on
"Series 300 ITE".  It is fairly simple to create a text file containing the
download escape sequences, and 'cat' it to yourself.  My .login script loads
my keys everytime I log in.  Here's a sample keyload.  I have substituted
the character pair ^[ for the raw escape character actually required.  The
trailing ^[A simply suppress LF when the 'cat' is executed.  This works for
ITE (non-window mode), X and HP-Windows.

^[KKey 3: delete trailing blanks^[A
^[&f3k0a8d14L del " "^[:1,$s/ *$//g

If you want to catch raw keystrokes yourself, see "Using HP-HIL Devices".  I
would also suggest ordering a copy of "HP-HIL Technical Reference Manual",
product number 45918A.  Link-level HIL programming is non-trivial.

By the way, if you have either RCS or AMS software support services, you can
direct questions about supported HP products to your regional HP Response
Center.  HP people who respond to netnews questions are contributing the
time to do so.  We not have the full resources of a Response Center at our
disposal, and netnews is a very slow way to get questions answered.

Regards,                                              Hewlett-Packard
Bob Niland      ARPA: rjn%hpfcrjn@hplabs.HP.COM       3404 East Harmony Road
                UUCP: [hplabs|hpfcse]!hpfcla!rjn      Ft Collins CO 80525-9599

This response does not represent the official position of, or statement by,
the Hewlett-Packard Company.  The above data is provided for informational
purposes only.  It is supplied without warranty of any kind.

kev@hpcpbla.HP.COM (Kevin Jones) (11/10/89)

I've appended a program that should set up function keys on most
types of HP terminals (be they genuine or emulated).


-----------------------------------------------------------------
Kevin Jones.                       | Hewlett Packard Ltd,
                                   | Computer Peripherals Bristol,
kev%hpcpbla@hplb.hpl.hp.com        | Filton Road,
                                   | Stoke Gifford,
Tel: 011 44 272 799910 (ext 22351) | Bristol.   BS12 6QZ.
                                   | ENGLAND.
-----------------------------------------------------------------


/******************************************************************/
/*                                                                */
/* FUNCTION KEY PROGRAM                                           */
/* Kevin Jones.  10 November 1989.                                */
/*                                                                */
/* Function key sequence:                                         */
/* <esc>&f<key>k<length of key label>d<length of key function>L   */
/* <key label><key function>                                      */
/*                                                                */
/******************************************************************/

main ()

{ /* Define function key 1 */
  printf ("&f1k8d7LWho Am Iwhoami

  /* Define function key 2 */
  printf ("&f2k11d3LList    Dirls

  /* Define function key 3 */
  printf ("&f3k3d4Lpwdpwd

  /* Define function key 4 */
  printf ("&f4k6d7LLogoutlogout

  /* Define function key 5 */
  printf ("&f5k6d7LLogoutlogout

  /* Define function key 6 */
  printf ("&f6k6d7LLogoutlogout

  /* Define function key 7 */
  printf ("&f7k6d7LLogoutlogout

  /* Define function key 8 */
  printf ("&f8k6d7LLogoutlogout

  /* Update function keys to display. */
  printf ("&jB");
 }