I went back to the simplest circuit I could make with minimal programming just to test the ICD but I still can't get it to work. I have checked that when I send out a character to my Max232 chip that the signal gets level corrected and sent to the Rx pin of the 16F628a.
When I "Compile Program" using MCS+ the LED (code below) blinks as required. When I "ICD Compile Program" the blinking stops, and I get a time-out error when I try to run the debugger.
Using the serial communicator in MCS+, I can send out the character "h" but I get nothing returned. the Bytes TX count goes up by the number of characters I send out and curiously (because I don't know the cause), the Bytes RX count continuously increments rapidly to 16000+ and doesn't quit until I

Question: Is there anything else I have to do to get the ICD working? (perhaps a config word or register setting?)
Question: What data am I receiving (RX of 16000+)
Question: Why does execution stop (ie LED stops blinking) when I "ICD CompileProgram"?

Program is here:
TRISA = %00000000 'ALL OUTPUTS
TrisB = %00000010 'Rx on b.1, pin 7 and Tx on pin 8
#config
__config _INTRC_OSC_NOCLKOUT ; for 16F628
#endconfig
START:
High PORTA.6 'ON LED
Pause 1000
Low PORTA.6 'OFF LED
Pause 1000
GoTo START 'REPEAT