No such thing as a tristated (hi-Z) input !

Go To Last Post
32 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A very confusing misconception is floating around out there on the ether. As the subject line says, there can exist no such thing as a tristated input. Only outputs can be tristated on or off.

Just because a port pin's DDRn bit is written as a '0' does not necessarily make the pin an act as an input. If the PORTn bit *also* has a '1' written to it, then the pin will be a tristated-off *output* pin ! Kudos to the chip designers who eliminated the need for a whole separate tristate control register ! They designed each pin so that writing a '1' to a pin that is configured to be an input is used to control the output tristate option. Very clever ! After all, writing *data* to an input pin makes no sense at all, but writing *control data* to that input PORTn pin is very useful and is usually required.

Other much glossed-over points: A pin *always* has the internal pullup resistor attached to it despite its particular configuration. There is no way to disconnect it ! Additionally, an input pin can not have a "default state". Only outputs can have that. When a pin configured to be a tristated-OFF output is "read", of course the data comes back as a '1' - the input pullup resistor attached to the pin forces it to be read as a '1' value. Similarly, reading in data from a tristated-OFF output pin doesn't make sense, either. (Reading in data from a tristated-ON output pin does have its uses. That tells you what was last written to the pin.)

So a revised pin configuration chart looks like this:

When these values are *written* to these registers:

DDRn    PORTn    Pin Configuration
----    -----    -----------------
 0        0      An Input with a pullup resistor.
                 Subsequent PORTn reads will reflect 
                 the external logic level being applied
                 to the pin.

 0        1      An Output which is tristated OFF.
                 (AKA in the "hi-Z" output state)

 1        0      An output pin with the value of '0'
                 being applied to the external world
                 by the uC.

 1        1      An output pin with the value of '1'
                 being applied to the external world
                 by the uC.

So, configuring a pin to be an output is easy: Simply write a '1' to its DDRn. Subsequent writes to its PORTn will force that data to be put on the pin's output.

*Properly* configuring a pin for input requires 2 (two) register configuration writes: Write a '0' to DDRn to set the data direction to "input". Also be sure to write a '0' to PORTn to make sure that the pin truly operates as an input and not a tristated output. Not doing this 2nd pin configuration write could easily ruin your day !
:wink:

Last Edited: Wed. Oct 21, 2009 - 04:57 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Nope. You got the DDR=0 case the wrong way. When DDR=0, PORT=1 turns on a weak pull-up and PORT=0 turns off a weak pull up, so that is the high impedance state.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

hmmm I wonder what's the purpose of this thread.. :?

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I don't get it either, but it was still wrong :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

Only outputs can be tristated on or off.

Rubbish. Tristate is a line that neither drives a line to 1 nor 0. How that's achieved inside the device that presents it is completely irrelevant. As it happens, in an AVR to make a line that does not drive you set DDR=0 and PORT=0

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:
hmmm I wonder what's the purpose of this thread.. :?

I think you mean "what's the floating point of this thread".
Or should that be tri-state(Philadelphia tri-state, obviously)?

Four legs good, two legs bad, three legs stable.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Not really a GCC post, would be better under General electronics
I would strongly disagree that it requires two writes to properly configure an input. Writing a 0 (or leaving it in reset default) will cause the input to be an input, albeit a high impedance input.
If you drive this input with a signal which a source which has a low output impedance and swings between Vss & Vdd, it will work perfectly.

If however, you drive it with a source which has
a high impedance in one or other of its states,
or it does not fully swing between Vss & Vdd, then you must use a pull-up or a pull-down resistor.
ATMEL have decided to implement weak pull-ups in the manner you suggest.
Devices that require pull-ups (amongst many others) are a SPST switch, LM339 comparitor, some IR detectors DS1820/21 Thermometer IC's.
If the weak internal pull-ups are not sufficient , then external pull up's cand be used.

If your circuit requires pull down resistors, you should definitily NOT be enabling the internal pull-ups, as you will be creating a invalid LOGIC condition

Many digital devices have inputsthat float in a tri-state condition Ie. Not a proper LOGIC signal, but an undefined HiZ condition (which is very sensitive to noise)
It probably makes sense, to write 1 to PORT register of unused inputs.

I agree that inputs are not referred to a Tri-State inputs.

Charles Darwin, Lord Kelvin & Murphy are always lurking about!
Lee -.-
Riddle me this...How did the serpent move around before the fall?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Probably someone using the Proteus simulator! :P

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Not to hijack this thread, but the answer to my question might shed some light on tristate properties.

I have a chain of ATTiny45's monitoring a lithium battery with cell voltages 2.5-3.9 volts. Each one has its Vcc as the ground of the next. For voltage reporting a cascade of resets propagates up the line. Each reset pin has a 10K pullup and 10K connection to a pin on a lower '45. The lower '45 grounds this pin for 500 microseconds to reset the next one up.

So the reset pin sees Vcc or ground, not a problem, but the output pin can see Vcc*2 through 25K. Although the data sheet says maximum allowed voltage is Vcc+0.5, this has worked for several hundred hours x 24 ATTinys.

The output pin is tristated except for the pulse to ground, and the Tiny's spend most of the time in power-down sleep.

So, two questions:

1) Although the data sheet doesn't say what it is, there must be a "safe" reverse current allowed through a tristated input pin, seemingly at least my ~150 microamps. Or is reverse current zero until the driver FET's are destroyed?

2) When sending the output pulse, would it be better to set the output to ground and then enable the pin, or enable the pin and then set the output to ground? The former would switch 2*Vcc to ground (through 20K), the latter would cause a ~2us reverse Vcc voltage across the high side driver.

Question (2) has a very faint relevance to gcc :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Note that your question is not related to "tristate" but is rather about the protection diodes placed on the I/O pins of the AVR. This is device specific, and cannot be applied as a general rule for any IC.

Answer 1: is not in the datasheet, but can be found in app note "AVR182: Zero Cross Detector". It pertains to how much current the clamping diodes can handle, and the app note suggests that it should not exceed 1mA. (the lower the better)

Answer 2: Best to operate in an open collector manner, that is never output a high on the pin. Not a good idea to ever output a high, or enable the internal pull-up in this case.

Personally I would use proper isolators on the shared links, instead of playing in the margins like this. While it may work now, and even for a while, it is beyond the maximum limits, and could cause the part to fail at any time.

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My bad ! I forgot to state that I am describing using IO pins used as "general purpose" IO and not "Special Function" IO.

Also, pull-ups *can* be directly disabled in only 1 way: By writing a '1' to the PUD bit ( PullUp Disable) bit in the SFIOR register. (*Special Function* IO Register). But, I'm not discussing Special Function IO use ! This register is never required to be changed if the user does not use Special Function IO. Therefore the pullups will *always* be enabled in general purpose IO mode.

The PUD bit power-up default value is set to a '0' which means pull-ups on all IO pins are *always* enabled, even if the pin is configured to be an output. Page 52. bottom: "The [Special Function tristate] overriding signals are generated internally in the module having the alternate function." This means if the Alternate Function is *not* enabled, then the user has *no control* over the pullup resistors' tristate. The pull-up will always be connected.

I am using the ATMEGA16 as the example. See pages 48 thru 54 of its data sheet.

Jepael: Nope. I did get the DDR=0 case the right way for general IO functionality. When DDR=0 and PORT=1, these do *not* turn on a weak pull-up. They are always connected. The pull-ups can only be disabled when using Special Purpose IO functions, and this can happen only indirectly by enabling Special Functions. The input tristate disable can only be activated by a Special Function (and SLEEP mode) and not by any direct programming. See Fig. 26 on page 52. If a Special Function is not enabled then programming PUD in SFIOR will have absolutely no effect.

js: The purpose of this thread is to help beginners learn how to program AVR IO in a good (reliable and repeatable) way. This board is a *FORUM* and is not just "question-and-answers". You should already know this and not stoop to adding a snide reply.

Jepal: I'm sorry you didn't get it the first time around. But, no, it is not "still wrong". I hope the further explanations here help clarify what I am trying to get across. Read the manual !!! It's all right there, but the info is somewhat complicated and has to be analyzed carefully.

clawson: I should have stated: "Only outputs can be *directly programmed* to be tristated on or off. Input tristates and pull-up tristates *can not be directly enabled*. Only Special Function modes can allow that.

"As it happens [sic], in an AVR to make a line that does not drive you set DDR=0 and PORT=0."

Rubbish ! If DDR=0 and PORT=1 then the PULL-UP will weakly drive the input pin. This is critically important if the pin is tied to a single pole switch whose other side is tied to ground.

John A Brown: Very cute, but, do you have a thought that is actually intelligent to add to this thread ?

LDEVRIES: I used the word "properly" because it may be very difficult to know or remember if the pin configuration registers are still in their power-up default state. By making 2 writes each time to configure a pin as an input it is guaranteed that the input will behave exactly as you want it to. This is the safest method a beginner can use.

Inputs are always "high impedance" even when the (very weak) pull-up resistors are connected (as by power-up default). This is the most important electrical characteristic common all inputs: they must present a relatively high impedance to the drivers. Yes, the circuit designer should specifically add external pull-ups to open collector busses. Figuring out the input conditions for high output impedance drivers is definitely an advanced subject. However, weak digital driver outputs should always be buffered *before* inputting to any digital input, thus completely avoiding any potential problem before it could start. For example, many sensors with digital outputs have very weak drive capabilities.

Using external pull-down resistors isn't quite as hazardous as it might seem at first, but only if the designer is very careful. If the AVR internal pull-up is, say, 10K ohms, then adding an external 5K pulldown resistor will result in a nominal undriven low level input voltage equal to about 1/3rd of VCC. Since the CMOS V_OL(MIN) threshold for inputs is about 1/2 of VCC then the design will be basically sound unless the system is being subjected to abnormally high levels of noise. Still, that gives at least a 1/6'th of VCC noise margin. The designer is still responsible for determining the exact values of the AVR's internal pull-ups and what will be the acceptable noise margin. I'm not implying that this is necessarily easy to figure out, but a beginning designer will never have to face these complicated design decisions.

If, under any circumstances, should a signal line go tristate (i.e., undriven) and there are CMOS inputs connected to that signal line then the line should *always* be designed to have a pull-up resistor. a pull-down resistor or a pull-up/pull-down terminator resistor pair (long buss-line style) tied to it. While floating inputs will not be damaged by external electrical noise signals injected into that data line, the inputs will likely oscillate from the noise and consume excess power. Every IC manufacturer that exist warns about the hazards of letting CMOS input float.

Ordinary overhead florescent lights are notorious for injecting noise into any unterminated tristated signal line. This is a CMOS input problem, but not with TTL inputs since these actually drive low floating signal lines. Consider pull-ups to be the de facto signal drivers when no active non-open collector IC driver is powering that signal line.

Thanks for your input. I appreciate this because no one else had anything appropriate to add.

glitch: Huh ???

dak664: It sounds like your batteries are stacked in series, right ? Also, I am assuming that the AVR monitoring inputs are connected to each battery-to-battery junction and also to the topmost battery. Each AVR is grounded to its own battery's negative terminal and is powered by that one battery, only.

This circuit design is extraordinarily hazardous. To keep your sanity, each AVR should be grounded to the system's Common and not to a variable floating voltage. Otherwise all the Reset signals will be referenced to arbitrary "moving targets" and most likely will not have the proper signal levels to communicate with all the other AVR's. This is because there is no common signal reference voltage which is normally called "Ground", "Common" or 0 volts in reference to all the AVRs.

To answer your questions:

1) Tristates are switches that pass exactly *no* current under all normal operating conditions. That's the only purpose of the tristate switch: allow to pass nothing - no current and no voltage. There is a maximum over-voltage that can be safely applied to a tristated pin before damaging the silicon. See the spec sheet. Yes, there are static discharge protection diodes built into every IO pin. If the applied voltage goes above about VCC+0.7 volts, then the protection diode will start to conduct huge amounts of current. Forcing an even higher overvoltage will certainly destroy the diode and will probably burn out the IO pin driver and/or input.

AVR Reset pins are pretty much ordinary inputs. They may be a bit different because they are signal pins that can never be configured to be outputs.

Also remember that the AVR's internal pull-up resistor will allow current to be pushed into the AVR due to the fact that the overvoltage is greater than the AVR's VCC and that this current will be injected into the AVR's internal VCC power distribution net. Scour the spec sheet to find the pull-ups' values and then use Ohm's Law to calculate the injected overvoltage current.

If you know a signal pin might be subjected to short term overvoltage conditions there should be additional external circuit protection devices on that line to prevent excess voltages from being applied to that pin. Commonly, heavy duty diode pairs are used, but special components are often used to shunt high voltage (but, low current) static discharge spikes (typically up to 5KV) to ground.

But, static discharges other than lightning typically have an extremely short duration. A constant overvoltage generated by a battery is DC and will be likely to permanently burn out your IO pin circuitry.

2) Yes, this will work fine, but will make your code unnecessarily more difficult to understand. It's best to *both* set the output value low and disable the tristate at the same time. That combination won't work any better but is much easier to understand.

glitch: "... never output a high on the [open collector] pin."

What ?! Always output a low and constantly cause a reset condition ? Or, use an open collector output and tristate it ? Either way, that advice makes no sense whatsoever ! If a tristate-able output pin is "outputting" a low, but it is also tristated at the time, then it is not outputting anything at all !!! It's logic level is completely disconnected from the external circuit. If the pin is an open collector driver then any tristate capability is pointless. An OC output can never be driven high - it can only drive a low value or be inactive (shut off).

=====================================================================

To all this thread's contributors except for LDEVRIES and dak664:

Why don't you thoroughly read and try to understand what is written rather than blurt out the first thought that comes into your head. Your lack of thoughtfulness is very sad and misguided, not to mention that you obviously didn't read the actual spec sheets properly, or maybe not at all.

It's totally inappropriate to post on any forum of any kind if you don't use your head and do research beforehand. That simply shows an amateur nature, or worse yet, an extremely sloppy and rude one.

! ! ! ! ---- R T F M ---- ! ! ! !

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Why don't you thoroughly read and try to understand what is written rather than blurt out the first thought that comes into your head.

Why don't you understand what you have read before blurting out absolute nonsense. From the very datasheet that you referred to:
Quote:
If PORTxn is written logic one when the pin is configured as an input pin, the pull-up resistor is activated. To switch the pull-up resistor off, PORTxn has to be written logic zero or the pin has to be configured as an output pin.

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Looks like you are confusing tristate with buffers. A buffer can be tristated (being at Hi-Z), but it is not a "tristate".

I've attached Figure 23 from the Mega16 datasheet. It should be self explanatory.

Attachment(s): 

Felipe Maimon

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

TROLL ALERT!!!

HiZ (High Impedance) is considered a "tri-state" [aka the third state] on an i/o pin, as it is neither high, or low. It does not sink or source current. If one was to bias the line to VCC/2 one would find that the pin would sit at VCC/2 when the pin was tri-stated. The fact that the input buffer is connected is irrelevant. In fact the input buffer is always connected, and can be read even when the pin is configured as an "output" (though unless something is severely wrong in your circuit PIN will follow PORT as long as DDR=1)

Truth table on I/O pin configuration:

PUD DDR PORT STATE
 0   0    0  HiZ (tri-state)
 0   0    1  Weak Pull High (will source, if externally pulled low)
 0   1    0  Drive Low (sink)
 0   1    1  Drive High (source)
 1   0    0  HiZ (Tri-state)
 1   0    1  HiZ (Tri-state)
 1   1    0  Drive Low (sink)
 1   1    1  Drive High (source)

PUD is not the only way to disable the internal pull-up, but it does guarantee that one cannot accidentally enable it by setting PORT=1. However, PUD disables ALL the pullups, on all the pins.

Note that if the absolute maximum ratings are exceeded and the clamping diodes kick in, the pin will sink or source current, at least until it fails. This will happen on any electronic device that is equipped with clamping diodes for protection.

pascor wrote:

glitch: "... never output a high on the [open collector] pin."

What ?! Always output a low and constantly cause a reset condition ? Or, use an open collector output and tristate it ? Either way, that advice makes no sense whatsoever ! If a tristate-able output pin is "outputting" a low, but it is also tristated at the time, then it is not outputting anything at all !!! It's logic level is completely disconnected from the external circuit. If the pin is an open collector driver then any tristate capability is pointless. An OC output can never be driven high - it can only drive a low value or be inactive (shut off).

I never said at the same time, use that grey stuff between your ears man!! I was suggesting he use the AVR pin like an open collector pin, and not output a high, or enable the pull-up, as that would be bad in his application.

Yes, an open collector pin is one that can sink current only when active, or is high-impedance [HiZ] when inactive. When the pin is HiZ, it relies on external circuitry to create the high condition. The AVR can emulate this by switching between input (HiZ) mode, and Output-Low. As the AVR does not have a direct open collector mode of operation. [not counting the xmega, or AVR32]

I suggest you go back and re-read this thread, I think that you'll find that it is your tone and attitude that is off base here.

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I've attached Figure 23 from the Mega16 datasheet. It should be self explanatory.

Or if you missed that, you can look at Table 20 on the next page which shows that of the 8 possible states, only 1 actually has the pull-up enabled.

Regards,
Steve A.

The Board helps those that help themselves.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Edit Ok wiseman....

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

Last Edited: Thu. Oct 22, 2009 - 03:31 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

At times I am reminded by the following Persian proverb.

“He who knows not and knows not he knows not: he is a fool - shun him.
He who knows not and knows he knows not: he is simple - teach him.
He who knows and knows not he knows: he is asleep - wake him.
He who knows and knows he knows: he is wise - follow him.”

Charles Darwin, Lord Kelvin & Murphy are always lurking about!
Lee -.-
Riddle me this...How did the serpent move around before the fall?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pascor wrote:

Quote:
John A Brown: Very cute, but, do you have a thought that is actually intelligent to add to this thread ?

Yes, but I felt it would be impolite to express it. However, since you ask, I think you are a self-important fool, and I hope no AVR neophytes read your confusing and inaccurate nonsense.
[Edit] And now you've edited your original post - but it's still wrong! You're having a laugh, surely?[/Edit]

Four legs good, two legs bad, three legs stable.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

At least an idiot like this puts a smile on my face and brightens my day :-) :-)

Just to remind you that this was the same gentleman who started the thread about GCC having a bug with it's interpretation of "2 ^ 0" (in case you missed it he thought '^' was exponentiation not EOR) ;-)

(If I'd managed to embarrass myself that much on the first occasion I think I would have abandoned the account and re-registered! It just seems to strengthen the likelihood that he's just trolling)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I hope no AVR neophytes read your confusing and inaccurate nonsense.

To reiterate for posterity's sake: If you're an AVR newbie and you've stumbled across this thread, IGNORE IT in its entirety.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

It's totally inappropriate to post on any forum of any kind if you don't use your head and do research beforehand.

Quote:

Also, pull-ups *can* be directly disabled in only 1 way: By writing a '1' to the PUD bit

[edit] I guess glitch already addressed the "contradiction" in the quotes.
[and] I guess I should have read the whole thread before posting... (I guess none of my AVR designs with hi-Z inputs and no pullup enabled really work.)

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
I think you are a self-important fool,.....an idiot like this
Oh boy, I only called him a twit and then erased my comment following the blonde wise man's counsel.

But you are all entitled to you opinion. :wink:

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

pascor wrote:

stupid should hurt.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Yup, I was wrong, but I tried my best to defend my position with intelligent data. In return I was mostly brushed off with a combination of mostly totally unsupported statements as well as a load of outright misinformation. Yes, something *can* be learned from this thread ! Due diligence in responses to threads in this forum are a rare commodity. That's terribly sad.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think the OP misunderstands what "tri-state" is and uses the term incorrectly.

There are, by definition, three "states", one logic high, one logic low, and one high impedance with no defined high or low state. Adding a pull-up to the equation makes it, by definition, NOT tri-state. With a pull-up turned on, the pin is is NONE of the defined tri-state states.

Tri-state operation is often used when multiple pins are connected to a single line. One device drives the line either high or low while all of the others are in high impedance state.

How a high impedance state is achieved is not important. If you need to switch a port pin from output into an input, that is what you do. The fact that it is an input is irrelevant.

I hope this helps to clear the confusion...
Jim

Jim Wagner Oregon Research Electronics, Consulting Div. Tangent, OR, USA http://www.orelectronics.net

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

A high-Z pin with a pullup could also be called
"weak high". I think some logic simulators have a
lot of "modes" a line can be in.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have seen a 4th state on chips whose smoke as escaped like ossi's avatar.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

If I am alowed to add something.

I think that it is common to speak about "tristate" only with output. An output has two states, "1" and "0". (Idealy with zero output impedance.)
The third state means setting the output in high output impedance, e.g. disconnecting it from the bus.

But input has only one state (idealy infinite input impedance).
Adding pull-resistors I would not call "tristating".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

An example of an enumerated type that has been defined in the std_logic_1164 package is the std_ulogic type, defined as follows

type STD_ULOGIC is (

‘U’, -- uninitialized

‘X’, -- forcing unknown

‘0’, -- forcing 0

‘1’, -- forcing 1

‘Z’, -- high impedance

‘W’, -- weak unknown

‘L’, -- weak 0

‘H’. -- weak 1

‘-‘); -- don’t care

If it comes to data-buses it probably makes sense
to speak of a signal-line be in one
of severals states.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Ossi:
I am speaking about the term "tristated input".
You are speaking about various states on a bus, if I understand.

At many IC we can read "with tristated outputs".
But I have not seen a device with "tristated inputs".

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Good grief folks I thought this thread had died. Lets see if we can hold off thrashing this dead horse for a while?

[BTW now that I have the power I'll move this from GCC to the forum where it should have been started in the first place]

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Wasn't expecting such a good laugh this early. :shock: :D :D :D
Knowing how media qoute people I guees what OP really wanted to say was

Quote:
Yup, I was wrong, but I tried my best to defend my position with a combination of mostly totally unsupported statements as well as a load of outright misinformation. That's terribly sad.

Thanks Cliff for moving this thread. I never visit GCC forum. :wink: