

/* 3b1tools
**
**
**
** Copyright (C) 1988 by Muhammad S. Benten.
**                       benten@boulder.colorado.edu
**
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for any purpose and without fee is hereby granted, provided
** that the above copyright notice appear in all copies and that both that
** copyright notice and this permission notice appear in supporting
** documentation.  This software is provided "as is" without express or
** implied warranty.
**
**
** 
**
*/

This program was originally written to display AT&T demo graphics on 
the Unix-pc.  It was later on modified to display Compact BitMap (CBM)
files, which opened the machine to a huge number of icon editors and
raytracers.  The program close.c triggered the idea of closing windows
to a graphical icon.  This idea was then modified to start with this
program that can be opened to an executing window. It used to be invoked
with "windy" for the purpose of detaching it from the invoking shell.
With the availability of windy's sources I couldn't resist incorporating
the whole shpang as a single tool that I called "pctools". Due to
a name conflict, this was then renamed "3b1tools".  The posting of
the executable of this program provided me with great suggestions
about the user interface and the choice of interaction keys.  With
some head knocking I decided to search for a way to suspend windows.
I then wrote my own primitive keyboard device driver, which I then
realized that it will interfere with both CAPSCTRL loadable
device driver and the "keyfix" programs.  I then though of using
Ditto's kbd driver with minimal changes to support the interception
of the suspend key and passing it to 3b1tools.

The program as it stands now works fine and does most of what
Sun's  suntools (c)  does.  However, some minor problems may
result from the way processes are suspended. This program suspends
processes executing in 3b1tools windows in a trace mode (ptrace(2)).
These processes when resumed will report their status to their
parents through the wait(2) call.  Thus, parent processes that
call wait(2) and only check for signals wakeup otherwise they
assume the child is dead will be executing with their children
when the child is resumed.  In this situation both the parent
and its child will be competing for the keybord input.  If the
child wins this should present no problem, however, if the
parent wins you may want to do something about.


Enjoy using this tool and I'll try to respond to questions and
bug reports. I also would like to hear about any modifications
or enhancement to 3b1tools.  It was my baby, but it has grown
enough to fight its way by itself.

You will need -=> Ford <=- CAPCTRL sources to be able to use the
suspension feature of 3b1tools.  The patches to the file nkbd.c
are included in the file nkbd.c.patch.

** Copyright (C) 1988 by Muhammad S. Benten.
**                       benten@boulder.colorado.edu
**
**
** Permission to use, copy, modify, and distribute this software and its
** documentation for any purpose and without fee is hereby granted, provided
** that the above copyright notice appear in all copies and that both that
** copyright notice and this permission notice appear in supporting
** documentation.  This software is provided "as is" without express or
** implied warranty.
