HDTenEightyP/NetNews huggingface dataset:
From: comeau@csanta.attmail.com (Greg Comeau)
Subject: Re: C++/G++ programming question
Originator: comeau@well.sf.ca.us
Reply-To: comeau@csanta.attmail.com (Greg Comeau)
Organization: Comeau Computing
Date: Fri, 16 Oct 1992 06:55:38 GMT

In article <1992Oct15.154316.13578@dcs.warwick.ac.uk> crisp@dcs.warwick.ac.uk (CrisP) writes:

No dispute from me there.  Casts should definitely be avoided.
I was merly offering it as a  potential workaround to the bug that
was shown.

- Greg
-- 
         Comeau Computing, 91-34 120th Street, Richmond Hill, NY, 11418
                   Producers of Comeau C++ 3.0 With Templates
          Here:attmail.com!csanta!comeau / BIX:comeau / CIS:72331,3421
	    Voice:718-945-0009 / Fax:718-441-2310 / Prodigy: tshp50a
From: tell@rukbat.cs.unc.edu (Stephen Tell)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: nonrecursive qsort
Date: 7 Oct 92 15:22:36 GMT
Distribution: comp
Organization: The University of North Carolina at Chapel Hill

In article <1992Oct3.4249.17024@dosgate> "jonathan forbes" <jonathan.forbes@canrem.com> writes:
>Does anyone have a non-recursive QuickSort implementation?  (similar to
>qsort())?

The qsort in GNU's glibc packackage uses an explicit stack instead of
doing recursion.  

>I think someone here mentioned one written in 68000 assembly, and I'd
>like to get my hands on it.

To turn this one into 68k assembly, use gcc -S :-) The algorighm with all of
the optimization tweaks is complex enough; I wouldn't trust an assembly one.

>World's Largest PCBOARD System - 416-629-7000/629-7044


-- 
Steve Tell       tell@cs.unc.edu H: 919 968 1792  | #5L Estes Park apts
UNC Chapel Hill Computer Science W: 919 962 1845  | Carrboro NC 27510
Exercise 15.9 [Very Hard] Devise a more orderly way to measure time.  Get
somebody with some authority to agree to adopt it. - P.J. Plauger
From: Wizard0@cup.portal.com (Asher Wizard Feldman)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: What PD DISassemblers are out there?
Date: Mon, 12 Oct 92 20:39:58 PDT
Organization: The Portal System (TM)

>Hello,
>  I'm looking for a good PD disassembler, that works under 2.04, and supports
>the entire 680x0 family.  If you have an FTP site, a path (if you know it)
>would be helpful.

By far, the best program that I have seen in PD for disasembling is
Fmon. You don't just run a file through it, it takes multiple steps,
but it does a whole lot more than just diasembling.. I don't know
if its on any ftp sites, but I can email it to you, if you want.

>
>  Sorry if this is a FAQ!!

If you find any other good ones, please tell me! Thanks alot!

>
>Thanks,
>Joe
>--
>*****************************************************************************
>*  Joe Yurick         California U.S.A.       E-Mail : yurick@vaxr.llnl.gov *
>*** My thoughts & views are rarely my own, much less that of my employer! ***
>*****************************************************************************
>               I think, therefore I am...an Amiga owner!
>

--
+---------------------------------+----------------+-----------------+
|    _   C_o m m o d o_r_e   _    |PORTAL:         | The computer for|
|   /\\  |\\   /| || //  \  /\\   |        Wizard0 | the best of us! |
|  /  \\ | \\ /|| ||(< __  /  \\  |Internet:       +-----------------|
| /--- \\|  \X || || \\_ll/--- \\ |        Wizard0@cup.portal.com    |
|/______________________________\\|__________________________________|
From: mbs@adastra.cvl.va.us (Michael B. Smith)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: more and System()
Distribution: world
X-NewsSoftware: GRn 1.16f (10.11.92) by Mike Schwartz & Michael B. Smith
Date: 14 Oct 92 19:33:15 EDT
Organization: Well, I haven't decided on a name yet...

In article <Bw4685.Kw7@fc.hp.com> koren@fc.hp.com (Steve Koren) writes:
> For various reasons, by the time System() is called, it is impossible
> for me to know the file name that the file handle is attached to - or at
> least, it would place unacceptable restrictions on my program.

Not knowing your application, I can accept that. However, it isn't too late
for you to know whether or not the filehandle is an interactive filehandle
or not. The IsInteractive() dos.library call can help you there.

>   * Why does SYS_Input work for everything else, but not "more"?  I
>     always thought that, since you could redirect the input of "more",
>     that it was somehow internally smart enough to get its user input
>     from some other place such as an IDCMP port.

>   * If I end up executing System("more < myfile"), doesn't that end up
>     having the same effect?  Ie, more gets a different Input()?  If not,
>     why is more a special case?  For other programs, running them and
>     redirecting their input like that has the result of pointing their
>     Input() someplace else.  Does this not also happen for more?  If it
>     does, how is that any different than using SYS_Input?

These are really the same question. And it gets complicated. But consider
this: pr->Cli has a cli_StandardInput (which is Input() when a shell is
entered) as well as a cli_CurrentInput (which is what Input() is right now).

I don't have the source code for "more" but consider that it WILL continue
reading from the actual console input for commands, even when the input is
redirected. From that, I would surmise that it is aware of the difference
between StandardInput and CurrentInput. And I would go out on a limb and
guess that it requires StandardInput to be an interactive filehandle.

I would also point out that _The_AmigaDOS_Manual_ special cases "more"
explicitly in terms of its use with PIPE:.

>   * If I am not willing to create a special case in my code for "more"
>     by leaving SYS_Input alone, is there anything else I can do?

Well, I haven't tried this (and its a little "dirty" IMO), but maybe
something like:

                BPTR saveinput;
                struct Process *me = (struct Process *) FindTask (NULL);

                ...
                saveinput = Input ();
                if (!IsInteractive (saveinput))
                        SelectInput (me->pr_Cli->cli_StandardInput);
                ...
                rslt = System (......);
                ...
                SelectInput (saveinput);
                ...

which is actually a "generalized" special case.   :)

Oh, and finally, if you are using this in a shell, PLEASE use RunCommand()
instead of System().

I hope this is of some help.
--
  //   Michael B. Smith
\X/    mbs@adastra.cvl.va.us  -or-  uunet.uu.net!virginia.edu!adastra!mbs
Newsgroups: comp.sys.amiga.programmer
From: leifv@dhhalden.no (LEIF HUGO VARUM)
Subject: Re: Wolf3D -- programming aspects
Organization: Ostfold College
Date: Wed, 7 Oct 1992 10:17:13 GMT

>> 	Is anyone else out there doing 3D rectangles or real-time texture mapping
>> onto rectangles?  I'd like to talk about doing a Wolf-3D type game.  
Yep, 'The one for Amiga' had an article of a new US Gold(?) game for the 
Amiga/PC with a gfx system similar to Wolf3D, only better. The programmers 
claimed that the Amiga version of the game would have a speed equal to a 386 
at 16 mhz. The Amiga version used a gfx system enabling you to look 
through windows in buildings. One could also scale the output window for 
increased speed.

>> 
>> 	I realize that since we don't have byte-addressed graphics like the IBM,
>> I'll have to do it plane by plane and it'll take a while.  But I'm aiming
>> for 10+ fps on an 030 w/ 16 colors, lores.  I have no idea if it can be done.
>> But I've seen cube-o-matic which blazed on my 3000.
The programmers of the us-gold game said it would run at 8 fps on a standard 
Amiga, more if you used a smaller output window.

BTW one of the Amiga programmers was Paul Woakes (Mercenary, Damocles).


        ///  Leif Hugo Vaarum, Remmen 3A, 1750  HALDEN, NORWAY  
------ /// ----------------------------------------------------------
      ///(Good) Amiga coders do it |s move $dff006,d0 ;This is not a
\\\  ///    50 times per second    |  and #$f00,d0    ;$#& mega demo!
 \\\///                            |  move d0,$dff180 ;This is a   
  \///INet:leifv@sofus.dhhalden.no |  jmp s           ;atto demo!!
From: paulk@terapin.com (Paul Kienitz)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Catching RBUTTON before Intuition
Date: 14 Oct 92 18:59:11 PST
Organization: BBS

> I am trying to implement a Workbench-like selection box (those
> rotating dashed lines you see when you select a group of icons.
 
Commonly known as "ants".
 
> Using the following code, I get a deadlock if, during the
> selection, I hit the right button before I release the left button.
> This is because Intuition seems to receive the event (and tries to
> draw the menus) before I receive it.  Is there any way to avoid
> that behaviour if I really want to cancel the selection (and hence
> to get out of the loop) if the user presses the right button?
 
Have you tried IDCMP_MENUVERIFY?
From: kaarts@ccu.umanitoba.ca (Kenneth John Aarts)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Defect: SAS/C "se" (screen editor)
Date: 12 Oct 92 01:57:58 GMT
Organization: University of Manitoba, Winnipeg, Canada

In <fgd3.02br@nifty.UUCP> fgd3@nifty.UUCP (Fabbian G. Dufoe, III) writes:

>In article <107320004@hpfcso.FC.HP.COM> aoe@hpfcso.FC.HP.COM (Alexander Elkins) writes:
>>There is a defect in SAS/C "se" (screen editor).  To see the defect turn
>>on the auto-indent feature and turn off expand tabs to spaces.  Then type
>>in exactly the following text test case, substituting keystrokes for <return>,
>><tab>, and <backspace>:
>>0123456789<return><tab>abcd<return><backspace>
>>
>>What you see is
>>0123456789
>>        abcd
>>       89
>>       ^cursor is here
>>

>   It's not clear why you think this is defective behavior.  The cursor was
>positioned at the beginning of the text on the previous line, less one space
>for the backspace.  You could argue that the backspace should cancel the
><TAB> character.  It that what you think the program should do?

Of course it should delete the TAB, thats why expand-tab-to-spaces was turned
off.  The more serious problem is the editor deciding to add the 89 in there
by itself though.

Has Alex heard back from Sas yet?

Ken
From: Tony-Preston@cup.portal.com (ANTHONY FRANCIS PRESTON)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Version strings
Date: Fri, 16 Oct 92 09:59:50 PDT
Organization: The Portal System (TM)

The version string has a specific format detailed in the
Amiga Style guide.  I don't have the format handy, but it
usually is done something like:
 
  char version[] = "\0$VER version info";
 
  The exact format of the 'version info' is usually program name
  version and the date.  I am sure someone will post the 'suggested'
  format from the style guide.
Newsgroups: comp.sys.amiga.programmer
From: wille@june.cs.washington.edu (Robert Wille)
Subject: Re: Need RELIABLE assembly blitter routine
Organization: University of Washington Computer Science
Date: Thu, 15 Oct 92 20:17:14 GMT

In article <OAHVENLA.92Oct15204351@lk-hp-12.hut.fi>, oahvenla@snakemail.hut.fi (Osma Ahvenlampi) writes:
|> In article <35823@cbmvax.commodore.com> chrisg@cbmvax.commodore.com (Chris Green) writes:
|> 
|> 	   There's nothing wrong with directly accessing the blitter registers,
|>    providing your friend follows the proper protocol:
|> 
|> 	   OwnBlitter()
|> 	   WaitBlit()
|> 	    poke blitter registers to your hearts content. Be sure to call
|> 	    WaitBlit between blits (you don't have to call it after the last
|> 	    blit).
|> 	   DisownBlitter().
|> 
|> Huh? What about AGA compatibility? This works on ECS mode, I think, but does
|> it work with AGA display modes?
|> BTW: If you're already poking blitter registers, it could be useful to use
|> btst #14,DMACONR instead of WaitBlit().. Saves time, if you're low on it.

This is one of the most frequent lies spread by the network.  
btst #14,DMACONR is NOT equivalent to calling WaitBlit().  In fact, it
isn't even a valid instruction.  The assembler is translating that instruction
for you to one that is valid.  Anyway, use the routines provided by the OS.  
That's what they're for, and they work on all machines.  Substituting this
instruction for a call to WaitBlit() may work on your machine, but not on
another.  Also, you are correct about poking the blitter registers.
It works fine for the ECS, but not for the AGA set.  Unless, of course,
you happen to know how to poke the blitter registers for the AGA chip set.

|> --
|> Osma Ahvenlampi  -  oahvenla@snakemail.hut.fi
|> Disclaimer: Prolonged contact with posts containing my opinions may prove
|> harmful to some individuals. You have been warned, proceed at your own risk.

-- 
Robert

There is evidence that the brain is like a computer.  If that's true, 
then there really aren't any stupid people.  Just people running DOS.
Newsgroups: comp.sys.amiga.programmer
From: bleys@tronsbox.xei.com (Bill Cavanaugh)
Subject: How do I use asterisk as a wildcard?
Organization: Xanadu Enterprises Inc.
Date: Fri, 16 Oct 1992 04:46:50 GMT

I've heard that there's a way in 2.04 to tell the system that * is a
wildcard, and that there are PD programs to do it.  I haven't been
able to find such a program <groan>, so I'm at the point where I'm
willing to write one.  The problem is that I can't see spending all
that money for the programmer's manuals so I can do this simple thing,
and then probably never write another ami-specific line.

Can anybody help me out?  Is there a disk-based distribution of the
example source code like there was with the 1.3 manuals?  I don't have
easy access to ftp, so pointers to sites with the program I'm looking
for won't help.

Please respond in mail, as I can't keep up with this newsgroup and
still earn a living <grin>.

Thanks!

bill
-- 
 *         Bill Cavanaugh       bleys@tronsbox.xei.com          *
 *                                                              *
    "There is nothing more frighful than ignorance in action."  

                           Malcolm X
XY + XX = :-)
From: w_kueting@tron.gun.de (Wolfgang Kueting)
Newsgroups: comp.sys.amiga.programmer
Subject: Re:SAS/C 6.0 in Europe?
Organization: TRON Public Mailbox, Neurath, Germany
Date: Mon, 12 Oct 92 21:14:00 +0100

SUTELA%POLARIS.UTU.FI@USENET.ZER writes on 07.10.92 (19:19)
in <lreAG6x1Td@USENET> under
'SAS/C 6.0 in Europe?':

] Has anyone in Europe received an upgrade notice for SAS/C from the SAS
] Heidelberg office?  According to an article by Doug Walker they should
] have been sent about two weeks ago.  Should I begin worrying :-)?

It comes last Monday (October, 5). I think that all users in other europe
countries get it some days later; the "snail-mail" is not so fast ;-)

] Kari Sutela   sutela@utu.fi

Wolfgang
--
,--- Wolfgang Kueting --.___ Phone  ++49-(0) 29 42 - 73 56 _____,--------.____
_,--- Viehstrasse 15 ----.___ Usenet  w_kueting@tron.gun.de ____,---o--o---.__
__,--- DW-4787 Geseke 1 --.___ Z-Netz  W_KUETING@HSP.ZER ________,----^^----._
___,--- GERMANY -----------.___ FIDO    W_KUETING%2:242/21.111 ____,--`--'--._

-- THE ANSWER V2.03
Newsgroups: comp.sys.amiga.programmer
From: umsmigi0@ccu.umanitoba.ca (Trevor Allan Smigiel)
Subject: Re: How _not_ to share library bases
Organization: University of Manitoba, Winnipeg, Canada
Date: Thu, 8 Oct 1992 00:49:55 GMT

In <heinz.03ug@edohwg.adsp.sub.org> heinz@edohwg.adsp.sub.org (Heinz Wrobel) writes:
>The guy who asked me, complained that there was nothing about this in the
>RKMs. True. Maybe next time... :-(

I read about it just recently in the SAS/C 6.0 docs.  Maybe it was also in
there 5.x docs.

Trevor
From: Dan_E_Babcock@cup.portal.com
Newsgroups: comp.sys.amiga.programmer
Subject: Re: How to drop DTR
Date: Wed,  7 Oct 92 15:45:23 PDT
Organization: The Portal System (TM)

>I have been looking through the RKM: Devices manual and I do not see
>a way to drop DTR.  If someone would tell me how this is accomplished,
>or possibly point me in the right direction, I'd appreciate it.

The standard serial.device has no means of dropping DTR (although, it is
generally simulated by closing and then reopening the device).
3rd party drivers usually support an extended command (specified by ASDG for
their dual serial board). It works as follows:

IO_COMMAND = 16

IO_OFFSET = mask
IO_LENGTH = value
Bit 0 = RTS
Bit 1 = DTR

- Dan
From: peter@cbmvax.commodore.com (Peter Cherna)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: Help!  Window Gadget Flicker Problems.
Date: 9 Oct 92 15:09:38 GMT
Reply-To: peter@cbmvax.commodore.com (Peter Cherna)
Organization: Commodore-Amiga, Inc.  West Chester, PA.

In article <1992Oct8.222859.24078@mnemosyne.cs.du.edu> kmccoy@nyx.cs.du.edu (Kevin McCoy) writes:
>
>After I resize the window, if I use the pull
>down menus, all of the gadgets (including standard window gadgets) refresh
>in a flickering frenzy.   What am I doing that would cause this?

In your GT_EndRefresh() call, be sure you supply TRUE for the second
argument.

     Peter
--
Peter Cherna, User Interface Development Group, Commodore-Amiga, Inc.
{uunet|rutgers}!cbmvax!peter    peter@cbmvax.commodore.com
My opinions do not necessarily represent the opinions of my employer.
"I believe it's bad luck to be superstitious."
Organization: Penn State University
Date: Sun, 11 Oct 1992 01:39:57 EDT
From: Blaise Tarr <BGT101@psuvm.psu.edu>
Newsgroups: comp.sys.amiga.programmer
Subject: Re: gcc2hunk - gcc with ALINK?
 <1992Oct3.235805.20310@bernina.ethz.ch> <92279.005153BGT101@psuvm.psu.edu>
 <vcGNr*D12@mania.hotb.sub.org>

In article <vcGNr*D12@mania.hotb.sub.org>, lkv@mania.hotb.sub.org (Lutz Vieweg)
says:
>
>In article <92279.005153BGT101@psuvm.psu.edu>, Blaise Tarr writes:
>
>> >>Is it possible to convert gcc's object files into standard Amiga object
>> >>files in hunk form?  I would like to call functions written in gcc from
>> >>an assemly language program.
>> >
>> >Yep, it's possible. The converter is called SObjA, and you should be
>
>I'm interested, too - has someone found this tool on any FTP-Server?

I put sobja on amiga.physik.unizh.ch.

       ///  Blaise Tarr
      ///
  \\\///    BGT101@psuvm.psu.edu     "Typically, the subject being copied
   \XX/     tarr@cs.psu.edu           is terminated."   -CSM 101
From: chrisg@cbmvax.commodore.com (Chris Green)
Newsgroups: comp.sys.amiga.programmer
Subject: Re: SAS/C 6.0 and WShell
Date: 8 Oct 92 18:34:13 GMT
Reply-To: chrisg@cbmvax.commodore.com (Chris Green)
Organization: Commodore, West Chester, PA

In article <Bvt0q7.IuC@unx.sas.com> walker@twix.unx.sas.com (Doug Walker) writes:
>I'd like to mention that we do not believe this to be a WShell bug.
>We have found out since my posting that it happens with WShell
>installed, with csh installed, or with the Magic File Requester
>installed.  To perform the compile from the editor buffer, the editor
>must pretend that it is a file system; what's happening is that
>an undocumented packet type is being sent to the "file handle"
>provided by the editor.

	Wouldn't it have much easier to do this simply by redirecting compiler
output through PIPE:?

-- 
*-------------------------------------------*---------------------------*
|Chris Green - Graphics Software Engineer   - chrisg@commodore.COM      f
|                  Commodore-Amiga          - uunet!cbmvax!chrisg       n
|My opinions are my own, and do not         - icantforgettheimpression  o
|necessarily represent those of my employer.- youmadeyouleftaholeinthe  r
|"A screaming comes across the sky..."      - backofmyhead              d
*-------------------------------------------*---------------------------*
Newsgroups: comp.sys.amiga.programmer
From: u894776@bruny.cc.utas.edu.au (James McCoull)
Subject: Re: Help : Devpac
Organization: University of Tasmania, Australia.
Date: Mon, 12 Oct 1992 05:35:20 GMT

cpage@esk.compserv.utas.edu.au (Christopher John Page) writes:


>I recently bought the latest Amiga Format, and in doing so got Devpac 2. So
>over the past week or so I have been converting my own source code from A68k
>format into devpac. However, I have a problem as some of my code requires
>linking (Blink is included on the disk) but as minimal  instructions are
>included with the package I can find now way of using them except by modifying
>the source of the required module and using it as an include file.

Type "blink ?" at the dos prompt, and you should get enough information to
get you going.

>By experimentation I have found that there is an instruction 'link' ,
>but I do not know the required syntax.

I think you are confusing the 680x0 LINK instruction here.

--
u894776@bruny.cc.utas.edu.au
From: mjl@newton.auto.tuwien.ac.at (Martin J. Laubach)
Subject: Re: Make and Comeau C++
Organization: Technical University of Vienna
Date: Tue, 13 Oct 1992 18:03:53 GMT

|>   I am working on a project using Comeau C++ 3.0 and SAS/C 5.10b under 
|> AmigaDOS 2.04.  I have been having trouble using the make utility that 
|> comes with SAS/C (lmk) to compile the various files of the project.  

  Same here. Seems to be an interaction between the ARexx script
the comeau thing uses as frontend, and lmk. I have given up on it.
Both using lmk with comeau and comeau C++ as a whole.

	mjl
From: jedlow@milton.u.washington.edu (Alan Jedlow)
Newsgroups: comp.sys.amiga.programmer
Subject: Sharing include files btw gcc and SAS/C 6.0
Date: 8 Oct 92 17:42:48 GMT
Article-I.D.: u.1992Oct8.174248.17197
Organization: University of Washington, Seattle

I used to just copy the SAS/C header files to the gcc os-include directory.
Now, I'm trying to avoid duplicate directories to save space.  A similar 
situation exists btw emacs' info directory and gcc's info directory.

I thought of forcing directory hard links, but keep reading this is 
"dangerous".

What is the best way ?

thanks,
 alan
From: yip@hpfcso.FC.HP.COM (Tom Yip)
Date: Tue, 6 Oct 1992 20:24:36 GMT
Subject: Using fprintf() in SAS/C 5.10b
Organization: Hewlett-Packard, Fort Collins, CO, USA
Newsgroups: comp.sys.amiga.programmer


I am using SAS/C 5.10b and trying to produce output with the fprintf
function.  Example:

   fprintf (STDERR, "Program Error.\n");

The call crashes the program, and in fact crashes the computer (I have to
reboot).  I'm running this stuff on an A3000 with Workbench 2.0 if that matters.
When I change the fprintf's to ust printf's, the program works fine.
Is there something special I need to know to use fprintf's, or is this
ANOTHER bug in SAS/C?  If it's a bug, has it been fixed in SAS/C 6.0
(I just ordered it).


Opinions expressed in this transmission are entirely those of
alien from Venus.

Newsgroups: comp.sys.amiga.programmer
From: walker@twix.unx.sas.com (Doug Walker)
Subject: Re: A3000 for Programming
Originator: walker@twix.unx.sas.com
Date: Fri, 9 Oct 1992 13:21:42 GMT
Organization: SAS Institute Inc.


In article <3JgcsB2w165w@lakes.trenton.sc.us>, mr_scary@lakes.trenton.sc.us (Chris Hurley) writes:
|> I was hoping to get the opinion of some folks on the A3000 as a 
|> development machine.

Excellent, it's what I use at home and at work.

|>         Specifically, does the MMU offer any assistance in development of 
|> programs in SAS/C (soon to be 6.0)?  Is there any way (via software) that 
|> the A3000 can be made more tolerant of programming errors (read, the 
|> system doesn't go down everytime I make errors) than my A500 is?

Yes, ENFORCER.  Enforcer is the single most important debugging tool
that has been written for the Amiga.  Under SAS/C 6.0, Enforcer is
even more useful, because the CPR debugger can stop your program at
the exact line of the Enforcer hit if you are running it.  Enforcer
can also help prevent crashes by write-protecting certain areas of
memory.  It's still easy to crash the machine, but not quite AS easy.
And of course if it's your program that is crashing the machine,
and you're under the debugger, odds are good that catching that
first enforcer hit and stopping the program will prevent the 
program from running away and zapping your machine...


-- 
  *****
=*|_o_o|\\=====Doug Walker, Software Distiller====== BBS: (919)460-7430 =
 *|. o.| ||                                          1200/2400/9600 Dual
  | o  |//     For all you do, this bug's for you!
  ====== 
usenet: walker@unx.sas.com                            bix: djwalker 
Any opinions expressed are mine, not those of SAS Institute, Inc.