Hi Jim,
It was the only example I could find where I could pulse a pin for a certain number of times.
That's not what that particullar code example does. It IS "indexing" port pins starting at PortB.0 and ending at PortB.7 setting them low, one by one.

I'm not trying to do any "array indexing".
I figured you're not trying to but that IS effectively what you're doing ;-)

PortA.3 = 1 will set PortA.3 high - this is what you want.
PortA.3[3]=1 will set PortA.6 high because you're adding an offset of 3 - not what you want in this case.
PortA.3[i] will set "something" high - what that "something" is depends on the value of i which is incrementing each time thru the loop - definitely not what you want in this case.

All I'm doing is pulsing the RD pin low 65535 times. Each time the pin is pulsed low the i variable counts up and when the count reaches 65535, it stops pulsing and continues on with what was next in the code.
Yes and no. You're actually pulsing the pin 65536 times, since you're starting at 0 and stopping at 65535 but I Think 65536 is what you want. And since the i variable is couting up you're setting 65536 consecuitive bits, starting at PortA.3 high.

As a test, try
Code:
dat:
RD = 1
For i = 0 to 65535
   RD = 0      ' Pull pin low
   PAUSEUS 10    ' Wait 10us
   RD = 1    ' Pull pin high
   PAUSEUS 10    ' Wait 10us
NEXT
RETURN
/Henrik.