[comp.realtime] Realtime and UNIX

peter@sugar.hackercorp.com (Peter da Silva) (11/13/89)

This message is only tangentially relevent to the Amiga, and the chain is
likely to veer off into a UNIX vs realtime discussion. I'm directing followups
to comp.realtime, where there is likely to be more light and less heat.

In article <22175@gryphon.COM> bagpiper@pnet02.gryphon.com (Michael Hunter) writes:
> peter@sugar.hackercorp.com (Peter da Silva) writes:
> >UNIX is not real time. Many of the things we now take for granted would just

> Now Now Now...not quite so hasty.  There are extensions to Unix' that make
> doing real time work easier.

I know. I'm in the SCADA business. None of the extensions that make UNIX real
time are generally available. Apparently V.4 will have a preemptable kernel,
and that's a start. But it's not enough: a task can still be indefinitely
deferred by swapping, UNIX floating priorities, etc.

It's possible to build a realtime system that looks like UNIX, but Commodore
does not have the resources to do this.

> I think your following comments are more along
> the lines of Unix has more overhead then Intuit. [I presume you mean AmigaOS]

No. There is more to realtime than performance. You can do realtime work on a
Cosmac 1802 (almost a 4-bit machine) at 500 KHz. A realtime problem is one in
which if an answer is late, it's wrong. Music, for example, is realtime. If
a note is late, you've blown it. I suspect you're thinking of the NeXT here,
which has been used for music demos. Given enough MIPS, a simple enough
problem, and a controlled environment, you can get close enough to realtime
for a canned demo. But you've heard what happens to some poorly written music
programs on the Amiga when you start excersising the blitter? In UNIX, that
sort of thing can go on at arbitrary intervals, and the sorts of things you
have to do to make a program real-time aren't possible.

> which is very true.  But it
> also is more portable (even BSD to ATT) then any set of micro OS.

This is true but irrelevant. A helicopter is more mobile than a car, but it
is also prohibitively expensive for individuals. A real-time UNIX would be
wonderful, but there's nobody who can afford to do one for a low-end machine.

> A curious though that just came to mind is that Ada is suppose to be part of
> the POSIX standard....Ada is (suppose to) react to certain real time stimili
> so I think that implies that POSIX will be able to be used for real time
> tasks...???

ADA is NOT a real-time system. ADA is a language with certain real-time
concepts built in. I've done most of my real-time work in Forth, Fortran,
PL/M, and C. All of these languages can be used for real-time work. But
running under a non-real-time O/S it's just another language.

> Personal gripe: The acronym MIPS has no real hard meaning.  It is a relative
> measurement that is not relative to anything easily tied down....

I'm using commonly accepted VAX MIPS ratings, based on the latest Dhrystone
benchmark. That solid enough for you?
-- 
Peter "Have you hugged your wolf today" da Silva <peter@sugar.hackercorp.com>
`-_-' "IT'S THE TWO GODDAMNED CULTURES AGAIN !*! Bit-brained nerdery on one
 'U`   side, effete fin-de-siecle malaise on the other. And kingdoms of hybrid
       delight abandoned in the middle."  -- burns@latcs1.oz (Jonathan Burns)

ford@amix.commodore.com (Mike "Ford" Ditto) (11/14/89)

In article <4532@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>UNIX is not real time. Many of the things we now take for granted would just
>not be possible under UNIX, or would be unbearably slow. It would kill the
>Amiga as a platform for MIDI (and music in general), animation, games, and
>other real-time applications. Window and screen updates would slow down by a
>factor of 10 (a 25 MHz 80386 under X is less responsive than a 7 MHz 68000
>under Intuition, and it's about a 5 MIPS machine instead of a .7 MIPS one).

Everything in the above paragraph is false.  Peter doesn't seem to
know a trademark from an operating system implementation.  There are
many things commonly called "Unix", and even the ones to which the
trademark actually applies are widely varied and evolve over time.
Apparently Peter has never seen one which meets his expectations of a
real-time system, and has concluded that if he has not seen it, it can
not possibly exist.  Ever.

"Unix", as people (except Peter) seem to be using the term here,
refers to a fairly abstract model of multitasking, and a set of
programmer interfaces to it.  It typically also implies a set of tools
and user interfaces in the form of a set of programs.  None of these
notions have any relation whatsoever to real-time performance.  The
details of process scheduling have never been specified as part of any
standard AT&T Unix release, although there have been many variations
with custom scheduling algorithms designed for particular purposes
such as real-time processing.

"Unix" and "real-time" are orthogonal concepts.  You can have either
one without the other, or neither, or both.  With AmigaDos we
technically have neither, although we are close enough on both sides
to do some good things.  With a particular implementation of Unix,
real-time capability might or might not exist.

In article <4537@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>In article <22175@gryphon.COM> bagpiper@pnet02.gryphon.com (Michael Hunter) writes:
>> Now Now Now...not quite so hasty.  There are extensions to Unix' that make
>> doing real time work easier.
>
>I know. I'm in the SCADA business. None of the extensions that make UNIX real
>time are generally available. Apparently V.4 will have a preemptable kernel,
>and that's a start. But it's not enough: a task can still be indefinitely
>deferred by swapping, UNIX floating priorities, etc.

In System V, even as far back as release 2, processes are only
deferred by swapping if they have not requested to be locked in
physical memory.  SVr4 does not have a preemptable kernel; it has a
real-time process scheduler in its list of scheduling classes from
which a process can choose.  "Unix floating priorities" only apply to
processes in the "time sharing" class, not in the "real-time" class.

>It's possible to build a realtime system that looks like UNIX, but Commodore
>does not have the resources to do this.

If you mean there aren't enough programmers here to implement a
real-time OS from scratch in this decade, you're probably right.  But
Commodore has other resources; for example such a system could be
licensed.  I won't go so far as to claim that SVr4 will meet Peter's
demands for a real-time system because I haven't tried the real-time
support nor even examined it closely, but my point is that the term
"Unix" implies *nothing* about real-time performance.  For someone who
wants a real-time system, they should reject particular OS
implementations which do not meet their needs, not an entire class of
systems with many other appealing properties.

> But you've heard what happens to some poorly written music
>programs on the Amiga when you start excersising the blitter? In UNIX, that
>sort of thing can go on at arbitrary intervals, and the sorts of things you
>have to do to make a program real-time aren't possible.

Yes, some system facilities to control the real-time properties of
processes are necessary.  Unix happens to be known for its ability
(and tendency) to have new factilies added.  SVr4 has them.  (I am
refering to current beta releases, of course, I can't predict what
will actually be released.)
-- 
					-=] Ford [=-

	"Only Nasatine offers	 	(In Real Life:  Mike Ditto)
	 fast-acting Mucanol"		ditto@amix.commodore.com
					uunet!cbmvax!ditto
					ford@kenobi.commodore.com

valentin@cbmvax.UUCP (Valentin Pepelea) (11/14/89)

In article <104@amix.commodore.com> ford@amix.commodore.com (Mike "Ford" Ditto) writes:
>In article <4532@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>UNIX is not real time. Many of the things we now take for granted would just
>>not be possible under UNIX, or would be unbearably slow. It would kill the
>>...
>
>Everything in the above paragraph is false.  Peter doesn't seem to
>know a trademark from an operating system implementation.  There are
>many things commonly called "Unix", and even the ones to which the
>trademark actually applies are widely varied and evolve over time.
>Apparently Peter has never seen one which meets his expectations of a
>real-time system, and has concluded that if he has not seen it, it can
>not possibly exist.  Ever.
>
>"Unix", as people (except Peter) seem to be using the term here,
>refers to a fairly abstract model of multitasking, and a set of
>programmer interfaces to it.  It typically also implies a set of tools
>and user interfaces in the form of a set of programs.  None of these
>notions have any relation whatsoever to real-time performance.  The

I think you are a little unfair to Peter here. It is generally accepted by
the masses that Unix is not a real-time operating system because most
implementations out there do not have any real-time extensions. Whether an
OS bearing the Unix name can be easely implemented to support real-time 
applications is therefore a moot question.

>"Unix" and "real-time" are orthogonal concepts.  You can have either
>one without the other, or neither, or both.

For a Unix wizard like you, having ported Unix to our platform this is exact.
For a guy like me and Peter, this is fresh news.

>With AmigaDos we technically have neither, although we are close enough on 
>both sides to do some good things.

This is highly debatable. I, personally, can guarantee you that any event can be
start to be processed under the Amiga's Exec within 200 microseconds, with an
average of considerably below that. I can also show you how to break that
response time, but then you can do that with any real-time operating system.
It's all a question of how you set your priorities.

Note though, that there are some on the devellopment team who also think the
Exec does not meet precisely the real-time criteria.

>>It's possible to build a realtime system that looks like UNIX, but Commodore
>>does not have the resources to do this.
>
>If you mean there aren't enough programmers here to implement a
>real-time OS from scratch in this decade, you're probably right.  But
>Commodore has other resources; for example such a system could be
>licensed.

The people who came up with OS/9 provide nifty libraries under it that make
the OS look like Unix to the programmer. They already have a 680x0 port of OS/9.
The problem with licencing another real-time OS is that all the current software
would break under it.

Another option though is to simply provide a library which runs under AmigaDOS
and emulates Unix functions as well as it can. I remember that Deven Cervone had
volunteered to do just that. It sound like an interesting university student
project.

Valentin
-- 
"An operating system without memory is     Name:    Valentin Pepelea
 an operating system without virus."       Phone:   (215) 431-9327
                                           UseNet:  cbmvax!valentin@uunet.uu.net
                              - Kodiak     Claimer: these are only bad opinions

emery@aries.mitre.org (David Emery) (11/14/89)

peter@sugar.hackercorp.com (Peter da Silva) writes:

> A curious though that just came to mind is that Ada is suppose to be part of
> the POSIX standard....Ada is (suppose to) react to certain real time stimili
> so I think that implies that POSIX will be able to be used for real time
> tasks...???

A bit of clarification...  Ada is NOT part of POSIX.  There is,
however, an Ada binding to the basic POSIX services (1003.1) currently
under development.  Contact me for more information.  Another part of
POSIX (1003.4) is trying to develop a set of standard real-time
oriented extensions to the basic Unix/POSIX interface.  It is very
likely that we will eventually do an Ada binding to this, too. (Anyone
interested in working on this??)  One goal of this real-time binding
will be that POSIX/real-time threads and Ada tasks are the same thing
to the scheduler, eliminating many of the "who's in charge of
scheduling" problems that have plagued Ada tasking implementations in
a mixed-language environment.

				dave emery
				emery@aries.mitre.org
				P1003.5 (Ada Binding) Tech Editor

peter@ficc.uu.net (Peter da Silva) (11/15/89)

I said:
> >>UNIX is not real time. Many of the things we now take for granted would just
> >>not be possible under UNIX, or would be unbearably slow. It would kill the

> In article <104@amix.commodore.com> ford@amix.commodore.com (Mike "Ford" Ditto) flames:
> >Everything in the above paragraph is false.  Peter doesn't seem to
> >know a trademark from an operating system implementation.  There are

Get off your high horse and listen up.

First of all, I have carried on many debates over the years supporting
the position you're espousing here: that UNIX is a family of operating
systems that share a common program interface etcetera, etcetera, etcetera.

Secondly, insulting someone is not a good way to carry on a discussion.
Even if I were a slimy Atari-ST user, it wouldn't be appropriate, but I've
been a vocal supporter of the Amiga almost since its inception, I've sold
at least 4 of the beasts that I know of, and I've recommended it far and
wide (just ask anyone here). I've written a fairly popular utility and
co-authored a critically acclaimed game, as well as providing a moderated
sources group and contributing a lot of code to the freeware kitty.

In short, I've done my share and more of helping pay your salary.

I'm not an uncritical sycophant, though, and I have a good idea of the sort of
resources Commodore enjoys. They're not enough to properly develop a real-time
UNIX, let alone do this while expanding the Amiga product line in other areas
and maintaining AmigaDOS. And it's not within the apparent goals of the
company to do so, or else AMIX would be based on Mach rather than V.4.

So, in context of what is visible of Commodore's UNIX development, everything
in my article is true. We're talking about what Commodore is likely to do
in future Amiga system software, not what they would do with unlimited
time and resources.

> >"Unix" and "real-time" are orthogonal concepts.  You can have either
> >one without the other, or neither, or both.

Of course. This is intuitively obvious to the most casual observer. But
you can't do it under the V.4 platform Commdoore is working with.

In article <8552@cbmvax.UUCP> valentin@cbmvax.UUCP (Valentin Pepelea) writes:
> For a Unix wizard like you, having ported Unix to our platform this is exact.
> For a guy like me and Peter, this is fresh news.

Actually, it's not "fresh news" to me. Masscomp has a workable realtime
UNIX, though it's tied to their hardware (:-<). Venturcom and others
have done decent real-time patch jobs to UNIX.  Personally I'd rather
see a from-scratch realtime system with a UNIX program interface built
on top of it. Say, starting in the vicinity of Mach...

> >With AmigaDos we technically have neither, although we are close enough on 
> >both sides to do some good things.

It's possible to write programs under AmigaOS that meet very stringent
realtime constraints. It's not always easy: you may have to write interrupt
handlers, run stuff off the copper list, and so on. But it's possible, and
these applications remain well-behaved and don't interfere overly with
other tasks on the system. And often just careful coding *under* the exec
is sufficient.

The only way to achieve this sort of response in a conventional UNIX
system is to put your real-time stuff in the lower half of a device
driver. That's how you get the sort of real-time response things like
dumb streaming-tape boards require.

> >If you mean there aren't enough programmers here to implement a
> >real-time OS from scratch in this decade, you're probably right.

That's what I mean. That's almost exactly what I said.

> Another option though is to simply provide a library which runs under AmigaDOS
> and emulates Unix functions as well as it can. I remember that Deven Cervone
> had volunteered to do just that. It sound like an interesting university
> student project.

Another option I thought of would be to run UNIX tasks as AmigaDOS tasks
with appropriate hooks to go into and out of protected mode when you enter
and leave the UNIX task's context. This would make AmigaOS a real-time
kernel for UNIX.

I once wrote this up at great length and posted it to comp.sys.amiga. It
was met with a resounding thud (though Deven was interested, as I recall).
I think this would be MUCH more promising than writing an AmigaOS emulator
for UNIX.

But, hey, what of the original plan that started this message chain: using
Amiga 500s and 2000s as smart NeWS/X terminals for a 2500UX? This is a
niche that's currently only filled by the Sun/Graphon combination, and
an Amiga is much more capable than the PC-type platform that the Graphon
uses.
-- 
`-_-' Peter da Silva <peter@ficc.uu.net> <peter@sugar.hackercorp.com>.
 'U`  --------------  +1 713 274 5180.
"*Real* wizards don't whine about how they paid their dues"
	-- Quentin Johnson quent@atanasoff.cs.iastate.edu

nigel@modcomp.UUCP (Nigel Gamble) (11/16/89)

in article <104@amix.commodore.com>, ford@amix.commodore.com (Mike "Ford" Ditto) says:
> "Unix" and "real-time" are orthogonal concepts.  You can have either
> one without the other, or neither, or both.  With AmigaDos we
> technically have neither, although we are close enough on both sides
> to do some good things.  With a particular implementation of Unix,
> real-time capability might or might not exist.

A realtime UNIX operating system does exist!  It is called REAL/IX and
it is MODCOMP's port of System V R3.  It runs on MODCOMP's 68030-based
9700 series.  It is fully compatible with the standard Motorola port
of UNIX SVR3 (it will run Motorola UNIX/SYSV68 binaries), but it has
a fully preemptive kernel and all the other necessary attributes  of
a realtime o/s.  (MODCOMP, with its proprietary operating system MAX,
has been in the realtime business for 20 years).

Perhaps Commodore should licence REAL/IX for the Amiga? 
-- 
Nigel Gamble                                    "Everything should be made
MODCOMP an AEG company                           as simple as possible, but
1650 W McNab Rd, Ft Lauderdale, FL 33340-6099    not simpler."  A. Einstein
uunet!modcomp!nigel

nigel@modcomp.UUCP (11/16/89)

in article <104@amix.commodore.com>, ford@amix.commodore.com (Mike "Ford" Ditto) says:
> "Unix" and "real-time" are orthogonal concepts.  You can have either
> one without the other, or neither, or both.  With AmigaDos we
> technically have neither, although we are close enough on both sides
> to do some good things.  With a particular implementation of Unix,
> real-time capability might or might not exist.

A realtime UNIX operating system does exist!  It is called REAL/IX and
it is MODCOMP's port of System V R3.  It runs on MODCOMP's 68030-based
9700 series.  It is fully compatible with the standard Motorola port
of UNIX SVR3 (it will run Motorola UNIX/SYSV68 binaries), but it has
a fully preemptive kernel and all the other necessary attributes  of
a realtime o/s.  (MODCOMP, with its proprietary operating system MAX,
has been in the realtime business for 20 years).

Perhaps Commodore should license REAL/IX for the Amiga? 

Nigel Gamble                                    "Everything should be made
MODCOMP an AEG company                           as simple as possible, but
1650 W McNab Rd, Ft Lauderdale, FL 33340-6099    not simpler."  A. Einstein
uunet!modcomp!nigel

peter@ficc.uu.net (Peter da Silva) (11/17/89)

> peter@sugar.hackercorp.com (Peter da Silva) writes:

Actaully, I didn't. I'm quite aware of the difference between languages,
operating systems, language binding standards, and so on...

Please be more careful with attributions. If you're not sure, leave it
off. And if it doesn't matter who you're flaming, leave it off, like I
just did.
-- 
`-_-' Peter da Silva <peter@ficc.uu.net> <peter@sugar.hackercorp.com>.
 'U`  --------------  +1 713 274 5180.
"vi is bad because it didn't work after I put jelly in my keyboard."
   -- Jeffrey W Percival (jwp@larry.sal.wisc.edu)

doug@xdos.UUCP (Doug Merritt) (11/21/89)

In article <104@amix.commodore.com> ford@amix.commodore.com (Mike "Ford" Ditto) writes:
>If you mean there aren't enough programmers here to implement a
>real-time OS from scratch in this decade, you're probably right.  But
>Commodore has other resources; for example such a system could be
>licensed.

Yes. For instance, Lynx OS (Campbell, CA) looks like it might be a good
candidate.  They rewrote the kernel from scratch to support real time issues,
and it apparently conforms to reasonable Unix standards documents (let's
not get sidetracked into discussing how "standard" such things are) and
claims to run unmodified Unix binaries.

I've felt for years that this is the right way to go; the lack of real
time facilities in (commonly available/standard) Unix's is aggravating in the
extreme even when implementing normal applications. This is usually most
visible to folks who implement games on Unix, or to people who are used
to facilities like that on the Amiga, or even on (gasp!) the IBM PC
(not that it's got "nice" real time facilities, but its sheer primitive
and non-multitasking nature allow people to write real time code).

Disclaimer: all I know about Lynx is what I've read in their own brochures.

>Yes, some system facilities to control the real-time properties of
>processes are necessary.  Unix happens to be known for its ability
>(and tendency) to have new factilies added.  SVr4 has them.

That's great news; I hadn't heard this before. That'll certainly help
us (at Hunter) in creating more responsive applications with less system
overhead. Some of the things we've had to do on Sys V (and even Sun/BSD)
are pretty yucky: "well, it got the job done, but wish there was a better
way!"

Digression:

AmigaDOS, of course, makes most such real time programming problems far
easier to solve. But as has been pointed out numerous times, AmigaDOS has its
own faults. And I'm still trying to figure out how to make my Amiga have as
nice of a programming environment as my Sun. Kind of wierd...in many ways
it has the potential of being better (lack of memory protection aside), but
I dunno...maybe I just haven't gotten the right software together here?

If anyone out there (with solid Sun experience as a point of
comparison) has put together a development environment on their Amy
that they prefer *overall* (not just in little areas), I'd like to hear
about it.
	Doug
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary

srp@modcomp.UUCP (Steve Pietrowicz) (11/21/89)

in article <531@xdos.UUCP>, doug@xdos.UUCP (Doug Merritt) says:
] 
] In article <104@amix.commodore.com> ford@amix.commodore.com (Mike "Ford" Ditto) writes:
]>If you mean there aren't enough programmers here to implement a
]>real-time OS from scratch in this decade, you're probably right.  But
]>Commodore has other resources; for example such a system could be
]>licensed.
] 
] Yes. For instance, Lynx OS (Campbell, CA) looks like it might be a good
] candidate.  They rewrote the kernel from scratch to support real time issues,
] and it apparently conforms to reasonable Unix standards documents (let's
] not get sidetracked into discussing how "standard" such things are) and
] claims to run unmodified Unix binaries.

Unfortunately, a kernel re-written from scratch is much harder to port 
to the platform that Commodore currently has (underline that last part)  :V)
than something that started out as a System V kernel to begin with.  I
don't think Commodore would like to toss everything again either.  Once
was OK, especially since they went to System V 4.0.  Tossing everything
again would be a big big mistake, especially since they would toss 4.0 out
the window to go back a rev.  Better to stick with the standards than the
hybrids.

Besides, there are better realtime solutions available.  :*)

] Doug Merritt		{pyramid,apple}!xdos!doug
] Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary
-- 
SR Pietrowicz    UUCP: ...!uunet!modcomp!srp      CIS: 73047,2313

vik@lynx.uucp (Vikram Sohal) (11/22/89)

In article <104@amix.commodore.com> ford@amix.commodore.com (Mike "Ford" Ditto) writes:
>In article <4532@sugar.hackercorp.com> peter@sugar.hackercorp.com (Peter da Silva) writes:
>>UNIX is not real time. Many of the things we now take for granted would just
>>not be possible under UNIX, or would be unbearably slow. It would kill the
>>Amiga as a platform for MIDI (and music in general), animation, games, and
>>other real-time applications. Window and screen updates would slow down by a
>>factor of 10 (a 25 MHz 80386 under X is less responsive than a 7 MHz 68000
>>under Intuition, and it's about a 5 MIPS machine instead of a .7 MIPS one).

Actually, we are working with someone right now on porting LynxOS 
to the Amiga. LynxOS is a real-time UNIX-compatible OS that was written 
by us completely from scratch for reasons of speed and independence from 
AT&T. It maintains complete compatibility with the most recent SVID, 4.3BSD, 
and POSIX 1003.1 and 1003.4 (when it is approved). The version for the Amiga 
will probably be to a "souped-up" Amiga 2000 with a '030 installed 
(LynxOS requires the MMU on-board the 68030). I hope somebody from Commodore 
is out there listening...A real real-time UNIX on the Amiga might just be 
what Commodore needs to get into a lot of interesting markets that were 
previously unattainable because of AmigaDOS being incompatible with standard
UNIX versions. 

As far as real-time response goes, we have clocked LynxOS with 450 microsecond
worst case task response times on a 20 MHZ 2-wait state 80386 AT (300 and 250
microsecond times are attainable if a a faster CPU with 0-wait state RAM is 
used). The worst case task response time is similar for 68030-based platforms.

------------------------------------------------------------------------------
Vic Sohal                                           "Jim his brain is gone!!!"
Mgr. Tech Marketing
Lynx Real-Time Systems
(408) 370-2233
------------------------------------------------------------------------------

tej@tcom.stc.co.uk (Tej Koonar) (11/24/89)

In article <189@modcomp.UUCP> srp@modcomp.UUCP (Steve Pietrowicz) writes:
#
#Besides, there are better realtime solutions available.  :*)

e.g. ???????

#
#] Doug Merritt		{pyramid,apple}!xdos!doug
#] Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary
#-- 
#SR Pietrowicz    UUCP: ...!uunet!modcomp!srp      CIS: 73047,2313

Tej Koonar

srp@modcomp.UUCP (Steve Pietrowicz) (11/25/89)

in article <2067@bute.tcom.stc.co.uk>, tej@tcom.stc.co.uk (Tej Koonar) says:
> 
> In article <189@modcomp.UUCP> srp@modcomp.UUCP (Steve Pietrowicz) writes:
> #
> #Besides, there are better realtime solutions available.  :*)
> 
> e.g. ???????
> 
> Tej Koonar

e.g. REAL/IX from Modcomp.  

Rather than cross the boundary and talk about our own product (which is against
net policy), send me some e-mail and I'll tell you about it.  That goes for 
anyone who wants this information.  I think you'll be pleasantly surprised that
there are better realtime UNIX solutions available.
-- 
SR Pietrowicz    UUCP: ...!uunet!modcomp!srp      CIS: 73047,2313