Commit Graph

172 Commits

Author SHA1 Message Date
Eivind Eklund
e9161c5082 Handle COMPAT_43 define -> option change. 1997-12-16 18:45:50 +00:00
Eivind Eklund
f9b59e80d5 Whoops - fix this after yesterday's IPX option changes. Also fix
minor buglet when neither bsdcomp, deflate or filter is used.

Pointed out by:	Chris Timmons <skynyrd@opus.cts.cwu.edu>
1997-12-16 18:28:07 +00:00
Kazutaka YOKOTA
02f2e93b60 - The daemon might go off the screen and crashed the system if the
screen size was changed while the screen saver was inactive. Adjust
the positions of the daemon and the text and clip them accordingly
each time.

- Don't call set_border() too often. Some video chip may produce
flicker.

Pointed out by tony@dell.com

- Don't fill the entire screen with blank char every time the saver is
called.  Blank only the part of the screen where the daemon and the
text was previously printed.
1997-10-26 07:35:18 +00:00
Peter Wemm
de2c92bf40 Update Makefile to know about PPP_FILTER and fix the PPP_BSDCOMP and
PPP_DEFLATE options... The code uses #if defined(PPP_DEFLATE) etc, so the
original method of "#define PPP_DEFLATE 0" did not actually disable
anything.  It was not possible to configure out bsdcomp or zlib
compression.  Also, join the settings for PPP_FILTER and NBPFILTER together
since they are related here (can't have PPP_FILTER without NBPFILTER).
1997-10-18 01:37:52 +00:00
Kazutaka YOKOTA
0de89efe5c Make the blank screen saver work with MDA and CGA. The fade and green
savers are also modified so that they behave in the same way as the
blank saver on MDA and CGA, although it's not the way these screen
savers are supposed to work, but fading monitor and tickling green
monitor cannot be done on MDA and CGA, AFAIK.  So, this is the second
best solution.

As of this change, the current state of support of screen savers is
summarized in the following table.

		MDA	CGA	EGA	VGA
blank		OK	OK	NA	OK
daemon		OK	OK	OK	OK
fade		*	*	NA	OK
green		*	*	NA	OK
snake		OK	OK	OK	OK
star		OK	OK	OK	OK

OK: works
NA: doesn't work, the module cannot be loaded for this adapter.
*: behave the same way as the blank saver.

As you can see, EGA is left out for now. But, we can do no better, as
EGA registers cannot be read...

Reviewed by: sos
1997-10-04 04:24:18 +00:00
Peter Wemm
5265258c28 Add example for IPFIREWALL_DEFAULT_TO_ACCEPT 1997-09-10 04:19:07 +00:00
Jonathan Lemon
ad47cbca85 Remove the vm86 LKM. 1997-08-28 14:45:26 +00:00
Bruce Evans
1e1764c216 Removed bogus -I path in CFLAGS. 1997-08-26 13:49:26 +00:00
John-Mark Gurney
eead822a4b make lkm/if_ppp build again.. opt_ppp.h is needed again...
similar fix to one provided in pr4348

Closes PR#4348
1997-08-21 10:17:29 +00:00
John Dyson
9b9d503b21 Add VM86 to the lkm build. 1997-08-09 00:23:07 +00:00
John Dyson
a274bc22a2 Add the VM86 module to the lkm build. 1997-08-09 00:22:31 +00:00
Bruce Evans
88ed4cecd8 Don't use /sys.
Submitted by:	Jeremy Lea <reg@shale.csir.co.za>
1997-08-07 13:23:37 +00:00
Bruce Evans
e5c70c95e1 Fixed bitrot in fpu LKMs. 1997-07-20 08:46:30 +00:00
Kazutaka YOKOTA
ce834215a7 Incorporated lots of fixes and suggestions from Bruce and changes to
facilitate the new saver loading/unloading notification interface
in syscons.

daemon_saver:
- M_NOWAIT was wrong, since NULL returns are not handled.  Just use
  M_WAITOK.
- use `ostype' instead of hard-coded "FreeBSD". Now there is no more
  hard-coded string! (But, who will run this screen saver on other
  OS?!)
- put macros and data declarations in a consistent order.
- -DDEAMON_ONLY and -DSHOW_HOSTNAME options added in the previous commit
  are removed. Options of this kind can go stale and no one notices
  because no one uses them. DEAMON_ONLY is just removed. SHOW_HOSTNAME
  is made default.

snake_saver:
- use `ostype' and `osrelease' as in the daemon saver. The string changes
  slightly - there was a hyphen after "FreeBSD"; now there is a space.
  (It is consistent with uname -a, like the daemon server already is.)

all screen savers:
- Use the new add_scrn_saver()/remove_scrn_saver() in syscons.c
  to declare loading/unloading of a screen saver. Removed reference
  to `current_saver' and the variable `old_saver' as they are not
  necessary anymore.
- The blank, fade and green screen savers manipulate VGA registers.
  Module loading should fail for non-VGA cards.
- `scrn_blanked' is consistently treated as a number/counter rather
  than boolean.
- Some savers touch `scp->start' and `scp->end' to force entire screen
  update when stopping themselves. This is unnecessary now because
  syscons.c takes care of that.
- cleared up many unused or unnecessary #include statements.
- Removed -DLKM from Makefiles.

YOU NEED TO RECOMPILE BOTH SCREEN SAVERS AND KERNEL AS OF THIS CHANGE.
1997-07-15 14:49:39 +00:00
Kazutaka YOKOTA
f4863d1a23 Take the OS release string from the kernel variable `osrelease'
rather than hard-code it in the message text. Optinally include
the host name in the message if SHOW_HOSTNAME is defined.

The origianl idea and sample code submitted by Angelo Turetta
<ATuretta@stylo.it>.
1997-06-24 12:43:18 +00:00
Kazutaka YOKOTA
8800a82c29 Corrected accidental breakage in the last commit.
Pointed out by: Steve Passe, smp@csn.net
1997-05-26 01:02:41 +00:00
David E. O'Brien
6b35fac151 Fixed up ssigala@globalnet.it's "Jumping Daemon" screen saver for < v3.0. 1997-05-25 16:06:29 +00:00
Kazutaka YOKOTA
068eabc6c4 Flip the daemon at the edge of the screen.
Submitted by:	Sandro Sigala, Chris Shenton
1997-05-24 01:44:39 +00:00
Kazutaka YOKOTA
e8adebf242 Introducing "Jumping Daemon" screen saver. This is really cute and
eye-catching :-)

Submitted by:	ssigala@globalnet.it
1997-05-21 14:18:27 +00:00
Kazutaka YOKOTA
f3cdf68921 Introducing "Jumping Daemon" screen saver. This is really cute and
eye-catching :-)

Submitted by:	ssigala@globalnet.it

Also fixed some `extern' declarations in saver.h.
1997-05-21 14:18:00 +00:00
Jordan K. Hubbard
47812774fd Also quiet down the ibcs2 startup (same reason as linux lkm - it screws
the console output).
1997-05-01 06:09:01 +00:00
Jordan K. Hubbard
a5506b985f Merge 1.8.2.1 into -current. 1997-05-01 06:08:14 +00:00
Peter Dufault
0ddf9be1f0 Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types.  Maintain
the current behavior for the external (e.g., modstat) name for DEV,
EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only
#name.  This is a candidate for change and I vote just the name without
the "_mod".

Change the DISPATCH macro to MOD_DISPATCH for consistency with the
other macros.

Add an LKM_ANON #define to eliminate the magic -1 and associated
signed/unsigned warnings.

Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.

Change source in tree to use the new interface.

Reviewed by:	Bruce Evans
1997-04-06 11:14:13 +00:00
Peter Dufault
952d112864 Make MOD_* macros almost consistent:
Use the name argument almost the same in all LKM types.  Maintain
the current behavior for the external (e.g., modstat) name for DEV,
EXEC, and MISC types being #name ## "_mod" and SYCALL and VFS only
#name.  This is a candidate for change and I vote just the name without
the "_mod".

Change the DISPATCH macro to MOD_DISPATCH for consistency with the
other macros.

Add an LKM_ANON #define to eliminate the magic -1 and associated
signed/unsigned warnings.

Add MOD_PRIVATE to support wcd.c's poking around in the lkm structure.

Change source in tree to use the new interface.

Reviewed by:	Bruce Evans
1997-04-06 10:49:22 +00:00
Peter Wemm
4a0f765fbf Revert $FreeBSD$ back to $Id$ 1997-02-22 12:49:29 +00:00
Wolfram Schneider
1c34c7fd77 Make ibcs2 a little bit saver. Add copyright. 1997-02-02 14:40:38 +00:00
Søren Schmidt
b6b9dfa17e Upgrade the kbdio rutines to provide queued kbd & mouse events.
Minor other updates to syscons by me.

Submitted by:	Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
1997-01-15 18:16:32 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Wolfram Schneider
af20215665 Sort cross references. 1997-01-13 00:25:51 +00:00
Mike Pritchard
01d5b65c75 Add a man page for linux(8) (loads the Linux emulator kernel module). 1997-01-10 05:48:50 +00:00
Jordan K. Hubbard
2b2fe33c89 Make snake 3.0-CURRENT here.
There's gotta be a better way of syncronizing our release numbers. :-)
1996-11-11 14:18:40 +00:00
Søren Schmidt
ea5a2b2e00 Prepare kernel to take advantage of "branded" ELF binaries. 1996-10-16 17:51:08 +00:00
Wolfram Schneider
353ef7f927 delete unused variable BINDIR, use new variable MODLOAD/MODUNLOAD 1996-10-06 22:17:16 +00:00
Wolfram Schneider
148531ef1e add forgotten $Id$ 1996-09-22 21:56:57 +00:00
Bruce Evans
88ce2dfc41 Fiexed CFLAGS. Compiling things in the kernel without -O now causes
zillions of warnings about static inline functions because `inline'
is ignored without -O.
1996-09-21 01:51:11 +00:00
Paul Traina
c52fcce8a5 Bannish ATAPI and ATAPI_STATIC #defines to opt_atapi.h. 1996-09-06 23:32:55 +00:00
Bruce Evans
e7fa2650cc `struct linker_set execsw_set' was declared as const and pointers in it
were declared as non-const.  This is backwards (_lkm_exec() changes the
pointers but all the target `struct execsw's are const).  Fixed this
and poisoned related declarations to match and removed the bogus casts
that hid the bug.
1996-09-03 22:52:27 +00:00
Bruce Evans
f6b4ae3c82 Added or restored #include of <machine/md_var.h>. Some declarations
moved from <machine/cpufunc.h> to better places.
1996-07-01 20:29:10 +00:00
Bruce Evans
c11bd94104 Fixed the `machine' link. It pointed to the wrong place, and was created
too late to be used in all cases.  It should probably be created (early)
in bsd.kmod.mk for all LKMs.

Use cc instead of cpp | as for the same reasons as in the kernel makefile.
CFLAGS isn't split up as well as in the kernel makefile, but cc doesn't
pass compiler warning flags to cpp, so there is no need to split it.
1996-06-25 20:13:12 +00:00
Bruce Evans
488ed21e9f Don't add -I/sys to CFLAGS. bsd.kmod.mk adds the correct (relative)
path.
1996-06-23 14:58:14 +00:00
Bruce Evans
e0ddbefc46 Don't claim to be a VFS_LKM - generate vnode_if.h by putting it in SRCS.
Don't add -I/sys to CFLAGS.  bsd.kmod.mk adds the correct (relative)
path.
1996-06-23 14:56:04 +00:00
Bruce Evans
a7d87a6714 Don't (re)define ACTUALLY_LKM_NOT_KERNEL. It wasn't even used by the
joy driver proper.

Don't add -I/sys to CFLAGS.  bsd.kmod.mk adds the correct (relative)
path.
1996-06-23 14:52:20 +00:00
Bruce Evans
5c496ee31e Don't (re)define or use ACTUALLY_LKM_NOT_KERNEL - use the existing
definition of QCAM_MODULE for everything involving LKM'ness.

Makefile:
Don't add -I/sys to CFLAGS.  bsd.kmod.mk adds the correct (relative)
path.
1996-06-23 14:41:55 +00:00
Bruce Evans
7472e2e0f8 Use IPFIREWALL_MODULE instead of ACTUALLY_LKM_NOT_KERNEL to indicate
LKM'ness.  ACTUALLY_LKM_NOT_KERNEL is supposed to be so ugly that it
only gets used until <machine/conf.h> goes away.  bsd.kmod.mk should
define a better-named general macro for this.  Some places use
PSEUDO_LKM.  This is another bad name.

Makefile:
Added IPFIREWALL_VERBOSE_LIMIT option (commented out).
1996-06-23 14:28:02 +00:00
Bruce Evans
a24ed11695 Disabled unusable union lkm. 1996-06-23 13:31:20 +00:00
Andrey A. Chernov
1f013a1f05 Add new parts, kernel not booted in other case 1996-06-18 16:58:44 +00:00
Satoshi Asami
d02dcfb382 Add ccd. 1996-06-12 03:49:35 +00:00
Satoshi Asami
8bbe70f4a7 A Makefile for a ccd lkm. You need to explicitly /sbin/modload it for
now.  Someday I'll add a hook to ccdconfig to do it automatically.
1996-06-12 03:49:15 +00:00
Wolfram Schneider
9fb933075e `mv'' -> `mv -f''
``rm'' -> ``rm -f''
so mv/rm may not ask for confirmation if you are not root
1996-05-07 23:19:49 +00:00
Paul Traina
c3c185a32f Add in qcam module (forgot) 1996-03-24 00:30:38 +00:00
Paul Traina
58d7d1ab6a Add in both parts of the driver. LKM qcam driver now works. 1996-03-21 08:18:26 +00:00
Paul Traina
96caabce70 Bring in support code to make QuickCam driver a LKM.
Stolen from: jmz
1996-03-16 22:06:26 +00:00
Jean-Marc Zucconi
f1d4e1ee10 Add joy to the SUBDIR list. 1996-03-16 01:43:26 +00:00
Jean-Marc Zucconi
83b2a9a81b Build LKM for joystick driver. 1996-03-16 01:35:48 +00:00
Peter Wemm
f07101317f linux_interp now moved into sys/i386/linux/linux_sysvec.c, but still
connected at load and unload time from here.
1996-03-10 22:43:37 +00:00
Søren Schmidt
e1743d02cd First attempt at FreeBSD & Linux ELF support.
Compile and link a new kernel, that will give native ELF support, and
provide the hooks for other ELF interpreters as well.

To make native ELF binaries use John Polstras elf-kit-1.0.1..
For the time being also use his ld-elf.so.1 and put it in
/usr/libexec.

The Linux emulator has been enhanced to also run ELF binaries, it
is however in its very first incarnation.
Just get some Linux ELF libs (Slackware-3.0) and put them in the
prober place (/compat/linux/...).
I've ben able to run all the Slackware-3.0 binaries I've tried
so far.
(No it won't run quake yet :)
1996-03-10 08:42:54 +00:00
Peter Wemm
785d64c46a Update the linux lkm to use the new file list and build routine.
This is a bit of a kludge and needs more work.
1996-03-02 20:00:35 +00:00
Poul-Henning Kamp
d2165a8da6 Make the ipfw LKM work again.
This concludes this round of updates to ipfw, have at it!
1996-02-24 13:41:57 +00:00
Mike Pritchard
097d42f425 Correct some man page cross references and some file
locations.
1996-02-05 17:32:16 +00:00
Rodney W. Grimes
a7ba018ad1 Add missing ${DESTDIR} to afterinstall: target. 1996-01-27 23:57:06 +00:00
Peter Wemm
3b60d376b9 Attempt to fix the procfs LKM after making some of the procfs
code shared with ptrace and "standard" in the config.
1996-01-24 19:34:49 +00:00
Peter Wemm
e5255f3193 No longer generate empty opt_sysvipc.h, and no longer issue -DSYSVSHM etc
for the CFLAGS.  Now, it tracks whatever the booted kernel has rather than
being specifying what features your kernel has at lkm build time.
1996-01-08 05:36:17 +00:00
Peter Wemm
6dd6813a2c No longer generate empty opt_sysvipc.h.. 1996-01-08 05:33:26 +00:00
Peter Wemm
659f340ca4 Detach fpu and gnufpu from Makefile.. These lkm's build (or used to)
but are not quite useable.  (fpu is used by init, and process switch
apparently..)
1996-01-06 23:15:40 +00:00
Andrey A. Chernov
12ff37b733 Add opt_sysvipc.h rules similar as in ibcs2 Makefile
(make fails in old case)
1996-01-06 23:10:25 +00:00
Garrett Wollman
22482bab92 Automatically create an empty opt_sysvipc.h to mimic old option
environment.
1996-01-04 20:34:28 +00:00
Peter Wemm
a5b996a7ec recording cvs-1.6 file death 1995-12-30 19:02:48 +00:00
Søren Schmidt
e896b7b2a3 Added SYSVSHM define 1995-12-29 22:10:49 +00:00
Bruce Evans
7f31c0b610 Reformatted the list of broken modules and added ip_mroute_mod to it. 1995-12-16 21:19:18 +00:00
Poul-Henning Kamp
e531deaeb2 Two x87 emulators as LKMs.
If somebody with the right HW would make the change to /etc/rc to use
this, we could rip MATH_EMULATE from GENERIC...
1995-12-14 08:26:14 +00:00
Garrett Wollman
48991a3684 Delete obnoxious uprintf()s in load/unload procedures. 1995-11-29 20:10:33 +00:00
Joerg Wunsch
d449a67ea9 Add Lyndon's man page.
Closes PR # docs/842

Submitted by:	lyndon@orthanc.com (Lyndon Nerenberg)
1995-11-28 21:12:06 +00:00
Bruce Evans
b3e24f9ce9 Changed the first (name) arg of MOD_DEV(), MOD_EXEC() and MOD_MISC()
from a string to an identifier so that it can be used to generate
declarations and strings.  It's much easier to stringize an identifier
than to identifize a string.  A uniform naming scheme must be used
for the automatically generated things to apply.  This is a feature.

Used the module identifer to generate prototypes for the module load,
unload and stat functions.  Removed the few prototypes for these that
already existed.

Used the module identifier to generate a unique struct tag in MOD_DEV().
This should probably be done for all the MOD_*() macros.

Moved the trailing semicolon from the MOD_*() macro definitions to the
macro invocations that didn't already (bogusly) have it.

Staticized the module load and unload functions.

Added function return types for the module load, unload and stat functions.

lkm/ibcs2/ibcs2.c:
Included <sys/sysproto.h> to get everything prototyped.
Cleaned up #includes.

lkm/ibcs2/ipfw.c:
Cleaned up #includes.

lkm/linux/linux.c:
The module name had to change from "linux_emulator" to "linux_mod" to
be automatically generated.
Cleaned up #includes.

lkm/syscons/*/*_saver.c:
Completed delcarations of function pointers.

sys/i386/isa/atapi.c:
The module name had to change from "atapi" to "atapi_mod" to be
automatically generated.

sys/i386/isa/wcd.c:
Used the fixed MOD_DEV().  This module has two devices and expanded the
macro in the source instead of fixing it.
The module names had to change from "wcd" and "rwcd" to "wcd_mod" and
"rwcd_mod" to be automatically generated.

sys/pccard/pcic.c:
The module name had to change from "pcic" to "pcic_mod" to be
automatically generated.
1995-11-14 07:35:57 +00:00
Bruce Evans
0ea3482342 Replaced nosys() by lkm_nullcmd(). Always call lkm load/unload/stat
functions instead of skipping the call if the function is nosys().
nosys() returned the wrong value as well as having the wrong type.
1995-11-13 07:19:10 +00:00
Peter Wemm
ba886c3099 Update if_ppp lkm to pull in the new files... 1995-10-31 20:54:15 +00:00
Peter Wemm
faafde1bc3 Add extra export symbols for the ATAPI generic interface.
And a couple of minor fiddles in the process..
1995-10-28 17:46:58 +00:00
Peter Wemm
a4991dc20f Reattach atapi and wcd to the lkm Makefile, these compile for me now. 1995-10-28 17:46:03 +00:00
Peter Wemm
6667e247e9 Sorry.. I didn't mean to re-enable wcd yet 1995-10-28 13:28:16 +00:00
Peter Wemm
8e6b01171e Do a pass over the broken LKM's and update them to use the "new"
convention of having their entry point named "<modname>_mod"".
Symorder is enforcing this when the current bsd.kmod.mk is installed.

I've not tested all these, but at least they all compile now.

Reattach them to the makefile.

Note that the change that I made to symorder needs to be compiled and
installed before any LKM's will work - the last version was corrupting
the relocation tables.  A "make world" will to this, but if you
manually run a make on the lkm's you'll need to take care of it by
hand.
1995-10-28 12:35:14 +00:00
Andrey A. Chernov
75b65495cb Temp. disable following modules:
atapi coff ibcs2 ipfw linux syscons wcd
(until they will be fixed)
It allows to build/install other modules from top
1995-10-28 02:49:46 +00:00
Poul-Henning Kamp
3cad1ca223 Revert to default entry point. 1995-10-15 17:00:49 +00:00
Poul-Henning Kamp
5336fc25b1 Only export our 'init' symbol. 1995-10-15 14:33:17 +00:00
David Greenman
ad7823eaf1 atapi and wcd LKMs.
Submitted by:	Serge Vakulenko, <vak@cronyx.ru>
1995-10-14 15:47:29 +00:00
Steven Wallace
17b34e491a Remove socksys modload command from ibcs2 startup shell script. 1995-10-10 08:38:11 +00:00
Steven Wallace
0730bc354b Remove socksys lkm from makefile list. 1995-10-10 08:23:13 +00:00
Steven Wallace
cfa33e1893 Add prototypes and declare function return type in ibcs2.c
Add new files to Makefile.
1995-10-10 08:20:28 +00:00
Peter Wemm
2f78014449 Update the version in the snake saver...
Something similar needs to happen to RELENG_2_1_0 - or better yet, this
should become dynamic...
1995-09-04 03:02:08 +00:00
Poul-Henning Kamp
9187dfc42c Remove my xxxinit hack. It was too gross. 1995-08-25 09:49:20 +00:00
Poul-Henning Kamp
f37f4df155 pcic lkm for the pccard stuff. 1995-08-24 09:06:24 +00:00
Søren Schmidt
c21dee177f First incarnation of our Linux emulator or rather compatibility code.
This first shot only incorporaties so much functionality that DOOM
can run (the X version), signal handling is VERY weak, so is many
other things. But it meets my milestone number one (you guessed it
- running DOOM).

Uses /compat/linux as prefix for loading shared libs, so it won't
conflict with our own libs.

Kernel must be compiled with "options COMPAT_LINUX" for this to work.
1995-06-25 17:32:43 +00:00
Garrett Wollman
ca78a2a8bb I was wrong. I thought that the ip_mroute lkm would still compile, but it
seems to have stopped working on me.  Disable it until I get a chance to
fix it.
1995-06-13 20:51:13 +00:00
Rodney W. Grimes
5ebc7e6281 Remove trailing whitespace. 1995-05-30 06:12:45 +00:00
Søren Schmidt
290f5f54ee Changed relase number in snake_saver.c from 2.1 to 2.0.5 1995-05-16 19:10:11 +00:00
Bruce Evans
9f83fbf2e7 Fix declaration of palette[] so that fade saver doesn't cause panics. 1995-05-14 12:54:30 +00:00
Andreas Schulz
5d2cacaa26 Put vnode_if.h and vnode_if.c into CLEANFILES that are automatically
generated. Should this lkm set VFS_LKM ?
1995-04-15 17:36:53 +00:00
Søren Schmidt
1fe226ce8b Update to new screen update method. 1995-03-30 15:10:20 +00:00
Garrett Wollman
cea0f2a090 Forgot pppcompress.c in PPP module. 1995-03-20 19:33:35 +00:00
Garrett Wollman
3432f42658 Forgot slcompress.c in SLIP module. 1995-03-20 19:31:47 +00:00
Garrett Wollman
f065639f29 The discard, tunnel, SLIP, and PPP network interface pseudo-devices
are now dynamically loadable.  It doesn't make sense to do the same
for the loopback.
1995-03-20 19:25:49 +00:00
Nate Williams
00076281bf Make in lkm/syscons fails due to missing include for apm stuff.
Submitted by:	John Capo <jc@irbs.com> and John Hay <jhay@mikom.csir.co.za>
1995-03-03 18:38:00 +00:00