Forums

stand alone

Started by zuffpasc January 28, 2004
Hello!
Thank you for your previous answers!! Now my code is working with
interrupts... but only with debugger because I've made a "DSP 56800
EABI stationery project". Therefore my program can't work in "stand
alone mode".
How is the best way to make my program to run alone, without
debugger??

Is is better that I implement my code with a "SDK stationery project"
who allows the stand alone mode directly, but in this way, the
implementation of interrupts is different than with a simple
assembler vector file... (as I just succeed!! :-))

Or, is it better to modify my EABI stationery project to make it
run "by itself" ??

Thank you in advance!!

regards,

Pascal



I'm using the EABI stationary and it is able to run "standalone". I modified
the reset vectors file to have the RESET and COP, both pointing at the main
routine, and both vectors mirrored to the BOOT section (meaning that the
same RESET and COP vectors are copied in both P:0x0000 and P:0x8000).

By the way, can anyone explain me how does the 5680x boots from reset? does
it fetch the RESET/COP from 0x0000 or 0x8000 ? The user manual is not clear
about this. I found that writing both vectors allows me to run without the
debugger. But which one is the DSP using?

Thanks !
Mariano ----- Original Message -----
From: "zuffpasc" <>
To: <>
Sent: Wednesday, January 28, 2004 3:56 AM
Subject: [motoroladsp] stand alone > Hello!
> Thank you for your previous answers!! Now my code is working with
> interrupts... but only with debugger because I've made a "DSP 56800
> EABI stationery project". Therefore my program can't work in "stand
> alone mode".
> How is the best way to make my program to run alone, without
> debugger??
>
> Is is better that I implement my code with a "SDK stationery project"
> who allows the stand alone mode directly, but in this way, the
> implementation of interrupts is different than with a simple
> assembler vector file... (as I just succeed!! :-))
>
> Or, is it better to modify my EABI stationery project to make it
> run "by itself" ??
>
> Thank you in advance!!
>
> regards,
>
> Pascal > _____________________________________
> Note: If you do a simple "reply" with your email client, only the author
of this message will receive your answer. You need to do a "reply all" if
you want your answer to be distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 >
>




I would suggest you use the SDK stationary. In this way you will get the proper start up code. In addition in the case of the interrupt for the 56F800 product you will also get support for nested interrupts in the SDK interrupt support. You will also get access to other software such as signal processing libraries and a set of macros to perform specific chip functions.
 
The SDK product is being replaced with a product called Processor Expert. The SDK software libraries have been broght forward and put into the Processor Expert product which provides many of the same benefits as the SDK, but with a much improved graphical user interface and support across many more Motorola processors such as the 8 and 16 microcontrollers and the 56800/E hybrid processors. You might also consider using PE which is available in the new CodeWarrior 6.0 product. Thanks.
 
- Bill
 

 

General Business InformationMotorola Internal Use OnlyMotorola Confidential ProprietaryPersonal Memorandum

 

-----Original Message-----
From: zuffpasc [mailto:z...@yahoo.fr]
Sent: Wednesday, January 28, 2004 1:57 AM
To: m...@yahoogroups.com
Subject: [motoroladsp] stand alone

Hello!
Thank you for your previous answers!! Now my code is working with
interrupts... but only with debugger because I've made a "DSP 56800
EABI stationery project". Therefore my program can't work in "stand
alone mode".
How is the best way to make my program to run alone, without
debugger??

Is is better that I implement my code with a "SDK stationery project"
who allows the stand alone mode directly, but in this way, the
implementation of interrupts is different than with a simple
assembler vector file... (as I just succeed!! :-))

Or, is it better to modify my EABI stationery project to make it
run "by itself" ??

Thank you in advance!!

regards,

Pascal



_____________________________________
Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer.  You need to do a "reply all" if you want your answer to be distributed to the entire group.

_____________________________________
About this discussion group:

To Join:  m...@yahoogroups.com

To Post:  m...@yahoogroups.com

To Leave: m...@yahoogroups.com

Archives: http://www.yahoogroups.com/group/motoroladsp

More Groups: http://www.dsprelated.com/groups.php3

Yahoo! Groups Links
To


What do you mean by "are mirrored" ? Are they mirrored by Codewarrior or is
it internal to the DSP circuitry? why is that there are two RESET and COP
vectors? which one is used and when ? The user manual specifies two possible
boot modes: normal and boot. But how do you enter those two different modes?

Thanks
Mariano

----- Original Message -----
From: "Bende Georg" <>
To: "Mariano Filippa" <>;
<>; "zuffpasc" <>
Sent: Wednesday, January 28, 2004 11:29 AM
Subject: AW: [motoroladsp] stand alone The addresses $0000-$0003 are mirrored from the Boot Flash locations
$8000-$8003, their contents are always the same. I hope this explains the
phenomen.

Georg Bende
Softwareentwickler
Abteilung Elektronik
Dr. Fritz Faulhaber GmbH & Co KG
Daimlerstr. 23
71101 Schaich
Tel: +49 7031 638294 > -----Ursprgliche Nachricht-----
> Von: Mariano Filippa [mailto:]
> Gesendet: Mittwoch, 28. Januar 2004 17:05
> An: ; zuffpasc
> Betreff: Re: [motoroladsp] stand alone > I'm using the EABI stationary and it is able to run
> "standalone". I modified
> the reset vectors file to have the RESET and COP, both
> pointing at the main
> routine, and both vectors mirrored to the BOOT section
> (meaning that the
> same RESET and COP vectors are copied in both P:0x0000 and P:0x8000).
>
> By the way, can anyone explain me how does the 5680x boots
> from reset? does
> it fetch the RESET/COP from 0x0000 or 0x8000 ? The user
> manual is not clear
> about this. I found that writing both vectors allows me to
> run without the
> debugger. But which one is the DSP using?
>
> Thanks !
> Mariano > ----- Original Message -----
> From: "zuffpasc" <>
> To: <>
> Sent: Wednesday, January 28, 2004 3:56 AM
> Subject: [motoroladsp] stand alone > > Hello!
> > Thank you for your previous answers!! Now my code is working with
> > interrupts... but only with debugger because I've made a "DSP 56800
> > EABI stationery project". Therefore my program can't work in "stand
> > alone mode".
> > How is the best way to make my program to run alone, without
> > debugger??
> >
> > Is is better that I implement my code with a "SDK
> stationery project"
> > who allows the stand alone mode directly, but in this way, the
> > implementation of interrupts is different than with a simple
> > assembler vector file... (as I just succeed!! :-))
> >
> > Or, is it better to modify my EABI stationery project to make it
> > run "by itself" ??
> >
> > Thank you in advance!!
> >
> > regards,
> >
> > Pascal
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email client,
> only the author
> of this message will receive your answer. You need to do a
> "reply all" if
> you want your answer to be distributed to the entire group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join:
> >
> > To Post:
> >
> > To Leave:
> >
> > Archives: http://www.yahoogroups.com/group/motoroladsp
> >
> > More Groups: http://www.dsprelated.com/groups.php3
> >
> >
> >
> >
> >
> >
> > _____________________________________
> Note: If you do a simple "reply" with your email client, only
> the author of this message will receive your answer. You
> need to do a "reply all" if you want your answer to be
> distributed to the entire group.
>
> _____________________________________
> About this discussion group:
>
> To Join:
>
> To Post:
>
> To Leave:
>
> Archives: http://www.yahoogroups.com/group/motoroladsp
>
> More Groups: http://www.dsprelated.com/groups.php3 >




RE: [motoroladsp] stand alone

"Mirrored" means, when the address p:0x0000 is issued, rather than seeing the value stored in program data flash from PFIU0, the data at p:0x8000 is viewed instead from BFIU.  The more interesting question is what do you see if the BFIU and PFIU or both would be disabled, and external memory is the only program memory available???  Would external memory p:0x0000 actually be read?  I suspect so if in external memory mode.

Jerry.

-----Original Message-----
From: Mariano Filippa [mailto:m...@fibertel.com.ar]
Sent: Wednesday, January 28, 2004 11:03 AM
To: m...@yahoogroups.com; Bende Georg
Subject: Re: [motoroladsp] stand alone


What do you mean by "are mirrored" ? Are they mirrored by Codewarrior or is
it internal to the DSP circuitry? why is that there are two RESET and COP
vectors? which one is used and when ? The user manual specifies two possible
boot modes: normal and boot. But how do you enter those two different modes?

Thanks
Mariano

----- Original Message -----
From: "Bende Georg" <g...@faulhaber.de>
To: "Mariano Filippa" <m...@fibertel.com.ar>;
<m...@yahoogroups.com>; "zuffpasc" <z...@yahoo.fr>
Sent: Wednesday, January 28, 2004 11:29 AM
Subject: AW: [motoroladsp] stand alone


The addresses $0000-$0003 are mirrored from the Boot Flash locations
$8000-$8003, their contents are always the same. I hope this explains the
phenomen.

Georg Bende
Softwareentwickler
Abteilung Elektronik
Dr. Fritz Faulhaber GmbH & Co KG
Daimlerstr. 23
71101 Schaich
Tel: +49 7031 638294


> -----Ursprgliche Nachricht-----
> Von: Mariano Filippa [mailto:m...@fibertel.com.ar]
> Gesendet: Mittwoch, 28. Januar 2004 17:05
> An: m...@yahoogroups.com; zuffpasc
> Betreff: Re: [motoroladsp] stand alone
>
>
> I'm using the EABI stationary and it is able to run
> "standalone". I modified
> the reset vectors file to have the RESET and COP, both
> pointing at the main
> routine, and both vectors mirrored to the BOOT section
> (meaning that the
> same RESET and COP vectors are copied in both P:0x0000 and P:0x8000).
>
> By the way, can anyone explain me how does the 5680x boots
> from reset? does
> it fetch the RESET/COP from 0x0000 or 0x8000 ? The user
> manual is not clear
> about this. I found that writing both vectors allows me to
> run without the
> debugger. But which one is the DSP using?
>
> Thanks !
> Mariano
>
>
> ----- Original Message -----
> From: "zuffpasc" <z...@yahoo.fr>
> To: <m...@yahoogroups.com>
> Sent: Wednesday, January 28, 2004 3:56 AM
> Subject: [motoroladsp] stand alone
>
>
> > Hello!
> > Thank you for your previous answers!! Now my code is working with
> > interrupts... but only with debugger because I've made a "DSP 56800
> > EABI stationery project". Therefore my program can't work in "stand
> > alone mode".
> > How is the best way to make my program to run alone, without
> > debugger??
> >
> > Is is better that I implement my code with a "SDK
> stationery project"
> > who allows the stand alone mode directly, but in this way, the
> > implementation of interrupts is different than with a simple
> > assembler vector file... (as I just succeed!! :-))
> >
> > Or, is it better to modify my EABI stationery project to make it
> > run "by itself" ??
> >
> > Thank you in advance!!
> >
> > regards,
> >
> > Pascal
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email client,
> only the author
> of this message will receive your answer.  You need to do a
> "reply all" if
> you want your answer to be distributed to the entire group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join:  m...@yahoogroups.com
> >
> > To Post:  m...@yahoogroups.com
> >
> > To Leave: m...@yahoogroups.com
> >
> > Archives: http://www.yahoogroups.com/group/motoroladsp
> >
> > More Groups: http://www.dsprelated.com/groups.php3
> >
> >
> >
> > Yahoo! Groups Links
> >
> > To For more information visit http://www.messagelabs.com
________________________________________________________________________


________________________________________________________________________
This email has been scanned for all viruses by the MessageLabs SkyScan
service. For more information visit http://www.messagelabs.com
________________________________________________________________________
I'm sorry about this. It is not clearly explained in either manuals (family
and user).

The DSP fetches the reset vector from where: boot (0x8000) or program
(0x0000) ?

Say I have a Reset (0x0000) that points to my main routine. Somehow the
flash becomes corrupt, and the code performs an illegal operation or you get
a COP reset. Say that the reset vector at 0x0000 becomes corrupt too. My
question is: how the hell does the dsp know that the vector at 0x0000 has
become corrupted and therefore boot from 0x8000 ? or does it always boot
from 0x8000 and you have to always validate the flash contents?

Which vector should I program from codewarrior? 0x0000 or 0x8000 or both?

Thanks again and sorry about this
Mariano ----- Original Message -----
From: "Bende Georg" <>
To: "Mariano Filippa" <>;
<>
Sent: Wednesday, January 28, 2004 12:31 PM
Subject: AW: [motoroladsp] stand alone They are by hardware means mirrored; please see the User's Manual chapter
3.8 (p.131).
"The hardware and COP reset vectors, $0000 and $0002, are mapped into the
Boot Flash at locations $8000 and $8002."
The correct configuration of the vectors secures that in the case of a
program flash corruption the still functional boot flash can take over the
control and initiate a download operation. These two vectors are meant point
to the beginning of the boot flash software which checks the PFLASH contents
(by checksum, CRC or whatsoever) and if it is OK then jumps into the
application; otherwise initiates a download process.
What do you mean by normal and boot operation? In case you don't have any
software in the boot flash, you can direct these two vectors directly to
your main application.

Georg Bende
Softwareentwickler
Abteilung Elektronik
Dr. Fritz Faulhaber GmbH & Co KG
Daimlerstr. 23
71101 Schaich
Tel: +49 7031 638294 > -----Ursprgliche Nachricht-----
> Von: Mariano Filippa [mailto:]
> Gesendet: Mittwoch, 28. Januar 2004 18:03
> An: ; Bende Georg
> Betreff: Re: [motoroladsp] stand alone > What do you mean by "are mirrored" ? Are they mirrored by
> Codewarrior or is
> it internal to the DSP circuitry? why is that there are two
> RESET and COP
> vectors? which one is used and when ? The user manual
> specifies two possible
> boot modes: normal and boot. But how do you enter those two
> different modes?
>
> Thanks
> Mariano
>
> ----- Original Message -----
> From: "Bende Georg" <>
> To: "Mariano Filippa" <>;
> <>; "zuffpasc" <>
> Sent: Wednesday, January 28, 2004 11:29 AM
> Subject: AW: [motoroladsp] stand alone > The addresses $0000-$0003 are mirrored from the Boot Flash locations
> $8000-$8003, their contents are always the same. I hope this
> explains the
> phenomen.
>
> Georg Bende
> Softwareentwickler
> Abteilung Elektronik
> Dr. Fritz Faulhaber GmbH & Co KG
> Daimlerstr. 23
> 71101 Schaich
> Tel: +49 7031 638294 > > -----Ursprgliche Nachricht-----
> > Von: Mariano Filippa [mailto:]
> > Gesendet: Mittwoch, 28. Januar 2004 17:05
> > An: ; zuffpasc
> > Betreff: Re: [motoroladsp] stand alone
> >
> >
> > I'm using the EABI stationary and it is able to run
> > "standalone". I modified
> > the reset vectors file to have the RESET and COP, both
> > pointing at the main
> > routine, and both vectors mirrored to the BOOT section
> > (meaning that the
> > same RESET and COP vectors are copied in both P:0x0000 and
> P:0x8000).
> >
> > By the way, can anyone explain me how does the 5680x boots
> > from reset? does
> > it fetch the RESET/COP from 0x0000 or 0x8000 ? The user
> > manual is not clear
> > about this. I found that writing both vectors allows me to
> > run without the
> > debugger. But which one is the DSP using?
> >
> > Thanks !
> > Mariano
> >
> >
> > ----- Original Message -----
> > From: "zuffpasc" <>
> > To: <>
> > Sent: Wednesday, January 28, 2004 3:56 AM
> > Subject: [motoroladsp] stand alone
> >
> >
> > > Hello!
> > > Thank you for your previous answers!! Now my code is working with
> > > interrupts... but only with debugger because I've made a
> "DSP 56800
> > > EABI stationery project". Therefore my program can't work
> in "stand
> > > alone mode".
> > > How is the best way to make my program to run alone, without
> > > debugger??
> > >
> > > Is is better that I implement my code with a "SDK
> > stationery project"
> > > who allows the stand alone mode directly, but in this way, the
> > > implementation of interrupts is different than with a simple
> > > assembler vector file... (as I just succeed!! :-))
> > >
> > > Or, is it better to modify my EABI stationery project to make it
> > > run "by itself" ??
> > >
> > > Thank you in advance!!
> > >
> > > regards,
> > >
> > > Pascal
> > >
> > >
> > > _____________________________________
> > > Note: If you do a simple "reply" with your email client,
> > only the author
> > of this message will receive your answer. You need to do a
> > "reply all" if
> > you want your answer to be distributed to the entire group.
> > >
> > > _____________________________________
> > > About this discussion group:
> > >
> > > To Join:
> > >
> > > To Post:
> > >
> > > To Leave:
> > >
> > > Archives: http://www.yahoogroups.com/group/motoroladsp
> > >
> > > More Groups: http://www.dsprelated.com/groups.php3
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> >
> >
> > _____________________________________
> > Note: If you do a simple "reply" with your email client, only
> > the author of this message will receive your answer. You
> > need to do a "reply all" if you want your answer to be
> > distributed to the entire group.
> >
> > _____________________________________
> > About this discussion group:
> >
> > To Join:
> >
> > To Post:
> >
> > To Leave:
> >
> > Archives: http://www.yahoogroups.com/group/motoroladsp
> >
> > More Groups: http://www.dsprelated.com/groups.php3
> >
> >
> >
> >
> >
>




I'm clear now. In page 3-30, it says that "A boot flash is provided to
handle device initialization in the event the program flash becomes
corrupted for any reason. The hardware and COP reset vectors, $0000 and
$0002, are mapped into the boot flash at locations $8000 and $8002."

So I understood that there were two possible booting modes for the DSP:
"normal" from 0x000 or "boot" from 0x8000, which is not true.

I was missing :
"...the locations 0x0000 - 0x0004 of PFlash are inaccessible..."
"...First four words of BFlash are mapped into this address space
instead..."
"...where to program your reset vecotr jumps - pick any of the two
possibilities [0x0000 or 0x8000, eventually 0xF800 on 807]"
"... always you'll be programming the BFlash - it's the same piece of memory
on both locations..."

Thanks for the help
Mariano

----- Original Message -----
From: Dobsik Lubomir-RC085C
To: Mariano Filippa
Sent: Wednesday, January 28, 2004 3:33 PM
Subject: RE: [motoroladsp] stand alone Mariano,
If we talk about 56F80x, the locations 0x0000 - 0x0004 of PFlash are
inaccessible. First four words of BFlash are mapped into this address space
instead. Regarding your question where to program your reset vecotr jumps -
pick any of the two possibilities [0x0000 or 0x8000, eventually 0xF800 on
807] (but always you'll be programming the BFlash - it's the same piece of
memory on both locations). Once the reset vectors are corrupted, the only
way to restore is by reprogramming through the JTAG port.
I found this information on page 3-4 of DSP56F80x User Manual.

Kind Regards, Lubomir

-----Original Message-----
From: Mariano Filippa [mailto:]
Sent: 28. ledna 2004 19:15
To: Bende Georg;
Subject: Re: [motoroladsp] stand alone I'm sorry about this. It is not clearly explained in either manuals (family
and user).

The DSP fetches the reset vector from where: boot (0x8000) or program
(0x0000) ?

Say I have a Reset (0x0000) that points to my main routine. Somehow the
flash becomes corrupt, and the code performs an illegal operation or you get
a COP reset. Say that the reset vector at 0x0000 becomes corrupt too. My
question is: how the hell does the dsp know that the vector at 0x0000 has
become corrupted and therefore boot from 0x8000 ? or does it always boot
from 0x8000 and you have to always validate the flash contents?

Which vector should I program from codewarrior? 0x0000 or 0x8000 or both?

Thanks again and sorry about this
Mariano ----- Original Message -----
From: "Bende Georg" <>
To: "Mariano Filippa" <>;
<>
Sent: Wednesday, January 28, 2004 12:31 PM
Subject: AW: [motoroladsp] stand alone They are by hardware means mirrored; please see the User's Manual chapter
3.8 (p.131).
"The hardware and COP reset vectors, $0000 and $0002, are mapped into the
Boot Flash at locations $8000 and $8002."
The correct configuration of the vectors secures that in the case of a
program flash corruption the still functional boot flash can take over the
control and initiate a download operation. These two vectors are meant point
to the beginning of the boot flash software which checks the PFLASH contents
(by checksum, CRC or whatsoever) and if it is OK then jumps into the
application; otherwise initiates a download process.
What do you mean by normal and boot operation? In case you don't have any
software in the boot flash, you can direct these two vectors directly to
your main application.

Georg Bende
Softwareentwickler
Abteilung Elektronik
Dr. Fritz Faulhaber GmbH & Co KG
Daimlerstr. 23
71101 Schaich
Tel: +49 7031 638294 > -----Ursprgliche Nachricht-----
> Von: Mariano Filippa [mailto:]
> Gesendet: Mittwoch, 28. Januar 2004 18:03
> An: ; Bende Georg
> Betreff: Re: [motoroladsp] stand alone > What do you mean by "are mirrored" ? Are they mirrored by
> Codewarrior or is
> it internal to the DSP circuitry? why is that there are two
> RESET and COP
> vectors? which one is used and when ? The user manual
> specifies two possible
> boot modes: normal and boot. But how do you enter those two
> different modes?
>
> Thanks
> Mariano
>
> ----- Original Message -----
> From: "Bende Georg" <>
> To: "Mariano Filippa" <>;
> <>; "zuffpasc" <>
> Sent: Wednesday, January 28, 2004 11:29 AM
> Subject: AW: [motoroladsp] stand alone > The addresses $0000-$0003 are mirrored from the Boot Flash locations
> $8000-$8003, their contents are always the same. I hope this
> explains the
> phenomen.
>
> Georg Bende
> Softwareentwickler
> Abteilung Elektronik
> Dr. Fritz Faulhaber GmbH & Co KG
> Daimlerstr. 23
> 71101 Schaich
> Tel: +49 7031 638294 > > -----Ursprgliche Nachricht-----
> > Von: Mariano Filippa [mailto:]
> > Gesendet: Mittwoch, 28. Januar 2004 17:05
> > An: ; zuffpasc
> > Betreff: Re: [motoroladsp] stand alone
> >
> >
> > I'm using the EABI stationary and it is able to run
> > "standalone". I modified
> > the reset vectors file to have the RESET and COP, both
> > pointing at the main
> > routine, and both vectors mirrored to the BOOT section
> > (meaning that the
> > same RESET and COP vectors are copied in both P:0x0000 and
> P:0x8000).
> >
> > By the way, can anyone explain me how does the 5680x boots
> > from reset? does
> > it fetch the RESET/COP from 0x0000 or 0x8000 ? The user
> > manual is not clear
> > about this. I found that writing both vectors allows me to
> > run without the
> > debugger. But which one is the DSP using?
> >
> > Thanks !
> > Mariano
> >
> >
> > ----- Original Message -----
> > From: "zuffpasc" <>
> > To: <>
> > Sent: Wednesday, January 28, 2004 3:56 AM
> > Subject: [motoroladsp] stand alone
> >
> >
> > > Hello!
> > > Thank you for your previous answers!! Now my code is working with
> > > interrupts... but only with debugger because I've made a
> "DSP 56800
> > > EABI stationery project". Therefore my program can't work
> in "stand
> > > alone mode".
> > > How is the best way to make my program to run alone, without
> > > debugger??
> > >
> > > Is is better that I implement my code with a "SDK
> > stationery project"
> > > who allows the stand alone mode directly, but in this way, the
> > > implementation of interrupts is different than with a simple
> > > assembler vector file... (as I just succeed!! :-))
> > >
> > > Or, is it better to modify my EABI stationery project to make it
> > > run "by itself" ??
> > >
> > > Thank you in advance!!
> > >
> > > regards,
> > >
> > > Pascal
> > >
> > >
> > > _____________________________________
> > > Note: If you do a simple "reply" with your email client,
> > only the author
> > of this message will receive your answer. You need to do a
> > "reply all" if
> > you want your answer to be distributed to the entire group.
> > >
> > > _____________________________________
> > > About this discussion group:
> > >
> > > To Join:
> > >
> > > To Post:
> > >
> > > To Leave:
> > >
> > > Archives: http://www.yahoogroups.com/group/motoroladsp
> > >
> > > More Groups: http://www.dsprelated.com/groups.php3
> > >
> > >
> > >
> > > Yahoo! Groups Links
> > >
> > > To