GACUPS is a NeXTstep program for monitoring a Best Fortress
Uninterruptible Power Supply (UPS).  It was written at Gustavus
Adolphus College (GAC) by Max Hailperin <max@nic.gac.edu> on August
the 12th, 1993.  It is in the public domain and utterly without
warranty.  I would, however, appreciate hearing of any improvements.

This program has only been tested under NeXTstep 2.x, not 3.x.

To build the program, you should be able to just say "make".

There are actually two separate programs: GACUPS and GACUPS.daemon

GACUPS.daemon should be run from the /etc/rc.local bootup script on
the NeXT to which the UPS is attached (see below regarding cabling).
It should be given the name of the serial device (/dev/ttya or
/dev/ttyb) as a command-line argument.  Its responsibility is to
handle the communication with the UPS, to provide syslog messages when
there is a power outage, and to provide graceful shutdown when the
battery runs low.  In all these regards it is quite similar to Best's
own "CheckUPS" program.  The only major functional difference is that
it also listens for information requests from the GACUPS program.

GACUPS is a user-interface application, which you might want to
install in /LocalApps, for example.  It can be run on any NeXT on the
network, not just the one on which GACUPS.daemon is running.  It
connects over the network to the GACUPS.daemon in order to get
information about the UPS's status, which it displays.  The first time
you run it you'll need to supply the hostname to which it should
connect, if it isn't the localhost; thereafter it will start up with
the same hostname as the previous use.

Hardware:
  The correct cable wiring is as follows:
      UPS (DB-9 male)      NeXT (Mini DIN-8 male)
      ---------------      ----------------------
           1                      3
           2                      5
           4                      4

Security:
  If you don't make the protection modes on /dev/ttya (or /dev/ttyb;
  whichever you plug the UPS into; I'll assume a) more restrictive,
  then any normal user, even logging in remotely, will be able to
  power your machine down by just sending the right string to that
  serial port.  So, I'd recommend making that device accessible only to
  root.  In fact, I'd go further and do the same for all the various
  flow controlled and dial in/out variations on tty, i.e.
  /dev/{tty{d,},cu}{f,}a
